LiveInternetMail.ru
Форум русской поддержки Joomla!® CMS
23.05.2013, 03:39:52 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 2.5 FAQ Joomla 1.5 FAQ Joomla 1.0 FAQ Правила форума Новости Joomla Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор Тема: Группировка параметров в XML в виде аккордеона  (Прочитано 6204 раз)
0 Пользователей и 1 Гость смотрят эту тему.
userxp
Администратор
*******

Репутация: +401/-6
Offline Offline

Пол: Мужской
Сообщений: 2389


Злой и ужасный бармалей


« : 16.07.2009, 04:29:44 »

Задача - у меня, например, есть свой компонент и XML файл, который я отдаю Joomla 1.5 для вывода параметров.
Допустим, что файл достаточно большой и я хочу группировать параметры так же, как у Joomla - слайдером.
Все бы ничего (J1.5 позволяет использовать группировку, указывая аттрибут group="..."), но группировка параметров НЕ работает в пункте меню.
Там "работают" только заранее определенные группы Basic, Component, Advanced и Legacy и то вы можете воспользоваться двумя - первая (Basic) подключается из XML-файла данного вида(view) для пункта меню (см. сайт/components/{компонент}/views/{шаблон}/tmpl/файл.xml ).
Вторая группа получается подключением любого XML-файла, лежащего в корне компонента (сайт/components/{компонент}) или из XML-файла установщика

Собссно, вот и весь расклад... грустно, правда?  Angry
Щас мы все поправим Azn Наеб... ну... в смысле, обманем товарисча, причем без аккуратно и без грубой нечистой силы (хаков). Мы же любим обновления, правда?  Grin
ТотозЭ!

для начала создадим элемент и папку для него
пусть это будет админ-части /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 - они задействованы системно и лучше их не беспокоить Azn

теперь переходим к XML файлу
в группе <params>...</params> добавляем путь к нашему новому элементу,
<params addpath="/administrator/components/{компонент/joomla/elements">...</params>
что бы Joomla знала, где брать обработчик
прим.: имя файла и тип элемента должны совпадать!



не забывайте правильно учитывать абсолютные/относительные пути (!)

так, а теперь для разделения параметров на группы, между ними вставляем

Код
<param name="" type="maspacer" description="_TEXT_CONSTANT_" />

теперь что такое _TEXT_CONSTANT_ : это текстовая переменная, которая должна храниться в языковом файле и быть набрана английскими буквами
Эта переменная, будет заменена на нужный текст и покажется в качестве заголовка группы параметров.

вот собссна и все.
Have Fun!  Cheesy
« Последнее редактирование: 16.07.2009, 15:47:11 от userxp » Записан
 
softman_xp
Давно я тут
****

Репутация: +27/-0
Offline Offline

Пол: Мужской
Сообщений: 294


Разработка для Joomla


« Ответ #1 : 04.05.2011, 18:14:24 »

не функционирует элемент в таком виде:

Цитировать
Fatal error: Class 'JPaneSliders' not found in Z:\home\navipoint5.ru\www\administrator\components\com_mycomponent\elements\maspacer.php on line 11
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Рейтинг@Mail.ru Rambler Top100 Powered by SMF 1.1.18 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet