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

akhalex38

  • Захожу иногда
  • 171
  • 1 / 0
Всем привет:)

В общем, друзья, проблема такая:

Установил на денвер Joomla 1.7 и решил установить шаблон для начала (мне его потом редактировать надо). Все бы хорошо, только вот под шаблоном (точнее под шапкой) надпись

Код
Fatal error: Call to a member function getMessageQueue() on a non-object in Z:\home\test1.ru\www\templates\ol_grosse\functions.php on line 11

Естественно лезу в файл, вот что там есть
Код
<?php
defined('_JEXEC') or die('Restricted access'); // no direct access

if (!defined('_ARTX_FUNCTIONS')) {

define('_ARTX_FUNCTIONS', 1);

function artxHasMessages()
{
global $mainframe;
$messages = $mainframe->getMessageQueue();
if (is_array($messages) && count($messages))
foreach ($messages as $msg)
if (isset($msg['type']) && isset($msg['message']))
return true;
return false;
}

function artxUrlToHref($url)
{
$result = '';
$p = parse_url($url);
if (isset($p['scheme']) && isset($p['host'])) {
$result = $p['scheme'] . '://';
if (isset($p['user'])) {
$result .= $p['user'];
if (isset($p['pass']))
$result .= ':' . $p['pass'];
$result .= '@';
}
$result .= $p['host'];
if (isset($p['port']))
$result .= ':' . $p['port'];
if (!isset($p['path']))
$result .= '/';
}
if (isset($p['path']))
$result .= $p['path'];
if (isset($p['query'])) {
$result .= '?' . str_replace('&', '&amp;', $p['query']);
}
if (isset($p['fragment']))
$result .= '#' . $p['fragment'];
return $result;
}

function artxReplaceButtonsRegex() {
return '' .
'~<input\b[^>]*'
. '(?:'
. '[^>]*\bclass=(?:"(?:[^"]*\s)?button(?:\s[^"]*)?"|\'(?:[^\']*\s)?button(?:\s[^\']*)?\'|button\b)[^>]*'
. '(?:\bvalue=(?:"[^"]*"|\'[^\']*\'|[^>\s]*))'
. '|'
. '(?:\bvalue=(?:"[^"]*"|\'[^\']*\'|[^>\s]*))'
. '[^>]*\bclass=(?:"(?:[^"]*\s)?button(?:\s[^"]*)?"|\'(?:[^\']*\s)?button(?:\s[^\']*)?\'|button\b)[^>]*'
. '|'
. '[^>]*\bclass=(?:"(?:[^"]*\s)?button(?:\s[^"]*)?"|\'(?:[^\']*\s)?button(?:\s[^\']*)?\'|button\b)[^>]*'
. ')'
. '[^>]*/?\s*>~i';
}

function artxReplaceButtons($content)
{
$re = artxReplaceButtonsRegex();
if (!preg_match_all($re, $content, $matches, PREG_OFFSET_CAPTURE))
return $content;

$result = '';
$position = 0;
foreach ($matches[0] as $match) {
$result .= substr($content, $position, $match[1] - $position);
$position = $match[1] + strlen($match[0]);
$result .= '<span class="ju-button-wrapper"><span class="l"> </span><span class="r"> </span>'
. preg_replace('~\bclass=(?:"([^"]*\s)?button(\s[^"]*)?"|\'([^\']*\s)?button(\s[^\']*)?\'|button\b)~i',
'class="\1\3button ju-button\2\4"', $match[0]). '</span>';
}
$result .= substr($content, $position);
return $result;
}

function artxPost($caption, $content)
{
$hasCaption = (null !== $caption && strlen(trim($caption)) > 0);
$hasContent = (null !== $content && strlen(trim($content)) > 0);

if (!$hasCaption && !$hasContent)
return '';

ob_start();
?>
<div class="ju-Post">
<div class="ju-Post-tl"></div><div class="ju-Post-tr"></div><div class="ju-Post-bl"></div>
<div class="ju-Post-br"></div><div class="ju-Post-tc"></div><div class="ju-Post-bc"></div>
<div class="ju-Post-cl"></div><div class="ju-Post-cr"></div><div class="ju-Post-cc"></div>
<div class="ju-Post-body">
<div class="ju-Post-inner">

<?php if ($hasCaption): ?>
<div class="ju-PostMetadataHeader">
<h2 class="ju-PostHeader">
<?php echo $caption; ?>

</h2>

</div>

<?php endif; ?>
<?php if ($hasContent): ?>
<div class="ju-PostContent">

<?php echo artxReplaceButtons($content); ?>

</div>
Дальше я думаю уже не нужно.

Так, Google в помощь: нашел на этом форуме что-то похожее с 1.6, указанные действия не привелик  желаемому, цитирую что предлагают здесь http://joomlaforum.ru/index.php/topic,160787.0.html
Цитировать
Проблема решена
Ищем в файле function.php текст  global $mainframe; $messages = $mainframe->getMessageQueue();

и меняем на $messages = JFactory::getApplication()->getMessageQueue();
Миграция шаблонов siteground 1.5 на 1.6

1.Нужно найти в файлах templates.php и index.php
 текст
 echo $mainframe->getCfg(‘sitename’) ;

зменить на
 $app = &JFactory::getApplication();
 echo $app->getCfg(‘sitename’);

Спасибо, надеюсь на помощь
*

SK

  • Живу я здесь
  • 2155
  • 164 / 0
Re: Проблема с установкой шаблона
« Ответ #1 : 18.05.2012, 13:21:58 »
А почему ставите версию 1.7?
Эта промежуточная версия движка.
Ставьте актуальную на сегодня версию 2.5.4 и на ней тренируйтесь!
*

akhalex38

  • Захожу иногда
  • 171
  • 1 / 0
Re: Проблема с установкой шаблона
« Ответ #2 : 18.05.2012, 13:28:28 »
Решил

Цитировать
Замени указанную строку;
$mainframe->getMessageQueue();

на
JFactory::getApplication()->getMessageQueue();

Источник http://www.utgarda.ru/index.php?option=com_kunena&func=view&catid=10&id=100&Itemid=62

Всем спасибо!

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

На локал сервере страницы сайта без шаблона, CSS и картинок

Автор Fati

Ответов: 0
Просмотров: 2338
Последний ответ 15.06.2025, 11:57:45
от Fati
Изменение шаблона Joomla! 2.5.24

Автор SecondPC

Ответов: 0
Просмотров: 5998
Последний ответ 26.03.2021, 18:09:33
от SecondPC
Руководство - создание шаблона для Joomla 2.5

Автор dynamit

Ответов: 6
Просмотров: 32944
Последний ответ 02.02.2020, 22:28:15
от AlinaBut
Проблема с доступом к шаблону сайта

Автор thas

Ответов: 4
Просмотров: 5212
Последний ответ 08.11.2019, 19:55:23
от stendapuss
Ошибка при установке шаблона - Fatal error: Call to a member function setDebug() on a non-object in

Автор Mirotvoretz

Ответов: 33
Просмотров: 70397
Последний ответ 11.11.2018, 13:22:26
от vik38