چگونه ساخت صفحه تنظیمات برای قالب Drupal 7

شما اینجا هستید

5 پست / 0 جدید
آخرین ارسال

وضعیت: آفلاین
  • تعداد ارسال: ۶۷
  • تاریخ عضویت: ۲۰۱۴/۱۰/۱۰
  • آخرین حضور: ۲۰۱۵/۰۷/۱۷
  • سمت: کاربر عضو
  • موقعیت: نامشخص

سلام دوستان

چطوری می تونم برای قالب صفحه تنظیمات درست کنم؟؟؟


وضعیت: آفلاین
  • نسخه دروپال: 7.00
  • تعداد ارسال: ۴۱۰۵
  • تاریخ عضویت: ۲۰۱۰/۰۱/۱۸
  • آخرین حضور: ۲۰۲۱/۰۳/۰۶
  • سمت: مدیر کل
  • موقعیت: نامشخص

لطفا سوال خودتون را واضح تر بپرسید.
منظور از ایجاد تنظیمات برای قالب چیست ؟
یعنی فرمی که توسط آن بتوانید اجزا ، نمایش و دیگر مقادیر موجود در قالب را کنترل کنید؟


وضعیت: آفلاین
  • تعداد ارسال: ۶۷
  • تاریخ عضویت: ۲۰۱۴/۱۰/۱۰
  • آخرین حضور: ۲۰۱۵/۰۷/۱۷
  • سمت: کاربر عضو
  • موقعیت: نامشخص

بله فرمی که بتونم اجزای قالب را مدیریت کنم.

مثلا می خوام این امکان را به کاربر بدم که رنگ ها را تغییر دهد.


وضعیت: آفلاین
  • نسخه دروپال: 7.00
  • تعداد ارسال: ۴۱۰۵
  • تاریخ عضویت: ۲۰۱۰/۰۱/۱۸
  • آخرین حضور: ۲۰۲۱/۰۳/۰۶
  • سمت: مدیر کل
  • موقعیت: نامشخص

برای اینکار نیاز دارید کمی در کد نویسی قالب ها تغییرات به وجود آورید.
برای اضافه کردن این قابلیت دو راه حل وجود دارد:
1- ایجاد افزونه برای آن قالب:
برای اینکار شما از hook_form ها استفاده کرده و یک فرم از نوع system_settings_form دروپالی ایجاد می کنید و مقادیر مورد نظر را توسط آن در variable های دروپال ذخیره می کنید. مثال: رنگ قالب ، طول قالب ، تعداد ستون و ... سپس در قالب خود از این variable ها استفاده میکنید. دقت کنید که اگر این افزونه فعال نشده باشد ، باید در قالب مقادیر پیش فرضی تعریف شده باشد که با خطا روبرو نشود.
برای نمونه کد این کامنت را مشاهده کنید:
https://www.drupal.org/node/177868#comment-5274188

2- ایجاد تنظیمات اختصاصی برای قالب:
برای اینکار از theme settings api دروپال استفاده کنید. ابتدا یک فایل با نام theme-settings.php در پوشه قالب خود ایجاد کنید و کدهای خود را در آن قرار دهید.
نمونه کد در زیر نمایش داده شده است. این تنظیمات در صفحه ویرایش قالب مورد نظر نمایان می شوند.
function THEMENAME_form_system_theme_settings_alter(&$form, $form_state) { 
  $form['carousel_images'] = array(
    '#type' => 'textfield',
    '#title' => t('Carousel Images'),
    '#default_value' => theme_get_setting('carousel_images'),
    '#description' => t("Enter the number of images uploaded."),
    '#element_validate' => array('_carousel_images_setting'),
  );
  function _carousel_images_setting($element, &$form_state) {
      if (!is_numeric($element['#value'])) {
        form_error($element, t('Please enter a number.'));
      }
  }
}

برای فراخوانی این تنظیمات در قالب از تابع theme_get_setting استفاده نمایید.
برای اطلاعات بیشتر لینک های زیر را مشاهده کنید:
http://drupal.stackexchange.com/questions/38787/parsing-a-multi-valued-t...
https://api.drupal.org/api/drupal/modules%21system%21system.admin.inc/fu...
https://api.drupal.org/api/drupal/modules%21system%21theme.api.php/funct...
https://www.drupal.org/node/85922
https://api.drupal.org/api/drupal/themes%21garland%21theme-settings.php/...


وضعیت: آفلاین
  • تعداد ارسال: ۶۷
  • تاریخ عضویت: ۲۰۱۴/۱۰/۱۰
  • آخرین حضور: ۲۰۱۵/۰۷/۱۷
  • سمت: کاربر عضو
  • موقعیت: نامشخص

خیلی ممنون

امتحان می کنم و نتیجه را اعلام میکنم.