Описание класса Joomla JFactory
Используется для построения и возвращения объектов.
  
Определен
/libraries/joomla/factory.php
МЕТОДЫ
getACL
Возвращает глобальный объект авторизации. Тип возвращаемого объекта - JAuthorization.
СИНТАКСИС
object JAuthorization getACL()
ПРИМЕР
В этом примере получен глобальный объект авторизации
$acl = JFactory::getACL();
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';
getCache
Возвращает ссылку на глобальный объект кэш. Тип возвращаемого объекта - JCache.
СИНТАКСИС
object 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
getConfig
Возвращает ссылку на глобальный объект конфигурация. Тип значения возвращаемого значения - JRegistry.
СИНТАКСИС
object JRegistry getConfig( $file, $type )
Где:
 $file
Тип значения - строка.
 Путь к конфигурационному файлу. Если null тогда путь - joomla/libraries/joomla/config.php. По умолчанию null.
 $type
 Тип значения - строка.
 Тип конфигурационного файла. По умолчанию "PHP".
ПРИМЕР
Это метод используется для доступа к глобальным конфигурационным переменным. В этом примере получаем имя сайта.
$config = JFactory::getConfig(); echo 'Site name is ' . $config->get( 'config.sitename' );
getDate
Возвращает ссылку на глобльный объект дата. Тип возвращаемго значения - JDate.
СИНТАКСИС
object 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
В этом примере дата определена в формате UNIX и в выводиться в формате ISO 8601.
$date = JFactory::getDate( 1332362632 ); echo 'Date and time is: ' . $date->toISO8601() . "\n";
Результат:
 Date and time is: 2012-03-21T20:43:52Z
getDBO
Возвращает ссылку на глобальный объект база данных. Тип возвращаемого объекта - JDatabase.
СИНТАКСИС
object JDatabase getDBO()
ПРИМЕР
В этом примере получаем префикс базы данных.
$db = JFactory::getDBO(); echo "Database prefix is : " . $db->getPrefix();
Результат:
 Database prefix is : jos_
  
getDocument
Возвращает ссылку на глобальный объект документ. Тип возвращаемого значения - JDocument.
СИНТАКСИС
object JDocument getDocument()
ПРИМЕР
В этот примере получаем заголовок текущей страницы.
$doc = JFactory::getDocument(); echo 'Current title is: ' . $doc->getTitle();
getEditor
Возвращает ссылку на глобальный объект редактор. Тип возвращаемого значения - JEditor
СИНТАКСИС
object 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();
	[...]
}
[...]
getLanguage
Возвращает ссылку на глобальный объект язык. Тип возвращаемого значения - JLanguage.
СИНТАКСИС
object JLanguage getLanguage()
ПРИМЕР
Следующий код определяет название текущего языка.
$lang = JFactory::getLanguage(); echo 'Current language is: ' . $lang->getName();
getMailer
Возвращает ссылку на глобальный объект язык. Тип возвращаемого значения - JMail.
СИНТАКСИС
object JLanguage getMailer()
ПРИМЕР
В этом примере посылается тестовое сообщение для проверки адреса электронной почты.
$mail = JFactory::getMailer();
$config = JFactory::getConfig();
$mail->addRecipient( $config->get( '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.";
}
getSession
Возвращает ссылку на глобальный объект сессия. Тип возвращаемого значения - JSession.
СИНТАКСИС
object 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' );
getTemplate
 Возвращает ссылку на глобальный объект шаблон. Тип возвращаемого значения - JTemplate.
СИНТАКСИС
object JTemplate getTemplate()
ПРИМЕР
В этом примере получаем глобальный объект шаблон.
$template = JFactory::getTemplate();
getURI
Статический метод, который возвращает ссылку на глобальный объект JURI. 
Тип возвращаемого значения - JURI. 
Глобальный объект URI представляет собой URI отвечающий за отображение текущей страницы.
ПРИМЕР
В этом примере мы получаем URI как строку
$u = JFactory::getURI(); echo 'URI is ' . $u->toString() . "\n";
Результат:
URI is 
getUser
Возвращает ссылку на глобальный объект пользователь. Тип возвращаемого значения - JUser
СИНТАКСИС
object JUser getUser($id)
где:
 $id
 Тип значения - число или строка.
 Если передана строка, тогда она будет интерпретирована как имя пользователя и сконвертирована в idавтоматически. Если аргумент пропущен или передано значение null тогда будет загружен текущий пользователь. По умолчанию значение - null.
ПРИМЕР 1
В этом примере показана некоторая информация для текущего пользователя. При этом пользователь должен быть авторизован.
$user = JFactory::getUser();
if (!$user->guest) {
	echo 'You are logged in as:
	';
	echo 'User name: ' . $user->username . '
	';
	echo 'Real name: ' . $user->name . '
	';
	echo 'User ID : ' . $user->id . '
	';
}
ПРИМЕР 2
В этом примере показана информация о пользователе с именем 'joebloggs'. При этом не важно является ли он текущим.
$user = JFactory::getUser( 'joebloggs' );
if ($user->id == 0) {
	echo 'There is no user joebloggs registered on this site.
	';
	} else {
	echo 'User name: ' . $user->username . '
	';
	echo 'Real name: ' . $user->name . '
	';
	echo 'User ID : ' . $user->id . '
	';
}
ПРИМЕР 3
В этом примере определяется, имеет ли текущий пользователь права на редактирование.
$user =	JFactory::getUser();
if ($user->authorize( 'com_content', 'edit', 'content', 'all' )) {
	echo 'Editing permitted.';
} else {
	echo 'Editing not permitted.';
}
getXMLParser
Возвращает ссылку на глобальный объект XML парсер. Тип возвращаемого значения зависит от типа запрошенного парсера
СИНТАКСИС
object 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