Вопрос не простой. Поэтому придется описать все подробно.
Обычно для каждого вида в компоненте у нас есть:
- своя подпапка в папке views
Например views/helloworld с файлом вида view.html.php и папкой шаблона tmpl с шаблоном default.php
- Свой контроллер в папке controllers
- Свой файл модели в папке models
При этом для администраторской части, если мы хотим работать с таблицами SQL и добавить реакцию на toolbar кнопки такие как Add, Edit и т.п. мы, как описано во всех примерах, делаем отдельные виды, контроллеры, модели. Например в примерах типа HelloWorld появляются классы HelloWorld
s.
Вторая "неприятность", приходится снова делать свои контроллеры, виды, модели для каждого LinkBar'а. Например в стандартном компоненте com_banners их четыре - Баннеры, Категории, Клиенты, Статистика.
Вопрос 1.
Как все LinkBar запихнуть в одну директорию tmpl вида?
Это Я решил.
Схема действий такая:
- Создаем файл helper типа:
class TSJsHelper
{
public static function addSubmenu($vName)
{
JSubMenuHelper::addEntry(
JText::_('COM_MY_SUBMENU_MAIN'),
'index.php?option=com_my&view=mys&layout=main',
$vName == 'main'
);
JSubMenuHelper::addEntry(
JText::_('COM_MY_SUBMENU_EXT'),
'index.php?option=com_my&view=mys&layout=ext',
$vName == 'city'
);
...
А далее в папку tmpl нашего вида кладем файлы main.php и ext.php стандартного содержания из default.php
Заполнить каждый Linkbar данными их разных таблиц SQL тоже не проблема. Просто вместо $this->items для каждой таблицы используем свои функции например $this->mainitems, которые прописываем в модели и в view.html.php формы вызываем.
Вопрос 2.
Бьюсь уже два дня.
Теперь у меня один вид view.html.php с несколькими шаблонами в папке tmpl. Каждый шаблон я вывожу на свой Linkbar (так и хочется назвать его табом - очень похоже).
Но так как вид у меня один, то и кнопки Add и Edit у меня общие для всех Linkbar.
А значит реакция при их нажатии будет одна и та же, так как будут отрабатывать одни и те же модели и контроллеры.
Как сделать так чтобы одни и те же кнопки в ToolBar вызывали в зависимости от активного Linkbar разные контроллеры и модели?