Новости Joomla

Собственные макеты вывода для пользовательских полей JoomlaМы привыкли использовать механизм...

Собственные макеты вывода для пользовательских полей JoomlaМы привыкли использовать механизм...

Собственные макеты вывода для пользовательских полей JoomlaМы привыкли использовать механизм переопределения макетов Joomla: скопируй нужный тебе файл макета в папку

html шаблона и твори там что хочешь. Это в полной мере относится и к пользовательским полям Joomla.Joomla ищет макеты рендера всех пользовательских полей в следующем порядке:- Есть ли файл
templates/[template name]/html/layouts/[component name]/fields/render.php , переопределяющий макет вывода полей для конкретного компонента? Да - используем его.- Нет? Есть ли файл
components/[component name]/layouts/fields/render.php в папке компонента? Да - используем его.- Нет? Есть ли файл
templates/[template name]/html/layouts/com_fields/fields/render.php, переопределяющий вывод полей для
com_fields? Да - используем его.- Нет? Используем файл
components/com_fields/layouts/fields/render.phpЭто механизм поиска переопределений файлов макетов. Вчера столкнулся с тем, что если поле вставлено в текст материала с помощью шорт-кода (кнопкой редактора) вида
{field 25}, то переопределения не сработали. Поэтому стал вспоминать как сделать свой макет для поля Joomla. Файл
components/com_fields/layouts/field/render.php копируем в
templates/YOUR_TEMPLATE/html/layouts/com_fields/field/etapy-raboty-nad-proektom.php. Обратите внимание, что мы файл переименовали, чтобы в настройках поля видеть его в выпадающем списке. После этого всё заработало как надо. Благо, переводил уже раньше статью
Как происходит рендер пользовательских полей в Joomla?. Потом, порывшись по своему же переводу увидел, что эта особенность работы Joomla в статье уже в ней описана 😂. А также напомнил себе о возможности указывать макет поля прямо в шорт-коде, через запятую:
{field 25,etapy-raboty-nad-proektom}. Правда, если честно, никогда этой возможностью не пользовался. @webtolkru#joomla #php #разработка #webdev

Вышел JoomShoppping 5.6.0Один из популярных компонентов интернет-магазина на Joomla. v.5.6.0

Вышел JoomShoppping 5.6.0Один из популярных компонентов интернет-магазина на Joomla.👩‍💻 v.5.6.0. Что нового?- Добавлена ​​сортировка товаров для конкретной категории- Параметры
count_products_to_page /
count_products_to_row - по умолчанию теперь пустые (используется из конфигурации)- Добавлена сортировка для налогов- Добавлена форма поиска в списке стран- Добавлен фильтр только не завершенных заказов для списка заказов (не закончен: скрывать / показывать / все)- Добавлены состояния опубликовано / не опубликовано для аддонов (опции - дополнения)- Добавлены зависимости (dependencies) для аддонов- ⚠️ Библиотека Tcpdf удалена из ядра Joomshopping. Генерация PDF счетов отключена по умолчанию. Библиотека теперь устанавливается как дополнение Lib TcPdf.- ➕ Новая опция. Техническое обслуживание для дополнений (отладка, журнал, переопределения папок)- ➕ Новая опция: Настройки - Другие - Использовать WebAssetManager. - ➕ Новая опция: Настройки - Другие - Администратор продукты Поиск по словам. Поиск в админке будет искать по описаниям товаров.- Обновлены иконки в админке- ➕ Новая опция конфигурации check_valid_productpage_attribute- ➕Новая опция конфигурации attribut_dep_sorting_in_product_dir- ➕Новая опция конфигурации attribut_nodep_sorting_in_product_dir- ➕Новый метод
prepareSaveParams для ShippingFormRoot (разработчикам способов доставки)- Добавлены новые триггеры для плагинов- Обновление HttpClientLite- Исправления роутера- Исправлен выбор оформления заказаНужно помнить, что не все опции конфигурации JoomShopping доступны для настройки из панели администратора. Некоторые параметры можно изменить только в файлe
components/com_jshopping/config/user_config.php (переопределение
default_config.php). Так же параметры конфигурации могут быть изменены плагинами на события
onBeforeLoadJshopConfig и
onLoadJshopConfig.
Страница расширения#JoomShopping

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

Physicist

  • Глобальный модератор
  • 984
  • 194 / 0
  • Рябов Денис
Оптимизируем Joomla! 1.5.7
« : 31.10.2008, 16:07:08 »
Профилирование Joomla при помощи xdebug на PHP 5.2.4 показало два следующих «слабых места»:
  • метод JRegistryFormatINI::stringToObject (файл /libraries/joomla/registry/format/ini.php), выполняющий парсинг данных в формате ini-файла, и
  • метод JLoader::load (файл /libraries/loader.php; в дальнейшем имена файлов указывать не буду, надеюсь найти, что и где лежит не является проблемой), вызываемый из функции __autoload для автоматического подключения файла нужного класса.

Какие могут быть методы борьбы с этими «тормозами»? Начнем по-порядку.

1. Метод JRegistryFormatINI::stringToObject

1.1. Можно попробовать переписать этот метод с целью ускорить быстродействие. Основные идеи, которые могут ускорить его работу, следующие:
— В процессе работы метода в цикле регулярно проверяется условие if($process_sections), проверку которого можно вынести за пределы цикла.
— Функция проверяет только наличие комментариев, начинающихся с «;», в то время как в действительности комментарии в языковых ini-файлах начинаются с «#». Проверка такого условия уберет лишние операции с этими строками.
— Тест показал, что вместо strpos/substr быстрее разбить строку на две части при помощи explode.
— Результат для strpos-поиска «|» можно запомнить и впоследствии не делать лишний str_replace.
— В preg_match и preg_split желательно использовать одинаковые ограничители регулярных выражений — это уберет дополнительный парсинг и компиляцию второго выражения.
— Условие того, что значением параметра является массив проще записать в виде $array = count($parts)>1, а не в виде сравнения строк.
— Разбиение аргумента на строки выполняется даже в том случае, когда готовый ответ уже есть в $inistocache. Зачем?

Итого удается увеличить скорость работы этой функции на 19%.

Конкретный вид модификаций не привожу — их и так можно посмотреть в прилагаемом архиве, сравнивая с оригигинальными файлами.

1.2. Анализ передаваемых аргументов показал, что при отрисовке модулей их параметры передаются этому методу дважды: один раз в методе JDocumentRendererModule::render, а второй — в вызываемом из него методе JModuleHelper::renderModule. И хотя второй вызов выполняется значительно быстрее, т.к. результат первого вызова сохранен в $inistocache, было бы логично этого вызова избежать. Для этого достаточно передавать параметры модуля третьим аргументом в JModuleHelper::renderModule.

1.3. Львиную долю всех вызовов занимает парсинг языковых файлов. Т.к. эти файлы не меняются от вызова к вызову, имеет смысл кэшировать результаты парсинга. Для этого достаточно внести модификацию в JLanguage::_load. По-хорошему, было бы логичным сделать время жизни этого «языкового» кэша также настраиваемым из админки, но пока пусть оно будет таким же как и для всего сайта.

2. Метод JLoader::load.

2.1. В самом методе strtolower вызывается дважды. Второй вызов явно лишний.

2.2. JLoader::register возвращает ссылку, поэтому заменяем присваивание на =&.

2.3. Так как больше всего времени занимает include файлов, то имеет смысл вынести объявление самых часто-используемых файлов в один файл и подключать его сразу при запуске. К сожалению, не для всех классов такое возможно, но прирост в скорости будет все-равно заметным. Для построения такого файла достаточно вызвать прилагаемый скрипт /cache.php и сделать небольшую модификацию /index.php (те файлы, которые нельзя переносить в другое место, закомментированы в тексте скрипта).


Во вложении ниже приведены все пропатченные файлы и скрипт создания файла с глобальным описанием классов cache.php.


PS. Хочу отправить это разработчикам Joomla!, поэтому жду вашей критики / комментариев / замечаний.


PPS. Кто б еще подсказал, в какой раздел лучше перекинуть эту тему.

[вложение удалено Администратором]
« Последнее редактирование: 08.11.2008, 14:05:41 от Physicist »
*

Physicist

  • Глобальный модератор
  • 984
  • 194 / 0
  • Рябов Денис
Re: Оптимизируем Joomla! 1.5.7
« Ответ #1 : 01.11.2008, 09:24:18 »
Забыл еще вот про что написать и включить в патч:

1.4. Если включен плагин «System - Debug», то даже при отключенном режиме отладки загружается языковой файл этого плагина. Так что рекомендую или отключить этот плагин, или добавить в конструктор проверку
if(!JDEBUG) return;
*

mmka

  • Захожу иногда
  • 69
  • 12 / 100
Re: Оптимизируем Joomla! 1.5.7
« Ответ #2 : 01.11.2008, 10:41:02 »
Цитировать
1.4. Если включен плагин «System - Debug», то даже при отключенном режиме отладки загружается языковой файл этого плагина. Так что рекомендую или отключить этот плагин, или добавить в конструктор проверку
if(!JDEBUG) return;
То есть по сути в Joomla 1.5 он вообще не нужен? То есть для оптимизации можно его просто отключить и удалить?

2) а есть ли еще такие плагины которые можно отключить без последствий? и вообще многие ли из них нужны рядовому юзеру?
*

Physicist

  • Глобальный модератор
  • 984
  • 194 / 0
  • Рябов Денис
Re: Оптимизируем Joomla! 1.5.7
« Ответ #3 : 01.11.2008, 11:00:31 »
То есть для оптимизации можно его просто отключить и удалить?
Достаточно просто отключить.
*

klaizar

  • Захожу иногда
  • 91
  • 13 / 0
  • *JoomlaGURU
Re: Оптимизируем Joomla! 1.5.7
« Ответ #4 : 01.11.2008, 15:41:29 »
простая замена этих фалов мне в чем то поможет или лучше не трогать?)
*

Physicist

  • Глобальный модератор
  • 984
  • 194 / 0
  • Рябов Денис
Re: Оптимизируем Joomla! 1.5.7
« Ответ #5 : 01.11.2008, 20:10:56 »
простая замена этих фалов мне в чем то поможет или лучше не трогать?)

Думаю, поможет.

Но суть темы не в этом, а в том, чтобы обсудить возможности по усовершенствованию Joomla!1.5 и, в частности, обсудить предложенную модификацию (плюсы/минусы), а также в надежде, что кто-то еще предложит те или иные усовершенствования.

Кстати, еще такой вопрос (может кто сталкивался): что лучше — создать аналогичную тему на forum.joomla.org (там есть раздел Perfomance), или добавить в bugtracker на joomlacode.org (и в какой раздел трекера лучше добавить в этом случае)?

PS. Кстати, заметил, что в bugtracker'е в разделе «Joomla! 1.6.x Bug Tracker» уже фигурирует 21 запись. ^-^
*

mmka

  • Захожу иногда
  • 69
  • 12 / 100
Re: Оптимизируем Joomla! 1.5.7
« Ответ #6 : 01.11.2008, 20:18:14 »
Цитировать
Но суть темы не в этом, а в том, чтобы обсудить возможности по усовершенствованию Joomla!1.5 и, в частности, обсудить предложенную модификацию (плюсы/минусы), а также в надежде, что кто-то еще предложит те или иные усовершенствования.
К сожалению на форуме очень мало знающих людей  и хорошо разбирающихся в джумле.. Я например больше половины не понял поэтому сказать не могу... как и многие другие...
Цитировать
Кстати, еще такой вопрос (может кто сталкивался): что лучше — создать аналогичную тему на forum.joomla.org (там есть раздел Perfomance), или добавить в bugtracker на joomlacode.org (и в какой раздел трекера лучше добавить в этом случае)?
Я думаю и туда и туда ))
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Оптимизируем Joomla! 1.5.7
« Ответ #7 : 01.11.2008, 20:36:26 »
Кстати, еще такой вопрос (может кто сталкивался): что лучше — создать аналогичную тему на forum.joomla.org (там есть раздел Perfomance), или добавить в bugtracker на joomlacode.org (и в какой раздел трекера лучше добавить в этом случае)?
думаю, что лучше продублировать... причем на треккере разбить на несколько подзадач... и на всякий случай еще кинуть копию к текущему team lead'у
*

Physicist

  • Глобальный модератор
  • 984
  • 194 / 0
  • Рябов Денис
Re: Оптимизируем Joomla! 1.5.7
« Ответ #8 : 01.11.2008, 22:18:37 »
думаю, что лучше продублировать... причем на треккере разбить на несколько подзадач... и на всякий случай еще кинуть копию к текущему team lead'у
Скорее всего так и поступлю. Вот только выжду несколько дней — может что еще в голову придет, или вдруг кто-то обнаружит недостатки в предложенном патче.
*

klaizar

  • Захожу иногда
  • 91
  • 13 / 0
  • *JoomlaGURU
Re: Оптимизируем Joomla! 1.5.7
« Ответ #9 : 03.11.2008, 15:08:38 »
У меня при замене этих фалов выдает ошибку
Warning: main(/home/klaizar/public_html/lltours/libraries/joomla/import.php) [function.main]: failed to open stream: Permission denied in /home/klaizar/public_html/lltours/includes/framework.php on line 42

Fatal error: main() [function.require]: Failed opening required '/home/klaizar/public_html/lltours/libraries/joomla/import.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/klaizar/public_html/lltours/includes/framework.php on line 42


к чему бы это ?!
*

Physicist

  • Глобальный модератор
  • 984
  • 194 / 0
  • Рябов Денис
Re: Оптимизируем Joomla! 1.5.7
« Ответ #10 : 03.11.2008, 15:22:49 »
Ошибка означает, что файл /libraries/joomla/import.php отсутствует или недостаточно прав для его открытия. Почему — не знаю. Обращаю внимание, что ни import.php, ни framework.php в состав патча не входят.
« Последнее редактирование: 03.11.2008, 16:08:05 от Physicist »
*

klaizar

  • Захожу иногда
  • 91
  • 13 / 0
  • *JoomlaGURU
Re: Оптимизируем Joomla! 1.5.7
« Ответ #11 : 03.11.2008, 15:25:25 »
этот фаил у меня присутствует ( import.php ) права 644 , мож из за прав выдает ошибку ?
*

lems2003

  • Осваиваюсь на форуме
  • 14
  • 3 / 0
Re: Оптимизируем Joomla! 1.5.7
« Ответ #12 : 04.11.2008, 14:20:27 »
а под php 4 этот патч будешь функционировать? и польза будет те 19% , автор писал про 5 версию!!!
*

Physicist

  • Глобальный модератор
  • 984
  • 194 / 0
  • Рябов Денис
Re: Оптимизируем Joomla! 1.5.7
« Ответ #13 : 04.11.2008, 15:35:26 »
а под php 4 этот патч будешь функционировать? и польза будет те 19% , автор писал про 5 версию!!!
В принципе, должен. Вот только ответьте: Неужели так трудно самому взять и проверить, а потом в этой теме отписать результат?

А Joomla!1.5 изначально писалась с расчетом именно под PHP5, поэтому максимальная производительность (теоретически) должна быть именно при использовании PHP5.
*

ershovdz

  • Захожу иногда
  • 102
  • 21 / 0
Re: Оптимизируем Joomla! 1.5.7
« Ответ #14 : 04.11.2008, 16:58:36 »
Цитировать
Итого удается увеличить скорость работы этой функции на 19%.
У меня пока один вопрос - проводились ли измерения того, насколько увеличивается реальная скорость работы joomla под нагрузкой ? Ибо увеличение скорости одной функции даже на 100% не гарантирует увеличене общей производительности и следовательно имеет ли эта оптимизация смысл..
*

Physicist

  • Глобальный модератор
  • 984
  • 194 / 0
  • Рябов Денис
Re: Оптимизируем Joomla! 1.5.7
« Ответ #15 : 04.11.2008, 20:53:04 »
У меня пока один вопрос - проводились ли измерения того, насколько увеличивается реальная скорость работы joomla под нагрузкой ? Ибо увеличение скорости одной функции даже на 100% не гарантирует увеличене общей производительности и следовательно имеет ли эта оптимизация смысл..
Я при тестировании сначала отключил кэширование и включил отображение всех модулей (кроме враппера) на главной. При этом на метод stringToObject уходило порядка 20% от всего времени выполнения! Так что оптимизировав этот метод сразу получилось ускорение работы на 4%. Я считаю, что это всё-таки имеет смысл.

Но наиболее существенными оказались кэширование парсинга языковых файлов и запись деклараций основных классов в один файл. Насколько возрасла производительность в итоге — сказать не могу, т.к. сейчас нет времени тестировать. Буду очень рад, если кто-то проведет независимое тестирование.
« Последнее редактирование: 04.11.2008, 21:14:13 от Physicist »
*

7Rei

  • Захожу иногда
  • 134
  • 20 / 0
Re: Оптимизируем Joomla! 1.5.7
« Ответ #16 : 06.11.2008, 14:36:48 »
После установки патча (а именно файла libraries\joomla\registry\format\ini.php) начинает глючить модуль для вставки собственного кода. Все пробелы в коде заменяются на - \n. Страдает вид сайта + не работают многие скрипты.
Проверял на модуле mod_moedesigns_anycode_15 и на mod_php.
joomla 1.5.7 PHP5.2.6
*

Physicist

  • Глобальный модератор
  • 984
  • 194 / 0
  • Рябов Денис
Re: Оптимизируем Joomla! 1.5.7
« Ответ #17 : 06.11.2008, 22:19:59 »
7Rei, я не представляю, как парсинг ini-файлов может сказаться на пробелах в Вашем коде. Может проблема в чем-то еще?
*

7Rei

  • Захожу иногда
  • 134
  • 20 / 0
Re: Оптимизируем Joomla! 1.5.7
« Ответ #18 : 06.11.2008, 22:50:28 »
7Rei, я не представляю, как парсинг ini-файлов может сказаться на пробелах в Вашем коде. Может проблема в чем-то еще?
Проверил еще раз, ошибка возникает после заливки именно этого файла!
*

Physicist

  • Глобальный модератор
  • 984
  • 194 / 0
  • Рябов Денис
Re: Оптимизируем Joomla! 1.5.7
« Ответ #19 : 07.11.2008, 00:29:37 »
Кстати, да. При причесывании файла исчез str_replace, заменяющий \n на переводы строк.
Я заменил пост в первом сообщении, а тут прилагаю чуть более расширенный патч (опять же, для тестирования).

[вложение удалено Администратором]
*

Physicist

  • Глобальный модератор
  • 984
  • 194 / 0
  • Рябов Денис
Re: Оптимизируем Joomla! 1.5.7
« Ответ #20 : 07.11.2008, 01:18:12 »
Набросал тему на forum.joomla.org:
http://forum.joomla.org/viewtopic.php?f=433&t=341326

smart, ты как представитель сообщества русской поддержки joomla, можешь кому-нибудь из ихних разработчиков кинуть ссылку на топик (я подозреваю, у тебя должно быть больше контактов).
« Последнее редактирование: 07.11.2008, 01:21:40 от Physicist »
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Оптимизируем Joomla! 1.5.7
« Ответ #21 : 07.11.2008, 01:22:12 »
smart, ты как представитель сообщества русской поддержки joomla, можешь кому-нибудь из ихних разработчиков кинуть ссылку на топик (я подозреваю, у тебя должно быть больше контактов).
оки, не вопрос...
*

7Rei

  • Захожу иногда
  • 134
  • 20 / 0
Re: Оптимизируем Joomla! 1.5.7
« Ответ #22 : 08.11.2008, 13:20:09 »
Кстати, да. При причесывании файла исчез str_replace, заменяющий \n на переводы строк.
Я заменил пост в первом сообщении
Теперь он вообще не работоспособный! После замены файлов, в админке и на фронтенде выводится длинный, длинный текст :(
*

Physicist

  • Глобальный модератор
  • 984
  • 194 / 0
  • Рябов Денис
Re: Оптимизируем Joomla! 1.5.7
« Ответ #23 : 08.11.2008, 14:04:57 »
Теперь он вообще не работоспособный! После замены файлов, в админке и на фронтенде выводится длинный, длинный текст :(
^-^ Спасибо. Это я забыл var_dump'ы убрать. Сейчас прикреплю новый архив (кстати, на forum.joomla.org тоже нужно будет поменять).
*

kavkaz07

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Re: Оптимизируем Joomla! 1.5.7
« Ответ #24 : 17.11.2008, 01:08:08 »
может пора уже 1.5.8 версию оптимизировать? когда уже будут результаты? былоб неплохо еслиь над ней наши поработали бы.........
*

igrik

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
  • Pis.lv
Re: Оптимизируем Joomla! 1.5.7
« Ответ #25 : 22.11.2008, 13:57:56 »
Продублирую сюда ОГРОМНУЮ ПРОБЛЕМУ С ЭТОЙ МОДИФИКАЦИЕЙ.

There are big problem with your modification.

It works fine, until User is not logged out. Then Cached pages display that user is logged in, but of course there are troubles cause in true user is not already logged in ..

Need to purge some cache after log out. or something like this.

PS: If am logging in with user 2, all profile pages is for user 1..

That is big issue.!
*

igrik

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
  • Pis.lv
Re: Оптимизируем Joomla! 1.5.7
« Ответ #26 : 22.11.2008, 14:10:40 »
Мде, "спасибо" за мега код..

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

Physicist

  • Глобальный модератор
  • 984
  • 194 / 0
  • Рябов Денис
Re: Оптимизируем Joomla! 1.5.7
« Ответ #27 : 23.11.2008, 20:09:44 »
igrik, этот патч никак не мог привести к такой проблеме, т.к. он никоим образом не меняет механизм работы с кэшем. Он включает в себя механизм работы с кэшем timedfile, но по-умолчанию его не активирует (его нужно самостоятельно задать в настройках сайта).
*

igrik

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
  • Pis.lv
Re: Оптимизируем Joomla! 1.5.7
« Ответ #28 : 23.11.2008, 21:39:34 »
Тем не менее факт остаётся фактом.


Хронология:

Сайт работает нормально. Беру Ваш патч, копирую наверх - возникает описанная мною проблема..


Ко всему прочему Global Configuration в админке, отображется пустой страницей(blank page), после копирования патча
*

7Rei

  • Захожу иногда
  • 134
  • 20 / 0
Re: Оптимизируем Joomla! 1.5.7
« Ответ #29 : 29.12.2008, 11:22:59 »
Набросал тему на forum.joomla.org:
http://forum.joomla.org/viewtopic.php?f=433&t=341326
Physicist, очень интересно, как они отнеслись к данной модификации? :)
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Отличия Joomla 1.5 от Joomla 1.0?

Автор Karyuudo

Ответов: 44
Просмотров: 61592
Последний ответ 25.12.2019, 13:44:11
от beliyadm
Удаление url(ссылок) из Joomla

Автор simon.temp

Ответов: 20
Просмотров: 5608
Последний ответ 13.05.2019, 22:32:00
от ChaosHead
Неправильное отображение на сайте Joomla формы обратной связи из битрикс24

Автор vasil71

Ответов: 1
Просмотров: 3080
Последний ответ 04.04.2019, 11:05:29
от Technic
Обновление сайта на Joomla 1.5.26

Автор ALexVKH

Ответов: 4
Просмотров: 4336
Последний ответ 26.03.2018, 14:54:02
от SeBun
Как написать код на Java и вставить его в Joomla-сайт?

Автор geodx

Ответов: 9
Просмотров: 5010
Последний ответ 27.02.2018, 16:15:59
от effrit