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

Никколай

  • Новичок
  • 5
  • 0 / 0
размер позиции
« : 25.11.2011, 10:03:18 »
добрый день

у меня возникла проблема с шаблоном на сайте http://www.angelina-travel.ru/

суть в том, что нужно растянуть позицию user2 (на которой на начальной странице расположен модуль "After Matchh News") на все свободное место до позиции user3 (модуль "новости").
не только на главной странице,но и на остальных.


не подскажете, где это можно отредактировать?
*

sharp

  • Завсегдатай
  • 1173
  • 97 / 2
Re: размер позиции
« Ответ #1 : 25.11.2011, 10:06:23 »
увеличить:
Код
.zt-box-inside {
    width: 305px;
}
Хочешь знать правду!? читай таблицу умножения.
Поисковое продвижение или раскрутка сайта!
*

Никколай

  • Новичок
  • 5
  • 0 / 0
Re: размер позиции
« Ответ #2 : 25.11.2011, 10:15:13 »
вот кусок кода:

Код

<?php
$spotlight = array ('user1','user2','user3','user4');
$consl = $ztTools->calSpotlight($spotlight,$ztTools->isOP()?100:100,'%');
if( $consl) :
?>
<div id="zt-userwrap2" class="clearfix">
<div class="zt-wrapper">
<div id="zt-userwrap2-inner">

<?php if($this->countModules('user3')) { ?>
                <div style="width: 66.6%; float: left">
<?php if($this->countModules('user1')) : ?>
<div id="zt-user1" class="zt-user zt-box<?php echo $consl['user1']['class']; ?>" style="width: 41%;">
<div class="zt-box-inside">

<jdoc:include type="modules" name="user1" style="ztxhtml" />
</div>
</div>
<?php endif; ?>

<?php if($this->countModules('user2')) : ?>
<div id="zt-user2" class="zt-user zt-box<?php echo $consl['user2']['class']; ?>" style="width: 305px; height: 330px">
<div class="zt-box-inside">
<jdoc:include type="modules" name="user2" style="ztxhtml" />
</div>
</div>
<?php endif; ?>

<?php if ($pageclass=='') { ?>
<!-- MAINBODY -->
<div id="zt-mainbody" class="clearfix <?php echo $pageclass; ?>" style="width: 640px; float: left; clear: none; margin-top: -23px">
                        <div class="zt-wrapper-page">
            <div id="zt-mainbody-inner">
                                <!-- CONTAINER -->
                                    <div id="zt-container<?php echo $zt_width; ?>" class="clearfix">
                                        <div id="zt-maincontent" class="zt-maincontent-index">
                                        <div id="zt-maincontent-inner">
                                            <div id="zt-component" class="clearfix">
                                                <jdoc:include type="message" />
                                                <jdoc:include type="component" />
                                            </div>

                                        </div>
                                        </div>
                                    </div>
                                <!-- END CONTAINER -->
                            </div>
                        </div>
</div>
<!-- END MAINBODY -->
<?php } ?>

                    </div>
                    <?php } else { ?>
                <div>
<?php if($this->countModules('user1')) : ?>
<div id="zt-user1" class="zt-user zt-box<?php echo $consl['user1']['class']; ?>" style="width: 30%;margin-right: 3%">
<div class="zt-box-inside">

<jdoc:include type="modules" name="user1" style="ztxhtml" />
</div>
</div>
<?php endif; ?>


<?php if ($pageclass=='') { ?>
<!-- MAINBODY -->
<div id="zt-mainbody" class="clearfix <?php echo $pageclass; ?>" style="width: 640px; float: left; clear: none; margin-top: -23px">
                        <div class="zt-wrapper-page">
            <div id="zt-mainbody-inner">
                                <!-- CONTAINER -->
                                    <div id="zt-container<?php echo $zt_width; ?>" class="clearfix">
                                        <div id="zt-maincontent" class="zt-maincontent-index">
                                        <div id="zt-maincontent-inner">
                                            <div id="zt-component" class="clearfix">
                                                <jdoc:include type="message" />
                                                <jdoc:include type="component" />
                                            </div>

                                        </div>
                                        </div>
                                    </div>
                                <!-- END CONTAINER -->
                            </div>
                        </div>
</div>
<!-- END MAINBODY -->
<?php } ?>

                    </div>

                    <?php } ?>

<?php if($this->countModules('user3')) : ?>
<div id="zt-user3" class="zt-user zt-box<?php echo $consl['user3']['class']; ?>" style="width:  <?php echo $consl['user3']['width']; ?>;">
<div class="zt-box-inside">
<jdoc:include type="modules" name="user3" style="ztxhtml" />
</div>
</div>
<?php endif; ?>

<?php if($this->countModules('user4')) : ?>
<div id="zt-user4" class="zt-user zt-box<?php echo $consl['user4']['class']; ?>" style="width: <?php echo $consl['user4']['width']; ?>;">
<div class="zt-box-inside">
<jdoc:include type="modules" name="user4" style="ztxhtml" />
</div>
</div>
<?php endif; ?>

</div>
</div>
</div>
<?php endif; ?>



прошу прощения, где конкретно?
*

sharp

  • Завсегдатай
  • 1173
  • 97 / 2
Re: размер позиции
« Ответ #3 : 25.11.2011, 10:17:12 »
искать в CSS файле шаблона
Хочешь знать правду!? читай таблицу умножения.
Поисковое продвижение или раскрутка сайта!
*

Никколай

  • Новичок
  • 5
  • 0 / 0
Re: размер позиции
« Ответ #4 : 25.11.2011, 10:33:46 »
template.css


Код


/* COMMON STYLE
--------------------------------------------------------- */

html, body, form, fieldset {
  margin: 0;
  padding: 0;
}
body {
  font-family: Tahoma;
}
body#bd {
  color: #5e5e5e;
  line-height: 18px;
  background: url(../images/bd.jpg) #a3cbd5 repeat-y center 0;
}
body.fs1 {font-size: 10px;}
body.fs2 {font-size: 11px;}
body.fs3 {font-size: 12px;}
body.fs4 {font-size: 13px;}
body.fs5 {font-size: 14px;}

body.fs6 {font-size: 15px;}

/* Clearfix */
.clearfix {
  clear: both;
}
#zt-wrapper {
  padding: 0;
  width: 100%;
  background: url(../images/mainmenu-_bg.png) no-repeat center 99px;
}
.zt-wrapper {
  width: 960px;
  margin: 0 auto;
}
#zt-userwrap1,
#zt-userwrap2,
#zt-userwrap3,
#zt-userwrap4,
#zt-userwrap5,
#zt-userwrap7 {
  width: 100%;
  float: left;
}
#zt-userwrap1-inner,
#zt-userwrap2-inner,
#zt-userwrap3-inner,
#zt-userwrap4-inner,
#zt-userwrap5-inner,
#zt-userwrap6-inner,
#zt-bottom-inner,
#zt-top-inner ,
#zt-footer-inner,
#zt-copyright-inner{
  overflow: hidden;
  clear: both;
}
#zt-userwrap2 {
  margin-top: -20px;
}
#zt-userwrap2-inner,
#zt-userwrap3-inner,
#zt-userwrap4-inner{
  margin: 0 -10px;
}
#zt-bottom-inner{
  padding: 10px;
  margin-bottom: 2em;
  border : 1px solid #fff;
  background: url(../images/bottom-bg.jpg) #e7f1f2 repeat-x;
}
#zt-userwrap1-inner{
  padding-top: 1em;
}
#zt-copyright-inner{
  padding: 10px 0;
}
div.moduletable,
div.moduletable_menu,
div.moduletable_blank,
div.moduletable_text,
div.module,
div.module_menu,
div.module_text {
  clear: both;
  margin: 0 0 20px 0;
  position: relative;
  clear: both;
  overflow: hidden;
}

/* BEGIN MODULE */
#zt-header {
  width: 100%;
  display: inline-block;
}
#zt-header-inner{
  width: 100%;
  display: inline-block;
  padding-bottom: 2em;
  background: url(../images/dotted.png) repeat-x left bottom;
}
#zt-logo {
  width: 1080px;
  margin: 0 auto;
  z-index: 1000;
}
#zt-logo h1 {
  margin: 0;
}
#zt-logo a {
  width: 1080px;
  height: 260px;
  display: block;
  background: url(../images/logo.png) no-repeat ;
}
#zt-logo span {
  font-size: 0;
  line-height: 0;
  display: none;
}
#zt-top {
  display: inline-block;
  width: 100%;
  margin: 1em 0;
}
#zt-mainmenu {
  display: block;
  width: 100%;
     float: left;
}
#zt-mainmenu-inner {
  margin-left: 17px;
  margin-right: 17px;
  width: 96%;
  overflow: hidden;
  display: block;
}

/* BEGIN MODULE */

div.moduletable_blank .modulecontent {
  padding: 0 ;
}
.zt-user {
  overflow: hidden;
  float: left;
}
.zt-user .zt-box-inside {
   padding: 0 10px;
  overflow: hidden;
}

.zt-box-full {
  width: 100%;
}
.zt-box-full .zt-box-inside {
  width: 100%;
  padding: 0px !important;
}
#zt-container-full #zt-midtop,
#zt-container {
  width: 100%;
  overflow: hidden;
}
#zt-maincontent {
  width: 70%;
  float: left;
  overflow: hidden;
}
#zt-maincontent-inner{
  padding-left: 15px;
  overflow: hidden;
}
#zt-container-full #zt-maincontent-inner{
  padding: 0;
}
#zt-container-full #zt-maincontent,
#zt-container-full  #zt-middle,
#zt-container-left #zt-middle {width: 100%;}
#zt-right {
  float: left;
  width: 27%;
  overflow: hidden;
}
#zt-right-inner{padding-left: 15px;}
#zt-left {
  float: left;
  width: 30%;
  overflow: hidden;
}
.modulecontent {
  padding: 10px;
  background: #eef7fa;
  border: 1px solid #fff;
  border-top: none;
}
.modulecontentfull,
#zt-userwrap6 {
  display: block;
  padding: 10px;
  background: #eef7fa;
  border: 1px solid #fff;
}
#zt-userwrap6{margin-bottom: 20px;}
#zt-userwrap6-inner {
  margin: 0 -10px;
}

#zt-userwrap6 .modulecontent,
#zt-userwrap6 .modulecontentfull {
  padding: 0;
  border: none;
  background: none;
}

#zt-userwrap5 .modulecontent,
#zt-userwrap5 .modulecontentfull {
  border: none;
  background: none;
}
#zt-userwrap5 h3.moduletitle {
  background: none;
}

.blog{
  display: block;
  margin-bottom: 1em;
}
h3.title{
  margin: 0;
  line-height: 25px;
  font-size: 125%;
  color: #4f91a1;
}
h3.moduletitle {
  margin: 0;
  font-size: 140%;
  color: #4f91a1;
  text-indent: 15px;
  line-height: 48px;
  text-transform: uppercase;
  background: url(../images/modtitle-1.png) repeat-x 0 bottom;
}
.zt-round h3.moduletitle {
  background: none;
}
.zt-round .modulecontent,
.zt-round .modulecontentfull {
  background: none;
  border: none;
}
div.moduletitle {
  line-height: 30px;
  margin:0;
  color: #0b3a65;
  font-weight: bold;
  font-size: 110%;
}
.blank h3.moduletitle {
  background: none;
}
.blank .modulecontent,
.blank .modulecontentfull {
  padding: 0;
  border: none;
  background: none;
}
#zt-mainbody {
  width: 100%;
  clear: both;
  margin-top: 1em;
}
#zt-userwrap1 .zt-wrapper{width: 965px;}
#zt-mainbody-inner{
  overflow: hidden;
  padding-top: 2em;
  padding-bottom: 1em;
  margin-bottom: 2em;
  background: url(../images/dotted.png) repeat-x left bottom;
}
#zt-component,
#zt-userwrap5-inner {
  width: auto;
  padding: 10px 1em;
  margin-bottom: 20px;
  border: 1px solid #fff;
  overflow: hidden;
  background: url(../images/content-1-bg.png) #e7f1f2 repeat-x 0 0;
}
#page{width: 100%;}

#zt-bottom{
  width: 100%;
  display: inline-block;
}
#zt-footer {
  width: 45%;
  float: right;
}
#zt-footer ul.menu {
  margin: 0;
  overflow: hidden;
}
#zt-footer ul.menu ul{display: none;}
#zt-footer ul.menu li {
  float: right;
  padding: 0 10px;
  height: 14px;
  line-height: 13px;
  background: url(../images/line-bot.png) no-repeat right center;
}
#zt-footer ul.menu li.first{background: none;}
#zt-footer ul.menu li a {color: #333;}
#zt-footer ul.menu li.last {border-right: none;}
#zt-copyright {
  width: 55%;
  float: left;
}
#zt-copyright a {color: #65a8e7;}

/* Style Module
------------------------*/
.hidden {overflow: hidden;}
.alpha {  margin: 0 !important;}
.bold{font-weight: bold;}


/*ZT Left-------------*/
.round .modulecontent {
  border: 1px solid #D2D8E1;
  border-top: none;
}
#zt-mainbody .round h3.moduletitle {
  line-height: 30px;
  margin:0;
  color: #4a4b4b;
  font-weight: bold;
  font-size: 120%!important;
  padding: 0 10px !important;
  border: 1px solid #d2d8e1;
  background: #eeeeee !important ;
}
#zt-left .no-round .modulecontent{
  padding: 0;
  border: none;
}
ul.menu li{
  padding: 2px 15px;
  background: url(../images/arrow1.png) no-repeat 2px 10px;
}

ul.menu li.last{
  border: none;
}
ul.menu li a{
  color: #676767;
  padding: 2px 0;
  display: block;
}

/*ZT Share ----------*/
ul.share{
  margin: 5px 0;
  float: right;
}
ul.share li{
  background: none;
  float: left;
  padding: 0;
  margin-left: 10px;
}

/*ZT Slideshow-----*/
#zt-slideshow {
  background: url(../images/slideshow-bg.png) no-repeat 0 0;
}
#zt-slideshow-inner {
  padding: 29px;
}
#zt-slideshow .modulecontent {
  padding: 5px;
  background: #dde7e8;
}
/*ZT Languages ----------*/
div.zt-language{
    float: right;
}

.zt-box-inside { width: 305px }
.cls { clear: both }


#zt-mainbody.clearfix.index .zt-wrapper { width: 660px; /*margin-top: -100px*/ }
#zt-mainbody.clearfix.index .zt-wrapper .zt-maincontent-index { width: 640px; }
#zt-mainbody .zt-maincontent-index { width: 640px; }



я так понимаю, это должно быть в это кусочке?

Код


/* Clearfix */
.clearfix {
  clear: both;
}
#zt-wrapper {
  padding: 0;
  width: 100%;
  background: url(../images/mainmenu-_bg.png) no-repeat center 99px;
}
.zt-wrapper {
  width: 960px;
  margin: 0 auto;
}
#zt-userwrap1,
#zt-userwrap2,
#zt-userwrap3,
#zt-userwrap4,
#zt-userwrap5,
#zt-userwrap7 {
  width: 100%;
  float: left;
}
#zt-userwrap1-inner,
#zt-userwrap2-inner,
#zt-userwrap3-inner,
#zt-userwrap4-inner,
#zt-userwrap5-inner,
#zt-userwrap6-inner,
#zt-bottom-inner,
#zt-top-inner ,
#zt-footer-inner,
#zt-copyright-inner{
  overflow: hidden;
  clear: both;
}
#zt-userwrap2 {
  margin-top: -20px;
}
#zt-userwrap2-inner,
#zt-userwrap3-inner,
#zt-userwrap4-inner{
  margin: 0 -10px;
}
#zt-bottom-inner{
  padding: 10px;
  margin-bottom: 2em;
  border : 1px solid #fff;
  background: url(../images/bottom-bg.jpg) #e7f1f2 repeat-x;
}
#zt-userwrap1-inner{
  padding-top: 1em;
}
#zt-copyright-inner{
  padding: 10px 0;
}
div.moduletable,
div.moduletable_menu,
div.moduletable_blank,
div.moduletable_text,
div.module,
div.module_menu,
div.module_text {
  clear: both;
  margin: 0 0 20px 0;
  position: relative;
  clear: both;
  overflow: hidden;
}


извините, что туплю)
*

sharp

  • Завсегдатай
  • 1173
  • 97 / 2
Re: размер позиции
« Ответ #5 : 25.11.2011, 10:35:14 »
вот  в первом коде.
попробуй заменить .zt-box-inside { width: 305px } на .zt-box-inside { width: 330px }
Хочешь знать правду!? читай таблицу умножения.
Поисковое продвижение или раскрутка сайта!
*

Никколай

  • Новичок
  • 5
  • 0 / 0
Re: размер позиции
« Ответ #6 : 25.11.2011, 10:42:53 »
увы, ничего не меняется.
ни на главной странице, ни на других.
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
*

Taatshi

  • Гуру
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
Re: размер позиции
« Ответ #8 : 25.11.2011, 15:01:01 »
.zt-box-inside {
    width: auto;
}
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

Никколай

  • Новичок
  • 5
  • 0 / 0
Re: размер позиции
« Ответ #9 : 25.11.2011, 17:32:13 »
спасибо, последний совет помог!   ^-^
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Добавление позиции модуля

Автор 13RUS

Ответов: 1
Просмотров: 1881
Последний ответ 16.12.2016, 12:38:15
от darkghost
Выравнивание модулей внутри позиции.

Автор user

Ответов: 8
Просмотров: 12264
Последний ответ 28.04.2016, 10:26:01
от ambrazura
mодуль в позиции search_box появляется только в том случае, если в позиции search имеется опубликова

Автор nrjkolyan

Ответов: 0
Просмотров: 1309
Последний ответ 04.03.2016, 21:44:27
от nrjkolyan
Размер sidebar-a на главной в шаблоне Yootheme

Автор BoBCP

Ответов: 8
Просмотров: 3770
Последний ответ 20.02.2016, 11:41:11
от AlekVolsk
[Решено] Вывод модулей с позиции left в шаблоне vt_farm

Автор TV_Master

Ответов: 7
Просмотров: 2709
Последний ответ 06.02.2016, 19:39:40
от Омск