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

Dimm555

  • Захожу иногда
  • 103
  • 6 / 0
Проблема в версии 2.5 с перелистыванием - есть список объявлений с ограничением в 20 штук, внизу нумерация "1 2 3 следующая" и когда нажимаешь на любую, кроме первой - выдает "нет объявлений", хотя их около 40. Что это за ерунда, знает кто-нибудь?
« Последнее редактирование: 02.12.2011, 21:19:50 от Dimm555 »
*

marozz1k

  • Захожу иногда
  • 316
  • 8 / 0
Re: Проблема с нумерацией списка
« Ответ #1 : 02.12.2011, 22:53:15 »
это уже не в адсменеджере проблема, а в пагинации джумловской скорее всего проблема, рой в ту степь
*

Dimm555

  • Захожу иногда
  • 103
  • 6 / 0
Re: Проблема с нумерацией списка
« Ответ #2 : 03.12.2011, 07:56:09 »
Спасибо, за вариант - проверю его, а то вроде, мелкий глюк, да очень большой:)
*

Dimm555

  • Захожу иногда
  • 103
  • 6 / 0
Re: Проблема с нумерацией списка
« Ответ #3 : 03.12.2011, 20:45:35 »
Я и забыл - у меня на этом сайте стоит router (SEF), без него всё нормально перелистывается. Может какая функция отсутствует? Кто-нибудь знает? AdsManager 2,5RC2, Joomla 1.5.22. Вот часть кода где встречается пагинэйшн.
Код
function AdsmanagerParseRoute($segments)
{
    global $my;

    $nbsegments = count($segments);
//print_r($segments);
//pagination advanced
if(substr($segments[$nbsegments-1],0,5)=='page:'){
    $start = explode( ':', $segments[$nbsegments-1]);
if(isset($vars['limit'])){
    $limit=$vars['limit'];
}else{
      $limit=20;
}
    $vars['limitstart'] = intval($start[1])*$limit-$limit;
//$vars['start'] = intval($start[1])*$limit-$limit;
}
//end pag

if ('all'==$segments[0] || 'all'==$segments[1]){ //all ads
    if($segments[0]=='expand'){
$vars['expand'] = 1;
}else if($segments[0]=='foto'){
$vars['expand'] = 3;
}
$vars['page'] = 'show_all';
}else if ('message'==$segments[0]){ //show all ads
    $vars['adid'] = (int) $segments[2];
    $vars['mode'] = (int) $segments[1];
    $vars['page'] = "show_message_form";
}else if ('delete'==$segments[0]){ //delete ads
    $adid = explode( ':', $segments[1] );
    $vars['adid'] = (int) $adid[0];
    $vars['page'] = "delete_ad";
}else if ('profile'==$segments[0]){ //show profile
    $vars['page'] = "show_profile";
}else if ('favorite'==$segments[0]){ //show fav ads
    $vars['page'] = "fav_ads";
}else if ('rules'==$segments[0]){
    $vars['page'] = "show_rules";
}else if ('searchpage'==$segments[0]){ //advanced search page
    $catid = explode( ':', $segments[1] );
    $vars['catid'] = (int) $catid[0];
    $vars['page'] = "show_search";
}else if (in_array(ADSMANAGER_ROUTER_EDIT,$segments)){ //edit ad
    $adid = explode( ':', $segments[0] );
    $vars['adid'] = (int) $adid[0];
    $vars['page'] = "write_ad";
}else if (in_array(ADSMANAGER_ROUTER_WRITE,$segments)){ //write ad
    $catid = explode( ':', $segments[0] );
    $vars['catid'] = (int) $catid[0];
    $vars['page'] = "write_ad";
}else if($segments[0]=='user'){ //show users ads
    $userid = explode( ':', $segments[1] );
    $vars['userid'] = (int) $userid[0];
if(intval($userid[0])==0){
    $vars['userid'] = intval($my->id);
};
    $vars['page'] = "show_user";
}else{ //show ad or category
if ($nbsegments == 2 && ($segments[0]!='foto' && $segments[0]!='expand') && substr($segments[$nbsegments-1],0,5)!='page:'){ //show ad
        $catid = explode( ':', $segments[0] );
        $vars['catid'] = (int) $catid[0];
        $adid = explode( ':', $segments[1] );
        $vars['adid'] = (int) $adid[0];
        $vars['page'] = 'show_ad';
}else{ //show cat
    if($segments[0]=='foto' || $segments[0]=='expand'){
    if($segments[0]=='expand'){
    $vars['expand'] = 1;
}else if($segments[0]=='foto'){
    $vars['expand'] = 3;
}
            $catid = explode( ':', $segments[1] );
            $vars['catid'] = (int) $catid[0];
            $adid = explode( ':', $segments[2] );
}else{
            $catid = explode( ':', $segments[0] );
            $vars['catid'] = (int) $catid[0];
            $adid = explode( ':', $segments[1] );
}
if(!isset($vars['page']) && !isset($_GET['page']) && !isset($_POST['page'])) $vars['page'] = 'show_category';
}
}

return $vars;
}
« Последнее редактирование: 03.12.2011, 20:57:13 от Dimm555 »
*

Dimm555

  • Захожу иногда
  • 103
  • 6 / 0
Re: Проблема с нумерацией списка
« Ответ #4 : 10.12.2011, 13:04:49 »
Может кто-нибудь за небольшую плату помочь поправить router.php, чтобы пагинация нормально перелистывалась?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Проблема с RSS

Автор uf1976

Ответов: 17
Просмотров: 8096
Последний ответ 14.07.2020, 12:31:40
от khan-alex
Текст справа от картинки в режиме списка объявлений

Автор motordrom

Ответов: 8
Просмотров: 1985
Последний ответ 20.07.2017, 09:45:47
от motordrom
Проблема с поиском Serach и Advanced Search модулях

Автор orsy

Ответов: 5
Просмотров: 1611
Последний ответ 17.11.2016, 14:49:43
от moonaway
Проблема с изображениями

Автор ExpertZews

Ответов: 0
Просмотров: 1329
Последний ответ 26.07.2016, 21:08:12
от ExpertZews
Как удалить колонку "Состояние" из списка всех объявлений?

Автор gnom993

Ответов: 10
Просмотров: 1501
Последний ответ 02.03.2016, 03:15:08
от турист