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

на главную - закладки

Жанры

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

В этом случае желательно указать кодировку письма - base64, чтобы в нем не появились нежелательные символы:

$mailer->Encoding = 'base64';

Отправка

Наконец, для отправки письма используется метод Send, возвращающий true при успешной отправке или объект JError в случае ошибки:

if ($mailer->Send !== true) die('Ошибка отправки письма');

Проверка корректности e-mail

Помимо класса JMail, существует статический класс JMailHelper. Большинство его методов предназначены для очистки данных перед добавлением к электронному письму и используются классом JMail. Интерес для разработчика представляет

метод isEmailAddress, который проверяет, является ли заданная строка корректным адресом электронной почты:

if (!JMailHelper::isEmailAddress($str)) die('Недопустимый формат e-mail');

Перед использованием класса JMailHelper необходимо подключить библиотеку JMail:

jimport('joomla.utilities.mail');

WYSIWYG-редактор (класс JEditor)

Класс JEditor используется для работы с WYSIWYG-редактором.

Получить ссылку на глобальный объект JEditor можно так:

$editor =& JFactory::getEditor;

Отображение редактора

Для отображения выбранного администратором сайта редактора используется метод display. Если не выбран ни один редактор, то будет отображено поле <textarea>.

string display(string $name, string $html, string $width, string $height, int $col, int $row, bool $buttons = true, string $id = null, string $asset = null, object $author = null, array $params = array)

где

$name - имя элемента управления формы; $html - содержимое поля; $width - ширина текстового поля в процентах или пикселях; $height - высота текстового поля; $col - количество столбцов в поле <textarea> (применяется, если администратор выбрал не использовать HTML-редактор); $row - количество строк в <textarea>; $buttons - отображать ли кнопки редактора (" Материал", " Изображение", " Разрыв страницы", " Подробнее…"); $id - idэлемента управления формы; $asset и $author - используются для подтверждения прав доступа пользователя к некоторым функциям плагина редактора. Более подробная информация об этих параметрах в справочной документации отсутствует; $params - ассоциативный массив параметров редактора.

Пример:

echo $editor->display('question', $row->question,'100%', '250', '40', '10');

Если по умолчанию задан редактор TinyMCE, то этот код выведет на экран следующее (рис. 4.3).

(есть увеличенное изображение)

Рис. 4.3. Отображение WYSIWYG-редактора

URI (класс JURI)

Чтобы создать новый объект класса JURI или получить ссылку на глобальный объект, используется метод

JURI &getInstance(string $uri='SERVER')

где $uri - URI страницы. При $uri='SERVER' метод вернет ссылку на глобальный объект, который представляет URI текущей страницы. В противном случае будет создан новый объект.

Например, так можно получить URI текущей страницы:

$u =& JURI::getInstance; echo $u->toString;

Методы класса JURI

Методы класса JURI хорошо документированы (ссылка: http://docs.joomla.org/JURI), поэтому здесь мы только перечислим некоторые из них.

Получение базового URI сайта:

string base(bool $pathonly)

где $pathonly - возвращать только путь или также вернуть хост и порт.

Построение

запроса (т.е. компонента URI):

string buildQuery(array $params)

где $params - ассоциативный массив пар " имя-значение".

Получение текущего URI без запроса и фрагмента:

string current

Получение отдельных компонентов URI:

фрагмента - string getFragment; хоста - string getHost; пароля - string getPass; пути - string getPath; порта - string getPort; запроса - string getQuery(bool $toArray), где $toArray задает, возвращать ли элементы запроса в виде ассоциативного массива или в виде строки; схемы - string getScheme; имени пользователя - string getUser.

Получение заданной переменной из запроса:

string getVar(string $name, string $default)

где

$name - имя переменной; $default - значение по умолчанию.

Заполнение полей класса значениями, полученными из заданного URI ($uri):

boolean parse(string $uri)

Получение корневого URI сайта:

string root(bool $pathonly, string $path)

где $path - задает новый путь.

Ошибки (класс JError)

Методы raiseError, raiseNotice и raiseWarning класса JError вызываются при возникновении каких-либо ошибок. Все они возвращают объект JException, содержащий сведения об ошибке, например, в каких файлах она возникла. raiseError добавляет заданное сообщение в очередь сообщений и останавливает выполнение расширения, а остальные два метода только добавляют сообщение в очередь, но работа расширения продолжается.

JException raiseError(string $code, string $msg, mixed $info = null) JException raiseWarning(string $code, string $msg, mixed $info = null) JException raiseNotice(string $code, string $msg, mixed $info = null)

где

$code - внутренний код ошибки, задается по усмотрению программиста; $msg - сообщение об ошибке для пользователя; $info - дополнительная информация об ошибке для программиста.

Пример:

if ($this->published == 0) JError::raiseError (404, "Нет такой страницы");

Перечисленные методы создавались в то время, когда Joomla работала с PHP4, где отсутствовал механизм обработки исключений. Если на хостинге стоит PHP5, предпочтительнее использовать класс Exception.

Даты (класс JDate)

JDate - класс для работы с датами. Для создания объекта JDate используется метод getDate класса JFactory:

JDate JFactory::getDate(mixed $time = 'now', mixed $tzOffset = null)

где

$time - дата и время в формате, годном для функции PHP strtotime; $tzOffset - временная зона. Может задаваться числом от -12 до 14 (смещение относительно всемирного координированного времени - UTC) или строкой из числа временных зон, поддерживаемых PHP (их список можно найти на странице ссылка: http://www.php.net/manual/ru/timezones.php).

В отличие от многих других методов JFactory, getDate не возвращает глобальный объект, а создает новый. Поэтому перед вызовом этого метода не нужно ставить амперсанд:

$now = JFactory::getDate; // текущие дата и время $some_date = JFactory::getDate('2012-01-01 00:00:00','Europe/Moscow');

Получение даты в каком-либо формате

string format(string $format, bool $local = false, bool $translate = true)

где

$format - формат; $local - возвращать дату в локальной временной зоне или в GMT; $translate - переводить ли текст.

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

Личник

Валериев Игорь
3. Ермак
Фантастика:
альтернативная история
6.33
рейтинг книги
Личник

Золушка вне правил

Шах Ольга
Любовные романы:
любовно-фантастические романы
6.83
рейтинг книги
Золушка вне правил

Сколько стоит любовь

Завгородняя Анна Александровна
Любовные романы:
любовно-фантастические романы
6.22
рейтинг книги
Сколько стоит любовь

Невольница князя

Мун Эми
Любовные романы:
эро литература
5.00
рейтинг книги
Невольница князя

Солнечный корт

Сакавич Нора
4. Все ради игры
Фантастика:
зарубежная фантастика
5.00
рейтинг книги
Солнечный корт

Князь

Шмаков Алексей Семенович
5. Светлая Тьма
Фантастика:
юмористическое фэнтези
городское фэнтези
аниме
сказочная фантастика
5.00
рейтинг книги
Князь

Старое поместье Батлера

Лин Айлин
Фантастика:
историческое фэнтези
5.00
рейтинг книги
Старое поместье Батлера

Чужбина

Седой Василий
2. Дворянская кровь
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Чужбина

Часовое сердце

Щерба Наталья Васильевна
2. Часодеи
Фантастика:
фэнтези
9.27
рейтинг книги
Часовое сердце

Вторая жизнь Арсения Коренева книга третья

Марченко Геннадий Борисович
3. Вторая жизнь Арсения Коренева
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Вторая жизнь Арсения Коренева книга третья

Архонт

Прокофьев Роман Юрьевич
5. Стеллар
Фантастика:
боевая фантастика
рпг
7.80
рейтинг книги
Архонт

Имя нам Легион. Том 4

Дорничев Дмитрий
4. Меж двух миров
Фантастика:
боевая фантастика
рпг
аниме
5.00
рейтинг книги
Имя нам Легион. Том 4

Развод с миллиардером

Вильде Арина
1. Золушка и миллиардер
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Развод с миллиардером

Лучший из худших-2

Дашко Дмитрий Николаевич
2. Лучший из худших
Фантастика:
фэнтези
5.00
рейтинг книги
Лучший из худших-2