تصویر امیر حسین اکبری

به منظور استفاده از Font awesome در دروپال مراحل زیر را انجام دهید:

1- دریافت Font awesome و افزودن فونت در theme خود و افزودن فایل های css آن در theme.info

2- نصب و فعال سازی ماژول Menu attributes

3- افزودن کد زیر در فایل template.php که در پوشه قالب قرار دارد.

4- افزودن نام کلاس آیکون مورد نظر که در وبسایت font awesome به آن اشاره شده است هنگام ساخت منوها در فیلد classes که بعد از فعال نمودن ماژول menu attributes به منوها افزوده می شود. به عنوان مثال برای افزودن آیکون home در منوی خود تنها کافیست کلاس fa-home را به منوی خود بیافزایید.

function THEMENAME_menu_link(array $variables) {
  $element = $variables['element'];
  $sub_menu = '';
  _THEMENAME_menu_fa_icons($element);
  if ($element['#below']) {
    $sub_menu = drupal_render($element['#below']);
  }
  $output = l($element['#title'], $element['#href'], $element['#localized_options']);
  return '<li' . drupal_attributes($element['#attributes']) . '>' . $output . $sub_menu . "</li>\n";
}

function _THEMENAME_menu_fa_icons(&$menu_item) {
  if (isset($menu_item['#localized_options']['attributes']['class'])) {
    $i_classes = array();
    foreach ($menu_item['#localized_options']['attributes']['class'] as &$attributes_class) {
      $classes = explode(' ', $attributes_class);
      foreach ($classes as $class) {
        if (substr($class, 0, 3) == 'fa-') {
          $i_classes[] = $class;
          $attributes_class = str_replace($class, '', $attributes_class);
        }
      }
    }

    if (count($i_classes)) {
      $i_classes[] = 'fa';
      $menu_item['#title'] = '<i' . drupal_attributes(array('class' => $i_classes)) . '></i> <span>' . $menu_item['#title'] . '</span>';
      $menu_item['#localized_options']['html'] = TRUE;
    }
  }
}

دیدگاه‌ها

تصویر hamed azizi

hamed azizi

خیلی مفید بود، ممنون

تصویر امیر حسین اکبری

تصویر Mehrdad Re

Mehrdad Re

ممنون. اموزش خیلی مفیدی بود.

تصویر Mehrdad Re

Mehrdad Re

من این کد رو در فایل template.php قرار دادم اما به نظر میرسه که کار نمیکنه.

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

محمدعلی اکبری

عبارت THEMENAME رو با نام قالب خودتون عوض کردید؟

تصویر Mehrdad Re

Mehrdad Re

بله. دقیقا اون رو جایگزین کردم اما نتیجه نداد. شما خودتون این کد رو تست کردید ؟
من مجبور شدم از این تابع استفاده کنم. THEME_links__system_main_menu($variables)

منتها این تابع فقط مختص منوی اصلی هست.

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

محمدعلی اکبری

سلام؛ من از این نمونه کد در سایت http://sper.ir هم استفاده کردم.

تصویر امیر حسین اکبری

امیر حسین اکبری

سلام

بله تست شده می باشد.

از تابع THEMENAME_menu_link استفاده شود فقط کافیست THEMENAME را به نام Theme خود تغییر دهید.
 

تصویر hamed azizi

hamed azizi

آقای اکبری عزیز
این سایتی که گفتید، اسلاید شو به وسیله ماژول ایجاد شده یا اینکه از Jquery استفاده کردید...؟

تصویر Mehrdad Re

Mehrdad Re

احتمال داره از این ماژول استفاده کرده باشه. https://drupal.org/project/views_fractionslider

اما کامپوننت جی کوئریش layer slider هست.

تصویر Mehrdad Re

Mehrdad Re

ضمن تشکر از شما خواستم عرض کنم که این کد درست هست و مشکل از طرف من بود. سپاسگذارم.

تصویر امیر حسین اکبری

تصویر Mehrdad Re

Mehrdad Re

میشه یه راهنما در مورد راه اندازی x-debug در محیط jetbrain phpstorm در سایت قرار بدید.

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