Добро пожаловать, Гость!
Рерайтинг движка | GitHub - Страница 10
Предложения и пожелания | Рерайтинг движка | 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
Комментарии:
MarkPrior 10 Авг 2022
Автор темы
ChangeLog 10.08
Перед началом рерайта блогов, решил сразу осуществить прикрепление фото к постам (пока что только фото).
Реализовано с использованием Ajax, всё-таки время то, что без js никуда.
На данный момент, например, к теме форума можно прикрепить 3 изображения. После их выбора с устройства, будут показаны превьюшки с кнопкой удаления.
Как это выглядит: Скриншот.
Осталось доработать их добавление в БД, если юзер всё-таки создаёт тему (т.к. он может уйти со страницы, потому нам нужно удалить выгруженные файлы).
И уже сегодня будут редачиться блоги.
Автор темы
ChangeLog 10.08
Перед началом рерайта блогов, решил сразу осуществить прикрепление фото к постам (пока что только фото).
Реализовано с использованием Ajax, всё-таки время то, что без js никуда.
На данный момент, например, к теме форума можно прикрепить 3 изображения. После их выбора с устройства, будут показаны превьюшки с кнопкой удаления.
Как это выглядит: Скриншот.
Осталось доработать их добавление в БД, если юзер всё-таки создаёт тему (т.к. он может уйти со страницы, потому нам нужно удалить выгруженные файлы).
И уже сегодня будут редачиться блоги.
MarkPrior 9 Авг 2022
Автор темы
Визуал
Мы дополнительно передали параметры на вывод кнопок репоста и закладок.
1. Лайков нет - Скрин
2. Мы поставили лайк, но в класс не был передан параметр likes[] - выводим просто надпись "Лайк" и подсвечиваем иконку: Скрин
3. Параметр likes[] передан и мы поставили лайк: Скрин
* Если мы не поставим лайк, но их будет больше нуля, то иконка с количеством будут серого оттенка.
4. Поставили дизлайк: Скрин
5. Поставили дизлайк без переданного параметра likes[]: Скрин
Автор темы
Визуал
Мы дополнительно передали параметры на вывод кнопок репоста и закладок.
1. Лайков нет - Скрин
2. Мы поставили лайк, но в класс не был передан параметр likes[] - выводим просто надпись "Лайк" и подсвечиваем иконку: Скрин
3. Параметр likes[] передан и мы поставили лайк: Скрин
* Если мы не поставим лайк, но их будет больше нуля, то иконка с количеством будут серого оттенка.
4. Поставили дизлайк: Скрин
5. Поставили дизлайк без переданного параметра likes[]: Скрин
MarkPrior 9 Авг 2022
Автор темы
ChangeLog 09.08 22:00
Добавлен класс Like. С помощью него можно выводить панель проставления лайков/дизлайков, их счётчики, выводить кнопки репоста (и его счётчик)/закладок, кнопку комментов с их количеством.
Обращение: new Like([массив параметров]).
Обязательные параметры:
id_object - id объекта,
id_user - id юзера,
type - тип объекта (желательно (скорее, обязательно) в типе указывать имя таблицы, в которой хранится объект).
Вспомогательные:
likes[] - массив из кол-ва лайков/дизлайков,
shares - кол-во репостов,
posts - кол-во комментов.
Т.к. теперь инфа о количестве (диз-)лайков, комментов, репостов будет храниться и обновляться той же таблице, что и сам объект, мы просто передаём в класс значения этих полей.
На примере темы форума $post:
$like = new Like(['id_object' => $post['id'], 'id_user' => $user['id'], 'type' => 'forum_t', 'likes' => [$post['likes_count'], $post['dislikes_count']], 'shares' => $post['shares']]);
Отправка (диз-)лайка:
Обращаться только после получения GET['like'] запроса. Значение будет либо like, либо dislike. Оно передаётся в метод setLike:
if (isset($_GET['like'])) $like->setLike($_GET['like']), внутри метода само определит, что передалось.
Внутри метода мы можем обновить данные сразу у объекта в его таблице, ЕСЛИ тип назван именем таблицы и у объекта имеются поля likes_count, dislikes_count.
Для этого: $like->setLike($_GET['like'], true);
Метод вернёт либо id вставленной записи или false, если что-то пошло не так.
Вывод панели:
$like->getContent("?thread_id={$post['id']}&");
В параметре указывается корректная ссылка на наш объект, к метод добавит параметр like.
Если likes отправлен, то вместо надписи "Лайк" будет выводиться кол-во лайков, если их больше нуля.
Автор темы
ChangeLog 09.08 22:00
Добавлен класс Like. С помощью него можно выводить панель проставления лайков/дизлайков, их счётчики, выводить кнопки репоста (и его счётчик)/закладок, кнопку комментов с их количеством.
Обращение: new Like([массив параметров]).
Обязательные параметры:
id_object - id объекта,
id_user - id юзера,
type - тип объекта (желательно (скорее, обязательно) в типе указывать имя таблицы, в которой хранится объект).
Вспомогательные:
likes[] - массив из кол-ва лайков/дизлайков,
shares - кол-во репостов,
posts - кол-во комментов.
Т.к. теперь инфа о количестве (диз-)лайков, комментов, репостов будет храниться и обновляться той же таблице, что и сам объект, мы просто передаём в класс значения этих полей.
На примере темы форума $post:
$like = new Like(['id_object' => $post['id'], 'id_user' => $user['id'], 'type' => 'forum_t', 'likes' => [$post['likes_count'], $post['dislikes_count']], 'shares' => $post['shares']]);
Отправка (диз-)лайка:
Обращаться только после получения GET['like'] запроса. Значение будет либо like, либо dislike. Оно передаётся в метод setLike:
if (isset($_GET['like'])) $like->setLike($_GET['like']), внутри метода само определит, что передалось.
Внутри метода мы можем обновить данные сразу у объекта в его таблице, ЕСЛИ тип назван именем таблицы и у объекта имеются поля likes_count, dislikes_count.
Для этого: $like->setLike($_GET['like'], true);
Метод вернёт либо id вставленной записи или false, если что-то пошло не так.
Вывод панели:
$like->getContent("?thread_id={$post['id']}&");
В параметре указывается корректная ссылка на наш объект, к метод добавит параметр like.
Если likes отправлен, то вместо надписи "Лайк" будет выводиться кол-во лайков, если их больше нуля.
MarkPrior 9 Авг 2022
Автор темы
ChangeLog 09.08 15:00
* В класс user добавлен метод checkCensure(), вместо функции censure. Обращение: $_ME->checkCensure(<msg>).
* Переправлено определение системы. Т.к. в комменты на том же форуме отправляются сообщения об открытии/закрытии темы и, в принципе, системой можно в других разделах выводить информацию, то заранее, если нам передаётся id 0, мы пишем массив с системными данными. Так же будет переделано, чтобы можно было в params задавать определённые значения (к примеру, заранее обозначить ник, аватарку и т.п.).
* Форум будет сегодня полностью готов. За исключением прикрепления файлов и лайков/дизлайков. Это будет реализовано после работы над блогами, чтобы продумать общий алгоритм обработки этих данных, а не по отдельности в каждом.
Скрин с темы форума 1
Скрин с темы форума 2
Автор темы
ChangeLog 09.08 15:00
* В класс user добавлен метод checkCensure(), вместо функции censure. Обращение: $_ME->checkCensure(<msg>).
* Переправлено определение системы. Т.к. в комменты на том же форуме отправляются сообщения об открытии/закрытии темы и, в принципе, системой можно в других разделах выводить информацию, то заранее, если нам передаётся id 0, мы пишем массив с системными данными. Так же будет переделано, чтобы можно было в params задавать определённые значения (к примеру, заранее обозначить ник, аватарку и т.п.).
* Форум будет сегодня полностью готов. За исключением прикрепления файлов и лайков/дизлайков. Это будет реализовано после работы над блогами, чтобы продумать общий алгоритм обработки этих данных, а не по отдельности в каждом.
Скрин с темы форума 1
Скрин с темы форума 2
MarkPrior 9 Авг 2022
Автор темы
ChangeLog 09.08 10:30
Класс user дополнен методом checkAccess, который заменил функцию user_access.
Обращение на данный момент: $_ME->checkAccess('имя права').
Автор темы
ChangeLog 09.08 10:30
Класс user дополнен методом checkAccess, который заменил функцию user_access.
Обращение на данный момент: $_ME->checkAccess('имя права').
MarkPrior 9 Авг 2022
Автор темы
ChangeLog 09.08 10:50
В /sys/inc/user.php добавлена "глобальная" переменная $_ME, которая обращается к классу User() для получения инфы о нашем пользователе заранее, чтобы избегать повторного обращения к классу.
Удалены невостребованные функции из /sys/inc/fnc.php (admin_log(), only_reg(), only_unreg(), my_esc(), file_put_content()).
Функция admin_log() работает с теми же параметрами через глобальную переменную $_ME. Обращение: $_ME->admin_log(<params>).
Функции only_reg/only_unreg заменил метод: $_ME->isRegistered([param]). За параметр указывается false, если доступ только незарегистрированным. Без параметра или с true - доступ только зарегистрированным.
Автор темы
ChangeLog 09.08 10:50
В /sys/inc/user.php добавлена "глобальная" переменная $_ME, которая обращается к классу User() для получения инфы о нашем пользователе заранее, чтобы избегать повторного обращения к классу.
Удалены невостребованные функции из /sys/inc/fnc.php (admin_log(), only_reg(), only_unreg(), my_esc(), file_put_content()).
Функция admin_log() работает с теми же параметрами через глобальную переменную $_ME. Обращение: $_ME->admin_log(<params>).
Функции only_reg/only_unreg заменил метод: $_ME->isRegistered([param]). За параметр указывается false, если доступ только незарегистрированным. Без параметра или с true - доступ только зарегистрированным.
MarkPrior 9 Авг 2022
Автор темы
Был создан новый репозиторий (синхронизировал с PHPStorm, чтобы не выгружать вручную).
GitHub | DCMS-Social.
Сейчас выгружены абсолютно все файлы, включая не тронутые.
Автор темы
Был создан новый репозиторий (синхронизировал с PHPStorm, чтобы не выгружать вручную).
GitHub | DCMS-Social.
Сейчас выгружены абсолютно все файлы, включая не тронутые.