Новости Joomla

Вышли релизы Joomla 6.1 и Joomla 5.4.5: новые возможности и стабильность

Релиз Joomla 6.1.0

Проект Joomla! объявил о доступности Joomla 6.1 [Nyota] — новой минорной версии шестой серии, а также о выпуске релиза исправлений ошибок Joomla 5.4.5. Релиз 6.1 приносит ряд долгожданных функций, повышающих удобство управления контентом и защиту от спама.

👩‍💻 Компонент "CS Афиши" для Joomla.

👩‍💻 Компонент "CS Афиши" для Joomla.

Расширение "CS Афиши" позволяет выводить список мероприятий, фильтровать их по датам, поиск по заголовкам и описанию.

В состав пакета расширений входят:
- Компонент "CS Афиши"
- Модуль "Календарь событий"
- Модуль "Предстоящие события"
- Библиотека "ImgResize"

Расширение "CS Афиши" позволяет выводить список мероприятий, фильтровать их по датам, поиск по заголовкам и описанию.

Модуль "Календарь событий" отображает предстоящие и прошедшие мероприятие на календаре, с отображением мероприятий на конкретную дату во всплывающем окне.

Модуль "Предстоящие события" показывает список предстоящий событий по порядку их наступления.

P.S. Расширение платное, но плата символическая, чисто для отработки приема платежей. Ключи без ограничения по времени, купившие сейчас - смогут обновляться без ограничений.

Разработчик - участник нашего сообщества Дмитрий Денисов (@codersite).

Страница расширения
Демо

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

Varyag0488

  • Захожу иногда
  • 68
  • 1 / 0
Здравствуйте форумчане!

Тема сто раз обсуждалась понятное дело. Но хочу поделиться тем что уже есть и тем что хочу сделать. (первое полезно для новичков, второе и для меня) - как говорится - авось кому пригодится

Ситуация такая: есть сайт в инете, возникла проблема в долгой загрузке - думаю не у меня одного такая проблема  ^-^

Начал я оптимизировать. Несколько статистики: запрашивалось файлов 48, сейчас 26, загрузка сайта значительно ускорилась. Кто понимает в количестве загружаемых файлов, в важности этого - знает, а кто не знает сейчас объясню: браузеры одновременно моут загружать 2 файла (как правило) т.е. представьте что браузер будет грузить 48 файлов - сколько ему надо сделать зпросов - это очень долго, а для сайта это плохо.

Еще включил кеш в Joomla, установил: webo site speed up, включил gzip сжатие - всеравно недостаточно.

если Вы собираетесь оптимизировать то найдите хороший сайт в интеренете который проверит скорость загрузки вашего сайта, а также напишет статистику и что грузится - это важно, к тем более вы сможете проверить прогресс.

Итак дальше: под прессинг попал мой шаблон - т.к. мне не требовался вывод определнных позиций для модулей, то я удалил все эти позиции (параллельно с ними удалил ненужный CSS)

Следующий попал CSS: просмотр HTML-кода, который генерировала Joomla выявил пару лишних CSS файлов (которые рекомендуют подключать все инструкции по созданию шаблона) как вы догадались это system.css и general.css. ВЫ уже знаете что браузер качает два файла одновременно- а эти CSS тоже качает. Решение: объединить их с файлом вашего шаблона - минус 2 запроса.

во время объединения файлов вы увидите, что в файле general.css есть куча строк вида background: url(../images/j_button2_right.png) 100% 0 no-repeat;. Честно не знаю зачем они нужны, но все эти изображения, как я понял, подгружает броузер (так и показывал мой сайт проверки загрузки сайта) - Решение: удалить все эти строки + удалить все стили, в которых эта строка одна - так мы получим минус 10 запросов (или больше) + уменьшение CSS файла в размере. Здесь и мне интересно: кто скажет зачем они нужны эти картинки?

Следующая оптимизация CSS: убрать все пробелы в шаблоне (имею в виду в CSS файле), отступы - так Вы уменьшите вес файла + по максимуму сократить описание, например заменить вот такую штуку: /*--------------- system ----------------------------*/ на /* system */ или просто их поудалять если вы хорошо знаете свой шаблон. Например мне такая чистка помогла снизить шаблон на байт 500 (а может и больше). Кроме того, по мере приобретения опыта в CSS я перебрал CSS своего шаблона (он один без генерал и систем весил 8 кб). сократил его до ! 4 кб! подключил генерал и систем в него, весит файл сейчас 6,5 кб - я офигел  ;D

Таже процедура полезна для index.php шаблона (у меня этот файл после обработки весит 1,2 кб ;D)

Такс, ну про ручной труд я закончил, хотя нет - если Вы хотите (есть время) и если вы используете редактор TinyMCE -то просмотря HTML код вы обнаружите кучу лишнего HTML кода, который он создает - ужос! :( Я создал свои стили оформления и руками все делаю в HTML - так сокращаю код, хотя не на много.

НУ свои наработки высказал, теперь перейдем к теме:

кто знает какой PHP код генерирует строка <jdoc:include type="head" />, как его можно уменьшить (убрать лишнее). кароче записать этот ПХП код в шаблон, но без лишнего

И второе: каким образом Joomla! прикрепляет JS к страницам, какие JS файлы, и как избавиться отлишних файлов? (У меня в кеше они весят в куче порядка 100 кб - ужас)


Заранее благодарю  ^-^
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Цитировать
кто знает какой PHP код генерирует строка <jdoc:include type="head" />, как его можно уменьшить (убрать лишнее). кароче записать этот ПХП код в шаблон, но без лишнего
libraries\joomla\document\html\renderer\head.php
Цитировать
И второе: каким образом Joomla! прикрепляет JS к страницам, какие JS файлы, и как избавиться отлишних файлов? (У меня в кеше они весят в куче порядка 100 кб - ужас) 
Обычно крепятся по умолчанию файлы mootools\caption и зачастую они совершенно не нужны http://joomlaforum.ru/index.php/topic,62089.0.html
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Varyag0488

  • Захожу иногда
  • 68
  • 1 / 0
beliyadm, благодарю, поработал в head.php отключил мутулс и кэптион таким кодом:

      // Generate script file links
      foreach ($document->_scripts as $strSrc => $strType) {

         if (($strSrc == '/media/system/js/mootools.js') or ($strSrc == '/media/system/js/caption.js')){
            } else {
         $strHtml .= $tab.'<script type="'.$strType.'" src="'.$strSrc.'"></script>'.$lnEnd;
                  }
      }

beliyadm, не знаешь использует ли форум кунена эти скрипты?

И вопрос 2, как мне можно подключить этот файл (head.phph) непосредственно в мой index.php ?  

вот блин, даже не обратил внимание что админ панель использует мутулс и крепит через этот файл к себе, нужно как-то придумать чтобы только в админке цеплялось
« Последнее редактирование: 15.02.2010, 14:33:55 от Varyag0488 »
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
beliyadm, не знаешь использует ли форум кунена эти скрипты?
не знаю
По поводу отключения мутулза - я дал ссылку как убрать на уровне шаблона без вмешательства в ядро
И вопрос 2, как мне можно подключить этот файл (head.phph) непосредственно в мой index.php ? 
Этот файл и все прочие обрабатывается конструкцией  <jdoc:include type="head" />. В том числе подключение файлов в хедер\изменение титлов\ключевых слов\описания в стандартных и сторонних расширениях, потому из шаблона убирать эту строку нельзя
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Varyag0488

  • Захожу иногда
  • 68
  • 1 / 0
beliyadm, все понял, значит копаем в другом направлении:)

попробовал вставить тот код по ссылке http://joomlaforum.ru/index.php/topic,62089.0.html, куда не лепил выдает ошибку 500, файл head.php восстановил не пойму что хочет
« Последнее редактирование: 15.02.2010, 14:47:21 от Varyag0488 »
*

marvic

  • Новичок
  • 8
  • 2 / 0
Кстати убрать mootools.js и caption.js без редактирования файлов ядра можно добавив в шаблоне в файле index.php в конец следующий код:

      $headerstuff=$this->getHeadData();
      reset($headerstuff['scripts']);
      foreach($headerstuff['scripts'] as $key=>$value){
        unset($headerstuff['scripts'][$key]);
      }      
      $this->setHeadData($headerstuff);
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Кстати убрать mootools.js и caption.js без редактирования файлов ядра можно добавив в шаблоне в файле index.php в конец следующий код:

      $headerstuff=$this->getHeadData();
      reset($headerstuff['scripts']);
      foreach($headerstuff['scripts'] as $key=>$value){
        unset($headerstuff['scripts'][$key]);
      }      
      $this->setHeadData($headerstuff);
после таких манипуляций боюсь не только уберутся mootools.js и caption.js, а и все остальные JS, которые могут подключаться сторонними расширениями :)
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Код: php
$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';
unset($headerstuff['scripts'][$key1], $headerstuff['scripts'][$key2]);
$this->setHeadData($headerstuff);
}
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Varyag0488

  • Захожу иногда
  • 68
  • 1 / 0
Ура заработало! не знаю почему не работало!! beliyadm , благодарю!

во время объединения файлов вы увидите, что в файле general.css есть куча строк вида background: url(../images/j_button2_right.png) 100% 0 no-repeat;. Честно не знаю зачем они нужны, но все эти изображения, как я понял, подгружает броузер (так и показывал мой сайт проверки загрузки сайта) - Решение: удалить все эти строки + удалить все стили, в которых эта строка одна - так мы получим минус 10 запросов (или больше) + уменьшение CSS файла в размере. Здесь и мне интересно: кто скажет зачем они нужны эти картинки?

Это кнопки редактора статьи, если заходить на сайт под администратором или автором. Я так понял что для обычных пользователей они не нужны.
*

neket

  • Захожу иногда
  • 61
  • 11 / 1
А каким образом в файле /libraries/joomla/document/html/renderer/header.php вставить свой JS-файл в этот код ?
Код
		// Generate script file links
foreach ($document->_scripts as $strSrc => $strType) {
$strHtml .= $tab.'<script type="'.$strType.'" src="'.$strSrc.'"></script>'.$lnEnd;

}
*

MuraDweb

  • Захожу иногда
  • 267
  • 124 / 1
neket, не надо трогать файл ядра.
Подключить можно через index.php шаблона, к примеру если скрипт расположен в папке js шаблона, то:
Код: php
<?php $doc =&JFactory::getDocument();
         $doc->addScript($this->baseurl.'/templates/'.$this->template.'/js/moiscript.js');
?>
Яндекс.Деньги: 41001423568435
Webmoney: R 377548789269 | Z 421465848009 | E 126339514076 | U 413960261029
-
А, Вы читали ? Правила форума | FAQ J! 1.5 | FAQ J! 1.0
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
или так
Код: php
<?php JHTML::_('script', 'moiscript.js', $this->baseurl.'/templates/'.$this->template.'/js/', false  ); ?>
*

Doc

  • Захожу иногда
  • 456
  • 17 / 0
Цитировать
во время объединения файлов вы увидите, что в файле general.css есть куча строк вида background: url(../images/j_button2_right.png) 100% 0 no-repeat;. Честно не знаю зачем они нужны, но все эти изображения, как я понял, подгружает броузер (так и показывал мой сайт проверки загрузки сайта) - Решение:  удалить все эти строки + удалить все стили, в которых эта строка одна - так мы получим минус 10 запросов (или больше) + уменьшение CSS файла в размере. Здесь и мне интересно: кто скажет зачем они нужны эти картинки?
А можно поточней, что и где удалить нужно ?
А то у меня требовало j_button2_right.png, которого нет в папке, а я туда его добавил
У меня выдает 29 запросов, думаю может как уменьшить, раз вы пишите что на 10 меньше стало
*

roga_i_kopita

  • Осваиваюсь на форуме
  • 32
  • 4 / 0
Давно мучаюсь с этой задачей. Мне не нравится стандартное расположение тегов и ссылок в head.
Удалось переписать весь head под себя в шаблоне. При этом убрал из шаблона строку <jdoc:include type="head" />.
Но, при подключении сторонних модулей, как и ожидал, появились "нюансы".  ;D

Покажу на примере подключения файлов скриптов. Для этого использую в head следующую конструкцию (взял и немного переделал под себя из файла libraries\joomla\document\html\renderer\head.php):
Код
$static_domain = preg_replace('/\/$/','',str_replace('www','static',JURI::base())); // тут для статичного контента меняю адрес на другой домен
foreach ($this->_scripts as $strSrc => $strAttr) {
$mime = (!is_null($strAttr['mime']))? ' type="'.$strAttr['mime'].'"' : '';
$defer = ($strAttr['defer'])? ' defer="defer"' : '';
$async = ($strAttr['async'])? ' async="async"' : '';
echo '<script src="'.$static_domain.$strSrc.'"'.$mime.$defer.$async.'></script>'."\n";
}

В итоге нормально подключаются стандартные скрипты Joomla. В исходном коде страницы в нужном месте появляются ссылки:
Код
<script src="http://static.mydomain.com/media/system/js/core.js" type="text/javascript"></script>
<script src="http://static.mydomain.com/media/system/js/mootools-core.js" type="text/javascript"></script>
<script src="http://static.mydomain.com/media/system/js/caption.js" type="text/javascript"></script>

Аналогичным образом работают links. При включении в админке "отображать ссылки на rss-ленту" в исходном коде в head появляются соответствующие ссылки *.feed...
Для ссылок использую в файле шаблона конструкцию (тоже слегка модифицированную из файла libraries\joomla\document\html\renderer\head.php):
Код
foreach ($this->_links as $link => $linkAtrr) {
$attribs = ($linkAtrr['attribs'])? ' '.JArrayHelper::toString($linkAtrr['attribs']) : '';
echo '<link href="'.$link.'" '.$linkAtrr['relType'].'="'.$linkAtrr['relation'].'"'.$attribs.' />'."\n";
}

В исходном коде страницы появляются ожидаемые ссылки:
Код
<link href="/power/heat-guns/gas-heat-guns-direct-heating.feed?type=rss" rel="alternate" type="application/rss+xml" title="RSS 2.0" />
<link href="/power/heat-guns/gas-heat-guns-direct-heating.feed?type=atom" rel="alternate" type="application/atom+xml" title="Atom 1.0" />

Я был безмерно счастлив. В принципе, всё работает. Ссылки, когда надо подключаются, когда надо - отключаются.
Но потребовалось установить модуль RokTabs. И вот тут столкнулся с неприятностью.

Сам модуль подключает свои файлы в head следующим образом:
Код
$document =& JFactory::getDocument();
$path = JPATH_SITE . '/modules/mod_roktabs/tmpl/';
$uri_path = JURI::Root(true).'/modules/mod_roktabs/tmpl/';
$style_css = $path . $style . '/roktabs.css';
$css = $uri_path . $style . '/roktabs.css';

if (file_exists($style_css)) $document->addStyleSheet($css);
if (!defined('ROKTABS_JS')) {
$document->addScript($uri_path . 'roktabs'.modRokTabsHelper::_getJSVersion().'.js');
define('ROKTABS_JS',1);

Соответственно, я ожидаю, что новые файлы от стороннего модуля будут помещены в массив данных head, вместе со стандартными файлами mootools. И оттуда (из массива) я их выберу и включу в файле шаблона. Но там их нет!
Проверил, поместив следующий код в файл index.php шаблона:
Код
<?php $head = $this->getHeadData();
$output = print_r ($head, true);
echo $output; ?></p>

В результате при обновлении страницы с опубликованным модулем RokTabs получил содержимое всего массива head в следующем виде:
Код
Array ( 
[title] => Главная
[description] => Тут выводится описание (description)
[link] =>
[metaTags] => Array (
[http-equiv] => Array (
[content-type] => text/html
)
[standard] => Array (
[robots] => index, follow
[keywords] => Тут отображаются мои ключевые слова
[rights] =>
)
)
[links] => Array ( )
[styleSheets] => Array ( )
[style] => Array ( )
[scripts] => Array (
[/media/system/js/core.js] => Array (
[mime] => text/javascript
[defer] =>
[async] =>
)
[/media/system/js/mootools-core.js] => Array (
[mime] => text/javascript
[defer] =>
[async] =>
)
[/media/system/js/caption.js] => Array (
[mime] => text/javascript
[defer] =>
[async] =>
)
)
[script] => Array ( )
[custom] => Array ( )
)

Я привёл вывод содержимого массива head при отображении главной страницы сайта, с включенным модулем RokTabs (модуль опубликован на главной странице и на всех остальных).
Я констатирую, что в исходном коде страницы при использовании в head стандарной строки <jdoc:include type="head" /> скрипты и стили от модуля RokTabs присутствуют вместе со скриптами mootools.js.
Также из вывода массива видно, что скрипты в массиве head присутствуют. НО ТОЛЬКО СТАНДАРТНЫЕ (mootools и т.п.). Сторонних скриптов (от модуля RokTabs) там нет! Они есть в исходном коде страницы, но их нет в массиве head! Вопрос: почему? Куда тогда помещаются скрипты и файлы стилей сторонних модулей, если не в массив head? Как в таком случае их перехватить и включить в head в файле шаблона? К переменной $buffer обращаться чтоли? Или как?

Читал по этому поводу документацию по ссылке: _http://docs.joomla.org/JDocument/addScript
Там, в частности, сказано:
Цитировать
To add a link to some JavaScript code at a specific URL, you could use:

$doc =& JFactory::getDocument();
$doc->addScript("http://www.example.com/js/myscript.js");

How this is rendered depends on the document type. If the document type is HTML then this code will produce following link in the HTML HEAD section:
<script type="text/javascript" src="http://www.example.com/js/myscript.js"></script>

Как там написано, так скрипты от модуля RokTabs и подключаются. Но почему в массиве-то их нет, а на HTML странице они есть? Откуда они берутся?
Если эту проблему решить, то head можно будет генерировать в файле шаблона самостоятельно, и размещать теги в нужной последовательности.
Кстати, скрипты я вообще подключаю в самом конце страницы, перед закрывающим тэгом </body>.
« Последнее редактирование: 04.11.2011, 23:57:00 от roga_i_kopita »
*

olejenya

  • Захожу иногда
  • 218
  • 3 / 0
Привет.А не подскажите как подключать скрипт в модуле, но что бы он выводился не в ХЕДЕ, а перед закрывающим </body>??
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Привет.А не подскажите как подключать скрипт в модуле, но что бы он выводился не в ХЕДЕ, а перед закрывающим </body>??
в модуле никак
в плагине можно, после рендеринга страницы поставить куда угодно
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Цитировать
в модуле никак
динамически подгружать с помощью js ;D
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Маленький пример. И когда они уже перепишут свою функцию добавления скриптов. Вот интересное решение
Код: javascript
var js = {
    load: function (src, callback) {
        var script = document.createElement('script'), loaded;
        script.src = src;
        script.async = true;
        if (callback) {
            script.onreadystatechange = script.onload = function () {
                if (!loaded) {
                    callback();
                }
                loaded = true;
            };
        }
        document.getElementsByTagName('body')[0].appendChild(script);
    }
};
js.load('//ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js', function (jQuery) {
//работаем
});

var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-00000000-1']);
_gaq.push(['_trackPageview']);
js.load('http://www.google-analytics.com/ga.js');
js.load('myscript.js');
*

olejenya

  • Захожу иногда
  • 218
  • 3 / 0
Код: php
$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';
unset($headerstuff['scripts'][$key1], $headerstuff['scripts'][$key2]);
$this->setHeadData($headerstuff);
}
Привет, а как такое же действие сделать в Joomla 3.Этот код мне не помог((
*

Kote_2228

  • Захожу иногда
  • 65
  • 0 / 0
  • Вера, которую не разделяет никто, называется шизой
Привет, а как такое же действие сделать в Joomla 3.Этот код мне не помог((


на 3.0 мне помог.
*

olejenya

  • Захожу иногда
  • 218
  • 3 / 0

на 3.0 мне помог.
Я  , дурик, подумал что этот код удаляет все скрипты, которые я пропишу))Потом псомтрел что тех скриптов, которые мне надо удалиить, не было в масиве. Решением было установить плагин, который это может делать))
*

ankagiz

  • Новичок
  • 3
  • 0 / 0
Подскажите, пожалуйста, реально ли вынести ВСЕ CSS и js сайта в 2 файла?
Действующий интернет-магазин на базе Joomla 1.5
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Подскажите, пожалуйста, реально ли вынести ВСЕ CSS и js сайта в 2 файла?
Действующий интернет-магазин на базе Joomla 1.5
да
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Где Как удалить атрибуты "type="text/javascript"?

Автор safronoff343

Ответов: 9
Просмотров: 8232
Последний ответ 28.06.2018, 12:08:17
от stydent
Как подключить js не в <head> а в конец страницы.

Автор vanya829

Ответов: 25
Просмотров: 18885
Последний ответ 18.06.2017, 16:37:11
от skytype
Убираем пустые поля в head

Автор Aiden

Ответов: 11
Просмотров: 2627
Последний ответ 17.03.2016, 08:34:31
от flyingspook
Как правильно внедрить подгрузку скрипта через include?

Автор Zegeberg

Ответов: 5
Просмотров: 1856
Последний ответ 25.07.2015, 13:45:57
от Zegeberg
Странные дубли (Страницы недопустимого Content-type)

Автор Spacegeorge

Ответов: 4
Просмотров: 2322
Последний ответ 22.10.2013, 06:55:23
от Spacegeorge