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

Cerhio

  • Захожу иногда
  • 109
  • 2 / 0
Подскажите, плиз, что править, чтоб убрать ссылки на большое изображение из полного вывода товара. VM 1.1.3
*

Mitrich

  • Захожу иногда
  • 289
  • 524 / 13
  • Все можно. Но сначала учиться, учиться и учиться.
Залезь в его flypage и удали
там все вполне читабельно
*

Cerhio

  • Захожу иногда
  • 109
  • 2 / 0
Код
<br style="clear:both;" />
<table border="0" style="width: 100%;">
  <tbody>
<tr>
<?php  if( $this->get_cfg('showManufacturerLink') ) { $rowspan = 5; } else { $rowspan = 4; } ?>
  <td width="33%" rowspan="<?php echo $rowspan; ?>" valign="top"><br/>
  <?php echo $product_image ?><br/><br/><?php echo $this->vmlistAdditionalImages( $product_id, $images ) ?></td>
  <td rowspan="1" colspan="2">
  <h1><?php echo $product_name ?> <?php echo $edit_link ?></h1>
  </td>
</tr>

ну вот кусок кода, я так понял, вот это

<?php echo $product_image ?>

отвечает за вывод картинки, причем уже сразу со ссылкой. а где эта переменная задается?

*

Cerhio

  • Захожу иногда
  • 109
  • 2 / 0
в итоге theme.php пришлось править. с моими познаниями пхп - практически наугад. вроде убрал
*

ipdesign

  • Осваиваюсь на форуме
  • 30
  • 1 / 0
Ребята привет!
Ковыряю файл flypage.tpl.php нужно вместо ссылки "Увеличить" вставить кнопку - обычное изображение.
изменял тут
Код
<td width="33%" rowspan="<?php echo $rowspan; ?>" valign="top"><br/>
  [b]<?php echo $product_image ?><br/><br/><?php echo $this->vmlistAdditionalImages( $product_id, $images ) ?>[/b]</td>
  <td rowspan="1" colspan="2">
пытался всунуть разными вариациями
Код
<a href="<?php echo $this->vmlistAdditionalImages( $product_id, $images ) ?>"> <img src="/..."/></a>
понял что нужно лезть вглубь копал файлы shop.product_details.php и vmproductsnapsots.php

Подскажите пожалуйста где лежит ответ и как (где) изменить переменную, которая выводит это слово "Увеличить"

Заранее спасибо.
*

beagler

  • Moderator
  • 3276
  • 392 / 4
  • https://alorisman.ru/
ответ лежит в shop.product_details.php
Алгоритм поиска.
С помощью, например, Total Commander ищешь в файлах сайта слово "Увеличить" (в кодировке UTF-8).
Находишь его в lang файлах и видишь название переменной.
Дальше также ишешь эту переменную и находишь её в shop.product_details.php
Всё.
*

ipdesign

  • Осваиваюсь на форуме
  • 30
  • 1 / 0
Спасибо огромное! нашёл и всё сделал, скажу даже больше, что в языковом файле russian.php  вместо названия ссылки "Увеличить" можно написать тэг изображения и всё отлично работает.
Код
'PHPSHOP_FLYPAGE_ENLARGE_IMAGE' => '<img src="http://.../images/big_img.png"/>',
*

Андрей777

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
  • Будь проще - потянутся люди
Подскажите, пожалуйста, что править, чтоб убрать ссылки на большое изображение из полного вывода товара. VM 1.1.3

У меня была другая задача - выводилась длинная линия перед словом "Увеличить"
Решал так:

В файле /components/com_virtuemart/themes/default/theme.php


Нужно заменить
            /* Build the "See Bigger Image" Link */
            if( @$_REQUEST['output'] != "pdf" && $this->get_cfg('useLightBoxImages', 1 ) ) {
               $link = $imageurl;
               $text = ps_product::image_tag($product['product_thumb_image'], $img_attributes, 0)."<br/>".$VM_LANG->_('PHPSHOP_FLYPAGE_ENLARGE_IMAGE');

               $product_image = vmCommonHTML::getLightboxImageLink( $link, $text, $product['product_name'], 'product'.$product['product_id'] );
            }
            elseif( @$_REQUEST['output'] != "pdf" ) {
               $link = $imageurl;
               $text = ps_product::image_tag($product['product_thumb_image'], $img_attributes, 0)."<br/>".$VM_LANG->_('PHPSHOP_FLYPAGE_ENLARGE_IMAGE');

на

            /* Build the "See Bigger Image" Link */
            if( @$_REQUEST['output'] != "pdf" && $this->get_cfg('useLightBoxImages', 1 ) ) {
               $link = $imageurl;
               $text = ps_product::image_tag($product['product_thumb_image'], $img_attributes, 0)."</a>";
                    $text2 = "<br/>".$VM_LANG->_('PHPSHOP_FLYPAGE_ENLARGE_IMAGE');
               $product_image = vmCommonHTML::getLightboxImageLink( $link, $text, $product['product_name'], 'product'.$product['product_id'] ).vmCommonHTML::getLightboxImageLink( $link, $text2, $product['product_name'], 'product'.$product['product_id'] );
            }
            elseif( @$_REQUEST['output'] != "pdf" ) {
               $link = $imageurl;
               $text = ps_product::image_tag($product['product_thumb_image'], $img_attributes, 0)."</a>";
               $text2 = "<br/>".$VM_LANG->_('PHPSHOP_FLYPAGE_ENLARGE_IMAGE');

Сорри за легкий оффтоп. Но то, что я привел, позволяет решить и Вашу проблему - в исходном коде
            /* Build the "See Bigger Image" Link */
            if( @$_REQUEST['output'] != "pdf" && $this->get_cfg('useLightBoxImages', 1 ) ) {
               $link = $imageurl;
               $text = ps_product::image_tag($product['product_thumb_image'], $img_attributes, 0)."<br/>".$VM_LANG->_('PHPSHOP_FLYPAGE_ENLARGE_IMAGE');

               $product_image = vmCommonHTML::getLightboxImageLink( $link, $text, $product['product_name'], 'product'.$product['product_id'] );
            }
            elseif( @$_REQUEST['output'] != "pdf" ) {
               $link = $imageurl;
               $text = ps_product::image_tag($product['product_thumb_image'], $img_attributes, 0)."<br/>".$VM_LANG->_('PHPSHOP_FLYPAGE_ENLARGE_IMAGE');

нужно просто удалить

"<br/>".$VM_LANG->_('PHPSHOP_FLYPAGE_ENLARGE_IMAGE')

Спасибо за ответы ,аналогичную проблему быстро решил!  а не подскажите как вообще картинку сделать не кликабельной
*

johny_nk

  • Осваиваюсь на форуме
  • 37
  • 6 / 0
у меня вот такой вариант, ссылка "Увеличить" - убрана, полоски рядом с ней тоже нет

файл components\com_virtuemart\themes\default\theme.php

Код
/* Build the "See Bigger Image" Link */
            if( @$_REQUEST['output'] != "pdf" && $this->get_cfg('useLightBoxImages', 1 ) ) {
               $link = $imageurl;
               $text = ps_product::image_tag($product['product_thumb_image'], $img_attributes, 0)."<br/>".$VM_LANG->_('PHPSHOP_FLYPAGE_ENLARGE_IMAGE');

               $product_image = vmCommonHTML::getLightboxImageLink( $link, $text, $product['product_name'], 'product'.$product['product_id'] );
            }
            elseif( @$_REQUEST['output'] != "pdf" ) {
               $link = $imageurl;
               $text = ps_product::image_tag($product['product_thumb_image'], $img_attributes, 0)."<br/>".$VM_LANG->_('PHPSHOP_FLYPAGE_ENLARGE_IMAGE');

заменить на

Код
/* Build the "See Bigger Image" Link */
            if( @$_REQUEST['output'] != "pdf" && $this->get_cfg('useLightBoxImages', 1 ) ) {
               $link = $imageurl;
               $text = ps_product::image_tag($product['product_thumb_image'], $img_attributes, 0)."</a>";
                    $text2 = "<br/>".$VM_LANG->_('PHPSHOP_FLYPAGE_ENLARGE_IMAGE');
               $product_image = vmCommonHTML::getLightboxImageLink( $link, $text, $product['product_name'], 'product'.$product['product_id'] );           
}            elseif( @$_REQUEST['output'] != "pdf" ) {
               $link = $imageurl;
               $text = ps_product::image_tag($product['product_thumb_image'], $img_attributes, 0)."</a>";
               $text2 = "<br/>".$VM_LANG->_('PHPSHOP_FLYPAGE_ENLARGE_IMAGE');
*

kerya8080

  • Захожу иногда
  • 53
  • 3 / 0
а можно описать подробней, как сделать? Например оставить кнопку Увеличить и рядом добавить картинку лупа. В какую папку картинку поместить? и какой путь написать?
*

Di4master

  • Осваиваюсь на форуме
  • 31
  • 2 / 0
Цитировать
а не подскажите как вообще картинку сделать не кликабельной

ответ есть в этой теме http://joomlaforum.ru/index.php/topic,91708.0.html
« Последнее редактирование: 26.01.2010, 22:12:57 от beagler »
*

tigra-uki

  • Давно я тут
  • 565
  • 11 / 0
  • Joom'лiстка
Есть вариант "Увеличить" по-другому:
в components\com_virtuemart\themes\default\theme.php

Приблизительно в строке 85
$text=ps_product::image_tag($product['product_thumb_image'], $img_attributes, 0)."<br>".$VM_LANG->_(’PHPSHOP_FLYPAGE_ENLARGE_IMAGE’);

 убираем
."<br>".$VM_LANG->_(’PHPSHOP_FLYPAGE_ENLARGE_IMAGE’)
Слишком сконцентрированное внимание необходимо разбавлять действием.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Настройки отображения товара

Автор wectra

Ответов: 2
Просмотров: 5706
Последний ответ 12.07.2017, 22:12:27
от wectra
Несколько изображений для товара/ Лупа для изображения/ Magic Zoom

Автор antoha333

Ответов: 41
Просмотров: 28235
Последний ответ 13.11.2015, 16:08:16
от sonics
Как реализовать на VirtueMart такую карточку товара?

Автор AdmbVlad

Ответов: 0
Просмотров: 3337
Последний ответ 14.10.2015, 17:01:55
от AdmbVlad
Вставить картинку в карточку товара через URL и создать его миниатюру

Автор sashgera

Ответов: 8
Просмотров: 4222
Последний ответ 14.02.2015, 21:12:46
от sashgera
Как изменить сортировку товара ?

Автор Timer

Ответов: 0
Просмотров: 2435
Последний ответ 21.01.2015, 23:49:28
от Timer