Как я могу создать пункт меню гостя в Joomla 1.5? - PullRequest
0 голосов
/ 13 октября 2011

Я создал опцию меню для включения или выключения пункта меню для гостей Joomla:

В administrator/components/com_menus/models/metadata/component.xml Я добавил эту строку после строки 20 ...

<param name="show_to_guest_only" type="radio" default="0" label="Show to Guest only" description="Show menu to guest user only.">
<option value="0">No</option>
<option value="1">Yes</option>
</param>

Затем я открыл файл modules/mod_mainmenu/helper.php перед строкой 50 и добавил этот код ...

$row_params = new JParameter($row->params);
if ($row_params->get('show_to_guest_only') == 1 && $user->id ){
continue;
}

Затем я зашел в свой пункт меню и поставил «Показать только для гостей» в «Да» и нажал «Сохранить». После входа в систему я хочу, чтобы пункт меню исчез. Для этого я предполагаю, что мне нужно разработать область continue; для вызова пункта меню Joomla и выключить его, если пользователь вошел в систему. Я ищу либо конкретный код, который можно протестировать, либо общие рекомендации по наилучшему способу продолжить.

Ответы [ 2 ]

0 голосов
/ 13 октября 2011

Оказывается, это будет работать, как я описал.Проблема заключалась в том, что я взломал modules/mod_mainmenu/helper.php, но пытался заставить эту работу работать в неправильном меню.Когда я тестировал на mod_mainmenu изделия, он работал отлично.В любом случае спасибо.

0 голосов
/ 13 октября 2011

Вот более подробные инструкции:
1. Создайте новую позицию модуля с именем notreg (на сайте администратора / менеджера шаблонов / позиции модуля в пустой позиции, т.е. 28)

  1. Создать новое меню с именем notregmenu (в Менеджере меню / меню)

  2. Зайдите в Модули / Модули сайта и опубликуйте модуль notregmenu с возможностью не отображать заголовок и в позиции notreg

  3. Теперь откройте шаблон index.php (в сайте / Диспетчер шаблонов / Шаблоны сайтов - выберите и нажмите кнопку Изменить HTML

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

   <!-- BEGIN: LEFT COLUMN -->
          <div id="ja-col1">
          <div class="ja-innerpad">

и вот код для вставки ...

<?php if ( !$my->id ) {?>
        <div id="notregmenu"><?php mosLoadModules ( 'notreg', -2 ); ?>
        </div><?php
        } ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...