Переборыч
|
Сообщение #1
6 февраля 2023 в 00:00
|
Клавомеханик-Организатор событий
55 |
Фото: Андрей Любимов для иноагента «Медузы» Рубрика " Кодим вместе" - это реализация наиболее полезных хотелок клавогонщиков, где исполнители желаний - сами клавогонщики. Приглашаются желающие внести свой вклад в развитие проекта. Дозаправь унча!, - участника рубрики и победителя лотереи, если нравится формат мероприятия и хочешь добавить энергии клавокодерам на реализацию клавохотелок. 1. Схема 1.1. Для старта напросились статусы игроков ( Маньяк, Клавомеханик, Титан), а следующие хотелки для рубрики будут определяться вместе с участниками. 1.2. На основе исходных кодов Клавогонок составлены демонстрационные примеры. Их можно скачать архивом, взять из репозитория или потестить на сайте. 1.3. Примеры можно запустить на компьютере (напр., Open Server) или на хостинге (напр., HostiMan), исправить кусочек и передать обратно пул-реквестом или через файлообменник. 1.4. Файлы index.html улучшать НЕ нужно, они специально сделаны максимально минималистично, только лишь чтобы была возможность продемонстрировать работу кода. 1.5. Разработанное участниками будет перенесено в клавогоночные обновления. 2. Задачи 2.1. Перенос соответствий user_id-status из исходного кода в базу данных. 2.2. Управление статусами из админки. 2.3. Задание произвольного CSS. 2.4. Задание срока действия. 2.5. Задание для всех клавогонщиков сразу. 2.6. Привязка к рангу. 2.7. Синхронизация с правами. 2.8. Иконка. 3. Координация 3.1. Чтобы избежать спешки, конкуренции и плагиата, сделанное (или пароль от выложенного ранее архива) рекомендуется присылать в конце дня (после полуночи). 3.2. В течение дня в теме можно писать типа "делаю crud", "сделал initdb", "изучаю main", "проверяю код унча"; это НЕ бронь, но всё же ориентир для других. 3.3. Все сообщения в этой теме, кроме последних, будут периодически сворачиваться в заглавные сводки, чтобы удобнее было следить за актуальной информацией. 3.4. Не стоит бояться делать одновременно одно и то же с другими. Может получиться разница в реализации, при сравнении дающая лучший подход к решению. 3.5. Приветствуется код-ревью и тестирование как созданного другими участниками, так и самих примеров. 26-28 февраля пройдёт опрос и закончится основная фаза. 1 марта будет лотерея, где один из участников получит символический приз. Далее примеры останутся опенсорсом вне схемы, задач и координации. Последний раз отредактировано 24 марта 2023 в 03:49 модератором Переборыч
|
Переборыч
|
Сообщение #2
6 февраля 2023 в 00:06
|
Клавомеханик-Организатор событий
55 |
Изменения сборки: Участники: 1. oonch 2. ChatGPT 3. Kenichi Последний раз отредактировано 7 марта 2023 в 19:24 модератором Переборыч
|
Переборыч
|
Сообщение #3
6 февраля 2023 в 00:06
|
Клавомеханик-Организатор событий
55 |
Пост для ответов на вопросы.
|
Аромат
|
Сообщение #4
6 февраля 2023 в 03:25
|
Супермен
53 |
Очень интересная инициатива, поддерживаю!
|
Пьяный_Качок
|
Сообщение #5
6 февраля 2023 в 07:23
|
Супермен
21 |
Молодцы, поддерживаю! Очень интересная инициатива,
|
HelixOfTheEnd
|
Сообщение #6
6 февраля 2023 в 10:58
|
Организатор событий
1 |
Переборыч писал(а): статусы игроков (Маньяк, Клавомеханик, Титан) может, имелось в виду Мастер? Маньяк это вроде бы ранг.
|
Переборыч
|
Сообщение #7
6 февраля 2023 в 13:49
|
Клавомеханик-Организатор событий
55 |
Это типа отсутствие специального статуса или перечисление рангостатусов. :)
|
Переборыч
|
Сообщение #8
6 февраля 2023 в 14:46
|
Клавомеханик-Организатор событий
55 |
Правки от унча: oonch писал(а): 1) пароль от БД изменён на "" 2) подключение к БД (кроме initdb) вынесено в отдельный файл db.php, который подключается в админке и в main'е 3) сделано всё, что требовалось в initdb (создание и наполнение табличек status, userstatus) 4) имплементированы функции getStatusFromDb и getTitleFromDb в main.php 5) в админке добавился просмотр viewuserstatuses status_20230206_oonch.zip (пароль, согласно п.3.1, после полуночи)
|
Переборыч
|
Сообщение #9
7 февраля 2023 в 00:15
|
Клавомеханик-Организатор событий
55 |
Пароль к status_20230206_oonch.zip - h7uHSaom
|
4xpro
|
Сообщение #10
7 февраля 2023 в 04:09
|
Гонщик
17 |
Глянул код oonchа. Возник вопрос: а в файле profile.php экранирование вывода title, level, status от XSS-атак (с помощью функции htmlspecialchars) точно не нужно? Или оно где-то ещё делается? Или все эти значения всё равно только админы могут задавать, поэтому можно обойтись без экранирования? (Хотя, на мой взгляд, это плохая практика.) Последний раз отредактировано 7 февраля 2023 в 04:10 пользователем 4xpro
|
Переборыч
|
Сообщение #11
7 февраля 2023 в 04:59
|
Клавомеханик-Организатор событий
55 |
Правки oonch'а от 20230206 перенесены в основную сборку (см. п.1.2): + initdb_1 //полнофунциональная и рабочая + adminka_1 //сделано 2/6, для удобства тестирования лишнее из adminka_1/index.html убрано + main_1.php //не хватает поддержки рангового цвета для игрока со статусом + db_1 //общий модуль для adminka_1 и main_1.php, можно было бы и для initdb_1 + main+popup_1 //копия main+popup для тестирования main_1.php • index.html //добавлены ссылки "by oonch" для перехода к версиям *_1_1 - это порядковый номер участника oonch. Можно кодить на базе кода унча, тогда версия 2-го участника будет _1_2. Если унч внесёт правки в его версию, то она изменится на 1.1.
|
Переборыч
|
Сообщение #12
7 февраля 2023 в 05:05
|
Клавомеханик-Организатор событий
55 |
4xpro писал(а): Глянул код oonchа. Возник вопрос: а в файле profile.php экранирование вывода title, level, status от XSS-атак (с помощью функции htmlspecialchars) точно не нужно? Это так в оригинальном исходном коде. И да, согласен, лучше добавить в него безопасности. Пока статусы живут в исходном коде, выводить их напрямую - более-менее норм, но при переезде в базу данных - потенциальная дырка. Последний раз отредактировано 7 февраля 2023 в 05:33 модератором Переборыч
|
Переборыч
|
Сообщение #13
7 февраля 2023 в 05:23
|
Клавомеханик-Организатор событий
55 |
Также унч внёс конструктивные предложения на основе возникших в процессе кодинга вопросов: oonch писал(а): 1) желательно указать версии PHP и MySQL, на которых гарантированно должен работать код (для MySQL желательно ещё уточнить вид движка (MyISAM или InnoDB) и кодировку, потому что мои таблички по умолчанию создавались в InnoDB с кодировкой UTF8MB3)
2) неплохо было бы уточнить (хоть это и видно из исходников, которые представлены в примере), что доступ к БД осуществляется сугубо через MySQLi (причём желательно явно указать в каком виде − в объектном или процедурном, хотя вроде как понятно, что в объектном). помимо этого, неплохо было бы уточнить, как необходимо использовать объект db в main.php (потому что в примере был просто объявлен класс, который по факту никак не использовался, вроде как, собсно я поэтому и впилякал этот дб-объект прямо в класс user :D )
3) желательно указать, насколько «профессиональным» должен быть код по части обработки ошибок: нужно ли отлавливать все ошибки? куда о них сообщать? и т.д.
4) возможно нужно уточнить по поводу стилей оформления кода (табы или пробелы и т.д.) Подумаю какую информацию и где стоит разместить для пользы дела...
|
Переборыч
|
Сообщение #14
7 февраля 2023 в 22:17
|
Клавомеханик-Организатор событий
55 |
Ещё правки от унча: oonch писал(а): [*] чуток перелопачен main_1.php (изначальное $user->getStatus() сменилось на $user->getKey(), добавлена обработка кастомного стиля для титула, произведён мелкий рефакторинг) [*] из main.css убраны цвета для *.statusPersonal (теперь они будут браться из БД), остальное по желанию можно исправлять там [+] во все сопутствующие формы (вроде) добавлено отображение цвета титула из БД. status_20230207_oonch.zip (пароль, согласно п.3.1, после полуночи)
|
Переборыч
|
Сообщение #15
8 февраля 2023 в 00:00
|
Клавомеханик-Организатор событий
55 |
Пароль к status_20230207_oonch.zip - 54ug1XeS
|
Переборыч
|
Сообщение #16
8 февраля 2023 в 04:18
|
Клавомеханик-Организатор событий
55 |
Правки oonch'а от 20230207 перенесены в основную сборку (см. п.1.2): + main_1.css //убраны (перенесены) цвета для статусов • main_1.1.php //рефакторинг и поддержка инлайн стилей • initdb_1.1 //задание рангового цвета для статусного игрока как "", вместо "rang" • main+popup_1.1 //фронт для цвета из БД во всплывашке + main+forum_1 //фронт для цвета в посте на форуме + main+profile_1 //фронт для профиля + main+game_1 //фронт для заезда + main+gamelist_1 //фронт для списка игр • index.html //добавлены ссылки "by oonch" для перехода к новым версиям, теперь они есть у каждого пункта сборкиЭта правка во фронте делает жирными Клавомехаников, но font-weight пока нужен был только Титану. При переезде надо чтобы жирность существовала независимо, - добавлена соответствующая задача 2.3. А также скорректированы примеры под это: • initdb_0.1 //weight для Титана • adminka_0.1 //input для жирности шрифта • main_0.1.php //mock с weight
|
HelixOfTheEnd
|
Сообщение #17
8 февраля 2023 в 05:42
|
Организатор событий
1 |
Переборыч писал(а): При переезде надо чтобы жирность существовала независимо, - добавлена соответствующая задача 2.3. тогда можно наверное ещё добавить(не знаю, возможно ли технически сделать): а) градиент б) italic в) зачёркнутость г) подчёркнутость д) возможность другого шрифта е) перевёрнутую надпись(rotate 180).
|
Переборыч
|
Сообщение #19
8 февраля 2023 в 11:48
|
Клавомеханик-Организатор событий
55 |
HelixOfTheEnd писал(а): тогда можно наверное ещё добавить... Действительно, вместо weight, можно было бы сразу универсально поле style, - и указывай там хоть background, хоть шрифт, хоть что хочешь.
|
Игрок3
|
Сообщение #20
8 февраля 2023 в 13:08
|
Организатор событий
32 |
Переносы: выделена ветка " Проблемы у Томы". Последний раз отредактировано 8 февраля 2023 в 13:08 пользователем Игрок3
|
GOOD_THINGS_GO
|
Сообщение #21
8 февраля 2023 в 20:28
|
Гонщик
1 |
Переборыч писал(а): 4xpro писал(а): Глянул код oonchа. Возник вопрос: а в файле profile.php экранирование вывода title, level, status от XSS-атак (с помощью функции htmlspecialchars) точно не нужно? Это так в оригинальном исходном коде. И да, согласен, лучше добавить в него безопасности. Не хотел это озвучивать, но после сегодняшнего скандального поста не могу пройти мимо. Есть два варианта объяснения данного факта: 1) Анфогив так долго сидел в интернете, что его кукуха улетела в небо, он возомнил из себя супер-синиора, который может всё. Но на самом деле, хоть он и слышал о таких серьёзных вещах, но его квалификация не позволила ему написать правильный код. или же 2) Он знал, что надо такие дыры закрывать, но намеренно закладывал трояна, чтобы потом его заабузить в своих интересах. Я думаю, что всегда нужно выбирать самый простой вариант, в данном случае некомпетентность. Анфогив, скрытый текст… предлагаю тебе смело отправиться на сайт. Зря ты назвал Дорофея говнокодером, теперь и тебя после таких джуниорских багуль смело можно назвать так же.
|