Настройка head.php

  • 10 Ответов
  • 791 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

*

Оффлайн Artorius

Настройка head.php
« : 26.04.2015, 01:22:42 »
Сегодня объединил все CSS в один файл и сжал его максимально чтобы соответствовать новым правилам от Google https://developers.google.com/speed/pagespeed/insights/ для мобильных устройств.
В итоге у меня теперь должен грузиться только template.css. Я прописал это в index.php своего шаблона и удалил строки формирования стилей в head.php. Все ок сайт работает.

Но в админке стили полностью удалились, да можно также вручную подгрузить в шаблоне админки нужные стили (но у меня это тоже не срабатывает, вызов стилей не отображается в итоговом коде админки). Но можно ли сделать это более изящно?
Пробовал сделать так, но видимо надо как-то подругому определять что в url есть слово administaroro т.к. метод не сработал.
if($_SERVER["REQUEST_URI"]=="*administrator*")
{// Generate stylesheet links
foreach ($document->_styleSheets as $strSrc => $strAttr)
{
$buffer .= $tab . '<link rel="stylesheet" href="' . $strSrc . '" type="' . $strAttr['mime'] . '"';
if (!is_null($strAttr['media']))
{
$buffer .= ' media="' . $strAttr['media'] . '" ';
}
if ($temp = JArrayHelper::toString($strAttr['attribs']))
{
$buffer .= ' ' . $temp;
}
$buffer .= $tagEnd . $lnEnd;
}

// Generate stylesheet declarations
foreach ($document->_style as $type => $content)
{
$buffer .= $tab . '<style type="' . $type . '">' . $lnEnd;

// This is for full XHTML support.
if ($document->_mime != 'text/html')
{
$buffer .= $tab . $tab . '<![CDATA[' . $lnEnd;
}

$buffer .= $content . $lnEnd;

// See above note
if ($document->_mime != 'text/html')
{
$buffer .= $tab . $tab . ']]>' . $lnEnd;
}
$buffer .= $tab . '</style>' . $lnEnd;
}
}
Какие есть варианты решения?

Заранее спс.
« Последнее редактирование: 26.04.2015, 01:32:29 от Artorius »

*

Оффлайн zomby6888

Re: Настройка head.php
« Ответ #1 : 26.04.2015, 03:53:17 »
В итоге у меня теперь должен грузиться только template.css. Я прописал это в index.php своего шаблона и удалил строки формирования стилей в head.php. Все ок сайт

Зачем вы вообще трогаете файлы ядра? Вы понимаете что все это слетит при обновлении? Можно ведь убрать все подключаемые в head стили непосредственно в коде шаблона: templates/templatename/index.php
Код: (php) [Выделить]
$doc=JFactory::getDocument();
$doc->_styleSheets = "";                              //убираем все стили
$doc->addStyleSheet("path_to_stylesheet");  //подключаем стиль

Есстественно, если стиль подключается через тег <style> в коде шаблона, его надо коментить вручную. Также можно прправить файл administrator/templates/templatename/index.php шаблона админки.
интернет-блог: http://websiteprog.ru

*

Оффлайн Artorius

Re: Настройка head.php
« Ответ #2 : 26.04.2015, 03:59:32 »
1) У меня небыло куска кода который Вы предложили
2) я прописал этот кусок в шаблоне просле head
В итоге у меня в самом верху стало отображаться
$doc=JFactory::getDocument(); $doc->_styleSheets = ""; //убираем все стили $doc->addStyleSheet("/templates/ot_swizcake/css/template.css"); //подключаем стиль

*

Оффлайн zomby6888

Re: Настройка head.php
« Ответ #3 : 26.04.2015, 04:05:24 »
приписывайте в конце шаблона внутри тегов <?php ... ?> это php код а не HTML
интернет-блог: http://websiteprog.ru

*

Оффлайн Artorius

Re: Настройка head.php
« Ответ #4 : 26.04.2015, 04:16:13 »
Этим способом остались почти все стили
  <link rel="stylesheet" href="http://www.tortlar.ru/plugins/system/omgshortcodes/assets/css/all.css" type="text/css" />
  <link rel="stylesheet" href="/templates/ot_swizcake/css/vmsite-ltr.css" type="text/css" />
  <link rel="stylesheet" href="http://www.tortlar.ru/modules/mod_omgmenu/css/omgmenu.css" type="text/css" />
  <link rel="stylesheet" href="http://www.tortlar.ru/modules/mod_omgmenu/css/omgmenu_mobile.css" type="text/css" />
  <link rel="stylesheet" href="http://www.tortlar.ru/modules/mod_callback/tmpl/style.css" type="text/css" />
  <style type="text/css">

   .ot-menu a {
      
      
   }
   .ot-menu a:hover {
      
   }

  </style>

*

Оффлайн zomby6888

Re: Настройка head.php
« Ответ #5 : 26.04.2015, 06:25:13 »
Они подключены или в модулях или в шаблоне напрямую. попросите разработчика написать плагин на событие onbeforecompilehead или продолжайте ломать систему. Да и кстатии есть наверняка плагины и для сжатия/обьеденения и для удаления лишних скриптов/стилей
« Последнее редактирование: 26.04.2015, 06:32:34 от zomby6888 »
интернет-блог: http://websiteprog.ru

*

Оффлайн Artorius

Re: Настройка head.php
« Ответ #6 : 26.04.2015, 17:01:11 »
1) При удалении куска
foreach ($document->_styleSheets as $strSrc => $strAttr)
{
$buffer .= $tab . '<link rel="stylesheet" href="' . $strSrc . '" type="' . $strAttr['mime'] . '"';
if (!is_null($strAttr['media']))
{
$buffer .= ' media="' . $strAttr['media'] . '" ';
}
if ($temp = JArrayHelper::toString($strAttr['attribs']))
{
$buffer .= ' ' . $temp;
}
$buffer .= $tagEnd . $lnEnd;
}
из head.php все стили удаляются нормально.
2) Каким разработчикам?
3) Плагины какие только не юзал, все или не ставятся или не работают как надо.
Спас только Admin Tools старый с опцией seo там он хорошо js объединил. Но hgb объединении CSS почемуто он трет нужные стили, видимо ищет дубли и трет их, зачем не пойму.

*

Оффлайн zomby6888

Re: Настройка head.php
« Ответ #7 : 26.04.2015, 17:33:01 »
Ну так ломайте и дальше сайт себе или заказчику, очевидно же что у вас не хватает знаний, чтобы сделать нормально. Про обновления забудьте. Название темы убивает. Офигеть какая настройка
интернет-блог: http://websiteprog.ru

*

Оффлайн Artorius

Re: Настройка head.php
« Ответ #8 : 26.04.2015, 17:35:50 »
Вы уже повторяетесь. Если бы у меня хватало знаний то я бы не создавал тут темы. Ответа я не получил от Вас. Ладно хоть не написали поищи в Google.
Как сделать хотя бы чтобы код выполнялся только при наличии слова administrator в url ? if($_SERVER["REQUEST_URI"]=="*administrator*")

*

Оффлайн zomby6888

Re: Настройка head.php
« Ответ #9 : 26.04.2015, 17:53:36 »
Ответа я не получил от Вас.

я вам ответил уже. Нужно написать плагин на событие onbeforecompilehead в котором прописать условие:

Код: (php) [Выделить]
$app=JFactory::getApplication();
if ( $app->isAdmin() ) {  ...  }

Справитесь с задачей? Сомневаюсь..
интернет-блог: http://websiteprog.ru

*

Оффлайн Artorius

Re: Настройка head.php
« Ответ #10 : 26.04.2015, 18:29:16 »
С версией php 5.4 плагин ScriptMerge заработал.

Ладно хоть не сказали пиши свой движок.