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

13snes

  • Осваиваюсь на форуме
  • 15
  • 2 / 0
В случае, если нет вложенных подкатегорий, в режиме "Все объявления" категории выводятся в строки в виде:

ссылка1 | ссылка2 | ссылка3 | ссылка4 | .... | ссылка N

Чтобы получить вывод в виде таблицы с заданным количеством столбцов в файле adsmanager.html.php ищем строку 647 с кодом

Код
		<div class="adsmanager_subcats">
<?php
   $nb = count($subcats);
if ($nb != 0)
{
for ($i = 0 ; $i < $nb - 1;$i++) {
echo '<a href="'.$subcats[$i]->link.'">'.$subcats[$i]->text.'</a>';
echo ' | ';
}
echo '<a href="'.$subcats[$nb - 1]->link.'">'.$subcats[$nb - 1]->text.'</a>';
}
?>
</div>
и меняем его на следующий
Код
		<div class="adsmanager_subcats">
<?php
$st = 4; // количество столбцов
echo '<table width="95%">';
for ($i = 0; $i < ceil(count($subcats)/$st); $i++) {
echo '<tr>';
for ($j = 0; $j < $st; $j++) {
if (isset($subcats[(($i*$st)+$j)])) {
echo '<td width="25%"><a href="'.$subcats[(($i*$st)+$j)]->link.'">'.$subcats[(($i*$st)+$j)]->text.'</a></td>';
} else {
echo '<td>&nbsp;</td>';
}
}
echo '</tr>';
}
echo '</table>';
?>
</div>

Если количество столбцов у вас  не 4, как в приведенном коде, а например 3 - меняем width="25%" на width="33%", чтобы столбцы были одинаковой ширины. После этого категории выглядят следующим образом:

ссылка1  ссылка2  ссылка3  ссылка4
ссылка5  ссылка6  ссылка7  ссылка8
     ....    ссылкаN

Надеюсь кому нибудь пригодится! Вот только не знаю, как вывести в конце ссылок количество объявлений.
*

fomanza

  • Захожу иногда
  • 50
  • 0 / 0
Спасибо, мне пригодилось. А не подскажите как сделать так чтобы название категории было над этими ссылками на подкатегории, а не под ними?
*

13snes

  • Осваиваюсь на форуме
  • 15
  • 2 / 0
У меня нет подкатегорий, выводятся только категории в виде таких ссылок в столбик. Я пытался переместить полученную таблицу между поиском и главным меню, запутался и бросил. Дело в том, что таблица формируется в файле adsmsnsger.html.php, далее идет заголовок. Заголовок категории и всё что под ним вызываются одной функцией из  adsmsnsger.html.php, а описание функции находящейся в файле adsmanager.php. Поэтому влезть внутрь ее и что-то вставить из другого файла проблематично на мой взгляд. Хотя я не прогорммист, может есть какое то решение.
*

fomanza

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

nuruzadeh

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Аналогичное хотелось бы для 2.6
*

Nova2009

  • Осваиваюсь на форуме
  • 30
  • 0 / 0
на 2.6 кто нибудь пробовал?
*

Alex89

  • Давно я тут
  • 555
  • 198 / 1
  • Joomlaman :)
Для 2.6 что-то типа того:
В файле \components\com_adsmanager\views\list\tmpl\default.php
находите кусок кода
Код
<div class="adsmanager_subcats">
<?php foreach($this->subcats as $key => $subcat) {
$subcat->link = JRoute::_('index.php?option=com_adsmanager&view=list&catid='.$subcat->id."&Itemid=".$this->Itemid);
if ($key != 0)
echo ' | ';
echo '<a href="'.$subcat->link.'">'.$subcat->name.'</a>';
}
?>
</div>
и меняете на
Код
<div class="adsmanager_subcats">
<?php if ($this->subcats != 0) {
$st = 4; // количество столбцов
echo '<table width="95%">';
for ($i = 0; $i < ceil(count($this->subcats)/$st); $i++) {
echo '<tr>';
for ($j = 0; $j < $st; $j++) {
if (isset($this->subcats[(($i*$st)+$j)])) {
echo '<td width="25%" valign="top">';
$this->subcats[(($i*$st)+$j)]->link = JRoute::_('index.php?option=com_adsmanager&view=list&catid='.$this->subcats[(($i*$st)+$j)]->id."&Itemid=".$this->Itemid);
echo '<a href="'.$this->subcats[(($i*$st)+$j)]->link.'">'.$this->subcats[(($i*$st)+$j)]->name.'</a></td>';
} else {
echo '<td>&nbsp;</td>';
}
}
echo '</tr>'; }
echo '</table>';}
?>
</div>
Увеличить посещаемость сайта помогут здесь - http://tinyurl.com/kpaprwy
Если помог, ткните "крестик" в репу!
*

Алекс82

  • Захожу иногда
  • 120
  • 4 / 0
  • Совсем новичок
Код
			}
echo '</tr>'; }
echo '</table>';}
?>
</div>
[/quote]

Alex89 как всегда + Красиво стало. Тока пропал подсчет подкатегорий

Куда ето присобачить

Код
if ($this->catid != 0) { 
echo '<a href="'.$subcat->link.'">'.$subcat->name.'&nbsp;(<b>'.$subcat->num_ads.'</b>)</a>';}
else {
$catmodel = &$this->getModel( "category" );
$children = $catmodel->getSubCats($subcat->id);
foreach($children as $key => $ch) { $sum += $ch->num_ads;}
echo '<a href="'.$subcat->link.'">'.$subcat->name.'&nbsp;(<b>'.$sum.'</b>)</a>';
unset($sum); }
*

HKDOAM

  • Осваиваюсь на форуме
  • 22
  • 0 / 0
да и мне понравилось, и тот же вопрос о подсчете в категориях....
поставил бы плюсики, да походу рейтинг мой маловат
*

lord of love

  • Новичок
  • 6
  • 0 / 0
Alex89 как сделать подкатегории в AdsManager 2.9.6 столбиком?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

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

Автор klekovkinandrey

Ответов: 2
Просмотров: 16775
Последний ответ 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
Текст справа от картинки в режиме списка объявлений

Автор motordrom

Ответов: 8
Просмотров: 1986
Последний ответ 20.07.2017, 09:45:47
от motordrom