Добро пожаловать, Гость!
Рерайтинг движка | GitHub - Страница 9
Предложения и пожелания | Рерайтинг движка | 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 12.08 16:00
* обновлён класс likes:
=> исправлена ошибка в setLike, из-за которой ставился только дизлайк.
=> дополнен метод getContent, вторым параметром можно указать классы дивов для более лучше позиционирования блока:
пример, getContent('?news_id=1&', 'mt-3 mb-0').
=> в список возможных параметров отдельно добавлен fav (любое значение, указывает на то, выводить ли кнопку добавления в закладки), posts (вывод кол-ва комментов: если их нет, то кнопка будет серой, иначе цветная с указанием кол-ва комментов).
Визуал на примере главной страницы блогов.

Автор темы
ChangeLog 12.08 14:20
* улучшена адаптация оформления под мобильные устройства, чтобы при разрешении экрана в < 360px (если ещё кто-то пользует такие), текст не уезжал. В целом уменьшены превью аватарок пользователей, выводимые в комментариях, а не больших постах (темы форума, записи блогов).
* start.php - фикс чистки временной папки. Т.к. для каждого раздела (форум, блоги, к примеру) выгружаемые временные файлы хранятся в своих директориях (/sys/blogs/, /sys/forum/), надо будет додумывать без доп. нагрузки на сайт.
* Блоги:
=> теперь будут находиться в директории /blogs/, а не /plugins/notes/.
=> левая динамическая боковая панель для блогов будет своя, в ней выводятся категории блогов и ниже случайно выбранные хештеги ("случайность" нужно додумывать) - Визуал.
=> хештеги могут иметь вид строго типа: #слово, возможны лишь буквы (любого языка) и числа 0-9.
Визуал - создание блога.
=> длина названия категории не может превышать 20 букв, иначе часть будет скрыта (на скрине видно, что "Информационные технологии" оборвано.
(ToDo) Т.к. архитектура построена на псевдовиджетах, находящихся по своим директориям в /sys/widgets/, в дальнейшем можно сделать полноценный просто шаблонизатор, т.к. блоки в большинстве случаев те же, лишь информация динамическая. Пока что для простоты разбора остаётся так.
(=>) После блогов будет переработан вид сайта для гостей и переправлена регистрация/авторизация под новый дизайн. Преобладающая часть разделов теперь будет доступна только зарегистрированным пользователям, изменить это админскими настройками больше не будет возможно.

Автор темы
ChangeLog 11.08 17:30
* start.php - переписан псевдо cron, чуток попонятней чтобы было, что происходит + чтобы не било ошибками.
Лучше всего, если сайт на хостинге и нет доступа к Cron - используйте бесплатные сервисы, которые по расписанию будут заходить на указанную вами страницу, запуская тем самым все нужные процессы чистки и т.п.
* likes.class - поправлен метод setLike(). Теперь класс можно использовать для абсолютно любого раздела (само собой, при указании должных параметров). Напомню, что с его помощью можно реализовать проставление лайков/дизлайков объектам, вывести кнопки с счётчиками, ссылки на репост и закладки. Всё быстро, буквально в пару строк.
* раздел /news/ полностью переправлен. Визуал:
Скрин 1, Скрин 2.
* из /forum/ удалены все боле не востребованные файлы, оставлены лишь index.php, count.php.

Автор темы
Окончательный вид темы форума: Скриншот
Форум полностью готов. Блоги уже начал. Т.к. благодаря пройденной работе с форумом "шаблоны" страниц и структур уже имеется, всё пойдёт по накатанной.
С переработкой блогов надо думать над обработкой загрузки файлов любых других типов (само собой не любых, но основных). База уже есть.
После блогов будет уже первый набросок главной страницы и страницы пользователя. Следом реализованы репосты из форума в блог.
Есть сомнения о необходимости чата. Вроде бы, уже полностью устаревшая тема. Гостевая полностью справляется с его ролью.

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

Автор темы
ChangeLog 10.08 21:30
Бессмысленно потраченное время на реализацию загрузки изображений на ajax.
Саму выгрузку реализовать несложно, это работает. Проблемы возникают при, к примеру, редактировании поста, к которому они прикреплены. То есть логично, что и в этом случае нужно реализовать удаление/добавление файлов на ajax.
Вроде бы, реализовано, они выгружаются, сохраняются в БД, но конкретно при редактировании не происходит визуального обновления. И тут я застопорился, потому что ни ошибок, ничего нет, но получать ответ от скрипта отказывается.
Буду думать завтра, сегодня просто блоги, без заморочек.

Смотрю работы идут, респект, посмотри еще бб панель у старого джонкмс(в новой версии гоано) очень удобная и простая мб стоит добавить + реализации файлов на форуме тоже можно было б подсмотреть в старом джоне