Новости Joomla

👩‍💻 Вместе мы развиваем Joomla: станьте Joomfluencer!

👩‍💻 Вместе мы развиваем Joomla: станьте Joomfluencer!

Вы уверенно чувствуете себя перед камерой, динамичны, обаятельны и всегда улыбаетесь? Чувствуете себя искателем приключений, готовым поделиться своими исследованиями CMS Joomla!, взять интервью у видных деятелей сообщества, пообщаться лично или по видеосвязи с волонтерами Joomla или отправиться на поиски новых идей?

Joomla ищет одного или нескольких волонтеров, готовых вдохнуть новую жизнь в обсуждение Joomla, ее CMS, пользователей, сообщества и многого другого.

Возможны самые разные форматы и темы: шортсы, интервью, аналитика и разборы в режиме реального времени, быстрые советы и рекомендации, знакомство с миром Joomla, изучение открытого исходного кода... Нет никаких ограничений!

Joomla! уже активно представлена ​​во многих социальных сетях:
- 155K подписчиков на Facebook,
- 55K подписчиков на X (ранее Twitter),
- 16K подписчиков на YouTube,
- 14K подписчиков на LinkedIn,
- 5,7K подписчиков в Instagram
а так же другие площадки ждут вас. Аккаунты Threads и Bluesky относительно новые, но их популярность только растёт!

А если хватит энергии, можно рассмотреть и TikTok!

❓ Итак, вы готовы?
👉 Свяжитесь с отделом маркетинга по адресу: marketing@community.joomla.org

Подробности в статье в Joomla Community Magazine.

@joomlafeed

SW JProjects v.2.6.1 - компонент каталога расширений для веб-приложений

👩‍💻 SW JProjects v.2.6.1 - компонент каталога расширений для веб-приложений.

Компонент позволяет сделать свой мини-Joomla Extensions Directory - каталог расширений для CMS (не только для Joomla) или файлов. Есть возможность скачивания по лицензионным ключам создания кастомных схем данных для сервера обновлений.

v.2.6.1. Что нового?

  • Правки наследования схем серверов обновлений. Улучшена логика наследования схем серверов обновлений для проектов компонент - категория - проект.
  • Не стабильные релизы в сервере обновлений. Теперь в данные сервера обновлений попадают все версии (alpha, beta и т.д.), а не только stable.
  • Косметические изменения. В шаблоне по умолчанию сделаны замены некоторых CSS-классов, уточнено присвоение атрибутов loading=lazy и fetchpriority.
  • Рефакторинг и правки кода. Текущее обновление кодовой базы.
  • Исправление ошибок.

Больше спасибо за помощь в тестировании участникам нашего сообщества Александру Новикову (@pro_portal) и Александру Судьбинову (@alexrevo).

0 Пользователей и 1 Гость просматривают эту тему.
  • 1 Ответов
  • 734 Просмотров
*

moonaway

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
Всем привет!
Верстаю модуль вывода данных по тегам на основе оригинального запроса Joomla (libraries\src\Helper\TagsHelper.php) - getTagItemsQuery(), нужно переписать запрос с дополнительными параметрами.

Что надо?

ЛИМИТЫ И СОРТИРОВКА
Внедрить лимит на вывод каждого типа контента.
Лимит должен быть не общий на весь массив данных, как например, на вывод массива из 5 значений. А лимит должен быть на каждый тип контента (com_content.article, com_contact.contact, com_content.category, com_contact.category, com_banners.banner, com_banners.category), где мы ограничиваем, например, до 5 значений КАЖДОГО типа.
+ Переделываем сортировку, чтобы она работала ВНУТРИ вывода КАЖДОГО типа контента.

УТОЧНЕНИЕ КАТЕГОРИЙ
Для типов контента com_content.article, om_contact.contact, com_banners.banner сделать уточнение из каких ID категорий внутри брать данные

СТРУКТУРА МАССИВА
В итоге мы должны получать двумерный массив данных, внутри которого были бы массивы для каждого типа контента с сортировкой и ограничением количества выводимых значений.

stdClass Object (
    [com_contact.contact] => Array (
      [О] => stdClass Object (
         [type_alias] => com_contact.contact
         [content_item_id] => 6
         [core_content_id] => 66
         [match_count] => 1
         [tag_date] => 2021-03-17 15:57:25
         [core_title] => sample title
         [core_params] => {..........}
         [core_alias] => sample-alias
         [core_state] => 1
         [core_access] => 1
         [core_metadata] => {"robots":"","rights":""}
         [core_created_user_id] => 42
         [core_created_by_alias] =>
         [core_created_time] => 2020-09-14 07:54:33
         [core_images] =>
         [core_modified_time] => 2021-03-17 12:57:25
         [core_language] => *
         [core_catid] => 4
         [core_publish_up] => 0000-00-00 00:00:00
         [core_publish_down] => 0000-00-00 00:00:00
         [content_type_title] => Contact
         [router] => ContactHelperRoute::getContactRoute
         [author] => Super User
      )
      [1] => stdClass Object (
         [key] => value
         ...
      )
      [2] => stdClass Object (
         [key] => value
         ...
      )
      [3] => stdClass Object (
         [key] => value
         ...
      )
   )
   [com_content.article] => Array (
   ...
   )
   [com_banners.banner] => Array (
   ...
   )
   [com_contact.category] => Array (
   ...
   )
   [com_content.category] => Array (
   ...
   )
   [com_banners.category] => Array (
   ...
   )
)


Сейчас запрос к БД формируется так, что в результате даёт просто общую простыню всех материалов....

Код
SELECT
m.type_alias,
m.content_item_id,
m.core_content_id,
count(m.tag_id) AS match_count,
MAX(m.tag_date) as tag_date,
MAX(c.core_title) AS core_title,
MAX(c.core_params) AS core_params,
MAX(c.core_alias) AS core_alias,
MAX(c.core_state) AS core_state,
MAX(c.core_access) AS core_access,
MAX(c.core_metadata) AS core_metadata,
MAX(c.core_created_user_id) AS core_created_user_id,
MAX(c.core_created_by_alias) AS core_created_by_alias,
MAX(c.core_created_time) as core_created_time,
MAX(c.core_images) as core_images,
CASE WHEN c.core_modified_time = '0000-00-00 00:00:00' THEN c.core_created_time ELSE c.core_modified_time END as core_modified_time,
MAX(c.core_language) AS core_language,
MAX(c.core_catid) AS core_catid,
MAX(c.core_publish_up) AS core_publish_up,
MAX(c.core_publish_down) as core_publish_down,
MAX(ct.type_title) AS content_type_title,
MAX(ct.router) AS router,
CASE WHEN c.core_created_by_alias > ' ' THEN c.core_created_by_alias ELSE ua.name END AS author
FROM #__contentitem_tag_map AS m
INNER JOIN
#__ucm_content AS c
ON m.type_alias = c.core_type_alias
AND m.core_content_id = c.core_content_id
AND c.core_state IN (1)
AND (c.core_publish_up = '0000-00-00 00:00:00' OR c.core_publish_up <= '2021-07-05 17:13:33')
AND (c.core_publish_down = '0000-00-00 00:00:00' OR c.core_publish_down >= '2021-07-05 17:13:33')
INNER JOIN #__content_types AS ct ON ct.type_alias = m.type_alias
LEFT JOIN #__categories AS tc ON tc.id = c.core_catid
LEFT JOIN #__users AS ua ON ua.id = c.core_created_user_id
WHERE
m.tag_id IN (10,11)
AND (c.core_catid = 0 OR tc.published = 1)
AND `c`.`core_language` IN ('en-GB', '*')
AND m.type_alias IN ('com_content.article','com_contact.contact','com_content.category','com_contact.category','com_banners.banner','com_banners.category')
AND c.core_access IN (0,1,2,3,6)
GROUP BY m.type_alias, m.content_item_id, m.core_content_id, core_modified_time, core_created_time, core_created_by_alias, author
ORDER BY MAX(`c`.`core_title`) ASC
« Последнее редактирование: 06.07.2021, 17:04:01 от moonaway »
*

moonaway

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться