Блог старого компьютера

Блог старого компьютера


Главная Joomla Изменить теги jdoc:include на свои Joomla

Изменить теги jdoc:include на свои Joomla

18.12.2012 18:27 Администратор Joomla
Печать PDF

Давненько я писал статью про Теги jdoc:include Joomla и их типы в комментариях к той теме у меня спросили можно ли заменить эти теги другими. Вот я сообственно и решил ответить на вопрос читателей. Эти теги можно заменить, как и многое другое в нашей жизни. Создается лишь вопрос зачем их менять? Если ты их и сменишь то чтоб похвастаться тебе нужно будет показывать исходный код шаблона. Если вы думаете что если их сменить то что то кординально изменится то это заблуждение. Joomla останется джумлой. Если и тут у вас желание не пропало то добро пожаловать далее.

За парсинг специальных тегов jdoc:include в шаблоне joomla отвечает следующий файл: /libraries/joomla/document/html/html.php

В этом файле есть специальная функция которая с помощью регуларного выражения парсит этот тег забирая из него нужную для работы движка информацию. Делает эти действия функция _parseTemplate() находящаяся в районе 368 строки.

Функция выглядит так:

function _parseTemplate($data)
{
$replace = array();
$matches = array();
if(preg_match_all('#<jdoc:include\ type="([^"]+)" (.*)\/>#iU', $data, $matches))
{
$matches[0] = array_reverse($matches[0]);
$matches[1] = array_reverse($matches[1]);
$matches[2] = array_reverse($matches[2]);

$count = count($matches[1]);

for($i = 0; $i < $count; $i++)
{
$attribs = JUtility::parseAttributes( $matches[2][$i] );
$type = $matches[1][$i];

$name = isset($attribs['name']) ? $attribs['name'] : null;
$replace[$i] = $this->getBuffer($type, $name, $attribs);
}

$data = str_replace($matches[0], $replace, $data);
}

return $data;
}

 Функция довольно простая и понятна будет даже новичку в php.

В этой функции изменяем следующую строчку (372 строка):

if(preg_match_all('#<jdoc:include\ type="([^"]+)" (.*)\/>#iU', $data, $matches))

К примеру так:

if(preg_match_all('#<wemarus\ type="([^"]+)" (.*)\/>#iU', $data, $matches))

Вот и все, дальше нам надо пройти в наш шаблон и заменить все jdoc:include на wemarus. После этого сайт будет работать как и работал до этого.

Комментарии  

 
0 #1 Родион 21.06.2013 09:43
Кому в голову придёт этим заниматься? Вопрос про include в том, откуда этот include подключает тэги (разметку). У меня например в шаблоне через include подключается модуль и я хочу его подкорректирова ть. Откуда разметка этого модуля берётся?
Цитировать
 

Добавить комментарий


Защитный код
Обновить

Поиск

Голосование

Что Вы думаете на счет битрикса?
 

Все материалы раздела