Я хотел бы красиво заказать головной раздел сайта Joomla. После поиска по форумам я наткнулся на этот http://forum.joomla.org/viewtopic.php?f=642&т = +671526&р = 3283757 # p3283757
Хорошее предложение — скопировать файл /renderer/head.php в папку шаблона и изменить его в соответствии с текущими потребностями.
Они предлагают
Blockquote
Функция render в head.php не использует переменную $ name, поэтому ее можно использовать для разделения js и метатегов с файлами css и использовать оператор jdoc, например:
jdoc:include type="head" name="head" <-- will include all exept js (into
the head section)
jdoc:include type="head" name="foot" <-- for the js (before body tag closes)
Blockquote
Но я просто понятия не имею, как это реализовать.
У кого-нибудь есть опыт редактирования head.php в Joomla? Буду признателен за любую помощь.
Я немного разбирался по этому поводу, и мне кажется, что это немного глупо.
Это решение в настоящее время работает на Joomla 3. *.
Прежде всего, вы должны изменить /librabies/joomla/document/document.php
,
Как только вы окажетесь там, обновите функцию loadRenderer () следующим образом:
public function loadRenderer($type)
{
$class = 'JDocumentRenderer' . $type;
if (!class_exists($class))
{
$path = __DIR__ . '/' . $this->_type . '/renderer/' . $type . '.php';
if (file_exists($path))
{
require_once $path;
}
else
{
throw new RuntimeException('Unable to load renderer class', 500);
}
}
if (!class_exists($class))
{
return null;
}
$instance = new $class($this);
return $instance;
}
К этому :
public function loadRenderer($type)
{
$class = 'JDocumentRenderer' . $type;
if (!class_exists($class))
{
$path = __DIR__ . '/' . $this->_type . '/renderer/' . $type . '.php';
$app = JFactory::getApplication('site');
$path_custom = JPATH_THEMES . '/' . $app->getTemplate() .'/html/renderer/' . $type . '.php';
if (file_exists($path_custom))
{
require_once $path_custom;
}
elseif (file_exists($path))
{
require_once $path;
}
else
{
throw new RuntimeException('Unable to load renderer class', 500);
}
}
if (!class_exists($class))
{
return null;
}
$instance = new $class($this);
return $instance;
}
На самом деле новый код ищет файл рендеринга в каталоге шаблонов.
Теперь вы можете копировать libraries/joomla/document/html/renderer/head.php
в templates/TEMPLATE_NAME/html/renderer/head.php
и изменить его.
Если вы хотите использовать их:
<jdoc:include type="head" name="head" />
<jdoc:include type="head" name="foot" />
Обновить templates/TEMPLATE_NAME/html/renderer/head.php
к этой версии Вот.
Другой вариант (для joomla 2.5 / 3.0 и с небольшими настройками joomla 3.5.x), как упомянуто Вот является следующим:
1.) извлеките «/libraries/joomla/document/html/renderer/head.php» из установочного ZIP-файла Joomla 3.0
2.) переименуйте его в head_renderer.php и поместите в папку с шаблонами
3.) в ваш шаблон index.php добавьте:
require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'head_renderer.php';
4.) Если вы все еще используете Joomla 3.0, у вас все хорошо, если вы используете Joomla 3.5, отредактируйте head_renderer.php и измените JDocumentRendererHead на JDocumentRendererHtmlHead.
5.) Настройте head_renderer.php так, чтобы он соответствовал вашим требованиям.