Новости Joomla

Вышли релизы Joomla 6.0.3 и Joomla 5.4.3

Релиз Joomla 6.0.3 и Joomla 5.4.3

Проект Joomla рад сообщить о выпуске Joomla 6.0.3 и Joomla 5.4.3. Это релиз исправлений ошибок и улучшений для серии Joomla 6.0 и Joomla 5.4.

👩‍💻 События плагинов и порядок их срабатывания при работе с пользовательскими полями 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 Гость просматривают эту тему.
  • 10 Ответов
  • 2671 Просмотров
*

artMelnikov

  • Захожу иногда
  • 57
  • 3 / 0
Привет, друзья!

Подскажите, пожалуйста, как можно скрыть модуль баннеров для определенного IP?
Конкретнее.
На сайте есть баннеры. Как сделать, чтоб начальство, заходящее на сайт со статического IP не видело их. Я придумал прописать в коде модуля баннера проверку IP и условие:
если IP = 1.1.1.1, то ничего
иначе показать баннер.

Но что конкретно писать не знаю. похожих тем не нашел. Подскажите, пожалуйста.
Может есть более рациональный способ, хз. Очень надеюсь на Вашу помошь.
« Последнее редактирование: 11.11.2011, 10:08:52 от artMelnikov »
*

artMelnikov

  • Захожу иногда
  • 57
  • 3 / 0
Подскажите, пожалуйста, хотя бы скрипт проверки пароля, а условие сам как-нибудь напишу.
*

SinBad

  • Завсегдатай
  • 1879
  • 187 / 0
  • Мнне 40 лет, мне 40 лет, ума так и не нажил!
Подскажите, пожалуйста, хотя бы скрипт проверки пароля, а условие сам как-нибудь напишу.

<?php
 if ($_SERVER['REMOTE_ADDR'] != '1.1.1.1')
  //здесь вывод позиции вашего моудуля
 else
  echo 'Насяльника гамно! Баннера не увидишь.';

?>
...Фет для них песни поёт. Фет не прикольный поэт - Фету никто не даёт.
*

artMelnikov

  • Захожу иногда
  • 57
  • 3 / 0
 :laugh:
Круто! Спасибо большое. попробую.
*

artMelnikov

  • Захожу иногда
  • 57
  • 3 / 0
Ребята и девчата, если кто шарит, подскажите, пожалуйста.
Уже и так и так крутил-вертел этот скрипт и туда вставлял и сюда. Ничего не выходит.
Может можете описать по подробнее, что делать, если конечно делали такой хак.
Очень прошу помочь.
Может есть готовое решение.
Я не очень понял с выводом позиции. Это получается в index.php надо там где позиции определяются? Но тогда я в эту позицию ничего не помещу. а если надо в позицию Left вставить баннер, то для айпи 1.1.1.1 этой позиции вообще не будет и всего, что там есть.
Я пробовал в код модуля mod_banners вставлять. Пробовал вставлять это условие в модуль mod_custom (произвольный HTML код).
Со знанием языка у меня проблемы, поэтому прошу о помощи Вас.
Заранее Спасибо!
*

SinBad

  • Завсегдатай
  • 1879
  • 187 / 0
  • Мнне 40 лет, мне 40 лет, ума так и не нажил!
В модули типа mod_custom бесполезно вставлять php код, так как он не интерпретируется в них, для этих целей служит mod_php.

Но его применение думаю нелогично, лучше создадим свою позицию для баннера. Если будет непонятно, посмотрите темы про создание шаблонов для Joomla и соотвественно позиции в шаблоне.

Итак открываем index.php. Ищем позицию в которой хотелось бы разместить наш модуль баннера. Например это позиция user1.

Цитировать
<?php if($this->countModules('user1')) : ?>
   <jdoc:include type="modules" name="user1" style="xhtml" />
<?php endif; ?>

Рядом с ней создаем новую позицию и заключаем ее в условие, например bannerpos и выглядеть это будет примерно вот так:

Код
<?php if($this->countModules('user1')) : ?>
   <jdoc:include type="modules" name="user1" style="xhtml" />
<?php endif; ?>

<?php if($this->countModules('bannerpos')) :
    if ($_SERVER['REMOTE_ADDR'] != '1.1.1.1') { ?>
         <jdoc:include type="modules" name="bannerpos" style="xhtml" />

    <?php }
endif; ?>

Учтите что нужно соблюдать структуру HTML при вставке позиции модуля, чтобы верстка "не поплыла", т.е. если позиция модуля заключена в ячейку таблицы <td>...</td> (как в оригинальном шаблоне rhuk_milkyway)  то и нашу позицию тоже заключаем в ячейку. Ну это так, небольшое отступление.

Идем дальше. Открываем файл templateDetails.xml в папке шаблона и ищем строки

Код
	<positions>
<position>breadcrumb</position>
<position>left</position>
<position>right</position>
...
</positions>

Добавляем в конце нашу позицию, чтобы выглядело так:

Код
	<positions>
<position>breadcrumb</position>
<position>left</position>
<position>right</position>
...
<position>bannerpos</position>
</positions>

Идем в модуль баннеров и переназначаем позицию bannerpos.

Либо вторйо вариант, я не знаю что вы правили в модуле баннеров, но если сделать это условие в этом файле \modules\mod_banners\tmpl\default.php
то баннеры так же не будут выводится, то есть так:

Код
<?php // no direct access
defined('_JEXEC') or die('Restricted access');
 if ($_SERVER['REMOTE_ADDR'] != '1.1.1.1') {  ?>
<div class="bannergroup<?php echo $params->get( 'moduleclass_sfx' )?>">

<?php if ($headerText) : ?>
<div class="bannerheader"><?php echo $headerText ?></div>
<?php endif;

foreach($list as $item) :

?><div class="banneritem<?php echo $params->get( 'moduleclass_sfx' )?>"><?php
echo modBannersHelper::renderBanner($params, $item);
?><div class="clr"></div>
</div>
<?php endforeach; ?>

<?php if ($footerText) : ?>
<div class="bannerfooter<?php echo $params->get( 'moduleclass_sfx' )?>">
<?php echo $footerText ?>
</div>
<?php endif; ?>
</div>
<?php } ?>
...Фет для них песни поёт. Фет не прикольный поэт - Фету никто не даёт.
*

artMelnikov

  • Захожу иногда
  • 57
  • 3 / 0
:D Спасибо большое, SinBad! Вы просто Человечище! Очень признателен за полный ответ!
2 вариант идеален для меня. Всё получилось! Работает на УРА!
1 вариант тоже пригодится.
А как указать несколько IP-адресов? Просто несколько условий сделать?
« Последнее редактирование: 11.11.2011, 10:12:36 от artMelnikov »
*

SinBad

  • Завсегдатай
  • 1879
  • 187 / 0
  • Мнне 40 лет, мне 40 лет, ума так и не нажил!
:D Спасибо большое, SinBad! Вы просто Человечище! Очень признателен за полный ответ!
2 вариант идеален для меня. Всё получилось! Работает на УРА!
1 вариант тоже пригодится.
А как указать несколько IP-адресов? Просто несколько условий сделать?
да можно типа такого условия
Код
($_SERVER['REMOTE_ADDR'] != '1.1.1.1' || $_SERVER['REMOTE_ADDR'] != '1.1.1.2' || $_SERVER['REMOTE_ADDR'] != '1.1.1.3')
...Фет для них песни поёт. Фет не прикольный поэт - Фету никто не даёт.
*

artMelnikov

  • Захожу иногда
  • 57
  • 3 / 0
да можно типа такого условия
Код
($_SERVER['REMOTE_ADDR'] != '1.1.1.1' || $_SERVER['REMOTE_ADDR'] != '1.1.1.2' || $_SERVER['REMOTE_ADDR'] != '1.1.1.3')
Так не работает. Просто не сверяется этими адресами и баннер показывается.
Не знаю на сколько это синтаксически правильно, но вот так сработало:
Код
if ($_SERVER['REMOTE_ADDR'] != '1.1.1.1') if ($_SERVER['REMOTE_ADDR'] != '1.1.1.2')
*

SinBad

  • Завсегдатай
  • 1879
  • 187 / 0
  • Мнне 40 лет, мне 40 лет, ума так и не нажил!
Так не работает. Просто не сверяется этими адресами и баннер показывается.
Не знаю на сколько это синтаксически правильно, но вот так сработало:
Код
if ($_SERVER['REMOTE_ADDR'] != '1.1.1.1') if ($_SERVER['REMOTE_ADDR'] != '1.1.1.2')
)нет, это просто я неправильно написал логику условия, нужно условие И поставить, а не ИЛИ, т.е. так:
Код
($_SERVER['REMOTE_ADDR'] != '1.1.1.1' && $_SERVER['REMOTE_ADDR'] != '1.1.1.2' && $_SERVER['REMOTE_ADDR'] != '1.1.1.3')
...Фет для них песни поёт. Фет не прикольный поэт - Фету никто не даёт.
*

artMelnikov

  • Захожу иногда
  • 57
  • 3 / 0
)нет, это просто я неправильно написал логику условия, нужно условие И поставить, а не ИЛИ, т.е. так:
Код
($_SERVER['REMOTE_ADDR'] != '1.1.1.1' && $_SERVER['REMOTE_ADDR'] != '1.1.1.2' && $_SERVER['REMOTE_ADDR'] != '1.1.1.3')

Так работает. Всё ништяк!  :D Еще раз, большое спасибо!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[Решено] Проблема с авторизацией Invalid Token

Автор treX

Ответов: 100
Просмотров: 100102
Последний ответ 06.10.2019, 16:55:45
от PaLyCH
модуль Newsflash: как вывести дату?

Автор joomloid

Ответов: 5
Просмотров: 5619
Последний ответ 03.04.2019, 12:25:27
от pH43
Как отредактировать модуль mod_yoo_slider?

Автор vitaliy4us

Ответов: 0
Просмотров: 3555
Последний ответ 06.12.2017, 16:14:45
от vitaliy4us
Как проверить форму обратной связи [Решено]

Автор mafiozzzza

Ответов: 8
Просмотров: 7772
Последний ответ 30.05.2017, 11:34:11
от darkghost
Модуль "Случайное изображение"

Автор irina 4444

Ответов: 16
Просмотров: 9649
Последний ответ 26.05.2017, 12:47:56
от gvg