Php 如何在Joomla菜单中添加字体图标
这是一个向joomla菜单添加字体图标的简单方法 打开modules/mod_菜单/tmpl/default.php 发现 在foreach之后添加此函数Php 如何在Joomla菜单中添加字体图标,php,joomla,Php,Joomla,这是一个向joomla菜单添加字体图标的简单方法 打开modules/mod_菜单/tmpl/default.php 发现 在foreach之后添加此函数 if(strpos($item->title,"fa-") !== false){ $titleArray = explode("fa-",$item->title); $item->title = ""; for($i=0;$i<count($titleArray);$i++)
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菜单管理器时,请在菜单标题后添加font awesome类
像这样
家庭咖啡请尝试以下内容:
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];
}
}
}
在我目前正在开发的一个网站上也有类似的问题。Joomla 3能够添加“链接css样式”,如果使用字体awsome样式(即“fa-fa-home”)填充该样式,则会将字体awsome类添加到“a”标记中。它可以工作,但不遵循fa将字体awsome类放入“i”标记的指导原则。 如果您想在joomla 3中实现它,下面是我的解决方案。 首先,我们需要为菜单创建一个模块覆盖 转到模板目录 如果不存在,则创建一个名为HTML的新目录 在HTML内部创建一个新的目录mod_菜单 从/modules/mod_menu/tmpl目录复制以下文件,并将其粘贴到templates/yourtemplate/HTML/mod_menu目录中:- default.php 默认url.php default_component.php Joomla只允许覆盖default.php文件,以便绕过此重命名 default_url.php和default_component.php 到 default_url2.php和default_component2.php 确保您位于新创建的模块覆盖目录中,因为编辑原件而不是副本很容易。 打开default.php 在第75行或其附近 将默认url的两个实例都更改为默认url 2 将默认组件更改为默认组件2
// 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、default_url2和default_组件2
// 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;
打开默认组件2.php
基本上,我们需要看看“链接css样式”中是否有字体样式
如果存在,请将样式名称保存在变量中,然后将其从链接css样式中删除。然后,我们可以使用保存的字体和某种样式添加“i”标记。
这是密码
在第13行或其周围更换
$class = $item->anchor_css ? 'class="' . $item->anchor_css . '" ' : '';
与
i、 e
对default_url2.php重复上述步骤。代码的第一部分完全相同,但是default_url中的开关与default_组件不同
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-home”的形式将您的fa样式添加到链接css样式字段
点击保存,打开前端,刷新,宾果 没有相同的结果:无论如何,谢谢你的时间。这是一个问题还是一个教程?
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;
}
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;
}
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;