Полезные php функции при работе с шаблоном Joomla 2.5-3

Наверняка вы видели в структуре многих шаблонов записи типа $this->baseurl или $this->template. Разберем основные из них, ведь они призваны упростить программирование в Joomla и будет разумно их использовать в каждом проекте.

Подключиться к файлу configuration.php в корне сайта:

$conf = JFactory::getConfig();

Вытащить данные из него, чтобы подключиться к БД можно так:

$linkss = mysql_connect($conf->get('host'), $conf->get('user'), $conf->get('password'));
mysql_select_db($conf->get('db'));

Делаем тестовый sql запрос (он покажет названия всех опубликованных материалов в Joomla):

$br_sql = mysql_query("SELECT * FROM ".$conf->get('dbprefix')."content WHERE state = '1'");
while ($br_sql_row=mysql_fetch_array($br_sql)) {
echo $br_sql_row['title'].'<br />';
}

Для дальнейшей работы нам понадобится обратиться к классу:

$doc = JFactory::getDocument();   

Программно подключить в head js и css

$doc->addScriptDeclaration('(function($){ alert("Ok"); })(jQuery);'); //вставит js внутрь общих <script></script>
$doc->addScript($this->baseurl.'/templates/'.$this->template.'/javascript/smoothscroll.js', 'text/javascript');
$doc->addStyleSheet($this->baseurl.'/templates/system/css/system.css'); //подключить css файл в head

Отключить любой скрипт загружаемый каким-либо компонентом:

unset(
$this->_scripts[$this->baseurl.'/media/system/js/mootools-more.js'],
$this->_scripts[$this->baseurl.'/media/system/js/core.js'],
$this->_scripts[$this->baseurl.'/media/system/js/mootools.js'],
$this->_scripts[$this->baseurl.'/media/system/js/caption.js'],
$this->_scripts[$this->baseurl.'/components/com_virtuemart/assets/js/jquery.noConflict.js']
);

Текущий шаблон

echo $this->template;

Проверка на существование файла

if (file_exists(JPATH_SITE.'/templates/'.$this->template.'/css/rtl.css')) {
$doc->addStyleSheet($this->baseurl.'/templates/'.$this->template.'/css/rtl.css');
}

Увидеть, получить, изменить все свойства в шаблоне можно так:

var_dump($this);

//["template"]=> string(7) "beez_20"
//["base"]=> string(63) "https://xn--80aklsehdbmct.xn--p1ai/index.php/manufacturer/amigo"
//["language"]=> string(5) "ru-ru"
//["_generator"]=> string(40) "Joomla! - Open Source Content Management"

Удалить свойство: unset($this->language);

Получить свойство: echo $this->language или $this->params->get('wrapperLarge');

Изменить свойство: $this->language = 'en-EN';

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *


Введите капчу: