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

murovoz

  • Осваиваюсь на форуме
  • 14
  • 0 / 0
Уважаемые форумчане, подскажите пожалуйста! Работаю с AdsManager 2.9.13 Как бы все устраивало но вот понадобилось добавить функционала. Есть ли возможность добавить функцию снять с публикации по мимо редактировать и удалить в личном кабинете пользователя?  Спасибо!
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Есть ли возможность добавить функцию снять с публикации по мимо редактировать и удалить в личном кабинете пользователя?  Спасибо!

Если так сильно надо, то могу сделать... Конечно не бесплатно...
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

murovoz

  • Осваиваюсь на форуме
  • 14
  • 0 / 0
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Что по чем?

Договоримся. Напиши контактные данные в ЛС...
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

biper

  • Осваиваюсь на форуме
  • 29
  • 0 / 1
ну и как ? сделали ? а то мне тоже нать такое :)
*

qudrat

  • Новичок
  • 2
  • 0 / 0
А мне он нужен для AdsManager 3.1.5. Дайте любой скрипт при готовности. Потом сам как нибудь переделяю для версии 3.1.5
*

Sabotage

  • Осваиваюсь на форуме
  • 28
  • 0 / 1
Похоже очень сложная функция. Никто не может сделать
*

grinat

  • Захожу иногда
  • 356
  • 34 / 2
Уважаемые форумчане, подскажите пожалуйста! Работаю с AdsManager 2.9.13 Как бы все устраивало но вот понадобилось добавить функционала. Есть ли возможность добавить функцию снять с публикации по мимо редактировать и удалить в личном кабинете пользователя?  Спасибо!
Дак там по моему есть перенос в архив. В настройках задать нужно категорию архив и туда будет сносится. Если нет ее, то по моему в models в файле content находиться код удаления, функция manage expire content или что-то в этом духе, закоментируйте там код удаления и вставьте запрос c update чтобы в бд publihed=1 менялось на published=0
*

biper

  • Осваиваюсь на форуме
  • 29
  • 0 / 1
может просто сделать "Обновить дату публикации" + 30 дней (для примера = количество дней до истечении срока публикации)
как кодом это будет не знаю... в php я полный нуб.. если есть кто в функциях просветленный, оформите в виде строки :)
*

Sabotage

  • Осваиваюсь на форуме
  • 28
  • 0 / 1
Это очень сложная функция, забудьте о ней, никто не сможет сделать.
*

Pavel

  • Осваиваюсь на форуме
  • 24
  • 0 / 0
Это очень сложная функция, забудьте о ней, никто не сможет сделать.
;D
Туточки:  mysite.ru\administrator\components\com_adsmanager\models\content.php 
Добавляем функцию:
Код
function offpublishedContent($contentid)
{
$this->_db->setQuery( "SELECT published FROM #__adsmanager_ads WHERE id = ".(int)$contentid);
$published = $this->_db->loadResult();
if ($published != 1){
exit();
}
$this->_db->setQuery( "UPDATE #__adsmanager_ads SET expiration_date = 'NULL', recall_mail_sent = 0, published = 0  WHERE id=".(int)$contentid."");
$this->_db->query();
}

а туточки: mysite.ru\components\com_adsmanager\controller.php
вот такую:
Код
function offpubl() {
$app = JFactory::getApplication();

$contentid = JRequest::getInt('id', 0);

$this->addModelPath(JPATH_ADMINISTRATOR.DS.'components'.DS.'com_adsmanager'.DS.'models');
$contentmodel =$this->getModel( "content" );

$confmodel =$this->getModel( "configuration" );
$conf = $confmodel->getConfiguration();

$c = $contentmodel->getContent($contentid,false);
if ($c == null)
exit();

if ($c->published == 0) {
exit();
}

$contentmodel->offpublishedContent($contentid);
$cache = JFactory::getCache( 'com_adsmanager');
$cache->clean();

$app->redirect(TLink::getMyAdsLink(), JText::_('ADSMANAGER_CONTENT_OFF'),'message');
}

В файле шаблона
такой код:   обставляем его нужными нам условиями и соответственно выводим

Код
$target = TRoute::_("index.php?option=com_adsmanager&task=offpubl&id=$content->id");
echo "<a href='".$target."'><i class='icon-unpublish'></i>".JText::_('ADSMANAGER_OFF_PUBL')."</a>";


и еще очень рекомендую сделать поднятие объявления в топ
это тут : Кнопка "Поднять объявление"

у меня это выглядит так, каждые 4 часа можно поднять объявление:

Код
function renewContent($contentid,$ad_duration)
{
$this->_db->setQuery( "SELECT expiration_date FROM #__adsmanager_ads WHERE id = ".(int)$contentid);
$expiration_date = $this->_db->loadResult();
$time = strtotime($expiration_date);
if ($time < time())
{
$time = time();
}
$time = $time - ( $ad_duration * 3600);
$newdate = date("Y-m-d H:i:s",$time);

$this->_db->setQuery( "UPDATE #__adsmanager_ads SET expiration_date = '$newdate',date_created = NOW(), publication_date = NOW(), recall_mail_sent=0,published=1 WHERE id=".(int)$contentid."");
$this->_db->query();
}

там еще в паре файлов цифры поправить надо - но кто захочет думаю сообразит ^-^
*

Pavel

  • Осваиваюсь на форуме
  • 24
  • 0 / 0
У кого есть вопросы, пишите, просто регистрируйтесь на сайте, и Вы уже ЧЛЕН общества, и не надо стесняться своей компетенции, мы все когда то ходили в подгузники, НО ВРЕМЯ ИДЕТ!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[Решено]Дублирования ссылки "объвления" в breadcrumb, в компоненте AdsManager

Автор nicklas

Ответов: 4
Просмотров: 6061
Последний ответ 25.04.2024, 23:13:18
от Rinat abzyi
AdsManager вывод нужных полей по отдельности

Автор klekovkinandrey

Ответов: 2
Просмотров: 16716
Последний ответ 06.04.2024, 09:54:15
от Rinat abzyi
Редактировать все объявления

Автор den_ko

Ответов: 32
Просмотров: 14153
Последний ответ 25.11.2021, 10:43:38
от FlexNL
AdsManager загрузка файлов

Автор FlexNL

Ответов: 1
Просмотров: 5273
Последний ответ 21.10.2021, 17:20:09
от khan-alex
Два компонента AdsManager в одном движке

Автор kaman62

Ответов: 12
Просмотров: 30573
Последний ответ 27.03.2020, 22:32:04
от Pavel