2012-05-08 3 views
5

В Joomla до 1.6 я мог бы установить пункт меню для общественного, и его содержания: статья, например, зарегистрировано ,Показать Группы статьи только зарегистрированные пользователь, или экран входа в системе, если не авторизованы да

Это приводит к ситуации, когда люди могут видеть ссылку на статью в меню, когда не вошли в систему, но получили компонент входа в систему, когда они нажимали на него. И после этого они увидели статью.

В 1.7 эти же действия приводят к ситуации, когда при нажатии на ссылку экран компонента остается пустым.

Как получить зарегистрированные статьи, чтобы отобразить экран входа в систему, когда пользователь не выполнил вход в систему с достаточными правами? Это было очень легко, и я не могу заставить его работать.

ответ

9

Я собираюсь ответить на свой вопрос, потому что я уверен, что людям это понадобится в будущем, и мое решение включает только несколько правил дополнительного кода, а затем вы можете установить каждую статью и т. Д. ... см. поле входа, когда пользователь не вошёл в систему.

В ваших шаблонах index.php поместите это вверху, оно получит уровень доступа вашей статьи.

$article =& JTable::getInstance("content"); 
$article->load(JRequest::getVar('id')); 
$cAccLevel = $article->get("access"); 

Затем добавить позицию модуля выше компонента, и только показать, когда необходимый уровень доступа> 1

<?php if($cAccLevel > 1): ?> 
    <jdoc:include type="modules" name="LOGIN_MODULE_POSITION" /> 
<?php endif; ?> 

Затем добавьте модуль входа в менеджере модулей для LOGIN_MODULE_POSITION.

Вуаля ... не нуждалась маршрутизации и т.д. ... все работает из коробки, я выбрал стиль прочь коробку выхода из системы и поля действия, как это:

.logout-button, 
.actions{ 
    display:none; 
} 

Удачи!

+0

, чтобы опустить окно выхода из системы, вы можете использовать $ пользователь = & JFactory :: getUser(); $ user_id = $ user-> get ('id'); if (! $ User_id) {... –

-2

Прежде всего, вам необходимо обновить установку joomla до версии 2.5 (это последняя версия joomla), 1.7 больше не поддерживается сообществом Joomla.

Существует несколько способов установить права просмотра. K2 является полезным компонентом CCK, чтобы сделать работу, а также полезным метод, который я использую, чтобы следовать, чтобы «ссылка» категория Вашей статьи в меню и установить определенные права доступа к пунктам меню

+0

У меня такая же проблема в 2.5, и не могу получить то, что работает с K2. Я добавляю щедрость сейчас, возможно, пересматриваю ваш ответ за gazillion-o-points :) –

5
  1. Создать новое меню из менеджер меню, скажем, что он называется «hidden menu».
  2. Добавить любые пункты меню, которые будут доступны только зарегистрированным пользователям .
  3. Установите необходимые уровни доступа этих пунктов меню («Специальный» в этом примере, но он также может быть «Зарегистрировано»). НЕ создайте модуль для «скрытого меню». Он не будет отображаться ни на одной странице, , поэтому он не нуждается в модуле.
  4. Создайте свое «настоящее» меню (например, «главное меню») и пункт меню, который будет отображаться для всех пользователей (например, «Отправить статью »). Элемент меню будет иметь тип элемента меню «Псевдоним». Это Параметр «Пункт меню» будет пунктом меню «Отправить статью» на «скрытое меню». Уровень доступа для этого пункта меню будет «Публичный», так как мы хотим, чтобы все могли видеть и использовать его.

  5. Создайте модуль типа «mod_mainmenu» для этого меню, как и вы, сделайте для любого меню.

  6. Создайте модуль входа и установите уровень доступа «Общественный». Убедитесь, что модуль отображается только в меню «Public», а - не зарегистрированный элемент и выберите видимую позицию.

Теперь, когда гость (не вошедший пользователь) обращается к «заявкуЗнает Статьи» меню выбора, он перенаправляет их на пустую страницу с «Только для зарегистрированных посетителей» сообщением. , Если они вошли в систему успешно, они отправляются на нужную страницу (в этом случае «Отправить статью»). Если они уже вошли в систему, они отправляются туда напрямую.

+0

Я также читал это на сайте Joomla, но он не работал на 1.7. Он, однако, работал на 2.5 ... Bullet # 6 не нужно, я заметил. Хотя я рад, что смог заставить это работать, все равно странно, что это очень много работы. Я могу в конечном итоге взломать некоторые основные функции ... Спасибо –

1

Перейти в меню СОДЕРЖАНИЕ, создать или отредактировать раздел, который вы хотите защитить.

Вы увидите опцию: Уровень доступа

Существует 3 варианта:

Public, Registered и Special

Установить его на: Registered

Тогда вам нужно чтобы изменить ваши статьи для этого раздела, и все.

2

Если то, что вы хотите просто показать содержимое, если посетитель является зарегистрированным пользователем, вы можете использовать этот код:

$user =& JFactory::getUser(); 

    <?php 
    if(!$user->guest){ ?> 

     [[what ever you want to do ]] 
    <?php endif; ?> 

Надежда, что помогает !!

Смежные вопросы