Как вставить HTML-теги в Joomla!название модуля? - PullRequest
3 голосов
/ 23 октября 2011

То, что я пытаюсь сделать, это добавить несколько HTML-тегов в мою Joomla! названия модулей. Мне нужно что-то вроде этого

Some <b>Title</b>

но когда я сохраняю! Joomla обрезает заголовки и удаляет все теги HTML.

Я проверил administrator / com_content, который, я думаю, должен отвечать за вставку данных базы данных, но я не смог найти там ответ.

Кто-нибудь может мне помочь с этой головной болью?

Ответы [ 3 ]

4 голосов
/ 24 октября 2011

Проверьте ../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"  />
2 голосов
/ 25 октября 2011

Итак, я нашел решения.Он включает в себя оба предыдущих ответа, поэтому я помещаю новый ответ с правильным кодом.

Прежде всего я должен сказать, что это решение работает только для фиксированного количества слов (последний, два и т. д.) Мне нужен только последний, поэтому я опубликую пример кода с одним словом.

Сначала как SMacFadyen sad Мне нужно было создать новую структуру модуляв папке html моего шаблона: /templates/system/html/modules.php file.

Примечание. Если вы не хотите добавлять этот новый стиль модуля во все шаблоны, но только на один изих вам нужно поместить 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
}

Затем срок действия истеккомментарии Хэнни Я добавил немного 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 $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
}

Спасибо всем за помощь.

1 голос
/ 24 октября 2011

Среда Gantry может помочь вам выполнить то, что вы хотите (1-е слово стилизовано в одну сторону, 2-е слово стилизовано в другую), но это большая нагрузка, просто выполнить ту задачу, которую вы ищете.В конечном итоге вам нужно будет создать переопределение шаблона для вашего шаблона, а затем выполнить некоторое творческое редактирование с помощью php, чтобы он отображался таким образом.

Нет быстрого и простого способа сделать это.Вам нужно будет выполнить некоторое php-кодирование на бэкэнде и отредактировать шаблон (используйте переопределение, чтобы не взламывать основные файлы).В конечном счете, вам, вероятно, придется кодировать php, чтобы разделить заголовок, и применить форматирование к каждому разделенному слову (или строке слов в зависимости от обстоятельств), используя CSS.

Надеюсь, что это поможет.

...