Дата: декабря 16, 2010
Категория: Joomla
Теги: , , , ,  

Советы разработчику компонентов Joomla ч.1

Основные ошибки при разработке компонентов JoomlaИли основные грабли, на которые приходится наступать при разработке компонентов.

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 файлы.

2 Comments

  1. ДмитрийДмитрий  
    февраля 11, 2011
    REPLY))

  2. Здравствуйте. Я по поводу навигации.. вы пишите :

    $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
    А как сделать что бы видеть именно навигацию а не весь путь?

    1F

    Путь зависит от Itemid. Если этот параметр передается в адресной строке – то хлебные крошки будут содержать еще и ссылку на этот пункт меню.

    2F

Написать ответ

 Имя

 Mail

 Сайт

[Имя и Mail обязательны для заполнения. Mail не будет опубликован.]


 9fce13c8-2714-4603-b8e7-33be6c785d58