В прошлой статье мы создали компонент. Создали XMl файл, в котором прописали название компонента. Если упаковать данный файл в zip архив (упаковывать нужно именно XML файл и все содержимое папки, а не саму папку) то такой компонент легко устанавливается в Joomla. Однако он. очевидно, ничего не делает. Бизнес логику компонента выполняют php файлы. Минимум, это может быть всего один файл в корне компонента с названием компонента. К примеру, если наш компонент называется com_moy_component то название php файла должно быть таким moy_component.php
Упаковывает его в zip архив и устанавливать его заново. не обязательно. Если компонент с прошлого урока был у вас уже установлен, то просто добавляем к нему этот файл прямо не сервер и все работает. Работает это так примитивно, что по началу думаешь, а зачем же тогда нужна joomla. Если написать в файле
Hello World
а затем войти на сайт по адресу http://sitename.ru/index.php?option=com_moy_component то вы сразу же увидите эту надпись. Вот и все, компонент работает. Теперь в нем можно прописывать любую необходимую логику. совсем не обязательно, что это будет связано с joomla. Вы вольны писать на обычном php, без какой либо привязки к API. В этом есть своя прелесть.
Конечно, в использовании API Joomla тоже есть свои плюсы. Это как выбрать какой лучший смартфон использовать, всегда придя в магазин электроники, все аппараты ведут себя на высоте. Но стоит ими попользоваться неделю, как все тормоза и глюки всплывают. Так и тут, как только вы напишите несколько строк своего компонента, вы сразу поймете, чего вам не хватает.
Ряд моментов. которые нужно уметь делать я перечислю.
Чтобы подключить необходимые скрипты, можно написать прямо в файле
<script src="/components/com_moy_component/jquery.js"></script>
А можно сделать это через API Joomla, чтобы файл был добавлен в head страницы. делается это так
$doc = JFactory::getDocument(); $doc->addScript('/components/com_moy_component/jquery.js');
CSS подключаются аналогично
$doc->addHeadLink ("/components/com_moy_component/style.css",'stylesheet');
Еще один момент. В joomla принято в каждом файле в самом начале прописывать такую конструкцию
<?php defined('_JEXEC') or die('Restricted access'); ?>
это нужно для того, чтобы какой-нибудь предприимчивый программист, не сделал на своем сайте такое
<iframe src="http://sitename.ru/components/com_moy_component/moy_component.php"></iframe>
Ну я думаю вы догадались, что с этим делать.
Создание компонента Joomla с нуля
- Создание компонента Joomla с нуля. Часть 1
- Создание компонента Joomla с нуля. Часть 2. PHP файл
- Создание компонента Joomla с нуля. Часть 3. Создаем установочный файл
- Создание компонента Joomla с нуля. Часть 4. Использование БД
- Создание компонента Joomla с нуля. Часть 5. Роутинг
- Создание компонента Joomla с нуля. Часть 6. Использование шаблонов
- Создание компонента Joomla с нуля. Часть 7 CRUD в контроллере
Комментарии
При попытке создать компонент с именем com_moy_component режет второе подчеркивание - com_moycomponent. А стало быть и имя файла нужно исправить на moycomponent.php
Так заработало