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

pantela

  • Захожу иногда
  • 257
  • 1 / 0
Проверка с поля к полю
« : 17.08.2010, 10:36:56 »
Есть 1 полей:
photo1
photo2
photo3
photo4
photo5

Вних находятся ссылка изображения, т.е. если в поле прописанно что нибудь значит изображение есть, если оно пустое значит нету.

Далее есть код который выводит изображение photo1, если изображения нету в photo1, тогда выводится изображение no_photo.gif
Код
<?php if (!empty($ad->photo1) && file_exists(AS_ADS_IMG_PATH.$ad->photo1)) : ?>
<img src="<?php echo AS_ADS_IMG_URL.$ad->photo1; ?>" width="112" height="84" alt="photo_1" /><br />
<?php else : ?>
<img src="<?php echo AS_ADS_OTHIMG_URL.'no_photo.gif'; ?>" width="112" height="84" alt="" /><br />
<?php endif; ?>

Момент токой что нубные пользователи иногда добавляя изображение, пропускай поле photo1, вот и при выводе объявления тогда появляется изображение no_photo.gif.

Одним словом мне надо реализовать токой код, что если поле photo_1 пустой, тогда перейти photo_2, если  оно пустое тогда photo_3 и.т.д. до photo_5, в итоге если и оно пустое тогда выводим изображение no_photo.gif


Решение нашол, вот только может есть более профессиональное.  ^-^

Код
<?php 
if (!empty($ad->photo1)){$AS_ADS_IMG_URL="$ad->photo1";}
if (empty($ad->photo1)){$AS_ADS_IMG_URL="$ad->photo2";}
if (empty($ad->photo2)){$AS_ADS_IMG_URL="$ad->photo3";}
if (empty($ad->photo3)){$AS_ADS_IMG_URL="$ad->photo4";}
if (empty($ad->photo4)){$AS_ADS_IMG_URL="$ad->photo5";}
if (empty($ad->photo5)){$AS_ADS_IMG_URL="$ad->photo6";}
if (empty($ad->photo1) && empty($ad->photo2) && empty($ad->photo3) && empty($ad->photo4) && empty($ad->photo5) && empty($ad->photo6)) {$AS_ADS_IMG_URL="../no_photo.gif";}
?>

спс.Ув.
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Re: Проверка с поля к полю
« Ответ #1 : 17.08.2010, 10:51:36 »
Не уверен что сработает, ща проверю
$AS_ADS_IMG_URL = $ad->photo1 || $ad->photo2 || $ad->photo3 || $ad->photo4 || $ad->photo5 || "../no_photo.gif";
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

pantela

  • Захожу иногда
  • 257
  • 1 / 0
Re: Проверка с поля к полю
« Ответ #2 : 17.08.2010, 11:10:52 »
Не прошло...
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Re: Проверка с поля к полю
« Ответ #3 : 17.08.2010, 13:34:53 »
Не совсем гламурно, но яб сделал наверное так:

Код: php
$AS_ADS_IMG_URL = $ad->photo1 ? $ad->photo1
                : $ad->photo2 ? $ad->photo2
                : $ad->photo3 ? $ad->photo3
                : $ad->photo4 ? $ad->photo4
                : $ad->photo5 ? $ad->photo5
                : $ad->photo6 ? $ad->photo6
                : '../no_photo.gif'
                ;

Или может через цикл...
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

pantela

  • Захожу иногда
  • 257
  • 1 / 0
Re: Проверка с поля к полю
« Ответ #4 : 17.08.2010, 13:51:53 »
спс. Мне просто самый хороший вариант ))

по твоему коду выводится сразу photo6
*

pantela

  • Захожу иногда
  • 257
  • 1 / 0
Re: Проверка с поля к полю
« Ответ #5 : 17.08.2010, 14:11:33 »
Вод подсказали код, но он лучще ли чем мой что в первом посту ? ))

Код
if (!empty($ad->photo1)) {
   $AS_ADS_IMG_URL="$ad->photo1";
}
else {
   for ($i = 1; $i <=5; $i++) {
      if (empty($ad->photo.$i)) {
         $AS_ADS_IMG_URL="$ad->photo".$i;
      }
      else {
         $exist = true;
         break;
      }
   }
}
if ($exist) {
   $AS_ADS_IMG_URL="../no_photo.gif";
}
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Re: Проверка с поля к полю
« Ответ #6 : 17.08.2010, 15:28:13 »
Ну про цикл я упоминал)
Думаю можно сократить до:

for ($i = 1; $i <= 5; $i ++) {
      if (!empty($ad->photo.$i)) {
         $AS_ADS_IMG_URL = "$ad->photo".$i;
      } else {
         break;
      }
}

if (empty($AS_ADS_IMG_URL) {
      $AS_ADS_IMG_URL = "../no_photo.gif";
}

тем более что там ошибка (if empty)
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Вставка поля в форму добавления материала

Автор __noob__

Ответов: 86
Просмотров: 6753
Последний ответ 17.06.2014, 15:07:19
от __noob__
Joomla 2.5: заполнение поля формы по параметру URL

Автор Kanarik

Ответов: 2
Просмотров: 1460
Последний ответ 07.05.2014, 11:17:47
от Kanarik
Текстовые поля в админке модуля

Автор maxsl_89

Ответов: 6
Просмотров: 1448
Последний ответ 04.11.2013, 16:25:04
от Aleks.Denezh
Фильтр по заголовку(полю) в своем компоненте

Автор gdm-it

Ответов: 1
Просмотров: 1720
Последний ответ 26.10.2011, 01:07:03
от smart