Новости Joomla

Совет по Joomla: несколько значений по умолчанию в XML-формах для стандартных полей типа list

👩‍💻 Совет по Joomla: несколько значений по умолчанию в XML-формах для стандартных полей типа list.При работе над плагином возникла необходимость указать стандартный набор из нескольких элементов стандартного поля списка. И хотелось указать их в стандартном же атрибуте default для полей. Когда это нужно?Когда Ваши пользователи устанавливают плагин и НЕ заходят в настройки - в коде вы можете использовать значения по умолчанию с помощью класса Registry (писал об этом ранее) и всегда быть уверенным, что хоть какие-то жизненно необходимые параметры к вам придут всегда. 🧐 Но как сделать то же самое для интерфейса админки?Пользователя нужно направлять, предлагать очевидный работоспособный сценарий для начала, а дальше он уже сам разберется. Когда человек заходит в параметры свежеустановленного плагина в Form ещё нет данных и параметры по умолчанию выставляются из атрибутов default в xml-полях.
<field name="showdesc" type="radio"                       label="PLG_CFI_PARAM_SHOWDESC"                       class="btn-group btn-group-yesno"                       default="1">                    <option value="0">JNO</option>                    <option value="1">JYES</option>                </field>
Здесь по умолчанию будет включено "Да". И если пользователь не переключит параметр, то при сохранении мы ожидаемо получим "да" в params плагина.Для поля списков type=&quot;list&quot; можно указать значение по умолчанию и многие знают, что его можно указать только одно.
<field type="list"                       name="article_fields"                       label="article_fields"                       description="article_fields_desc"                       layout="joomla.form.field.list-fancy-select"                       multiple="true"                       default="id"                >                    <option value="id">id</option>                    <option value="title">title</option>                    <option value="alias">alias</option>                    <option value="introtext">introtext</option>                    <option value="fulltext">fulltext</option>                    <option value="state">state</option></field>
Но у нас поле с множественным выбором (атрибут multiple) и хотелось бы указать несколько значений по умолчанию...Оказывается, так можно сделать. Для этого в атрибуте default нужно указать json с нужными параметрами в виде {int}key : {string} value.Например, default='{"0":"id","1":"title"}'.
<field type="list"                       name="article_fields"                       label="article_fields"                       description="article_fields_desc"                       layout="joomla.form.field.list-fancy-select"                       multiple="true"                       default='{"0":"id","1":"title"}'                >                    <option value="id">id</option>                    <option value="title">title</option>                    <option value="alias">alias</option>                    <option value="introtext">introtext</option>                    <option value="fulltext">fulltext</option>                    <option value="state">state</option></field>
⚠️ Обратите внимание на кавычки! Поскольку json_decode не понимает одинарные кавычки собственно json нужно писать с двойными, а значение для атрибута default писать в одинарные.🙏 За подсказанное решение огромное спасибо участникам нашего сообщества - разработчикам Дмитрию Васюкову (@fictionlabs) и Игорю Бердичевскому (@septdir).@joomlafeed#joomla #разработка #webdev #development

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

yuri-it

  • Давно я тут
  • 994
  • 44 / 3
  • Быстрый хостинг https://jehost.ru
Re: Оптимизация Joomla мой FAQ
« Ответ #30 : 06.04.2010, 22:32:49 »
В студию список основных ресурсов, посвященных Joomla! Любопытно взглянуть.
тож оч.интересно.
По-настоящему быстрый хостинг для Joomla : https://jehost.ru
Отзывы: http://joomlaforum.ru/index.php/topic,109288.0.html
Отзывы по хостингу http://hosting101.ru/jehost.ru
*

Beer

  • Завсегдатай
  • 1103
  • 43 / 1
  • БИРУ - БИР!
Re: Оптимизация Joomla мой FAQ
« Ответ #31 : 08.04.2010, 00:19:45 »
Стал смотреть вес страницы - увидел mootools.js 72кб, поиском пригреб сюда - отключил -72кб, ::) на главной у меня нету JComments, впрочем как и на некоторых других страницах, однако jcomment.js 27кб грузится ...
Так и должно быть?
*

yuri-it

  • Давно я тут
  • 994
  • 44 / 3
  • Быстрый хостинг https://jehost.ru
Re: Оптимизация Joomla мой FAQ
« Ответ #32 : 08.04.2010, 00:22:15 »
Стал смотреть вес страницы - увидел mootools.js 72кб, поиском пригреб сюда - отключил -72кб, ::) на главной у меня нету JComments, впрочем как и на некоторых других страницах, однако jcomment.js 27кб грузится ...
Так и должно быть?
все ненужное отрубаем нафиг.
По-настоящему быстрый хостинг для Joomla : https://jehost.ru
Отзывы: http://joomlaforum.ru/index.php/topic,109288.0.html
Отзывы по хостингу http://hosting101.ru/jehost.ru
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Re: Оптимизация Joomla мой FAQ
« Ответ #33 : 08.04.2010, 00:33:40 »
Стал смотреть вес страницы - увидел mootools.js 72кб, поиском пригреб сюда - отключил -72кб, ::) на главной у меня нету JComments, впрочем как и на некоторых других страницах, однако jcomment.js 27кб грузится ...
Так и должно быть?
Да, так и должно, видимо задумано так.
Могу сказать что скрипты в нем подключаются системным плагином, и условие нужно прописывать в нем, что бы они отрубались ;)
*

Beer

  • Завсегдатай
  • 1103
  • 43 / 1
  • БИРУ - БИР!
Re: Оптимизация Joomla мой FAQ
« Ответ #34 : 08.04.2010, 00:37:44 »
 Т.е. это надо к Smartу звонить? Все же 27кб нехило лишних грузить без надобности...
*

yuri-it

  • Давно я тут
  • 994
  • 44 / 3
  • Быстрый хостинг https://jehost.ru
Re: Оптимизация Joomla мой FAQ
« Ответ #35 : 08.04.2010, 00:42:45 »
Т.е. это надо к Smartу звонить? Все же 27кб нехило лишних грузить без надобности...
jcomment.js нет в стандартной сборке Joomla, сначала узнать кто грузит скрипт(если нет джекоментс), а потом уже и решать убирать или нет.
По-настоящему быстрый хостинг для Joomla : https://jehost.ru
Отзывы: http://joomlaforum.ru/index.php/topic,109288.0.html
Отзывы по хостингу http://hosting101.ru/jehost.ru
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Re: Оптимизация Joomla мой FAQ
« Ответ #36 : 08.04.2010, 00:46:02 »
Т.е. это надо к Smartу звонить? Все же 27кб нехило лишних грузить без надобности...
можно и позвонить :)
я, просто писал как-то об этом уже, поэтому и ответил здесь.
http://joomlaforum.ru/index.php/topic,108248.0.html
Лень самому было разбираться, а пришлось :)
*

Beer

  • Завсегдатай
  • 1103
  • 43 / 1
  • БИРУ - БИР!
Re: Оптимизация Joomla мой FAQ
« Ответ #37 : 08.04.2010, 01:56:53 »
Вот это еще для админки грузится на фронт:
<link rel="stylesheet" href="templates/system/css/system.css" type="text/css" />
Можно либо убить вообще, либо наверное добавить в стиль шаблона, если нету способа отключить для фронта. Так?
*

TwistedAndy

  • Захожу иногда
  • 84
  • 23 / 1
Re: Оптимизация Joomla мой FAQ
« Ответ #38 : 08.04.2010, 06:04:53 »
Опять об оптимизации заговорили. Ну что ж. Изложу свои советы:

1) CSS спрайты. Заниматься ими нужно после верстки шаблона.

2) gzip-сжатие. Встроенное сжатие Joomla работает только для контента да и реализовано на PHP. Гораздо лучше, чтобы этим занимался непосредственно Apache или еще лучше nginx, который сидит перед апачем как реверс-прокси. Сжимать нужно лишь контент, CSS и JS файлы.

3) включить expires-заголовки. Это невероятно полезная штука, которая самым непосредственным образом увеличивает скорость загрузки страничек за счет того, что многие тяжелые скрипты, CSS-ки и картинки кешируются браузером и не загружаются по второму разу. Если стоит nginx как фронтенд, то прописывать нужно в настройках, если апач, то сначала нужно включить mod_expires, а потом уж добавлять в конфиг апача или в .htaccess строки

Код
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 7 days"
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType text/css "access plus 1 month"
ExpiresByType text/javascript "access plus 1 week"
ExpiresByType application/x-javascript "access plus 1 week"
</IfModule>

4) всякие там mootols.js, caption.js и прочие отключаются довольно просто. Нужно в заголовке шаблона добавить такой код:

Код
$headerstuff = $this->getHeadData();

  $scripts = $headerstuff['scripts'];

  $headerstuff['scripts'] = array();

  foreach($scripts as $url=>$type) {
    if (strpos($url, 'js/mootools.js') === false && strpos($url, 'js/caption.js') === false) {
      $headerstuff['scripts'][$url] = $type;
    }
}
$this->setHeadData($headerstuff);

Всякие там лишние CSS файлы лучше с заголовка убрать

5) поставить наконец nginx как реверс-прокси для апача. Также нужно настроить, чтобы он отдавал картинки, CSS-ки, скрипты и прочую статику. Он же может заниматься установкой Expires-заголовков для статики и сжатием

6) почистить код шаблона. Здесь уже нужно лезть руками в код. Если нет хотя бы базовых знаний PHP, то лучше сюда не лезть.

7) включить кеширование. Если есть на сервере PHP-акселераторы вроде APC, то указать их как обработчик кеша. По-умолчанию там файлы стоят. Нагрузка на процессор падает в несколько раз. По потреблению памяти - примерно то же самое.
« Последнее редактирование: 12.11.2010, 13:23:33 от _ib_ »
*

yuri-it

  • Давно я тут
  • 994
  • 44 / 3
  • Быстрый хостинг https://jehost.ru
Re: Оптимизация Joomla мой FAQ
« Ответ #39 : 08.04.2010, 11:27:08 »
Что это все примерно может дать смотрите на примере данного сайта: Все для ноутбуков
В целом хорошо, но на моем 5 мбит, грузится 2-3 секунды.
По-настоящему быстрый хостинг для Joomla : https://jehost.ru
Отзывы: http://joomlaforum.ru/index.php/topic,109288.0.html
Отзывы по хостингу http://hosting101.ru/jehost.ru
*

Beer

  • Завсегдатай
  • 1103
  • 43 / 1
  • БИРУ - БИР!
Re: Оптимизация Joomla мой FAQ
« Ответ #40 : 08.04.2010, 11:27:47 »
Страничка 191кб, у меня - 154кб, но выводит дольше  :(
*

TwistedAndy

  • Захожу иногда
  • 84
  • 23 / 1
Re: Оптимизация Joomla мой FAQ
« Ответ #41 : 08.04.2010, 13:28:05 »
В целом хорошо, но на моем 5 мбит, грузится 2-3 секунды.
А что там так долго грузится? Можно скриншот с вкладки сеть FireBug'а?
*

ChaosHead

  • Гуру
  • 5242
  • 451 / 13
Re: Оптимизация Joomla мой FAQ
« Ответ #42 : 08.04.2010, 18:20:14 »
Может ли быть такое, что из-за
Код
ExpiresByType text/javascript "access plus 1 week"
неправильно стали учитываться показы Google Ad seanse? Они там тоже text/javascript.
Я так понимаю эти баннеры не должны кешироваться?
*

Freeman82

  • Захожу иногда
  • 61
  • 7 / 0
Re: Оптимизация Joomla мой FAQ
« Ответ #43 : 26.04.2010, 22:25:50 »
Привет!
Очень нужна помощь по оптимизации загрузки сайта.
Сейчас результаты следующие

Не могли бы вы подробней рассказать как оптимизировать java и СSS image.
*

Beer

  • Завсегдатай
  • 1103
  • 43 / 1
  • БИРУ - БИР!
Re: Оптимизация Joomla мой FAQ
« Ответ #44 : 27.04.2010, 01:08:35 »
 Тебе сюда: http://webo.in/articles/habrahabr/02-delay-loading-stylesheets/

 Мотулс пришлось включить, т.к. отдельно его не могу отрубить - у меня шаблон сейрета плывет. Причем нужен не мотулс, а только второй скрипт:
<script type="text/javascript" src="/media/system/js/caption.js"></script>
Как оставить грузиться только его?
*

jem777

  • Завсегдатай
  • 1666
  • 119 / 2
Re: Оптимизация Joomla мой FAQ
« Ответ #45 : 27.04.2010, 02:30:29 »
Код
<?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);
}
?>

Здесь можно закомментировать нужный скрипт. В вашем случае строку:
Код
$key2 = JURI::base(true). '/media/system/js/caption.js';

Код вставить в файл index.php шаблона сайта, где нибудь в начале.
« Последнее редактирование: 27.04.2010, 02:33:58 от jem777 »
*

Beer

  • Завсегдатай
  • 1103
  • 43 / 1
  • БИРУ - БИР!
Re: Оптимизация Joomla мой FAQ
« Ответ #46 : 27.04.2010, 02:43:28 »
Так:
Код
<?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);
}
?>

В результате:
Код
  <script type="text/javascript" src="/media/system/js/mootools.js"></script>
  <script type="text/javascript" src="/media/system/js/caption.js"></script>
Т.е. - нифига нету результата.  :(
*

jem777

  • Завсегдатай
  • 1666
  • 119 / 2
Re: Оптимизация Joomla мой FAQ
« Ответ #47 : 27.04.2010, 10:07:53 »
Цитировать
вставлять в самое начала файла index.php вашего шаблона

т.е. до кода вывода Head.
И этот хак для гостей а не для юзеров. Можете попытаться изменить его, чтобы он действовал и на юзеров и на гостей. Там же есть строка 'guest'. Сейчас под рукой сайта нет, чтобы проверить.
*

Beer

  • Завсегдатай
  • 1103
  • 43 / 1
  • БИРУ - БИР!
Re: Оптимизация Joomla мой FAQ
« Ответ #48 : 27.04.2010, 11:34:42 »
Работает. Спасиб.
Надо было до <head> код ставить. Отрубает мотулз, но шаблон Сейрет тогда глючит .
*

jem777

  • Завсегдатай
  • 1666
  • 119 / 2
Re: Оптимизация Joomla мой FAQ
« Ответ #49 : 27.04.2010, 12:16:28 »
Многие шаблоны и компоненты, а также модули используют mootools. Так что избавиться от него полностью не совсем удается. Лучше сжать средствами сервера. Или с помощью специальных компонентов и плагинов, осуществляющих сжатие Java-скриптов и CSS. Их сейчас кажется немало.

Можете попробовать вставить в конце .htaccess эти строки и посмотреть - реализует ли ваш сервер сжатие:

Код
<FilesMatch ".(js|css)$">
SetOutputFilter DEFLATE
</FilesMatch>

Суммарный обьем страницы может сильно уменьшится при этом - что хорошо. Если нет - то можно это проделать с помощью специальных компонентов или плагинов.
« Последнее редактирование: 27.04.2010, 12:21:50 от jem777 »
*

Beer

  • Завсегдатай
  • 1103
  • 43 / 1
  • БИРУ - БИР!
Re: Оптимизация Joomla мой FAQ
« Ответ #50 : 27.04.2010, 12:33:49 »
Я его уже оптимизировал - 72кб он стал, Highslade сжал и урезал  до 7кб, все равно много.
там описана метода:

Если что-то осталось неясным после прочтения последнего раздела, то алгоритм действий должен быть следующим (большое спасибо godfather за помощь в формулировке):
Добавляем описанные выше инструкции в конфигурационный файл Apache или .htaccess
Пакуем файлы (с помощью 7-zip или gzip) и кладем на место обычных (расширение у файлов должно остаться прежним, .css или .js). Например, вы берете файл anyname.css, пакуете его 7-zip, у вас получается файл anyname.css.gz, переименовываем его обратно в anyname.css и заливаем на сервер. Для gzip все немного проще:01
02
03
gzip -c -9 -n anyname.css > anyname.css.gz
mv anyname.css anyname.nogzip.css
mv anyname.css.gz anyname.css
01
02
03
gzip -c -9 -n anyname.css > anyname.css.gz
mv anyname.css anyname.nogzip.css
mv anyname.css.gz anyname.css
Рядом с пожатыми файлами кладутся файлы с расширением nogzip.css или nogzip.js, которые содержат неархивированные копии. Например, после заливки сжатого файла anyname.css, вы создаете на сервере еще один файл anyname.nogzip.css, который является копией несжатого файла. Для gzip это копирование уже производится чуть выше второй строкой в листинге.
*

via82

  • Осваиваюсь на форуме
  • 42
  • 1 / 0
Re: Оптимизация Joomla мой FAQ
« Ответ #51 : 13.05.2010, 14:43:01 »
Опять об оптимизации заговорили. Ну что ж. Изложу свои советы:

2) gzip-сжатие. Встроенное сжатие Joomla работает только для контента да и реализовано на PHP. Гораздо лучше, чтобы этим занимался непосредственно Apache или еще лучше nginx, который сидит перед апачем как реверс-прокси. Сжимать нужно лишь контент, CSS и JS файлы.

Подскажите как реализовать gzip-сжатие по мимо встроенного сжатия Joomla.
*

jem777

  • Завсегдатай
  • 1666
  • 119 / 2
Re: Оптимизация Joomla мой FAQ
« Ответ #52 : 13.05.2010, 15:18:11 »
Выше есть код. Попробуйте вставить в .htaccess
*

via82

  • Осваиваюсь на форуме
  • 42
  • 1 / 0
Re: Оптимизация Joomla мой FAQ
« Ответ #53 : 14.05.2010, 10:33:49 »
Выше есть код. Попробуйте вставить в .htaccess
Если Вы имеете в виду этот
Код
<FilesMatch ".(js|css)$">
SetOutputFilter DEFLATE
</FilesMatch>
то уже пробовал.

Сервер выдает ошибку с кодом 500
*

jem777

  • Завсегдатай
  • 1666
  • 119 / 2
Re: Оптимизация Joomla мой FAQ
« Ответ #54 : 14.05.2010, 12:24:19 »
Значит скорее всего этот модуль у вас отключен. Хотя если он отключен - то обычно не бывает никаких изменеий.
Попробуйте создать пустой файл .htaccess (именно так, точка в начале имени файла и сам файл без расширения) и вписать в него эти строки.
Или в PHPInfo в админке проверьте apache2handler - Loaded Modules - должна быть строка mod_deflate. Если его там нет - то значит на вашем сервере он не загружен.

Тогда можно сжимать только при помощи плагинов типа CssJsCompress.
« Последнее редактирование: 14.05.2010, 12:32:46 от jem777 »
*

via82

  • Осваиваюсь на форуме
  • 42
  • 1 / 0
Re: Оптимизация Joomla мой FAQ
« Ответ #55 : 17.05.2010, 06:46:34 »
Цитировать
Попробуйте создать пустой файл .htaccess (именно так, точка в начале имени файла и сам файл без расширения) и вписать в него эти строки.
Файл уже есть. Я же писал в предыдущем посте что пробовал
Код
<FilesMatch ".(js|css)$">
SetOutputFilter DEFLATE
</FilesMatch>
Цитировать
PHPInfo в админке проверьте apache2handler - Loaded Modules - должна быть строка mod_deflate
Нашел Stream Filter support - zlib.inflate, zlib.deflate
*

jem777

  • Завсегдатай
  • 1666
  • 119 / 2
Re: Оптимизация Joomla мой FAQ
« Ответ #56 : 17.05.2010, 07:54:48 »
Ну тогда проверьте в Firefox+YSlow есть сжатие или нет?
*

via82

  • Осваиваюсь на форуме
  • 42
  • 1 / 0
Re: Оптимизация Joomla мой FAQ
« Ответ #57 : 17.05.2010, 08:26:02 »
в Firefox+YSlow
пишет
Grade F on Compress components with gzip
*

jem777

  • Завсегдатай
  • 1666
  • 119 / 2
Re: Оптимизация Joomla мой FAQ
« Ответ #58 : 17.05.2010, 08:33:03 »
В YSlow проверьте в графе Components и далее Expand All - если в столбце GZIP(KB) показываются сжатые файлы - значит все нормально сжимается. Если нет - значит сервер не поддерживает сжатие.
*

via82

  • Осваиваюсь на форуме
  • 42
  • 1 / 0
Re: Оптимизация Joomla мой FAQ
« Ответ #59 : 17.05.2010, 09:13:16 »
проверил
значение в колонке gzip стоит только напротив doc
для остальных пусто

получается gzip работает.
тогда как заставить обрабатывать css  и js?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Joomla накешировала 200Mb в директорию cache/page при отключенном кешировании, что за ...?

Автор Marygold

Ответов: 12
Просмотров: 7252
Последний ответ 27.09.2023, 09:23:54
от XFQDesNik
Joomla и Amazon S3

Автор Ghost_370

Ответов: 14
Просмотров: 12136
Последний ответ 07.04.2019, 09:38:02
от powerful888
Соц.иконки добавить, Joomla 1.5.26

Автор nuon

Ответов: 1
Просмотров: 7586
Последний ответ 04.03.2018, 21:34:56
от nuon
Как сделать JSON-LD микроразметку для Joomla 1.5

Автор Amigo9876

Ответов: 1
Просмотров: 6954
Последний ответ 05.01.2018, 21:54:43
от krot
Joomla 1.5.26 и мета теги

Автор SLdieR11

Ответов: 3
Просмотров: 4312
Последний ответ 17.10.2017, 10:53:54
от SeBun