Новости Joomla

Свои типы полей в Joomla.Это большая тема, о которой можно говорить очень много

Свои типы полей в Joomla.Это большая тема, о которой можно говорить очень много

👩‍💻 Свои типы полей в Joomla.Это большая тема, о которой можно говорить очень много. Самое главное, что возможности применения ограничиваются только вашей больной фантазией. Вы строите интерфейс своего модуля или плагина и вам нужно подтянуть данные из сторонней системы (список чего-нибудь по какому-нибудь API), чтобы сохранить выбранный id в Joomla. Или сделать какую-то проверку и в зависимости от неё показать то или иное сообщение пользователю. Для этого подойдут свои пользовательские типы полей. Интерфейс Joomla по большей части описан в XML-файлах. У каждого из них свои параметры. Некоторые не описаны в документации (manual.joomla.org), поэтому самым любопытным будет полезно заглянуть в собственно файлы фреймворка по пути

libraries/src/Form/FormField.php, а так же в
libraries/src/Form/Fields. У каждого класса поля перечислены его специфические свойства, которые можно описывать в XML. А в своём типе поля вы можете устанавливать эти значения программно. В моём модуле WT Quick links под капотом происходят изменения. Теперь для работы (в админке) ему нужен вспомогательный плагин. А в самом модуле нам бы проверить, а не выключен ли он? В Joomla есть тип поля Note - заметка. Его можно использовать для вывода примечаний.

<field type="note"     name="your_note_for_user"     label="Заголовок примечания"     title="Альтернативный способ для заголовка"     description="Текст примечания"     class="col-12 alert alert-info"     heading="h1"     close="true"/>
heading - указывать уровень заголовка.
close - позволяет закрыть это примечание. В классе поля
libraries/src/Form/Field/NoteField.php описана логика вывода. И в принципе оно нам подходит для нашей задачи. Но оно будет выводить сообщение всегда, а нам нужно только тогда, когда плагин отключён.Поэтому берём и создаём свой класс поля, который мы унаследуем от
NoteField. Это значит, что у нас в руках будет весь инструментарий стандартного поля
Note + то, что мы сами добавим. В XML-манифест добавляем наше поле
<field type="systempluginstatus"      name="systempluginstatus"     addfieldprefix="Joomla\Module\Wtquicklinks\Site\Fields"/>
-
type - имя файла и класса,-
addfieldprefix - указываем namespace к нашему классу, может быть любой нам нужный-
name - нельзя полю без имени...Это означает, что Joomla будет использовать класс поля из файла
modules/mod_wt_quick_links/src/Fields/SystempluginstatusField.php.А в классе поля будет написано следующее:
<?php// namespace для атрибута addfieldprefixnamespace Joomla\Module\Wtquicklinks\Site\Fields;// нельзя напрямую обращаться к этому файлуdefined('_JEXEC') or die;// подключаем родительский класс для переопределенияuse Joomla\CMS\Form\Field\NoteField;use Joomla\CMS\Language\Text;use Joomla\CMS\Plugin\PluginHelper;// имя класса и имя файла точь-в-точьclass SystempluginstatusField extends NoteField{     protected $type = 'Systempluginstatus';     protected function getLabel()          {               // если плагин не включён               if(PluginHelper::isEnabled('system','wtquicklinks')) {                    // меняем свойства родительского класса                    $this->class = 'alert alert-danger w-100';                    $this->element['label'] = '⚠️ А-а-а-а!';                    $this->element['description'] = 'Плагин не включён!!';                    // и просто рендерим его с нашими свойствами                    return parent::getLabel();               }          // А иначе всё хорошо, скрываем поле из виду.          $this->parentclass = 'd-none';          return '';     }}
Просто и удобно. И людям приятно, что о них позаботились и рассказали почему что-то не работает.@webtolkru#joomla #php #webdev #разработка

Обновлена информация в Плане развития Joomla

👩‍💻 Обновлена информация в Плане развития Joomla.Здесь собрана информация о датах релизов, описаны принципы версионирования, указаны ответственные за релизы, а так же даты окончания поддержки релизов. Опираясь на эту информацию вы можете планировать развитие ваших интернет-проектов.👩‍💻 Что нового?⛔️ Joomla 4.Дата окончания исправления ошибок безопасности в версии 4.x - 14 октября 2025г. ⚠️ После этой даты Joomla 4 прекратит получать какие-либо обновления, в том числе безопасности - вообще. Рекомендуем обновить ваши сайты до актуальной Joomla 5.✅ Joomla 5.- Дата окончания исправления ошибок в версии 5.x - 13 октября 2026г.- Дата окончания исправления ошибок безопасности в версии 5.x - 12 октября 2027 года.- Текущая актуальная (на момент написания заметки) версия - 5.3.1.- Опубликовано расписание выхода релизов Joomla 5.4. Стабильный релиз ожидается 14 октября 2025 года.✅ Joomla 6.- Дата окончания исправления ошибок в версии 6.x - 17 октября 2028г.- Дата окончания исправления ошибок безопасности в версии 6.x - 16 октября 2029г.- Опубликовано расписание выхода релизов Joomla 6.0. Стабильный релиз ожидается 14 октября 2025 года.- Для разработчиков уже доступна Joomla 6.0.0-alpha1.✅ Joomla! Framework.Обновлена информация о Joomla! Framework - полноценном PHP-фреймворке для разработки. Он в версиях 1.х и 2.х был самостоятельным параллельным проектом, однако начиная с версии Joomla 4.0 стал её основой. Добавлена информация о Joomla! Framework 3.x, который вышел 6 октября 2023 года. Его можно использовать в тех случаях, когда вам в проекте не нужна CMS Joomla целиком.Подробнее на сайте Joomla-сообщества Joomlaportal.ru#joomla #community

Компания JetBrains рассказала о своей поддержке Joomla

Компания JetBrains рассказала о своей поддержке Joomla

JetBrains - один из мировых лидеров в разработке программного обеспечения для разработчиков. Её программные продукты - это IDE - профессиональные среды разработки, которые отличаются от простого блокнота/редактора с плагинами набором всевозможных инструментов для разработчиков, глубоким анализом кодовой базы, подсказками по ней и по языку программирования, отладкой ошибок и многим-многим другим. Одним из самых известных продуктов компании является IDE PHP Storm, который можно назвать отраслевым стандартом PHP-разработчика.

В статье How PhpStorm Helps Maintain PHP Open-Source Projects: Interviews and Real-World Examples в блоге компании описываются Open Source проекты, которым JetBrains оказывает поддержку (это могут быть бесплатные лицензии для разработчиков для некоммерческих проектов).

В список попали:

  • PHPUnit - фреймворк для unit-тестирования в PHP
  • Doctrine DBAL - библиотека для PHP, которая предоставляет лёгкий и гибкий слой для коммуникации с базой данных. Она поддерживает различные базы данных через единый и согласованный API.
  • CodeIgniter — популярный MVC-фреймворк для разработки на PHP
  • Joomla! - наша любимая CMS.

Эти названия (кроме "Joomla") чаще всего не слышат вебмастера и разработчики обычных сайтов и интернет-магазинов. Но эти названия хорошо знакомы PHP-разработчикам, которые создают сложные и высоконагруженные проекты и микросервисы. То, что Joomla оказалась в одном ряду с такими программными инструментами - делает ей честь.

🙏 За ссылку спасибо участнику нашего сообщества Ринату Кажетову (@rkazhet).

Подпишитесь на @joomlafeed

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

borro

  • Завсегдатай
  • 1379
  • 22 / 0
  • желаю вам счастья
Здравствуйте.

Отслеживал результаты вывода команды top на Debian7. Возникают ситуации, когда запускается куча команд apache2, которые сжирают всю процессорную мощность, и сайт висит.
1. Сколько в принципе должно быть процессов apache2 для одного сайта, работающего на VPS и под какими пользователями они должны быть?

Нагружающие процессы apache2 то возникают, то исчезают.
2. Как понять, что их инициализирует?

В приложении снимок во время одной из таких пиковых ситуаций

Юзер antilopa это тот, кому даны права на папку с сайтом, не root

Посмотрел access.log в районе времени, когда был зафиксирован пик нагрузки и увидел кучу ботов Яндекса и других поисковиков:
Спойлер
[свернуть]
Могут ли боты генерить кучу процессов apache2?
Сегодня сайт был не доступен полдня. Может из-за этого боты ополчились?
« Последнее редактирование: 06.04.2016, 16:28:04 от borro »
*

Candidate

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Возникают ситуации, когда запускается куча команд apache2, которые сжирают всю процессорную мощность, и сайт висит.

Ну это разве ж куча!?

1. Сколько в принципе должно быть процессов apache2 для одного сайта, работающего на VPS и под какими пользователями они должны быть?

Должно быть столько, сколько тянет Ваша VPSка.

2. Как понять, что их инициализирует?

Их инициализирует основной процесс Apache согласно правилам, которые прописаны у него в файле конфигурации. Поменяйте в нем настрйоки под себя, и всё будет хорошо.
*

ChaosHead

  • Гуру
  • 5242
  • 451 / 13
Keepalive в Apache отключен? Если нет, то отключите.
*

Candidate

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Keepalive в Apache отключен? Если нет, то отключите.

Это следует делать только в том случае, если Apache стоит за nginx. А если Apache является фронт-ендом, то лучше включить Keepalive.
*

ChaosHead

  • Гуру
  • 5242
  • 451 / 13
Если он падает от такого количества подключений то тоже стоит, да и разгрузить его с помощью отдачи статики nginx тоже.
« Последнее редактирование: 17.04.2016, 20:24:13 от ChaosHead »
*

borro

  • Завсегдатай
  • 1379
  • 22 / 0
  • желаю вам счастья
Доброго утра!

Спасибо за предложения. Апачи стоит за nginx. Я поставил 3 сек ограничение на частоту посещения ботами и все нормализовалось.

Настройки апачи такие:
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5

Критично?
*

yuri-it

  • Давно я тут
  • 994
  • 44 / 3
  • Быстрый хостинг https://jehost.ru
Это следует делать только в том случае, если Apache стоит за nginx. А если Apache является фронт-ендом, то лучше включить Keepalive.
Keepalive следует включать если есть запас ОЗУ. Если памяти хватает, то Keepalive советую включить, главное не забыть поставить невысокий KeepAliveTimeout на закрытие соединений.
По-настоящему быстрый хостинг для Joomla : https://jehost.ru
Отзывы: http://joomlaforum.ru/index.php/topic,109288.0.html
Отзывы по хостингу http://hosting101.ru/jehost.ru
*

ChaosHead

  • Гуру
  • 5242
  • 451 / 13
Keepalive следует включать если есть запас ОЗУ. Если памяти хватает, то Keepalive советую включить, главное не забыть поставить невысокий KeepAliveTimeout на закрытие соединений.

А есть ли смысл, если статику отдаёт nginx, а Apache отдаст только 1 HTML, продержит соединение ещё n секунд (KeepAliveTimeout 5 по дефолту) и закроет его? Пользователи imho ускорения не увидят, т.к. по 5 страниц в секунду страницы редко кто открывает. Ускорение будет заметно разве что ботам.

Вот пишут в мануалах:
Цитировать
The Keep-Alive extension to HTTP/1.0 and the persistent connection feature of HTTP/1.1 provide long-lived HTTP sessions which allow multiple requests to be sent over the same TCP connection. In some cases this has been shown to result in an almost 50% speedup in latency times for HTML documents with many images. To enable Keep-Alive connections, set KeepAlive On.
В некоторых случаях это даст результат 50% сокращения времени задержки при отдаче HTML документа с большим количеством картинок. Это если у вас Apache картинки отдаёт.
Но у нас картинки не Apache, а nginx отдаёт и у него свой KeepAlive на 30 секунд по дефолту. Поэтому лично я не вижу особого смысла оставлять KeepAlive в Apache в данном случае.
*

yuri-it

  • Давно я тут
  • 994
  • 44 / 3
  • Быстрый хостинг https://jehost.ru
А есть ли смысл, если статику отдаёт nginx, а Apache отдаст только 1 HTML, продержит соединение ещё n секунд (KeepAliveTimeout 5 по дефолту) и закроет его? Пользователи imho ускорения не увидят, т.к. по 5 страниц в секунду страницы редко кто открывает. Ускорение будет заметно разве что ботам.
Все верно, речь шла именно когда работает голый апач. Если стоит Nginx, то лучше внести в конфиг tcp_nodelay on и не забыть про keepalive_timeout, keepalive_requests и reset_timedout_connection.
По-настоящему быстрый хостинг для Joomla : https://jehost.ru
Отзывы: http://joomlaforum.ru/index.php/topic,109288.0.html
Отзывы по хостингу http://hosting101.ru/jehost.ru
*

ChaosHead

  • Гуру
  • 5242
  • 451 / 13
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
Критично?
Включите отладку или top, посмотрите сколько мегабайт оперативки у вас съедает открытие среднестатистической страницы сайта. Возьмите размер вашей свободной оперативки и прикиньте, сможет ли ваш сервер в оперативке держать сразу 100 таких открытых соединений.
Или откройте сайт, нажмите F5 на клавиатуре 100 раз, если Apache не падает, то 100 - нормально. На скрине у вас только 23 и вы жалуетесь, что падает. Если сделать KeepAlive Off, то они не будут 5 секунд дополнительно висеть открытыми и ждать следующего действия, а будут быстро закрываться, либо ограничить максимальное количество KeepAlive запросов под ваш сервер.
« Последнее редактирование: 18.04.2016, 11:59:43 от ChaosHead »
*

borro

  • Завсегдатай
  • 1379
  • 22 / 0
  • желаю вам счастья
Включите отладку или top, посмотрите сколько мегабайт оперативки у вас съедает открытие среднестатистической страницы сайта. Возьмите размер вашей свободной оперативки и прикиньте, сможет ли ваш сервер в оперативке держать сразу 100 таких открытых соединений.
Или откройте сайт, нажмите F5 на клавиатуре 100 раз, если Apache не падает, то 100 - нормально. На скрине у вас только 23 и вы жалуетесь, что падает. Если сделать KeepAlive Off, то они не будут 5 секунд дополнительно висеть открытыми и ждать следующего действия, а будут быстро закрываться, либо ограничить максимальное количество KeepAlive запросов под ваш сервер.
Спасибо! через f5 буду лучше во внерабочее время :) Странно, включил отладку в Joomla, ничего не выводит, кэш чистил... Если же воспользоваться вариантом с top, то как там понять, что это именно под твою страницу память была израсходована? Или вы предлагаете взять среднее арифметическое значение столбца %mem для процессов apache2 и уже с ним произвести вычисления?
*

ChaosHead

  • Гуру
  • 5242
  • 451 / 13
%mem - это в процентах, RES вам нужно, ну или в процентах посчитать
*

borro

  • Завсегдатай
  • 1379
  • 22 / 0
  • желаю вам счастья
%mem - это в процентах, RES вам нужно, ну или в процентах посчитать
Если я правильно все понял:
KiB Mem Free: 129792(есть ещё своп)
Apache2 res 5028
N= 129792/5028 = 25,8...
Получается 25. При этом на момент замера показаний в отчете top висело ещё с десяток процессов apache2.
Значит ли это, что MaxKeepAliveRequests должно быть равно примерно 25+10=35?
*

ChaosHead

  • Гуру
  • 5242
  • 451 / 13
Ещё сколько-то съедает MySQL, зависти от конфига. Можно попробовать разные варианты и протестировать с loadimpact.com как будет вести себя под нагрузкой. Лично я бы его совсем отключил.
« Последнее редактирование: 18.04.2016, 15:14:16 от ChaosHead »
*

borro

  • Завсегдатай
  • 1379
  • 22 / 0
  • желаю вам счастья
Ещё сколько-то съедает MySQL, зависти от конфига. Можно попробовать разные варианты и протестировать с loadimpact.com как будет вести себя под нагрузкой. Лично я бы его совсем отключил.
ясно. можно ли рассчётную цифру 35 трактовать как оценочное максимальное число посетителей сайта в конкретный момент времени, которых сервер ещё потянет?
*

ChaosHead

  • Гуру
  • 5242
  • 451 / 13
Максимальное число посетителей в единицу времени - это другой параметр. Это же - максимальное число посетителей, которым будет n секунд поддерживаться открытое соединение, в надежде, что они что-то ещё за это время откроют. У остальных соединение будет закрываться сразу после передачи.

Это как пришел к человеку доставщик продуктов, доставил булку хлеба и говорит: "Если вам что-то ещё нужно, то я тут в машине с продуктами буду ещё 5 минут сидеть ждать, а потом уеду. Тогда если вы потом надумаете ещё кефира купить, то вам нужно будет заново за мной посылать". Но это задерживает всю его машину и пробку на дороге другим машинам создаёт.
А у другого доставщика такой опции нет, он доставку передал и тут-же уехал.
Таких машин может приехать 100 штук, но парковка расчитана только на 25, а потом тупо пол города становится из-за того, что они всё загородили и ждут. А если посылать доставщиков, которые не ждут, то 25 машин коллапс на дороге не создадут, т.к. быстро разъедутся. Но вот от 50 обычных тоже будет пробка.
Как ещё понятней обьяснить не знаю.
« Последнее редактирование: 18.04.2016, 18:34:15 от ChaosHead »
*

flyingspook

  • Живу я здесь
  • 3590
  • 247 / 9
Сколько системных процессов apache2 должно быть на VPS?
Столько на сколько хватит мощности железа того или иного VPS.
*

borro

  • Завсегдатай
  • 1379
  • 22 / 0
  • желаю вам счастья
Максимальное число посетителей в единицу времени - это другой параметр. Это же - максимальное число посетителей, которым будет n секунд поддерживаться открытое соединение, в надежде, что они что-то ещё за это время откроют. У остальных соединение будет закрываться сразу после передачи.

Это как пришел к человеку доставщик продуктов, доставил булку хлеба и говорит: "Если вам что-то ещё нужно, то я тут в машине с продуктами буду ещё 5 минут сидеть ждать, а потом уеду. Тогда если вы потом надумаете ещё кефира купить, то вам нужно будет заново за мной посылать". Но это задерживает всю его машину и пробку на дороге другим машинам создаёт.
А у другого доставщика такой опции нет, он доставку передал и тут-же уехал.
Таких машин может приехать 100 штук, но парковка расчитана только на 25, а потом тупо пол города становится из-за того, что они всё загородили и ждут. А если посылать доставщиков, которые не ждут, то 25 машин коллапс на дороге не создадут, т.к. быстро разъедутся. Но вот от 50 обычных тоже будет пробка.
Как ещё понятней обьяснить не знаю.
вам прям книжки по IT писать :) спасибо
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Общее количество процессов

Автор Alex Kop

Ответов: 0
Просмотров: 2219
Последний ответ 30.09.2022, 19:45:38
от Alex Kop
ISPmanager: Сколько нужно места для резервных копий сайта?

Автор slepoy

Ответов: 1
Просмотров: 2412
Последний ответ 06.09.2015, 18:37:34
от wishlight
Какие модули должны быть включены на веб-сервере?

Автор westman

Ответов: 3
Просмотров: 3833
Последний ответ 26.05.2010, 20:51:32
от valagoff