отображать пользовательский компонент страниц регистрации и входа в Joomla - PullRequest
0 голосов
/ 26 января 2012

Я создаю пользовательский компонент, который должен быть доступен только зарегистрированным пользователям. Я думаю о проверке JFactory::getUser()->guest и, если установлено, перенаправить их на пользовательскую страницу.

Теперь я предпочитаю, чтобы эта страница содержала параметры регистрации и входа в систему, но сама Joomla, похоже, не имеет этой функции. Нужно ли использовать эту функцию для моего пользовательского компонента, или есть другое решение?

Ответы [ 2 ]

1 голос
/ 28 января 2012

Вы действительно должны использовать встроенный ACL для управления доступом пользователей вместо того, чтобы пытаться кодировать его в себе.В этом весь смысл наличия ACL для начала.Вот учебник о том, как ACL работает в администраторе и интерфейсе сайта -

http://docs.joomla.org/ACL_Tutorial_for_Joomla_1.6

Вот учебник по добавлению ACL в компонент -

http://docs.joomla.org/Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!1.7_-_Part_14

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

После того, как вы это настроите, создание пользовательского регистра или страницы входа в систему так же просто, как переопределение шаблона в представлении входа com_user по умолчанию.Вам нужно будет объединить эти файлы -

Для части входа в систему страницы:

JOOMLA/components/com_users/views/login/tmpl/default.php

Для регистрации части страницы:

JOOMLA/components/com_users/views/registration/tmpl.default.php

Затем положитьновый и улучшенный файл здесь:

JOOMLA/templates/YOUR TEMPLATE/html/com_users/login/default.php

Это даст вам ACL-контролируемый доступ к вашему компоненту, а также пользовательскую страницу входа в систему / регистрации без необходимости обходить ненужные расширения.

0 голосов
/ 27 января 2012

Модуль / страница входа по умолчанию для Joomla! Предоставляет только ссылку на страницу регистрации.

Быстрый поиск JED показывает около 200 расширений для входа , возможно, одно из нихделает то, что вы хотите.

Однако, если вы хотите, чтобы он был интегрирован с доступом к вашему компоненту, вам придется кодировать его самостоятельно.Обычный процесс заключается в том, что если пользователь пытается получить доступ к представлению актива, view.html.php (или аналогичный) проверит свои разрешения и в зависимости от компонента отправит сообщение JError и, возможно, перенаправит их в системный логин.

например.com_content

    // Check the view access to the article (the model has already computed the values).
    if ($item->params->get('access-view') != true && (($item->params->get('show_noauth') != true &&  $user->get('guest') ))) {
                    JError::raiseWarning(403, JText::_('JERROR_ALERTNOAUTHOR'));
            return;
    }
...