PHPShopCore

Материал из PHPShop

Перейти к: навигация, поиск

PHPShopCore - это основное ядро системы, включающая в себя все функции по обработке информации из БД, генерацию времени изменения страницы, титлы, хлебные крошки, парсинг шаблонов и другие функции.

В принципе, для работы сайта кроме ядра и дополнительных вспомогательных библиотек ничего не требуется. Ядро содержит ряд готовых методом, наследуя и изменяя которые, можно добиться реализации всех задач системы управления сайта.

Класс ядра предварительно загружен в индекс. Файлы, использующие логику ядра и отвечающие за ЧПУ лежат в папке /phpshop/core/адрес.core.php (например файл новостей news.core.php).


Содержание

Использование

Используется в качестве конструктора для создания:

  • PHPShopDoc - Обработчик подключаемых html файлов из папки pageHTML
  • PHPShopDone - Обработчик записи заказа
  • PHPShopError - Обработчик 404 ошибки
  • PHPShopExcel - Обработчик перехода с интерактивного прайса
  • PHPShopFail - Обработчик ошибки оплаты
  • PHPShopForma - Обработчик формы сообщения с сайта
  • PHPShopGbook - Обработчик гостевой книги
  • PHPShopIndex - Обработчик приветственного сообщения на главной странице
  • PHPShopLinks - Обработчик полезных ссылок
  • PHPShopMap - Обработчик карты сайта
  • PHPShopNews - Обработчик новостей
  • PHPShopOpros - Обработчик опроса
  • PHPShopOrder - Обработчик оформления заказа
  • PHPShopPage - Обработчик страниц
  • PHPShopSuccess - Обработчик успешной оплаты
  • PHPShopUsers - Обработчик кабинета пользователя
  • PHPShopShopCore - Родительский класс ядра вывода товаров


Методы

  • add() - Добавление данных в переменную вывода
  • addToTemplate() - Добавление данных в вывод парсера
  • Compile() - Компиляция парсинга
  • doLoadFunction() - Подключение функций из файлов ядра
  • get() - Выдача переменной шабонизатора
  • getValue() - Выдача системной переменной из config.ini
  • getFullInfoItem() - Выдача подробного описания
  • getListInfoItem() - Выдача списка данных (краткого описания)
  • ifValue() - Сравнение системной переменной
  • isAction() - Проверка экшена (наличие _GET или _POST переменной)
  • lang() - Вывод языкового параметра по ключу [config.ini, секция lang]
  • message() - Cообщение
  • parseTemplate() - Парсинг шаблона и добавление в общую переменную вывод
  • set() - Создание переменной шаблонизатора для парсинга
  • setError() - Сообщение об ошибке
  • setError404() - Сообщение об ошибке 404
  • setPaginator() - Генерация пагинатора (навигация по страницам)
  • setHook() - Назначение перехвата события выполнения модулем (Hook)

Свойства

Создание нового файла ядра

Если вы хотите создать новый раздел 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 включен такой файл (/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 и всех наследуемых от них классов. Для внедрения хука используется Добавочное API.