Добро пожаловать, Гость!
:: + Добавить ссылку через биллинг
:: + Добавить ссылку анонимно
DOXNET — анонимность, общение и цифровая безопасность
DOXNET — анонимность, общение и цифровая безопасность
DOXNET — анонимность, общение и цифровая безопасность
DOXNET — анонимность, общение и цифровая безопасность
Рерайтинг движка | GitHub - Страница 10
Предложения и пожелания | Рерайтинг движка | GitHub
MarkPrior : Рерайтинг движка | 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 21:30
Бессмысленно потраченное время на реализацию загрузки изображений на ajax.
Саму выгрузку реализовать несложно, это работает. Проблемы возникают при, к примеру, редактировании поста, к которому они прикреплены. То есть логично, что и в этом случае нужно реализовать удаление/добавление файлов на ajax.
Вроде бы, реализовано, они выгружаются, сохраняются в БД, но конкретно при редактировании не происходит визуального обновления. И тут я застопорился, потому что ни ошибок, ничего нет, но получать ответ от скрипта отказывается.
Буду думать завтра, сегодня просто блоги, без заморочек.
Kokosik 10 Авг 2022Смотрю работы идут, респект, посмотри еще бб панель у старого джонкмс(в новой версии гоано) очень удобная и простая мб стоит добавить + реализации файлов на форуме тоже можно было б подсмотреть в старом джоне
MarkPrior 10 Авг 2022Автор темы
ChangeLog 10.08
Перед началом рерайта блогов, решил сразу осуществить прикрепление фото к постам (пока что только фото).
Реализовано с использованием Ajax, всё-таки время то, что без js никуда.
На данный момент, например, к теме форума можно прикрепить 3 изображения. После их выбора с устройства, будут показаны превьюшки с кнопкой удаления.
Как это выглядит: Скриншот.
Осталось доработать их добавление в БД, если юзер всё-таки создаёт тему (т.к. он может уйти со страницы, потому нам нужно удалить выгруженные файлы).
И уже сегодня будут редачиться блоги.
MarkPrior 9 Авг 2022Автор темы
Визуал
Мы дополнительно передали параметры на вывод кнопок репоста и закладок.
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 отправлен, то вместо надписи "Лайк" будет выводиться кол-во лайков, если их больше нуля.
MarkPrior 9 Авг 2022Автор темы
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('имя права').

