Наверняка вы видели в структуре многих шаблонов записи типа $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';