Новости 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 Ответов
  • 2175 Просмотров
*

ljosha

  • Захожу иногда
  • 122
  • 0 / 0
Коллеги, подскажите пожалуйста, какая часть кода поможет мне отредактировать положение даты по отношению к материалу в шаблоне списка категории. Сейчас когда я в админке выставляю показать дату, она у меня уезжает вправо. А нужно чтобы она стояла после материала!
Need help
*

ljosha

  • Захожу иногда
  • 122
  • 0 / 0
Re: Дата в шаблоне списка категории
« Ответ #1 : 23.10.2011, 23:53:42 »
нет соображений?
*

Dorfman

  • Завсегдатай
  • 1202
  • 78 / 4
  • Почти влез...
Re: Дата в шаблоне списка категории
« Ответ #2 : 24.10.2011, 00:18:49 »
Какая версия Жумлы?
Firebug+Firefox пробовали?
И код в студию!

components\com_content\views\category\tmpl\blog_item.php - в этом файле за вывод даты отвечает код со строки №95 (это для J1.5.23):
Код
<?php if ($this->item->params->get('show_create_date')) : ?>
<tr>
<td valign="top" colspan="2" class="createdate">
<?php echo JHTML::_('date', $this->item->created, JText::_('DATE_FORMAT_LC2')); ?>
</td>
</tr>
<?php endif; ?>

Соответственно, этот кусок кода нужно вырезать и вставить в конец таблицы, напр., со строки 143 - дата будет после "Подробнее".
*

ljosha

  • Захожу иногда
  • 122
  • 0 / 0
Re: Дата в шаблоне списка категории
« Ответ #3 : 24.10.2011, 00:25:19 »

Joomla 1.5, вот адрес страницы, я слабоват в пхп:
http://n.eurocollege.ru/%D0%B0nonsi

вот код:
Код
<?php // no direct access
defined('_JEXEC') or die('Restricted access'); ?>
<?php $canEdit   = ($this->user->authorize('com_content', 'edit', 'content', 'all') || $this->user->authorize('com_content', 'edit', 'content', 'own')); ?>
<?php if ($this->item->state == 0) : ?>
<div class="system-unpublished">
<?php endif; ?>

<?php if ($this->item->params->get('show_title') || $this->item->params->get('show_pdf_icon') || $this->item->params->get('show_print_icon') || $this->item->params->get('show_email_icon') || $canEdit) : ?>
<table class="contentpaneopen<?php echo $this->escape($this->item->params->get( 'pageclass_sfx' )); ?>">
<tr>
<?php if ($this->item->params->get('show_title')) : ?>
<td class="contentheading<?php echo $this->escape($this->item->params->get( 'pageclass_sfx' )); ?>" width="100%">
<?php if ($this->item->params->get('link_titles') && $this->item->readmore_link != '') : ?>
<a href="<?php echo $this->item->readmore_link; ?>" class="contentpagetitle<?php echo $this->escape($this->item->params->get( 'pageclass_sfx' )); ?>">
<?php echo $this->escape($this->item->title); ?></a>
<?php else : ?>
<?php echo $this->escape($this->item->title); ?>
<?php endif; ?>
</td>
<?php endif; ?>

<?php if ($this->item->params->get('show_pdf_icon')) : ?>
<td align="right" width="100%" class="buttonheading">
<?php echo JHTML::_('icon.pdf', $this->item, $this->item->params, $this->access); ?>
</td>
<?php endif; ?>

<?php if ( $this->item->params->get( 'show_print_icon' )) : ?>
<td align="right" width="100%" class="buttonheading">
<?php echo JHTML::_('icon.print_popup', $this->item, $this->item->params, $this->access); ?>
</td>
<?php endif; ?>

<?php if ($this->item->params->get('show_email_icon')) : ?>
<td align="right" width="100%" class="buttonheading">
<?php echo JHTML::_('icon.email', $this->item, $this->item->params, $this->access); ?>
</td>
<?php endif; ?>
  <?php if ($canEdit) : ?>
  <td align="right" width="100%" class="buttonheading">
  <?php echo JHTML::_('icon.edit', $this->item, $this->item->params, $this->access); ?>
  </td>
   <?php endif; ?>
</tr>
</table>
<?php endif; ?>
<?php  if (!$this->item->params->get('show_intro')) :
echo $this->item->event->afterDisplayTitle;
endif; ?>
<?php echo $this->item->event->beforeDisplayContent; ?>
<table class="contentpaneopen<?php echo $this->escape($this->item->params->get( 'pageclass_sfx' )); ?>">
<?php if (($this->item->params->get('show_section') && $this->item->sectionid) || ($this->item->params->get('show_category') && $this->item->catid)) : ?>
<tr>
<td>
<?php if ($this->item->params->get('show_section') && $this->item->sectionid && isset($this->item->section)) : ?>
<span>
<?php if ($this->item->params->get('link_section')) : ?>
<?php echo '<a href="'.JRoute::_(ContentHelperRoute::getSectionRoute($this->item->sectionid)).'">'; ?>
<?php endif; ?>
<?php echo $this->escape($this->item->section); ?>
<?php if ($this->item->params->get('link_section')) : ?>
<?php echo '</a>'; ?>
<?php endif; ?>
<?php if ($this->item->params->get('show_category')) : ?>
<?php echo ' - '; ?>
<?php endif; ?>
</span>
<?php endif; ?>
<?php if ($this->item->params->get('show_category') && $this->item->catid) : ?>
<span>
<?php if ($this->item->params->get('link_category')) : ?>
<?php echo '<a href="'.JRoute::_(ContentHelperRoute::getCategoryRoute($this->item->catslug, $this->item->sectionid)).'">'; ?>
<?php endif; ?>
<?php echo $this->escape($this->item->category); ?>
<?php if ($this->item->params->get('link_category')) : ?>
<?php echo '</a>'; ?>
<?php endif; ?>
</span>
<?php endif; ?>
</td>
</tr>
<?php endif; ?>

<?php if (($this->item->params->get('show_author')) && ($this->item->author != "")) : ?>
<tr>
<td width="70%"  valign="top" colspan="2">
<span class="small">
<?php JText::printf( 'Written by', ($this->escape($this->item->created_by_alias)? $this->escape($this->item->created_by_alias) : $this->escape($this->item->author)) ); ?>
</span>
&nbsp;&nbsp;
</td>
</tr>
<?php endif; ?>

<?php if ($this->item->params->get('show_create_date')) : ?>
<tr>
<td valign="top" colspan="2" class="createdate">
<?php echo JHTML::_('date', $this->item->created, JText::_('DATE_FORMAT_LC2')); ?>
</td>
</tr>
<?php endif; ?>

<?php if ($this->item->params->get('show_url') && $this->item->urls) : ?>
<tr>
<td valign="top" colspan="2">
<a href="http://<?php echo $this->escape($this->item->urls) ; ?>" target="_blank">
<?php echo $this->escape($this->item->urls); ?></a>
</td>
</tr>
<?php endif; ?>

<tr>
<td valign="top" colspan="2">
<?php if (isset ($this->item->toc)) : ?>
<?php echo $this->item->toc; ?>
<?php endif; ?>
<?php echo $this->item->text; ?>
</td>
</tr>

<?php if ( intval($this->item->modified)!= 0 && $this->item->params->get('show_modify_date')) : ?>
<tr>
<td colspan="2"  class="modifydate">
<?php echo JText::sprintf('LAST_UPDATED2', JHTML::_('date', $this->item->modified, JText::_('DATE_FORMAT_LC2'))); ?>
</td>
</tr>
<?php endif; ?>

<?php if ($this->item->params->get('show_readmore') && $this->item->readmore) : ?>
<tr>
<td  colspan="2">
<a href="<?php echo $this->item->readmore_link; ?>" class="readon<?php echo $this->escape($this->item->params->get('pageclass_sfx')); ?>">
<?php if ($this->item->readmore_register) :
echo JText::_('Register to read more...');
elseif ($readmore = $this->item->params->get('readmore')) :
echo $readmore;
else :
echo JText::sprintf('Read more...');
endif; ?></a>
</td>
</tr>
<?php endif; ?>

</table>
<?php if ($this->item->state == 0) : ?>
</div>
<?php endif; ?>
<span class="article_separator">&nbsp;</span>
<?php echo $this->item->event->afterDisplayContent; ?>

*

Dorfman

  • Завсегдатай
  • 1202
  • 78 / 4
  • Почти влез...
Re: Дата в шаблоне списка категории
« Ответ #4 : 24.10.2011, 00:36:57 »
Ну, дык я тебе и дал кусок кода, он в твоём файле есть. Вот он и отвечает за вывод. Тут уже не Пых, тут html+css. В файл стиля своего шаблона пропиши в строчку createdate нужные тебе свойства. Например, float:left - дата выровняется по левому краю. А чтобы его ниже перенести - вырежи его о вставь почти в самый низ перед строчкой </table> (7-я снизу строка вроде)
*

ljosha

  • Захожу иногда
  • 122
  • 0 / 0
Re: Дата в шаблоне списка категории
« Ответ #5 : 24.10.2011, 00:45:15 »
Ну, дык я тебе и дал кусок кода, он в твоём файле есть. Вот он и отвечает за вывод. Тут уже не Пых, тут html+css. В файл стиля своего шаблона пропиши в строчку createdate нужные тебе свойства. Например, float:left - дата выровняется по левому краю. А чтобы его ниже перенести - вырежи его о вставь почти в самый низ перед строчкой </table> (7-я снизу строка вроде)
в моем template.css есть такая строчка:
Код
.createdate {font-size:11px; color:#666}
делаю из нее .createdate {float:left; font-size:11px; color:#666}
Ничего не меняется, где был неправ?
*

Dorfman

  • Завсегдатай
  • 1202
  • 78 / 4
  • Почти влез...
Re: Дата в шаблоне списка категории
« Ответ #6 : 24.10.2011, 10:18:13 »
Во-первых, в конце ; не поставил:
.createdate {font-size:11px; color:#666;}
Во-вторых попробуй ещё поставь padding:0; margin:0;
Код
.createdate {float:left; font-size:11px; color:#666; padding:0; margin:0;}
*

ljosha

  • Захожу иногда
  • 122
  • 0 / 0
Re: Дата в шаблоне списка категории
« Ответ #7 : 24.10.2011, 14:58:12 »
Во-первых, в конце ; не поставил:
.createdate {font-size:11px; color:#666;}
Во-вторых попробуй ещё поставь padding:0; margin:0;
Код
.createdate {float:left; font-size:11px; color:#666; padding:0; margin:0;}

не, в этом случае есть смещение даты на главной странице, там все по старому.
Может дело в том, что это какая-то таблицы и колонка даты уезжает есть смотреть код даты то она находится между тегами td
*

Dorfman

  • Завсегдатай
  • 1202
  • 78 / 4
  • Почти влез...
Re: Дата в шаблоне списка категории
« Ответ #8 : 24.10.2011, 16:01:29 »
блин... Понятно. За вывод главной страницы отвечает один файл, за вывод материалов в блоге - другой, в разделах - третий. Почитай вот это - тут профи разжевал тебе всё по твоему вопросу.
*

ljosha

  • Захожу иногда
  • 122
  • 0 / 0
Re: Дата в шаблоне списка категории
« Ответ #9 : 24.10.2011, 20:46:20 »
блин... Понятно. За вывод главной страницы отвечает один файл, за вывод материалов в блоге - другой, в разделах - третий. Почитай вот это - тут профи разжевал тебе всё по твоему вопросу.

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

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

Автор moov

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

Автор nagav

Ответов: 8
Просмотров: 7768
Последний ответ 24.10.2016, 22:09:01
от nagav
Поменять цвет блоков в шаблоне

Автор nuon

Ответов: 7
Просмотров: 5697
Последний ответ 10.01.2016, 23:11:34
от nuon
Ребят - В шаблоне Default

Автор Djaga

Ответов: 4
Просмотров: 2950
Последний ответ 10.12.2015, 08:01:47
от Djaga
Замена фона в шаблоне Joomla

Автор Jons$

Ответов: 7
Просмотров: 12736
Последний ответ 12.10.2015, 15:49:09
от darkghost