Новости Joomla

Вышли релизы безопасности Joomla 6.1.4 и Joomla 5.4.9

Релиз безопасности Joomla 6.1.4 и Joomla 5.4.9

Проект Joomla! рад сообщить о выходе Joomla 6.1.4 и Joomla 5.4.9. Это релизы безопасности и исправления ошибок для серий 5.x и 6.x.

JoomShift - компонент переноса контента между Joomla сайтами.

‍ JoomShift - компонент переноса контента между Joomla сайтами.

JoomShift - компонент переноса контента между Joomla сайтами.Он позволяет экспортировать модули, меню, материалы, категории, пользовательские поля и пользователей в виде переносимых JSON/ZIP-файлов, а затем импортировать их в любую другую установку Joomla.

Возможности компонента:- Модули — полная настройка, назначение пунктов меню, позиционирование и содержимое SP Page Builder.
-Меню — иерархия родительских/дочерних элементов, типы элементов, ссылки, уровни доступа и параметры. Отсутствующие типы меню создаются автоматически, а элементы, указывающие на неустановленные компоненты, пропускаются с предупреждением.
-Статьи и категории — контент, метаданные, изображения и иерархия категорий.
-Пользовательские поля — группы полей, определения, ограничения по категориям и значения (включая поля с несколькими значениями) — экспортируются и автоматически создаются заново на целевом сайте.
-Пользователи — данные профиля, назначения групп и хэши паролей, чтобы учетные записи работали сразу после импорта.
-Кросс-версииJoomla - компонент адаптируется к различиям в схеме базы данных между версиями Joomla.
-Создан для крупных сайтов — постраничные списки (20/50/100/250строк) и автоматический пакетный экспорт для сайтов с более чем 500 элементами, поэтому он продолжает работать на обычном хостинге.
-Опция перезаписи — обновляет совпадающие элементы при повторном импорте вместо создания дубликатов.
-Drag-n-drop импорт с подробным отчетом о том, что было импортировано, обновлено или пропущено, и почему.

На момент написания заметки для скачивания необходима регистрация/логин на сайте разработчика.

-Joomla Extensions Directory-Страница расширения#joomla#расширения

Модуль joomLab JS Ajax Cart позволит организовать в Вашем интернет-магазине на компоненте JoomShopping удобную AJAX корзину с возможностью добавлять товары и изменять их количество без перезагрузки страницы.

Модуль joomLab JS Ajax Cart позволит организовать в Вашем интернет-магазине на компоненте JoomShopping удобную AJAX корзину с возможностью добавлять товары и изменять их количество без перезагрузки страницы.

Кроме этого, в состав пакета установки входит плагин, который позволяет выводить атрибуты товара в список всех товаров, менять эти атрибуты и добавлять товар в корзину из списка товаров. Если атрибутов много, то их можно выводить в всплывающем (модальном окне).

В модуле предусмотрено 2 макета дизайна для Bootstrap и UIkit и максимальная кастомизация для переопределения макетов в шаблон.Демо расширенияСтраница расширения

Видео в Telegram

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

tora312

  • Захожу иногда
  • 110
  • 2 / 2
Добрый день. Прошу помощи, тапки прошу не кидать, вопрос наверняка простой, я туповат, знаю. Просто помогите, коли можете.))) Спасиб.

Задача: сделать вывод новостей из заданных в админке категорий, сортировка от самых ранних к более поздним по умолчанию.

PHP

Код
// Принимаем переменные из админки - тут в массиве категории
$categs = $params->get('parent', array());
// Чистим ответ от скрипта
$id_parent = preg_replace('/[^0-9]/','', $_GET['id_parent']);

foreach ($categs as $categ)
{
// тут тупплю совсем, берёт последнюю выбранную категорию из массива
}

$db =& JFactory::getDbo();

// url к категории
$db->setQuery('SELECT path FROM #__categories WHERE id=\''.$categ.'\'');
$list = $db->loadObjectList();

foreach($list as $comp)
{
$path = $comp->path;
}

function expl_date ($date)
{
$date = explode(' ', $date); // В БД дата представлена в корявом виде. Сначала делим через пробел
$date = explode('-', $date[0]); // Потом делим через -
return $date = $date[2].'.'.$date[1].'.'.$date[0]; // Выставляем в привычном нам формате
}

function intro_text ($text)
{
// Уберём теги и оставим не более 175 символов
$text = strip_tags($text);
$text = trim ($text); // Удаляет из начала и конца оставшийся мусор
$text = mb_substr($text, 0, 175).'...';
return $text;
}

$query = 'SELECT id, title, alias, introtext, created FROM #__content WHERE catid=\''.$categ.'\' AND state=\'1\'';

// Рабочая часть

if($_GET['ajax'] == 'right') // Если придёт сообщение от js, что пользователь нажал вправо
{
$db->setQuery($query.'AND id<\''.$id_parent.'\' ORDER BY id DESC LIMIT 1');
$list = $db->loadObjectList();
foreach($list as $comp)
{
$id = $comp->id;
$date_aj = expl_date ($comp->created);
$title = $comp->title;
$alias = $comp->alias;
$introtext = intro_text ($comp->introtext);
preg_match_all('/<img[^>]*?src=\"(.*)\"/iU', $comp->introtext, $images); // Картинка
$trigger = 'da'; // Этот триггер нужен, чтобы когда дойдём до конца статей, начали сначала. Короче, всё по кругу.
}
if($trigger != 'da')
{
$db->setQuery($query.'ORDER BY id DESC LIMIT 1');
$list = $db->loadObjectList();
foreach($list as $comp)
{
$id = $comp->id;
$date_aj = expl_date ($comp->created);
$title = $comp->title;
$alias = $comp->alias;
$introtext = intro_text ($comp->introtext);
preg_match_all('/<img[^>]*?src=\"(.*)\"/iU', $comp->introtext, $images);
}
}
}
elseif($_GET['ajax'] == 'left') // Если придёт сообщение от js, что пользователь нажал влево
{
$db->setQuery($query.' AND id>\''.$id_parent.'\'ORDER BY id LIMIT 1');
$list = $db->loadObjectList();
foreach($list as $comp)
{
$id = $comp->id;
$date_aj = expl_date ($comp->created);
$title = $comp->title;
$alias = $comp->alias;
$introtext = intro_text ($comp->introtext);
preg_match_all('/<img[^>]*?src=\"(.*)\"/iU', $comp->introtext, $images); // Картинка
$trigger = 'da'; // Этот триггер нужен, чтобы когда дойдём до конца статей, начали сначала. Короче, всё по кругу.
}
if($trigger != 'da')
{
$db->setQuery($query.'ORDER BY id LIMIT 1'); // Открываем первый по списку материал
$list = $db->loadObjectList();
foreach($list as $comp)
{
$id = $comp->id;
$date_aj = expl_date ($comp->created);
$title = $comp->title;
$alias = $comp->alias;
$introtext = intro_text ($comp->introtext);
preg_match_all('/<img[^>]*?src=\"(.*)\"/iU', $comp->introtext, $images);
}
}
}
else // Если страница просто загружается впервые
{
$db->setQuery($query.'ORDER BY id LIMIT 1'); // Открываем первый по списку материал
$list = $db->loadObjectList();
foreach($list as $comp)
{
$id = $comp->id;
$date_aj = expl_date ($comp->created);
$title = $comp->title;
$alias = $comp->alias;
$introtext = intro_text ($comp->introtext);
preg_match_all('/<img[^>]*?src=\"(.*)\"/iU', $comp->introtext, $images); // Картинка
}
}

Нормально работает, НО на одну категорию. Помогите... если сможете, как сделать, чтобы работало на любое количество ЗАДАННЫХ ПОЛЬЗОВАТЕЛЕМ В parent категорий. Устал, моск ничё не видит уже. Может вообще всё коряво.((( Может проще можно.(((
« Последнее редактирование: 04.11.2015, 12:05:58 от tora312 »
*

tora312

  • Захожу иногда
  • 110
  • 2 / 2
Код
$query = 'SELECT id, title, alias, introtext, created FROM #__content WHERE catid=\''.$categ.'\' AND state=\'1\'';
- вот тут выборка по категории $categ - а нужно, чтобы не одна категория была, а несколько. Не идёт чёт.
*

tora312

  • Захожу иногда
  • 110
  • 2 / 2
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
WHERE catid IN (10, 12, 13)
*

tora312

  • Захожу иногда
  • 110
  • 2 / 2
$categs = $params->get('parent', array()); - берём из админки Joomla перечень категорий, которые использовать для вывода. Тут пользователь задает желаемый диапазон.

из этой таблицы __content нужно взять информацию по нескольким строкам сразу, данные из столбцов `id`, `title`, `alias`, `introtext`, `created`, `catid`, `ordering` одним запросом.) но не переменные - а получить массивы... или как это сделать я не пойму, чтобы потом при формировании страницы вывести на странице запрошенную информацию, которая вот задаётся пользователем в $categs.

Например... отсортируем по id для $categs = [12, 2]
Потом надо взять первые например 4 статьи (строки) и получить из них данные

`id`! `title`! `alias`! `introtext`! `created`1 `catid`    !    `ordering`
1 !      имя1 ! алиас1 ! текст1 !        дата 1 ! категория 12   ! порядок 2
2 !      имя2 ! алиас2 ! текст2 !        дата 2 ! категория 2     ! порядок 3
3 !      имя3 ! алиас3 ! текст3 !        дата 3 ! категория 2     ! порядок 1
4 !      имя4 ! алиас4 ! текст4 !        дата 4 ! категория 12   ! порядок 4

Чтобы потом можно вывести например echo $title[1]; echo $catid[4];

Выведется имя2 категория 12

Дико туплю всегда в php и запросы в БД
« Последнее редактирование: 06.11.2015, 17:11:35 от tora312 »
*

fbr

  • Завсегдатай
  • 1694
  • 211 / 7
Не увидел разницы с функционалом стандартного модуля Материалы-новости ...

В любом случае, посмотрите как там сделано :
modules/mod_articles_news/helper.php
modules/mod_articles_news/mod_articles_news.xml
*

tora312

  • Захожу иногда
  • 110
  • 2 / 2
Разница - в дальнейшей обработке. Я Хорошо знаю СSS, но плохо php. оч плохо. потому хочу получить данные, чтобы потом самой обработать.
*

fbr

  • Завсегдатай
  • 1694
  • 211 / 7
Не понял логики.

Ставите стандартный модуль и обрабатываете его стилями как хотите!
Он выводит все указанные вами данные, и не нужно их добывать, тем более что php не очень

Или я что-то упустил?
*

tora312

  • Захожу иногда
  • 110
  • 2 / 2
Не всё так просто.) Мне не нравится его функционал. Я хочу сама поставить нужный отбор и обработку... чтобы, например, при порядке -1 была ссылка не на материал, а на категорию, где материал всегда будет вверху. Потом картинки... дело не только в стилях.))) Много там.))) Например, привязать Jquery, и сделать анимацию со сменяемыми блоками запросом гет - $_GET['ajax'] == 'left'.))) Я это умею, не умею сделать запрос к БД, чтобы получить данные, причём запрос с наименьшей нагрузкой на хост. Как-то так.) Не знаю как наиболее оптимально получить данные: `id`, `title`, `alias`, `introtext`, `created`, `catid`, `ordering для заданного диапазона категорий в порядке убывания или возрастания даты или id, скажем первые 5 или 10 статей (количество задаётся из админки). Мне для полного счастья вот этой малости не хватает.))) Ну... ещё кое-где вообще рандомную выборку сделать... это тож не знаю. Наверное, много хочу, да?))) Вот как сделать рандомную выборку? Наверняка, это оч. просто делается, печёнкой чую.))) Блина... проще слайдер на кверти сделать мне.))) Только с готовыми картинками, из БД я их тож не умею скопом получать.(((

Можно было б взять стандартный и перекроить... но мне моска не хватит.(((
*

fbr

  • Завсегдатай
  • 1694
  • 211 / 7

Можно было б взять стандартный и перекроить... но мне моска не хватит.(((
:)
Берете стандартный модуль,
открываете файл mod_articles_news.xml
переименовываете все mod_articles_news -> mod_mymodule
соответственно переименовываете файлы
mod_articles_news.php -> mod_mymodule.php
mod_articles_news.xml -> mod_mymodule.xml

и стандартно через менеджер расширений устанавливаете!

Все. Делайте с ним что хотите!
- добавляйте поля
- подключайте скрипты
- выводите картинки (на форуме обсуждалось)
....

Почти все данные которые вам нужны - уже есть)
*

tora312

  • Захожу иногда
  • 110
  • 2 / 2
Крайний вопрос... если есть... есть где описание... или разбор mod_articles_news.php и helper.php

понимаю, глуп вопрос, а вдруг? это намного мне всё облегчит.)))
*

fbr

  • Завсегдатай
  • 1694
  • 211 / 7
Почитайте здесь
и посмотрите остальные модули, они тоже на базе стандартного сделаны
Можно даже скачать и посмотреть как устроено
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Отправка файлов через ajax в модуль Joomla

Автор hemicide

Ответов: 19
Просмотров: 3662
Последний ответ 11.04.2022, 08:44:33
от sivers
Избранное для меню и/или категорий

Автор platonische

Ответов: 3
Просмотров: 1003
Последний ответ 19.10.2020, 12:34:12
от platonische
Переменная для вывода ссылки

Автор rubinded

Ответов: 3
Просмотров: 951
Последний ответ 03.03.2020, 08:28:13
от sivers
Модуль обратной связи. Как использовать свойство context в ajax запросе

Автор ushangi

Ответов: 0
Просмотров: 987
Последний ответ 15.02.2020, 22:08:12
от ushangi
Связать две таблицы с БД для дальнейшего вывода данных с них

Автор golinejj

Ответов: 16
Просмотров: 1669
Последний ответ 06.02.2020, 15:40:58
от golinejj