Чтобы сгенерировать серию статических Web-страниц по шаблону, тоже понадобится индексная страница, т.е. страница со списком. Разместим индексную страницу по адресу /, а шаблонные страницы по адресам формата /page.html, т.е. все страницы будут размешаться в таблице категорий. Т.к. у нас имеются страницы разного типа (индексная и шаблонная), а также несколько однотипных страниц (шаблонные страницы), нужно добавить в таблицу поле module. Для шаблонных страниц в качестве значения этого поля укажем имя page, а для индексной страницы значение поля можно оставить пустым.
Контроллер индексной (.d.php):
<?php
if (!$result = mysqli_query($link, "SELECT * FROM `{$table()}` WHERE `id`!=''"))
{
error(503);
}
Для шаблонных страниц можно использовать шаблон page.php в сочетании с общим шаблоном index.php или полный шаблон страницы в заголовочном файле page.h.php с добавлением в его конец команды exit (см. статью G-Drive. Быстрый старт).
Для получения готовых html-файлов можно использовать wget:
wget -r -l1 -omy.log http://localhost/
Вышла версия 3.11.
Добавлена глобальная переменная $layout, содержащая имя основного шаблона (без расширения .php). Также проведена незначительная оптимизация кода.
Рассылку запущу сегодня или в один из ближайших дней.
Вышла версия 3.12.
Выполнен незначительный рефакторинг кода. Попробовала заменить глобальную переменную $layout на «изолированную» переменную extra('layout'). В рассылку также включена pre-версия для тех, кто пока не готов отказываться от использования $layout.
Из официального названия исчезла черточка в соответствии с трендом, зародившимся в 2020 году. Теперь движок можно называть G Drive или Gency Drive.
Рассылку запущу сегодня или в один из ближайших дней.
У некоторых введенная переменная extra('layout') вызывает конфликт. В связи с этим вопрос ко всем, будет ли функция layout() вызывать подобный конфликт, т.е. используется ли одноименная функция в ваших разработках для каких-то других целей или с какими-то другими параметрами, чем layout('newlayout') для сеттера и layout() для геттера.
Возможно, запущу рассылку с таким вопросом.
В версии 3.12 переменная extra('layout') не включена в код функции extra, так что вполне можно использовать переменную с другим именем или вовсе не использовать подобную переменную, как это было раньше в оригинальном коде каркаса.
Если мы решим включить определение этой переменной в код функции extra (сейчас это обсуждается), будет разрешено его убирать из функции, т.е. можно будет вернуть текущий вариант реализации функции при появлении в ней подобных изменений:
Переменная $p, содержащая полный путь, признана устаревшей. Используйте для получения пути $_SERVER['REQUEST_URI'] или $px.
Переменная $table, ранее содержащая замыкание для «вычисления» имени таблицы, признана устаревшей. До своего удаления переменная $table будет содержать имя функции table, которая была добавлена. Данную функцию разрешено редактировать. Если данная функция вызывает конфликт имен, ее можно переименовать и поместить новое имя в переменную $table.
Рассылку запущу сегодня или в один из ближайших дней.
Для использования схемы с одним типом контроллера и сохранения возможности быстрого закрытия соединения с базой данных нужно изменить функции открытия и закрытия соединения (достаточно изменить только функцию закрытия, опираясь на то, что открытие выполняется всегда).
Простая и достаточно универсальная функция закрытия соединения с базой данных, опирающаяся на значение переменной $link:
function db_close(&$link)
{
if (isset($link))
{
$link->close();
$link = null;
}
}
На данный момент я склоняюсь к включению в G Drive именно такой функции.
Чтобы сгенерировать серию статических Web-страниц по шаблону, тоже понадобится индексная страница, т.е. страница со списком. Разместим индексную страницу по адресу /, а шаблонные страницы по адресам формата /page.html, т.е. все страницы будут размешаться в таблице категорий. Т.к. у нас имеются страницы разного типа (индексная и шаблонная), а также несколько однотипных страниц (шаблонные страницы), нужно добавить в таблицу поле module. Для шаблонных страниц в качестве значения этого поля укажем имя page, а для индексной страницы значение поля можно оставить пустым.
Контроллер индексной (.d.php):
Шаблон индексной (.php):
Для шаблонных страниц можно использовать шаблон page.php в сочетании с общим шаблоном index.php или полный шаблон страницы в заголовочном файле page.h.php с добавлением в его конец команды exit (см. статью G-Drive. Быстрый старт).
Для получения готовых html-файлов можно использовать wget:
Вышла версия 3.11.
Добавлена глобальная переменная $layout, содержащая имя основного шаблона (без расширения .php). Также проведена незначительная оптимизация кода.
Рассылку запущу сегодня или в один из ближайших дней.
Вышла версия 3.12.
Выполнен незначительный рефакторинг кода. Попробовала заменить глобальную переменную $layout на «изолированную» переменную extra('layout'). В рассылку также включена pre-версия для тех, кто пока не готов отказываться от использования $layout.
Из официального названия исчезла черточка в соответствии с трендом, зародившимся в 2020 году. Теперь движок можно называть G Drive или Gency Drive.
Рассылку запущу сегодня или в один из ближайших дней.
У некоторых введенная переменная extra('layout') вызывает конфликт. В связи с этим вопрос ко всем, будет ли функция layout() вызывать подобный конфликт, т.е. используется ли одноименная функция в ваших разработках для каких-то других целей или с какими-то другими параметрами, чем layout('newlayout') для сеттера и layout() для геттера.
Возможно, запущу рассылку с таким вопросом.
В версии 3.12 переменная
extra('layout')
не включена в код функции extra, так что вполне можно использовать переменную с другим именем или вовсе не использовать подобную переменную, как это было раньше в оригинальном коде каркаса.Если мы решим включить определение этой переменной в код функции extra (сейчас это обсуждается), будет разрешено его убирать из функции, т.е. можно будет вернуть текущий вариант реализации функции при появлении в ней подобных изменений:
На выходных обсуждали на php-форуме шаблонизацию. Вспомнилась прежняя семантика битов 4-5:
Или наоборот.
Миш, можно использовать данную схему, если не нужны заголовочные файлы, как особый тип контроллеров.
Вышла версия 3.13.
Улучшен фильтр контроля уникальности идентификатора объекта, используемый при выборе объектов с числовыми идентификаторами в поле id по значению $p1:
Переменная $p, содержащая полный путь, признана устаревшей. Используйте для получения пути $_SERVER['REQUEST_URI'] или $px.
Переменная $table, ранее содержащая замыкание для «вычисления» имени таблицы, признана устаревшей. До своего удаления переменная $table будет содержать имя функции table, которая была добавлена. Данную функцию разрешено редактировать. Если данная функция вызывает конфликт имен, ее можно переименовать и поместить новое имя в переменную $table.
Рассылку запущу сегодня или в один из ближайших дней.
Для использования схемы с одним типом контроллера и сохранения возможности быстрого закрытия соединения с базой данных нужно изменить функции открытия и закрытия соединения (достаточно изменить только функцию закрытия, опираясь на то, что открытие выполняется всегда).
Простая и достаточно универсальная функция закрытия соединения с базой данных, опирающаяся на значение переменной $link:
На данный момент я склоняюсь к включению в G Drive именно такой функции.