Доброго времени суток.
Начну с того я в основном работал с такими FW как Yii,
Zend, Kohana.
В итоге у меня образовалось не понимание платформы Joomla, расхождение паттернов или как там оно по умному...
На текущий момент выпала задачка поработать с Joomla версии 2.5.х - нужно создать компонент для магазина автозапчастей.
Прочитал порядка 4-6 туториалов с разных на вроде как вменяемых сайтах.
Все они приводят одни и теже примеры, с разными пояснениями - один вид, контроллер по дефолту и модель с таки же именем как вид.
В случае использованных мною ранее FW, главным является контроллер, который определяется через маршрут - путем анализа REQUEST_URI по регулярному вырожению.
Далее в контролере я определяю модель, получаю данные и передаю их в вид, по дефолту с таким де именем как контроллер(ну почти).
В Joomla, как я понял, главным является вид, то что в GET переменой view, если не юзать ЧПУ(не знаю даже если оно тут).
И далее от нее все пляшет - это как я понял, возможно Неправильно.
Все в принципе работает, но не хочется плодить бесконечное кол-во таких ячеек/частей, хочется как то сгруппировать.
У меня получилось вывести
?option=com_autocatalog&view=marksДалее идет
?option=com_autocatalog&view=model&mark=IDИ все работает, но у некотрых каталогов нужно переключить, так скажем, интерфейс, или по другому(может правильному) контроллер (алгоритм, ход мыслей).
В итоге я формирую такой url:
?option=com_autocatalog&view=bmw&controller=bmw&task=customActioncontroller=bmw - должен вроде отрабатывать по умолчанию, но решил "перебздеть"
Метод
customAction присутвтует в контроллере в
site/controller/bmw.php, но он не отрабатыват.
Делаю "ход конем" добавлю этот же метод:
public function customAction(){
echo 'custom action bmw';
}
В
site/autocatalog.php, перепаковываю->заливаю и вижу искомую надпись.
Что я Неправильно делал, почему в
site/controller/bmw.php не отработало?
В итоге мне нужно получить такую схему:
?option=com_autocatalog
&interface=(bmw|toyota)
&method=(getMarkets|getModel|...)Надеюсь получилось объяснить. Если что спрашивайте дополню, не знаю что излить еще нужно...
Благодарю за внимание.