वोट अप / डाउन और यूजर कर्मा का सहज ज्ञानवर्धन

छवि मैं ड्रुपल में कर्म गणना एल्गोरिदम और उपयोगकर्ता रेटिंग को परिष्कृत करने के लिए आज (एक सहज स्तर पर) किए गए सफल काम की खुशी को साझा करना चाहता हूं, लेकिन सबसे पहले, मुझे अपनी तैयारी के स्तर के बारे में थोड़ी बात करनी होगी, ताकि यह स्पष्ट हो जाए कि एपीआई और ओओपी सिद्धांतों का सार्वभौमिकरण लोगों के जीवन को सजाए। मुझे उम्मीद है कि यह मेरी तरह शुरुआती लोगों के लिए उपयोगी होगा, और द्रुपाल के विकास में पहली कठिनाइयों को दूर करने में उनकी मदद करेगा। कौन तुरंत लेख के निचले भाग में जाना चाहता है, शीर्षक पर स्क्रॉल करें "लंबे समय से प्रतीक्षित ग्रेड और कर्म।"



वेब प्रोग्रामिंग और सीएमएस के लिए पहला परिचय



एक वर्ष से अधिक समय से, मैं सीएमएस जैसी अवधारणा से परिचित हूं। मैंने पहले जूमला पर कई सामान्य (कार्यात्मक, विविध और उपयोगकर्ताओं के साथ लोकप्रिय) साइटें बनाईं, पहले 1.10, फिर 1.5 (1.6 तक मैं अभी तक नहीं पहुंचा)। इसके अलावा, मैं हमेशा केवल मानक तंत्र का उपयोग करता था। प्लग-इन चीजें (मॉड्यूल, प्लग-इन, घटक) केवल मूल संस्करण में सेट की गई हैं। उन्होंने केवल अपने हाथों को टेम्प्लेट (थीम) और सीएसएस की जांच करने की अनुमति दी। मैं आगे कहीं नहीं गया

मैं ओओपी की मूल बातों से बहुत कसकर परिचित हूं, लेकिन मुझे इन सिद्धांतों के वेब-आधारित अनुप्रयोग का कभी सामना नहीं करना पड़ा। सिद्धांत बहुत समान और स्पष्ट हैं। शब्दावली में अंतर के कारण अधिकांश कठिनाइयां, सबसे अधिक संभावना है। वाक्यांश "ड्रुपल एपीआई सिखाओ" ने मुझे लंबे समय तक डरा दिया। या शब्द हुक - "जाल, हुक।" लेकिन जब यह पता चला कि हुक अनिवार्य रूप से इवेंट हैंडलर थे, तो यह तुरंत आसान और अधिक समझ में आ गया।

निष्पादन योग्य कोड का अजीब समावेश <?php ..... ?> Html- पृष्ठ के अंदर भी किसी तरह असामान्य हैं, साथ ही मेरे लिए इस नई भाषा का वाक्यविन्यास भी है। ठीक है, आपके दिमाग की हड्डी का भौगोलिक विखंडन असामान्य है: एक ही स्थान पर स्क्रिप्ट और थीम, जैसा कि वे थे, अपने दम पर, और जिस डेटाबेस से साइट की मूल जानकारी बनती है वह पूरी तरह से अलग देश में हो सकती है। और इसमें से आपको स्ट्रिंग्स और बुनना पृष्ठों को खींचने की आवश्यकता है। पाठ्यक्रम के अधिकांश स्वचालित रूप से किया जाता है, लेकिन फिर भी ...

मैंने जुमला क्यों धोखा दिया



दिमाग के आलस्य से और बत्तख पालन के सिद्धांत के बाद, मैंने पूरी कोशिश की कि जुमला को छोड़कर किसी भी चीज़ में शामिल न होऊँ। लेकिन जब महान मतदान विकल्पों के साथ एक सामूहिक ब्लॉग बनाने की बात आई, तो मैं इस निष्कर्ष पर पहुंचा कि द्रुपाल इसके लिए बेहतर है। या यों कहें, यह आदर्श है, जबकि जुमला बिल्कुल फिट नहीं है (कम से कम मैं इन दोनों सीएमएस से जुड़े हुए घटकों और कई घटकों के विवरण का अध्ययन करने के बाद आश्वस्त हो गया)।

जब आप पूरी तरह से शून्य, नगण्य, मारे गए और कुचले गए बहुत से अस्पष्ट जानकारी से महसूस करते हैं कि विषय में कुछ संसाधित किया जाना चाहिए और इस विषय में प्रवेश किया जाना चाहिए ... यह एक ऐसी चर्चा है। मेरा एड्रेनालाईन पहले से ही मेरे खून में बह रहा है कि मैं रात को सो नहीं सकता। (लेकिन मुझे इस बात का घमंड नहीं है कि मैं यह प्रभावी रूप से कर रहा हूं, बल्कि केवल भावनात्मक रूप से)।

Drupal सीखने के साथ, समानांतर में, मैंने php सीखना शुरू किया और jQuery से परिचित होना शुरू किया, साथ ही साथ SQL पाठों को भी याद किया। पहले तो यह अलग-अलग मॉड्यूल के विवरण को पढ़ रहा था, उन्हें एक-एक करके जोड़ रहा था और उनका परीक्षण कर रहा था। और फिर मैंने एपीआई में देखना शुरू किया, अपना मॉड्यूल लिखा (पहले पाठ में, और अब मैं अपना मूल पूरा कर रहा हूं)।


लंबे समय से प्रतीक्षित ग्रेड और कर्म



तुरंत वोट अप / डाउन स्थापित करें। ओह, जो मुझे चाहिए था! आप नोड्स, टिप्पणियों और टैग (वर्गीकरण के वर्गों) के लिए वोट कर सकते हैं।

फिर कार्य था रेटिंग्स को संचित करना, उन्हें उपयोगकर्ता रेटिंग के एकल अंक में विलय करना। चुनाव कर्मा पर गिर गया। इस मॉड्यूल ने उपयोगकर्ता के कार्यों और सेट महत्व कारकों के आधार पर मतदान के आधार पर एक निश्चित एल्गोरिदम के अनुसार स्कोरिंग पॉइंट के विचार को पूरी तरह से महसूस करना संभव बना दिया।

उदाहरण के लिए, मेरे एल्गोरिथ्म के अनुसार, एक रेटिंग गुलदस्ता में ऐसे फूल होते हैं:

रेटिंग (प्रतिष्ठा) = VoicesZaNodes * 3 + VoicesZaComment * 1 + AdditionNode * 1 + वाम रेटिंग * 0.2

आप स्वयं राशि का चयन करते हैं, और आप पेन के साथ उनके महत्व के गुणांक निर्दिष्ट करते हैं। आप उन दिनों की संख्या भी निर्धारित कर सकते हैं जिनके बाद अनुमान पिघल जाएगा (लेकिन मुझे रेटिंग के लिए खेद महसूस हुआ, और मुद्रास्फीति वास्तविक जीवन में इतनी पीड़ा हुई)।

लेकिन जब से मैंने हाल ही में Habré में पंजीकरण किया है, मैं यहाँ होने वाले कर्म तंत्र को दोहराना चाहता था। यह सामुदायिक सहायता का एक उपाय है कितने लोग आपके लिए हैं, और कितने आपके खिलाफ हैं। आपकी कुछ सामग्री के लिए आवाज़ नहीं, बल्कि आपके व्यक्तित्व के लिए एक आवाज़ है। हर कोई आपको एक प्लस या माइनस दे सकता है। और केवल एक बार।

रनेट में थोड़ी सी गुगली, मुझे वांछित समाधान नहीं मिला (वोट अप / डाउन को अंतिम रूप देने के लिए), और यह जानने का फैसला किया कि प्रशिक्षण उद्देश्यों के लिए मॉड्यूल कैसे काम करता है। और मैंने तुरंत ध्यान दिया कि सभी प्रकार के मतदान के लिए फ़ोल्डर्स में उप-मॉड्यूल हैं vud_node, vud_comment, vud_term। Google पर vud_user टाइप करते हुए, मैंने पाया कि मुझे क्या चाहिए।

इस वर्ष के जनवरी में, एक व्यक्ति ने उपयोगकर्ताओं के लिए मतदान का सवाल उठाया , जिसमें वोटपपडाउन के डेवलपर्स ने जवाब दिया कि वे ड्रुपल 6 के लिए इस अवसर को लागू नहीं करेंगे, और 7 वें संस्करण के लिए वे सामग्री के मध्यस्थ क्षेत्रों के लिए एक वोट बनाने की योजना बनाते हैं (जैसा कि मैं समझता हूं, लेकिन नहीं मेरा अंग्रेजी पर भरोसा है।)

फरवरी में, एक व्यक्ति ने एक टिप्पणी में एक उप-मॉड्यूल vud_user पोस्ट किया, जैसा कि वह कहता है, इसे vud_comer मॉड्यूल से बनाया है। मैंने इसे डाउनलोड किया, और इसने मुझसे कमाया, जैसे कि हेबे पर कर्म, जिसने मुझे बहुत खुश किया।

लेकिन तब मेरे आनंद ने गहरी सोच को जन्म दिया। वास्तव में, गर्भित प्रतिष्ठा के तर्क के अनुसार, उपयोगकर्ता के लिए एक आवाज को भी प्रभावित करना चाहिए, और बहुत वजनदार। और इसके लिए हमें उपयोगकर्ता कर्म को परिष्कृत करने की आवश्यकता है।

मेरे भीतर की वृत्ति ने मुझे बताया कि मुझे इस तरह के शोधन (छोटे घर की चीजों के) होने की संभावना नहीं थी, और इसलिए मेरे लिए एक अजीब कदम था, केवल अंतर्ज्ञान पर भरोसा करना।

उपयोगकर्ता कर्मा मॉड्यूल में 4 सबमॉड्यूल शामिल थे।
user_karma_receive_vote_node // - जब आपके नोड के लिए मतदान होता है
user_karma_receive_vote_comment - अपनी टिप्पणी के लिए वोट करें
user_karma_insert_node - एक लेख जोड़ना
user_karma_give_vote - आपकी सामग्री की रेटिंग

मैंने पहले एक को लिया, और तार्किक रूप से मेरे लिए उपयुक्त _receive_vote_node, और इस उप-मॉड्यूल से जुड़ी सभी फ़ाइलों की प्रतिलिपि बनाई। और नामों में नोड शब्द को उपयोगकर्ता द्वारा बदल दिया गया था।

इन फ़ाइलों को दर्ज करने के बाद, मैंने "खोज - बदलें" नोड ---> उपयोगकर्ता किया।

और उन्हें साइट पर स्थापित किया। मॉड्यूल (व्यवस्थापक) अनुभाग में एक नया उप-मॉड्यूल _receive_vote_node प्रकट हुआ है। उसे चालू कर दिया। और उपयोगकर्ता कर्म की सेटिंग में, एक नया शब्द "उपयोगकर्ता वोट" दिखाई दिया है। मैंने उसे 10. का गुणांक दिया। मैं तुरंत एक यादृच्छिक उपयोगकर्ता के प्रोफाइल में चला गया, पहले उसकी रेटिंग याद थी। मैंने उसे वोट दिया और 10 से प्रतिष्ठा में छलांग की वृद्धि की प्रत्याशा में, अद्यतन किया।

SQL ने Drupal को यह शपथ दिलानी शुरू की कि तालिका {user} मौजूद नहीं है और इसमें nid फ़ील्ड मौजूद नहीं हैं। मैंने इसे क्रमशः {यूजर्स} और यूआईडी पर तय किया।

और यह मेरे लिए काम किया! जिस तरह से मैं चाहता था! अब उपयोगकर्ता के प्रोफ़ाइल के लिए किसी को वोट देना उचित है, क्योंकि उसकी रेटिंग +10 (या फ़ॉल -10) गिरती है।

तो, मेरे कर्म डॉ को संक्षेप में ... प्रयोग करें।

वोट अप / डाउन वोटिंग बटन को आपके लेखों, टिप्पणियों और टैक्सोनॉमी शब्दों में जोड़ता है, जो कि अजाक्स के माध्यम से अराजकता के माध्यम से, प्रभावी ढंग से काम करते हैं, उपयोगकर्ता के सामने रेटिंग बदलते हैं। वोट अप / डाउन भी अलमारियों पर बड़े करीने से डेटाबेस में रेटिंग डालता है (यूज़र 1 माइनस ऐसी टिप्पणी usera2 इस तरह के लेख में 7-30 बजे, आदि)। फिर आप इस जानकारी का उपयोग कर सकते हैं, उदाहरण के लिए, अनाम नाबालिग नाबालिगों, अनुचित प्लस पुरुषों और सामान्य लोगों की गणना करने के लिए, साथ ही साथ उन लोगों को वोट देने के परिणामों को बहुत सारे लोगों द्वारा बेचा जाता है जो अपने कर्म में हिंसक रूप से कर्म करते हैं, और वे जानना चाहते हैं: “मेरे लिए यह किसने किया? "

उपयोगकर्ता कर्म सभी रेटिंग्स को एक संख्या में एकत्रित करता है, जो उपयोगकर्ता से चिपक जाती है। देश की जीडीपी लगभग यही है। अंकल वास्या ने आलू के 3 बैग खोद लिए, अब्रामोविच ने 50 टन हीरे खोद लिए, VAZ ने 100 हजार कलिन इकट्ठा किए, मेगापफोन ने स्काइप की वजह से 2 मिलियन डॉलर गंवाए - यह इतने सारे अलग-अलग नंबरों से प्रतीत होता है, लेकिन अंत में हमें कुल आंकड़ा मिलता है, जो हमारे सभी को पूरा करता है। संयुक्त प्रयास। 2010 में रूस की जी.डी.पी. एक्स बिलियन रूबल की राशि। और नोड्स, टिप्पणियों, आलू और हीरे के लिए पेशेवरों और विपक्षों के इस समूह का एक परिणाम के रूप में रूस को जिम्मेदार ठहराया गया है और इसकी सफलता के संकेतक के रूप में विभिन्न रिपोर्टों में दिखाई देता है।

क्योंकि यह मॉड्यूल को फिर से करने का मेरा पहला प्रयास था, इसने मुझे सबसे अधिक प्रभावित किया कि मैंने कुछ कॉन्फ़िगरेशन में गंभीर कॉन्फ़िगरेशन विकल्पों के साथ एक पूरे सबमॉड्यूल का निर्माण किया। यह देखते हुए कि मैं इन मामलों में कितना नया हूं, मैं कुछ उत्साह से सीधे पार पा गया था जिसे मैं साझा करना चाहता था।

कहानी का नैतिक, मुझे लगता है, यह है: "यह फ़ंक्शन नामों का सार्वभौमिकरण और एक अच्छी तरह से डिज़ाइन किया गया एपीआई लीड है।" द्रुपाल में, सब कुछ बहुत सख्त और विचारशील है। शुरुआती, डरो मत, एपीआई तर्क में महारत हासिल करें और जल्द ही आप मक्खी पर वेब प्रोग्रामिंग में अद्भुत काम करने में सक्षम होंगे।

यह देखते हुए कि मैं खुद द्रुपाल और हाराब दोनों में एक शुरुआत कर रहा हूं, मुझे खुशी होगी अगर मुझे यहां लिखने के अवसर से वंचित नहीं किया जाएगा, साथ ही कुछ चीजों की मेरी समझ को सही करने के लिए युक्तियां जो मुझे अभी भी समझ में नहीं आती हैं। आपका ध्यान देने के लिए धन्यवाद।

खैर, कुछ भी नहीं, मैं अच्छे अनुभवी दोस्त बनाने का सपना देखता हूं जो मुझे ड्रुपल सीखने में मदद करें।

Source: https://habr.com/ru/post/In116740/


All Articles