Добро пожаловать, Гость!
Рерайтинг движка | GitHub - Страница 8
Предложения и пожелания | Рерайтинг движка | 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
Комментарии:
Sto56 14 Авг 2022
Привет. Где ты был раньше?) Молоток, уважаю за труд. Ты сделал за недолгое время столько, сколько за все время существования движка, сделано не было. Респект.
Привет. Где ты был раньше?) Молоток, уважаю за труд. Ты сделал за недолгое время столько, сколько за все время существования движка, сделано не было. Респект.
MarkPrior 13 Авг 2022
Автор темы
ChangeLog 13.08 22:00 0.2
* обновлён метод nick в классе user.
если указаны имя с фамилией - будут выводиться они.
если указано только имя - только имя.
если этой информации нет - по старинке будет ник
Дополнение
Почему вводятся элементы ajax?
Потому что всё-таки это современный подход. А в нашем случае это ещё и большой выигрыш в скорости работы. Если мы, к примеру, будет проставлять те же лайки с обновлением страницы, то лишь ради обработки всего одного объекта нам нужно снова выполнить всю ту кипу запросов, находящихся в шапке, получить массивы настроек, обработать это всё... В то время, как с ajax, мы обращаемся лишь к обработчику, где выполняется минимальнейшее количество запросов (от 1-го до 3-ёх) и нет никаких объёмных массивных данных. Разница ощутима. Соответственно и вывод обновлённой информации осуществляется быстро.
Автор темы
ChangeLog 13.08 22:00 0.2
* обновлён метод nick в классе user.
если указаны имя с фамилией - будут выводиться они.
если указано только имя - только имя.
если этой информации нет - по старинке будет ник
Дополнение
Почему вводятся элементы ajax?
Потому что всё-таки это современный подход. А в нашем случае это ещё и большой выигрыш в скорости работы. Если мы, к примеру, будет проставлять те же лайки с обновлением страницы, то лишь ради обработки всего одного объекта нам нужно снова выполнить всю ту кипу запросов, находящихся в шапке, получить массивы настроек, обработать это всё... В то время, как с ajax, мы обращаемся лишь к обработчику, где выполняется минимальнейшее количество запросов (от 1-го до 3-ёх) и нет никаких объёмных массивных данных. Разница ощутима. Соответственно и вывод обновлённой информации осуществляется быстро.
MarkPrior 13 Авг 2022
Автор темы
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 символов.
Так же выводится последний комментарий. Здесь же, в принципе, можно сделать подгрузку остальных по клику... Но позже.
Сегодняшние обновы пока что выгружаться не будут. Завтра, когда полностью доделаю блоги.
Автор темы
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 13 Авг 2022
Автор темы
Энмеркар, часть информации комментариев неактуальна, будет правиться с ходом редактирования разделов, т.к. постоянно что-то меняется для удобства использования.
Автор темы
Энмеркар, часть информации комментариев неактуальна, будет правиться с ходом редактирования разделов, т.к. постоянно что-то меняется для удобства использования.
Энмеркар 13 Авг 2022
MarkPrior, Молодец что делаешь хорошие понятные комментарии к коду,, за репозиторий отдельное спасибо что там есть пояснения!)
______________________
꧁༺Энмеркар༻꧂
MarkPrior, Молодец что делаешь хорошие понятные комментарии к коду,, за репозиторий отдельное спасибо что там есть пояснения!)
______________________
꧁༺Энмеркар༻꧂
MarkPrior 12 Авг 2022
Автор темы
Визуал
1. Пользователь ввёл неверный формат хештега, получил ошибку, но текст сохранился - показана ошибка.
2. Пользователь прикрепил три файла к блогу, но попытался удалить тот, которого нет в его метаданных - в ответ мы удаляем все прикреплённые файлы и выдаём ошибку.
Сделано так потому, что непреднамеренно передать "левую" информацию невозможно. Значит была преднамеренная попытка это сделать.
Автор темы
Визуал
1. Пользователь ввёл неверный формат хештега, получил ошибку, но текст сохранился - показана ошибка.
2. Пользователь прикрепил три файла к блогу, но попытался удалить тот, которого нет в его метаданных - в ответ мы удаляем все прикреплённые файлы и выдаём ошибку.
Сделано так потому, что непреднамеренно передать "левую" информацию невозможно. Значит была преднамеренная попытка это сделать.
MarkPrior 12 Авг 2022
Автор темы
ChangeLog 12.08 22:00
* Блоги:
На основе блогов сделаны следующие плюхи. При вводе текста (название-описание) он будет сохраняться и при перезагрузке страницы не будет удалено. При отправке данных, если пользователь получит ошибку, он всё так же увидит свой ранее введённый текст и так же сообщение о том, что чтобы не потерять введённое содержимое - ему нужно внести правки. Если он этого не сделает, то данные будут стёрты, т.к. надобности в их хранении уже нет, раз у юзер не планирует дальше вести редактирование.
Данная система будет завтра введена на форум (создание тем), новости и комментарии во всех разделах.
Так же на основе блогов обновлён алгоритм прикрепления файлов к посту и их удаление (всё ещё при создании). Напомню, что она работает на ajax и всё происходит в livetime. Теперь, если пользователь удаляет файл из прикреплённых, то он так же удалится из временной папки, а не только meta-данных пользователя. При этом учтено, что возможны попытки обмана (попытки удалить совершенно другие файлы через удаление прикреплённых к блогу). При попытке сделать такое у пользователя будут удалены все файлы из meta-данных и из временной папки и показана "ошибка". Любые попытки передать "левую" информацию в обработчик удаления файла будет вести к такому исходу.
Эта система так же будет завтра закреплена в форуме (создание тем/редактирование тем) и внедрена в редактировании блогов.
* Класс user - исправлен метод setReply, увеличено количество передаваемых параметров. Это поможет избежать того, что пользователь отметит кого-то для ответа в одном, например, блоге, а затем сразу же перейдёт в другой и попытается ответить ему там. Эта система ответов всё ещё требует доработки.
* Так же поправлен метод metadata. Теперь можно проверить существование какой-то меты и удалять не по одиночно, а передать массив удаляемых данных.
Автор темы
ChangeLog 12.08 22:00
* Блоги:
На основе блогов сделаны следующие плюхи. При вводе текста (название-описание) он будет сохраняться и при перезагрузке страницы не будет удалено. При отправке данных, если пользователь получит ошибку, он всё так же увидит свой ранее введённый текст и так же сообщение о том, что чтобы не потерять введённое содержимое - ему нужно внести правки. Если он этого не сделает, то данные будут стёрты, т.к. надобности в их хранении уже нет, раз у юзер не планирует дальше вести редактирование.
Данная система будет завтра введена на форум (создание тем), новости и комментарии во всех разделах.
Так же на основе блогов обновлён алгоритм прикрепления файлов к посту и их удаление (всё ещё при создании). Напомню, что она работает на ajax и всё происходит в livetime. Теперь, если пользователь удаляет файл из прикреплённых, то он так же удалится из временной папки, а не только meta-данных пользователя. При этом учтено, что возможны попытки обмана (попытки удалить совершенно другие файлы через удаление прикреплённых к блогу). При попытке сделать такое у пользователя будут удалены все файлы из meta-данных и из временной папки и показана "ошибка". Любые попытки передать "левую" информацию в обработчик удаления файла будет вести к такому исходу.
Эта система так же будет завтра закреплена в форуме (создание тем/редактирование тем) и внедрена в редактировании блогов.
* Класс user - исправлен метод setReply, увеличено количество передаваемых параметров. Это поможет избежать того, что пользователь отметит кого-то для ответа в одном, например, блоге, а затем сразу же перейдёт в другой и попытается ответить ему там. Эта система ответов всё ещё требует доработки.
* Так же поправлен метод metadata. Теперь можно проверить существование какой-то меты и удалять не по одиночно, а передать массив удаляемых данных.