Новости Joomla

Вышел плагин CFI v.2.0.0 - экспорт/импорт материалов Joomla в таблицы.

Вышел плагин CFI v.2.0.0 - экспорт/импорт материалов Joomla в таблицы.

Плагин позволяет делать экспорт материалов Joomla в CSV файл, после чего вы можете отредактировать данные в табличном редакторе (например, Excel или OpenOffice Calc) и затем загрузить файл обратно. В некоторых случаях это удобнее и быстрее.

Плагин позволяет выгружать ID тегов, а также работать с пользовательскими полями материалов Joomla и обычно нередактируемыми свойствами материалов: просмотры, дата изменения и т.д.

Первые версии плагина CFI создал разработчик AlekVolsk для Joomline. Он разработал версии 1.0.0–1.0.16 для Joomla 3. Затем, в 2026 году, плагин был передан компании WebTolk для дальнейшего развития.

CFI v.2.0.0 — Что нового?

  1. Рефакторинг. Плагин полностью переписан заново.
  2. Новый интерфейс импорта/экспорта. Экспорт и импорт открываются в модальном окне. Появилась возможность выбора свойств материала, тегов и пользовательских полей для экспорта непосредственно перед началом экспорта.
  3. Фильтрация материалов при экспорте. Вы можете отфильтровать нужные материалы с помощью стандартных параметров поиска в панели администратора и экспортировать только их: избранные, опубликованные, материалы из определённых категорий, с заданным тегом и т.д.
  4. Импорт и экспорт всех данных материала. Ранее плагин позволял экспортировать только часть данных. Теперь можно изменять все данные материала, доступные в форме редактирования, включая нередактируемые (просмотры, дата изменения и др.). Это позволяет быстро обновлять meta-description или только данные пользовательских полей.
  5. Импорт только пользовательских полей. Обязательным полем для импорта остаётся только articleid. Это позволяет импортировать исключительно данные пользовательских полей без изменения основного содержимого материала.
  6. Joomla 6. Плагин переписан в соответствии с актуальной архитектурой Joomla 4+ и успешно протестирован на Joomla 6.
  7. Для разработчиков: предобработка плагинами. Возможна обработка данных собственными плагинами группы cfi непосредственно перед импортом или экспортом. Доступные события:
    • onExportPrepareData($event)
    • onImportPrepareArticleData($event)

Системные требования

  • Joomla 4.3+
  • PHP 8.1+

Для обновления со старых версий выпущен релиз 1.0.16, в котором добавлен новый сервер обновлений.

Ссылки

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

goga_pgasovav

  • Захожу иногда
  • 445
  • 6 / 0
  • Внимательный джумловод
Товарищи, в настройках каждой категории мы можем добавить изображение для этой категории.
И в шаблоне, например блога категории, вывод этого изображения делается вот так:

Код
<?php if ($this->params->get('show_description_image') && $this->category->getParams()->get('image')) : ?>
<img src="<?php echo $this->category->getParams()->get('image'); ?>" alt="<?php echo htmlspecialchars($this->category->getParams()->get('image_alt'), ENT_COMPAT, 'UTF-8'); ?>"/>
<?php endif; ?>

Как то же самое сделать внутри index.php шаблона?

Определять, что  в данный момент отображается категория, я умею:
Код
function showPage($x = array()){ return array_intersect_assoc($x,  $_REQUEST) == $x; }
if (showPage(array('option' => 'com_content', 'view' => 'category'))) { ... }

Но как добраться до остальных параметров категории я пока не знаю.
Заранее спасибо всем, кто может объяснить, как это делается.
« Последнее редактирование: 12.07.2024, 16:11:42 от goga_pgasovav »
*

goga_pgasovav

  • Захожу иногда
  • 445
  • 6 / 0
  • Внимательный джумловод
Немного продвинулся в этой задаче:

Код
<?php if (showPage(array('option' => 'com_content', 'view' => 'category'))) {

$cat_id = $app->input->getInt('id', 0);
$db = JFactory::getDbo();
$query = $db
    ->getQuery(true)
    ->select($db->quoteName('params'))
    ->from($db->quoteName('#__categories'))
    ->where($db->quoteName('id'). ' = ' .$cat_id);
$db->setQuery($query);
$params = $db->loadObjectList();
var_dump($params);
} ?>

В var_dump() получаю такой объект:

Код
object(stdClass)#878 (1) {
  ["params"]=>
  string(108) "{"category_layout":"","image":"images\/backgrounds\/Bildschirmfoto_2024-06-06_um_191317.png","image_alt":""}"
}

А что делать дальше не знаю   !!!???!!!

*

fbr

  • Завсегдатай
  • 1685
  • 210 / 7
попробуйте так:
$params = json_decode($params);
$my_img = $params->image;
*

goga_pgasovav

  • Захожу иногда
  • 445
  • 6 / 0
  • Внимательный джумловод
попробуйте так:
$params = json_decode($params);
$my_img = $params->image;
Спасибо! Пробовал json_decode, ничего не выводит.

Попробовал ещё explode, предварительно заменив LoadObject на LoadResult в getDbo() запросе.
Код
$param = explode(',', $params);
echo $param[1];

Получаю опять строку:
Код
"image":"images\/backgrounds\/Bildschirmfoto_2024-06-06_um_191317.png"
  :dry:
*

goga_pgasovav

  • Захожу иногда
  • 445
  • 6 / 0
  • Внимательный джумловод
В итоге домучал до вот такого, на мой взгляд совсем некрасивого, решения:

Код
//get category image
if (showPage(array('option' => 'com_content', 'view' => 'category'))) {
$cat_id = $app->input->getInt('id', 0);
$db = JFactory::getDbo();
$query = $db
    ->getQuery(true)
    ->select($db->quoteName('params'))
    ->from($db->quoteName('#__categories'))
    ->where($db->quoteName('id'). ' = ' .$cat_id);
$db->setQuery($query);
$params = $db->loadResult();
$param = explode(',', $params);
$bckgrnd = str_replace(str_split('\\"'), '', explode(':', $param[1])[1]);
}

Таким образом я получаю из параметра image путь к изображению категории.
Естественно можно получить другой параметр, указав его номер вместо первого '[1]'.

Далее, в нужном месте выводим это изображение в виде фона.
В моём случае я этот фон вешаю на wrapper верхнего уровня, т.е. <body>.

Код
<body<?php if ($bckgrnd != null) { echo ' style="background-image: url('.$bckgrnd.');"'; } ?>>

Возможно кто-то знает, как сделать оптимальнее, и без getDbo(), буду признателен.
*

fbr

  • Завсегдатай
  • 1685
  • 210 / 7
у меня работает вот так
Код
<?php function showPage($x = array()){ 
return array_intersect_assoc($x,  $_REQUEST) == $x;
}
if (showPage(array('option' => 'com_content', 'view' => 'category'))) {

$cat_id = $app->input->getInt('id', 0);
$db = JFactory::getDbo();
$query = $db
    ->getQuery(true)
    ->select($db->quoteName('params'))
    ->from($db->quoteName('#__categories'))
    ->where($db->quoteName('id'). ' = ' .$cat_id);
$db->setQuery($query);
//$_params = $db->loadObjectList();
$_params = $db->loadResult();
var_dump($_params);
$dfd = json_decode($_params);
$myimg = $dfd->image;
echo '<p>' . $myimg . '</p>';
} ?>
*

goga_pgasovav

  • Захожу иногда
  • 445
  • 6 / 0
  • Внимательный джумловод
Спасибо! Так действительно оптимальнее, хотя я думал как-то обойтись без getDbo().
Итоговый вариант:

Код
function showPage($x = array()){ return array_intersect_assoc($x,  $_REQUEST) == $x; }
if (showPage(array('option' => 'com_content', 'view' => 'category'))) {
    $cat_id = $app->input->getInt('id', 0);
    $db = JFactory::getDbo();
    $query = $db
        ->getQuery(true)
        ->select($db->quoteName('params'))
        ->from($db->quoteName('#__categories'))
        ->where($db->quoteName('id'). ' = ' .$cat_id);
    $db->setQuery($query);
    $params = json_decode($db->loadResult());
    $bckgrnd = str_replace(str_split('\\"'), '', $params->image);
}

str_replace и str_split выполняются для того, чтобы привести в порядок url изображения
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[Решено] Вывод значений из custom fields материала в модуле по имени поля

Автор goga_pgasovav

Ответов: 3
Просмотров: 1569
Последний ответ 30.12.2024, 13:22:11
от goga_pgasovav
sp easy image gallery размножает фотки

Автор yalo

Ответов: 0
Просмотров: 635
Последний ответ 09.12.2024, 23:10:08
от yalo
[Решено] Перестали работать переходы по меню сайта

Автор AlexP750

Ответов: 12
Просмотров: 2268
Последний ответ 06.02.2024, 12:42:26
от AlexP750
Блог | Тайтл, description подкатегории

Автор darkghost

Ответов: 0
Просмотров: 684
Последний ответ 02.02.2024, 22:25:53
от darkghost
Получить ошибку

Автор KevinSimon

Ответов: 0
Просмотров: 735
Последний ответ 22.09.2023, 15:20:21
от KevinSimon