繁体   English   中英

如何在Joomla中插入HTML标记!模块标题?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM