Что нового

Бесплатно Звания / Rank 1.2.7

Ребят, может есть у кого работоспособный и доработанный модуль Достижений?
 
Оказывается с коробки DLE уже есть функции которые мне нужны были, плохо знаю коробку получается
Подскажи что вычитал по теме, тоже изучаю гефмификацию с ранками, и с уведомлениями пушами
 
Обычные условия по комментам/новостям/регистрации и т.д.
[if field = "значение"]
текст
[/if]
Выводят текст заключённых в них если значения поля равно указанному значению.
[if field = "значение"] текст [/if] - выведет текст если поле равно параметру 'значение'
[if field != "значение"]текст[/if] - выведет текст если поле не равно параметру 'значение'
[if field > "1"] текст [/if] - выведет текст если поле больше параметра 'значение'
[if field >= "2"] текст [/if] - выведет текст если поле больше либо равно параметру 'значение'
[if field < "3"] текст [/if] - выведет текст если поле меньше параметра 'значение'
[if field <= "4"] текст [/if] - выведет текст если поле меньше либо равно параметру 'значение'
[if field ~ "значение"] текст [/if] - выведет текст если в поле встречается текст 'значение'
[if field !~ "значение"] текст [/if] - выведет текст если в поле НЕ встречается текст 'значение'
Комбинированное использование:
[if field > "3" AND field2 < "5"] текст [/if] выведет текст если поле field больше трех, и при этом field2 меньше 5
[if field > "3" OR field2 < "5"] текст [/if] выведет текст если поле field больше трех или field2 меньше 5, то есть совпадение какого либо либого из условий
Имена полей, которое может принимать field:
id - Уникальный ID номер комментария (число)
post_id - Уникальный ID номер публикации (число)
user_id - Уникальный ID номер пользователя оставившего комментарий если он зарегистрирован (число)
date - Дата комментария (дата в английском формате, например "2020-09-01" или "10 September 2020" или "next Thursday" или "+1 day" или "next Thursday" или в unix формате, если же используется знак равенства то дата новости округляется до минуты)
gast_name - Логин автора комментария (текст)
gast_email - Е-mail автора комментария (текст)
ip - IP пользователя оставившего комментарий (текст)
is_register - Зарегистрирован автор комментария на сайте или нет (число 1 или 0)
rating - Общий рейтинг комментария (число)
vote_num - Количество голосов в рейтинге комментария (число)
name - Логин автора комментария если он зарегистрирован. (текст)
email - E-mail автора комментария если он зарегистрирован (текст)
news_num - Количество публикаций автора комментария если он зарегистрирован (число)
comm_num - Количество комментариев автора комментария если он зарегистрирован (число)
user_group - Группа автора комментария если он зарегистрирован (число)
lastdate - Дата последнего посещения автора комментария если он зарегистрирован (дата в английском формате, например "2020-09-01" или "10 September 2020" или "next Thursday" или "+1 day" или "next Thursday" или в unix формате, если же используется знак равенства то дата новости округляется до минуты)
reg_date - Дата регистрации автора комментария если он зарегистрирован (дата в английском формате, например "2020-09-01" или "10 September 2020" или "next Thursday" или "+1 day" или "next Thursday" или в unix формате, если же используется знак равенства то дата новости округляется до минуты)
signature - Подпись автора комментария если он зарегистрирован (текст)
foto - Ссылка на аватар автора комментария если он зарегистрирован (текст)
fullname - Полное имя автора комментария если он зарегистрирован (текст)
land - Местожительства автора комментария если он зарегистрирован (текст)
xfield_x - Значение дополнительного поля профиля пользователя, где x это имя дополнительного поля. Например xfield_test значение дополнительного поля test
Так же смену группы в ДЛЕ за определенные достижения. Всё стандартными средствами сделать можно, главное один раз настроить все условия.
 
Обычные условия по комментам/новостям/регистрации и т.д.

Так же смену группы в ДЛЕ за определенные достижения. Всё стандартными средствами сделать можно, главное один раз настроить все условия.
т.е в модуле ничего особого нет если простыми словами? или есть свои ачивки?
 
т.е в модуле ничего особого нет если простыми словами? или есть свои ачивки?
Верно! Модуль был написан во времена ещё когда была DLE 8/9.x версий, тогда много всего небыло, чем можно было оперировать и выдавать участникам "награды". Сейчас уже несколько лет - это всё есть в ДЛЕ, главное прописать условия правильные, и будут стандартными средствами ранги пользователей, нужные иконки и т.д... Так же можно и переводы между группами назначить при достижении определенных действий.
 
а ты знаешь как приветственное сообщение сделать гостю пуш?
 
а ты знаешь как приветственное сообщение сделать гостю пуш?
Через DLEPush:
JavaScript:
<script type="text/javascript">
    window.addEventListener('load', ()=> {
        const uw = sessionStorage.getItem('push_welcome');
        if (!uw) {
            DLEPush.info('Войдите на сайт и вы сможете комментировать, оценивать новости и скачивать файлы', 'Вы не авторизованы');
            sessionStorage.setItem('push_welcome', 1);
        }
    });
</script>

Через DLEalert:
JavaScript:
<script type="text/javascript">
    setTimeout(() => {
        const uw = sessionStorage.getItem('alert_welcome');
       if (!uw) {
            DLEalert('Войдите на сайт и вы сможете комментировать, оценивать новости и скачивать файлы', 'Вы не авторизованы');
            sessionStorage.setItem('alert_welcome', 1);
        }
    }, 2000);
</script>

При желании можно использовать оба эти скрипта js, они используют разные ключи в sessionStorage во избежание конфликтов. Также следует помнить, что sessionStorage работает до закрытия вкладки браузера. То есть уведомление будет показываться только 1 раз за сессию даже если пользователь обновит страницу. Если нужно чтобы уведомление показывалось гостю только 1 раз нужно использовать вместо sessionStorage - localStorage.
Для показа уведомления только гостям нужно использовать теги DLE: [group=5] ... [/group] , обернув ими эти js расположенные например в main.tpl.
 
Привет всем! Я просто хотел проверить, как Claude справится с этим, и дал ему несколько инструкций. Он всё сделал, но работает это или нет — точно сказать не могу. Если я нарушил какие-либо правила, прошу прощения. В таком случае попрошу администраторов удалить это сообщение.

  • rank-zvanija-1_3_dle19.1.zip
    15.4 КБ · ID: 6397
 
Пересобрал модуль под наши правила DLE 19.1 и перевёл админские действия на AJAX.
Что изменил:
✅ plugin.xml строго в корне ZIP
✅ нет upload/обертки
✅ нет вложенной папки
✅ добавлен engine/ajax/rank.php
✅ админка теперь работает через AJAX:
- список званий
- добавление
- редактирование
- удаление
- сохранение настроек

✅ все write-actions требуют POST + user_hash
✅ удаление без DLEconfirm/modal/popup — повторное inline-нажатие
✅ убран старый внешний update-checker coderiz.pw
✅ убраны старые backend action/list файлы
✅ добавлен engine/api/rank.class.php
✅ добавлен ручной include engine/modules/rank.php
✅ исправлена логика user_id / banned_id
✅ исправлены странные дефолтные значения Генерал / Маршал
✅ ZIP структура совместима с установщиком DLE 19.1

AJAX endpoint:
/index.php?controller=ajax&amp;mod=rank
{include file="engine/modules/rank.php?user_id={user-id}"}
 

Вложения

Верх