Новости Joomla

Вышли релизы Joomla 6.0.3 и Joomla 5.4.3

Релиз Joomla 6.0.3 и Joomla 5.4.3

Проект Joomla рад сообщить о выпуске Joomla 6.0.3 и Joomla 5.4.3. Это релиз исправлений ошибок и улучшений для серии Joomla 6.0 и Joomla 5.4.

👩‍💻 События плагинов и порядок их срабатывания при работе с пользовательскими полями Joomla и использовании FieldsHelper.

👩‍💻 События плагинов и порядок их срабатывания при работе с пользовательскими полями Joomla и использовании FieldsHelper.

В процессе работы с Joomla бывает необходимо работать с пользовательским интерфейсом более тонко, чем обычно. Все формы Joomla состоят из стандартных полей, содержанием, стилем отображения, состоянием (включено/выключено, доступно для редактирования или нет и т.д.) можно управлять с помощью плагинов. Да и для нестандартных проектов хорошей практикой является создание одного системного или нескольких плагинов групп "под проект", в которых храниться весь "нестандарт".

В этой статье описаны все триггеры, которые вызываются через Event Dispatcher из administrator/components/com_fields/src/Helper/FieldsHelper.php, с привязкой к жизненному циклу (порядку этапов работы запроса), аргументам, изменяемым данным и дальнейшему распространению по Joomla. Это поможет вам работать с Joomla свободнее и не опасаясь при этом потерять изменения при очередном обновлении движка.

Подходы, описанные в статье, полезны в тех случаях, когда вы работаете с данными в com_fields - механизме создания и редактирования пользовательских полей ядра Joomla и при использовании FieldsHelper. Многие сторонние компоненты не используют эту возможность, поэтому данная статья будет полезна лишь частично.

🏆 Открыто голосование за 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 Ответов
  • 1369 Просмотров
*

tempus

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Применение хака к latestnews
« : 20.12.2010, 02:09:01 »
Доброго времени суток!

Подскажите пожалуйста, как можно познакомить модуль последних новостей с хаком добавления статьи в несколько категорий?
Сам хак описан вот тут -http://joomlaforum.ru/index.php/topic,75137.0.html
Все сделал как надо, установил, а вот как научить работать с этим модуль последних новостей не могу разобраться.
Суть вопроса - какой код нужно вставить в файл helper.php чтобы модуль вибирал статьи не только по одному полю категории, а по трем.
*

tempus

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Re: Применение хака к latestnews
« Ответ #1 : 20.12.2010, 11:59:06 »
Выкладываю нерабочий вариант, по-моему сделал все как надо. Если кто может, проверьте, пожалуйста!


// no direct access
defined('_JEXEC') or die('Restricted access');

require_once (JPATH_SITE.DS.'components'.DS.'com_content'.DS.'helpers'.DS.'route.php');

class modLatestNewsHelper
{
   function getList(&$params)
   {
      global $mainframe;

      $db         =& JFactory::getDBO();
      $user      =& JFactory::getUser();
      $userId      = (int) $user->get('id');

      $count      = (int) $params->get('count', 5);
      $catid      = trim( $params->get('catid') );
      $catid2      = trim( $params->get('catid2') );
      $catid3      = trim( $params->get('catid3') );
      $secid      = trim( $params->get('secid') );
      $show_front   = $params->get('show_front', 1);
      $aid      = $user->get('aid', 0);

      $contentConfig = &JComponentHelper::getParams( 'com_content' );
      $access      = !$contentConfig->get('show_noauth');

      $nullDate   = $db->getNullDate();

      $date =& JFactory::getDate();
      $now = $date->toMySQL();

      $where      = 'a.state = 1'
         . ' AND ( a.publish_up = '.$db->Quote($nullDate).' OR a.publish_up <= '.$db->Quote($now).' )'
         . ' AND ( a.publish_down = '.$db->Quote($nullDate).' OR a.publish_down >= '.$db->Quote($now).' )'
         ;

      // User Filter
      switch ($params->get( 'user_id' ))
      {
         case 'by_me':
            $where .= ' AND (created_by = ' . (int) $userId . ' OR modified_by = ' . (int) $userId . ')';
            break;
         case 'not_me':
            $where .= ' AND (created_by <> ' . (int) $userId . ' AND modified_by <> ' . (int) $userId . ')';
            break;
      }

      // Ordering
      switch ($params->get( 'ordering' ))
      {
         case 'm_dsc':
            $ordering      = 'a.modified DESC, a.created DESC';
            break;
         case 'c_dsc':
         default:
            $ordering      = 'a.created DESC';
            break;
      }

      if ($catid)
      {
         $ids = explode( ',', $catid );
         JArrayHelper::toInteger( $ids );
         $catCondition = ' AND (cc.id=' . implode( ' OR cc.id=', $ids ). ')';
      }
      if ($catid2)
      {
         $ids = explode( ',', $catid2 );
         JArrayHelper::toInteger( $ids );
         $cat2Condition = ' AND (cc.id=' . implode( ' OR cc.id=', $ids ). ')';
      }
      if ($catid3)
      {
         $ids = explode( ',', $catid3 );
         JArrayHelper::toInteger( $ids );
         $cat3Condition = ' AND (cc.id=' . implode( ' OR cc.id=', $ids ). ')';
      }
      if ($secid)
      {
         $ids = explode( ',', $secid );
         JArrayHelper::toInteger( $ids );
         $secCondition = ' AND (s.id=' . implode( ' OR s.id=', $ids ). ')';
      }

      // Content Items only
      $query = 'SELECT a.*, ' .
         ' CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(":", a.id, a.alias) ELSE a.id END as slug,'.
         ' CASE WHEN CHAR_LENGTH(cc.alias) THEN CONCAT_WS(":", cc.id, cc.alias) ELSE cc.id END as catslug'.
         ' FROM #__content AS a' .
         ($show_front == '0' ? ' LEFT JOIN #__content_frontpage AS f ON f.content_id = a.id' : '').
         ' INNER JOIN #__categories AS cc ON cc.id = a.catid' .
         ' INNER JOIN #__categories AS cc ON cc.id = a.catid2' .
         ' INNER JOIN #__categories AS cc ON cc.id = a.catid3' .
         ' INNER JOIN #__sections AS s ON s.id = a.sectionid' .
         ' WHERE '. $where .' AND s.id > 0' .
         ($access ? ' AND a.access <= ' .(int) $aid. ' AND cc.access <= ' .(int) $aid. ' AND s.access <= ' .(int) $aid : '').
         ($catid ? $catCondition : '').
            ($catid2 ? $cat2Condition : '').
            ($catid3 ? $cat3Condition : '').
         ($secid ? $secCondition : '').
         ($show_front == '0' ? ' AND f.content_id IS NULL ' : '').
         ' AND s.published = 1' .
         ' AND cc.published = 1' .
         ' ORDER BY '. $ordering;
      $db->setQuery($query, 0, $count);
      $rows = $db->loadObjectList();

      $i      = 0;
      $lists   = array();
      foreach ( $rows as $row )
      {
         if($row->access <= $aid)
         {
            $lists[$i]->link = JRoute::_(ContentHelperRoute::getArticleRoute($row->slug, $row, $row->sectionid));
         } else {
            $lists[$i]->link = JRoute::_('index.php?option=com_user&view=login');
         }
         $lists[$i]->text = htmlspecialchars( $row->title );
$lists[$i]->created = JHTML::_('date', $row->created, JText::_('DATE_FORMAT_LC2'));         $i++;
      }

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

CSS и latestnews

Автор sasha777

Ответов: 2
Просмотров: 1323
Последний ответ 15.04.2012, 22:52:51
от sasha777