Добро пожаловать, Гость!
Рерайтинг движка | GitHub - Страница 3
Предложения и пожелания | Рерайтинг движка | GitHub
MarkPrior :
Доброго времени суток. Набрёл на движок с интернета. Подобные системы - не моя специальность, но я всегда рад помочь в улучшении, если то возможно. Сам занимаюсь Java/C#, но в свободное время балуюсь подобными вещами, поэтому решил подсобить/ускорить его преображение.
Вчера просмотрел движок, чуток очумел от количества мусора, но не всё потеряно. Как я понял, пользуются системой исключительно те, кто любит максимально простой и понятный вид кода без "всяких ваши ООП и т.п.". И хоть двиг подутратил свою востребованность, но, как я увидел, есть ещё много ньюфагов, которые пользуются и, надеюсь, учатся на этой системе.
Мне не помешает человек (или несколько человекОВ), которые давно пользуются этим движком и которые уверенно ориентируются в коде, дабы, при возникновении у меня вопросов, я мог кому-то написать.
На своём старом аккаунте GitHub создал репозиторий для движка. За основу взял версию DS-Special из-за введённой мультиязычности.
ФУЛЛ переписи не планируется, дабы, если у кого-то будет желание, переход на обновлёнку не был тяжёлым. Привычная архитектура, думаю, будет сохранена. Обновления затронут стилизацию кода и удаление излишнего мусора.
Для примера в одном только /sys/inc/user.php было ~27 лишних запросов в базу данных.
От mysql мы уйдём в сторону PDO (простота и, прежде всего, безопасность). Уже имеется обёртка, которая позволит легко и просто осуществлять запросы в базу. "Документация" по ним будет так же на GitHub.
Здесь в теме буду кратко писать ChangeLog'и по изменениям в коде. По мере переписи файлы будут загружаться на git.
Ссылка на репозиторий: GitHub - Dcms-Social
Рерайтинг движка | GitHub
3 Авг 2022Доброго времени суток. Набрёл на движок с интернета. Подобные системы - не моя специальность, но я всегда рад помочь в улучшении, если то возможно. Сам занимаюсь Java/C#, но в свободное время балуюсь подобными вещами, поэтому решил подсобить/ускорить его преображение.
Вчера просмотрел движок, чуток очумел от количества мусора, но не всё потеряно. Как я понял, пользуются системой исключительно те, кто любит максимально простой и понятный вид кода без "всяких ваши ООП и т.п.". И хоть двиг подутратил свою востребованность, но, как я увидел, есть ещё много ньюфагов, которые пользуются и, надеюсь, учатся на этой системе.
Мне не помешает человек (или несколько человекОВ), которые давно пользуются этим движком и которые уверенно ориентируются в коде, дабы, при возникновении у меня вопросов, я мог кому-то написать.
На своём старом аккаунте GitHub создал репозиторий для движка. За основу взял версию DS-Special из-за введённой мультиязычности.
ФУЛЛ переписи не планируется, дабы, если у кого-то будет желание, переход на обновлёнку не был тяжёлым. Привычная архитектура, думаю, будет сохранена. Обновления затронут стилизацию кода и удаление излишнего мусора.
Для примера в одном только /sys/inc/user.php было ~27 лишних запросов в базу данных.
От mysql мы уйдём в сторону PDO (простота и, прежде всего, безопасность). Уже имеется обёртка, которая позволит легко и просто осуществлять запросы в базу. "Документация" по ним будет так же на GitHub.
Здесь в теме буду кратко писать ChangeLog'и по изменениям в коде. По мере переписи файлы будут загружаться на git.
Ссылка на репозиторий: GitHub - Dcms-Social
Последний раз редактировалось biket
1 Сент 2022
Комментарии:
MarkPrior 24 Окт 2022
Автор темы
ChangeLog 24.10 15:40
(*) Инициализация класса user переправлена под адекватность.
Вызывается по-прежнему как new User(id|nick, [params]).
Если заранее знаете, какие параметры будете использовать - перечисляем массивом. Если нет - оставляем пустым, возьмутся дефолтные.
(*) Накидан прототип системы прав, которая позволит администраторам самим создавать привилегии и указывать, какими правами будут они обладать.
Организация:
таблица с правами будет содержать список самих прав и ID групп, к которым они присвоены;
таблица групп будет содержать ID группы, название, иконку (или иконки онлайн/офлайн);
в таблице user поле group (ранее level) будет содержать ID группы;
насчёт поля group_access не уверен, буду смотреть дальше, нужна ли.
(*) Будет реализовываться класс для кеширования какой-либо инфы. Возможно, пойдёт вместо метода metadata, который построен на сессиях. В принципе, он уже всунут из dcms 7. Буду смотреть, насколько его нужно переправлять, но на первый взгляд всё хорошо.
-------
Напомню. Так как рерайт имеет цель изменения в русле "простоты и понимания", никаких шаблонизаторов, никакого фулл переписывания, как dcms 7/johncms и т.п., не будет. Не надо мне писать по этому поводу в телегу.
-------
Сайт
На dsmod.ru организован блок микрологов, где будут указываться некоторые правки, будущие правки и найденные ошибки.
GitHub
Как говорил ранее, на гит обновы пока что заливаться не будут, но, скорее всего, будут заливаться обновы из /sys/, если местным разрабам нужны какие-то наброски для будущего релиза. Либо будет создана приватная ветка по необходимости.
Автор темы
ChangeLog 24.10 15:40
(*) Инициализация класса user переправлена под адекватность.
Вызывается по-прежнему как new User(id|nick, [params]).
Если заранее знаете, какие параметры будете использовать - перечисляем массивом. Если нет - оставляем пустым, возьмутся дефолтные.
(*) Накидан прототип системы прав, которая позволит администраторам самим создавать привилегии и указывать, какими правами будут они обладать.
Организация:
таблица с правами будет содержать список самих прав и ID групп, к которым они присвоены;
таблица групп будет содержать ID группы, название, иконку (или иконки онлайн/офлайн);
в таблице user поле group (ранее level) будет содержать ID группы;
насчёт поля group_access не уверен, буду смотреть дальше, нужна ли.
(*) Будет реализовываться класс для кеширования какой-либо инфы. Возможно, пойдёт вместо метода metadata, который построен на сессиях. В принципе, он уже всунут из dcms 7. Буду смотреть, насколько его нужно переправлять, но на первый взгляд всё хорошо.
-------
Напомню. Так как рерайт имеет цель изменения в русле "простоты и понимания", никаких шаблонизаторов, никакого фулл переписывания, как dcms 7/johncms и т.п., не будет. Не надо мне писать по этому поводу в телегу.
-------
Сайт
На dsmod.ru организован блок микрологов, где будут указываться некоторые правки, будущие правки и найденные ошибки.
GitHub
Как говорил ранее, на гит обновы пока что заливаться не будут, но, скорее всего, будут заливаться обновы из /sys/, если местным разрабам нужны какие-то наброски для будущего релиза. Либо будет создана приватная ветка по необходимости.
MarkPrior 21 Окт 2022
Автор темы
Info
Готовый релиз будет доступен не раньше следующего лета. В лучшем случае весной.
Тестовый сайт для общего доступа будет открыт в середине декабря-начале января. Возможно, пораньше.
Сейчас к нему имеют доступ пару человек, которые время от времени помогают тестить.
Сам адрес сайта: DSMod.ru
Сейчас там обновляется SSL
До открытия общего теста обновления на гит пока что заливаться не будут, чтобы народ не брал недоработанный код и потом не писал, что что-то не работает, не запускается и т.п.
Но сами изменения будут по-прежнему указываться.
Автор темы
Info
Готовый релиз будет доступен не раньше следующего лета. В лучшем случае весной.
Тестовый сайт для общего доступа будет открыт в середине декабря-начале января. Возможно, пораньше.
Сейчас к нему имеют доступ пару человек, которые время от времени помогают тестить.
Сам адрес сайта: DSMod.ru
Сейчас там обновляется SSL
До открытия общего теста обновления на гит пока что заливаться не будут, чтобы народ не брал недоработанный код и потом не писал, что что-то не работает, не запускается и т.п.
Но сами изменения будут по-прежнему указываться.
MarkPrior 21 Окт 2022
Автор темы
ChangeLog 21.10 16:40
(*) На данный момент переработан дизайн тёмной темы, т.к. "ядрёно тёмные" тона давили на глаза не меньше светлого оформления.
Главная страница - справа добавлена навигация на переход в ленту пользователя (посты/блоги/темы форума друзей) и на общие посты (посты со стен пользователей). Пока что там будут выводиться лишь новые записи. Систему "рейтинга" предстоит продумывать.
Главная страница форума - выглядит поприличней предыдущего варианта.
Раздел форума.
Тема форума.
Личные переписки.
Обычный диалог.
Групповой чат - реализована возможность установки фонового изображения. В личном диалоге пока что нет.
Представленные скрины - своего рода "планшетная" версия сайта. Полноэкранная версия.
(*) Верхняя панель (лента, почта, уведомления) теперь будет статично отображаться, а не сворачиваться при уменьшении разрешения.
Шаг 1, Шаг 2,Шаг 3.
Автор темы
ChangeLog 21.10 16:40
(*) На данный момент переработан дизайн тёмной темы, т.к. "ядрёно тёмные" тона давили на глаза не меньше светлого оформления.
Главная страница - справа добавлена навигация на переход в ленту пользователя (посты/блоги/темы форума друзей) и на общие посты (посты со стен пользователей). Пока что там будут выводиться лишь новые записи. Систему "рейтинга" предстоит продумывать.
Главная страница форума - выглядит поприличней предыдущего варианта.
Раздел форума.
Тема форума.
Личные переписки.
Обычный диалог.
Групповой чат - реализована возможность установки фонового изображения. В личном диалоге пока что нет.
Представленные скрины - своего рода "планшетная" версия сайта. Полноэкранная версия.
(*) Верхняя панель (лента, почта, уведомления) теперь будет статично отображаться, а не сворачиваться при уменьшении разрешения.
Шаг 1, Шаг 2,Шаг 3.
MarkPrior 6 Окт 2022
Автор темы
pre ChangeLog 06.10
(*) Настройки пользователей переносятся в отдельную таблицу: user_settings.
Загружаться будут в класс user, параметр для вызова настройки - userSetting.
(?) Метод metadata в классе user, возможно, будет реализован иначе. После тестов либо останется на сессиях, либо будет переведён на временные файлы.
(?) Сам класс с добавлением настроек пользователя будет так же изменён.
(*) Класс html дополняется методом getComments, который будет выводить комментарии к объекту. То есть не придётся вручную прописывать дивы и т.п., будет единое оформление комментариев. Достаточно будет вызвать getComments('параметры array|string',[сортировка], [старт], [лимит]).
=> параметры array|string:
==> array - в массиве передаём имя таблицы с комментариями, имя столбца, где хранится id объекта, и сам id объекта. Пример: array('forum_p', 'id_them', 23).
==> string - передаётся только имя таблицы с сообщениями, если нам нужно вывести месседжи с таблицы без выборки по id объекта. Пример: 'guest'.
=> сортировка - необязательный параметр, по умолчанию true. Выводить ли блок с кнопками сортировки сообщений (старые/новые).
=> старт - с какого месседжа начинать. По дефолту это просто 0.
=> лимит - количество запрашиваемых (выводимых) сообщений. По дефолту вытягивается значение из настроек юзера. Как правило, это 7.
Полный пример:
1. getComments(array('notes_komm', 'id_notes', 4)); - просто выводим комменты, не указывая остальные параметры, то есть будут взяты их дефолтные значения.
2. getComments(array('forum_p', 'id_them', 2), false, 0, 12) - указываем свои настройки.
3. getComments('guest', false) - указываем лишь что нам не нужна сортировка, т.к. выводим месседжи в гостевой, где также нет и выборки по id.
Формироваться листенинг будет аналогично внутри метода.
ToDo. Возможно, в будущем возможности будут расширяться, а конкретно - выборка по нескольким
Автор темы
pre ChangeLog 06.10
(*) Настройки пользователей переносятся в отдельную таблицу: user_settings.
Загружаться будут в класс user, параметр для вызова настройки - userSetting.
(?) Метод metadata в классе user, возможно, будет реализован иначе. После тестов либо останется на сессиях, либо будет переведён на временные файлы.
(?) Сам класс с добавлением настроек пользователя будет так же изменён.
(*) Класс html дополняется методом getComments, который будет выводить комментарии к объекту. То есть не придётся вручную прописывать дивы и т.п., будет единое оформление комментариев. Достаточно будет вызвать getComments('параметры array|string',[сортировка], [старт], [лимит]).
=> параметры array|string:
==> array - в массиве передаём имя таблицы с комментариями, имя столбца, где хранится id объекта, и сам id объекта. Пример: array('forum_p', 'id_them', 23).
==> string - передаётся только имя таблицы с сообщениями, если нам нужно вывести месседжи с таблицы без выборки по id объекта. Пример: 'guest'.
=> сортировка - необязательный параметр, по умолчанию true. Выводить ли блок с кнопками сортировки сообщений (старые/новые).
=> старт - с какого месседжа начинать. По дефолту это просто 0.
=> лимит - количество запрашиваемых (выводимых) сообщений. По дефолту вытягивается значение из настроек юзера. Как правило, это 7.
Полный пример:
1. getComments(array('notes_komm', 'id_notes', 4)); - просто выводим комменты, не указывая остальные параметры, то есть будут взяты их дефолтные значения.
2. getComments(array('forum_p', 'id_them', 2), false, 0, 12) - указываем свои настройки.
3. getComments('guest', false) - указываем лишь что нам не нужна сортировка, т.к. выводим месседжи в гостевой, где также нет и выборки по id.
Формироваться листенинг будет аналогично внутри метода.
ToDo. Возможно, в будущем возможности будут расширяться, а конкретно - выборка по нескольким
MarkPrior 6 Окт 2022
Автор темы
facemas, версия php только от 7 и выше. Писалось и тестировалось на 7.4. Версии ниже ещё не пробовал.
Автор темы
facemas, версия php только от 7 и выше. Писалось и тестировалось на 7.4. Версии ниже ещё не пробовал.
facemas 2 Окт 2022
Не знаю почему, но скачав архив с гитхаба я не могу установить двиг.. ошибка с базой
Screenshot_7 (6.6Kb)
Не знаю почему, но скачав архив с гитхаба я не могу установить двиг.. ошибка с базой