[英]How to insert HTML tags in Joomla! module title?
我要做的是为我的Joomla添加一些HTML标签! 模块标题。 我需要这样的东西
Some <b>Title</b>
但是当我保存!Joomla修剪标题并删除所有HTML标签。
我检查了管理员/ com_content,我认为应该负责插入数据库数据,但我找不到答案。
任何人都可以帮我解决这个问题吗?
查看../templates/system/html/modules.php
您可以在HTML中设置模块结构的样式。
function modChrome_myCustomModule($module, &$params, &$attribs)
{
$doc =& JFactory::getDocument();
$css = ".otherClass {}";
$css .= ".yourClass {}";
$doc->addStyleDeclaration($css);
?>
<div>
<?php if ($module->showtitle != 0) : ?>
<h1><?php echo $module->title; ?></h1>
<?php endif; ?> // post your title
</div>
<div>
<?php echo $module->content; ?> // post your module content
</div>
<?php
}
然后在index.php中调用样式化模块:
<jdoc:include type="modules" name="right" style="myCustomModule" />
所以我找到了解决方案。 它包括以前的两个答案,所以我在这里用正确的代码添加一个新答案。
首先我需要说的是,这个解决方案仅适用于固定数量的单词(最后一个,两个等)我只需要最后一个单词,所以我将发布一个单词的示例代码。
首先,作为SMacFadyen,我需要在我的模板html文件夹中创建一个新的模块结构:/templates/system/html/modules.php文件。
注意:如果您不想将这个新模块样式添加到所有模板中,而只是在其中一个模板上,则需要将module.php放在模板的html文件夹中。
由SMacFadyen提供的内容如下:
function modChrome_myCustomModule($module, &$params, &$attribs)
{
$doc =& JFactory::getDocument();
$css = ".otherClass {}";
$css .= ".yourClass {}";
$doc->addStyleDeclaration($css);
?>
<div>
<?php if ($module->showtitle != 0) : ?>
<h1><?php echo $module->title; ?></h1>
<?php endif; ?> // post your title
</div>
<div>
<?php echo $module->content; ?> // post your module content
</div>
<?php
}
然后由Hanny的评论过期我添加了一些PHP代码来匹配标题的最后一个单词并将其存储在一个新的varibale中。代码如下所示:
$wrap_tag = 'b';
$html_title = preg_replace("~\W\w+\s*$~", '<'.$wrap_tag.'>'.'\\0'.'</'.$wrap_tag.'>', $module->title);
注意: $wrap_tag
变量存储您想要的标记。 你可以把b,em,u等等有不同的结果。
最后一件事是替换显示的标题,所以我已经替换了这段代码: <h1><?php echo $module->title; ?></h1>
<h1><?php echo $module->title; ?></h1>
这一个: <h1><?php echo $html_title; ?></h1>
<h1><?php echo $html_title; ?></h1>
最终结果如下:
function modChrome_myCustomModule($module, &$params, &$attribs)
{
$doc =& JFactory::getDocument();
$css = ".otherClass {}";
$css .= ".yourClass {}";
$wrap_tag = 'b';
$html_title = preg_replace("~\W\w+\s*$~", '<'.$wrap_tag.'>'.'\\0'.'</'.$wrap_tag.'>', $module->title);
$doc->addStyleDeclaration($css);
?>
<div>
<?php if ($module->showtitle != 0) : ?>
<h1><?php echo $html_title; ?></h1>
<?php endif; ?> // post your title
</div>
<div>
<?php echo $module->content; ?> // post your module content
</div>
<?php
}
感谢大家的帮助。
龙门架可以帮助你完成你想要的东西(第一个单词是单向的,第二个单词是另一个单词) - 但是要完成你正在寻找的一个任务需要花费大量的开销。 最终你必须为你的模板创建一个模板覆盖,然后用php做一些创意编辑,以便让它以这种方式显示。
没有快速简便的方法来完成这项工作。 你必须在后端做一些PHP编码并编辑模板(使用覆盖,这样你就不会破解核心文件)。 最终你可能需要编写PHP代码来拆分标题,并使用CSS将格式应用于每个拉开的单词(或字符串,视情况而定)。
希望有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.