如何将字体真棒图标添加到Joomla菜单

时间:2014-04-25 11:41:39

标签: php joomla

这是向joomla菜单添加字体真棒图标的简单方法。

打开modules / mod_menu / tmpl / default.php

查找

foreach ($list as $i => &$item) :

foreach添加此功能后。

if(strpos($item->title,"fa-") !== false){
    $titleArray = explode("fa-",$item->title);        
    $item->title = "";
    for($i=0;$i<count($titleArray);$i++){
        if($i){
            $item->title .= "<i class=\"fa fa-".$titleArray[$i]."\"></i>";
        }else{
            $item->title .= $titleArray[$i];
        }
    }       
}

当你去joomla菜单管理器菜单标题后放置字体真棒类。

喜欢这个。

家庭咖啡

2 个答案:

答案 0 :(得分:0)

尝试下面的内容:

      if(strpos($item->title,"|") !== false){
                $titleArray = explode("|",$item->title);        
                $item->title = "";
                for($i=0;$i<count($titleArray);$i++){
                    if($i){
                        $item->title .= html_entity_decode("<i class=\"fa ".$titleArray[$i]."></i>");
                    }else{
                        $item->title .= $titleArray[$i];
                    }
                }       
            }

答案 1 :(得分:0)

在我正在处理的网站上遇到类似的问题。 Joomla 3能够添加一个'链接css样式',如果填充了字体awsome样式(即'fa fa-home')将字体awsome类添加到'a'标记它可以工作,但它不遵循输入“i”标签的FA指南。 如果你想在joomla 3中做这个属性,这是我的解决方案 首先,我们需要为菜单创建模块覆盖 转到模板目录 如果不是exisits,请创建一个名为HTML的新目录 在HTML里面创建一个新目录mod_menu
从/ modules / mod_menu / tmpl目录复制以下文件并将它们粘贴到templates / yourtemplate / HTML / mod_menu目录中: -
    如default.php
    default_url.php
    default_component.php
Joomla只允许您覆盖default.php文件,以便绕过此重命名 default_url.php和default_component.php

default_url2.php和default_component2.php
(确保您位于新创建的模块覆盖目录中,因为它可以轻松编辑原始文件,而不是副本 打开default.php
在75号线或其附近 将default_url的两个实例更改为default_url2
将default_component更改为default_component2

// Render the menu item.
switch ($item->type) :
    case 'separator':
    case 'url':
        require JModuleHelper::getLayoutPath('mod_menu', 'default_url2');
        break;
    case 'component':
        require JModuleHelper::getLayoutPath('mod_menu', 'default_component2');
        break;
    case 'heading':
        require JModuleHelper::getLayoutPath('mod_menu', 'default_' . $item->type);
        break;

    default:
        require JModuleHelper::getLayoutPath('mod_menu', 'default_url2');
        break;
endswitch;

现在我们可以控制默认值default_url2和default_component2

打开default_component2.php 基本上我们需要看看'link css style'中是否有字体awsome样式 如果有,请将样式名称保存在变量中,然后从链接css样式中删除它。然后我们可以使用保存的字体awsome样式添加'i'标签。 这是代码 在第13行或附近取代

$class = $item->anchor_css ? 'class="' . $item->anchor_css . '" ' : '';

$anchor_css = $item->anchor_css;
if (preg_match_all("/(fa-[-a-z0-9]+)/", $anchor_css, $fa)){ //look for a font awsome class name beginning with fa- if found the lass name is stored in $out[0][0]
    $anchor_css = preg_replace("/(fa-[-a-z0-9]+)/", "", $anchor_css);   //remove the font awsome class name starting with fa-
    $anchor_css = preg_replace("/fa/", "", $anchor_css);    //remove the fa prefix from the class
    $anchor_css = preg_replace('!\s+!', ' ', $anchor_css);  //remove multiple spaces and replace with a single space
    $anchor_css = trim($anchor_css);    //remove leading/trailing spaces
}
$fa_icon = $fa[0][0] ? '<i class="fa '.implode(' ',$fa[0]).'" ></i>' :'';   //if a font awsome class name exists, create an <i></i> tag
$class = $anchor_css ? 'class="' . $anchor_css . '" ' : '';

现在我们需要在代码中添加图标 在34号线或附近添加 echo $ fa_icon;  到你想要的字体awsome图标出现的位置。我想在'a'标签之前使用我的,所以这是我的新开关

switch ($item->browserNav)
{
    default:
    case 0:
        echo $fa_icon;
        ?>
        <a <?php echo $class; ?>href="<?php echo $item->flink; ?>" <?php echo $title; ?>><?php echo $linktype; ?></a>
        <?php
        break;
    case 1:
        // _blank
        echo $fa_icon;
        ?>
        <a <?php echo $class; ?>href="<?php echo $item->flink; ?>" target="_blank" <?php echo $title; ?>><?php echo $linktype; ?></a>
        <?php
        break;
    case 2:
    // Use JavaScript "window.open"
        echo $fa_icon;
        ?>
        <a <?php echo $class; ?>href="<?php echo $item->flink; ?>" onclick="window.open(this.href,'targetWindow','toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes');return false;" <?php echo $title; ?>><?php echo $linktype; ?></a>
        <?php
        break;
}

如果你想让字体awsome图标在'a'标签内,只需移动

即可
echo $fa_icon;

switch ($item->browserNav)
{
    default:
    case 0:
        ?>
        <a <?php echo $class; ?>href="<?php echo $item->flink; ?>" <?php echo $fa_icon . $title; ?>><?php echo $linktype; ?></a>
        <?php
        break;
    case 1:
        // _blank
        ?>
        <a <?php echo $class; ?>href="<?php echo $item->flink; ?>" target="_blank" <?php echo $fa_icon . $title; ?>><?php echo $linktype; ?></a>
        <?php
        break;
    case 2:
    // Use JavaScript "window.open"
        ?>
        <a <?php echo $class; ?>href="<?php echo $item->flink; ?>" onclick="window.open(this.href,'targetWindow','toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes');return false;" <?php echo $fa_icon . $title; ?>><?php echo $linktype; ?></a>
        <?php
        break;
}

对default_url2.php重复上述操作,代码的第一部分完全相同,但default_url中的开关与default_component不同

switch ($item->browserNav) :
    default:
    case 0:
        echo $fa_icon;
        ?>
        <a <?php echo $class; ?>href="<?php echo $flink; ?>" <?php echo $title; ?>><?php echo $linktype; ?></a><?php
        break;
    case 1:
        // _blank
        echo $fa_icon;
        ?>
        <a <?php echo $class; ?>href="<?php echo $flink; ?>" target="_blank" <?php echo $title; ?>><?php echo $linktype; ?></a><?php
        break;
    case 2:
        // Use JavaScript "window.open"
        $options = 'toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,' . $params->get('window_open');
        echo $fa_icon;
        ?>
        <a <?php echo $class; ?>href="<?php echo $flink; ?>" onclick="window.open(this.href,'targetWindow','<?php echo $options;?>');return false;" <?php echo $title; ?>><?php echo $linktype; ?></a><?php
        break;
endswitch;

保存所有文件 就是这样 要在菜单项中添加字体图标,只需转到joomla菜单管理器,打开菜单项,单击“链接类型”标记,然后以“fa fa-”的形式将fa样式添加到链接css样式字段中。家' 点击保存,打开前端,刷新和BINGO!