Новости Joomla

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

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

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

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

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

Читать статью на Хабре.

@joomlafeed

🏆 Открыто голосование за 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 Гость просматривают эту тему.
  • 18 Ответов
  • 7262 Просмотров
*

freeslim

  • Осваиваюсь на форуме
  • 35
  • 0 / 0
Описание категорий
« : 10.06.2009, 10:00:07 »
Блин, просмотрел форум по дизайну VM но так ничего и не нашел. Подскажите, как сделать следующее: на главной странице отображаются категории с описанием. У меня просто название с картинками, когда уже выбираешь категорию, то только в ней есть описание.
*

Lann

  • Захожу иногда
  • 133
  • 5 / 1
Re: Описание категорий
« Ответ #1 : 01.07.2009, 18:11:56 »
АП. поддерживаю.

скажу - первый уровень категорий тут находится categoryChildlist.tpl.php, а вот 2-ой уровень - там где есть описание - тут browse_header_category.tpl.php и описание выводится:
Код
echo $desc;

Ессно что перенести это в categoryChildlist.tpl.php не катит. Подскажите как сделать доступными описания на 1-м уровне?
*

Lann

  • Захожу иногда
  • 133
  • 5 / 1
Описание категорий
« Ответ #2 : 02.07.2009, 11:11:13 »
решение=======

Шаг 1

Добавляем в /administrator/components/com_VirtueMart/classes/ps_product_category.php  2 вещи. Отмечены красным.

   /**
    * creates a bulleted of the childen of this category if they exist
    * @author pablo
    * @param int $category_id
    * @return string The HTML code
    */
   function get_child_list($category_id) {
      global $sess, $ps_product, $VM_LANG;
      $ps_vendor_id = $_SESSION["ps_vendor_id"];
      $db = new ps_DB;
      $childs = array();
      
     $q = "SELECT category_id, category_thumb_image, category_description, category_child_id,category_name FROM #__{vm}_category,#__{vm}_category_xref ";

      $q .= "WHERE #__{vm}_category_xref.category_parent_id='$category_id' ";
      $q .= "AND #__{vm}_category.category_id=#__{vm}_category_xref.category_child_id ";
      $q .= "AND #__{vm}_category.vendor_id='$ps_vendor_id' ";
      $q .= "AND #__{vm}_category.category_publish='Y' ";
      $q .= "ORDER BY #__{vm}_category.list_order, #__{vm}_category.category_name ASC";
      $db->setQuery($q);
      $db->query();

     ......

      while( $db->next_record() ) {
         $childs[] = array (
                     'category_name' =>  $db->f("category_name"),
                     'category_id' => $db->f("category_id"),
                     'category_thumb_image' => $db->f("category_thumb_image"),
                    'category_description' => $db->f("category_description"),
                     'number_of_products' => ps_product_category::products_in_category( $db->f("category_id")),
                  );
      }
      return $childs;
   }
    ......

Шаг 2

Теперь в файле /components/com_VirtueMart/themes/your_theme/templates/common/categoryCildlist.tpl.php  добавляем вывод описания. В любое место какое вам захочется.

    ......
   <td align="left" valign="top" width="<?php echo $cellwidth ?>%" >
      <br />
         <a title="<?php echo $category["category_name"] ?>" href="<?php $sess->purl(URL."index.php?option=com_VirtueMart&amp;page=shop.browse&amp;category_id=".$category["category_id"]) ?>">
         <?php
         echo $category["category_name"];
         echo $category['number_of_products']. "<br />\n";
         if ( $category["category_thumb_image"] ) {
            echo ps_product::image_tag( $category["category_thumb_image"], "alt=\"".$category["category_name"]."\"", 0, "category");
 
         echo "<br />\n";
         }
         ?>
   </a>
<?php echo $category["category_description"]; ?>
       <br/>
   </td>
    ......

Решение взято с форума поддержки VM. http://forum.virtuemart.net
« Последнее редактирование: 02.07.2009, 11:28:03 от smart »
*

era

  • Администратор
  • 1588
  • 392 / 5
  • В туалете лучше быть пользователем, чем админом.
Re: Описание категорий
« Ответ #3 : 02.07.2009, 12:50:38 »
Да, можно было, но я, например, от силы раз в год связываюсь с VM, как и многие другие, поэтому я его не знаю досконально например.
*

Lann

  • Захожу иногда
  • 133
  • 5 / 1
Re: Описание категорий
« Ответ #4 : 02.07.2009, 12:54:19 »
я имел виду не конкретно Вас - era - а, обобщая, вас - т.е. модераторов раздела, группу развития, и т.п.
*

freeslim

  • Осваиваюсь на форуме
  • 35
  • 0 / 0
Re: Описание категорий
« Ответ #5 : 02.07.2009, 13:58:51 »
спасибо, что решили проблему с категориями
*

Mihalich41

  • Захожу иногда
  • 106
  • 1 / 0
Re: Описание категорий
« Ответ #6 : 23.12.2009, 16:08:56 »
Очень полезное решение! Lann спасибо! Только я вот хочу что бы под картинкой вместо описания шел список подкатегорий этой категории. Конечно можно в ручную просто в описание вставить (я так и сделал, а что поделаешь хоть как-то), но мне бы очень хотелось решить её по-нормальному.
*

Lann

  • Захожу иногда
  • 133
  • 5 / 1
Re: Описание категорий
« Ответ #7 : 23.12.2009, 16:36:20 »
не сори, я не кодер. но есть модули вывода категорий вм`a. можно вывести в виде дерева все каты с подкатами...
*

Mihalich41

  • Захожу иногда
  • 106
  • 1 / 0
Re: Описание категорий
« Ответ #8 : 23.12.2009, 17:54:17 »
ну да есть стандартный модуль VirtueMart Product Categories, переделать его и сделать главной страницей интернет-магазина, тоже вариант=) но хотелось бы что-то более практичное ^-^
*

Lann

  • Захожу иногда
  • 133
  • 5 / 1
Re: Описание категорий
« Ответ #9 : 23.12.2009, 18:49:06 »
ну так а в чем не практичность то модуля?
*

Mihalich41

  • Захожу иногда
  • 106
  • 1 / 0
Re: Описание категорий
« Ответ #10 : 28.12.2009, 12:41:14 »
не практичность, в том что его структуру переделывать надо полностью...
*

beagler

  • Moderator
  • 3276
  • 392 / 4
  • https://alorisman.ru/
Re: Описание категорий
« Ответ #11 : 28.12.2009, 14:49:50 »
я имел виду не конкретно Вас - era - а, обобщая, вас - т.е. модераторов раздела, группу развития, и т.п.
А чем, собственно, модераторы не угодили?
Читайте правила форума - "Модераторы не являются штатным ответчиками на любые вопросы"
*

terr

  • Давно я тут
  • 824
  • 14 / 6
  • Ученик html-я
Re: Описание категорий
« Ответ #12 : 03.12.2010, 14:31:04 »
описание находится под категорией а как сделать чтобы было с права от картикни категории?
*

Информатор

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Re: Описание категорий
« Ответ #13 : 13.06.2011, 11:28:34 »
Существует ли решение с помощью модуля?
*

prestig

  • Осваиваюсь на форуме
  • 12
  • 2 / 0
Re: Описание категорий
« Ответ #14 : 13.06.2011, 16:11:06 »
У меня категории (картинка+категория+подкатегория+кол-во товара) выводит модуль - mod_frontpage_categories
*

Информатор

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Re: Описание категорий
« Ответ #15 : 13.06.2011, 18:59:15 »
Описаний самих не видно
*

den_master

  • Захожу иногда
  • 62
  • 0 / 2
Re: Описание категорий
« Ответ #16 : 23.06.2011, 13:31:07 »
решение=======

Шаг 1

Добавляем в /administrator/components/com_VirtueMart/classes/ps_product_category.php  2 вещи. Отмечены красным.

   /**
    * creates a bulleted of the childen of this category if they exist
    * @author pablo
    * @param int $category_id
    * @return string The HTML code
    */
   function get_child_list($category_id) {
      global $sess, $ps_product, $VM_LANG;
      $ps_vendor_id = $_SESSION["ps_vendor_id"];
      $db = new ps_DB;
      $childs = array();
     
     $q = "SELECT category_id, category_thumb_image, category_description, category_child_id,category_name FROM #__{vm}_category,#__{vm}_category_xref ";

      $q .= "WHERE #__{vm}_category_xref.category_parent_id='$category_id' ";
      $q .= "AND #__{vm}_category.category_id=#__{vm}_category_xref.category_child_id ";
      $q .= "AND #__{vm}_category.vendor_id='$ps_vendor_id' ";
      $q .= "AND #__{vm}_category.category_publish='Y' ";
      $q .= "ORDER BY #__{vm}_category.list_order, #__{vm}_category.category_name ASC";
      $db->setQuery($q);
      $db->query();

     ......

      while( $db->next_record() ) {
         $childs[] = array (
                     'category_name' =>  $db->f("category_name"),
                     'category_id' => $db->f("category_id"),
                     'category_thumb_image' => $db->f("category_thumb_image"),
                     'category_description' => $db->f("category_description"),
                     'number_of_products' => ps_product_category::products_in_category( $db->f("category_id")),
                  );
      }
      return $childs;
   }
    ......

Шаг 2

Теперь в файле /components/com_VirtueMart/themes/your_theme/templates/common/categoryCildlist.tpl.php  добавляем вывод описания. В любое место какое вам захочется.

    ......
   <td align="left" valign="top" width="<?php echo $cellwidth ?>%" >
      <br />
         <a title="<?php echo $category["category_name"] ?>" href="<?php $sess->purl(URL."index.php?option=com_VirtueMart&amp;page=shop.browse&amp;category_id=".$category["category_id"])?>">
         <?php
         echo $category["category_name"];
         echo $category['number_of_products']. "<br />\n";
         if ( $category["category_thumb_image"] ) {
            echo ps_product::image_tag( $category["category_thumb_image"], "alt=\"".$category["category_name"]."\"", 0, "category");
 
         echo "<br />\n";
         }
         ?>
   </a>
<?php echo $category["category_description"]; ?>
       <br/>
   </td>
    ......

Решение взято с форума поддержки VM. http://forum.virtuemart.net




спасибо помогло  но в шаге два мне нуно было вводить
 вот так  echo $category["category_description"];
*

den_master

  • Захожу иногда
  • 62
  • 0 / 2
Re: Описание категорий
« Ответ #17 : 28.06.2011, 16:30:06 »
в одном шаблоне ентот файл есть  categoryCildlist.tpl.php
а как сделать если его нет в другом шаблоне там есть только minicart.tpl.php
и еще вопросик когда делаеш по примеру приведенному выше
при нажатии на ссылку категории при открытие категории там всеж остается описание ентой категории подскажите как его оттуда убрать
чтобы было просто подкатегория с ее описанием заранее спасибо
*

den_master

  • Захожу иногда
  • 62
  • 0 / 2
Re: Описание категорий
« Ответ #18 : 28.06.2011, 22:14:07 »
что ни кто не знает на локалке работает а здесь вот что вышло
http://denmaster.sz3.ru/index.php?option=com_virtuemart&Itemid=64
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Описание категории опустить под товары

Автор angelo4ek-001

Ответов: 5
Просмотров: 3193
Последний ответ 12.11.2015, 01:53:39
от fsv
Альтернативный модуль вывода категорий товаров (mod_kdz_vm_categories)

Автор kordima

Ответов: 89
Просмотров: 30752
Последний ответ 19.02.2015, 22:02:14
от kordima
Не заполняется "Описание категории"

Автор atlantavto2011

Ответов: 0
Просмотров: 1634
Последний ответ 07.07.2014, 18:21:48
от atlantavto2011
Поменять местами категории и описание главной страницы VirtueMart

Автор mrmaster

Ответов: 18
Просмотров: 12697
Последний ответ 27.02.2014, 04:09:04
от artserge
Вывод модуля везде, кроме определенных категорий

Автор katjuha6

Ответов: 18
Просмотров: 4837
Последний ответ 13.01.2014, 15:24:40
от Fedor Vlasenko