it-swarm.asia

تخصيص إخراج ارتباط القائمة

في Drupal 7 ، كيف يمكنني اعتراض عرض القائمة في template.php وإضافة الأنابيب بعد روابط القائمة؟

حاولت استخدام template_preprocess_menu_tree لكني لا أعتقد أن هذا ما أبحث عنه. أريد تغيير بنية HTML لقائمتين.

7
Kevin

theme_menu_link () فعلت الحيلة. يحتوي على مصفوفة تحت عنصر #original_link الذي يحتوي على اسم القائمة فيه. باستخدام ذلك ، يمكنني إضافة ارتباطات محددة الأنابيب إلى قوائم معينة.

http://api.drupal.org/api/drupal/includes--menu.inc/function/theme_menu_link/7

7
Kevin

قد يكون هذا مفيدًا. يمكنك استخدام وظائف ما قبل المعالجة لتغيير أو إضافة شيء إلى ارتباط القائمة.

function THEME_preprocess_menu_link(&$variables) {
  $variables['element']['#below']['#markup'] = ' <span>→</span>';
}

يضاف في هذا الرمز إلى كل عنصر ارتباط التنقل.

5
kalabro

أنا شخصياً أود فقط إضافة الأنبوب باستخدام CSS - فأنت لا تريد حقًا الأنابيب في ترميزك لأنها عرضية بحتة:

.breadcrumb li:after {
  content: "|";
  margin: 0 5px; // optional styling nicety
}

.breadcrumb li:last-child::after {
  content: "";
}
5
danbohea

القوائم تحت عنوان وظيفة theme_links. ستحتاج إلى إنشاء نسخة في [مجلد المظاهر] /MYTHEME/template.php وإعادة تسميتها إلى روابط MYTHEME_. يمكنك العثور على الوظيفة الافتراضية لـ drupal 7 عن طريق زيارة: http://api.drupal.org/api/drupal/includes--theme.inc/function/theme_links/ 7

ستتمكن الآن من تخصيص كيفية ظهور القوائم من ملف template.php.

1
Gelus

أوصي باستخدام البرنامج المساعد لهذا. البرنامج التعليمي الكامل هنا: إنشاء رابط قائمة باستخدام ترميز html في drupal 8

namespace Drupal\MYMODULE\Plugin\Menu;

use Drupal\Core\Menu\MenuLinkDefault;

/**
 * A menu link that displays number of points.
 */
class MyMessagesMenuLink extends MenuLinkDefault {

  /**
   * {@inheritdoc}
   */
  public function getTitle() {
    $count = 0;
    if(\Drupal::currentUser()->isAuthenticated()) {
      // Load in your count here
      ...
    }
    return $this->t('My messages <span class="badge badge-dark">@count</span>', ['@count' => $count]);
  }

  /**
   * {@inheritdoc}
   */
  public function getCacheMaxAge() {
    return 0;
  }

}
0
Stef Van Looveren

سيكون استخدام HTML في خيار القائمة مفيدًا جدًا من الوحدة النمطية أيضًا ، أي إدراج صورة كخيار قائمة. هل هناك طريقة للقيام بشيء مثل function MODULE_preprocess_menu_link(&$variables).

PS: سأطلب هذا كسؤال منفصل أيضا.

0
Gabriel R.