{"CLASS":"Section"}
{"INPUT":{"debug":"1"}}
{"OPTIONS":{"app":"locus","dir":"app\/","tpl":"granum","\/\/tpl":"granum|d1|none","date_format":"Y-m-d H:i","db":["app\/data\/locus.sqlite"],"password":"$2y$10$JUfAMGJW4cIMP81B5okomePpccUrxFMqwpsn.xVDzBqYbPIH8QlJ6","semantic_url":true,"asset_version":true,"allow_content":["unpkg.com","jsdelivr.com","jquery.com","picsum.photos","youtube.com"],"logfile":"app\/tmp\/{type}-{Y-m}.log","admin_email":"vadimkor@ya.ru","fake_email":true,"\/\/recaptcha":["site-key","secret-key"],"\/\/icon":"asset\/favicon.png","icon":"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 10 10'%3E%3Cpath fill='%2305b' d='M2 4a3 3 0 0 1 6 0q0 2 -3 5q-3-3-3-5zm3 -2a2 2 0 1 0 .01 0z'\/%3E%3C\/svg%3E","css":"asset\/app.css","js":"asset\/app.js","\/\/route":"view","routes":{"file":["f","Load"],"search":["search","Finder"],"profile":["profile","Profiler"],"api":["api","API"],"edit":["edit","Editor"],"add":["add","Editor"],"delete":["del","Editor"],"sql":["sql","RunSQL"],"phpinfo":["pi","SysInfo"],"view":["","Section"]},"sub":"projects\/locus\/","path":"ru\/features","request":"ru\/features","debug":"1","route":"view"}}
DB connection (class: Sqlite) [sqlite:app/data/locus.sqlite]: (0 msec) OK
SQL#1 (0 msec) [OK 0] [pragma foreign_keys = ON]
SQL#2 (0 msec) [OK 0] [select * from sec where url = :key limit 1 offset 0] {Array
(
[key] => ru/features
)
}
ROW: Array
(
[id] => 1021
[sec_id] => 3
[dst_sec_id] =>
[url] => ru/features
[e] => 1
[zone] => nav
[nm] => Возможности
[excerpt] =>
[body] => ### ::info:: Общее
- Удобный пользовательский интерфейс
- Нетребовательность к ресурсам
- Высокое быстродействие
- Модульность
- Расширяемость
- Многоязычность
- Кроссбраузерность
- Адаптивность
- Доступность на мобильных устройствах
- Поисковая оптимизация
### ::edit:: Содержимое
- Иерархия разделов неограниченной вложенности
- Автоматическая генерация меню
- Настраиваемые меню
- Хлебные крошки
- Простой текст или форматирование [Markdown](https://github.com/erusev/parsedown)
- Загрузка файлов для скачивания
- Галерея изображений, автоматическая генерация миниатюр
- Избранные изображения
- Иконки
- Настраиваемые формы
- Вставка кода счетчиков, карт, видео, баннеров и т.п.
- Вставка модулей
- Планирование публикаций на будущее
- Постраничная навигация
### ::grid:: Модули
- Галерея c автоматической генерацией миниатюр
- Меню разделов
- Вставка материалов из других разделов
- Меню языков
- Слайды ([Slick](https://kenwheeler.github.io/slick/) карусель)
- Блоки-карточки
- Закладки (табы)
- Настраиваемые формы с произвольными полями, защитой от роботов, уведомлением на e-mail
- [Диаграммы](https://www.chartjs.org/) и интерактивные таблицы
- Поиск по разделам и загруженным файлам
### ::ok:: Администрирование
- Выполнение произвольных SQL запросов
- Настраиваемые страницы "404 Не найден" и "401 Нет доступа"
### ::lock:: Безопасность
- Разделы с ограниченным доступом
- Одноразовые CSRF токены на выполнение действий
- Защита форм от роботов
### ::find:: Поисковая оптимизация
- Семантические URL
- Настраиваемые заголовки ``h1`` и поля ``title``, ``description``
- Быстрый отклик
- Валидный код (UTF-8, HTML5, CSS3)
- Адаптивность для мобильных устройств
### ::config:: Разработчику
- Работает с базами данных SQLite
- Фронтенд на движке [granum](https://github.com/vvvkor/granum) (опционально)
- Простая интеграция дизайна
[seq] => 2
[h1] =>
[title] =>
[descr] =>
[pub_dt] => 0
[fn] =>
[icon] =>
)
SQL#3 (0 msec) [OK 0] [select id, e, sec_id, dst_sec_id, nm, h1, title, url, zone, icon, seq, pub_dt from sec where (e=1 and pub_dt < :ut) and (sec_id is null) order by seq] {Array
(
[ut] => 1791538618
)
}
ROWS: 2
SQL#4 (0 msec) [OK 0] [select id, e, sec_id, dst_sec_id, nm, h1, title, url, zone, icon, seq, pub_dt from sec where (e=1 and pub_dt < :ut) order by seq] {Array
(
[ut] => 1791538618
)
}
ROWS: 84
SQL#5 (0 msec) [OK 0] [select * from sec where (e=1 and pub_dt < :ut) and (sec_id = :id and zone = :z) order by seq] {Array
(
[id] => 1021
[z] => content
[ut] => 1791538618
)
}
ROWS: 0
SQL#6 (0 msec) [OK 0] [select * from sec where (e=1 and pub_dt < :ut) and (sec_id = :id and zone = :z) order by seq] {Array
(
[id] => 1021
[z] => file
[ut] => 1791538618
)
}
ROWS: 0
SQL#7 (0 msec) [OK 0] [select * from sec where (e=1 and pub_dt < :ut) and (sec_id = :id and zone = :z) order by seq] {Array
(
[id] => 1021
[z] => aside
[ut] => 1791538618
)
}
ROWS: 0
SQL#8 (0 msec) [OK 0] [select * from sec where (e=1 and pub_dt < :ut) and (sec_id = :id and zone = :z) order by seq] {Array
(
[id] => 3
[z] => aside
[ut] => 1791538618
)
}
ROWS: 0