Форум русской поддержки Joomla!® CMS
08.12.2016, 13:50:17 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Переместить тег

 (Прочитано 408 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Ragnos
Давно я тут
****

Репутация: +0/-0
Offline Offline

Сообщений: 254


« : 19.03.2015, 14:20:19 »

Привет, подскажите как можно перенести тег title в коде страницы в самый верх, я так понимаю это нужно делать тут libraries/joomla/document/html/renderer/head.php

и вроде как вот это отвечает за title:

Код:
// Don't add empty generators
$generator = $document->getGenerator();
if ($generator)
{
$buffer .= $tab . '' . $lnEnd;
}

$buffer .= $tab . '<title>' . htmlspecialchars($document->getTitle(), ENT_COMPAT, 'UTF-8'). '</title>' . $lnEnd;


только не пойму куда там нужно поставить, выше там столько не понятного
Записан
SeBun
Практически профи
*******

Репутация: +134/-3
Offline Offline

Пол: Мужской
Сообщений: 2286



« Ответ #1 : 19.03.2015, 15:19:17 »

Если вы хотите изменить расположение <title> в группе метатегов, то да, это тот самый файл. Здесь $buffer - переменная, которая содержит все строки метатегов. Знак ".=" означает добавление строки к уже имеющимся данным. Смотрите, какие строки заносятся в эту переменную перед этим куском кода и переносите его в нужное вам место.
Записан
Ragnos
Давно я тут
****

Репутация: +0/-0
Offline Offline

Сообщений: 254


« Ответ #2 : 19.03.2015, 19:59:42 »

Код:
{
/**
* Renders the document head and returns the results as a string
*
* @param   string  $head     (unused)
* @param   array   $params   Associative array of values
* @param   string  $content  The script
*
* @return  string  The output of the script
*
* @since   11.1
*
* @note    Unused arguments are retained to preserve backward compatibility.
*/
public function render($head, $params = array(), $content = null)
{
ob_start();
echo $this->fetchHead($this->_doc);
$buffer = ob_get_contents();
ob_end_clean();

return $buffer;
}

/**
* Generates the head HTML and return the results as a string
*
* @param   JDocument  &$document  The document for which the head will be created
*
* @return  string  The head HTML
*
* @since   11.1
*/
public function fetchHead(&$document)
{
// Trigger the onBeforeCompileHead event (skip for installation, since it causes an error)
$app = JFactory::getApplication();
$app->triggerEvent('onBeforeCompileHead');
// Get line endings
$lnEnd = $document->_getLineEnd();
$tab = $document->_getTab();
$tagEnd = ' />';
$buffer = '';

// Generate base tag (need to happen first)
$base = $document->getBase();
if (!empty($base))
{
$buffer .= $tab . '<base href="' . $document->getBase(). '" />' . $lnEnd;
}

// Generate META tags (needs to happen as early as possible in the head)
foreach ($document->_metaTags as $type => $tag)
{
foreach ($tag as $name => $content)
{
if ($type == 'http-equiv')
{
$content .= '; charset=' . $document->getCharset();
$buffer .= $tab . '<meta http-equiv="' . $name . '" content="' . htmlspecialchars($content). '" />' . $lnEnd;
}
elseif ($type == 'standard' && !empty($content))
{
$buffer .= $tab . '<meta name="' . $name . '" content="' . htmlspecialchars($content). '" />' . $lnEnd;
}
}
}

// Don't add empty descriptions
$documentDescription = $document->getDescription();
if ($documentDescription)
{
$buffer .= $tab . '<meta name="description" content="' . htmlspecialchars($documentDescription). '" />' . $lnEnd;
}

вот что идет перед кодом тайтла

Цитировать
Смотрите, какие строки заносятся в эту переменную перед этим куском кода и переносите его в нужное вам место.

вот например вверху было $buffer .= $tab . '<base href="' . $document->getBase(). '" />' . $lnEnd;

и в какое место исходя из этого переносить код, или я чего то не понял ?

Записан
SeBun
Практически профи
*******

Репутация: +134/-3
Offline Offline

Пол: Мужской
Сообщений: 2286



« Ответ #3 : 20.03.2015, 14:06:14 »

А вы ради интереса можете поставить между строк
Код:
var_dump($buffer);
и увидите, что содержится в этой переменной в текущем месте кода.

Вот к примеру у вас метод fetchHead, в нем переменная $buffer объявляется с пустым значением. Далее начинает отрабатывать код, который загружает в переменную данные. Попробуйте перенести ваш код, поставив его перед
Код:
// Generate base tag (need to happen first)
написал наугад, так что экспериментируйте.
« Последнее редактирование: 20.03.2015, 14:49:26 от sebun » Записан
Ragnos
Давно я тут
****

Репутация: +0/-0
Offline Offline

Сообщений: 254


« Ответ #4 : 21.03.2015, 18:08:37 »

спасибо, помогло)
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet