Добро пожаловать, Гость!
Рерайтинг движка | GitHub - Страница 8
Предложения и пожелания | Рерайтинг движка | GitHub

Рерайтинг движка | GitHub
3 Авг 2022Доброго времени суток. Набрёл на движок с интернета. Подобные системы - не моя специальность, но я всегда рад помочь в улучшении, если то возможно. Сам занимаюсь Java/C#, но в свободное время балуюсь подобными вещами, поэтому решил подсобить/ускорить его преображение.
Вчера просмотрел движок, чуток очумел от количества мусора, но не всё потеряно. Как я понял, пользуются системой исключительно те, кто любит максимально простой и понятный вид кода без "всяких ваши ООП и т.п.". И хоть двиг подутратил свою востребованность, но, как я увидел, есть ещё много ньюфагов, которые пользуются и, надеюсь, учатся на этой системе.
Мне не помешает человек (или несколько человекОВ), которые давно пользуются этим движком и которые уверенно ориентируются в коде, дабы, при возникновении у меня вопросов, я мог кому-то написать.
На своём старом аккаунте GitHub создал репозиторий для движка. За основу взял версию DS-Special из-за введённой мультиязычности.
ФУЛЛ переписи не планируется, дабы, если у кого-то будет желание, переход на обновлёнку не был тяжёлым. Привычная архитектура, думаю, будет сохранена. Обновления затронут стилизацию кода и удаление излишнего мусора.
Для примера в одном только /sys/inc/user.php было ~27 лишних запросов в базу данных.
От mysql мы уйдём в сторону PDO (простота и, прежде всего, безопасность). Уже имеется обёртка, которая позволит легко и просто осуществлять запросы в базу. "Документация" по ним будет так же на GitHub.
Здесь в теме буду кратко писать ChangeLog'и по изменениям в коде. По мере переписи файлы будут загружаться на git.
Ссылка на репозиторий: GitHub - Dcms-Social
Последний раз редактировалось biket
1 Сент 2022
Комментарии:



Привет. Где ты был раньше?) Молоток, уважаю за труд. Ты сделал за недолгое время столько, сколько за все время существования движка, сделано не было. Респект.

Автор темы
ChangeLog 13.08 22:00 0.2
* обновлён метод nick в классе user.
если указаны имя с фамилией - будут выводиться они.
если указано только имя - только имя.
если этой информации нет - по старинке будет ник
Дополнение
Почему вводятся элементы ajax?
Потому что всё-таки это современный подход. А в нашем случае это ещё и большой выигрыш в скорости работы. Если мы, к примеру, будет проставлять те же лайки с обновлением страницы, то лишь ради обработки всего одного объекта нам нужно снова выполнить всю ту кипу запросов, находящихся в шапке, получить массивы настроек, обработать это всё... В то время, как с ajax, мы обращаемся лишь к обработчику, где выполняется минимальнейшее количество запросов (от 1-го до 3-ёх) и нет никаких объёмных массивных данных. Разница ощутима. Соответственно и вывод обновлённой информации осуществляется быстро.

Автор темы
ChangeLog 13.08 22:00
* обновлён класс Likes. добавлен метод getCommentContent(<data>).
он выводит кнопку лайка для комментария и только. перед этим, как и для постов, сперва нужно вызвать класс. по сути, везде это осуществляется одинаково:
new Like(['id_user' => ID, 'id_object' => ID2, 'type' => 'tableName', 'likes' => [likesCount, 0]]);
например, для комментария блогов это: new Like(['id_user' => $user['id'], 'id_object' => $a['id'], 'type' => 'notes_komm', 'likes' => [$a['likes_count'], 0]]);
работает чисто на ajax, без него не будет.
здесь так же обязательно типом должно выступать имя таблицы, где хранится объект лайка (для комма блогов - notes_komm).
комментарии класса будут обновлены (вариант таких лайков очень сырой).
* обновлена функция br. теперь учитывается не один перенос строки, а два.
* допилена загрузка изображений к темам форума/блогам на ajax и так же редактирование.
Блоги
Полностью адаптированы под дизайн, выводимые изображения так же подстраиваются под экран.
Как выглядит главная страницы: Скрин 1, Скрин 2, Скрин 3
Если содержимое больше 512-ти символов, то выведется кнопка "Показать полностью", при нажатии которой на этой же странице будет показано остальное содержимое блога (наподобие ВК), но не более 2048 символов.
Так же выводится последний комментарий. Здесь же, в принципе, можно сделать подгрузку остальных по клику... Но позже.
Сегодняшние обновы пока что выгружаться не будут. Завтра, когда полностью доделаю блоги.

Автор темы
Энмеркар, часть информации комментариев неактуальна, будет правиться с ходом редактирования разделов, т.к. постоянно что-то меняется для удобства использования.

MarkPrior, Молодец что делаешь хорошие понятные комментарии к коду,, за репозиторий отдельное спасибо что там есть пояснения!)
______________________
꧁༺Энмеркар༻꧂

Автор темы
Визуал
1. Пользователь ввёл неверный формат хештега, получил ошибку, но текст сохранился - показана ошибка.
2. Пользователь прикрепил три файла к блогу, но попытался удалить тот, которого нет в его метаданных - в ответ мы удаляем все прикреплённые файлы и выдаём ошибку.
Сделано так потому, что непреднамеренно передать "левую" информацию невозможно. Значит была преднамеренная попытка это сделать.

Автор темы
ChangeLog 12.08 22:00
* Блоги:
На основе блогов сделаны следующие плюхи. При вводе текста (название-описание) он будет сохраняться и при перезагрузке страницы не будет удалено. При отправке данных, если пользователь получит ошибку, он всё так же увидит свой ранее введённый текст и так же сообщение о том, что чтобы не потерять введённое содержимое - ему нужно внести правки. Если он этого не сделает, то данные будут стёрты, т.к. надобности в их хранении уже нет, раз у юзер не планирует дальше вести редактирование.
Данная система будет завтра введена на форум (создание тем), новости и комментарии во всех разделах.
Так же на основе блогов обновлён алгоритм прикрепления файлов к посту и их удаление (всё ещё при создании). Напомню, что она работает на ajax и всё происходит в livetime. Теперь, если пользователь удаляет файл из прикреплённых, то он так же удалится из временной папки, а не только meta-данных пользователя. При этом учтено, что возможны попытки обмана (попытки удалить совершенно другие файлы через удаление прикреплённых к блогу). При попытке сделать такое у пользователя будут удалены все файлы из meta-данных и из временной папки и показана "ошибка". Любые попытки передать "левую" информацию в обработчик удаления файла будет вести к такому исходу.
Эта система так же будет завтра закреплена в форуме (создание тем/редактирование тем) и внедрена в редактировании блогов.
* Класс user - исправлен метод setReply, увеличено количество передаваемых параметров. Это поможет избежать того, что пользователь отметит кого-то для ответа в одном, например, блоге, а затем сразу же перейдёт в другой и попытается ответить ему там. Эта система ответов всё ещё требует доработки.
* Так же поправлен метод metadata. Теперь можно проверить существование какой-то меты и удалять не по одиночно, а передать массив удаляемых данных.