gpt4 book ai didi

Drupal 7 - 将类名附加到菜单 block

    转载 作者:行者123 更新时间:2023-12-01 23:51:08 26 4
    gpt4 key购买 nike

    我一直在思考如何在模板文件中操作菜单 block 在 html 中输出的内容。带有 li 链接的常规 < ul class="menu"> 很好,我不需要完全破坏 drupal 为所有菜单创建的这个 html,但我想像系统主菜单一样注入(inject)类“内联”和“链接” (通常)已经在它的 ul 元素下。我可以直接在主题跳过 block 中打印菜单,但从长远来看,学习将类名注入(inject)到生成的菜单 block 的输出中会更有帮助。

    到目前为止,通过谷歌搜索,我只能找到一个可以在各个 li 上输入 ID 和类名的模块,但不能在包装它们的 ul 中输入,而且我无法获得任何类似的模板文件片段。我是来上类的。

    有一种方法可以使用钩子(Hook)函数来做到这一点,不是吗?

    最佳答案

    为什么不通过 javascript 添加你想要的类?!

    示例:

    jQuery("#MY_MENU_WRAPPER ul.menu").addClass("inline");

    如果是这种情况,请在主题的 template.php 文件中尝试以下代码

    function return_menu_markup($menu_name, $attributes)
    {
    $items = array();
    $menu_tree = menu_tree_all_data($menu_name);
    $menu_tree_output = menu_tree_output($menu_tree);

    foreach($menu_tree_output as $item_id => $item_data)
    {
    if(is_numeric($item_id) && is_array($item_data))
    {
    $items[] = l('<span>' . $item_data['#title'] . '</span>', $item_data['#href'], array(
    'attributes' => $item_data['#attributes'],
    'html' => TRUE,
    )
    );
    }
    }
    return theme('item_list', array('items' => $items, 'type' => 'ul'));
    }

    然后在模板中的任何位置,只需执行以下操作:

    $attributes = array();
    $attributes['id'] = "MY_MENU_ID";
    attributes['class'] = array('MY_CLASS_1', 'MY_CLASS_2', 'MY_CLASS_3');
    return_menu_markup("main-menu", $attributes);

    希望你能找到需要的东西:)

    -穆罕默德。

    关于Drupal 7 - 将类名附加到菜单 block <ul>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10589943/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com