joomla — отредактируйте вывод jdoc: include type = head через renderer / head.php alter

Я хотел бы красиво заказать головной раздел сайта 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? Буду признателен за любую помощь.

2

Решение

Я немного разбирался по этому поводу, и мне кажется, что это немного глупо.

Это решение в настоящее время работает на 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 к этой версии Вот.

6

Другие решения

Другой вариант (для 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 так, чтобы он соответствовал вашим требованиям.

1

По вопросам рекламы [email protected]