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

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

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

 (Прочитано 557 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Artorius
Захожу иногда
**

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

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



« : 26.04.2015, 00: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, 00:32:29 от Artorius » Записан
zomby6888
Живу я здесь
******

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

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


« Ответ #1 : 26.04.2015, 02:53:17 »

В итоге у меня теперь должен грузиться только template.css. Я прописал это в index.php своего шаблона и удалил строки формирования стилей в head.php. Все ок сайт

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

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

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

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



« Ответ #2 : 26.04.2015, 02:59:32 »

1) У меня небыло куска кода который Вы предложили
2) я прописал этот кусок в шаблоне просле head
В итоге у меня в самом верху стало отображаться
$doc=JFactory::getDocument(); $doc->_styleSheets = ""; //убираем все стили $doc->addStyleSheet("/templates/ot_swizcake/css/template.css"); //подключаем стиль
Записан
zomby6888
Живу я здесь
******

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

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


« Ответ #3 : 26.04.2015, 03:05:24 »

приписывайте в конце шаблона внутри тегов <?php ... ?> это php код а не HTML
Записан
Artorius
Захожу иногда
**

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

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



« Ответ #4 : 26.04.2015, 03: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
Живу я здесь
******

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

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


« Ответ #5 : 26.04.2015, 05:25:13 »

Они подключены или в модулях или в шаблоне напрямую. попросите разработчика написать плагин на событие onbeforecompilehead или продолжайте ломать систему. Да и кстатии есть наверняка плагины и для сжатия/обьеденения и для удаления лишних скриптов/стилей
« Последнее редактирование: 26.04.2015, 05:32:34 от zomby6888 » Записан
Artorius
Захожу иногда
**

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

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



« Ответ #6 : 26.04.2015, 16: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
Живу я здесь
******

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

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


« Ответ #7 : 26.04.2015, 16:33:01 »

Ну так ломайте и дальше сайт себе или заказчику, очевидно же что у вас не хватает знаний, чтобы сделать нормально. Про обновления забудьте. Название темы убивает. Офигеть какая настройка
Записан
Artorius
Захожу иногда
**

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

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



« Ответ #8 : 26.04.2015, 16:35:50 »

Вы уже повторяетесь. Если бы у меня хватало знаний то я бы не создавал тут темы. Ответа я не получил от Вас. Ладно хоть не написали поищи в Google.
Как сделать хотя бы чтобы код выполнялся только при наличии слова administrator в url ? if($_SERVER["REQUEST_URI"]=="*administrator*")
Записан
zomby6888
Живу я здесь
******

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

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


« Ответ #9 : 26.04.2015, 16:53:36 »

Ответа я не получил от Вас.

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

Код
$app=JFactory::getApplication();
if ( $app->isAdmin() ) {  ...  }
 

Справитесь с задачей? Сомневаюсь..
Записан
Artorius
Захожу иногда
**

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

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



« Ответ #10 : 26.04.2015, 17:29:16 »

С версией php 5.4 плагин ScriptMerge заработал.

Ладно хоть не сказали пиши свой движок.
Записан
Страниц: [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