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

p.slavik

  • Захожу иногда
  • 71
  • 8 / 0
  • В неволе, блин...
На форуме поддержки компонента обнаружил мануал по добавлению дополнительных полей, думаю, будет полезно не только мне.

Автор: yarivtubul
Источник: http://dj-extensions.com/
Перевод: p.slavik

Прежде чем я начну, отмечу, что данное учебное руководство основано на советах пользователя dontysk.
ОК, предположим, мы хотим добавить в наши объявления поле телефонного номера, названное 'phone'.
Для этого мы должны внести изменения в базу данных, бэкэнд и фронтэнд.

Шаг 1 — База данных.

Найдите таблицу jos_djcf_items в Вашей базе данных. Для этого я использую  phpMyAdmin. В структуре таблицы Вы найдёте все существующие поля, здесь же необходимо добавить поле 'phone'. Убедитесь, что Вы правильно определили кодировку и другие параметры.

Шаг 2 — Бэкэнд.

Шаг 2.1 — папка 'tables'.

Откройте файл: /public_html/administrator/components/com_djclassifieds/tables/items.php
Сразу после строки 45 -
Код
var $intro_desc = null; 
добавьте следующее:
Код
var $phone = null;

Шаг 2.2 — папка 'views'.

Откройте  в редакторе файл: /public_html/administrator/components/com_djclassifieds/views/edititem/tmpl/default.php
Сразу после строки 120, после части "intro_desc" , добавьте следующее:

Код
<tr> 
<td width="100" align="right" class="key">
<?php echo JText::_('PHONE');?>
</td>
<td>
<?php //echo $editor->display( 'phone', $this->nl->phone, '100%', '100', '40', '10',false );
?>
<textarea id="phone" name="phone" rows="2" cols="20" class="inputbox"><?php echo $this->nl->phone; ?></textarea>
</td>
</tr>

Шаг 3 — Фронтэнд.

Шаг 3.1.1 — папка Views/AddItem

Откройте в редакторе файл: /public_html/components/com_djclassifieds/views/additem/tmpl/default.php
После строки 101 добавьте следующее:

Код
<tr>
<td width="100" align="right" class="label"><?php echo JText::_('phone');?><div id="ile">(10)</div>
</td>
<td><textarea id="phone" name="phone" rows="1" cols="10" class="inputbox" onkeyup="checkt();" onkeydown="checkt();"><?php echo $this->nl->phone; ?></textarea>
</td>
</tr>

Шаг 3.1.2 — Views/AddItem

В этом же файле, в alert разделе, после строки 230 добавьте:

Код
}else if(document.getElementById("phone").value==''){ 
alert("<?php echo JText::_('Please enter a phone number');?>");

Шаг 3.2 — папка Views/ShowItem.

Откройте в редакторе файл:
/public_html/components/com_djclassifieds/views/showitem/tmpl/default.php

После строки 84 добавьте:

Код
<div class="row"> 
<span><?php echo JText::_('PHONE'); ?><?php echo $i->phone;?></span>
</div>

Шаг 4 — добавление Jtext тэгов в языковые файлы.
Бэкэнд  - /public_html/administrator/language/en-GB/en-GB.com_djclassifieds.ini
Фронтэнд - /public_html/language/en-GB/en-GB.com_djclassifieds.ini
Не забываем сохранять в UTF-8.
Добавьте в эти, а также во все другие языковые файлы, после строки:
SHORT_DESCRIPTION=Description
строку:
PHONE=phone

Вот и всё!
Наслаждайтесь.
Yariv
« Последнее редактирование: 08.11.2010, 23:16:21 от p.slavik »
*

klop5

  • Осваиваюсь на форуме
  • 36
  • 1 / 0
Слушайте, все сделал по инструкции, а как теперь сделать что бы телефон отображался в обьявлениях?
*

p.slavik

  • Захожу иногда
  • 71
  • 8 / 0
  • В неволе, блин...
Слушайте, все сделал по инструкции, а как теперь сделать что бы телефон отображался в обьявлениях?
Шаг 3.2 (последний) как раз добавляет строку "Phone" в шаблон отображения объявления. Посмотрите ещё раз всё внимательно - всё ли сделали правильно. Номера строк могут несколько отличаться - то есть надо просто по коду ориентироваться. Но там вроде всё понятно. У меня с добавлением доп. полей проблем не возникло - всё работает. Ну и само-собой кэш стоит почистить, после внесения изменений...
*

klop5

  • Осваиваюсь на форуме
  • 36
  • 1 / 0
Да, спасибо! нашел проблему.
Я еще добавил отображение телефона, там где отображаются категории и под ними объявления.

В файл default.php в папке public_html/components/com_djclassifieds/views/show/tmpl
Нужно добавить
Код
<th>
<?php if($order=="phone"){$class="active";}else{$class="normal";}?><a class="<?php echo $class; ?>" href="index.php?option=com_djclassifieds&view=show&cid=<?php echo $main_id; ?>&order=phone<?php if($sw){ echo '&search='.$sw; }?>"><?php echo JText::_('phone');?>
</a>
</th>

Будет выглядеть вот так
Код
<table class="dj-items" width="100%">
<tr class="main_title">
<th colspan="2" class="name">
<?php if($order=="name"){$class="active";}else{$class="normal";}?><a class="<?php echo $class; ?>" href="index.php?option=com_djclassifieds&view=show&cid=<?php echo $main_id; ?>&order=title<?php if($sw){ echo '&search='.$sw; }?>"><?php echo JText::_('Title');?></a>
</th>
<th>
<?php if($order=="category"){$class="active";}else{$class="normal";}?><a class="<?php echo $class; ?>" href="index.php?option=com_djclassifieds&view=show&cid=<?php echo $main_id; ?>&order=category<?php if($sw){ echo '&search='.$sw; }?>"><?php echo JText::_('Category');?></a>
</th>
<th>
<?php if($order=="description"){$class="active";}else{$class="normal";}?><a class="<?php echo $class; ?>" href="index.php?option=com_djclassifieds&view=show&cid=<?php echo $main_id; ?>&order=description<?php if($sw){ echo '&search='.$sw; }?>"><?php echo JText::_('Description');?></a>
</th>
<th>
<?php if($order=="phone"){$class="active";}else{$class="normal";}?><a class="<?php echo $class; ?>" href="index.php?option=com_djclassifieds&view=show&cid=<?php echo $main_id; ?>&order=phone<?php if($sw){ echo '&search='.$sw; }?>"><?php echo JText::_('phone');?></a>
</th>
<th>
<?php if($order=="date"){$class="active";}else{$class="normal";}?><a class="<?php echo $class; ?>" href="index.php?option=com_djclassifieds&view=show&cid=<?php echo $main_id; ?>&order=date<?php if($sw){ echo '&search='.$sw; }?>"><?php echo JText::_('Added');?></a>
</th>
<th>
<?php if($order=="display"){$class="active";}else{$class="normal";}?><a class="<?php echo $class; ?>" href="index.php?option=com_djclassifieds&view=show&cid=<?php echo $main_id; ?>&order=display<?php if($sw){ echo '&search='.$sw; }?>"><?php echo JText::_('Displayed');?></a>
</th>
</tr>

Еще добавить вот это:
Код
echo '<td class="phone">'.$i->phone.'</td>';

Будет выглядеть вот так:
Код
		echo '</td>';
echo '<td class="name">';
echo '<a class="title" href="index.php?option=com_djclassifieds&view=showitem&cid='.$i->cat_id.'&id='.$i->id.'&Itemid='.$Itemid.'">'.$i->name.'</a>';
echo '</td>';
echo '<td class="cat_name">'.$i->c_name.'</td>';
echo '<td class="description"><a class="title" href="index.php?option=com_djclassifieds&view=showitem&cid='.$i->cat_id.'&id='.$i->id.'&Itemid='.$Itemid.'">'.$i->intro_desc.'</a></td>';
echo '<td class="phone">'.$i->phone.'</td>';
echo '<td class="date_start">'.$i->date_start.'</td>';
echo '<td class="date_exp" align="center">'.$i->display.'</td>';
echo '</tr>';
}

Ну и изменить параметр с 6 на 7
Код
echo '<tr class="row'.$row.'"><td class="pag" colspan="7" >';	  


Думаю понятно написал! ^-^
« Последнее редактирование: 02.01.2011, 10:30:45 от klop5 »
*

swarows

  • Осваиваюсь на форуме
  • 28
  • 0 / 0
вопросик, а как добавить не текстовое поле а выплывающий список?
*

stranger

  • Новичок
  • 1
  • 0 / 0
Имеется сайт http://lv22.ru/. Компонет dj-classifieds был выбран как наиболее приемлемый, но при работе с ним появились некоторые сложности.
1. Если в указании контактов есть кавычки, объявление некорректно отображается на главной
2. Хотелось бы убрать количество просмотров за ненадобностью, а вместо них указывать город. Вышеприведённая схема для этих манипуляций подойдёт?
3. "продавец" исправить на "подал объявление"
Подскажите хотя бы что-то
*

Calal

  • Новичок
  • 1
  • 0 / 0
Is it possible to hide specific areas classified dj hello to visitors
e.g.
Phone:
Please Login to see the phone number, go to sleep.

Is it possible to do so?

Is it possible to do so?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Поиск в админке DJ-Classifieds

Автор shop-user

Ответов: 1
Просмотров: 3134
Последний ответ 30.11.2022, 09:49:33
от Leo1986
Добавить к dj classifieds прямую оплату и доставку УкрПошта

Автор Alex_gs

Ответов: 0
Просмотров: 3747
Последний ответ 11.01.2022, 14:55:25
от Alex_gs
Не добавляются фото к объявлениям DJ-Classifieds 3.6.4

Автор spaun0982

Ответов: 7
Просмотров: 5076
Последний ответ 03.11.2021, 12:59:49
от igorMas
Как включить emoji в dj-classifieds?

Автор inkvizitr

Ответов: 0
Просмотров: 3308
Последний ответ 09.03.2021, 19:24:36
от inkvizitr
Можно ли в DJ-Classifieds создать несколько адресов для одного объявления?

Автор Kijv

Ответов: 0
Просмотров: 3371
Последний ответ 15.02.2021, 11:38:49
от Kijv