سؤال

لدي مشكلة سخيفة حقا كلفتي حمولة من الوقت بالفعل.

لقد أنشأت قالب محتوى مع عنوان URL هناك. عندما أنظر إلى كود HTML لذلك، أرى الدهون الكبير "MaxLength = 256" في علامة النموذج. أرغب في توسيع طول هذا الحقل، لأن عميلي يرغب في إدخال روابط طويلة حقا (أكثر من 500 حرف). أي فكرة كيف يمكنني تغييرها؟ عندما أقوم بعمل بحث عام من خلال التعليمات البرمجية، أرى الكثير من الحدوث 256، لكن الطول قد يكون أيضا في قاعدة البيانات في مكان ما. لدي بالطبع جعل حقل قاعدة البيانات لفترة أطول varchar (1024 بدا تشعر بالشاعرية بالنسبة لي)، لذلك هذا شيء لا داعي للقلق.

أعتقد أنه سخيف، لكن العميل دائما صحيح، كما نعلم.

أنا أستخدم Drupal 6.14.

هل كانت مفيدة؟

المحلول 2

yahoooooo! أنا إصلاحها، وذلك بفضل صفحات الدروبال المفيدة:http://drupal.org/node/300705.

لقد اكتشفت أنني أستطيع تحرير النموذج بعد أن تم إنشاؤه بالكامل. الحل المقدم من إريك جيد، ولكن لا يبدو أن العمل لحقول CCK. في حالتي، كان يمكن أن يعمل حل Erik إذا لم يكن الأمر يتعلق بهذه الخطوة الجيل التي يجب أن تحدث أولا.

الرمز الجديد الخاص بي هو كما يلي:

function longerfield_form_alter(&$form, &$form_state, $form_id) {
      $form['#after_build'][] = 'longerfield_after_build';
    }

function longerfield_after_build($form, &$form_state) {
  // This is for a node reference field:
  $form['field_page_boeken'][0]['data']['url']['#maxlength'] = 1024;
  return $form;
}

الآن، أنا أيضا أرى أنه قبيح، خاصة لأنه قد يكون هناك عناصر شكل أخرى هنا (فقط الزيادة من 0)، لكنها تعمل من أجل العنصر الأول! yippeee!

نصائح أخرى

تريد استخدام fook_form_alter () في templete.php أو وحدة مخصصة.

سيبدو شيئا من هذا القبيل:

MODULE_form_alter(&$form, &$form_state, $form_id) {
  if($form_id = 'name_of_form_you_want_to_alter') {
    form['name_of_url_field']['#maxlength'] = 500;
  }
}

مجرد استبدال الوحدة باستخدام اسم موضوعك (إذا كان في template.php) أو استبداله باسم الوحدة المخصصة الخاصة بك باستخدام.

للعثور على معرف النموذج، فحص العنصر مع Firebug. ينطبق الشيء نفسه على معرف حقل URL.

اسمحوا لي أن أعرف إذا كنت بحاجة إلى مزيد من التفاصيل.

تحرير: كما هو مذكور، يبدو أنك لا تستطيع الاتصال بالسنانير من مستوى السمة.

أفضل طريقة للذهاب حول هذا هو إنشاء وحدة مخصصة صغيرة لك الموقع. يمكنك أن تسميها شيء مثل sitename_customizations.

كل ما تحتاجه هو ملف .info بسيط باسم modulename.info الذي سيبدو شيئا مثل هذا:

name = SITE customizations
description = "Customizations"

سوف تحتاج أيضا إلى ملف modulename.module، وهو المكان الذي ستشمل فيه hook_form_alter يتصل.

ملاحظة. تأكد من عدم إغلاق علامة PHP الخاصة بك (?>) في ملف .module الخاص بك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top