Добро пожаловать, Гость!
:: + Добавить ссылку через биллинг
:: + Добавить ссылку анонимно
DOXNET — анонимность, общение и цифровая безопасность
DOXNET — анонимность, общение и цифровая безопасность
DOXNET — анонимность, общение и цифровая безопасность
DOXNET — анонимность, общение и цифровая безопасность
Рерайтинг движка | GitHub - Страница 7
Предложения и пожелания | Рерайтинг движка | GitHub
MarkPrior : Рерайтинг движка | 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 31 Авг 2022Автор темы
ChangeLog 31.08 19:10
Изменения по Почте.
Структура таблиц диалогов изменена.
На данный момент уже корректно работает начало переписки с пользователем, с которым ещё не было диалога. Ссылка на такую переписку имеет вид: /konts?dialog=<id>
При написании сообщения автоматически обновляются контакты в левой панельке списка диалогов и сам блок сообщений с пользователем. Количество запросов уменьшено, работает быстро.
При выборе диалога будет показана анимация загрузки.
Сообщения в конфе выглядят следующим образом (здесь видно, что в боковой панели отображено мол посл. сообщение от Пашка, это из-за того, что месседж был добавлен через Б.Д. напрямую).
Наше непрочитанное сообщение имеет тёмный подтон блока, пока что иное не придумал (тут уже видно, что сообщение в панельке обновилось, т.к. было отправлено с сайта).
Так же на скрине видно, что диалог с Пашкой помечен галочкой, что означает, что диалог с ним закреплён. Пока нет непрочитанных им сообщений, будет галочка, иначе, как на этом скрине - точка, означающая, что собеседник ещё не заходил в диалог.
-----
На данный момент сообщения в диалоге для всех собеседников обновляются автоматически только в том случае, если кто-то отправил новый месседж. Далее нужно придумывать то, как проверять, прочитаны ли они кем-то в этот же момент (т.е. диалог открыт собеседником(-ами)) и снова обновлять (или же просто менять стиль блока).
Список диалогов, скорее всего, сделаю прогрузкой по скроллу, без листинга, а сообщения будут с листингом.
На данный момент это будет единственный раздел, выполненный почти что полностью на ajax (но само собой он ещё не доделан полностью).
-----
Сегодня выгружаю на хаб. В порядок пока что не привёл, постепенно обновлю.
MarkPrior 30 Авг 2022Автор темы
На днях хочу запустить на хосте, чтобы удобней было параллельно тестить.
Если есть желающий хелпануть, телеграм: evcody (ex. marknprior)
---
Так же у меня отпуск подходит к концу. Уже за три недели была проделана приличная работа, но... Может получиться так, что в дальнейшем работа будет идти довольно медленно. Потому на днях прокомментирую весь код (локально с примерами), дабы было понятно, что-где-как было переделано и реализовано и, если на то пойдёт, местные разрабы смогут что-то взять, что-то доделать. Кому как удобней.
Код остался максимально простым, трудностей не возникнет.
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 29 Авг 2022Автор темы
ChangeLog 29.08 10:00 mini
Видел, что писали про панель BB-тегов. Походил по сайтам, которые нашёл на этом двиге, чтобы приблизительные предпочтения посмотреть. Реализовал простой вариант.
Панель выглядит следующим образом, будет появляться при нажатии на кнопку "A" (не стал делать панель статичной). Расширил количество доступных тегов, изменил их обработчик.
Так же добавил тег цвет текста, панель разворачивается при нажатии на кисть. Не стал совать палитру, смысла в этом нет, указан набор плюс/минус популярных цветов, но юзер может указать и другой. Доступные форматы: #FFF, #FFFFFF.
Параллельно чисто по фронту изменил отображение капчи.
Насчёт окна со смайлами возникли сложности, т.к. не знаю, нужны ли они, ведь во всех смартфонах есть наборы Emoji. Лишь поэкспериментировал с open-source библиотекой от Twitter, нашёл два варианта опен сорс панелей: первый оказался тяжеловат, страница зависает на 2-3 секунды, второй оказался проще и лучше, но реализация такого окна не нравится. Посему пока что оставлю это на потом.
---------------
Для более-менее статичных html-элементов (капча, панель bb-тегов, поле ввода текста в целом (комменты, сообщения)) создан класс /sys/classes/html.class.php с методами captcha, bbpanel, insertMessage.
Пример использования: html::captcha('Проверка').
Сделано для того, чтобы для каждого раздела сайта не прописывать вручную одно и то же, а просто передать нужные параметры. Поле ввода текста пока что доделывается.
---------------
На гит будет выгружено завтра.
Если снова пропаду, то я регулярно появляюсь в телеграме: @marknprior.
MarkPrior 24 Авг 2022Автор темы
Немного заматался с делами. Репозиторий восстановлю, баганулось и в ветку поверх залился другой проект, пришлось удалять.
Сегодня-завтра работа продолжится.
MarkPrior 17 Авг 2022Автор темы
ChangeLog 17.08 15:50
+ просмотр блогов в категории блогов;
+ удаление категорий блогов осуществлено на ajax:
==> из категории должны удалиться все блоги -> комментарии в этих блогах -> все файлы, прикреплённые к комментариям (не просто из БД, а конкретно файлы, которые мы должны получить из БД). в принципе, написать один select запрос с join'ами, чтобы получить файлы - несложно, но пока что останется так, как было бы максимально понятно - циклы в циклах. да, трешово, но потому и перенесено отдельно и выполняется чисто через ajax, дабы не выполнять всю ту кипу кода с шапки. пока всё не удалится, будет показываться анимация загрузки, но пока что при тесте в 7к файлов (больше на пк нет) всё удалялось очень быстро и почти что не застаёшь анимацию.
==> по тому же принципу переделал удаление блогов, тоже на ajax.
* такое удаление будет внедрено и на форуме.
Пока что код чуток как каша, сегодня посижу, укомплектую, прокомментирую и выгружу на хаб.
Репостинг пока что делать не буду, займусь стеной, чтобы дальше сразу пилить репосты под два раздела: блоги и стена. И дальше начать работать на уведомлениями пользователей (т.к. есть уже три раздела, откуда могут идти уведомлялки) -> раздел Друзей -> лента пользователей.
Для обработки ajax создан отдельный файл /sys/inc/ajax.require.php, куда помещён весь нужный код для получения-обработки-вывода. Так же в обработчик можно сунуть лишь /sys/inc/session.php (да, снова вынесен из start.php из-за необходимости юзанья в ajax, но теперь инклудится сразу в него, а не отдельно) и /sys/inc/ajax.db.connect.php для подключения к бд. Т.к. данные бд хранятся в settings.ini, то после установки будет так же создаваться ajax.db.ini, откуда будут браться данные, дабы не тягать весь массив настроек из settings.ini.

