(не показано 12 промежуточных версий этого же участника)
Строка 1: Строка 1:


== Описание ==
== Описание ==
Для работы CMS необходимо и достаточно склонировать репозиторий, скачать дамп БД и прописать настройки к ней в файле settings.php
Стабильная версия CMS 1.6+


[[Мультикаталог(Версия 1.4)]]
'''Для работы CMS необходимо и достаточно склонировать репозиторий, скачать дамп БД и прописать настройки к ней в файле settings.php'''
 
Большинство функционала доступно с версии 1.4.
 
[[Мультикаталог]]
 
[[Примеры запросов]]
 
[[Отложенные события]]
 
[[Пользователи и права доступа]]


== Типовые вопросы ==
== Типовые вопросы ==
Строка 17: Строка 27:
'''Чтобы получить список дочерних страниц:'''
'''Чтобы получить список дочерних страниц:'''


$Page = APP::getInstance()->page;
$Page = APP::getPage();


$albums = PAGECONSTRUCTOR::getPageChildren($Page->itemKey, $Page->group);
$albums = PAGECONSTRUCTOR::getPageChildren($Page->itemKey, $Page->group);
'''Установить страницу админки по-умолчанию:'''
Добавить в настройки опцию admin_homepage


== Типичные ошибки ==
== Типичные ошибки ==
"Представление модели не обнаружено" - через "{% block %}" подключен несуществующий файл. Корневая директория для блоков - /views/


Ошибка 404 после обновления - некорректно заполнена переменная $_CARD_TEMPLATES в site_options.php
Корневая директория для блоков - /views/
 
TPL of the page not found - не найден шаблон в папке tpl/
 
Ошибка 404 после обновления - некорректно заполнена переменная $_CARD_TEMPLATES в define.php


Может принимать значения вида array('catalog' => 'catalog', 'project' => 'testcatalog'); а также допустимо значение в виде пустого массива array();
Может принимать значения вида array('catalog' => 'catalog', 'project' => 'testcatalog'); а также допустимо значение в виде пустого массива array();
Строка 30: Строка 47:
== Общая структура системы ==
== Общая структура системы ==
Системные файлы хранятся в app/
Системные файлы хранятся в app/
Для кастомизации программных модулей используется local/
Для кастомизации программных модулей используется local/
Для визуальной части используется views/


== Структура панели администрирования ==
Для общих шаблонов используется tpl/
'''admin/''' - панель администрирования, на сайте доступ через adm/


admin/'''admin.php''' - основной файл админки
Для программной части используется views/


admin/'''home.php''' - главная страница админки (если не предполагается - вверху сделать редирект)
==Пример подключения файла с входными данными json: ==
 
<code>$json = file_get_contents('php://input');</code>
 
<code>$data = json_decode($json, true);</code>
 
<code>require_once $_SERVER['DOCUMENT_ROOT'] . "/app/prolog_before.php";</code>
 
<code>// using cms methods:</code>
 
<code>require_once $_SERVER['DOCUMENT_ROOT'] . "/app/epilog_after.php";</code>
 
== Структура панели администрирования (/app/admin/ - старая) ==
'''admin/''' - панель администрирования, на сайте доступ через adm/ (можно задать любой другой через указание константы define('ADMIN_PREFIX', 'adm'); в /define.php)
 
admin/'''admin.php''' - основной файл административной панели
 
admin/'''home.php''' - главная страница административной панели (если не предполагается - в начале файла добавить редирект)


admin/'''blocks/''' - общая верстка панели администрирования
admin/'''blocks/''' - общая верстка панели администрирования
Строка 58: Строка 91:
'''admin/js/tinymce/plugins/jbimages/config.php''' - файл настроек плагина загрузки изображений, переменная $config['img_path'] = '/content/upload';  
'''admin/js/tinymce/plugins/jbimages/config.php''' - файл настроек плагина загрузки изображений, переменная $config['img_path'] = '/content/upload';  


admin/'''stylesheets/''' - таблицы стилей для админки
admin/'''css/''' - таблицы стилей для админки


admin/stylesheets/'''main.css''' - основные стили админки
admin/css/'''main.css''' - основные стили админки


admin/stylesheets/'''jstree.min.css''' - jquery ui (календарь)
admin/css/'''jstree.min.css''' - древо страниц
 
'''admin/uploads/''' - для сайтов с одной базой данных xls


admin/'''views/''' - страницы админки
admin/'''views/''' - страницы админки


admin/views/'''config.php''' - аналог lib/img_lib.php
== Структура ядра (/app/) ==
 
== Структура ядра ==


classes/''' - ядро движка и системные классы
classes/''' - ядро движка и системные классы
Строка 88: Строка 117:
classes/Pattern''' - объект страницы
classes/Pattern''' - объект страницы


lib''' - [[Сторонние библиотеки(Версия 1.4)]]
lib''' - [[Сторонние библиотеки]]


modules'''  - [[Модули(Версия 1.4)]]
modules'''  - [[Модули]]


== Типовые подключаемые блоки (/blocks) ==
== Типовые подключаемые блоки (/blocks) ==
Строка 119: Строка 148:
Содержимое папки следует добавлять в .gitgnore
Содержимое папки следует добавлять в .gitgnore


content/'''images''' - пользовательские изображения
content/'''uploads''' - пользовательские файлы, в т.ч. изображения


content/'''pages''' - пользовательские файлы, загруженные в админке через tinymce
content/'''pages''' - пользовательские файлы, загруженные в административной панели через tinymce


content/'''popups/''' - содержит json-файлы с настройками форм
content/'''popups/''' - содержит json-файлы с настройками форм


content/'''products/''' - изображения каталога
content/'''catalog/''' - изображения каталога


content/'''products/6301fe43f126aa0358bec5e25efd531d/''' - изображения для товара с артикулом 001
content/'''catalog/catalog/6301fe43f126aa0358bec5e25efd531d/''' - изображения для товара из каталога catalog с артикулом 001


content/'''slides/''' - изображения для слайдеров
content/'''slides/''' - изображения для слайдеров
Строка 134: Строка 163:
'''css/''' (на некоторых версиях stylesheets) - таблицы стилей, используемые на сайте
'''css/''' (на некоторых версиях stylesheets) - таблицы стилей, используемые на сайте


css/'''agatech.css''' - общие стили от движка
css/'''main.css''' - Основной стилевой файл
 
css/'''style.css''' - Основной стилевой файл


css/'''media.css''' - стилевой файл, отвечающий за адаптацию
css/'''media.css''' - стилевой файл, отвечающий за адаптацию
Строка 154: Строка 181:


js/'''common.js''' - общий файл со скриптами
js/'''common.js''' - общий файл со скриптами
js/'''order.js''' - модуль оформления заказа (optional)


js/'''jquery-2.2.4.min.js''' - JQuery 2.2.4 (ранее использовалась версия 1.12.4, полная совместимость)
js/'''jquery-2.2.4.min.js''' - JQuery 2.2.4 (ранее использовалась версия 1.12.4, полная совместимость)


== Модуль поддержки языков (/app/lang) ==
== Модуль поддержки языков (/app/lang и /local/lang) ==


lang/'''en.php'''
lang/'''en.php'''
Строка 167: Строка 192:
Запись значения через '''$msg["en"]["news"] = "News";'''
Запись значения через '''$msg["en"]["news"] = "News";'''


Вызов через '''{% lang aboutus %}''', в *.php '''APP::$langValue["news"]'''
Вызов через '''{% lang aboutus %}''', в *.php '''APP::ParseLangValue("news")'''
 
== Библиотеки, используемые только на сайте (lib) ==
Стандартный список: '''class_phpmailer.php class_smtp.php img_lib.php smtp_mail.php'''
 
== Расширения (/extensions) ==
[[Расширения(Версия 1.4)]]


== Капча от Google (/ReCaptcha) ==
== Расширения (/app/extensions и /local/extensions) ==
Библиотека, необходимая для работы ReCaptcha
[[Расширения]]


== Папка общих шаблонов конкретных страниц (/tpl) ==
== Папка общих шаблонов конкретных страниц (/tpl) ==


[[Шаблоны TPL(Версия 1.4)]]
[[Шаблоны TPL]]


== Страницы сайта (/views) ==
== Страницы сайта (/views) ==
[[Views(Версия 1.4)]]
[[Views]]
 
'''badbrowser.php''' - содержимое файла отображается при заходе на сайт со старых неподдерживаемых браузеров


== Файлы в корневой директории ==
== Файлы в корневой директории ==
'''.htaccess''' - обработка логики движка, все символические пути прописываются вручную через этот файл
'''.htaccess''' - обработка логики движка, все символические пути прописываются вручную через этот файл
'''autoload.php''' - файл для работы ReCaptcha


'''index.php''' - основной файл сайта, в основном в нем меняются только обертки для основных блоков в body, а также устанавливается метрика
'''index.php''' - основной файл сайта, в основном в нем меняются только обертки для основных блоков в body, а также устанавливается метрика
'''robots.txt''' - [[настройки индексации(версия 1.4)]]


== Файл настроек сайта (settings.php) ==
== Файл настроек сайта (settings.php) ==
'''settings.php''' - содержит типовые настройки сайта, такие как подключение к базе данных, и другие.
'''settings.php''' - содержит типовые настройки сайта, такие как подключение к базе данных, и другие.

Текущая версия от 11:27, 2 октября 2025

Описание

Стабильная версия CMS 1.6+

Для работы CMS необходимо и достаточно склонировать репозиторий, скачать дамп БД и прописать настройки к ней в файле settings.php

Большинство функционала доступно с версии 1.4.

Мультикаталог

Примеры запросов

Отложенные события

Пользователи и права доступа

Типовые вопросы

Всплывающие окна

Для создания всплывающего окна необходимо прописать путь в js /direct/test

Код всплывающего окна положить в /views/direct/test.api.php

Где test - название вашего всплывающего окна

Чтобы получить список дочерних страниц:

$Page = APP::getPage();

$albums = PAGECONSTRUCTOR::getPageChildren($Page->itemKey, $Page->group);

Установить страницу админки по-умолчанию:

Добавить в настройки опцию admin_homepage

Типичные ошибки

Корневая директория для блоков - /views/

TPL of the page not found - не найден шаблон в папке tpl/

Ошибка 404 после обновления - некорректно заполнена переменная $_CARD_TEMPLATES в define.php

Может принимать значения вида array('catalog' => 'catalog', 'project' => 'testcatalog'); а также допустимо значение в виде пустого массива array();

Общая структура системы

Системные файлы хранятся в app/

Для кастомизации программных модулей используется local/

Для общих шаблонов используется tpl/

Для программной части используется views/

Пример подключения файла с входными данными json:

$json = file_get_contents('php://input');

$data = json_decode($json, true);

require_once $_SERVER['DOCUMENT_ROOT'] . "/app/prolog_before.php";

// using cms methods:

require_once $_SERVER['DOCUMENT_ROOT'] . "/app/epilog_after.php";

Структура панели администрирования (/app/admin/ - старая)

admin/ - панель администрирования, на сайте доступ через adm/ (можно задать любой другой через указание константы define('ADMIN_PREFIX', 'adm'); в /define.php)

admin/admin.php - основной файл административной панели

admin/home.php - главная страница административной панели (если не предполагается - в начале файла добавить редирект)

admin/blocks/ - общая верстка панели администрирования

admin/blocks/aside.php - левое меню в админке

admin/blocks/head.php - блок <head> для всех страниц в админке

admin/blocks/header.php - верхнее меню в админке

admin/img/ - изображения, используемые в админке

admin/js/ - javascript-файлы используемый в админке

admin/js/main.js - основной файл с логикой работы админки

admin/js/tinymce - редактор tinymce

admin/js/tinymce/plugins/jbimages/config.php - файл настроек плагина загрузки изображений, переменная $config['img_path'] = '/content/upload';

admin/css/ - таблицы стилей для админки

admin/css/main.css - основные стили админки

admin/css/jstree.min.css - древо страниц

admin/views/ - страницы админки

Структура ядра (/app/)

classes/ - ядро движка и системные классы

classes/class.cache.php - классы кэширования данных

classes/class.db.php - классы подключения к базе данных

classes/class.debug.php - класс логгера

classes/core.php - ядро

classes/methods.php - описание системных вызовов движка, таких как post,get,api (частичная поддержка)

classes/utils.php - общие функции движка (interface OPTIONS, class EXECUTION_TIME)

classes/Pattern - объект страницы

lib - Сторонние библиотеки

modules - Модули

Типовые подключаемые блоки (/blocks)

blocks/ - типовые подключаемые блоки

blocks/aside.php - меню со списком категорий каталога

blocks/crumbs.php - хлебные крошки

blocks/footer.php - подвал сайта

blocks/head.php - блок <head> для всех страниц сайта

blocks/header.php - блок <header> для всех страниц сайта

Система кэширования (/app/cache)

Система кэширования реализована в виде нескольких частей:

1) кэширование основных опций (options)

2) кэширование шаблонов (различие с опциями во множественных значениях одного типа)

3) кэширование объектов каталога (cache/catalog)

4) пользовательские объекты кэша (cache/custom) - используются разработчиками сайтов

Пользовательский контент (/content)

Содержимое папки следует добавлять в .gitgnore

content/uploads - пользовательские файлы, в т.ч. изображения

content/pages - пользовательские файлы, загруженные в административной панели через tinymce

content/popups/ - содержит json-файлы с настройками форм

content/catalog/ - изображения каталога

content/catalog/catalog/6301fe43f126aa0358bec5e25efd531d/ - изображения для товара из каталога catalog с артикулом 001

content/slides/ - изображения для слайдеров

Таблицы стилей (/css)

css/ (на некоторых версиях stylesheets) - таблицы стилей, используемые на сайте

css/main.css - Основной стилевой файл

css/media.css - стилевой файл, отвечающий за адаптацию

Библиотека fancybox (/fancybox)

Шрифты (/fonts)

Шрифты в формате .otf .eot .svg .ttf .woff .woff2

Изображения (/img)

img/ - изображения, используемые на сайте

img/picture-default.png - картинка, используемая по-умолчанию в каталоге

Скрипты Javascript (/js)

js/ - скрипты, используемые на сайте

js/common.js - общий файл со скриптами

js/jquery-2.2.4.min.js - JQuery 2.2.4 (ранее использовалась версия 1.12.4, полная совместимость)

Модуль поддержки языков (/app/lang и /local/lang)

lang/en.php

lang/ru.php

Запись значения через $msg["en"]["news"] = "News";

Вызов через {% lang aboutus %}, в *.php APP::ParseLangValue("news")

Расширения (/app/extensions и /local/extensions)

Расширения

Папка общих шаблонов конкретных страниц (/tpl)

Шаблоны TPL

Страницы сайта (/views)

Views

Файлы в корневой директории

.htaccess - обработка логики движка, все символические пути прописываются вручную через этот файл

index.php - основной файл сайта, в основном в нем меняются только обертки для основных блоков в body, а также устанавливается метрика

Файл настроек сайта (settings.php)

settings.php - содержит типовые настройки сайта, такие как подключение к базе данных, и другие.