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

samuray7

  • Захожу иногда
  • 77
  • 6 / 0
  • Хыка
JCH Optimizer и noindex
« : 22.01.2013, 20:33:44 »
Вопрос возможно не заинтересует многих, но... JCH Optimizer имеет функцию укорачивания кода, а именно убирает лишние пробелы и комментарии из кода - вещь очень не плохая (ИМХО). Но вот валидный noindex он тоже режет, приняв за коммент. Т.е. <!--noindex--> ..... <!--/noindex--> вырезается из кода с корнем.
 В JCH Optimizer, как я понял за этим стоит код:
Код
    protected function excludeIf($sType) {

        if (preg_match_all('~<\!--.*?-->~is', $this->sHead, $aMatches)) {

            foreach ($aMatches[0] as $sMatch) {

                preg_match_all('~.*?/([^/]+\.' . $sType . ').*?~', $sMatch, $aExcludesMatches);

                $this->aCallbackArgs['excludes'][] = @$aExcludesMatches[1][0];

            }

        }

    }
Моожет кто подсказать как составить условие, чтобы для строки, содержащей <!--noindex--> ..... <!--/noindex-->, данная функция не выполнялась?
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: JCH Optimizer и noindex
« Ответ #1 : 23.01.2013, 04:05:42 »
 if (preg_match_all('~<\!--(?!\/?noindex).*?-->~is', $this->sHead, $aMatches)) {
*

samuray7

  • Захожу иногда
  • 77
  • 6 / 0
  • Хыка
Re: JCH Optimizer и noindex
« Ответ #2 : 23.01.2013, 14:12:51 »
Вы не так поняли. Нужно условие, при котором, если есть noidex, данную функцию пропустить.
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: JCH Optimizer и noindex
« Ответ #3 : 23.01.2013, 14:21:23 »
Так регулярка так и делает. Не выбирает <!--noindex-->и <!--/noindex-->, выбирает все кроме предыдущих<!--любой текст-->
Вопрос вы пробовали вставлять вышеприведенный код?
(?!\/?noindex) - это и есть условие
*

samuray7

  • Захожу иногда
  • 77
  • 6 / 0
  • Хыка
Re: JCH Optimizer и noindex
« Ответ #4 : 23.01.2013, 20:42:06 »
Да, пробовал - <!--noindex--> ..... <!--/noindex--> вырезает подчистую
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: JCH Optimizer и noindex
« Ответ #5 : 23.01.2013, 22:13:23 »
Значит не здесь вырезает. Вот тест и результат под спойлером. Кеш чистили?
Код: php-brief
<?php
$text1 ='<!--noindex-->Привет<!--/noindex-->Тест1 <!--aaaa-->Привет<!--dddd-->Тест1 ';
if (preg_match_all('~<\!--(?!\/?noindex).*?-->~is', $text1, $aMatches)) {
   var_dump($aMatches);
}
?>
Спойлер
[свернуть]
*

samuray7

  • Захожу иногда
  • 77
  • 6 / 0
  • Хыка
Re: JCH Optimizer и noindex
« Ответ #6 : 23.01.2013, 22:28:43 »
Poznakomlus, спасибо за помощь.
Гм, может быть... Но похожее регулярное выражение нашел только в этом блоке. Да и файл в этом плагине один.
А если составить if else ? Для контрольного в голову? ))
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: JCH Optimizer и noindex
« Ответ #7 : 23.01.2013, 22:42:44 »
Чистили ли кеш?
Что у вас подается на вход функции. Если так вставите строку, что выведет
var_dump($sType);
*

samuray7

  • Захожу иногда
  • 77
  • 6 / 0
  • Хыка
Re: JCH Optimizer и noindex
« Ответ #8 : 24.01.2013, 10:27:45 »
Вы правы, там еще есть вызов на проверку комментов в коде.
*

samuray7

  • Захожу иногда
  • 77
  • 6 / 0
  • Хыка
Re: JCH Optimizer и noindex
« Ответ #9 : 24.01.2013, 18:21:15 »
В другом файле есть еще блок вырезания комментов =(
Код
        // remove HTML comments (not containing IE conditional comments).

        $this->_html = preg_replace_callback(

            '/<!--([\\s\\S]*?)-->/'

            ,array($this, '_commentCB')

            ,$this->_html);
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Теги noindex, nofollow при формировании url

Автор Pe3HuK

Ответов: 5
Просмотров: 1386
Последний ответ 27.06.2017, 10:03:40
от ChaosHead
Убрать тег noindex

Автор KingSnake

Ответов: 4
Просмотров: 2428
Последний ответ 20.11.2014, 14:27:43
от KingSnake
Не присваивается noindex, nofollow страницам через админку

Автор Kasumi

Ответов: 5
Просмотров: 2029
Последний ответ 06.08.2012, 22:05:17
от sbakur