PHP сніппети для Joomla

Список PHP-сніппетів та змінних для CMS Joomla

Змінна — це область пам’яті, в якій знаходяться дані, якими оперує програма. Змінній присвоюється ‘ім’я’ та ‘значення’. Система керування сайтом 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(‘“ ‘,’&quot;’,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(‘“ ‘,’&quot;’,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

Konrad Ravenstone// про автора

Кібермольфар, хакер, лінуксоїд, дослідник безпеки в KR. Labs Research

Сподобалася стаття? Поділитися в соцмережах:
KR. Labs Research
Рекомендоване:
У цьому матеріалі ми розглянемо як створити і опублікувати статичний…