Компонент "Скрытый текст"

+42
4.22K
Иллюстрация
Всем привет! Продолжаем радовать вас бесплатными дополнениями 😊
На этот раз это компонент "Скрытый текст", который в принципе аналогичен тому, что есть в первой ветке InstantCMS, но здесь появились дополнительные настройки.

Компонент позволяет скрывать часть текста в записях типов контента, в комментариях и на стенах при помощи тега hide. Скриншоты представлены на странице дополнения.

Использовать так:

  1. [hide]Текст, который нужно скрыть[/hide]
или

  1. [hide=20]Текст, который нужно скрыть[/hide]
где 20 — это значение репутации или рейтинга (в зависимости от настроек), не ниже которого пользователь должен иметь для просмотра текста.

В типах контента тег обрабатывается (опционально) в полях типа «Текст» и «Текст HTML».

Как установить

Для версии InstantCMS ниже 2.4.1 необходимо внести это исправление для корректной работы компонента. В исправлении нужно внести себе правки от всех файлов, перечисленных в коммите, за исключением последнего файла — system/core/core.php. Красным цветом выделено то, что необходимо удалить, зеленым — то, что необходимо добавить.

Установка стандартная. После установки включите нужные типы контента и проставьте чекбоксы для полей, где тег будет обрабатываться.

По желанию, для стилизирования блока скрытого текста добавьте в ваш файл стилей css следующий код:

  1. .hide_tag {
  2. background:url("../images/icons/lock.png") no-repeat 5px center #e67e22;
  3. color: #fff;
  4. padding: 5px 10px 5px 25px;
  5. overflow: hidden;
  6. }
  7. .hide_billing {
  8. background:url("../images/icons/coin.png") no-repeat 5px center #3498db;
  9. }
  10. .user_field_denied {
  11. background-color: #7f8c8d;
  12. }
  13. .hide_tag_allow {
  14. border-left: 3px solid #e67e22;
  15. padding: 5px 0 5px 10px;
  16. overflow: hidden;
  17. }


Подписывайтесь на нашу страницу в Вконтакте
0
MegaRostov MegaRostov 6 лет назад #
Я понимаю тут так же есть возможность скрыть текст от незарегистрированных пользователей?
+1
Fuze Fuze 6 лет назад #
""


Скрыть можно от любой группы, в том числе и для гостей.
0
MegaRostov MegaRostov 6 лет назад #
Отличный компонент! Спасибо очень нужен. :)
+1
Alexprofi Alexprofi 6 лет назад #
Спасибо большое!
Полезная вещь!
HostelB HostelB 6 лет назад #
Комментарий удален
+1
Fuze Fuze 6 лет назад #
То есть для 2.4.0 тоже нужно исправление?
2.4.0 ведь ниже 2.4.1?
0
Александр Kreator Александр Kreator 6 лет назад #
Может и не по теме, но глядя в исправления 2,4,1:



Что тут изменено? Пробелы добавлены? Это имеет значение?
0
Александр Kreator Александр Kreator 6 лет назад #


И таких мест много
+2
Fuze Fuze 6 лет назад #
Что тут изменено?
пробелы (а вообще в данном случае это авто выравнивание IDE) добавляются/убираются автоматически при форматировании кода в IDE.
Изменения есть, добавлены хуки, смотрите внимательней. Собственно в подписи к коммиту даже написано о чем он и в первых двух файлах очевидно, что добавлены хуки.
Пробелы конечно же значения не имеют.
0
Александр Kreator Александр Kreator 6 лет назад #
Спасибо. Именно пробелы интересовали. Остальное видел.
0
PIN PIN 6 лет назад #
+! Дано напрашивавшийся компонент +! интеграция замечательных хуков
0
Александр Kreator Александр Kreator 6 лет назад #
+ еще бы порядок загрузки хуков определить.Что можно было регулировать очередность загрузки хуков, если один и тот же хук используют несколько компонентов.
+1
Fuze Fuze 6 лет назад #
ще бы порядок загрузки хуков определить.Что можно было регулировать очередность загрузки хуков, если один и тот же хук используют несколько компонентов.
Есть в планах
0
PIN PIN 6 лет назад #
2.4.0 - внёс правки вручную, не заработало, залил полностью с репозитария - всё отлично, возможно в этом коммите не все необходимые правки.
0
GluK GluK 6 лет назад #
Так для 2.4.0 и надо было внести изменения и залить.
0
PIN PIN 6 лет назад #
Вносил правки в чистый 2.4.0
0
Александр Kreator Александр Kreator 6 лет назад #
Я правильно понимаю, что текст под хайдом скрывается даже от самого автора записи, если он попадает под "санкции" хайда?
0
Fuze Fuze 6 лет назад #
да, вероятно нужно учесть этот момент.
0
Александр Kreator Александр Kreator 6 лет назад #
У всех работает?

У меня при добавлении на стену, при нажатии на "Предпросмотр" норм, при нажатии "Схранить" норм. Но если страницу перезагрузить никакой реакции. Так теги и отображаются.

и еще

Последнего камита из исправлений, тот что в файле core.php нет у меня в 2.4.0
0
Александр Kreator Александр Kreator 6 лет назад #
Так и есть. Не хватает правки в файле /system/controllers/wall/frontend.php
Нужно прогнать $entries через хук wall_before_list
Я например сделал так: в этом файле после строки 37 добавил:
Код PHP:
  1. $entries = cmsEventsManager::hook('wall_before_list', $entries);
И, не знаю конечно на сколько это правильно. Может в хуках comments_before_list.php, content_before_item.php, content_before_list.php, wall_before_list.php прогнать данные не через метод parseHide а через хук parse_text.php - это добавил универсальности дополнению.
0
Fuze Fuze 6 лет назад #
хм... не знаю куда вы смотрите, но в коммите это есть.
https://github.com/instantsoft/icms2/commit/414e050149866d0e4edf3667cd7113b0cbb4ce0c#diff-09fb0574eaf77bfcbd9f91a8758b23baR38
0
Александр Kreator Александр Kreator 6 лет назад #
Действительно. Как это я мог 3 раза внимательно туда глядя пропустить это. Видимо как то смог.

Но вот в 2.4.0 строчки из последнего каммита
Код PHP:
  1. if(!preg_match('/[^a-z0-9_]/', $this->controller)){
точно нет
0
Александр Kreator Александр Kreator 6 лет назад #
И еще. Не плохо было бы:
- Добавить возможность обработки полей в профиле пользователей
- Сейчас видимо выбираются для обработки поля типа text или html? Не плохо бы и string включить в список
0
Андрей Андрей 6 лет назад #
У меня в виджете "Комментарии" не обрабатываются скрытые комментарии. Это у меня у одного? Код что касается комментариев вроде обновил по ссылке.
0
Fuze Fuze 6 лет назад #
В файле /templates/default/controllers/comments/widgets/list/list.tpl.php
строку

Код PHP:
  1. <?php echo html_clean($item['content'], 50); ?>
замените на

Код PHP:
  1. <?php echo html_clean($item['content_html'], 50); ?>
0
Андрей Андрей 6 лет назад #
Спасибо! Помогло.
0
Dorimen Dorimen 5 лет назад #
Установил на чистую 2.7.2. Есть проблема. В настройках компонента указано, что 1) В статьях в анонсах обрабатывать hiden; 2) Не показывать для гостей. И так работает в самой статье: . А вот в анонсе не хочет:

Еще от автора

Как собрать обновление и релиз InstantCMS
Небольшой экскурс в сборку дистрибутива установки и обновления InstantCMS с GitHub.
InstantCMS 2.14.0 release candidate
Здравствуйте Тестируем релиз-кандидат InstantCMS 2.14.0. От того, как мы с вами выявим баги в новой версии, зависит стабильность релиза.
Черная пятница, скидки на премиум компоненты
Привет, друзья! Сегодня день, которого многие давно ждали - Черная пятница!
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.