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

jurij-58-52

  • Новичок
  • 4
  • 0 / 0
Пошаговое руководство по созданию магазина на базе Joomla 3

Если найдете неточности пишите добавляйте новый функционал. Совместными усилиями создадим магазин. Из своего окна вижу как команда VirtueMart сильно бледная нервно курит дрожащими руками сигареты    *DRINK*

1
Устанавливаем движок, создаем категорию (например «Нетбуки»), добавляем в нее несколько статей (например нетбук 1, нетбук 2...).
Создаем пункт меню «Нетбуки» связанный с данной категорией.

2
Открываем   phpMyAdmin   в таблице   xxx_content   создаем новое поле   price   (тип поля smallint)
Для наглядности сразу заполняем его ценами для ранее созданных нетбуков

3
Правим языковый файл
language\ru-RU\ru-RU.com_content.ini
В конец дописываем
COM_CONTENT_PRICE="Цена: "
COM_CONTENT_P=" руб."

4
Правим файл
components/com_content/models/forms/article.xml
почти в самом начале после кода
<?xml version="1.0" encoding="utf-8"?>
<form>
   <fieldset addfieldpath="/administrator/components/com_categories/models/fields">
      <field
         id="id"
         name="id"
         type="hidden"
         class="inputbox"
         label="COM_CONTENT_ID_LABEL"
         size="10"
         default="0"
         readonly="true" />

вставляем
<field
id="price"
name="price"
type="text"
label="JFIELD_ALIAS_LABEL_1"
description="JFIELD_ALIAS_DESC_1"
class="inputbox"
size="30" />

5
Правим файл
/administrator/components/com_content/models/form/article.xml
Почти в самом начале после кода
<?xml version="1.0" encoding="utf-8"?>
<form>
   <fieldset addfieldpath="/administrator/components/com_categories/models/fields" >

Вставляем
id="price"
name="price"
type="text"
label="JFIELD_ALIAS_LABEL_1"
description="JFIELD_ALIAS_DESC_1"
class="inputbox"
size="30" />

6
Правим файл
/components/com_content/views/article/tmpl/default.php
После строк
   <?php if (isset ($this->item->toc)) :
      echo $this->item->toc;
   endif; ?>
   <?php echo $this->item->text; ?>
Это примерно 187-191 строки
Вставляем
<h3><?php
if ($this->escape($this->item->price)>1)
{
echo JText::sprintf('COM_CONTENT_PRICE');
echo $this->escape($this->item->price);
echo $this->escape($this->item->price);
echo JText::sprintf('COM_CONTENT_P');
}
 ?>
</h3>

7
Правим файл
administrator/components/com_content/views/article/tmpl/edit.php
После строк
            <?php echo JHtml::_('bootstrap.addTab', 'myTab', 'general', JText::_('COM_CONTENT_ARTICLE_DETAILS', true)); ?>
               <fieldset class="adminform">

Это примерно 76-78 строки
Вставляем код
<div class="control-group form-inline">
Price: <?php echo $this->form->getInput('price'); ?>
</div>

8
Правим файл
components/com_content/models/article.php
Там полсле строк
$query = $db->getQuery(true)
               ->select(
                  $this->getState(
Примерно 80 строка
изменяем строку
'item.select', 'a.id, a.asset_id, a.title, a.alias, a.introtext, a.fulltext, ' .
На строку
'item.select', 'a.price, a.id, a.asset_id, a.title, a.alias, a.introtext, a.fulltext, ' .

Пояснение: мы туда добавили   a.price   других отличий нет


Можете проверять все должно работать

9 этап
Необходимо вывести цену в список материалов категории рядом с автором либо вместо него или рядом хитами либо вместо них. Мне это не удалось. Кто знает как? Пожалуйста опишите подробно как делать. Народ будет вам благодарен.
Предлагаю совместными усилиями создать полноценный интернет магазин интернет магазин.
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Мдаа... То что Вы описали, хорошо если сотая часть того, что нужно нормальному интернет магазину.
*

jurij-58-52

  • Новичок
  • 4
  • 0 / 0
То что я написал подойдет для очень многих простых интернет магазинов.
Вы хоть один магазин из Joomla 3 сделали?
Подробное описание его создания на данном форуме опубликовали?
Нет на этом форуме писания создания вами интернет магазина.
Только критиканством занимаетесь.
А я для людей стараюсь.
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
хороший мануал того как не надо делать )
изучайте написание контент плагинов...
*

jurij-58-52

  • Новичок
  • 4
  • 0 / 0
У меня на сайте это работает. Значит мой мануал хорош.
Ваша критика будет конструктивной если вы предложите свой подробный мануал создания простого интернет мгазина, который будет лучше.
А пока это голословные обвинения.
Все вам спасибо скажут (и я) если Вы это сделаете!
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
У меня на сайте это работает. Значит мой мануал хорош.
Ваша критика будет конструктивной если вы предложите свой подробный мануал создания простого интернет мгазина, который будет лучше.
А пока это голословные обвинения.
Все вам спасибо скажут (и я) если Вы это сделаете!
я не критикую работает оно или нет! я критикую КАК вы это написали! по сути вы тупо хакнули ядро! и теперь вам не получится обновить сайт! если вы попробуете его обновить то все ваши правки придется после каждого обновления снова вносить! ладно если у вас будет один сайт, а если через месяц их будет 10 таких? и после каждой обновы повторять эти действия! по этому и говорю что вам нужно осваивать написание плагинов!
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
К примеру:
1. зачем вы правите языковый файл если эти переменные можно внести через "Менеджер языков: Переопределение констант"
2. зачем вы правите файл: /components/com_content/views/article/tmpl/default.php если можно переопределить этот шаблон положив его в
templates/ваш_шаблон/html/com_content/article/default.php и править его как угодно не боясь обновлений системы!
3. зачем вы в табличке создаете дополнительные поля если можно писать в атрибуты (и тогда не придется ничего дописывать в модели)
4. и что бы в админке вывести доп поля можно банально добавить их через плагин...
« Последнее редактирование: 27.08.2013, 17:39:37 от Istaan »
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Из своего окна вижу как команда VirtueMart сильно бледная нервно курит дрожащими руками сигареты    *DRINK*
^-^
Необходимо вывести цену в список материалов категории рядом с автором либо вместо него или рядом хитами либо вместо них. Мне это не удалось.
Предлагаю совместными усилиями создать полноценный интернет магазин интернет магазин.
Еще автоматизация оплаты, инвентаризация, купоны, скидки, группы покупателей... и многое другое. В итоге, если повезет (а это труды целой команды профи), получится народное подобие VirtueMart, только хуже.
А старожилам форума не надо хамить. Они уже многим помогали и им уже говорили "спасибо".
Вам тоже скажут, если вы действительно сделали что-то полезное.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

jurij-58-52

  • Новичок
  • 4
  • 0 / 0
Цитировать
Еще автоматизация оплаты, инвентаризация, купоны, скидки, группы покупателей... и многое другое.
В том то и дело, что ничего этого не нужно!
Огромный и громоздкий VirtueMart тем и плох, что в нем очень много ненужного функционала.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Описание магазина на главной старнице

Автор Evgen Kulibin

Ответов: 21
Просмотров: 1204
Последний ответ 15.10.2022, 15:29:19
от Evgen Kulibin
Допилить интернет магазин

Автор joker992

Ответов: 1
Просмотров: 656
Последний ответ 02.05.2022, 08:33:14
от NewUsers
Ошибка при Создание пунктов меню

Автор RomanRomanivich

Ответов: 0
Просмотров: 698
Последний ответ 23.09.2021, 15:01:14
от RomanRomanivich
Создание сайта-аналога Ярмарки Мастеров

Автор sekundant11

Ответов: 5
Просмотров: 1408
Последний ответ 25.03.2021, 06:55:27
от IToro82
Интернет магазин на OpenCart или Joomla?

Автор lexus26

Ответов: 11
Просмотров: 3007
Последний ответ 21.02.2021, 01:06:42
от Arlecchino