Jump to content

Featured Replies

  • Replies 151
  • Просмотров 43,5k
  • Created
  • Последний ответ

Лучшие авторы в теме

Most Popular Posts

Posted Images

Не знаю, что за ерунда, но на 4.7.9 не устанавливается кнопка. Ошибка. Ставил на 4.7.8 - норм. Обновлял до 4.7.9 и все работало. А вот сразу на 4.7.9 не хочет устанавливаться.

  On 07.06.2022 at 05:52, by_ix said:

(k4) Hidden Content


Плагин для скрытия контента от посторонних глаз.

  • Работает в приложениях:
    • Форумы.
    • Загрузки.
    • Блоги.
    • Клубы.
    • Галерея.
    • Страницы.
  • Настройки на 2-м скриншоте. Настраивайте на своё усмотрение или оставляйте, как есть.
    • Выбрать необходимые группы, для которых нужно скрывать контент. (по умолчанию: скрывается для всех)
    • Выбрать форумы, в которых нужно скрывать контент. (по умолчанию: скрывается для всех)
    • Выбрать варианты отображения оставшихся или имеющихся действий. (по умолчанию: отображаются оставшиеся действия)
    • Выбрать светлый/тёмный режим для окна кнопки. (по умолчанию: стандартный светлый (3-4 скриншоты))
    • Настроить цвета блока и текста скрытого контента.
  • Установить кнопку для CKEditor'а.
    • Установка по пути: https://yoursite.ru/admin/?app=core&module=editor&controller=toolbar&do=addPlugin
  • Для использования плагина без кнопки:
    • Прописывать все свойства в теге [hide][/hide].
      • Пример: [hide p=10 r=10 f=10 j=10 m=10 g=10]hidden text[/hide].
        • p=10 - количество постов.
        • r=10 - количество репутации.
        • f=10 - количество файлов.
        • j=10 - количество дней регистрации.
        • m=10 - ID пользователя.
        • g=10 - ID группы.
    • Тег можно использовать и без свойств.
      • Пример: [hide]hidden text[/hide]. В этом случае, просмотр будет ограничен только гостям.

 

Совместимость PHP: 7-8.


 

friend can add it for 4.2.8

Zero108 Очень жаль, так как есть действительно полезные плагины вроде этого.

Что самое интересное, на 4.7.8 она устанавливается, я проверял, а вот на 4.7.9 уже ни в какую.

Выявил еще одну существенную проблему. Если опубликовать контент (комментарий к записи, новое сообщение в теме форума и т.д.) со скрытым блоком (вручную прописываю [hide]) и на эту тему\запись кто-то подписан путем уведомлений по почте (так называемый дайджест), то получаем ошибку.

Only subclasses of Dispatcher can be instantiated

#0 /home/test/web/site.ru/public_html/system/Dispatcher/Controller.php(56): IPS\_Dispatcher::i()
#1 /home/test/web/site.ru/public_html/init.php(938) : eval()'d code(22): IPS\Dispatcher\_Controller->__construct()
#2 /home/test/web/site.ru/public_html/system/Email/Email.php(949) : eval()'d code(24): IPS\hook102->content()
#3 /home/test/web/site.ru/public_html/system/Email/Email.php(952): IPS\Theme\email_html_cms_digests__comment()
#4 /home/test/web/site.ru/public_html/applications/core/sources/Digest/Digest.php(187): IPS\_Email::template()
#5 /home/test/web/site.ru/public_html/applications/core/sources/Digest/Digest.php(287): IPS\core\Digest\_Digest->build()
#6 /home/test/web/site.ru/public_html/applications/core/tasks/digest.php(40): IPS\core\Digest\_Digest::sendDigestBatch()
#7 /home/test/web/site.ru/public_html/system/Task/Task.php(375): IPS\core\tasks\_digest->IPS\core\tasks\{closure}()
#8 /home/test/web/site.ru/public_html/applications/core/tasks/digest.php(41): IPS\_Task->runUntilTimeout()
#9 /home/test/web/site.ru/public_html/system/Task/Task.php(274): IPS\core\tasks\_digest->execute()
#10 /home/test/web/site.ru/public_html/system/Task/Task.php(237): IPS\_Task->run()
#11 /home/test/web/site.ru/public_html/applications/core/interface/task/task.php(72): IPS\_Task->runAndLog()
#12 {main}

Зависает та самая задача digest. Было предположение, что это связано с тем, что это шаблон письма не может обработать этот скрытый блок, и выбрасывает ошибку. Не могу проверить, так как не нашел, где лежат шаблоны писем.

PHP 8.1 и 4.7.9

Edited by edmsl

  On 15.05.2023 at 15:59, edmsl said:

Выявил еще одну существенную проблему. Если опубликовать контент (комментарий к записи, новое сообщение в теме форума и т.д.) со скрытым блоком (вручную прописываю [hide]) и на эту тему\запись кто-то подписан путем уведомлений по почте (так называемый дайджест), то получаем ошибку.

Only subclasses of Dispatcher can be instantiated

#0 /home/test/web/site.ru/public_html/system/Dispatcher/Controller.php(56): IPS\_Dispatcher::i()
#1 /home/test/web/site.ru/public_html/init.php(938) : eval()'d code(22): IPS\Dispatcher\_Controller->__construct()
#2 /home/test/web/site.ru/public_html/system/Email/Email.php(949) : eval()'d code(24): IPS\hook102->content()
#3 /home/test/web/site.ru/public_html/system/Email/Email.php(952): IPS\Theme\email_html_cms_digests__comment()
#4 /home/test/web/site.ru/public_html/applications/core/sources/Digest/Digest.php(187): IPS\_Email::template()
#5 /home/test/web/site.ru/public_html/applications/core/sources/Digest/Digest.php(287): IPS\core\Digest\_Digest->build()
#6 /home/test/web/site.ru/public_html/applications/core/tasks/digest.php(40): IPS\core\Digest\_Digest::sendDigestBatch()
#7 /home/test/web/site.ru/public_html/system/Task/Task.php(375): IPS\core\tasks\_digest->IPS\core\tasks\{closure}()
#8 /home/test/web/site.ru/public_html/applications/core/tasks/digest.php(41): IPS\_Task->runUntilTimeout()
#9 /home/test/web/site.ru/public_html/system/Task/Task.php(274): IPS\core\tasks\_digest->execute()
#10 /home/test/web/site.ru/public_html/system/Task/Task.php(237): IPS\_Task->run()
#11 /home/test/web/site.ru/public_html/applications/core/interface/task/task.php(72): IPS\_Task->runAndLog()
#12 {main}

Зависает та самая задача digest. Было предположение, что это связано с тем, что это шаблон письма не может обработать этот скрытый блок, и выбрасывает ошибку. Не могу проверить, так как не нашел, где лежат шаблоны писем.

PHP 8.1 и 4.7.9

Я ж уже где то говорил свою гипотезу.

Пользователь создает тему:

  • Помогите, у меня не работает то то, там то...

Ты отвечаешь пользователю (Но при этом, решение пихаешь в хайд😞

  • Сделай то то, там то

Далее сайт отправляет письмо пользователю:

  • На ваш вопрос появился ответ

И вся проблема в том, я считаю, что данному письму никто не объяснил, что контент, который отправляется, на самом деле скрыт.

Мне кажется, тебе надо копать в сторону шаблонов Email сообщений.

image.png.587d406001774c2148a68eb1cd172ab3.png

В теории ты можешь полностью вырубить абсолютно все Email рассылки, и проверить, как плагин будет работать без них.

ryancoolround Так, собственно, ту гипотезу я и проверял. Ошибка возникает при уведомлениях по почте. И именно для контента со скрытым блоком. Обычные уведомления норм работают.

И спасибо за скрин, знаю теперь, где искать шаблоны. Покопаюсь, может чего и выйдет.

У тебя же хайды в форумах именно? Может ошибка из-за фильтра raw?

<div style="font-family: 'Helvetica Neue', helvetica, sans-serif; line-height: 22px; margin-top: 10px; margin-bottom: 10px;">
			{$email->parseTextForEmail( $topic->content(), $email->language, ( \IPS\Settings::i()->email_truncate ? 150 : NULL ) )|raw}
		</div>

Что будет если этот фильтр заменить на escape? Типа:

<div style="font-family: 'Helvetica Neue', helvetica, sans-serif; line-height: 22px; margin-top: 10px; margin-bottom: 10px;">
    {$email->parseTextForEmail( $topic->content(), $email->language, ( \IPS\Settings::i()->email_truncate ? 150 : NULL ) )|escape}
</div>

 

Это если что Email: Дайджест контента форумов

В общем, что бы я ни делал здесь

{$email->parseTextForEmail( $topic->content(), $email->language, ( \IPS\Settings::i()->email_truncate ? 150 : NULL ) )|raw}

ничего не помогает. Надо править PHP код, похоже.

Edited by edmsl

  On 17.05.2023 at 16:17, edmsl said:

Надо править PHP код, похоже.

да, ошибка указывает на то, что в плагине функция content() создает внутри себя классы отличные от подклассов Dispatcher

Я думаю можно расширить новыми функциями класс Dispatcher, и в функции content() вызывать их создав экземпляр класса Dispatcher или просто обратиться к новой функции через Dispatcher. Но при таком раскладе нужно учитывать что Dispatcher так же не видит внутри себя многие функции и классы ips

или как вариант обрабатывать контент внутри функции content() без создания новых экземпляров классов

Edited by Exception

Exception В общем, было бы неплохо, если автор прочтет этот пост и сделает фикс. Плагин хороший, обидно, что из-за этого бага пользоваться им не могу. Достойных аналогов нет.

  • 4 месяца спустя...
  • 3 месяца спустя...

Пробывал установить плагин на актуальную версию 4.7.15 все работает.

Но есть один не большой косяк... При добавлении ссылки в "контент" через кнопку. Ссылка неактивная. Как исправить кто знает ?

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Ответить в этой теме...

Последние посетители 0

  • No registered users viewing this page.