تصویر محمدعلی اکبری

دروپال به صورت پیش فرض فیلد‌های فرم را پشت سر هم و با مارک‌آپ (Mark up) مشخصی رندر (Render) می‌کند. این رفتار دروپال در اکثر موارد کافی و قابل استفاده است. حتی فرم‌هایی که دروپال به روش معمول رندر می‌کند را می‌توان تا حد خوبی با CSS و JS کاربرپسند تر کرد.

اما گاهی یک فرم را نمی‌توان تنها با CSS و مارک معمول دروپال، به ظاهر دلخواه درآورد. در این شرایط باید بتوانیم خروجی مارک‌آپ تولید شده را نیز دستکاری کنیم. برای اینکار گام‌های زیر را طی کنید:

گام اول : تعریف فرم

در صورتی که قصد دادن قالب به فرمی که قبلا تعریف شده را داشتید برای اضافه کردن CSS و JS به آن باید فرم را alter کنید.

 

گام دوم: تعریف قالب جدید

در hook_theme یک قالب جدید تعریف کنید. دقت کنید نام theme تعریف شده دقیقا باید همان نام فرم (Form ID) باشد تا به صورت خودکار توسط دروپال برای رندر کردن فرم استفاده شود.

/**
 * Implements hook_theme().
 */
function soccer_prediction_theme() {
  return array(
    'soccer_prediction_form' => array(
      'render element' => 'form',
      'template' => 'templates/soccer-prediction-form',
      'path' => drupal_get_path('module', 'soccer_prediction'),
    ),
  );
}

گام سوم: نوشتن theme

salam
<?php print render($form['text']); ?>
<?php print drupal_render_children($form); ?>
bye

 

برچسب ها: 

افزودن نظر جدید