Новости Joomla

👩‍💻 События плагинов и порядок их срабатывания при работе с пользовательскими полями 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 Гость просматривают эту тему.
  • 3 Ответов
  • 2950 Просмотров
*

Ser_g

  • Осваиваюсь на форуме
  • 41
  • 0 / 0
Внешний вид модуля latestprod
« : 12.03.2012, 23:26:12 »
Всем привет. Тут меня немного вогнал в ступор модуль mod_virtuemart_latestprod.
У меня VirtueMart 1.1.9 stable, Joomla 1.5.22

Вобщем не могу понять как поменять внешний вид отображаемого товара в этом модуле, а именно поменять местами блоки (картинку с названием и добавить краткое описание).
Сейчас товар в модуле отображается так:



а по задумке должен выглядеть так (конпку добавления в карзину не вопрос.):



Вот собственно код /modules/mod_virtuemart_latestprod/mod_virtuemart_latestprod.php
Код
<?php
if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' );
/* Latest Products Module
*
* @version $Id: mod_virtuemart_latestprod.php 1159 2008-01-14 20:30:30Z soeren_nb $
* @package VirtueMart
* @subpackage modules
*
* @copyright (C) 2000 - 2004 Mr PHP
// W: www.mrphp.com.au
// E: info@mrphp.com.au
// P: +61 418 436 690
* Conversion to Mambo and the rest:
* @copyright (C) 2004-2005 Soeren Eberhardt
*
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
* VirtueMart is Free Software.
* VirtueMart comes with absolute no warranty.
*
* www.virtuemart.net
*/

global $mosConfig_absolute_path;
// 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' );
}

$max_items = $params->get( 'max_items', 2 ); //maximum number of items to display
$category_id = $params->get( 'category_id', null ); // Display products from this category only
$display_style = $params->get( 'display_style', "vertical" ); // Display Style
$products_per_row = $params->get( 'products_per_row', 4 ); // Display X products per Row
$show_price = (bool)$params->get( 'show_price', 1 ); // Display the Product Price?
$show_addtocart = (bool)$params->get( 'show_addtocart', 1 ); // Display the "Add-to-Cart" Link?

require_once( CLASSPATH . 'ps_product.php');
$ps_product = new ps_product;


$db =& new ps_DB;
$q  = "SELECT DISTINCT product_sku FROM #__{vm}_product, #__{vm}_product_category_xref, #__{vm}_category WHERE ";
$q .= "product_parent_id=''";
$q .= "AND #__{vm}_product.product_id=#__{vm}_product_category_xref.product_id ";
$q .= "AND #__{vm}_category.category_id=#__{vm}_product_category_xref.category_id ";
if( !empty( $category_id ) ) {
$q .= "AND #__{vm}_category.category_id='$category_id' ";
}
if( CHECK_STOCK && PSHOP_SHOW_OUT_OF_STOCK_PRODUCTS != "1") {
$q .= " AND product_in_stock > 0 ";
}
$q .= "AND #__{vm}_product.product_publish='Y' ";
$q .= "ORDER BY #__{vm}_product.product_id DESC ";
$q .= "LIMIT 0, $max_items ";
$db->query($q);

if( $db->num_rows() > 0 ){ ?>
      <table  width="100%"  cellpadding="0" cellspacing="30">        
        <?php
        $i = 0;
        while($db->next_record() ){
if ($i%2)
$sectioncolor = "sectiontableentry2";
else
$sectioncolor = "sectiontableentry1";
              
if( $display_style == "vertical" ) {
?>
<tr  cellspacing="30"align="center" class="<?php echo $sectioncolor ?>">
<td ><?php show_snapshot($db ->$ps_product->f("product_sku"), $show_price, $show_addtocart); ?><br /></td>
</tr>
<?php
}
elseif( $display_style== "horizontal" ) {
if( $i == 0 )
echo "<tr>\n";
echo "<td align=\"center\">";
$ps_product->show_snapshot($db->f("product_sku"), $show_price, $show_addtocart);
echo "</td>\n";
if( ($i+1) == $max_items )
echo "</tr>\n";
}
elseif( $display_style== "table" ) {
if( $i == 0 )
echo "<tr>\n";
echo "<td align=\"center\">";
$ps_product->show_snapshot($db->f("product_sku"), $show_price, $show_addtocart);
echo "</td>\n";
if ( ($i+1) % $products_per_row == 0)
echo "</tr><tr>\n";
if( ($i+1) == $max_items )
echo "</tr>\n";
}
$i++;
        }
?>
</table>
<?php
}
?>

Я в PHP не силен, начинающий, я больше по дизайну, поэтому немного не въеду как поменять местами запросы чтобы они отображались как в макете.
Подскажите что править нужно? Хелпми
*

Ser_g

  • Осваиваюсь на форуме
  • 41
  • 0 / 0
Re: Внешний вид модуля latestprod
« Ответ #1 : 14.03.2012, 23:02:42 »
мда.. столько помощников, не знаешь кого слушать..
*

beagler

  • Moderator
  • 3276
  • 392 / 4
  • https://alorisman.ru/
Re: Внешний вид модуля latestprod
« Ответ #2 : 15.03.2012, 00:48:47 »
вся соль - в $ps_product->show_snapshot
шаблон в /components/com_virtuemart/themes/default/templates/common/productsnapshot.tpl.php

И сарказма поменьше - Вы не первый с таким вопросом, пользуйтесь поиском...
*

Ser_g

  • Осваиваюсь на форуме
  • 41
  • 0 / 0
Re: Внешний вид модуля latestprod
« Ответ #3 : 18.03.2012, 14:16:30 »
Спасибо за подсказу! Разобрался, все получилось.

Цитировать
сарказма поменьше
прошу прощения, не хотел обидеть, думал просто оперативно ответят.
Поиском пользовался, но не нашел решения.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Показ модуля на странице товара только

Автор EmAl

Ответов: 24
Просмотров: 4427
Последний ответ 27.05.2014, 08:15:01
от Mitriy-Bug
Вывод модуля везде, кроме определенных категорий

Автор katjuha6

Ответов: 18
Просмотров: 4912
Последний ответ 13.01.2014, 15:24:40
от Fedor Vlasenko
Отображение модуля фильтра товара на странице товара

Автор Gnom41k

Ответов: 0
Просмотров: 1229
Последний ответ 17.12.2012, 22:13:19
от Gnom41k
Как отключить показ модуля поиска при показе карточки товара?

Автор ixdit

Ответов: 7
Просмотров: 1824
Последний ответ 29.11.2012, 10:53:16
от dstavropolskij
Каталог товара (внешний вид)

Автор prostoy

Ответов: 3
Просмотров: 1731
Последний ответ 16.11.2012, 08:25:46
от prostoy