К сожалению. коробочного решения не оказалось.
Реализация оказалось на удивление простой.
Итак, что мы хотим в итоге?
Кстати, чтобы лучше понимать суть происходящего, рекомендую(!) осилить литературные труды.
Подсказка добавляется через стили позиций.
Поэтому первым делом изменяем стиль
media\zoo\applications\jbuniversal\templates\catalog\renderer\element\jbblock.php
и заменяем код на следующее
<?php /** * JBZoo App is universal Joomla CCK, application for YooTheme Zoo component * * @package jbzoo * @version 2.x Pro * @author JBZoo App http://jbzoo.com * @copyright Copyright (C) JBZoo.com, All rights reserved. * @license http://jbzoo.com/license-pro.php JBZoo Licence * @coder Denis Smetannikov <denis@jbzoo.com> */ // no direct access defined('_JEXEC') or die('Restricted access'); // default params $params = array_merge(array( 'first' => 0, 'last' => 0, 'showlabel' => 0, 'altlabel' => '', 'element' => '', 'style' => 'jbblock', 'tag' => 'div', 'labelTag' => 'strong', 'wrapperTag' => '', 'tooltip' => 0, 'clear' => 0, 'class' => '', '_layout' => '', '_position' => '', '_index' => '', ), $params); // create label $label = ''; if ($params['showlabel']) { // add tooltip $tooltip = ''; if ($params['tooltip']) { $tooltipText = htmlentities(strip_tags(JString::trim($element->config->get('description'))), ENT_QUOTES, "UTF-8"); $tooltip = $tooltipText ? ' <span class="jbtooltip" title="' . $tooltipText . '"></span>' : ''; } // check label $labelText = ($params['altlabel']) ? $params['altlabel'] : $element->getConfig()->get('name'); $label = '<' . $params['labelTag'] . ' class="element-label"> ' . $labelText . $tooltip . '</' . $params['labelTag'] . '>'; } // collect html classes $classes = array_filter(array( 'index-' . (int)$params['_index'], $params['class'], 'element-' . $element->identifier, 'element-' . $element->getElementType(), $params['first'] ? 'first' : '', $params['last'] ? 'last' : '', )); // add clear after html $clear = $params['clear'] ? '<div class="clear clr clearfix"></div>' : ''; // render HTML for current element $render = $element->render($params); // wrapping the element HTML if ($params['wrapperTag']) { $render = '<' . $params['wrapperTag'] . '>' . $render . '</' . $params['wrapperTag'] . '>'; } // render result echo '<' . $params['tag'] . ' class="' . implode(' ', $classes) . '">', $label, ' ' . $render, '</' . $params['tag'] . '>', "\n" . $clear;Для любознательных, изменилось следующее
Далее, добавляем в CSS
Например сюда media\zoo\applications\jbuniversal\assets\css\jbzoo.css
А лучше в свой шаблон Joomla, чтобы не сломать обновлением.
.jbzoo .jbtooltip { background: url(/media/zoo/applications/jbuniversal/assets/img/misc/help.png) no-repeat 50% 50%; width: 16px; height: 16px; display: inline-block; margin-left: 12px; }
Сюда кладем картинку (она есть в атаче)
media\zoo\applications\jbuniversal\assets\img\misc\help.png
После этого в нужном шаблоне full добавим инициализацию jQueryUI Tooltip
<?php $this->app->jbassets->jqueryui(); ?> <script type="text/javascript"> jQuery(function ($) { $('.jbzoo .jbtooltip').tooltip(); }); </script>
Теперь позиции которые используют стиль jbblock могут показывать подсказки из настроек элемента
например, для таблицы будет так
<table class="jbtable"> <?php echo $this->renderPosition('tab-properties', array('style' => 'jbtable', 'tooltip' => 1)); ?> </table>
Внимание!
- Внешний вид подсказки зависит от версии jQueryUI и легко правится через "магию" CSS.
- Все тестировал на JBZoo 2.1.3, Версия Joomla и Zoo не имеют значения.
PSS Думаю добавить эту фичу в следующий релиз.