Задача - у меня, например, есть свой компонент и XML файл, который я отдаю Joomla 1.5 для вывода параметров.
Допустим, что файл достаточно большой и я хочу группировать параметры так же, как у Joomla - слайдером.
Все бы ничего (J1.5 позволяет использовать группировку, указывая аттрибут
group="..."), но группировка параметров НЕ работает в пункте меню.
Там "работают" только заранее определенные группы Basic, Component, Advanced и Legacy и то вы можете воспользоваться двумя - первая (Basic) подключается из XML-файла данного вида(view) для пункта меню (см.
сайт/components/{компонент}/views/{шаблон}/tmpl/файл.xml ).
Вторая группа получается подключением любого XML-файла, лежащего в корне компонента (сайт/components/{компонент}) или из XML-файла установщика
Собссно, вот и весь расклад... грустно, правда?
Щас мы все поправим
Наеб... ну... в смысле, обманем товарисча, причем без аккуратно и без грубой нечистой силы (хаков). Мы же любим обновления, правда?
ТотозЭ!
для начала создадим элемент и папку для него
пусть это будет админ-части
/administrator/components/{компонент/joomla/elementsсоздаем там файл... скажем
maspacer.phpвот его содержимое
// no direct access
defined('_JEXEC') or die('Restricted access');
class JElementMaspacer extends JElement {
var $_name = 'Maspacer';
function fetchElement($name, $default, &$xmlNode, $control_name='') {
$text = $xmlNode->_attributes['description'];
$html = '';
$html .= '</td></tr></table>';
$html .= JPaneSliders::endPanel();
$html .= JPaneSliders::startPanel( ''.JText::_($text), $text );
$html .= '<table width="100%" class="paramlist admintable" cellspacing="1">';
$html .= '<tr><td class="paramlist_description"></td>';
$html .= '<td class="paramlist_value">';
return $html;
}
}
обратите внимание на
_attributes['description']; - отсюда у элемента будем брать тест для заголовка группы-слайдера
в общем-то, можно использовать любой аттрибут - так что это по желанию.
разве что не применяйте name, label и default - они задействованы системно и лучше их не беспокоить
теперь переходим к XML файлу
в группе
<params>...</params> добавляем путь к нашему новому элементу,
<params addpath="/administrator/components/{компонент/joomla/elements">...</params>что бы Joomla знала, где брать обработчик
прим.: имя файла и тип элемента должны совпадать!не забывайте правильно учитывать абсолютные/относительные пути (!)так, а теперь для разделения параметров на группы, между ними вставляем
<param name="" type="maspacer" description="_TEXT_CONSTANT_" />
теперь что такое _TEXT_CONSTANT_ : это текстовая переменная, которая должна храниться в языковом файле и быть набрана английскими буквами
Эта переменная, будет заменена на нужный текст и покажется в качестве заголовка группы параметров.
вот собссна и все.
Have Fun!