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

farmay

  • Захожу иногда
  • 337
  • 10 / 4
  • Все так как должно быть...
AJAX вывод подкатегорий
« : 22.08.2010, 17:36:11 »
Здравствуйте, подскажите пожалуйста, как сделать чтоб на главной адс при нажатии на категорию из нее выплывали подкатегории. Буду очень признателен помогите.
*

farmay

  • Захожу иногда
  • 337
  • 10 / 4
  • Все так как должно быть...
Re: AJAX вывод подкатегорий
« Ответ #1 : 22.08.2010, 18:30:30 »
И еще помогите пожалуйста, нужно то что отмечено Красным убрать, а то что отмечено Черным нужно красиво оформить, ну как нибудь типо красивыми кнопками или еще какие нибудь варианты.





Заранее благодарен.
С уважением Станислав.
 

Здесь вопрос решен.
« Последнее редактирование: 25.08.2010, 22:07:04 от farmay »
*

farmay

  • Захожу иногда
  • 337
  • 10 / 4
  • Все так как должно быть...
Re: AJAX вывод подкатегорий
« Ответ #2 : 23.08.2010, 20:25:14 »
Пока не могу ни того ни того сделать. Кому не сложно подскажите.
*

farmay

  • Захожу иногда
  • 337
  • 10 / 4
  • Все так как должно быть...
Re: AJAX вывод подкатегорий
« Ответ #3 : 24.08.2010, 22:12:48 »
ЛЮЮЮди добрые помогите.
*

farmay

  • Захожу иногда
  • 337
  • 10 / 4
  • Все так как должно быть...
Re: AJAX вывод подкатегорий
« Ответ #4 : 25.08.2010, 22:07:35 »
Осталось сделать ajax  вывод подкатегорий.
*

grinat

  • Захожу иногда
  • 356
  • 34 / 2
Re: AJAX вывод подкатегорий
« Ответ #5 : 29.08.2010, 17:52:26 »
Сомневаюсь что кто-либо будет тратить свое время на то, чтобы за просто так реализовать фичу. Учи js и php, удачи.
*

GlooM

  • Давно я тут
  • 558
  • 91 / 0
  • AdsManager
Re: AJAX вывод подкатегорий
« Ответ #6 : 30.08.2010, 11:24:40 »
на форуме есть такие добрые люди!
добрым людям тоже иногда хочется кушать, а не просто раздавать бесплатные решения.
Наводку дали на js, попробуйте разобраться.
*

farmay

  • Захожу иногда
  • 337
  • 10 / 4
  • Все так как должно быть...
Re: AJAX вывод подкатегорий
« Ответ #7 : 30.08.2010, 14:42:57 »
Интересна цена вопроса? Если что можно и поделить на нескольких $.
*

den_ko

  • Осваиваюсь на форуме
  • 16
  • 1 / 0
Re: AJAX вывод подкатегорий
« Ответ #8 : 31.08.2010, 14:07:49 »
Тож нужно. Готов скинуться.
*

farmay

  • Захожу иногда
  • 337
  • 10 / 4
  • Все так как должно быть...
Re: AJAX вывод подкатегорий
« Ответ #9 : 31.08.2010, 17:18:11 »
Есть кодеры кто готов взяться?
*

den_ko

  • Осваиваюсь на форуме
  • 16
  • 1 / 0
Re: AJAX вывод подкатегорий
« Ответ #10 : 02.09.2010, 01:36:20 »
Сделал на js для расширенного поиска  под свои нужды (марка- >> модель). adsmanager 2.5
Ищем в adsmanager.html.php функцию show_search и меняем на:
Код
function show_search($option,$fields_searchable,$field_values,$catid,$cats,$itemid)
{
?>
<div class="adsmanager_search_box">
<div class="adsmanager_inner_box">
<div align="left">
<table>
<tr><td><?php echo ADSMANAGER_FORM_CATEGORY; ?></td>
<td>
            <?php
echo '<select onChange="model(this.value);"><option>-----</option>';
foreach ($cats[0] as $arr) {  echo '<option value="'.$arr->id.'">'.$arr->name.'</option>';$mm[] = $arr->id;}
echo '</select><br><select id="marka" onChange="md(this.value);" disabled ><option value=""> --------- </option><select>';

for ( $i=0; $i<=count($mm); $i++)
{ if ($cats[$mm[$i]])
foreach ($cats[$mm[$i]] as $arr)
{  $rr .= $mm[$i].',';
    $tt .= '"'.$arr->name.'",';
$pp .= $arr->id.',';
}
} $rr = substr($rr, 0, strlen($rr)-1); $tt = substr($tt, 0, strlen($tt)-1); $pp = substr($pp, 0, strlen($pp)-1);
echo '<script language="javascript" type="text/javascript">
      function md(c){
var rr = document.getElementById("catid");
rr.value = c;}

    function model(ci){
      var JSONa={"c_id":['.$rr.'], "r_id":['.$tt.'], "p_id":['.$pp.']};
var r = document.getElementById("marka");
var r1 = document.getElementById("catid");
r1.value = ci;
var i = 0;
var res = "";
for(i=0;JSONa.c_id[i]!=null;i++){
    if(JSONa.c_id[i]==ci){
        res = res+"<option value=\'"+JSONa.p_id[i]+"\'>"+JSONa.r_id[i]+"</option>";
}
}
r.innerHTML = "<option> --------- </option>"+res;
r.disabled = false;
        }

</script>
';
?>         
           
            </td></tr>
<form action="<?php echo sefRelToAbs("index.php");?>" method="get">
<input type="hidden" name="option" value="<?php echo $option; ?>" />
<input type="hidden" name="page" value="show_result" />
<?php
foreach($fields_searchable as $fsearch) {
if (($catid == 0)||(strpos($fsearch->catsid, ",$catid,")!== false)||(strpos($fsearch->catsid, ",-1,")!== false))
{
echo "<tr><td>".adsmanager_html::getLangDefinition($fsearch->title)."</td><td>";
switch($fsearch->type)
{
case 'checkbox':
echo "<input class='inputbox' type='checkbox' name='$fsearch->title' value='1' />\n";
break;
case 'multicheckbox':
echo "<table class='cbMulti'>\n";
$k = 0;
for ($i=0 ; $i < $fsearch->rows;$i++)
{
echo "<tr>\n";
for ($j=0 ; $j < $fsearch->cols;$j++)
{
$fieldvalue = @$field_values[$fsearch->fieldid][$k]->fieldvalue;
$fieldtitle = @$field_values[$fsearch->fieldid][$k]->fieldtitle;
if (isset($fieldtitle))
$fieldtitle=adsmanager_html::getLangDefinition($fieldtitle);
echo "<td>\n";
if (isset($field_values[$fsearch->fieldid][$k]->fieldtitle))
{
echo "<input class='inputbox' type='checkbox' name='".$fsearch->name."[]' value='$fieldvalue' />&nbsp;$fieldtitle&nbsp;\n";
}
echo "</td>\n";
$k++;
}
echo "</tr>\n";
}
echo "</table>\n";
break;

case 'radio':
case 'select':
echo "<select id='".$fsearch->name."' name='".$fsearch->name."'>\n";
echo "<option value='' >&nbsp;</option>\n";
if (isset($field_values[$fsearch->fieldid])) {
foreach($field_values[$fsearch->fieldid] as $v)
{
$ftitle = adsmanager_html::getLangDefinition($v->fieldtitle);
echo "<option value='$v->fieldvalue' >$ftitle</option>\n";
}
}

echo "</select>\n";
break;

case 'multiselect':

echo "<select name=\"".$fsearch->name."[]\" multiple='multiple' size='$fsearch->size'>\n";
if (isset($field_values[$fsearch->fieldid])) {
foreach($field_values[$fsearch->fieldid] as $v)
{
$ftitle = adsmanager_html::getLangDefinition($v->fieldtitle);
if ($field->required == 1)
$mosReq = "mosReq='1'";

echo "<option value='$v->fieldvalue' >$ftitle</option>\n";
}
}

echo "</select>\n";
break;

case 'price':
echo "<select id='".$fsearch->name."' name='".$fsearch->name."'>\n";
echo "<option value='' >&nbsp;</option>\n";
if (isset($field_values[$fsearch->fieldid])) {
foreach($field_values[$fsearch->fieldid] as $v)
{
$ftitle = adsmanager_html::getLangDefinition($v->fieldtitle);
echo "<option value='$v->fieldvalue' >$ftitle</option>\n";
}
}

echo "</select>\n";
break;

case 'textarea':
case 'number':
case 'emailaddress':
case 'url':
case 'text':
echo "<input name='".$fsearch->name."' id='".$fsearch->name."' maxlength='20' class='inputbox' type='text' size='20' />";
break;
}
echo "</td>";
}
}?>
</table></div>
<input type="submit" value="<?php echo ADSMANAGER_SUBMIT_BUTTON; ?>" />

<input type="text" name="catid" id="catid" value="<?php echo $catid;?>" />
<input type="text" name="Itemid" value="<?php echo $itemid;?>" />
</form>  
</div>
</div>
<?php
}
Идея и часть кода отсюда http://joomlaforum.ru/index.php/topic,118830.0.html
Кому интересно хотелось бы продолжение в данном направлении, у самого опыта маловато, думаю не всё тут гладко, хотя у меня работает.
Вообщем начало положено.
*

farmay

  • Захожу иногда
  • 337
  • 10 / 4
  • Все так как должно быть...
Re: AJAX вывод подкатегорий
« Ответ #11 : 02.09.2010, 11:04:23 »
Сейчас попробуем.
*

farmay

  • Захожу иногда
  • 337
  • 10 / 4
  • Все так как должно быть...
Re: AJAX вывод подкатегорий
« Ответ #12 : 02.09.2010, 16:08:17 »
А можно посомтреть пример что делает этот код? А то че то у меня не хочет работать.
*

Mr_Diego

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Re: AJAX вывод подкатегорий
« Ответ #13 : 04.05.2011, 10:07:54 »
den_ko Работает, большое спасибо. А как реализовать для добавления объявлений. Все вроде вставил, выбирается, только по данной категории обьъявление не добавляется.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

AdsManager вывод нужных полей по отдельности

Автор klekovkinandrey

Ответов: 2
Просмотров: 16774
Последний ответ 06.04.2024, 09:54:15
от Rinat abzyi
Вывод данных

Автор FlexNL

Ответов: 0
Просмотров: 3766
Последний ответ 06.11.2021, 12:37:54
от FlexNL
Вывод картинки поля "radioimage"

Автор Pavel

Ответов: 7
Просмотров: 4282
Последний ответ 12.03.2019, 16:23:10
от Pavel
Вывод объявлений в случайном порядке

Автор Sabotage

Ответов: 3
Просмотров: 2132
Последний ответ 28.09.2018, 14:21:05
от Sabotage
Вывод "Классифицированные объявления" вместо меню на всех страницах

Автор d.im_a

Ответов: 3
Просмотров: 2419
Последний ответ 01.07.2017, 15:33:16
от d.im_a