Объект JUser в Joomla 1.5

Объект JUser

Каждый запрос в любой CMS, в том числе и в Joomla совершает какой-либо пользователь. Информация о нем может быть доступна при использовании API CMS Joomla 1.5. Для получения этого объекта нужно использовать общую фабрику объектов:

$user =& JFactory::getUser();

В данном случае мы получаем ссылку на объект пользователя, запросившего генерацию страницы. Объект хранится в памяти все время выполнения запроса. Доступны следующие поля объекта JUser (полный список) (доступ осуществляется через оператор ->):

name — имя email — адрес электронной почты username — логин usertype — тип пользователя (группа) gid — идентификатор группы guest— является ли данный пользователь гостем (1 — гость, 0 — зарегистрирован и вошел на сайт)

Все эти переменные это просто столбцы базы данных, которые есть у каждого пользователя. Но так же существуют некие переменные, которые храняется в настройках пользователя. Для получения таких параметров используется метод getParam данного объекта.

$user =& JFactory::getUser(); $language = $user->getParam('language', 'the default'); echo "<p>Ваш язык - {$language}.</p>";

 

Метод authorize

Данный метод используется для определения доступа конкретного пользователя к выполнению какой-либо задачи. Первый параметр — это компонент на который определяются права. Второй — сама задача (task). Например:

$user =& JFactory::getUser();   if ($user->authorize('com_content', 'edit', 'content', 'all')) {   echo "<p>Вы можете редактировать все статьи.</p>"; } else { echo "<p>Вы не можете редактировать все статьи.</p>"; }   if ($user->authorize('com_content', 'publish', 'content', 'own')) { echo "<p>Вы можете публиковать свои статьи.</p>"; } else { echo "<p>Вы можете не публиковать свои статьи.</p>"; }

Но, разрешения встроенных функций не применимы к вашим собственным компонентами. Вы должны создать свои правила. Их можно добавить, например, в своем пользовательском плагине. Но помните, что права не наследуются (inherit) — если Administrator может что-то, то это не означате, что Super Administrator автоматически это тоже может. Правило надо добавить вручную.

$auth =& JFactory::getACL();   $auth->addACL('com_test', 'edit', 'users', 'super administrator'); $auth->addACL('com_test', 'edit', 'users', 'administrator'); $auth->addACL('com_test', 'edit', 'users', 'manager');   $user =& JFactory::getUser();   if ($user->authorize('com_test', 'edit')) { echo "<p>Вы можете редактировать что-то там.</p>"; } else { echo "<p>Вы ничего не можете.</p>"; }

 

Метод setParam

Данный метод используется для установки атрибута пользователя на текущую сессию. Первый параметр — это название атрибута, второй — его значение. Например:

$user =& JFactory::getUser(); $user->setParam("sample.name", 'Иван'); $user->setParam("sample.surname", 'Васильевич');

 

Дополнительно Поскольку этот метод не записывает данные сразу в базу данных, значения будут действительны только до окончания сессии. Для сохранения параметров в СУБД следует воспользоваться методом $user->save()По той же причине установка значений на время работы сессии работает и для неавторизованных пользователей. В релизе 1.5.9 данные группируются в стандартном INI-формате с разбиением по символу '.'. Таким образом,

$user->setParam('contacts.icq', '-1')

будет сохранено в базе как

[contacts]
icq=-1

Однако следует осторожно относиться к этой возможности, поскольку значения более одного уровня вложенности не сохраняются. Например,

$user->setParam('company.department.name', 'Отдел продаж')

будет сохранён как

[company]

И значение 'company.department.name', засчёт корректного хранения вложенности классом JParameter, будет доступно только втечение текущей сессии, но при повторной авторизации пользователя этот параметр будет недоступен.

После этого, пока пользователь не вышел из системы, можно извлекать значения методом getParam. Поскольку не происходит сохранения значений в СУБД, то этот метод работоспособен в том числе и для гостей.

 

http://www.joomla-docs.ru



Объект JUser в Joomla 1.5 - Генератор расширений Joomla и многое другое на нашем сайте посвященном работе расширений, компонентов, модулей, плагинов для линейки Joomla. Отправляйте ссылку на страницу своим друзьям и в социальные сети воспользовавшись графическими иконками выше.

Блог

Календарь приёма объявлений

Небольшой пример из повседневной практики. Организация меняет реквизиты, и они вступят в силу через  пару недель. На сайте идет приём объявлений и объявления принимаются на несколько месяцев в...

Дырка в com_content

Сегодня у товарища, сайт которого находится на старой  Joomla 1.0.3, была сильная нагрузка на сервере, просматривая логи обнаружил не вежливый запрос такого порядка: http://сайт/index2...

Лечим вирус на сайте

  Первоначальный осмотр сайта обнаружил, что у клиента закрыт доступ по фтп, что сузило круг подозреваемых уязвимостей, стало быть отверстие в какомто скрипте движка joomla. Касперский яро...

Troj/JSRedir-MH

Снова грянул гром зарежения сайтов новым вирусом  Troj/JSRedir-MH.  И так в коротко по вирусу Troj/JSRedir-MH. Вирус или троян куда интереснее чем свои предшествиники, тепер...

Доработка расширения для рассылки Send Email JK

Сегодня поделюсь немного интересной информацией для владельцев сайтов собранных ан joomla.  Рано и поздно возникает задача подписки и рассылки информации с сайта, это может быть разная постановка зада...

Привет Ie 10 регулярка

И вот и мне пришлось столкнулся с проблемами перехода на win 8 в придачу с ie 10, некоторых постоянных пользователей моих сайтов. На многих сайтах  имеющих раздел по приёму объявлений, использ...

Kunena заменяем ссылку на профиль пользователя

Всем привет, снова снова кунена, получил задание на допиливание популярного форума Kunena, сегодня потребовалось поменять ссылку на профиль пользователя. Это связано с тем, что на сайте стоит социа...

Работает на Kunena - зачем на каждой странице?

  Все у кого стоит форум kunena мешает надпись с двумя ссылкам внизу форума "Работает на Kunena". Сея надпись висит на каждой странице форма, а также страница разработчиков содержит множество вн...

Kunena избавимся от лишних quote

Для тех кто действительно делает сайт для людей, моя следующая заметка. Расскажу вам, как избавиться от лишних quote в постах на форуме kunena. У меня несколько тематических сайтов с нормальной посеща...

Kunena решаем проблему с пропажей аватаров

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

Джомлавикам

Обработка параметров расширений joomla

При разработке расширений для CMS Joomla, таких как плагины, модули, компоненты или шаблоны, часто возникает необходимость получить параметры разрабатываемого или любого другого расширения. В этой ...

Кunena крамсаем шаблон

1. В папке \components\com_kunena\template\ваш_шаблон\ находим файл template.xml и вставляем в него такой кусок (чтобы была возможность выбора показывать это поле или нет): <param name="l...

Подключить свои классы и методы в Joomla?

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

3 новых полезных класса в Joomla 2.5

В платформе Joomla 11.3 разработчики добавлил несколько полезных новых классов для разработчиков. Рассмотрю некоторый из них - JGrid (для построения HTML таблиц), JWebClient (для получения информац...

Репозиторий файлов на Joomla средствами Apache

Создадим две вложенные директории /files/files в корне сайта. Если вы пожелаете использовать другие имена директорий, то вам необходимо будет внести соответствующие правки в дальнейшем. ...