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

Ingener

  • Давно я тут
  • 547
  • 10 / 5
Доработка AdsManager 2.7
« : 07.12.2012, 22:03:14 »
На сайте недвижимости установлен AdsManager 2.7 с офсайта, необходимо сделать чтобы пользователи (владельцы объектов недвижимости) могли добавлять свои объекты и размещать свои контакты, но их контакты мог видеть только хозяин агентства, т. е владелец сайта (логин пароль администратора), а посетители и другие зарегистрированные пользователи могли видеть только телефоны агентства.

Т.е. проще говоря сделать скрытые поля с контактами.

В самом  AdsManager 2.7 реализовано чтото подобное, т.е можно включить что контакты будут видны только зарегистрированным пользоваателям, но в т ом-то и дело что ВСЕМ, а нужно чтобы их мог видеть только человек с определенными правами.

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

Возможно кто-то паодскажет другое рабочее решение, готов заплатить.
*

AdWeb

  • Давно я тут
  • 878
  • 31 / 3
Re: Доработка AdsManager 2.7
« Ответ #1 : 07.12.2012, 22:50:12 »
может чтот полезное найдете здесь
| Хороший Хостинг | Купить Хикашоп | Каталог перекладів Joomla компонентів
PS. спасибо кидать через вебмани: R152456839841 если плюсикофф не хватает :)
*

Ingener

  • Давно я тут
  • 547
  • 10 / 5
Re: Доработка AdsManager 2.7
« Ответ #2 : 07.12.2012, 23:04:54 »
Спасибо, но сайт уже работает на AdsManager 2.7, забиты объявления, нужна доработка
*

Ingener

  • Давно я тут
  • 547
  • 10 / 5
Re: Доработка AdsManager 2.7
« Ответ #3 : 08.12.2012, 00:38:11 »
Нашел файл, отвечающий за вывод или невывод контактов в зависимости от статуса пользователя,

в папке components/\views\details\tmpl/default.php    со строки 161

Код
			<div class="adsmanager_ads_contact">
<?php $strtitle = "";if (@$this->positions[4]->title) {$strtitle = JText::_($this->positions[4]->title);} ?>
<?php echo "<h2>".@$strtitle."</h2>";
if (($this->userid != 0)||($conf->show_contact == 0)) {
if (isset($this->fDisplay[5]))
{
foreach($this->fDisplay[5] as $field)
{
$c = $this->field->showFieldValue($this->content,$field);
if ($c != "") {
$title = $this->field->showFieldTitle(@$this->content->catid,$field);
if ($title != "")
echo htmlspecialchars($title).": ";
echo "$c<br/>";
}
}
}
if (($this->content->userid != 0)&&($conf->allow_contact_by_pms == 1))
{
if ($conf->display_fullname == 1)
$pmsText= sprintf(JText::_('ADSMANAGER_PMS_FORM'),$this->content->fullname);
else
$pmsText= sprintf(JText::_('ADSMANAGER_PMS_FORM'),$this->content->user);
$pmsForm = TRoute::_("index.php?option=com_uddeim&task=new&recip=".$this->content->userid);
echo '<a href="'.$pmsForm.'">'.$pmsText.'</a><br />';
}
}
else
{
echo JText::_('ADSMANAGER_CONTACT_NOT_LOGGED');
}
?>
</div>
   </div>

нужно изменить чтобы показывало не зарегиным а администратору или автору (любому статусом выше)

помоему это в строке 164
« Последнее редактирование: 08.12.2012, 00:57:01 от Ingener »
*

Ingener

  • Давно я тут
  • 547
  • 10 / 5
Re: Доработка AdsManager 2.7
« Ответ #4 : 08.12.2012, 00:57:56 »
Нашел решение на офсайте, правда сам еще не пробовал

to make this you need to go to:

Code:
joomla_directory\components\com_adsmanager\views\details\tmpl\default.php


find these code parts and delete them:

Code:
<div class="adsmanager_ads_price">
         <?php if (@$this->positions[3]->title) {$strtitle = JText::_($this->positions[3]->title); } ?>
         <?php echo "<b>".@$strtitle."</b>";
         if (isset($this->fDisplay[4]))
         {
            foreach($this->fDisplay[4] as $field)
            {
               echo $this->field->showFieldValue($this->content,$field);
            }
         }?>
         </div>

Code:
<div class="adsmanager_ads_contact">
         <?php if (@$this->positions[4]->title) {$strtitle = JText::_($this->positions[4]->title);} ?>
         <?php echo "<b>".@$strtitle."</b>";
         if (($this->userid != 0)||($conf->show_contact == 0)) {      
            if (isset($this->fDisplay[5]))
            {      
               foreach($this->fDisplay[5] as $field)
               {  
                  echo $this->field->showFieldValue($this->content,$field);
               }
            }
            if (($this->content->userid != 0)&&($conf->allow_contact_by_pms == 1))
            {
               if ($conf->display_fullname == 1)
                  $pmsText= sprintf(JText::_('ADSMANAGER_PMS_FORM'),$this->content->fullname);
               else
                  $pmsText= sprintf(JText::_('ADSMANAGER_PMS_FORM'),$this->content->user);
               $pmsForm = JRoute::_("index.php?option=com_uddeim&task=new&recip=".$this->content->userid);
               echo '<a href="'.$pmsForm.'">'.$pmsText.'</a><br />';
            }
         }
         else
         {
            echo JText::_('ADSMANAGER_CONTACT_NOT_LOGGED');
         }
         ?>
         </div>


now in empty place where you deleted that code parts insert this code:

Code:
<div class="adsmanager_ads_contact">
         <?php if (@$this->positions[4]->title) {$strtitle = JText::_($this->positions[4]->title);} ?>
         <?php
         if (($this->userid == 42)||($conf->show_contact == 0)) {      
         echo "<b>".@$strtitle."</b>";
            if (isset($this->fDisplay[5]))
            {      
               foreach($this->fDisplay[5] as $field)
               {  
                  echo $this->field->showFieldValue($this->content,$field);
               }
            }
            if (($this->content->userid != 0)&&($conf->allow_contact_by_pms == 1))
            {
               if ($conf->display_fullname == 1)
                  $pmsText= sprintf(JText::_('ADSMANAGER_PMS_FORM'),$this->content->fullname);
               else
                  $pmsText= sprintf(JText::_('ADSMANAGER_PMS_FORM'),$this->content->user);
               $pmsForm = JRoute::_("index.php?option=com_uddeim&task=new&recip=".$this->content->userid);
               echo '<a href="'.$pmsForm.'">'.$pmsText.'</a><br />';
            }
         if (@$this->positions[3]->title) {$strtitle = JText::_($this->positions[3]->title); }
         echo "<b>".@$strtitle."</b>";
         if (isset($this->fDisplay[4]))
         {
            foreach($this->fDisplay[4] as $field)
            {
               echo $this->field->showFieldValue($this->content,$field);
            }
         }
         }
         else
         {
            echo JText::_('ADSMANAGER_CONTACT_NOT_LOGGED');
         }
         ?>
         </div>


change user id to yours administrator account id, that will be able to see contact's and price in this place (in my case admin account id is "42"):
Code:
if (($this->userid == 42)||($conf->show_contact == 0))

id of account you can see in backend by clicking "Users manager" then look at "ID" column.
IMPORTANT!
in back end, Components>Adsmanager>Configuration>Contact, field "Show Contact" must to be set to "Only to logged users".
*

Ingener

  • Давно я тут
  • 547
  • 10 / 5
Re: Доработка AdsManager 2.7
« Ответ #5 : 08.12.2012, 00:58:24 »
Если кому помогло плюсуем
*

himyra

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
Re: Доработка AdsManager 2.7
« Ответ #6 : 15.01.2013, 11:50:43 »
А чтобы контакты показывало даже не зарегистрированным пользователям нужно поставить "if (($this->userid == 0)||($conf->show_contact == 1))" ?
да работает
« Последнее редактирование: 15.01.2013, 11:57:07 от himyra »
*

juk95

  • Новичок
  • 7
  • 0 / 0
Re: Доработка AdsManager 2.7
« Ответ #7 : 16.12.2014, 14:13:14 »
Всем Привет ! помогите зеленому человечку ) на Joomla 1.5 поставил AdsManager 2.7
1: почему добавленные картинки в объявлениях не могу просмотреть .
2: как поставить кнопку выйти из аккаунта
Заранее Спасибо !
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

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

Автор nicklas

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

Автор klekovkinandrey

Ответов: 2
Просмотров: 17114
Последний ответ 06.04.2024, 09:54:15
от Rinat abzyi
AdsManager загрузка файлов

Автор FlexNL

Ответов: 1
Просмотров: 5668
Последний ответ 21.10.2021, 17:20:09
от khan-alex
AdsManager 2.9.13 Есть ли возможность добавить функцию снять с публикации по мимо редактировать и уд

Автор murovoz

Ответов: 11
Просмотров: 16113
Последний ответ 27.03.2020, 22:39:23
от Pavel
Два компонента AdsManager в одном движке

Автор kaman62

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