Топ постописцев
Актуально для тех, у кого не куплен счетчик постов от Deff, т.к. у него скрипт выводит топ постописцев.
Большое изображение по клику.
Чо эта хрень делает? Считает кто сколько постов написал за указанный период. По клику на "information" раскрывает детальный список - в каких темах и когда были написаны посты конкретным пользователем. Выводит суммарное количество постов, которые написали все игроки. Сортирует по циферке постов - у кого больше, тот первый в списке, такая вот постовая дискриминация. Собственно, всё хд
Каковы ваши доказательства условия использования? Комментарий верхний, сильвупле, не убирайте - мне будет приятно, что автор (это не я, мои познания в js не такие обширные, я тут в роли пресс-секретаря и техподдержки хд) упомянут по касательной. Можете еще зайти на Кингскросс и передать смачный чмок в пупок Архидьюку Авернуса, лично я буду в восторге от этого хд
У меня всё сломалось/нихера не работает/ЯННП! Стучите в личку - разберемся.
Важно. Скрипт проверяет максимум 1000 тем в указанных подфорумах. Это не так, чтобы проблема - крайне маловероятно, что даже за месяц у вас обновится хотя бы 500 разных тем с игровыми эпизодами х)
Инструкция.
Идем в Администрирование - Страницы и создаем новую страницу, куда помещаем сам скрипт. Название и адресное имя страницы значения не имеет.
<!-- топ постописцев из дома надежды от нежных когтистых лапок хозяина --> <div class="writers_wrapper-main"><div class="writer-desc"> <p><b>Первое поле (дата, с которой считаем) обязательно для заполнения</b>; точное время указывать не обязательно, это на всякий случай.</p> <p>Второе поле (дата, до которой считаем) для заполнения не обязательно, по умолчанию скрипт посчитает написанные посты до текущего момента. Сделано на случай, если подсчет ведется немного позже необходимой даты.</p> </div> <div class="writer-counter-wrapper">Дата, с которой считаем: <input type="text" id="writer-top-start-date" placeholder="ГГГГ-ММ-ДД ЧЧ:ММ:СС"> Дата, до которой считаем: <input type="text" id="writer-top-end-date" placeholder="ГГГГ-ММ-ДД ЧЧ:ММ:СС"> <button type="button" onclick="writerTopCalculate()">Посчитать посты</button></div> <div id="writer-top"></div> <div id="writer-summary">Всего написано постов: <span id="writer-summary-numb" class="writer-summary-numb"></span></div> </div> <script src="https://cdn.jsdelivr.net/gh/viper-f/scripts@latest/writer-top/WriterTop.js"></script> <script> const forumIDs = [1,3,4] // id форумов с эпизодами и архивных форумов с эпизодами через запятую, последний элемент без запятой function writerTopCalculate() { const startDate = document.getElementById('writer-top-start-date').value; const endDate = document.getElementById('writer-top-end-date').value; const writerTop = new WriterTop(forumIDs, startDate ,endDate); writerTop.execute('writer-top', 'writer-summary-numb').then(() => { document.querySelectorAll('.writer-item__details').forEach(div => div.onclick = (e) => {e.target.closest('.writer-item__details').classList.toggle('open')}) }) } </script> <style> .writer-desc { font-size: 11px; margin: 10px 0px 15px !important; padding: 0px; display: flex; flex-direction: column; gap: 10px; font-size: 10px; } .writer-counter-wrapper { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; background: rgba(255,255,255,.05); padding: 15px } .writer-counter-wrapper button { width: 100%; margin-top: 10px !important; } #writer-top-start-date { margin-right: 20px } #writer-top { display: flex; flex-direction: column; gap: 1px; padding: 0px; margin: 0px 0px } .writer-item__container { padding: 15px; display: flex; gap: 0px 10px; flex-wrap: wrap; background: rgba(255,255,255,.05); } .writer-item__username { font-weight: bold; font-size: 13px } .writer-item__numb { background: #fff; border-radius: 10px; padding: 0 10px 1px; color: #000; display: flex; align-items: center; justify-content: center; font-weight: bold; font-size: 11px } .writer-item__details { width: 100%; padding-top: 5px; cursor: pointer } .writer-item__details:before { content: "Information"; text-transform: uppercase; border: 1px solid rgba(255,255,255,.05); border-radius: 10px; padding: 2px 10px; font-size: 9px; opacity: .75 } .writer-item__details.open .writer-item__details-list { display: flex } .writer-item__details-list { display: none; flex-direction: column; gap: 0; font-size: 10px; margin-top: 10px !important; } .writer-item__details-list a { font-size: 12px; font-weight: 500 } .writer-item__details-list li { border-bottom: 1px solid rgba(255,255,255,.05); padding: 10px 0 !important; } .writer-item__details-list li:last-child { border: none !important; padding-bottom: 0 !important; } #writer-summary { display: flex; gap: 5px; flex-wrap: wrap; font-weight: bold; background: rgba(255,255,255,.05); padding: 15px; margin-top: 1px; margin-bottom: 10px } </style>
[indent][!] const forumIDs = [1,3,4] // id форумов с эпизодами и архивных форумов с эпизодами через запятую, последний элемент без запятой
Не забудьте исправить вот эту часть под себя. На ролевой обязательно должен быть отдельный форум для архива эпизодов. Не обязательно, чтобы замороженные эпизоды и отыгранные лежали отдельно, главное чтобы не все в одной куче - и эпизоды, и флудные темы, и анкеты, потому что тогда скрипт не будет работать корректно.
Как использовать.
Открываем созданную страницу. Следуя подсказкам, заполняем одно или оба поля, жмем "Посчитать посты". Радостно хлопаем в ласты, получив результат хд