Joomla 3模块h3标题跨度

时间:2014-05-05 09:52:24

标签: php joomla module

我可以更改模块标题中第一个单词的颜色。 可以通过在标题的第一个单词中添加跨度来完成。

下面的modules.php代码适用于此。

BUT

在Joomla admin中,当我为Module Class Suffix创建一个类时,它不会为前端的模块创建。

module.php中缺少一些东西来启用在Joomla admin中创建的Module Class Suffix

这是我对templates / mytemplate / html / modules.php

的代码
    <?php
/**
 * @package     Joomla.Administrator
 * @subpackage  Templates.protostar
 *
 * @copyright   Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */

defined('_JEXEC') or die;

/**
 * This is a file to add template specific chrome to module rendering.  To use it you      would
 * set the style attribute for the given module(s) include in your template to use the     style
  * for each given modChrome function.
 *
 * eg.  To render a module mod_test in the submenu style, you would use the following     include:
 * <jdoc:include type="module" name="test" style="submenu" />
*
 * This gives template designers ultimate control over how modules are rendered.
 *
 * NOTICE: All chrome wrapping methods should be named: modChrome_{STYLE} and take the     same
 * two arguments.
 */

/*
 * Module chrome for rendering the module in a submenu
 */
function modChrome_xhtmlwithcolor($module, &$params, &$attribs)
{
$headerLevel = isset($attribs['headerLevel']) ? (int) $attribs['headerLevel'] : 3;
if (!empty ($module->content)) : ?>

<?php if ($module->showtitle) : ?>
<h<?php echo $headerLevel; ?>><?php
$title = $module->title;
$title = split(' ', $title);
$title[0] = '<span>'.$title[0].'</span>';
$title= join(' ', $title);
echo $title;
?></h><?php echo $headerLevel; ?>>
<?php endif; ?>
<?php echo $module->content; ?>

<?php endif;
}
?>    

在index.php模板模块位置我有

<jdoc:include type="modules" name="bottom-1" style="xhtmlwithcolor" />

有人可以帮助或建议解决此问题。

1 个答案:

答案 0 :(得分:2)

moduleclass_sfx作为modChrome_xhtmlwithcolor ()变量的一部分传递到&$params。要在PHP中使用它,您可以使用以下内容:

htmlspecialchars($params->get('moduleclass_sfx'))

通常你会倾向于将你的模块包装在一个<div>中,以便在使用DOM操作等方面很好地打包它。

所以你可能有:

echo "<div class=\"" . htmlspecialchars($params->get('moduleclass_sfx')) . "\">";
... your code ...

echo "</div>";