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

ljosha

  • Захожу иногда
  • 122
  • 0 / 0
Опишите пожалуйста, если можно, пошагово, как создать модульную позицию в шаблоне. Хочу создать модульную позицию посередине, те над контентом на главной странице. Сейчас там имеются только крошки.
Спасибо
*

ljosha

  • Захожу иногда
  • 122
  • 0 / 0
Re: Как создать модульную позицию
« Ответ #1 : 09.10.2011, 19:00:08 »
из того что смог нарыть: создал в templateDetails.xml позицию banners
в файле index.php прописал под крошками
Код
<?php if($this->countModules('crumb')) : ?>
<jdoc:include type="modules" name="crumb" style="xhtml" />
<jdoc:include type="modules" name="banner" style="xhtml" />
в templates.css прописал:
.banner {
        float: center;
   width: 600px;
   display: block;
}

Не отображается, что не доделал, где накосячил?
*

zmancer

  • Давно я тут
  • 519
  • 76 / 19
Re: Как создать модульную позицию
« Ответ #2 : 09.10.2011, 19:13:12 »
Мда... логика...
Выложите код index.php своего шаблона, я вам помогу
*

ljosha

  • Захожу иногда
  • 122
  • 0 / 0
Re: Как создать модульную позицию
« Ответ #3 : 09.10.2011, 19:15:22 »
Мда... логика...
Выложите код index.php своего шаблона, я вам помогу

Я просто новичок))
Код
<?php 
// no direct access
 defined( '_JEXEC' ) or die( 'Restricted access' ); ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" dir="<?php echo $this->direction; ?>" >
<head>
<jdoc:include type="head" />
<link rel="stylesheet" href="/templates/system/css/system.css" type="text/css" />
<link rel="stylesheet" href="/templates/system/css/general.css" type="text/css" />

<link rel="stylesheet" href="templates/<?php echo $this->template ?>/css/template.css" type="text/css" />

<link rel="stylesheet" href="templates/<?php echo $this->template ?>/css/ff.css" type="text/css" />
<link rel="stylesheet" href="templates/<?php echo $this->template ?>/css/reset.css" type="text/css" />

<!--[if IE]>
<link href="templates/<?php echo $this->template ?>/css/ie.css" media="screen" rel="stylesheet" type="text/css" />
<![endif]-->

<!--[if IE 7]>
<link href="templates/<?php echo $this->template ?>/css/ie7.css" media="screen" rel="stylesheet" type="text/css" />
<![endif]-->

<!-- JQuery… -->
<script type="text/javascript" src="/js/jquery.js"></script>
<script type="text/javascript" src="/js/scripts.js"></script>
<!-- …JQuery -->

<?php
if($this->countModules('left and right') == 0) $contentwidth = "100";
if($this->countModules('left or right') == 1) $contentwidth = "80";
if($this->countModules('left and right') == 1) $contentwidth = "60";
?>

</head>


<body id="index">

<div id="content">

<!--/*********** HEADER ***********-->
<div id="header" class="clearfix"><div class="indent clearfix">
<div class="logo">
<a href="/index.php?option=com_content&view=frontpage&Itemid=62" >Европейский учебный институт</a>
</div>
<h1>Европейский учебный институт<span>при МГИМО (У) МИД России</span></h1>

<ul class="small_top_nav">
<li class="home"><a href="/index.php?option=com_content&view=frontpage&Itemid=62"></a></li>
<li class="map"><a href="/index.php?option=com_xmap"></a></li>
<li class="mail"><a href="mailto:portal@inno.mgimo.ru"></a></li>
</ul>

<!--Поиск-->
<?php if($this->countModules('user1')) : ?>
<div class="search">
<jdoc:include type="modules" name="user1" style="xhtml" />
</div>
<?php endif; ?>

</div></div>

<!--*********** HEADER ***********/-->

<!--/*********** MAIN CONTENT ***********-->
<div id="main" class="clearfix"><div class="indent">

<!--/*** LEFT COLL ***-->
<?php if($this->countModules('left')) : ?>
      <div class="left">
            <jdoc:include type="modules" name="left" style="xhtml" />


      </div>
      <?php endif; ?>



<!--*** LEFT COLL ***/-->


<!--/*** BIG RIGHT COLL ***-->
<div class="content<?php echo $contentwidth; ?>">

<!--/*** RIGHT COLL ***-->

<?php if($this->countModules('right')) : ?>
<div class="right">
<jdoc:include type="modules" name="right" style="xhtml" />

                         <?php endif; ?>
<?php if($this->countModules('user2')) : ?>
<div class="user2">
<jdoc:include type="modules" name="user2" style="xhtml" />
</div>
<?php endif; ?>

</div>

<!--*** RIGHT COLL ***/-->

<!--/*** CENTER COLL ***-->
<div class="center<?php echo $contentwidth; ?>">
<div class="indent">

<!--/*** LENTA ***-->
<div class="lenta">
<!--вывод содержимого контента-->   
<?php if($this->countModules('crumb')) : ?>
<jdoc:include type="modules" name="crumb" style="xhtml" />
<jdoc:include type="modules" name="banner" style="xhtml" />
<?php endif; ?>

<jdoc:include type="component" style="xhtml" />  
</div>
<!--*** LENTA ***/-->

</div>
</div>

<!--*** CENTER COLL ***/-->

</div>
<!--*** BIG RIGHT COLL ***/-->

</div></div>
<!--*********** MAIN CONTENT ***********/-->

<!--/*********** FOOTER ***********-->
<div id="footer">
<div class="indent">
<p class="copyright">Информационная поддержка и наполнение сайта — Информационный центр ИЕП, ЕУИ и МП факультета МГИМО (У) МИД России.<br />
Разработка  — <a href="#">Управление интернет-политики</a>. Техническое обеспечение — <a href="#">Дирекция информационных технологий МГИМО (У) МИД России</a>.<br />

Copyright &copy; 2007-2011, все права защищены.</p>
</div>
</div>
<!--*********** FOOTER ***********/-->
</div>

</body>
</html>
*

zmancer

  • Давно я тут
  • 519
  • 76 / 19
Re: Как создать модульную позицию
« Ответ #4 : 09.10.2011, 19:28:06 »
замени на этот код
Код
<?php 
// no direct access
 defined( '_JEXEC' ) or die( 'Restricted access' ); ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" dir="<?php echo $this->direction; ?>" >
<head>
<jdoc:include type="head" />
<link rel="stylesheet" href="/templates/system/css/system.css" type="text/css" />
<link rel="stylesheet" href="/templates/system/css/general.css" type="text/css" />

<link rel="stylesheet" href="templates/<?php echo $this->template ?>/css/template.css" type="text/css" />

<link rel="stylesheet" href="templates/<?php echo $this->template ?>/css/ff.css" type="text/css" />
<link rel="stylesheet" href="templates/<?php echo $this->template ?>/css/reset.css" type="text/css" />

<!--[if IE]>
<link href="templates/<?php echo $this->template ?>/css/ie.css" media="screen" rel="stylesheet" type="text/css" />
<![endif]-->

<!--[if IE 7]>
<link href="templates/<?php echo $this->template ?>/css/ie7.css" media="screen" rel="stylesheet" type="text/css" />
<![endif]-->

<!-- JQuery… -->
<script type="text/javascript" src="/js/jquery.js"></script>
<script type="text/javascript" src="/js/scripts.js"></script>
<!-- …JQuery -->

<?php
if($this->countModules('left and right') == 0) $contentwidth = "100";
if($this->countModules('left or right') == 1) $contentwidth = "80";
if($this->countModules('left and right') == 1) $contentwidth = "60";
?>

</head>


<body id="index">

<div id="content">

<!--/*********** HEADER ***********-->
<div id="header" class="clearfix"><div class="indent clearfix">
<div class="logo">
<a href="/index.php?option=com_content&view=frontpage&Itemid=62" >Европейский учебный институт</a>
</div>
<h1>Европейский учебный институт<span>при МГИМО (У) МИД России</span></h1>

<ul class="small_top_nav">
<li class="home"><a href="/index.php?option=com_content&view=frontpage&Itemid=62"></a></li>
<li class="map"><a href="/index.php?option=com_xmap"></a></li>
<li class="mail"><a href="mailto:portal@inno.mgimo.ru"></a></li>
</ul>

<!--Поиск-->
<?php if($this->countModules('user1')) : ?>
<div class="search">
<jdoc:include type="modules" name="user1" style="xhtml" />
</div>
<?php endif; ?>

</div></div>

<!--*********** HEADER ***********/-->

<!--/*********** MAIN CONTENT ***********-->
<div id="main" class="clearfix"><div class="indent">

<!--/*** LEFT COLL ***-->
<?php if($this->countModules('left')) : ?>
      <div class="left">
            <jdoc:include type="modules" name="left" style="xhtml" />


      </div>
      <?php endif; ?>



<!--*** LEFT COLL ***/-->


<!--/*** BIG RIGHT COLL ***-->
<div class="content<?php echo $contentwidth; ?>">

<!--/*** RIGHT COLL ***-->

<?php if($this->countModules('right')) : ?>
<div class="right">
<jdoc:include type="modules" name="right" style="xhtml" />

                         <?php endif; ?>
<?php if($this->countModules('user2')) : ?>
<div class="user2">
<jdoc:include type="modules" name="user2" style="xhtml" />
</div>
<?php endif; ?>

</div>

<!--*** RIGHT COLL ***/-->

<!--/*** CENTER COLL ***-->
<div class="center<?php echo $contentwidth; ?>">
<div class="indent">

<!--/*** LENTA ***-->
<div class="lenta">
<!--вывод содержимого контента-->   
<?php if($this->countModules('crumb')) : ?>
<jdoc:include type="modules" name="crumb" style="xhtml" />
<?php endif; ?>
<?php if($this->countModules('banner')) : ?>
<div class="banner"><jdoc:include type="modules" name="banner" style="xhtml" /></div>
<?php endif; ?>
<jdoc:include type="component" style="xhtml" />  
</div>
<!--*** LENTA ***/-->

</div>
</div>

<!--*** CENTER COLL ***/-->

</div>
<!--*** BIG RIGHT COLL ***/-->

</div></div>
<!--*********** MAIN CONTENT ***********/-->

<!--/*********** FOOTER ***********-->
<div id="footer">
<div class="indent">
<p class="copyright">Информационная поддержка и наполнение сайта — Информационный центр ИЕП, ЕУИ и МП факультета МГИМО (У) МИД России.<br />
Разработка  — <a href="#">Управление интернет-политики</a>. Техническое обеспечение — <a href="#">Дирекция информационных технологий МГИМО (У) МИД России</a>.<br />

Copyright &copy; 2007-2011, все права защищены.</p>
</div>
</div>
<!--*********** FOOTER ***********/-->
</div>

</body>
</html>
в CSS добавить
.banner {
тут необходимые свойства, float:center; - не бывает у float может быть значение либо left либо right либо none
если хочешь по центру разместить баннер то нужно указать ширину width:600px; к примеру и добавить свойство margin:0 auto;
}
*

zmancer

  • Давно я тут
  • 519
  • 76 / 19
Re: Как создать модульную позицию
« Ответ #5 : 09.10.2011, 19:30:24 »
а позицию пропиши в templateDetails.xml - banner ,а не banners
*

ljosha

  • Захожу иногда
  • 122
  • 0 / 0
Re: Как создать модульную позицию
« Ответ #6 : 09.10.2011, 19:33:12 »
замени на этот код
Код
<?php 
// no direct access
 defined( '_JEXEC' ) or die( 'Restricted access' ); ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" dir="<?php echo $this->direction; ?>" >
<head>
<jdoc:include type="head" />
<link rel="stylesheet" href="/templates/system/css/system.css" type="text/css" />
<link rel="stylesheet" href="/templates/system/css/general.css" type="text/css" />

<link rel="stylesheet" href="templates/<?php echo $this->template ?>/css/template.css" type="text/css" />

<link rel="stylesheet" href="templates/<?php echo $this->template ?>/css/ff.css" type="text/css" />
<link rel="stylesheet" href="templates/<?php echo $this->template ?>/css/reset.css" type="text/css" />

<!--[if IE]>
<link href="templates/<?php echo $this->template ?>/css/ie.css" media="screen" rel="stylesheet" type="text/css" />
<![endif]-->

<!--[if IE 7]>
<link href="templates/<?php echo $this->template ?>/css/ie7.css" media="screen" rel="stylesheet" type="text/css" />
<![endif]-->

<!-- JQuery… -->
<script type="text/javascript" src="/js/jquery.js"></script>
<script type="text/javascript" src="/js/scripts.js"></script>
<!-- …JQuery -->

<?php
if($this->countModules('left and right') == 0) $contentwidth = "100";
if($this->countModules('left or right') == 1) $contentwidth = "80";
if($this->countModules('left and right') == 1) $contentwidth = "60";
?>

</head>


<body id="index">

<div id="content">

<!--/*********** HEADER ***********-->
<div id="header" class="clearfix"><div class="indent clearfix">
<div class="logo">
<a href="/index.php?option=com_content&view=frontpage&Itemid=62" >Европейский учебный институт</a>
</div>
<h1>Европейский учебный институт<span>при МГИМО (У) МИД России</span></h1>

<ul class="small_top_nav">
<li class="home"><a href="/index.php?option=com_content&view=frontpage&Itemid=62"></a></li>
<li class="map"><a href="/index.php?option=com_xmap"></a></li>
<li class="mail"><a href="mailto:portal@inno.mgimo.ru"></a></li>
</ul>

<!--Поиск-->
<?php if($this->countModules('user1')) : ?>
<div class="search">
<jdoc:include type="modules" name="user1" style="xhtml" />
</div>
<?php endif; ?>

</div></div>

<!--*********** HEADER ***********/-->

<!--/*********** MAIN CONTENT ***********-->
<div id="main" class="clearfix"><div class="indent">

<!--/*** LEFT COLL ***-->
<?php if($this->countModules('left')) : ?>
       <div class="left">
           <jdoc:include type="modules" name="left" style="xhtml" />


       </div>
       <?php endif; ?>



<!--*** LEFT COLL ***/-->


<!--/*** BIG RIGHT COLL ***-->
<div class="content<?php echo $contentwidth; ?>">

<!--/*** RIGHT COLL ***-->

<?php if($this->countModules('right')) : ?>
<div class="right">
<jdoc:include type="modules" name="right" style="xhtml" />

                        <?php endif; ?>
<?php if($this->countModules('user2')) : ?>
<div class="user2">
<jdoc:include type="modules" name="user2" style="xhtml" />
</div>
<?php endif; ?>

</div>

<!--*** RIGHT COLL ***/-->

<!--/*** CENTER COLL ***-->
<div class="center<?php echo $contentwidth; ?>">
<div class="indent">

<!--/*** LENTA ***-->
<div class="lenta">
<!--вывод содержимого контента-->  
<?php if($this->countModules('crumb')) : ?>
<jdoc:include type="modules" name="crumb" style="xhtml" />
<?php endif; ?>
<?php if($this->countModules('banner')) : ?>
<div class="banner"><jdoc:include type="modules" name="banner" style="xhtml" /></div>
<?php endif; ?>
<jdoc:include type="component" style="xhtml" />  
</div>
<!--*** LENTA ***/-->

</div>
</div>

<!--*** CENTER COLL ***/-->

</div>
<!--*** BIG RIGHT COLL ***/-->

</div></div>
<!--*********** MAIN CONTENT ***********/-->

<!--/*********** FOOTER ***********-->
<div id="footer">
<div class="indent">
<p class="copyright">Информационная поддержка и наполнение сайта — Информационный центр ИЕП, ЕУИ и МП факультета МГИМО (У) МИД России.<br />
Разработка  — <a href="#">Управление интернет-политики</a>. Техническое обеспечение — <a href="#">Дирекция информационных технологий МГИМО (У) МИД России</a>.<br />

Copyright &copy; 2007-2011, все права защищены.</p>
</div>
</div>
<!--*********** FOOTER ***********/-->
</div>

</body>
</html>
в CSS добавить
.banner {
тут необходимые свойства, float:center; - не бывает у float может быть значение либо left либо right либо none
если хочешь по центру разместить баннер то нужно указать ширину width:600px; к примеру и добавить свойство margin:0 auto;
}

Огромное спасибо, позиция появилась. Вот только не могу я его по центру выставить, он к левому краю прилип намертво
в темплейтс.цсс вот такой код остался :
Код
.banner {
       
width: 600px;
margin:0 auto;
}
*

ljosha

  • Захожу иногда
  • 122
  • 0 / 0
Re: Как создать модульную позицию
« Ответ #7 : 09.10.2011, 21:07:42 »
Все, разобрался, огромное спасибо за помощь
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как создать новый блок в шаблоне?

Автор moov

Ответов: 7
Просмотров: 9136
Последний ответ 17.12.2018, 14:08:12
от arma
Что такое создать переопределение в менеджере шаблонов?

Автор masimka

Ответов: 2
Просмотров: 3150
Последний ответ 18.11.2015, 12:50:03
от masimka
Как правильно создать меню?

Автор shanya77

Ответов: 2
Просмотров: 1954
Последний ответ 26.03.2015, 12:13:15
от shanya77
Проблема T3 v2 blank шаблон / Не получается добавить позицию content-mass-top

Автор d91me

Ответов: 11
Просмотров: 4488
Последний ответ 07.12.2012, 10:29:11
от s133p
Поменять местами "Основной блок" и "Позицию"(Левую)

Автор ordrok

Ответов: 1
Просмотров: 2370
Последний ответ 22.08.2012, 17:41:43
от worldmen