Добро пожаловать, Гость!
Рерайтинг движка | GitHub - Страница 6
Предложения и пожелания | Рерайтинг движка | 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 1 Сент 2022
Автор темы
ChangeLog 01.09 12:40
(-) удалены все невостребованные (либо дублированные) функции из /sys/fnc, некоторые под вопросом, пока не нашёл, где они используются;
(-) функция rez_text() заменена на cutstr(), которая будет делать "умное" обрезание текста по указанному количеству символов, но останавливаясь на последнем слове;
(-) удалён файл /sys/inc/fnc.php, все востребованные функции перенесены в /sys/fnc.
(-) удалены невостребованные файлы из /sys/inc (pear, mp3, tar, zip & etc.), в дальнейшем какие-то будут заменены.
(*) подправлен класс User, передать в него теперь можно так же ник юзера, а не айди (сделано потому, что теперь на страницу пользователя доступна ссылка в виде site.ru/@nickname).
(*) подправлен класс Db, убраны пару методов, указаны типы передаваемых данных.
В классе имеются методы execute(<sql>) (прямой запрос, как правило без каких-либо параметров), query(<sql>, <params>) (прямой запрос с указанными параметрами).
(+) класс /sys/inc/addons/declension - позволяет склонять слова по падежам, пока что просто добавлен, применение найдётся в будущем, т.к. теперь выводится не ник пользователя, а его имя (и фамилия), если те указаны.
(*) на данный момент имеются основные ajax обработчики в /sys/inc: ajax.db.connect.php - предусматривает работу только с БД (без вывода информации) и ajax.require.php - с выводом информации, содержит в себе основные функции для вывода текста. со временем он будет удалён, т.к. по итогу может содержать невостребованную информацию.
По чату
Чат переписываться не будет, т.к. не вижу в нём необходимости. Потому он будет убран полностью. Есть гостевая, есть лс, форум, блоги и т.п. - общаться есть где.
Автор темы
ChangeLog 01.09 12:40
(-) удалены все невостребованные (либо дублированные) функции из /sys/fnc, некоторые под вопросом, пока не нашёл, где они используются;
(-) функция rez_text() заменена на cutstr(), которая будет делать "умное" обрезание текста по указанному количеству символов, но останавливаясь на последнем слове;
(-) удалён файл /sys/inc/fnc.php, все востребованные функции перенесены в /sys/fnc.
(-) удалены невостребованные файлы из /sys/inc (pear, mp3, tar, zip & etc.), в дальнейшем какие-то будут заменены.
(*) подправлен класс User, передать в него теперь можно так же ник юзера, а не айди (сделано потому, что теперь на страницу пользователя доступна ссылка в виде site.ru/@nickname).
(*) подправлен класс Db, убраны пару методов, указаны типы передаваемых данных.
В классе имеются методы execute(<sql>) (прямой запрос, как правило без каких-либо параметров), query(<sql>, <params>) (прямой запрос с указанными параметрами).
(+) класс /sys/inc/addons/declension - позволяет склонять слова по падежам, пока что просто добавлен, применение найдётся в будущем, т.к. теперь выводится не ник пользователя, а его имя (и фамилия), если те указаны.
(*) на данный момент имеются основные ajax обработчики в /sys/inc: ajax.db.connect.php - предусматривает работу только с БД (без вывода информации) и ajax.require.php - с выводом информации, содержит в себе основные функции для вывода текста. со временем он будет удалён, т.к. по итогу может содержать невостребованную информацию.
По чату
Чат переписываться не будет, т.к. не вижу в нём необходимости. Потому он будет убран полностью. Есть гостевая, есть лс, форум, блоги и т.п. - общаться есть где.
MarkPrior 1 Сент 2022
Автор темы
Юрий, лучше сперва полностью доделать, т.к. разделов много, чем заостряться на одном. И так с почтой увлёкся.
Думаю, для неё можно будет аддон делать на сокетах. Для тех, кто на сервере, а не хостинге. То же самое, к примеру, с кешерами, как APCu.
Автор темы
Юрий, лучше сперва полностью доделать, т.к. разделов много, чем заостряться на одном. И так с почтой увлёкся.
Думаю, для неё можно будет аддон делать на сокетах. Для тех, кто на сервере, а не хостинге. То же самое, к примеру, с кешерами, как APCu.
Юрий 31 Авг 2022
MarkPrior (30 Авг 2022):
ChangeLog 30.08 19:10
* переписывается почта.
Этот раздел полностью перерабатывается. Старые таблицы (mail, users_konts) удалены.
Теперь будет иметься полноценный функционал мессенджера с групповыми чатами.
Новые таблицы:
dialogs (id, name, type (personal/group), new_msg),
dialogs_msg (id, dialog_id, user_id, time, read, msg),
users_dialogs (dialog_id, user_id, type (fav/archive), pin).
Список диалогов (скроллится).
Обычная переписка.
Конференция.
Сообщения в своём окне, который скроллится. Пока что не знаю, как реализовать листинг: прогрузка при прокрутке или привычный постраничный листинг.
При клике в списке диалогов на нужный контакт/конфу - всё быстро подгружается на ajax. Отправка сообщений тоже на ajax.
Единственное, над чем сейчас думаю - реализация автообновления диалога для каждого из собеседников только в том случае, если кем-то отправлено новое сообщение. Это можно было бы плюс/минус легко реализовать при помощи сокетов, но, дабы не грузить мозг обывателям, попробую реализовать на ajax при обращении к файлу-обработчику, который респонсом будет нам сообщать о наличии непрочитанных сообщений в диалоге и только при их наличии будет осуществлено обновление диалога.
Хоть это и влечёт за собой постоянное выполнение запроса к БД, но это лучше, чем обновлять весь диалог, в котором запросов гораздо больше.
Ещё сыровато, написана лишь сама переписка и ajax-обработчики.
* подправлен класс user:
==> добавлен метод dialog_avatar (он тут не особо к месту, но пока что будет здесь).
MarkPrior, может лучше сразу сокеты? а для "обывателей" можно составить простую документацию по настройке скрипта. Кстати есть место на vpsChangeLog 30.08 19:10
* переписывается почта.
Этот раздел полностью перерабатывается. Старые таблицы (mail, users_konts) удалены.
Теперь будет иметься полноценный функционал мессенджера с групповыми чатами.
Новые таблицы:
dialogs (id, name, type (personal/group), new_msg),
dialogs_msg (id, dialog_id, user_id, time, read, msg),
users_dialogs (dialog_id, user_id, type (fav/archive), pin).
Список диалогов (скроллится).
Обычная переписка.
Конференция.
Сообщения в своём окне, который скроллится. Пока что не знаю, как реализовать листинг: прогрузка при прокрутке или привычный постраничный листинг.
При клике в списке диалогов на нужный контакт/конфу - всё быстро подгружается на ajax. Отправка сообщений тоже на ajax.
Единственное, над чем сейчас думаю - реализация автообновления диалога для каждого из собеседников только в том случае, если кем-то отправлено новое сообщение. Это можно было бы плюс/минус легко реализовать при помощи сокетов, но, дабы не грузить мозг обывателям, попробую реализовать на ajax при обращении к файлу-обработчику, который респонсом будет нам сообщать о наличии непрочитанных сообщений в диалоге и только при их наличии будет осуществлено обновление диалога.
Хоть это и влечёт за собой постоянное выполнение запроса к БД, но это лучше, чем обновлять весь диалог, в котором запросов гораздо больше.
Ещё сыровато, написана лишь сама переписка и ajax-обработчики.
* подправлен класс user:
==> добавлен метод dialog_avatar (он тут не особо к месту, но пока что будет здесь).
MarkPrior 31 Авг 2022
Автор темы
Репозиторий: github.com/vspier/dcms
Оставлено только то, что правилось. Постепенно обновлю, приведу в порядок и прокомментирую.
Автор темы
Репозиторий: github.com/vspier/dcms
Оставлено только то, что правилось. Постепенно обновлю, приведу в порядок и прокомментирую.
MarkPrior 31 Авг 2022
Автор темы
ChangeLog 31.08 19:10
Изменения по Почте.
Структура таблиц диалогов изменена.
На данный момент уже корректно работает начало переписки с пользователем, с которым ещё не было диалога. Ссылка на такую переписку имеет вид: /konts?dialog=<id>
При написании сообщения автоматически обновляются контакты в левой панельке списка диалогов и сам блок сообщений с пользователем. Количество запросов уменьшено, работает быстро.
При выборе диалога будет показана анимация загрузки.
Сообщения в конфе выглядят следующим образом (здесь видно, что в боковой панели отображено мол посл. сообщение от Пашка, это из-за того, что месседж был добавлен через Б.Д. напрямую).
Наше непрочитанное сообщение имеет тёмный подтон блока, пока что иное не придумал (тут уже видно, что сообщение в панельке обновилось, т.к. было отправлено с сайта).
Так же на скрине видно, что диалог с Пашкой помечен галочкой, что означает, что диалог с ним закреплён. Пока нет непрочитанных им сообщений, будет галочка, иначе, как на этом скрине - точка, означающая, что собеседник ещё не заходил в диалог.
-----
На данный момент сообщения в диалоге для всех собеседников обновляются автоматически только в том случае, если кто-то отправил новый месседж. Далее нужно придумывать то, как проверять, прочитаны ли они кем-то в этот же момент (т.е. диалог открыт собеседником(-ами)) и снова обновлять (или же просто менять стиль блока).
Список диалогов, скорее всего, сделаю прогрузкой по скроллу, без листинга, а сообщения будут с листингом.
На данный момент это будет единственный раздел, выполненный почти что полностью на ajax (но само собой он ещё не доделан полностью).
-----
Сегодня выгружаю на хаб. В порядок пока что не привёл, постепенно обновлю.
Автор темы
ChangeLog 31.08 19:10
Изменения по Почте.
Структура таблиц диалогов изменена.
На данный момент уже корректно работает начало переписки с пользователем, с которым ещё не было диалога. Ссылка на такую переписку имеет вид: /konts?dialog=<id>
При написании сообщения автоматически обновляются контакты в левой панельке списка диалогов и сам блок сообщений с пользователем. Количество запросов уменьшено, работает быстро.
При выборе диалога будет показана анимация загрузки.
Сообщения в конфе выглядят следующим образом (здесь видно, что в боковой панели отображено мол посл. сообщение от Пашка, это из-за того, что месседж был добавлен через Б.Д. напрямую).
Наше непрочитанное сообщение имеет тёмный подтон блока, пока что иное не придумал (тут уже видно, что сообщение в панельке обновилось, т.к. было отправлено с сайта).
Так же на скрине видно, что диалог с Пашкой помечен галочкой, что означает, что диалог с ним закреплён. Пока нет непрочитанных им сообщений, будет галочка, иначе, как на этом скрине - точка, означающая, что собеседник ещё не заходил в диалог.
-----
На данный момент сообщения в диалоге для всех собеседников обновляются автоматически только в том случае, если кто-то отправил новый месседж. Далее нужно придумывать то, как проверять, прочитаны ли они кем-то в этот же момент (т.е. диалог открыт собеседником(-ами)) и снова обновлять (или же просто менять стиль блока).
Список диалогов, скорее всего, сделаю прогрузкой по скроллу, без листинга, а сообщения будут с листингом.
На данный момент это будет единственный раздел, выполненный почти что полностью на ajax (но само собой он ещё не доделан полностью).
-----
Сегодня выгружаю на хаб. В порядок пока что не привёл, постепенно обновлю.
MarkPrior 30 Авг 2022
Автор темы
На днях хочу запустить на хосте, чтобы удобней было параллельно тестить.
Если есть желающий хелпануть, телеграм: evcody (ex. marknprior)
---
Так же у меня отпуск подходит к концу. Уже за три недели была проделана приличная работа, но... Может получиться так, что в дальнейшем работа будет идти довольно медленно. Потому на днях прокомментирую весь код (локально с примерами), дабы было понятно, что-где-как было переделано и реализовано и, если на то пойдёт, местные разрабы смогут что-то взять, что-то доделать. Кому как удобней.
Код остался максимально простым, трудностей не возникнет.
Автор темы
На днях хочу запустить на хосте, чтобы удобней было параллельно тестить.
Если есть желающий хелпануть, телеграм: evcody (ex. marknprior)
---
Так же у меня отпуск подходит к концу. Уже за три недели была проделана приличная работа, но... Может получиться так, что в дальнейшем работа будет идти довольно медленно. Потому на днях прокомментирую весь код (локально с примерами), дабы было понятно, что-где-как было переделано и реализовано и, если на то пойдёт, местные разрабы смогут что-то взять, что-то доделать. Кому как удобней.
Код остался максимально простым, трудностей не возникнет.