Советы разработчику компонентов Joomla ч.1
Или основные грабли, на которые приходится наступать при разработке компонентов.
Itemid
Всем, а может и не всем, известный параметр. Он очень важный, так как влияет на адрес. Почему то разработчики забывают о нем при формировании ссылок в шаблонах компонентов. А ведь если его не указывать ссылки портятся.
Выводы: в файле view.html.php дописывать код
$menus = &JSite::getMenu(); $menu = $menus->getActive(); $this->assignRef( 'Itemid', $menu->id );
а в самом шаблоне писать ссылку учитывая Itemid
...<a href="<?php echo JRoute::_('......&Itemid='.$this->Itemid ); ?>">....
Хлебные крошки
Очень часто разработчики забывают про хлебные крошки. А они добавляются очень просто:
$pathway = $mainframe->getPathWay(); $pathway->addItem( "Category 3", JRoute::_('index.php?option=com_mycomponent&view=category&id=3') ); $pathway->addItem( "Product 2", JRoute::_('index.php?option=com_mycomponent&view=product&id=2') );
Тайтлы
А точнее мета теги. Тоже очень важный элемент на странице. Устанавливаются они следующим образом:
$document =& JFactory::getDocument(); $document->setTitle( "My title" ); $document->setDescription("Краткое описание страницы"); $document->setMetadata( "keywords", "ключевые, слова" );
ЧПУ или файл router.php
Почему то большинство разработчиков забывают про стандартное ЧПУ Joomla. Оно описывается в файле router.php. Пример с применением этого файла я опишу в будущих статьях.
Соблюдать правила структуры файлов компонента Joomla
Учитесь различать view, model, controller.
View – это шаблоны, т.е. код который отвечает за отображение информации.
Model – содержит функции для обработки данных. ВАЖНО! Не содержит HTML кода.
Controller – принимает входящие данные и обрабатывает с помощью методов модели. Подключает соответствующие view файлы.
REPLY))
Здравствуйте. Я по поводу навигации.. вы пишите :
$pathway = $mainframe->getPathWay();
$pathway->addItem( “Category 3″, JRoute::_(‘index.php?option=com_mycomponent&view=category&id=3′) );
$pathway->addItem( “Product 2″, JRoute::_(‘index.php?option=com_mycomponent&view=product&id=2′) );
При таком добавлении есть проблема, что когда перейти на главную страницу, потом в какую-то галерею, а потом на свой компонент то так и будет Главная-Галерея-Компонент1
А как сделать что бы видеть именно навигацию а не весь путь?
REPLY))
Путь зависит от Itemid. Если этот параметр передается в адресной строке – то хлебные крошки будут содержать еще и ссылку на этот пункт меню.