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

vaymohk

  • Захожу иногда
  • 258
  • 1 / 0
  • Ingtimes.ru | Новости Ингушетии
Случайно наткнулся на этом форуме на подобную тему где smart дал интересный код для шаблона.
Код
$user =& JFactory::getUser();
if ($user->get('guest') == 1) {
  $headerstuff = $this->getHeadData();
  $key1 = JURI::base(true). '/media/system/js/mootools.js';
  $key2 = JURI::base(true). '/media/system/js/caption.js';
  $key3 = JURI::base(true). '/media/system/js/mootools-core.js';
  $key4 = JURI::base(true). '/media/system/js/mootools-more.js';
  unset($headerstuff['scripts'][$key1], $headerstuff['scripts'][$key2], $headerstuff['scripts'][$key3], $headerstuff['scripts'][$key4]);
  $this->setHeadData($headerstuff);
}
(я добавил в код core и more, можете изменять на свое усмотрение)
Код убирает скрипты для гостей на сайте. Решение как мне кажется идеальное. На http://www.unshit.com/ru/ после установки скинул 25! кусков. было 35 стало 10. А после авторизации можно спокойно писать с фронта.
Проблем с работой сторонних расширений пока не обнаружил. Просьба отписываться если такие будут.

А куда этот куда шаблон вставлять объясните кто нибудь пожалуйста
*

al-teen

  • Глобальный модератор
  • 2385
  • 224 / 10
  • im
в index.php шаблона
*

vaymohk

  • Захожу иногда
  • 258
  • 1 / 0
  • Ingtimes.ru | Новости Ингушетии
А куда этот куда шаблон вставлять объясните кто нибудь пожалуйста
Тоесть вместо выше описанных мне нужно вставить все скрипты которые находятся в шаблоне?
*

Rival

  • Захожу иногда
  • 188
  • 16 / 0
Протестировал скорость загрузки, показало 40  из 100 видимо нужно оптимизировать.

Отключил 4  неиспользуемых системных скрипта, оставил только 1 для всплывающих картинок, но по тесту от Google так и осталась скорость 40.


« Последнее редактирование: 20.06.2012, 23:47:07 от Rival »
*

ViktorMah

  • Захожу иногда
  • 251
  • 28 / 0
Протестировал скорость загрузки, показало 40  из 100 видимо нужно оптимизировать.

Отключил 4  неиспользуемых системных скрипта, оставил только 1 для всплывающих картинок, но по тесту от Google так и осталась скорость 40.

Тут ещё сильно влияет:
1 - количество загружаемых CSS + их вес, то есть сжаты они или нет.
2 - количество и качество/степень сжатия картинок
*

vaymohk

  • Захожу иногда
  • 258
  • 1 / 0
  • Ingtimes.ru | Новости Ингушетии
Я делал так http://www.cyber-club.su/servisy/blogi06/entry/joomla-optimizatsiya! Было 170 кусков говна на сайте осталось 40 (http://unshit.com/ru/) и сайт после оптимизации не глючил))
*

likrion

  • Давно я тут
  • 750
  • 129 / 2
R331474010295
*

vaymohk

  • Захожу иногда
  • 258
  • 1 / 0
  • Ingtimes.ru | Новости Ингушетии
Я подсказал или Вы знали о плагине?)
*

Dron79

  • Захожу иногда
  • 321
  • 37 / 0
  • Век живи - век учись!
Вот вариант удаления скриптов не только из шаблона но и из любого компонента, модуля и плагина:
Код: php
$document = JFactory::getDocument();

unset($document->_scripts['/media/system/js/mootools-core.js'],
$document->_scripts['/media/system/js/mootools-more.js'],
$document->_scripts['/media/system/js/core.js'],
       $document->_scripts['/media/system/js/caption.js']);
$document->_script = array();

Естественно удалять нужно только то, что не нужно для работы страницы с данным компонентом модулем и функцией,
или оставить только то что нужно для полноценной работы страницы с данным расширением.
кодинг на php.
*

Langoliers

  • Давно я тут
  • 621
  • 67 / 2
  • Если б Я изучал людей, то был бы паразитологом
Надеюсь меня не закидают камнями, если Я скажу, что это несколько неправильный вариант исключения скриптов из сайта... К тому же если использовать фреймворк он и вовсе не будет работать...
Изначально файлы подключаются в файле /libraries/joomla/html/html/behavior.php
Там есть строки на подобии
Код
JHtml::_('script', 'system/core.js', false, true);
Чтобы отключить загрузку тех, или иных скриптов нужно true заменить на false (если значений true два, из оба нужно изменить на false)
Чтобы полностью отключить mootools код должен выглядеть так:
Код
		JHtml::_('script', 'system/mootools-' . $type . '.js', false, false, false, false, $debug);
JHtml::_('script', 'system/core.js', false, false);
self::$loaded[__METHOD__][$type] = true;

Единственный у меня вопрос: как разрешить загрузку тех, или иных скриптов только для авторизованных пользователей?
« Последнее редактирование: 28.08.2012, 17:56:11 от Langoliers »
*

wfedin

  • Завсегдатай
  • 1273
  • 102 / 0
наверное
Код
$user =& JFactory::getUser();
if ($user->get('guest') == 1) {
JHtml::_('script', 'system/core.js', false, true);
...
} else {
JHtml::_('script', 'system/mootools-' . $type . '.js', false, false, false, false, $debug);
JHtml::_('script', 'system/core.js', false, false);
self::$loaded[__METHOD__][$type] = true;
}
*

Langoliers

  • Давно я тут
  • 621
  • 67 / 2
  • Если б Я изучал людей, то был бы паразитологом
wfedin, спасибо! Работает. Итак вот что получилось у меня:
Код
$user =& JFactory::getUser();
if ($user->get('guest') == 1) {
JHtml::_('script', 'system/mootools-core.js', false, true, false, false, $debug);
JHtml::_('script', 'system/core.js', false, false);
JHtml::_('script', 'system/mootools-more.js', false, false, false, false, $debug);
self::$loaded[__METHOD__][$type] = true;
}else {
JHtml::_('script', 'system/mootools-' . $type . '.js', false, true, false, false, $debug);
JHtml::_('script', 'system/core.js', false, true);
self::$loaded[__METHOD__][$type] = true;}
И
Код
$user =& JFactory::getUser();
if ($user->get('guest') == 1) {
JHtml::_('script', 'system/caption.js', false, false);
} else {
JHtml::_('script', 'system/caption.js', true, true);
}
Такой код запрещает вызов core.js mootools-more.js и caption.js если пользователь не авторизован на сайте. Если авторизован - они загружаются для него... Однако кое какой функционал конечно порежется...
Похоже придется вернуть загрузку mootools-more.js для гостей, чего не хочется... 200 килобайт однако... У меня все остальные скрипты на сайте весят 175 (включая другие мт)

P.S. пошел курить мануалы, какой js за что отвечает...
« Последнее редактирование: 28.08.2012, 20:20:39 от Langoliers »
*

wfedin

  • Завсегдатай
  • 1273
  • 102 / 0
у меня после отключения caption.js ошибки сыпались и где-то нарыл я:
Код
    // Вычищаеи остатки кода инициализации caption.js:
        if( isset($this->_script['text/javascript']) ) {
            $this->_script['text/javascript'] = preg_replace('%window\.addEvent\(\'load\',\s*function\(\)\s*{\s*new\s*JCaption\(\'img.caption\'\);\s*}\);\s*%', '', $this->_script['text/javascript']);
            if( empty($this->_script['text/javascript']) )
            unset( $this->_script['text/javascript'] ); }
*

Langoliers

  • Давно я тут
  • 621
  • 67 / 2
  • Если б Я изучал людей, то был бы паразитологом
у меня после отключения caption.js ошибки сыпались и где-то нарыл я
Вот полезная инфа
http://forum.joomla.org/viewtopic.php?t=691239
http://www.acuit.com.au/Blogs/removing-jcaption-in-joomla2.5.html
А Вы куда код разместили?

P.S. так и не нашел какие js за что отвечают =\
*

wfedin

  • Завсегдатай
  • 1273
  • 102 / 0
сразу после отключения
Код
$user =& JFactory::getUser();
if ($user->get('guest') == 1) {
JHtml::_('script', 'system/mootools-core.js', false, true, false, false, $debug);
JHtml::_('script', 'system/core.js', false, false);
JHtml::_('script', 'system/mootools-more.js', false, false, false, false, $debug);
self::$loaded[__METHOD__][$type] = true;
СЮДА КОД ОЧИСТКИ СТАВИМ
}
*

Langoliers

  • Давно я тут
  • 621
  • 67 / 2
  • Если б Я изучал людей, то был бы паразитологом
сразу после отключения
Код
$user =& JFactory::getUser();
if ($user->get('guest') == 1) {
JHtml::_('script', 'system/mootools-core.js', false, true, false, false, $debug);
JHtml::_('script', 'system/core.js', false, false);
JHtml::_('script', 'system/mootools-more.js', false, false, false, false, $debug);
self::$loaded[__METHOD__][$type] = true;
СЮДА КОД ОЧИСТКИ СТАВИМ
}
Только наверное после обработки caption.js?
*

Shustry

  • Гуру
  • 6436
  • 743 / 3
  • Рисую дизайны
у меня после отключения caption.js ошибки сыпались и где-то нарыл я:
Код
    // Вычищаеи остатки кода инициализации caption.js:
        if( isset($this->_script['text/javascript']) ) {
            $this->_script['text/javascript'] = preg_replace('%window\.addEvent\(\'load\',\s*function\(\)\s*{\s*new\s*JCaption\(\'img.caption\'\);\s*}\);\s*%', '', $this->_script['text/javascript']);
            if( empty($this->_script['text/javascript']) )
            unset( $this->_script['text/javascript'] ); }
Я вот так юзаю. Немного короче, но регулярка та же.
Код: php
$this->_script = preg_replace('%window\.addEvent\(\'load\',\s*function\(\)\s*{\s*new\s*JCaption\(\'img.caption\'\);\s*}\);\s*%', '', $this->_script);
Бесплатно консультирую по дизайну и вёрстке (только в личку сердечно прошу не стучать). Платно делаю дизайн, вёрстку и темплейты для Joomla. Работаю только за деньги. За большие. И долго. Но качественно.
---------------------------------------------------------
xmpp:joomla@conference.jabber.ru - наша конфа!
*

Langoliers

  • Давно я тут
  • 621
  • 67 / 2
  • Если б Я изучал людей, то был бы паразитологом
у меня после отключения caption.js ошибки сыпались и где-то нарыл я:
Код
    // Вычищаеи остатки кода инициализации caption.js:
        if( isset($this->_script['text/javascript']) ) {
            $this->_script['text/javascript'] = preg_replace('%window\.addEvent\(\'load\',\s*function\(\)\s*{\s*new\s*JCaption\(\'img.caption\'\);\s*}\);\s*%', '', $this->_script['text/javascript']);
            if( empty($this->_script['text/javascript']) )
            unset( $this->_script['text/javascript'] ); }
Хм... получил такую ошибку:
Цитировать
Fatal error: Using $this when not in object context in /libraries/joomla/html/html/behavior.php on line 34
На 34 строке как раз начинает код очистки... Код Shustry тоже пробовал...
Вставлял и после mootools- файлов и core.js и после caption.js и отдельно и вместе
*

Shustry

  • Гуру
  • 6436
  • 743 / 3
  • Рисую дизайны
Вот начало шаблона, каким я его использую вот уже год на различных проектах и, практически, без изменений. Ни разу ни одной ошибки естессно.
Код: html4strict
<?php defined('_JEXEC') or die;
if (JRequest::getVar('ajcom')) {?>
<jdoc:include type="component" />
<?php } else {
unset( $this->_scripts[$this->baseurl.'/media/system/js/mootools-core.js'],
$this->_scripts[$this->baseurl.'/media/system/js/mootools-more.js'],
$this->_scripts[$this->baseurl.'/media/system/js/core.js'],
$this->_scripts[$this->baseurl.'/media/system/js/caption.js'],
$this->_scripts[$this->baseurl.'/media/system/js/validate.js']
);
$this->_script = preg_replace('%window\.addEvent\(\'load\',\s*function\(\)\s*{\s*new\s*JCaption\(\'img.caption\'\);\s*}\);\s*%', '', $this->_script);
$templ = $this->baseurl."/templates/".$this->template;
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" dir="<?php echo $this->direction; ?>" >
<head>
<jdoc:include type="head" />
...
Ты из шаблонов компонентов не забыл выпилить всякие...
Код: php
JHtml::_('behavior.tooltip');
JHtml::core();
... и тому подобное?
Бесплатно консультирую по дизайну и вёрстке (только в личку сердечно прошу не стучать). Платно делаю дизайн, вёрстку и темплейты для Joomla. Работаю только за деньги. За большие. И долго. Но качественно.
---------------------------------------------------------
xmpp:joomla@conference.jabber.ru - наша конфа!
*

Efanych

  • Глобальный модератор
  • 4686
  • 643 / 0
  • Меняю свою жизнь на 360°!
Цитировать
Вот начало шаблона, каким я его использую вот уже год на различных проектах и, практически, без изменений. Ни разу ни одной ошибки естессно.
А пустого скрипта в head нет?
Создание сайтов, шаблонов, помощь в решении проблем.
*

Langoliers

  • Давно я тут
  • 621
  • 67 / 2
  • Если б Я изучал людей, то был бы паразитологом
Ты из шаблонов компонентов не забыл выпилить всякие...
Забыл ;D
*

Shustry

  • Гуру
  • 6436
  • 743 / 3
  • Рисую дизайны
Efanych, нет. Вообще, плагин JB Library от Joomla Bamboo всё это умеет, если не хочецо заморачиваться с шаблоном.
Бесплатно консультирую по дизайну и вёрстке (только в личку сердечно прошу не стучать). Платно делаю дизайн, вёрстку и темплейты для Joomla. Работаю только за деньги. За большие. И долго. Но качественно.
---------------------------------------------------------
xmpp:joomla@conference.jabber.ru - наша конфа!
*

Efanych

  • Глобальный модератор
  • 4686
  • 643 / 0
  • Меняю свою жизнь на 360°!
Efanych, нет.
А у меня есть. Остаётся от
Цитировать
<script type="text/javascript">
window.addEvent('load', function() {
            new JCaption('img.caption');
         });
  </script>
Создание сайтов, шаблонов, помощь в решении проблем.
*

Shustry

  • Гуру
  • 6436
  • 743 / 3
  • Рисую дизайны
А у меня есть. Остаётся от
Внизапно! А ведь и у меня остаёцо О_о. А я и не замечал. Надо регулярку переписывать.
Код
<script type="text/javascript">
</script>
Вот. Пустая строка остаётся.
Бесплатно консультирую по дизайну и вёрстке (только в личку сердечно прошу не стучать). Платно делаю дизайн, вёрстку и темплейты для Joomla. Работаю только за деньги. За большие. И долго. Но качественно.
---------------------------------------------------------
xmpp:joomla@conference.jabber.ru - наша конфа!
*

Fedor Vlasenko

  • Живу я здесь
  • 3827
  • 721 / 7
  • Все начинается с Value
Решил отказаться от <jdoc:include type="head" />
Маленькая строчка а проблем с скриптами и тегами по горло. ^-^
Спойлер
[свернуть]
Скрипты вывожу внизу сайта. Переписываю некоторые под себя
Спойлер
[свернуть]
*

Langoliers

  • Давно я тут
  • 621
  • 67 / 2
  • Если б Я изучал людей, то был бы паразитологом
И на сколько скорость загрузки возрасла?
*

Fedor Vlasenko

  • Живу я здесь
  • 3827
  • 721 / 7
  • Все начинается с Value
И на сколько скорость загрузки возрасла?
Что вы имеет ввиду. Выше был приведен корректный вывод заголовков Html5
В Joomla такого не предусмотрено по умолчанию. Далее предложен вариант ручного управления скриптами где в процессе обработки циклов foreach возможно вставить свой обработчик этих файлов для минимизации. объединения и кеширования.
*

al-teen

  • Глобальный модератор
  • 2385
  • 224 / 10
  • im
Внизапно! А ведь и у меня остаёцо О_о. А я и не замечал. Надо регулярку переписывать.
Код
<script type="text/javascript">
</script>
Вот. Пустая строка остаётся.
Я ж приводил код с регуляркой, чтою его не оставалось. В теме промала. Даже не посмотрели, как оказывается.
*

Efanych

  • Глобальный модератор
  • 4686
  • 643 / 0
  • Меняю свою жизнь на 360°!
И в этой теме есть.
Цитировать
if( empty($this->_script['text/javascript']) )
            unset( $this->_script['text/javascript'] );
Создание сайтов, шаблонов, помощь в решении проблем.
*

vaymohk

  • Захожу иногда
  • 258
  • 1 / 0
  • Ingtimes.ru | Новости Ингушетии
Может кто оценить насколько оптимизирован вот этот сайт 1.cyber-club.su! Шаблон очень легкий сам делал
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

LMS под Joomla 2.5 (создание сайта дистанционного обучения)

Автор kovardaks

Ответов: 8
Просмотров: 7446
Последний ответ 14.09.2019, 19:38:54
от Arturr
[FAQ] Ускоряем загрузку сайта (руководства и инструменты)

Автор Fedor Vlasenko

Ответов: 113
Просмотров: 87856
Последний ответ 21.11.2018, 13:33:03
от ChaosHead
Тайтл Главной страницы сайта

Автор gromlan

Ответов: 6
Просмотров: 901
Последний ответ 28.02.2018, 16:57:15
от gromlan
Некорректная работа плагинов после переноса сайта на другой хостинг

Автор ICaR

Ответов: 1
Просмотров: 516
Последний ответ 26.01.2018, 09:21:26
от kern.USR
Перенос сайта без FTP

Автор Tycha

Ответов: 11
Просмотров: 2539
Последний ответ 25.01.2018, 20:08:55
от Avocado91