Автор Тема: Изменения в новой версии (В преддверии 4.0)  (Прочитано 13702 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Shturman

  • Разработчики
  • Опытный лис
  • *****
  • Сообщений: 416
  • Авторитет: 71
  • Пол: Мужской
    • Просмотр профиля
Добрый день всем.

Делюсь некоторыми аспектами версии 4.0 которые уже есть, общими мазками, и без порядка следования. Для обсуждения вопросов (там где я лично считаю что есть что обсуждать выделил жирным "Обсуждение") создавайте отдельные темы в обсуждении новостей. http://forum.santafox.ru/index.php?board=51.0

1. ЧПУ и соответственно методы ядра для вытаскивания свойств для методов модулей



2. Языковые переменные админке в новом формате XML. Вот пример такого файла:
<?xml version="1.0" encoding="utf-8"?>
<lang>
    <!-- Form admin auth -->
    <authform_salut>Вход в административный интерфейс сайта</authform_salut>
    <authform_login>Email:</authform_login>
    <authform_login_palceholder>Email адресс</authform_login_palceholder>
    <authform_password>Пароль:</authform_password>
    <authform_password_palceholder>Пароль</authform_password_palceholder>
    <authform_button_enter>Войти</authform_button_enter>
    <authform_errore_login_or_password>Ошибка в логине или пароле</authform_errore_login_or_password>
    <authform_errore_request>Ошибка на сервере! Попробуйте позже, или обратитесь к администратору!</authform_errore_request>
    <adm_main_menu_label>SantaFox</adm_main_menu_label>
    <adm_text_replace_for_empty_label>Тут есть метка без контента</adm_text_replace_for_empty_label>

</lang>


3. Вместо ini.php используется стандартный синтаксис ini файлов. Вот пример.
[general]
errore_show=yes
www_redirect=yes
cached=no
ssl_connction=no
http_host=sait.my
;id страницы по умолчанию, если на сайте переходим на страницу ошибок
page_def = index
;Если стоит yes, то в урле будет отображаться не только id страницы, но и весь путь
;Например, вместо http://sait.my/clients будет http://sait.my/ru/company/clients
;так как страница clients находится в company а та в свою очередь в корневой ru
;(пока не обрабатывается ядром)
full_structure_in_url = no
template=design
;Путь, где лежат файлы с контентом
path_content=content/pages
;Максимальная длинна метки, обрабатываемая при поиск меток
label_length_max = 64

[database]
type=mysql
prefix=sf
host=localhost
base=namebase
user=nameuser
pass=passworduser

[admin]
;Включает использование капчи при авторизации администратора
captcha_for_login=no
;Язык интерфейса по умолчанию
lang_def=ru

Обсуждение:
Тут у меня появилось жгучее желание всёже разделить ini файлы на несколько. Так как часто (мне так кажется) возникает необходимость копировать настройки сайта (например если один в Инете и локальная копия) и настройки базы каждый раз править не сподручно.


4. Приоритезация модулей. Переделана и вынесена в ini файл вот в таком виде:
[priority]
;устанавливает приоритеты выполнения действий и модулей. У ядра по умолчанию приоритет 100. Чем меньше
;значение приоритета тем, раньше будет выполнятся действие модуля
;не меняйте значений если не знаете зачем это делаете
kernel=100
catalog = 150
waysite = 100
menu = 100
glossary = 100
newsi = 110
faq = 120
;если нужно указать приоритете для конкретного действия то делаем это вот так
[kernel]
priv_page_title_get=10

Обсуждение:
Всего скорей уйдет в отдельный ini файл по соображениям пункта 3.


5. Построение итоговой страницы сайта теперь идет в самом конце. Когда уже отработали все модули. Это означает что любой модуль, может быстро (для этого в ядре есть методы) получить контент который сформировал другой модуль и внести в него правки до того как будет сформирована страница.

Обсуждение:
Совмещая с приоритезацией получаем один модуль который может заменить разные пост процессы. Возможно что потребуется вызов каких-то модулей после формирования все страницы даже если эти модулей нет в метках, но это так, пока не вижу в этом какой-то резкой необходимости.


6. Добавлен класс для выполнения MySQL запросов. Вот такой класс http://phpfaq.ru/safemysql. Этот класс, потому-что простой, и легко правится и вписывается в концепцию Santafox. В этот класс внесены исправления чтобы избавиться от префиксов при конструирование запросов, а именно, добавлены два плейсхолдера:

* ?_ ("prefix")  - ставится перед именем таблицы, которая прописана в запросе и заменяется на префикс, который НЕ ПЕРЕДАЕТСЯ в аргументах
* ?t ("name table") - Аналог ?n Это тоже типа имя но без экранирующих кавычек.
Например, запрос к структуре:
$items = $this->db->getAll("SELECT * FROM ?_structure ORDER BY parent_id, order_number");Или вот запрос для авторизации админа:
$row = $kernel->db->getRow("SELECT * FROM ?_admin WHERE login=?s && pass=?s LIMIT 1",$login_mail,$pass);
7. Множество главных страниц сайта (у которых нет родителя). Это по сути пока постулат, так как тут почти всё в админке.


8. Выделен ещё одного типа административного интерфейса.
http://sait.my/admin/ - как и раньше полный интерфейс, http://sait.my/adm/  - упрощенный. Суть упрощенного интерфейса в следующем: после авторизации ты возвращаешься на сайт и контент сайта, который сформирован какими-либо действиями подсвечивается иконками. Ты можешь сразу исправить этот контент (если там редактор) или переопределить действие на метку.


9. Убрана статистика. Без комментариев :)

Осуждение:
Лично у меня тут пока нет ясности на 100%. Наверное, надо просто дать какой-то набор параметров о посетители, которые могут взять модули через методы ядра. С другой стороны, не вижу смысла просто так возвращать значения переменных окружения. Возможно, что всё же какая-то минимальная статистика нужна, именно для средств модулей а не анализа посещаемости сайта.

Обсуждаем тут: http://forum.santafox.ru/index.php?topic=3701.0


10. Весь дизайн в одном месте. Собственно модули, при инсталляции кладут свои шаблоны дизайна в папку дизайна. Тем самым получаем возможность быстро менять дизайн всего сайта или делать простой бэкап только дизайна без сложных правил.


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


12. Новая Админка И для самых терпеливых :) Тут не паханное поле.
Я думал о Бутстрапе - как о базовом внешнем виде, и всё остальное довесками. Так как при разработке новых модулей вопрос стоит именно в оформление админки. И то оформление, как правило, не очень сложное.

Всё что касается базового функционала админки, как там это сделано, мне кажется, мало кого волнует. Главное не чтобы глючило и быстро грузилось.

@Rinat дал линк на инструмент https://www.webix.com/ru/

Обсуждаем тут: http://forum.santafox.ru/index.php?topic=3702.0
« Последнее редактирование: 25 февраля 2016, 15:10:53 от Shturman »