Это средство для каталогизации HTML-макетов страниц сайта плюс HTML-шаблонизатор.
Когда для сайта делается вёрстка, её обычно сдают в виде набора статических HTML-макетов. Если страница имеет различные варианты (например, цена на товар может быть обычная и со скидкой), это вызывает определенные сложности. Приходится либо запихивать все возможные варианты в один макет, отчего он никогда не выглядит так, как в жизни, и его сложно отлаживать, либо делать отдельный макет на каждый вариант или даже на различные их комбинации.
Данный инструмент позволяет генерировать варианты страниц для просмотра налету (без необходимости сохранения отдельными файлами) на основании статических макетов HTML-вёрстки и простой конфигурации вариантов.
При этом автоматически генерируется каталог всех возможных вариантов страниц, который позволяет просмотреть любой вариант ровно в том виде, в котором он используется на сайте. Наличие такого каталога позволяет содержать макеты в порядке.
Повторяющиеся части макетов (например, шапку и футер) можно переиспользовать, вынося их в отдельный вложенный файл. Также доступны другие средства шаблонизации — циклы и подстановка данных (полезно для макетов, где есть длинные списки однотипных элементов, например, меню или товарный каталог). Используется шаблонизатор websun.
Для функционирования средства требуется веб-сервер с подключенным интерпретатором PHP.
(Установка nginx и PHP на Windows)
location ~ \.php$ {
fastcgi_pass php-handler; # где-то должно быть такое: upstream php-handler { server unix:/run/php/php7.1-fpm.sock; }
fastcgi_param SCRIPT_FILENAME $document_root$uri;
include fastcgi_params;
}
index /index.php; # необязательно, но удобно, чтобы писать `/` вместо `/index.php`
- Устанавливаем через Composer.
Добавляем
composer.json
"repositories": [
{
"type": "git",
"url": "ssh://1234ru@1234ru.net:2222/~/tmp-git-repos/html-dynamic/"
}
]
Даем команду composer.bat install one234ru/html-dynamic
.
git submodule add https://github.com/1234ru/html-dynamic.git
git submodule update --init --recursive html-dynamic
- Далее:
mkdir html # Если каталог веб-сервера не отведен исключительно под html
cp -r vendor/one234ru/html-dynamic/example/* html
cd html
rm doc.md
# Далее создаем символическую ссылку на каталог index,
# чтобы его содержимое было видно через веб.
# Windows 10 и выше:
# Win+X -> Командная строка (администратор)
# mklink /D index ../vendor/one234ru/html-dynamic/index
# Linux:
# ln -s ../vendor/one234ru/html-dynamic/index index # для стилей и скриптов индекса
# Работают такие символические ссылки кроссплатформенно,
# так что их можно добавлять под управление git
Символическая ссылка (ln -s
) нужна для доступа к js- и css-файлам библиотеки, если каталог vendor
закрыт от доступа через веб.
В index.php
меняем ..
на html-dynamic
в подключении файла HTMLdynamic.php
.
Например, так: sed -i 's/\.\./html-dynamic/' index.php
- Открываем
index-ajax.php
через браузер - он должен работать.
index-ajax.php
— точка входаconfig.php
— конфигурацияexample/doc.md
— черновик пояснений
В этом случае окружение разворачивается в подкаталоге основного проекта, и используются его пути к шаблонам, js- и css-файлам и php-библиотекам (в т.ч. websun).
Это позволяет избавиться от необходимости переноса файлов, т.к. они все уже на месте.
Как следствие, необходимо отказаться от использования переменной *variants*
в шаблонах.
Всю логику составления данных нужно перенести в файлы data.php
, они и должны учитывать
$_GET['v']
.