Змінна — це область пам’яті, в якій знаходяться дані, якими оперує програма. Змінній присвоюється ‘ім’я’ та ‘значення’. Система керування сайтом CMS Joomla дозволяє у своїх шаблонах з допомогою PHP-змінних отримувати і виводити ті чи інші дані. Сніппет — це фрагмент заготовленого коду, який можна використовувати повторно. У даній публікації я приведу список деяких змінних і сніппетів, якими користуюся сам при кастомізації Joomla.
Список глобальних змінних в Joomla
Протестовано на версіях J1.5/2.5.
<?php $this->template; ?>— отримуємо назву шаблону (теми) Joomla;<?php $this->baseurl; ?>— коренева URL-адреса сайту;<?php $this->base; ?>— отримуємо URL-адресу активної сторінки;<?php $this->title; ?>— отримуємо Title активної сторінки;<?php $this->language; ?>— отримуємо активну мову локалізації Joomla;<?php $this->_file; ?>— отримуємо повний шлях до розташування файлів шаблону;<?php $currentMenuName = JSite::getMenu()->getActive()->name ; ?>— отримуємо назву активного пункту меню;<?php $currentMenuId = JSite::getMenu()->getActive()->id ; ?>— отримуємо ID активного пункту меню;
PHP-сніппети
<jdoc:include type="modules" name="{NAME}" style="{STYLE}" />— підключаємо модуль Joomla;<jdoc:include type="component" />— підключаємо компонент Joomla;<?php echo JHTML::Date( 'now', '%d.%m.%Y' ); ?>— вивести дату;<?php echo Date('d.m.Y H:i:s');?>— вивести дату і час;<?php $this->title = JFactory::getConfig()->getValue('sitename').' - '.$this->title; ?>— змінює формат виводу Title для усіх сторінок у вигляді: «Назва сайту — Заголовок сторінки»;<?php unset($this->_scripts[$this->baseurl.'/media/system/js/mootools-core.js']); ?>— вимкнення завантаження бібліотеки Mootools.
Як вставити мета-теги OpenGraph в Joomla?
Примітка: тестувалося на Joomla 1.5
Код нижче необхідно вставити в файл /templates/yourtemplate/html/com_content/article/defualt.php
<?php
if (isset($images->image_intro) and !empty($images->image_intro))
{
$timage= htmlspecialchars(JURI::root().$images->image_intro);
}
elseif (isset($images->image_fulltext) and !empty($images->image_fulltext))
{
$timage= htmlspecialchars(JURI::root().$images->image_fulltext);
}
else
{
$timage= ‘https://example.com/opengraph_image.jpg';
}
$doc =& JFactory::getDocument();
$doc->addCustomTag( ‘
<meta name=”twitter:title” content=”’ . htmlspecialchars($document->getTitle(), ENT_COMPAT, ‘UTF-8’). ‘“>
<meta name=”twitter:card” content=”summary_large_image”>
<meta name=”twitter:site” content=”@username”>
<meta name=”twitter:creator” content=”@username”>
<meta name=”twitter:url” content=”’.str_replace(‘“ ‘,’"’,JURI::current()).’”=””>
<meta name=”twitter:description” content=”’.mb_strimwidth(strip_tags($doc->getMetaData( ‘description’ )),0,120, “ …”).’” />
<meta property=”og:title” content=”’ . htmlspecialchars($document->getTitle(), ENT_COMPAT, ‘UTF-8’). ‘“/>
<meta property=”og:type” content=”article”/>
<meta property=”og:email” content=”email@email.com”;/>
<meta property=”og:url” content=”’.str_replace(‘“ ‘,’"’,juri::current()).’”=””>
<meta property=”og:site_name” content=”Websitename”/>
<meta property=”og:description” content=”’.mb_strimwidth(strip_tags($doc->getMetaData( ‘description’ )),0,120, “ …”).’” />
‘);
?> Як швидко додати нову позицію у шаблон Joomla?
Перейти у кореневу папку з сайтом, відкрити файл index.php та вставити php-сніппет у ту частину, де необхідно вивести нову позицію:
<div id=”newpositionclass”> <jdoc:include type=”modules” name=”newposition” /> </div>
Відкрити файл templateDetails.xml і у секції <positions> додати нову позицію:
<position>newposition</position>
Перейти в Joomla Admin Panel й створити новий модуль, вказавши позицію ‘newposition’. Якщо позиція не відобразилась автоматично — ввести її назву в ручну й натиснути Save.
Посилання
Автор: © Konrad Ravenstone, KR. Laboratories Research

