Новости Joomla

Вышли релизы Joomla 6.0.3 и Joomla 5.4.3

Релиз Joomla 6.0.3 и Joomla 5.4.3

Проект Joomla рад сообщить о выпуске Joomla 6.0.3 и Joomla 5.4.3. Это релиз исправлений ошибок и улучшений для серии Joomla 6.0 и Joomla 5.4.

👩‍💻 События плагинов и порядок их срабатывания при работе с пользовательскими полями Joomla и использовании FieldsHelper.

👩‍💻 События плагинов и порядок их срабатывания при работе с пользовательскими полями Joomla и использовании FieldsHelper.

В процессе работы с Joomla бывает необходимо работать с пользовательским интерфейсом более тонко, чем обычно. Все формы Joomla состоят из стандартных полей, содержанием, стилем отображения, состоянием (включено/выключено, доступно для редактирования или нет и т.д.) можно управлять с помощью плагинов. Да и для нестандартных проектов хорошей практикой является создание одного системного или нескольких плагинов групп "под проект", в которых храниться весь "нестандарт".

В этой статье описаны все триггеры, которые вызываются через Event Dispatcher из administrator/components/com_fields/src/Helper/FieldsHelper.php, с привязкой к жизненному циклу (порядку этапов работы запроса), аргументам, изменяемым данным и дальнейшему распространению по Joomla. Это поможет вам работать с Joomla свободнее и не опасаясь при этом потерять изменения при очередном обновлении движка.

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

🏆 Открыто голосование за Joomla в премии CMS Critic People’s Choice Awards 2025

🏆 Открыто голосование за Joomla в  премии CMS Critic People’s Choice Awards 2025

🗓 Голосование продлится до 27 февраля 2026 года.

👩‍💻 Проголосовать! 👩‍💻

Номинации, в которых можно проголосовать за Joomla:
⭐️ Best Free CMS
⭐️ Best Open Source CMS
⭐️ Best Enterprise CMS

Также в номинации Best e-Commerce Solution участвуют компоненты интернет-магазинов для Joomla:
⭐️ HikaShop
⭐️ Virtuemart

В номинации Best Website Builder оказались:
⭐️ YooTheme
⭐️ SP Page Builder

Что такое CMS Critic Awards?
С 2012 года премия CMS Critic Awards занимает особое место в сообществе систем управления контентом (CMS). Это единственный в своем роде сайт, который составляет рейтинг системы управления контентом и связанных с ними решений на рынке — от малого до крупного и подчеркивает их инновации и услуги.

Каждый год награда CMS Critic Awards присуждается одному победителю в различных отраслевых категориях, таких как: «Лучшая облачная CMS», «Лучший DXP», «Лучшая Headless CMS и других. Затем результаты оглашаются через СМИ вместе с выбором редакции CMS Critic.
В этом году премия вернулась к своим традициям и только TOP-5 движков по количеству номинаций попали в 2-й этап - голосование.

@joomlafeed

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

zmeyx

  • Захожу иногда
  • 144
  • 7 / 0
  • http://www.nt1.su
Необходимо доаботать поиск VirtueMart. нужно в поиск добавить выбор производителя.  сделать как на сайте http://www.vseinstrumenti.ru/ т.е. ограничить поиск только товарами выбранного производителя.
Готов заплатить в разумных пределах за доработанный модуль....
Сам в PHP не разбираюсь, но так понимаю что работы не особо много.... в общих чертах - объединить 2 модуля mod_virtuemart_search и mod_virtuemart_manufacturers.
Буду благодарен за помощь
*

beagler

  • Moderator
  • 3276
  • 392 / 4
  • https://alorisman.ru/
не проверял, кошелек в профиле
Код
<?php
if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' );
/**
* VirtueMart Search Module
* NOTE: THIS MODULE REQUIRES THE PHPSHOP COMPONENT FOR MOS!
*
* @version $Id: mod_virtuemart_search.php 1159 2008-01-14 20:30:30Z soeren_nb $
* @package VirtueMart
* @subpackage modules
*
* @copyright (C) 2004-2007 soeren
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
* VirtueMart is Free Software.
* VirtueMart comes with absolute no warranty.
*
* www.virtuemart.net
*/

// Load the VirtueMart main parse code
if( file_exists(dirname(__FILE__).'/../../components/com_virtuemart/virtuemart_parser.php' )) {
require_once( dirname(__FILE__).'/../../components/com_virtuemart/virtuemart_parser.php' );
} else {
require_once( dirname(__FILE__).'/../components/com_virtuemart/virtuemart_parser.php' );
}

global $VM_LANG, $mm_action_url, $sess;

$query_all  = "SELECT m.manufacturer_id,m.mf_name FROM #__{vm}_manufacturer m ";
$query_all .= "ORDER BY m.mf_name ASC";

$db = new ps_DB;
$db->query( $query_all );
$res = $db->record;
$mans='';
foreach( $res as $manufacturer) {
$mans.="<option value=\"".$manufacturer->manufacturer_id ."\" >". $manufacturer->mf_name ."</option>\n"
}
?>
<!--BEGIN Search Box -->
<form action="<?php $sess->purl( $mm_action_url."index.php?page=shop.browse" )?>" method="post">

<p><label for="keyword"><?php echo $VM_LANG->_('PHPSHOP_SEARCH_LBL')?></label></p>
<p>
<input name="keyword" type="text" size="12" title="<?php echo $VM_LANG->_('PHPSHOP_SEARCH_TITLE')?>" class="inputbox" id="keyword"  />
<select class="inputbox" name="manufacturer_id">
            <option value=""><?php echo $VM_LANG->_('PHPSHOP_SELECT')?></option>
<?php echo $mans ?>
</select>
<input class="button" type="submit" name="Search" value="<?php echo $VM_LANG->_('PHPSHOP_SEARCH_TITLE')?>" />
</p>
</form>
<!-- End Search Box -->
*

zmeyx

  • Захожу иногда
  • 144
  • 7 / 0
  • http://www.nt1.su
Спасибо огромное за решение... кошельком в профиле воспользовался)))
в коде всего одна маленькая ошибочка исправленный и рабочий код ниже
Код
<?php
if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' );
/**
* VirtueMart Search Module
* NOTE: THIS MODULE REQUIRES THE PHPSHOP COMPONENT FOR MOS!
*
* @version $Id: mod_virtuemart_search.php 1159 2008-01-14 20:30:30Z soeren_nb $
* @package VirtueMart
* @subpackage modules
*
* @copyright (C) 2004-2007 soeren
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
* VirtueMart is Free Software.
* VirtueMart comes with absolute no warranty.
*
* www.virtuemart.net
*/

// Load the VirtueMart main parse code
if( file_exists(dirname(__FILE__).'/../../components/com_virtuemart/virtuemart_parser.php' )) {
require_once( dirname(__FILE__).'/../../components/com_virtuemart/virtuemart_parser.php' );
} else {
require_once( dirname(__FILE__).'/../components/com_virtuemart/virtuemart_parser.php' );
}

global $VM_LANG, $mm_action_url, $sess;

$query_all  = "SELECT m.manufacturer_id,m.mf_name FROM #__{vm}_manufacturer m ";
$query_all .= "ORDER BY m.mf_name ASC";

$db = new ps_DB;
$db->query( $query_all );
$res = $db->record;
$mans='';
foreach( $res as $manufacturer) {
$mans.="<option value=\"".$manufacturer->manufacturer_id ."\" >". $manufacturer->mf_name ."</option>\n" }; ?>
<!--BEGIN Search Box -->
<form action="<?php $sess->purl( $mm_action_url."index.php?page=shop.browse" )?>" method="post">

<p><label for="keyword"><?php echo $VM_LANG->_('PHPSHOP_SEARCH_LBL')?></label></p>
<p>
<input name="keyword" type="text" size="12" title="<?php echo $VM_LANG->_('PHPSHOP_SEARCH_TITLE')?>" class="inputbox" id="keyword"  />
<select class="inputbox" name="manufacturer_id">
            <option value=""><?php echo $VM_LANG->_('PHPSHOP_SELECT')?></option>
<?php echo $mans ?>
</select>
<input class="button" type="submit" name="Search" value="<?php echo $VM_LANG->_('PHPSHOP_SEARCH_TITLE')?>" />
</p>
</form>
<!-- End Search Box -->

ЗЫ ошибка была в синтаксисе одной ";" не хватало
*

beagler

  • Moderator
  • 3276
  • 392 / 4
  • https://alorisman.ru/
вполне могла быть ошибка - не проверял.
Бонус - вместо
Код
<input name="keyword" type="text" size="12" title="<?php echo $VM_LANG->_('PHPSHOP_SEARCH_TITLE')?>" class="inputbox" id="keyword"  />
вставьте
Код
<input name="keyword" type="text" size="12" title="<?php echo $VM_LANG->_('PHPSHOP_SEARCH_TITLE')?>" class="inputbox" type="text" id="keyword" value="введите название товара" onblur="if(this.value=='') this.value='введите название товара';" onfocus=" if(this.value=='введите название товара' || keyword.value=='Слишком короткая фраза!') this.value='';"/>

Только сохраните файл в кодировке UTF без BOM
*

witalikm

  • Новичок
  • 2
  • 0 / 0
Спасибо! полезный материал,
есть небольшой вопрос, чтобы вывести все товары определенного производителя необходимо:
1. в поле поиска поставить * или %
2. выбрать производителя
3. Нажать кнопку поиска,
но не все пользователи знают об первом пункте про значки * или %,
где подправить код:
1. чтоб пользователь не меняя поле поиска, где стоит надпись "введите название товара",
2. выбрал производителя
3. Нажать кнопку поиска
И вывелись товары выбранного производителя как и со значками * или %
Спасибо!
*

witalikm

  • Новичок
  • 2
  • 0 / 0
Проблему решил, оказалось чтобы вывести все товары одного производителя достаточно:
1. Выбрать из выпадающего списка производителя
2. Поле поиска оставить пустым (* или % - не нужны)
3. Нажать кнопку поиска
То есть не использовать JavaScript кода:
Код
<input name="keyword" type="text" size="12" title="<?php echo $VM_LANG->_('PHPSHOP_SEARCH_TITLE')?>" class="inputbox" type="text" id="keyword" value="введите название товара" onblur="if(this.value=='') this.value='введите название товара';" onfocus=" if(this.value=='введите название товара' || keyword.value=='Слишком короткая фраза!') this.value='';"/>
А использовать
Код
<input name="keyword" type="text" size="12" title="<?php echo $VM_LANG->_('PHPSHOP_SEARCH_TITLE')?>" class="inputbox" id="keyword"  />

Весь день ломал голову, искал способ как при нажатии кнопки поиска в поле поиска заменять текст "введите название товара" на *
но так и не получилось, оказался выход проще.

Если кто подскажет (а в инете я не нашел), как на лету при отправке формы подменять value текстового поля, было бы замечательно.
пробовал организовать это на JavaScript не получилось, а вот на php не знаю где копать?
Спасибо!
*

beagler

  • Moderator
  • 3276
  • 392 / 4
  • https://alorisman.ru/
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

VirtueMart - SMS уведомления о сделаном заказе.

Автор bork

Ответов: 42
Просмотров: 25254
Последний ответ 26.07.2021, 22:11:25
от Oleg91
Отчеты и статистика для VirtueMart

Автор 4kict

Ответов: 25
Просмотров: 12040
Последний ответ 14.01.2021, 00:09:53
от gartes
IceVmCart - новый бесплатный модуль корзины для VirtueMart

Автор Grig2009

Ответов: 105
Просмотров: 56724
Последний ответ 05.02.2017, 11:44:02
от Super_Panda
Модуль недавно просмотренные товары для VirtueMart 1.1.X

Автор aleks_yug

Ответов: 97
Просмотров: 31139
Последний ответ 25.10.2016, 15:03:07
от Igoritaly
Хаки для убыстрения VirtueMart (уменьшение запросов и т.п.)

Автор yadrinez

Ответов: 197
Просмотров: 83921
Последний ответ 05.02.2016, 21:53:34
от flyingspook