2014 09 декабря

Плагин Hide Guest Content - скрытие контента от гостей - !Joomla 3.x с группами пользователей

Версия старого плагина, позволяющего скрывать часть текста в материале от незарегистрированных пользователей.

Использование:
  1. установить и опубликовать плагин
  2. в материале нужный блок текста обрамить тегами: {gcontent}скрытый материал для пользователей гостям не виден{/gcontent}
  3. заглушка для гостей заключена в DIV с классом guest_only, возможно настроить оформление предупредительного блока по собственному желанию
  4. (новое) в настройках плагина можно указать через запятую без пробелов ID групп пользователей, которым разрешен доступ. Например если указать 3,8 - то доступ будет для авторов и суперпользователей, если просто 3 - то только авторы, суперадмин и прочие авторизованные будут видеть заглушку. Если пусто - то по умолчанию, текст доступен для всех авторизованных.
  5. ВАЖНО - разграничение прав по группам пока работает в пределах всего сайта, то есть нельзя для разных скрытых текстов указать разные наборы групп. Если кому понадобится - пишите, сделаем новую версию. Пока же as is
Changelog:
  • В версии 3.2 добавлена инвертированная опция показа, можно показывать текст только для гостей, для всех авторизованных будет заглушка "Текст только пользователей" (редактируется в админке плагина), синтаксис: {ungcontent}материал только для гостей{/ungcontent}
Скачать:

P.S. Старая версия для Joomla 2.5

Обновления:
- версия 3.1 - исправлены незначительные ошибки, вызывающие warning

Комментарии

0 Kovnik пишет нам 07.02.2015 11:07
На Joomla 3.3.6 вместе с материалом, где применяется плагин, выводятся несколько ошибок.., - хотя нужный текст и скрывается от гостей.
Сообщить модератору
0 Beliyadm отвечает 07.02.2015 12:58
Какие конкретно ошибки? Хотя скорей это не ошибки, а варнинги. Можно в общих настройках сайта в админке отключить вывод ошибок и предупреждений в нет, если функционал не нарушается, ничего страшного не будет
Сообщить модератору
0 Kovnik пишет нам 07.02.2015 14:05
Спасибо за совет. Но это наверно не ошибки, а информация о неправильном коде: ------------------------- Strict Standards: Only variables should be assigned by reference in МОЙ ДОМЕН\plugins\content\GuestContent\GuestContent.ph p on line 32 Strict Standards: Only variables should be assigned by reference in МОЙ ДОМЕН\plugins\content\GuestContent\GuestContent.ph p on line 35 Strict Standards: Only variables should be assigned by reference in МОЙ ДОМЕН\plugins\content\GuestContent\GuestContent.ph p on line 51. -------------------------- Я в настройках сайта ничего делать не буду, т.к. все остальные расширения работают нормально, а в вашем плагине какая-то ошибка. --------- PS: Плагин предыдущей версии нормально работал на Joomla 2.5. Я бы хотел использовать это расширение и на Joomla 3.
Сообщить модератору
0 Beliyadm отвечает 07.02.2015 14:44
Это несмертельное предупреждение, в настройках можно их отключить (в принципе даже нужно, их надо включать на период разработки и отладки и после ставить "не показывать") Но если уж так не хочется вносить изменения - попробуйте скачать новую версию 3.1 из поста (обновил архив). Можно не переустанавливать, просто заменить файл plugins\content\GuestContent\GuestContent.php на новый из архива
Сообщить модератору
0 Beliyadm пишет нам 07.02.2015 20:37
Здравствуйте! Сейчас все работает нормально. Спасибо за труд. Здоровья и Успехов Вам!
Сообщить модератору
0 Макс пишет нам 10.04.2015 19:56
А где introtext? Пришлось плагин пилить ручками
Сообщить модератору
0 Beliyadm отвечает 11.04.2015 00:13
Не понял, какой интротекст? Плагин обрабатывает теги в всем тексте, и вступительном и полном. Ничего ручками пилить не было необходимости
Сообщить модератору
0 Алексей пишет нам 21.04.2015 13:10
Здравствуйте. Спасибо Вам за труды! А можно как-то инвертировать доступ? Нужно, чтобы незагери видели текст, а зареги нет
Сообщить модератору
0 Beliyadm отвечает 21.04.2015 14:22
Добрый день. Спасибо, рад что понравилось. Конечно можно, элементарно просто инвертировать, открываем GuestContent.php находим там строки с примерно 38
if (!$user->id) {
	$guest_result = ''; // гостей отметаем сразу
} else if ($user->id && $guest_group) { // если авторизован проверим группу
	$guest_group = explode(',', $guest_group);
	$guest_result = array_intersect($guest_group, $user->groups);
} else if ($user->id && !$guest_group) { // если авторизован и не совпала группа
	$guest_result = 'all user';
}
и заменим на следующее (тут я убрал проверку на группы, все авторизованные ничего не увидят)
if (!$user->id) { // гостям показываем
	$guest_result = 'all user'; 
} else  { // упростили, убрали проверку на  группы пользователей, все авторизованные видят заглушку
	$guest_result = '';
}
Сообщить модератору
0 Алексей отвечает 21.04.2015 16:13
Спасибо. Но мне надо бы использовать оба доступа, например {gcontent}{/gcontent} - скрытие от незарегистрированных, а {ungcontent}{/ungcontent} - скрытие от зарегистрированных.
Сообщить модератору
0 Beliyadm отвечает 21.04.2015 16:30
Попробуйте версию 3.2, сейчас набросал, ссылка и описание в обновленном тексте поста У меня получилось примерно вот так
Сообщить модератору
0 Алексей пишет нам 21.04.2015 16:49
Огромное спасибо! Это не отзывчивость, а суперотзывчивость!!!
Сообщить модератору
0 Beliyadm отвечает 21.04.2015 16:53
Да не за что. Сообщите хоть, работает? На моей тестовой площадке вроде без ошибок было, писал на лету, особо не проверял
Сообщить модератору
0 Алексей отвечает 21.04.2015 16:56
Конечно!!! Я же сначала проверил!)))
Сообщить модератору
0 Максим пишет нам 06.10.2015 22:17
Приветствую! Автор скажите, а если мне надо скрыть не текст, а кнопку или картинку - поможет в этом случае Ваш плагин?
Сообщить модератору
0 Beliyadm отвечает 06.10.2015 22:47
Доброго дня. Конечно, плагин отрабатывает скрытие любого HTML контента в материале, текст, картинки и прочее
Сообщить модератору
0 Максим отвечает 07.10.2015 01:28
Спасибо за оперативный ответ ;) И спасибо за классный плагин - функционально работает чётко, супер! Правда единственное, вот если бы ещё добавить что-то такое, чтобы позволяло выделять текст (на самом сайте): "Данный текст доступен только для авторизованных пользователей сайта". А то его совсем не видно в общем контенте сайта, он буквально сливается с ним. Просто мне надо, чтобы плагин скрывал ссылки для скачивания, соответственно эти места (закрытые зоны) должны быть как-то сразу видны незареганному посетителю и выделяться из общей статья в материале. Поэтому, или как-то жирным его сделать или в рамке или чтобы он располагался на цветном фоне с другим цветом (как это бывает делают на разных форумах). Ну или чтобы можно было указать "класс" или "стили" самого шаблона (по типу ... - здесь идёт закраска цветным фоном всего что находится вместо "...") и чтобы плагин понимал эти конструкции. Вот этот момент можете допилить? И тогда это будет ещё круче плагин, конечно ;)
Сообщить модератору
0 Beliyadm отвечает 07.10.2015 01:45
Простите, но CSS вам на что? С первой версии плагина текст заглушки для гостей обрамлен тегами с классом guest_only Для него задавайте хоть что угодно, и фон и отступ и шрифт и прочие детали. Так что это все уже заложено в плагине, дальше ваша фантазия на уровне вашего же шаблона сайта. Добавлять свой файл стилей для описания одного блога я естественно не стал, потому все в ваших руках
Сообщить модератору
0 Максим отвечает 07.10.2015 12:10
Спасибо за подсказку)! Теперь всё получилось, а то я просто видимо не внимательно описание работы плагина прочитал, в самом начале этой статьи. Спасибо Вам ещё раз за ваш труд, крепкого здоровья и ещё бОльших творческих успехов ;)
Сообщить модератору
0 Beliyadm отвечает 07.10.2015 12:13
Да не за что, всегда рад помочь.
Сообщить модератору
0 Сергей пишет нам 13.01.2016 16:09
Здравствуйте. Подскажите, а с seblod ваш плагин будет "дружить"?
Сообщить модератору
0 Beliyadm отвечает 13.01.2016 16:28
Добрый день. Если данный компонент поддерживает стандартные триггеры (события) движка, вроде onContentPrepare - то будет работать.
Сообщить модератору
0 Cardiologserg пишет нам 17.01.2016 18:17
Добрый день. А как сделать, чтобы сообщение "Данный текст доступен только для авторизованных пользователей сайта" не переносилось на следующую строку?
Сообщить модератору
0 Beliyadm отвечает 17.01.2016 18:41
Добрый день. Не понял вопроса, что значит "не переносилось" - все зависит от вашего шаблона и верстки, весь этот блок текста заглушки обрамлен дивом с определенным классом, настраивать внешний вид и отображение можно как угодно. А можно и текст сократить в настройках плагина
Сообщить модератору
0 Cardiologserg отвечает 17.01.2016 19:07
В том-то и дело, что независимо от длины текста, сообщение начинается со следующей строки. На форуме предлагали решение проблемы правкой строки №31 файла guest_content.php, да только файл сильно изменился с тех времен
Сообщить модератору
0 Beliyadm отвечает 17.01.2016 19:16
а, вы про это )) так тут все просто, там же блочный элемент, потому в стилях пишем
.guest_only {display: inline;}
либо же в файле GuestContent.php (кстати он почти не менялся по сути) найти строку и заменить DIV на SPAN или P
$html = '
'.$guest_only.'
';
Сообщить модератору
0 Cardiologserg пишет нам 17.01.2016 19:24
Второй способ помог. Спасибо!
Сообщить модератору
0 Виктор пишет нам 15.03.2016 23:43
Спасибо за плагин. Пользуюсь. Хорошо. Есть только потребность в разных уровнях доступа. Есть какой-то вариант это реализовать? У меня на сайте есть зареги, и есть спонсоры. И хотелось бы иметь три уровня материалов: Для гостей интро, вторая часть для зарегов и спонсоров, и третья часть только для спонсоров. Получается, что надо ставить два тега. Но группу доступа указывается в настройках плага, а не в тэге указывающем его использование. Есть какой-то вариант реализовать поуровневый доступ? Заранее спасибо.
Сообщить модератору
0 Beliyadm отвечает 17.03.2016 23:08
Добрый день. Я понял ваш вопрос и потребности. К сожалению в текущей версии такой возможности нет, в ближайшем будущем нет планов по модернизации плагина. Если только на вашей платной основе выделю время и после выложу в доступ. Но пока, к сожалению, AS IS. Не думаю, что в сети нет других аналогичных плагинов (4 года назад точно были с более сложным и расширенным функционалом)
Сообщить модератору
0 Виктор отвечает 18.03.2016 12:58
Понял, уже поставил альтернативу. Спасибо за ответ.
Сообщить модератору
0 Константин отвечает 12.02.2017 22:20
Подскажите альтернативу плиз....
Сообщить модератору
0 Beliyadm отвечает 13.02.2017 01:26
К примеру вот https://extensions.joomla.org/extension/osd-content-restriction/. Да и вообще там в разделе Site Access еще наверняка должны валяться подобные.
Сообщить модератору
0 Анастасия пишет нам 22.08.2016 13:46
Доброго дня! Возможно сделать скрытие контента (номера телефонов) по умолчанию на всех страницах, не прописывая коды для каждой?
Сообщить модератору
0 Beliyadm отвечает 22.08.2016 19:03
Доброго дня. Если строка (номер телефона) одинаковая на всех страницах - в принципе вполне возможно скрыть от гостей. Примеры покажите (адреса страниц и что скрывать надо).
Сообщить модератору

Недостаточно прав для комментирования