PHPShopCore
Материал из PHPShop CMS
PHPShopCore - это основное ядро системы, включающая в себя все функции по обработке информации из БД, генерацию времени изменения страницы, титлы, хлебные крошки, парсинг шаблонов и другие функции.
В принципе, для работы сайта кроме ядра и дополнительных вспомогательных библиотек ничего не требуется. Ядро содержит ряд готовых методом, наследуя и изменяя которые, можно добиться реализации всех задач системы управления сайта.
Класс ядра предварительно загружен в индекс. Файлы, использующие логику ядра и отвечающие за ЧПУ лежат в папке /phpshop/core/адрес.core.php (например файл новостей news.core.php).
Содержание |
Создание нового файла ядра
Если вы хотите создать новый раздел site.ru/coretest/, то необходимо создать файл /phpshop/core/coretest.core.php и обязательно в нем создать класс PHPShopСoretest. Для нового файла используется форма-заготовка:
class PHPShopCoretest extends PHPShopCore { // Конструктор function PHPShopCoretest() { $this->action=array("nav"=>"index"); parent::PHPShopCore(); } function index() { // Мета $this->title="Подключение PHP логики через API - ".$this->PHPShopSystem->getValue("name"); $this->description='Подключение PHP логики'; $this->keywords='php'; // Определяем переменные $this->set('pageContent','PHPShop Core работет!'); $this->set('pageTitle','Подключение PHP логики через API'); // Подключаем шаблон $this->parseTemplate($this->getValue('templates.page_page_list')); } }
В конструкции используются title, description, keywords, set, parseTemplate
Для создания файла ядра нужно создать класс по правилам:
- Имя класса должно быть формата PHPShopИмяРаздела extends PHPShopCore
- Наличие функции конструктора PHPShopИмяРаздела()
- Наличие функции index(), отвечающую за вывод информации по умолчанию
- Файл разместить по адресу phpshop/core/ИмяРаздела.core.php
В поставку PHPShop CMS Free включен такой файл (/phpshop/core/coretest.core.php), его работу можно увидеть, перейдя по ссылке http://localhost/coretest/
Управление экшенами и условиями
Хорошо, если у нас файл просто выводит определенную информации без примера, как в приведенном выше примере, а если нужно выполнять разные функции по условиям получения различных переменных окружения (POST и GET запросы). Для учета и обработки условий используется запись в конструкторе класса:
// Список экшенов $this->action=array("nav"=>"ID","post"=>"news_plus");
Эта запись задает выполнение метода ID() при наличии переменной навигации ID (например ссылка /news/ID_12.html), выполнение метода news_plus() при наличии переменной $_POST[news_plus]. Если переменных несколько, то приоритет выполнения назначается по порядку следования в массиве.
Если несколько вариантов обработки переменных окружения, то список экшенов нужно заполнять в виде массива.
// Список экшенов $this->action=array("nav"=>"ID","post"=>array("news_plus","news_add"));
Перехват функций (Hook)
Библиотека поддерживает внедрение хуков (hook) в основную логику API для перехвата с последующими изменениями результата выполнения методом классов PHPShopCore, PHPShopElements и всех наследуемых от них классов. Для внедрения хука требуется создать модуль.
Отладка
Отладка происходит через отладочную панель, реализуемую через PHPShopDebug, выполняющей роль вывода системной информации, полезной для разработчика и используемой при отладке скрипта. Отладочная панель включается в конфигурационном файле в опции [my].