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

2. आयातित फ़ाइल के लिए फ़ील्ड सॉर्ट करें:

3. खुद को आयात करें:

मॉड्यूल कैसे काम करता है?
निम्नलिखित संरचना के साथ एक तालिका है:
CREATE TABLE `drupal7_bur_fields_table` ( `bur_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'Field ID', `bur_title` varchar(50) NOT NULL COMMENT 'Human-friendly title', `bur_user_field` varchar(50) NOT NULL COMMENT 'The field of conformance to the field in the user table', `bur_weight` smallint(6) NOT NULL COMMENT 'The serial number of the field', `bur_is_data` smallint(6) NOT NULL COMMENT 'Whether the field will be used in array 'data'', `bur_dateizm` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'Date of change', PRIMARY KEY (`bur_id`), KEY `bur_weight` (`bur_weight`), KEY `bur_is_data` (`bur_is_data`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
इस तालिका में आयातित फ़ाइल की संरचना के बारे में जानकारी है। अर्थात्:
- उपयोगकर्ता तालिका से संबंधित फ़ील्ड में फ़ाइल में फ़ील्ड का पत्राचार;
- फ़ाइल में इन समान फ़ील्ड्स का क्रम;
इसके अलावा, किसी भी फ़ाइल क्षेत्र को $ [[डेटा] सरणी में संपादित किया जा सकता है। ऐसा करने के लिए, फ़ील्ड बनाते समय, "डेटा" चुनें और कुंजी / नाम निर्दिष्ट करें जिसके तहत जानकारी जोड़ी जाएगी:

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

अरे हाँ! स्रोत फ़ाइल का एन्कोडिंग केवल UTF-8 में होना चाहिए। पासवर्ड
हैशेड नहीं होना चाहिए। यदि आप नमक के साथ पासवर्ड का उपयोग करना चाहते हैं, तो आप user_save फ़ंक्शन कोड ले सकते हैं और पासवर्ड को "नमक" जोड़ने वाले कोड को "बाहर फेंक" सकते हैं।
मॉड्यूल
यहाँ डाउनलोड किया जा सकता
है । मैंने इसके लिए विशेष रूप से गिट हब पर एक खाता बनाया। सच्चाई का अभी तक पता नहीं चला है कि मॉड्यूल फ़ाइलों को व्यक्तिगत रूप से कैसे डाउनलोड किया जाए ताकि आप स्रोत कोड देख सकें। कल के लिए छोड़ दें।
यदि आप ऐसा सोचते हैं, तो छोटे परिवर्तन वाले इस मॉड्यूल का उपयोग अन्य तालिकाओं में डेटा को "भरने" के लिए किया जा सकता है।
मॉड्यूल बनाते समय, निम्नलिखित सामग्रियों का उपयोग किया गया था:
मॉड्यूल बीएसडी के तहत लाइसेंस प्राप्त है।
पुनश्च मैं खुद को एक प्रोग्रामर नहीं मानता (मुझे पहले से ही यह एहसास है), मेरे पास अभी भी एक लंबा रास्ता तय करना है, इसलिए कोड पर सभी टिप्पणियों, कार्यान्वयन का स्वागत है।
पीपीएस मुझे द्रुपल से प्यार है।
UPD 1: स्रोत कोड जोड़ा गया।
UPD 2 03/20/2015संस्करण 1.0.1 में अपडेट किया गया