Форум русской поддержки Joomla!® CMS
07.12.2016, 01:51:53 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Как скрыть часть кода от неавторизованных пользователей?

 (Прочитано 264 раз)
0 Пользователей и 1 Гость смотрят эту тему.
UFO_hA
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 11


« : 11.01.2016, 19:10:30 »

Добрый день уважаемые форумчане.

Есть у меня сайт(Joomla 3.4.8. Шаблон Protostar). На сайте есть некоторые статьи которые можно скачать архивом(PDF). Никаких плагинов для этого я не устанавливал. Разве что Sourcerer. В общем в конце статья я просто добавил кнопку “Скачать”(используя плагин Sourcerer). Но я хотел бы сделать так что бы при нажатии на кнопку зарегистрированным пользователем сразу начиналась загрузка, а при нажатии незарегистрированным пользователем всплывало окно(как вариант) с текстом типа “Данный материал доступен для загрузки только зарегистрированным пользователям+ссылка на форму регистрации”.
Я так понимаю что можно в конце каждой статьи добавить две кнопки. Но зарегистрированные юзеры будут видеть первую и не видеть вторую, а не зарегистрированные наоборот.
Что посоветуете?
Записан
robert
Профи
********

Репутация: +344/-11
Offline Offline

Пол: Мужской
Сообщений: 3586


« Ответ #1 : 11.01.2016, 22:06:57 »

Если вы используете Sourcerer, то вы, должно быть, знаете PHP. В таком случае ничего сложно нет:
1. даем файлу такое же название, как алиас статьи,
2. в шаблоне добавляем код
Код
if(file_exists(название.формат)){
  $user=JFactory::getUser();
  if($user->guest){
     показываем_кнопку_2;//можно организовать перенаправление назад после авторизации
  }else{
     показываем_кнопку_1;//скачаем файл
  }
}
 
Записан
UFO_hA
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 11


« Ответ #2 : 11.01.2016, 23:44:57 »

Ну в PHP я не мастер, так самоучка. Да и стаж меньше года. Занимаюсь вместо хобби. Если вам интересно вот мой сайт  ufoha.in.ua
По поводу кода не понял. Его в index.php шаблона нужно добавлять? Если так то выходит это для каждой статьи необходимо делать. Я думал есть какой то тег для этих целей. Вот помню как в Joomla 1.5 можно было прятать или показывать тот или иной текст пользователем разного уровня доступа.
{super}текст{/super},{pub}текст{/pub} и т.д.

И огромное ВАМ спасибо за внимание!
Записан
dmitry_stas
Профи
********

Репутация: +798/-4
Online Online

Сообщений: 7768



« Ответ #3 : 11.01.2016, 23:48:56 »

это в материале нужно делать. вы же написали, что установили Sourcerer, вот вам и сказали php код для добавления в материал.
а то, о чем вы пишите - это плагин Hider. не знаю, есть ли он под Ж3, можете поискать его или аналог. но в принципе Sourcerer с головой
Записан
vipiusss
Профи
********

Репутация: +261/-8
Offline Offline

Пол: Мужской
Сообщений: 4573


Skype: renor_


« Ответ #4 : 12.01.2016, 00:06:36 »

самый простой вариант:в div обернуть скрытие и в CSS "послать" этот div.
типа дисплей:ноне.
Записан
dmitry_stas
Профи
********

Репутация: +798/-4
Online Online

Сообщений: 7768



« Ответ #5 : 12.01.2016, 00:09:22 »

ну его ж в зависимости от условия надо "послать". вот robert и написал условие
Записан
UFO_hA
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 11


« Ответ #6 : 12.01.2016, 00:32:51 »

Я потихоньку начиная запутываться. Виной тому скудные знания PHP/
Вот что я примерно вижу.
Код:
{source}
if(file_exists(название.формат)){
  $user=JFactory::getUser();
  if($user->guest){
    <a  target="_blank" 
 class="btn btn-primary" href="Ссылка на форму регистрации">Скачать</a>
  }
else{
    <a  target="_blank" 
 class="btn btn-primary" href="ссылка на файл">Скачать</a>
  }
}

{/source}
Я как бы понимаю что это работать не будет. И скорее всего из за неправильно прикрученного условия.
Записан
robert
Профи
********

Репутация: +344/-11
Offline Offline

Пол: Мужской
Сообщений: 3586


« Ответ #7 : 12.01.2016, 00:35:00 »

это в материале нужно делать.
Точнее - в шаблоне материала. Sourcerer будет не нужен. название.формат = что-то вроде $this->item->slug.'.pdf'. Это только подсказка, сами найдете правильное решение.
« Последнее редактирование: 12.01.2016, 00:43:00 от robert » Записан
dmitry_stas
Профи
********

Репутация: +798/-4
Online Online

Сообщений: 7768



« Ответ #8 : 12.01.2016, 00:43:23 »

Я как бы понимаю что это работать не будет. И скорее всего из за неправильно прикрученного условия.
это не будет работать, потому что вы мух от котлет не отделили. php и HTML - все смешано.
Код:
{source}
<?php
if(JFactory::getUser()->guest){
    echo '<a target="_blank" class="btn btn-primary" href="Ссылка на форму регистрации">Зарегистрироваться</a>';
} else {
    echo '<a target="_blank" class="btn btn-primary" href="ссылка на файл">Скачать</a>';
}
?>
{/source}
Записан
UFO_hA
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 11


« Ответ #9 : 12.01.2016, 00:53:39 »

dmitry_stas Огромное спасибо за "разжевывание" материала! Попробовал всё работает.
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet