Skip to content

1234ru/html-dynamic

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Что это такое и для чего это нужно?

Это средство для каталогизации HTML-макетов страниц сайта плюс HTML-шаблонизатор.

Когда для сайта делается вёрстка, её обычно сдают в виде набора статических HTML-макетов. Если страница имеет различные варианты (например, цена на товар может быть обычная и со скидкой), это вызывает определенные сложности. Приходится либо запихивать все возможные варианты в один макет, отчего он никогда не выглядит так, как в жизни, и его сложно отлаживать, либо делать отдельный макет на каждый вариант или даже на различные их комбинации.

Данный инструмент позволяет генерировать варианты страниц для просмотра налету (без необходимости сохранения отдельными файлами) на основании статических макетов HTML-вёрстки и простой конфигурации вариантов.

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

Повторяющиеся части макетов (например, шапку и футер) можно переиспользовать, вынося их в отдельный вложенный файл. Также доступны другие средства шаблонизации — циклы и подстановка данных (полезно для макетов, где есть длинные списки однотипных элементов, например, меню или товарный каталог). Используется шаблонизатор websun.

Что нужно для работы

Для функционирования средства требуется веб-сервер с подключенным интерпретатором PHP.

(Установка nginx и PHP на Windows)

Настройка nginx

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`

Как подключить

  1. Устанавливаем через 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

  1. Далее:
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

  1. Открываем index-ajax.php через браузер - он должен работать.

Как использовать

  • index-ajax.php — точка входа
  • config.php — конфигурация
  • example/doc.md — черновик пояснений

При использовании внутри основного проекта

В этом случае окружение разворачивается в подкаталоге основного проекта, и используются его пути к шаблонам, js- и css-файлам и php-библиотекам (в т.ч. websun).

Это позволяет избавиться от необходимости переноса файлов, т.к. они все уже на месте.

Как следствие, необходимо отказаться от использования переменной *variants* в шаблонах.

Всю логику составления данных нужно перенести в файлы data.php, они и должны учитывать $_GET['v'].

About

Dynamic HTML layouts engine powered by PHP

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published