Новости 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 Гость просматривают эту тему.
  • 25 Ответов
  • 14880 Просмотров
*

stt

  • Захожу иногда
  • 52
  • 3 / 1
Здравствуйте, уважаемые. На днях у меня встала задача к самописному компоненту приделать поиск. Хороший поиск. Быстрый и с русским морфологическим разбором. Можно, конечно, подключить поиск от Яндекс или Google, но это запасной вариант. Тем более, что сайт еще только в локальном варианте и на каком доменном имени он будет висеть, еще заказчик не определился.
Знакомство с Умным поиском в Joomla порадовало. Но не очень. Порадовало, что прикрутить его к своему компоненту оказалось не сложно. Нужно взять один из плагинов в папке plugins\finder\ и переписать под свой компонент. На этом моменте я останавливаться не буду, потому как это очень зависит от того компонента, к которому прикручивается умный поиск. Хотя, если появятся желающие узнать подробности, то постараюсь ответить. Те плагины, которые уже установлены в Joomla, позволяют использовать Умный поиск в материалах, категориях, контактах, web-ссылках и лентах новостей.
А что же меня не порадовало? А собственно то, что никакой морфологический разбор для русского языка в Joomla не предусмотрен. Какое ввели слово, такое слово и будет искать.
Поиски в интернете стеммера для русского языка дали обнадеживающие результаты. Нашлось несколько стеммеров Портера для русского языка. Ядро у них всех было одинаковым, видимо автор один. К сожалению, я не знаю имени автора, но в любом случае ему спасибо. Я взял стеммер для Wordpress и переписал его для Joomla.
Ссылка на файл porter_ru.php: http://redozator.ru/files/porter_ru.zip. Чтобы его установить, нужно:
1. Поместить его в папку administrator\components\com_finder\helpers\indexer\stemmer\
2. В файле administrator\components\com_finder\config.xml ищем описание поля stemmer и вставляем строчку
Код
<option value="porter_ru">rus stemmer</option>
В версии Joomla 2.5.6 это 201-я строка файла config.xml.
3. В админ. панели, в настройках умного поиска выбираем в поле Парадигматический модуль наш новый стеммер rus stemmer.

"И чо?" - скажите вы, - "почему не работает?". Я сам удивлен! Действительно не работает. Точнее работает, но кое-как. Пришлось копать глубже в код компонента умного поиска. Без хака не обошлось.

4. Открываем файл administrator\components\com_finder\helpers\indexer\query.php и изменяем строку 1305
было:
Код
$query->where('t.term = ' . $db->quote($token->term));
стало:
Код
$query->where('(t.term = ' . $db->quote($token->term). ' OR t.stem = ' . $db->quote($token->stem). '  OR t.stem = ' . $db->quote($token->term). ')');
5. Проверяем работу.
6. Задаем мне вопросы, если что-то не понятно.
« Последнее редактирование: 28.02.2015, 21:45:22 от b2z »
*

stt

  • Захожу иногда
  • 52
  • 3 / 1
Re: Допиливаем Умный поиск в Joomla 2.5
« Ответ #1 : 10.09.2012, 07:41:10 »
Почему Joomla так гнобят все теперь понятно...
зачем лезть в ядро? почему не написать плагин?!
Ну это не совсем ядро Joomla - это компонент com_finder. Основную логику поиска не заменить плагином. Если очень хочется оставить Joomla и ее стандартные компоненты в неприкосновенности, то нужно полностью переписать com_finder, переименовать его и установить в системе, как дополнительный умный поиск.
*

stt

  • Захожу иногда
  • 52
  • 3 / 1
Re: Допиливаем Умный поиск в Joomla 2.5
« Ответ #2 : 12.09.2012, 08:18:04 »
А вы обновите Joomla и посмотрите или это не совсем ядро... и кстати после радости com_finder у вас осталась радость  от ужасно разросшейся базы данных и в разы замедлившейся скорости работы Joomla?
Про ужасно разросшуюся базу данных на форуме уже поднимался вопрос. Повторяться не будем. Для доски объявлений в пару сотен двух-трехстрочных объявлений умный поиск очень даже приемлем. От себя могу сказать, что умный поиск нужно использовать либо на маленьких объемах информации либо на о-очень больших.
*

stt

  • Захожу иногда
  • 52
  • 3 / 1
Re: Допиливаем Умный поиск в Joomla 2.5
« Ответ #3 : 13.09.2012, 11:52:42 »
на очень больших база будет весить оооооочееень много!
Не согласен. Количество слов и фраз в языке ограничено, поэтому на очень больших базах прирост индексных файлов при добавлении новых статей будет совсем небольшим.
*

stt

  • Захожу иногда
  • 52
  • 3 / 1
Re: Допиливаем Умный поиск в Joomla 2.5
« Ответ #4 : 19.09.2012, 11:11:50 »
у база с 30 материалами и базой размером в 500 килобайт после индексации умным поиском разросталасьдо 20 метров.. сколько будет весить база если про индексировать 1000 статей?
1000 статей - это не "очень большой объем". Я бы все-таки отнес это количество к среднему объему. По очень приблизительным подсчетам, эффективность умного поиска можно ждать на нескольких десятках тысяч статей объемом 1К - 5К символов каждая.
*

Ivan13

  • Новичок
  • 1
  • 0 / 0
Re: Допиливаем Умный поиск в Joomla 2.5
« Ответ #5 : 19.02.2013, 23:08:02 »
"Знакомство с Умным поиском в Joomla порадовало. Но не очень. Порадовало, что прикрутить его к своему компоненту оказалось не сложно. Нужно взять один из плагинов в папке plugins\finder\ и переписать под свой компонент."

Здравствуйте, подскажите пожалуйста как это сделать это чтобы поиск работал в VirtueMart
*

stt

  • Захожу иногда
  • 52
  • 3 / 1
Re: Допиливаем Умный поиск в Joomla 2.5
« Ответ #6 : 19.02.2013, 23:55:43 »
"Знакомство с Умным поиском в Joomla порадовало. Но не очень. Порадовало, что прикрутить его к своему компоненту оказалось не сложно. Нужно взять один из плагинов в папке plugins\finder\ и переписать под свой компонент."

Здравствуйте, подскажите пожалуйста как это сделать это чтобы поиск работал в VirtueMart

Ответил в почту.
*

oleg8800

  • Захожу иногда
  • 96
  • 0 / 0
Re: Допиливаем Умный поиск в Joomla 2.5
« Ответ #7 : 01.05.2013, 11:18:47 »
Здравствуйте, подскажите пожалуйста как это сделать чтобы поиск работал в JoomShopping.  ! !
Буду очень благодарен!
*

stt

  • Захожу иногда
  • 52
  • 3 / 1
Re: Допиливаем Умный поиск в Joomla 2.5
« Ответ #8 : 02.05.2013, 20:24:58 »
С JoomShopping не работал, поэтому ничего не подскажу.
*

oleg8800

  • Захожу иногда
  • 96
  • 0 / 0
Re: Допиливаем Умный поиск в Joomla 2.5
« Ответ #9 : 05.05.2013, 11:15:58 »
напишите тогда хоть для VirtueMart, если это возможно)))))))))))
*

stt

  • Захожу иногда
  • 52
  • 3 / 1
Re: Допиливаем Умный поиск в Joomla 2.5
« Ответ #10 : 05.05.2013, 12:13:56 »
напишите тогда хоть для VirtueMart, если это возможно)))))))))))
Если вам нужен просто пример реализации, то в папке plugins\finder есть несколько плагинов. Различия в основном в функциях getListQuery.
*

oleg8800

  • Захожу иногда
  • 96
  • 0 / 0
Re: Допиливаем Умный поиск в Joomla 2.5
« Ответ #11 : 06.05.2013, 11:01:30 »
если можно, подробнее.или пример   
*

Em1pty

  • Новичок
  • 1
  • 0 / 0
Re: Допиливаем Умный поиск в Joomla 2.5
« Ответ #12 : 10.05.2013, 13:02:38 »
Подскажите по Virtuemаrt. как "умный поиск" jooml'ы заставить по нему работать?
*

stt

  • Захожу иногда
  • 52
  • 3 / 1
Re: Допиливаем Умный поиск в Joomla 2.5
« Ответ #13 : 10.05.2013, 19:09:34 »
Подскажите по Virtuemаrt. как "умный поиск" jooml'ы заставить по нему работать?

Как я уже сказал, "Нужно взять один из плагинов в папке plugins\finder\ и переписать под свой компонент". Далее возможно два варианта:

1. Вы не знакомы с php, MySQL и разработкой под Joomla. В этом случае вам нужна не помощь - вам нужен готовый плагин. Это только за вознаграждение.
2. Вы уже что-то разрабатывали под Joomla и имеете какие-то навыки. Вы попробовали переписать плагин, но что-то у вас не получилсь. Тогда пришлите мне свой вариант плагина, я подскажу что вы недоработали и где ошиблись.
*

romans13

  • Захожу иногда
  • 122
  • 4 / 0
  • Присоединяюсь к вышеВЫсказанному
Re: Допиливаем Умный поиск в Joomla 2.5
« Ответ #14 : 15.05.2013, 09:58:35 »
Это только за вознаграждение.... согласен на все сто :) умственный труд должен оплачиваться 8)
*

oleg8800

  • Захожу иногда
  • 96
  • 0 / 0
Re: Допиливаем Умный поиск в Joomla 2.5
« Ответ #15 : 20.05.2013, 08:59:14 »
Сколько будет стоить плагин для JoomShopping?
*

Bismuth

  • Захожу иногда
  • 138
  • 2 / 0
Re: Допиливаем Умный поиск в Joomla 2.5
« Ответ #16 : 21.09.2013, 13:21:04 »
6. Задаем мне вопросы, если что-то не понятно.

Здравствуйте!
Конечно спасибо, после этого без труда проиндексировал все 3000 стр. но при воде поиск на сайте выдает одно и тоже (Вы имели в виду: хелли?) Хоть в админке поиск работает как надо

в чем причина я не могу понять((
*

DimonSX

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Re: Допиливаем Умный поиск в Joomla 2.5
« Ответ #17 : 28.09.2013, 06:40:09 »
5. Проверяем работу.
6. Задаем мне вопросы, если что-то не понятно.

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

ChaosHead

  • Гуру
  • 5242
  • 451 / 13
Re: Допиливаем Умный поиск в Joomla 2.5
« Ответ #18 : 06.09.2014, 09:16:03 »
Ссылка битая в первом посте
*

stt

  • Захожу иногда
  • 52
  • 3 / 1
Re: Допиливаем Умный поиск в Joomla 2.5
« Ответ #19 : 06.09.2014, 13:57:00 »
Ссылка битая в первом посте
Исправил ссылку
*

ChaosHead

  • Гуру
  • 5242
  • 451 / 13
Re: Допиливаем Умный поиск в Joomla 2.5
« Ответ #20 : 21.02.2015, 11:52:15 »
$query->where('(t.term = ' . $db->quote($token->term). ' OR t.stem = ' . $db->quote($token->stem). '  OR t.stem = ' . $db->quote($token->term). ')');
Проверяю в Joomla 3.3.6 работает без этого хака. Не совсем понимаю зачем он нужен был?

Вот тут человек вносит в алгоритм небольшие изменения, поддерку суффиксов "ок", "ек". По слову "дружки" будет находиться "дружок" и подобное.
« Последнее редактирование: 21.02.2015, 12:13:01 от ChaosHead »
*

kryglik

  • Новичок
  • 1
  • 0 / 0
Добрый времени суток!
Возникла такая не хорошая ситуэйшен. Как бы я не старался включить отображение "умного поиска" в выпадающем меню "Компоненты". У меня ни как не выходит... Сколько раз я перезапустил плагины и модули... сколько файлов я перезалил на ftp просто не счесть... Уже даже немного руки опустил=( Подскажите может я не туда смотрю или не то юзаю ? Буду очень признателен!
*

isay777

  • Захожу иногда
  • 54
  • 0 / 0
в Joomla 3.3.4
вот эту часть не могу сделать
Цитировать
4. Открываем файл administrator\components\com_finder\helpers\indexer\query.php и изменяем строку 1305
было:
Код:
$query->where('t.term = ' . $db->quote($token->term));
стало:
Код:
$query->where('(t.term = ' . $db->quote($token->term). ' OR t.stem = ' . $db->quote($token->stem). '  OR t.stem = ' . $db->quote($token->term). ')');
5. Проверяем работу.

кто нибудь прописывал?
*

ChaosHead

  • Гуру
  • 5242
  • 451 / 13
В версиях выше 3.3.6 - 3.4.0 мне эта часть не понадобилась. Работает без неё, как я написал выше. На меньших не пробовал.
« Последнее редактирование: 07.05.2015, 00:13:14 от ChaosHead »
*

slepoy

  • Давно я тут
  • 753
  • 24 / 0
  • Тотальная шизофазия
Цитировать
Ссылка на файл porter_ru.php: http://redozator.ru/files/porter_ru.zip. Чтобы его установить, нужно:
1. Поместить его в папку administrator/components/com_finder/helpers/indexer/stemmer/
2. В файле administrator/components/com_finder/config.xml ищем описание поля stemmer и вставляем строчку
Код
<option value="porter_ru">rus stemmer</option>
3. В админ. панели, в настройках умного поиска выбираем в поле Парадигматический модуль наш новый стеммер rus stemmer.

Классно. Это действительно позволяет при запросе "осьминог" отображать варианты с различным окончанием ("осьминога", "осьминогов", "осьминогу"). Этого достаточно, чтобы вернуться с Яндекс.Поиска на "Умный поиск".
Жаль, что это решение не позволяет искать по части слова "осьмин". >:( Но в целом очень рад такой находке.

Полагаю, ничего лучше в 2020 и не придумать? А то пользователи хотят выполнять поиск и по части слова.
Например, чтобы при поиске "Сбор" находился и "Сборник", при поиске "кот" находился и "который" и т.д.
Помог? Поставь(те) плюс в репутацию.
*

slepoy

  • Давно я тут
  • 753
  • 24 / 0
  • Тотальная шизофазия
Вот тут человек вносит в алгоритм небольшие изменения, поддерку суффиксов "ок", "ек". По слову "дружки" будет находиться "дружок" и подобное.
Здравствуйте. Подскажите, пожалуйста, где это обсуждается либо в какую строку (и место) файла porter_ru.php следует вписать суффиксы? Спасибо.
Код
    var $VOWEL = '/аеиоуыэюя/u';
    var $PERFECTIVEGROUND = '/((ив|ивши|ившись|ыв|ывши|ывшись)|((?<=[ая])(в|вши|вшись)))$/u';
    var $REFLEXIVE = '/(с[яь])$/u';
    var $ADJECTIVE = '/(ее|ие|ые|ое|ими|ыми|ей|ий|ый|ой|ем|им|ым|ом|его|ого|еых|ую|юю|ая|яя|ою|ею)$/u';
    var $PARTICIPLE = '/((ивш|ывш|ующ)|((?<=[ая])(ем|нн|вш|ющ|щ)))$/u';
    var $VERB = '/((ила|ыла|ена|ейте|уйте|ите|или|ыли|ей|уй|ил|ыл|им|ым|ены|ить|ыть|ишь|ую|ю)|((?<=[ая])(ла|на|ете|йте|ли|й|л|ем|н|ло|но|ет|ют|ны|ть|ешь|нно)))$/u';
    var $NOUN = '/(а|ев|ов|ие|ье|е|иями|ями|ами|еи|ии|и|ией|ей|ой|ий|й|и|ы|ь|ию|ью|ю|ия|ья|я)$/u';
    var $RVRE = '/^(.*?[аеиоуыэюя])(.*)$/u';
    var $DERIVATIONAL = '/[^аеиоуыэюя][аеиоуыэюя]+[^аеиоуыэюя]+[аеиоуыэюя].*(?<=о)сть?$/u';
Помог? Поставь(те) плюс в репутацию.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

В Joomla 2.5 VirtueMart 2.0.26d не работает добавление в корзину под мобилку

Автор kvintovskiy

Ответов: 8
Просмотров: 1883
Последний ответ 15.04.2024, 17:29:25
от Vastriet
Модуль устанавливается, но Joomla его не видит

Автор ruppert

Ответов: 20
Просмотров: 18236
Последний ответ 01.08.2022, 05:30:50
от rezon777
Как добавить описание к пункту меню в Joomla 2.5? (Как у материалов)?

Автор nia

Ответов: 7
Просмотров: 5937
Последний ответ 29.03.2021, 12:10:26
от sivers
Конструктор страниц (Page Builder) для Joomla 2.5

Автор nia

Ответов: 4
Просмотров: 1878
Последний ответ 14.03.2021, 12:17:35
от nia
[FAQ] Как убрать <meta name="generator" content="Joomla! 2.5 - Open Source Content Management" />

Автор neket

Ответов: 56
Просмотров: 316077
Последний ответ 05.11.2020, 20:00:15
от Grigoriy82