(أنا أصلاً طرحت هذا السؤال في webapps.stackexchange.com .)
بشكل افتراضي ، في Drupal ، عندما نقدم نموذج "تعيين كلمة مرور جديدة" ، يطلب النموذج إما اسم مستخدم للموقع أو عنوان بريد إلكتروني. إذا كان المستخدم يوفر إما اسم مستخدم أو عنوان بريد إلكتروني مرتبطًا بحساب صالح ، فسيحصلون على رسالة بريد إلكتروني (على ذلك العنوان) مع رابط يتيح لهم تعيين كلمة مرور جديدة.
نود التأكد من أن جميع المستخدمين يستخدمون عنوان بريد إلكتروني حاليًا ، وتحقيقًا لهذه الغاية ، نود إيقاف القدرة على وضعت في اسم المستخدم. عندما يقوم المستخدم بإدخال اسم مستخدم ، فقد يرسل رسالة إلى عنوان بريد إلكتروني قديم ولكن يعيد "نرسل لك رسالة بريد إلكتروني" إلى المستخدم. إذا وضعوا عنوان بريد إلكتروني ليس لدينا ، فسيعطيهم رسالة خطأ ، تنبههم إلى حقيقة أنهم لم يطلعونا على آخر المستجدات (وجعلهم على اتصال بنا عبر البريد الإلكتروني).
هل يمكننا تقييد ذلك لطلب البريد الإلكتروني فقط؟
إذا كنت تسأل عما إذا كان يمكن تكوين هذا في الخلفية الإدارية ، فعندئذ لا ، لا يمكنك القيام بذلك ، فالوظائف المعنية حاليًا مشفرة داخل ser_pass_validate () .
ومع ذلك ، ربما تكون على دراية بالفعل بأن إحدى نقاط دروبالس هي السهولة النسبية التي يمكن بها تخصيصها أو تمديدها برمجيًا عبر الوحدات . لست على دراية بأحد الموجودات يفعل ذلك فقط (على الرغم من احتمال وجوده في النهاية ، القائمة ذات الصلة بـ وصول/مصادقة المستخدم) ضخم جدًا) ، ولكن هنا ما يمكن للمطور القيام به:
تخصيص وتجاوز صفحة تسجيل دخول المستخدم ، والتسجيل ، وإعادة تعيين كلمة المرور في درو بال 6
في الواقع لإيقاف القدرة على وضع اسم مستخدم يحتاج المرء إلى تجاوز وظيفة التحقق من صحة النموذج الموجودة ser_pass_validate () مع نسخة مخصصة تتخطى ببساطة الشيك الخاص ، أي إزالة الكود الذي يحاول تحميل الحساب بالاسم (انظر القسم التحقق من صحة النماذج ضمن دليل بدء تشغيل API النموذجي للحصول على نقطة بداية).
للحصول على إجابة أكثر تفصيلاً (أي تطبيق قابل للاستخدام ، إذا كنت محظوظًا) ، فأنا بحاجة إلى إحالتك مرة أخرى إلى موقع Stack Exchange آخر: قد تطلب ذلك عن طريق علامة Drupal on Stack Overflow؛)
أعتقد أنك تبحث عن هذا: http://drupal.org/project/email_registration