Добро пожаловать, Гость!
:: + Добавить ссылку через биллинг
:: + Добавить ссылку анонимно
ФорумГаджеты для фитнеса и здоровья
ФорумГаджеты для фитнеса и здоровья
Рерайтинг движка | GitHub - Страница 1
Предложения и пожелания | Рерайтинг движка | GitHub

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

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

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

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

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

Автор темы
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.