Главный Каталог Статей РФ
87238 авторов, размещено 47366 статей, сейчас на сайте пользователей: 326 Статистика
Аватар kokon

Описание класса Joomla JFactory

Категория:  Интернет  | Автор:  kokon | Опубликовано: 25.08.2009

Используется для построения и возвращения объектов.

Определен
/libraries/joomla/factory.php

МЕТОДЫ

1.getACL

Возвращает глобальный объект авторизации. Тип возвращаемого объекта - JAuthorization.

СИНТАКСИС
объект JAuthorization getACL()

ПРИМЕР

В этом примере получен глобальный объект авторизации

$acl =& JFactory::getACL();

2.getApplication

Возвращает ссылку на глобальный объект приложения. Тип возвращаемого объекта - JApplication.

СИНТАКСИС

object JApplication getApplication( $client, $attribs, $prefix )

где:
$client
Тип данных - строка.

Название, под которым известна клиентская часть приложения. Например, Joomla поставляется с тремя клиентами приложения: сайт, административная часть и установка. По умолчанию – null.

$attribs
Тип данных – массив

Ассоциативный массив атрибутов, которые будут приняты приложением. По умолчанию - массив.

$prefix
Тип данных - строка

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

ПРИМЕР

Этот метод чаще всего используется для того чтобы получить ссылку на глобальный объект приложения. В этом случае метод вызывается без аргументов. В этом примере мы получаем объект приложения, чтобы посмотреть в какой части сайта (пользовательской или административной) был запущен код.

$app =& JFactory::getApplication();
if ($app->isSite()) echo 'Client is site';
if ($app->isAdmin()) echo 'Client is administrator';

3.getCache

Возвращает ссылку на глобальный объект кэш. Тип возвращаемого объекта - JCache.

СИНТАКСИС

объект JCache getCache( $group, $handler, $storage )

где:

$group
Тип значения - строка.

Название группы кэша. Позволяет разделить группы кэша, путем назначения им уникальных имен.

$handler

Тип значения строка.

$storage

Тип значения - строка.

ПРИМЕР

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

// Define a class to contain the computationally-expensive method.
class expensiveClass {
function expensiveMethod ( $signature ) {
static $instances;
if (!isset( $instances )) $instances = array();
if (empty( $instances[$signature] )) {
// Something that is resource-intensive to produce, here simulated
// by calculating the MD5 hash of the signature.
$instances[$signature] = md5( $signature );
echo 'Cache miss';
} else {
echo 'Cache hit ';
}
return $instances[$signature];
}
}
// Create a cache instance.
$cache =& JFactory::getCache( 'myCache' );
// Specify the class and method that will produce the data to be cached.
$method = array( 'expensiveClass', 'expensiveMethod' );
// Now execute some code that will use the cache.
echo ' : ' . $cache->get( $method, 'abc' ) . "\n";
echo ' : ' . $cache->get( $method, 'efg' ) . "\n";
echo ' : ' . $cache->get( $method, 'abc' ) . "\n";
echo ' : ' . $cache->get( $method, 'hij' ) . "\n";
echo ' : ' . $cache->get( $method, 'klm' ) . "\n";
echo ' : ' . $cache->get( $method, 'hij' ) . "\n";

Результат выполнения примера:

Cache miss : 900150983cd24fb0d6963f7d28e17f72
Cache miss : 7d09898e18511cf7c0c1815d07728d23
Cache hit : 900150983cd24fb0d6963f7d28e17f72
Cache miss : 857c4402ad934005eae4638a93812bf7
Cache miss : 3491f0dc1059a35bb1681b3bd67cb0d5
Cache hit : 857c4402ad934005eae4638a93812bf7

4.getConfig

Возвращает ссылку на глобальный объект конфигурация. Тип значения возвращаемого значения - JRegistry.

СИНТАКСИС

объект JRegistry getConfig( $file, $type )

$file

Тип значения - строка.

Путь к конфигурационному файлу. Если null тогда путь - joomla/libraries/joomla/config.php. По умолчанию null.

$type

Тип значения - строка.
Тип конфигурационного файла. По умолчанию "PHP".

ПРИМЕР

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

$config =& JFactory::getConfig();
echo 'Site name is ' . $config->getValue( 'config.sitename' );

4.getDate

Возвращает ссылку на глобльный объект дата. Тип возвращаемго значения - JDate.

СИНТАКСИС

объект JDate getDate( $time, $tzOffset )

где:

$time

Тип значения - строка или число.

Использовать дату или время. Чтобы получить текущую дату или время надо использовать "now". Используемый формат будет зависить от текущего языка и от того переписан ли по умолчанию Григорианский календарь. Если тип значения является числом тогда дата интерпритируется в формате Unix. По умолчанию "now".

$tzOffset

Тип значения - число.

Сдвиг часового пояса применяется к дате и времени в $time. Он вычитается из $time так чтобы вычисление даты/времени, сохраненного в объекте дата было в формате UT. По умолчанию 0.

ПРИМЕР 1
В этом примере выводятся текущие дата и время в локальном формате.

$date =& JFactory::getDate();
echo 'Current date and time is: ' . $date->toFormat() . "\n";

Результат: Current date and time is: 2008-11-22 18:14:08

ПРИМЕР 2

В этом примере дата выводиться в формате RFC2822, подходящем для большинства интернет протоколов. Отметим, что дата должна быть определена в локальном формате, иначе парсер не сможет ее распознать.

Результат: Date and time is: Wed, 16 Apr 2008 13:30:00 +0000

ПРИМЕР 3

В этом примере дата определена в формате UNIX и в выводиться в формате ISO 8601.

$date =& JFactory::getDate( 1332362632 );
echo 'Date and time is: ' . $date->toISO8601() . "\n";

Результат:

Date and time is: 2012-03-21T20:43:52Z

5.getDBO

Возвращает ссылку на глобальный объект база данных. Тип возвращаемого объекта - JDatabase.

СИНТАКСИС

объект JDatabase getDBO()

ПРИМЕР

В этом примере получаем префикс базы данных.

$db =& JFactory::getDBO();
echo "Database prefix is : " . $db->getPrefix();

Результат:

Database prefix is : jos_

6.getDocument

Возвращает ссылку на глобальный объект документ. Тип возвращаемого значения - JDocument.

СИНТАКСИС

объект JDocument getDocument()

ПРИМЕР

В этот примере получаем заголовок текущей страницы.

$doc =& JFactory::getDocument();
echo 'Current title is: ' . $doc->getTitle();

7.getEditor

Возвращает ссылку на глобальный объект редактор. Тип возвращаемого значения - JEditor

СИНТАКСИС

объект JEditor getEditor( $editor )

где:

$editor

Тип значения - строка.

Название редактора (например, "tinymce"). Если null, то будет возвращен текущий редактор. По умолчанию null.

ПРИМЕР

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

$editor =& JFactory::getEditor();
$params = array( 'smilies'=> '0' ,
'style' => '1' ,
'layer' => '0' ,
'table' => '0' ,
'clear_entities'=>'0'
);
echo $editor->display( 'desc', '', '400', '400', '20', '20', false, $params );

Полный список параметров для редактора TinyMCE можно посмотреть /plugins/editor/tinymce.php.

Надо отметить, что JRequest::GET по умолчанию приводит все HTML коды к простому тексту, что может быть бесполезно при использовании редактора.

Чтобы сохранить HTML код, вы должны явно запросить его из JRequest-Object иначе все ваши HTML коды исчезнут.

/*The store-procedure in your model might then look like this*/
[...]
function store()
{
$row =& $this->getTable();
$data = JRequest::get( 'post');
/* Get proper HTML-code for your HTML-encoded field now by using JREQUEST_ALLOWHTML*/
$data['yourfieldname']=JRequest::getVar( 'yourfieldname', '', 'post', 'string', JREQUEST_ALLOWHTML );
/* now proceed as suggested */
$row->bind($data);
[...]
$row->check();
[...]
$row->store();
[...]
}
[...]

8.getLanguage

Возвращает ссылку на глобальный объект язык. Тип возвращаемого значения - JLanguage.

СИНТАКСИС

объект JLanguage getDocument()

ПРИМЕР

Следующий код определяет название текущего языка.

$lang =& JFactory::getLanguage();
echo 'Current language is: ' . $lang->getName();

9.getMailer

Возвращает ссылку на глобальный объект язык. Тип возвращаемого значения - JMail.

СИНТАКСИС

объект JLanguage getMailer()

ПРИМЕР

В этом примере посылается тестовое сообщение для проверки адреса электронной почты.

$mail =& JFactory::getMailer();
$config =& JFactory::getConfig();
$mail->addRecipient( $config->getValue( 'config.mailfrom' ) );
$mail->setSubject( 'Test message' );
$mail->setBody( 'This is an example email to test the Joomla! JFactory::getMailer() method. Please ignore it' );
if ($mail->Send()) {
echo "Mail sent successfully.";
} else {
echo "An error occurred. Mail was not sent.";
}

10.getSession

Возвращает ссылку на глобальный объект сессия. Тип возвращаемого значения - JSession.

СИНТАКСИС

объект JSession getSession($options )

где:

$options

Тип данных - массив.

Массив опций. Возможные опции приведены ниже. По умолчанию - массив.

name - название сессии;
id - уникальный ID сессии;
expire - дата и время окончания срока действия сессии;
security - список опций безопасности разделенных запятыми.

ПРИМЕР

Следующий код получает текущую сессию и устанавливает значение "helloworld" для переменной "myvar"

$session =& JFactory::getSession();
$session->set( 'myvar', 'helloworld' );

Переменная сессии может быть получена более легким способом

$session =& JFactory::getSession();
echo 'Session variable myvar has value: ' . $session->get( 'myvar', 'empty' );

11.getTemplate

Возвращает ссылку на глобальный объект шаблон. Тип возвращаемого значения - JTemplate.

СИНТАКСИС

объект JTemplate getTemplate()

ПРИМЕР

В этом примере получаем глобальный объект шаблон.

$template =& JFactory::getTemplate();

12.getURI

Статический метод, который возвращает ссылку на глобальный объект JURI. Тип возвращаемого значения - JURI. Глобальный объект URI представляет собой URI отвечающий за отображение текущей страницы.

ПРИМЕР

В этом примере мы получаем URI как строку

$u =& JFactory::getURI();
echo 'URI is ' . $u->toString() . "\n";

Результат:

URI is http://www.example.com/joomla/index.php?task=view&id=12&Itemid=29

13.getUser

Возвращает ссылку на глобальный объект пользователь. Тип возвращаемого значения - JUser

СИНТАКСИС

объект JUser getUser($id)

где:

$id

Тип значения - число или строка.

Если передана строка, тогда она будет интерпретирована как имя пользователя и сконвертирована в id автоматически. Если аргумент пропущен или передано значение null тогда будет загружен текущий пользователь. По умолчанию значение - null.

ПРИМЕР 1

В этом примере показана некоторая информация для текущего пользователя. При этом пользователь должен быть авторизован.

$user =& JFactory::getUser();
if (!$user->guest) {
echo 'You are logged in as:<br />';
echo 'User name: ' . $user->username . '<br />';
echo 'Real name: ' . $user->name . '<br />';
echo 'User ID : ' . $user->id . '<br />';
}

ПРИМЕР 2

В этом примере показана информация о пользователе с именем 'joebloggs'. При этом не важно является ли он текущим.

$user =& JFactory::getUser( 'joebloggs' );
if ($user->id == 0) {
echo 'There is no user joebloggs registered on this site.<br />';
} else {
echo 'User name: ' . $user->username . '<br />';
echo 'Real name: ' . $user->name . '<br />';
echo 'User ID : ' . $user->id . '<br />';
}

ПРИМЕР 3

В этом примере определяется, имеет ли текущий пользователь права на редактирование.

$user =& JFactory::getUser();
if ($user->authorize( 'com_content', 'edit', 'content', 'all' )) {
echo 'Editing permitted.';
} else {
echo 'Editing not permitted.';
}

14.getXMLParser

Возвращает ссылку на глобальный объект XML парсер. Тип возвращаемого значения зависит от типа запрошенного парсера

СИНТАКСИС

объект getXMLParser( $$type, $options )

где:

$type

Тип данных - строка.

Тип XML парсера. Список доступных опций приведен ниже. По умолчанию "DOM".

$options

Тип данных - массив.

Массив опций, которые могут помочь сконфигурировать парсер. Он зависит от выбранного парсера.

Поддерживаемые парсеры:

rss - SimplePie парсер для ленты новостей. Для работы этого парсера в массив опций должен быть передан URL($options['rssUrl']). Чтобы определить время жизни кэша в массив опций надо передать следующее значение: $options['cache_time'];
atom - тоже самое что rss;
simple- JSimpleXML парсер;
dom - Domit парсер. Если опция "lite" ($options['lite']) будет установлена true, то будет использован Domit lite парсер.

ПРИМЕР

В этом примере JSimpleXML парсер используется для того чтобы получить предопределенные позиции модулей в шаблоне Milky Way

$xml =& JFactory::getXMLParser( 'simple' );
$xml->loadFile( 'templates/rhuk_milkyway/templateDetails.xml' );
$positions =& $xml->document->getElementByPath( 'positions' );
foreach ($positions->children() as $position) {
echo $position->data() . "\n";
}

Результат

breadcrumb
left
right
top
user1
user2
user3
user4
footer
debug
syndicate


Английская версия статьи здесь Русская версия статьи здесь

Комментарии
К этой статье пока нет комментариев. Станьте первым! У нас гости не могут комментировать статьи. Пожалуйста авторизуйтесь или зарегистрируйтесь, чтобы прокомментировать.
Интересные статьи по теме
Аватар AnemoN
Накрутка лайков и подписчиков ВКонтакте Есть несколько хитрых и не очень методов, которые используются для т.н. "накрутки лайков".О заслуживающих внимания пойдет речь в этой статье....
Категория: Интернет | Автор: AnemoN | Добавлено: 17.02.2013
Аватар Jetti
Буксы — что это такое и как правильно выбрать букс для заработка Из-за коронавируса, "блуждающего" по всему миру вот уже второй год, у многих людей появилось огромное количество свободного времени. Одни стали тратить это время на хобби, другие — читать книги и смот...
Категория: Интернет | Автор: Jetti | Добавлено: 20.07.2021
Аватар Lizetta
Сколько времени уходит на создание сайта? Сколько времени тратит специалист на разработку сайта? В какой срок можно создать сайт и чем обуславливается это?...
Категория: Интернет | Автор: Lizetta | Добавлено: 03.06.2011
Аватар gul_itb
Как правильно представить информацию на сайте Зачем люди сидят в Интернете? В основном есть две причины – это развлечение и поиск информации. Ваш корпоративный сайт, конечно же тоже служит этим двум целям Интернет-общения. Даже бизнес-сайт о чем-...
Категория: Интернет | Автор: gul_itb | Добавлено: 26.10.2009
Аватар Marta22
Как улучшить страницу на сайте вконтакте Советы, как сделать страницу в vkontakte лучше...
Категория: Интернет | Автор: Marta22 | Добавлено: 21.08.2009
Свежие комментарии
Ну, вот это я понимаю, настоящая инструкция для тех, кто хочет не просто «привет, как дела», а чтобы дамы сами в личку ломились! Как говорится, техник...

Читать >>

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

Читать >>

Полностью поддерживаю подход, описанный в статье! Рисование — не просто творческое занятие, а ключевой инструмент для развития ребёнка. Как детский пс...

Читать >>

Интересная подборка ошибок, но не могу не высказать скепсис по поводу части рекомендаций. Например, о зарядке только до 80% — это логично с техническо...

Читать >>

Работал соцработником пару лет, и вот что не написали: это не только помощь людям, но и куча бумажек, отчётов и согласований. Бывает, половина времени...

Читать >>

Лучшие авторы
Аватар alliance-estate
Alliance-Estate- консультации, продажа - аренда не...

Читать

Аватар Victoria Tian
Автор женского журнала - Женские Хитрости

Читать

Напишите нам