Чтение онлайн

на главную

Жанры

Разрботка расширений для CMS Joomla
Шрифт:

Получение значения мета-тега

string getMetaData(string $name, bool $http_equiv = false)

где

$name - название тега; $http_equiv - относится ли этот мета-тег к группе http-equiv (например, Content-Type, Refresh и др.).

Примеры:

echo $document->getMetaData('content-type', true); echo $document->getMetaData('keywords', false);

Изменение значения мета-тега

void setMetaData(string $name, string $content, bool $http_equiv = false, bool $sync = true)

где

$content -

значение атрибута content; $sync - синхронизировать ли тег content-type с MIME-типом документа.

Пример:

$document->setMetaData('content-type','text/html',true,true);

Добавление скриптов и каскадных таблиц стилей

Перечисленные ниже методы добавляют в секцию <head> соответствующие теги.

Добавление ссылки на скрипт:

void addScript(string $url, string $type = "text/javascript", bool $defer = false, bool $async = false)

где

$url - URL скрипта; $type - тип скрипта (text/javascript, text/vbscript и т.д.); $defer - добавлять ли к тегу <script> атрибут defer="defer"; $async - добавлять ли к тегу <script> атрибут async="async".

Пример:

$document->addScript('/components/com_mycomponent/js/script.js');

Добавление непосредственно текста скрипта

void addScriptDeclaration(string $content, string $type = 'text/javascript')

где

$content - текст скрипта; $type - тип скрипта.

Пример:

$document->addScriptDeclaration('alert("Hello World")');

Добавление внешней таблицы стилей

void addStyleSheet(string $url, string $type = 'text/css', string $media = null, array $attribs = array)

где

$url - URL файла CSS; $type - MIME-тип файла; $media - значение атрибута media (screen, print, projection и др.); $attribs - массив других атрибутов тега <link>.

Пример:

$document->addStyleSheet('/components/com_mycomponent/css/style.css');

Добавление внутренней таблицы стилей

void addStyleDeclaration(string $content, string $type = 'text/css')

где

$content - код CSS; $type - значение атрибута type будущего тега <style>.

Пример:

$document->addStyleDeclaration('.myclass { color: red; }');

Пользователь (класс JUser)

Пользователь, просматривающий сайт, представлен объектом класса JUser, доступ к которому можно получить через метод getUser класса JFactory:

$user =& JFactory::getUser;

Чтобы получить доступ к объекту, представляющему какого-либо другого пользователя, необходимо передать

в метод getUser id или логин этого пользователя:

$user =& JFactory::getUser(42); $user =& JFactory::getUser('admin');

Поля класса JUser

JUser имеет ряд полей, для которых определен уровень доступа public и к которым поэтому можно обращаться непосредственно. Наиболее важные из них перечислены ниже (таблица 5.1).

Таблица 5.1. Некоторые public-поля класса JUser Поле Описаниеblock Равно 1, если пользователь заблокирован email E-mail пользователя guest Равно 1, если пользователь является гостем, т.е. не залогинен id ID пользователя lastvisitDate Дата и время последнего входа пользователя в систему name Имя пользователя params Настройки пользователя registerDate Дата и время регистрации аккаунта пользователя sendEmail Равно 1, если пользователь согласен получать сообщения с сайта по электронной почте username Логин пользователя

Например, выведем приветствие для залогиненного пользователя:

if ($user->guest) echo "Пожалуйста, войдите в систему или зарегистрируйтесь"; else echo "Здравствуйте, {$user->name}! Последний раз вы были на сайте ".JHTML::_('date',$user->lastvisitDate);

Получение и изменение настроек пользователя

mixed getParam(string $key, mixed $default = null) mixed setParam(string $key, mixed $value)

где

$key - ключ параметра; $default - значение параметра по умолчанию; $value - устанавливаемое значение параметра. setParam - возвращает предыдущее значение параметра.

Пример:

echo $user->getParam('language','ru-RU'); $user->setParam('language','en-GB');

Практика

Форма для написания вопроса

Измените код конструкции switch в файле myquestions.php, добавив обработку задачи showform:

case 'showform': showForm($option); break;

Добавьте в этот же файл функцию showForm:

function showForm($option) { $user =&JFactory::getUser; if($user->name) $name = $user->name; else $name = ''; HTML_questions::showForm($option, $name); }

Перед вызовом функции вывода HTML-кода мы получаем имя залогиненного в настоящий момент пользователя, если таковой имеется. Код $user = &JFactory::getUser присваивает переменной $user ссылку на объект-представитель залогиненного пользователя. Если удалось получить имя пользователя, то мы сохраняем это значение в переменной $name, а в противном случае этой переменной присваивается пустая строка. Таким образом поле " Автор" в форме для написания вопроса будет уже заполнено, так что залогиненным пользователям не придется его заполнять.

Поделиться:
Популярные книги

Сумеречный Стрелок 3

Карелин Сергей Витальевич
3. Сумеречный стрелок
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Сумеречный Стрелок 3

Имперец. Том 1 и Том 2

Романов Михаил Яковлевич
1. Имперец
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Имперец. Том 1 и Том 2

Мимик нового Мира 4

Северный Лис
3. Мимик!
Фантастика:
юмористическая фантастика
постапокалипсис
рпг
5.00
рейтинг книги
Мимик нового Мира 4

Хочу тебя любить

Тодорова Елена
Любовные романы:
современные любовные романы
5.67
рейтинг книги
Хочу тебя любить

(Не) Все могут короли

Распопов Дмитрий Викторович
3. Венецианский купец
Фантастика:
попаданцы
альтернативная история
6.79
рейтинг книги
(Не) Все могут короли

Темный Лекарь 5

Токсик Саша
5. Темный Лекарь
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Темный Лекарь 5

Виконт. Книга 1. Второе рождение

Юллем Евгений
1. Псевдоним `Испанец`
Фантастика:
фэнтези
боевая фантастика
попаданцы
6.67
рейтинг книги
Виконт. Книга 1. Второе рождение

Провинциал. Книга 2

Лопарев Игорь Викторович
2. Провинциал
Фантастика:
космическая фантастика
рпг
аниме
5.00
рейтинг книги
Провинциал. Книга 2

Газлайтер. Том 4

Володин Григорий
4. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 4

Кодекс Охотника. Книга ХХ

Винокуров Юрий
20. Кодекс Охотника
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга ХХ

Ну, здравствуй, перестройка!

Иванов Дмитрий
4. Девяностые
Фантастика:
попаданцы
альтернативная история
6.83
рейтинг книги
Ну, здравствуй, перестройка!

Вдова на выданье

Шах Ольга
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Вдова на выданье

Отмороженный 5.0

Гарцевич Евгений Александрович
5. Отмороженный
Фантастика:
боевая фантастика
рпг
5.00
рейтинг книги
Отмороженный 5.0

Идеальный мир для Социопата 7

Сапфир Олег
7. Социопат
Фантастика:
боевая фантастика
6.22
рейтинг книги
Идеальный мир для Социопата 7