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

sett

  • Захожу иногда
  • 54
  • 0 / 0
это файл send.php:
<?php
if (isset($_POST['$name'])) {$name = $_POST['$name'];}
if (isset($_POST['$email'])) {$email = $_POST['$email'];}
if (isset($_POST['$phone'])) {$phone = $_POST['$phone'];}
if (isset($_POST['$ICQ'])) {$ICQ = $_POST['$ICQ'];}
if (isset($_POST['$marka'])) {$marka = $_POST['$marka'];}
if (isset($_POST['$VIN'])) {$VIN = $_POST['$VIN'];}
if (isset($_POST['$model'])) {$model = $_POST['$model'];}
if (isset($_POST['$dvigatel'])) {$dvigatel = $_POST['$dvigatel'];}
if (isset($_POST['$god'])) {$god = $_POST['$god'];}
if (isset($_POST['$moshnost'])) {$moshnost = $_POST['$moshnost'];}
if (isset($_POST['$transmis'])) {$transmis = $_POST['$transmis'];}
if (isset($_POST['$rul'])) {$rul = $_POST['$rul'];}
if (isset($_POST['$orignomer'])) {$orignomer = $_POST['$orignomer'];}
if (isset($_POST['$opisanie1'])) {$opisanie1 = $_POST['$opisanie1'];}
if (isset($_POST['$kolvo1'])) {$kolvo1 = $_POST['$kolvo1'];}
if (isset($_POST['$opisanie2'])) {$opisanie2 = $_POST['$opisanie2'];}
if (isset($_POST['$kolvo2'])) {$kolvo2 = $_POST['$kolvo2'];}
if (isset($_POST['$opisanie3'])) {$opisanie3 = $_POST['$opisanie3'];}
if (isset($_POST['$kolvo3'])) {$kolvo3 = $_POST['$kolvo3'];}
if (isset($_POST['$message'])) {$message = $_POST['$message'];}

$address = 'gordon_hl@mail.ru';
$sub = "Сообщение с сайта www.autozavod.com";
$mes = "ФИО: $name \n Email: $email \n Контактный телефон: $phone \n Номер ICQ: $ICQ \n Марка автомобиля: $marka \n VIN: $VIN \n Модель: $model \n Объем двигателя: $dvigatel \n Год выпуска: $god \n Мощность л/с: $moshnost \n Тип трансмиссии: $transmis \n Расположение руля: $rul \n Оригинальный номер запчасти, если знаете: $orignomer \n Описание запчасти: $opisanie1 \n Кол-во: $kolvo1 \n Описание запчасти: $opisanie2 \n Кол-во: $kolvo2 \n Описание запчасти: $opisanie3 \n Кол-во: $kolvo3 \n Примечания: $message";
$verify = mail ($address,$sub,$mes,"Content-type:text/plain; charset = windows-1251\r\nFrom:$email");
if ($verify == 'true')
{
echo "<p>Спасибо за обращение к услугам нашего сервиса. Ваш запрос принят и будет обработан в течение 1 часа. Наши специалисты свяжутся с Вами удобным для Вас способом.";
}
else
{
echo "<p>Сообщение не отправлено. Попробуйте еще раз.";
}
?>

код формы index.php:

 <td><form action="send.php" method="post" name="f1" >
          <p>Заполнив и отправив нижеследующую форму,</p>
         Вы получите ответ по цене и сроку доставки интересующей запчасти.
          <p><strong>Клиент</strong></p>
          <p>&nbsp ФИО:
            <input type="text" name="name" size="107">
          </p>
          <p>&nbsp Адрес электронной почты:
              <input type="text" name="email" size="83">
          </p>
          <p>&nbsp Контактный телефон:
              <input type="text" name="phone" size="83">
          </p>
          <p>&nbsp Номер ICQ, если имеется:
              <input type="text" name="ICQ" size="83">
          </p>
          <p><strong>Автомобиль:</strong></p>
          <p>Марка автомобиля:
            <input type="text" name="marka" size="40">
            VIN:
            <input type="text" name="VIN" size="42">
          <p>Модель:
              <input type="text" name="model" size="40">
            Объем двигателя:
            <input type="text" name="dvigatel" size="28">
          <p>Год выпуска:
              <input type="text" name="god" size="40">
            Мощность л/с:
            <input type="text" name="moshnost" size="28">
          <p>Тип трансмиссии:&nbsp&nbsp
              <input type="text" name="transmis" size="40">
            Расположение руля:
            <input type="text" name="rul" size="25">
          <p><strong>Запчасть:</strong></p>
          <p>Оригинальный номер запчасти, если знаете:
            <input type="text" name="orignomer" size="63">
          <p>Описание запчасти:
            <input type="text" name="opisanie1" size="66">
            Кол-во:
            <input type="text" name="kolvo1" size="12">
          </p>
          <p>Описание запчасти:
            <input type="text" name="opisanie2" size="66">
            Кол-во:
            <input type="text" name="kolvo2" size="12">
          </p>
          <p>Описание запчасти:
            <input type="text" name="opisanie3" size="66">
            Кол-во:
            <input type="text" name="kolvo3" size="12">
          </p>
          <p><strong>Примечания:</strong></p>
         <textarea name="message" rows="5" cols="86"></textarea>
          <br>
          <br>
          <center>
            <input type="submit" value="               Отправить запрос                  ">
          </center>
        </form></td>

В итоге приходит такое сообщение:

ФИО: 
 Email: 
 Контактный телефон: 
 Номер ICQ: 
 Марка автомобиля: 
 VIN: 
 Модель: 
 Объем двигателя: 
 Год выпуска: 
 Мощность л/с: 
 Тип трансмиссии: 
 Расположение руля: 
 Оригинальный номер запчасти, если знаете: 
 Описание запчасти: 
 Кол-во: 
 Описание запчасти: 
 Кол-во: 
 Описание запчасти: 
 Кол-во: 
 Примечания:

Блин, почему оно ПУСТОЕ?
*

sett

  • Захожу иногда
  • 54
  • 0 / 0
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
ну так в обработчике проверяйте что приходит в $_POST
И вообще лучше это оформить в виде решения под движок и использовать стандартные средства получения данных, фильтрации и обработки, отправки почты
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

sett

  • Захожу иногда
  • 54
  • 0 / 0
подскажите более конкретное решение? Чет не понимаю...
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Попробуйте посмотреть на мою болванку пустого компонента с простейшей обработкой данных из формы (никакого MVC). Как раз ваш пример - форма, получение и обработка данных
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Lex

  • Завсегдатай
  • 1615
  • 274 / 1
$_POST['$name']
Что за '$name'
$_POST['name']
Жизнь заставила учиться.
В личке на вопросы не отвечаю.
*

simpolmix

  • Захожу иногда
  • 141
  • 4 / 0
Могу написать тебе нормальную форму обратной связи, со всеми проверками и тд. ICQ: 448790252, email:simpolmix@yandex.ru
*

sett

  • Захожу иногда
  • 54
  • 0 / 0
Спасибо, Lex! Выручил! Теперь работает!))))
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Где хранится и где искать что написали в обратной связи ?

Автор Lzrv

Ответов: 0
Просмотров: 1607
Последний ответ 04.12.2017, 21:17:14
от Lzrv
Как проверить форму обратной связи [Решено]

Автор mafiozzzza

Ответов: 8
Просмотров: 7566
Последний ответ 30.05.2017, 11:34:11
от darkghost
Как в Joomla создать форму обратной связки со своими полями?

Автор citizenfour

Ответов: 7
Просмотров: 2189
Последний ответ 28.09.2016, 21:42:13
от vipiusss
плагин обратной связи с хорошой защитой от спама!

Автор Meloc987

Ответов: 3
Просмотров: 1945
Последний ответ 23.04.2016, 10:50:21
от flyingspook
Как вставить в материал стандартную форму обратной связи Joomla 1.5?

Автор Meloc987

Ответов: 19
Просмотров: 6759
Последний ответ 20.01.2016, 14:26:25
от effrit