Новости 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 Ответов
  • 1196 Просмотров
*

pavel2950

  • Захожу иногда
  • 194
  • 3 / 0
Приветствую товарищи!

Беда какая, уже как угодно переписовал код и по документации писал не работает код обновления и добавления.


В первом запросе через поля (user_id и ref_id) мы проверяем голосовал ли он. Если пусто, значит нет и выпольням след. код вставка в эту же таблицу #__js_res_vote поля и еще обновляем одну таблицу.

Первый запрос работает четко, если пользователь какой пытался оставить голос и он уже это сделал ему верент сообщение "голосовал уже"

Скрин запроса из phpAdmin

А вот другие не работают вообще.

Писал sql запрос как стрингой,  открывал соединение отедльно и без рузультатотно. Если запрос обновления и вставки вывести и его же вставить в phpMyAdmin заменив только на префикс таблицы все четко работает и добавляет.

С меня +, кто свежим взглядом найдет ошибку
Код
class modcobaltRatingTopicHelper
{
    public static function getAjax()

    {
        $topic_rating = $_POST['topic_rating'];
        $id_topic = $_POST['id_topic'];
        $id_user = $_POST['id_user'];

        $db = JFactory::getDbo();
        $sql = $db->getQuery(true);

        $sql->select('ref_id');
        $sql->from('#__js_res_vote');
        $sql->where('user_id = ' . $id_user. " AND ref_id = ".$id_topic);
        $db->setQuery($sql);
        $resultCheckVote = $db->loadColumn();

        if (empty($resultCheckVote)):

            $columns = array('user_id', 'ref_id', 'vote');
            $values = array($id_user, $id_topic, $topic_rating);

            $sql->insert('#__js_res_vote');
            $sql->columns($db->quoteName($columns));
            $sql->values(implode(',', $values));
            $db->setQuery($sql);


            $sql->update('#__js_res_record')->set('votes = 1')->where('id = ' . $id_topic);
            $db->setQuery($sql)->execute();
        else:

            return "Голосовали уже";

        endif;
    }
}


Вот при таком расскладе что есть сейчас консоль ругается на ""JDatabaseExceptionExecuting: Unknown column 'ref_id' in 'where clause'""

« Последнее редактирование: 06.09.2019, 14:00:41 от pavel2950 »
*

icom

  • Давно я тут
  • 830
  • 202 / 4
Re: sql запрос не работает
« Ответ #1 : 01.09.2019, 21:15:51 »
возможно $id_topic пустое значение,
перед запросом проверяйте
if ($id_topic) {

}

или вместо $id_topic = $_POST['id_topic'];
прописать
$jinput = JFactory::getApplication()->input;
$id_topic = $jinput->get('id_topic', 0);
*

pavel2950

  • Захожу иногда
  • 194
  • 3 / 0
Re: sql запрос не работает
« Ответ #2 : 01.09.2019, 22:23:49 »
возможно $id_topic пустое значение,
перед запросом проверяйте
if ($id_topic) {

}

или вместо $id_topic = $_POST['id_topic'];
прописать
$jinput = JFactory::getApplication()->input;
$id_topic = $jinput->get('id_topic', 0);
В том то идело что все заполненно
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Re: sql запрос не работает
« Ответ #3 : 01.09.2019, 23:13:04 »
покажите, что выводит перед выполнением запроса
Код: php
$sql->__toString();

и напрямую из $_POST получать значения для подставновки в запрос - это прямая sql-инъекция, либо через фабрику получайте, как в примере выше, либо через filter_input(), и если это должно быть числовое значение, то делайте обязательное приведение типов, либб значение через $db->quote() обязательно пропускайте
« Последнее редактирование: 01.09.2019, 23:18:28 от AlekVolsk »
*

pavel2950

  • Захожу иногда
  • 194
  • 3 / 0
Re: sql запрос не работает
« Ответ #4 : 04.09.2019, 16:49:34 »
$sql->__toString();

ничего не выводит. стринга пустая мол
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Re: sql запрос не работает
« Ответ #5 : 04.09.2019, 17:23:50 »
посмотрел внимательней и только сейчас заметил: вам необходимо после каждого выполнения запроса снова его инициализировать, т.е. перед каждым формированием нового запроса обязательно
Код: php
$sql = $db->getQuery(true);
*

pavel2950

  • Захожу иногда
  • 194
  • 3 / 0
Re: sql запрос не работает
« Ответ #6 : 04.09.2019, 18:40:19 »
посмотрел внимательней и только сейчас заметил: вам необходимо после каждого выполнения запроса снова его инициализировать, т.е. перед каждым формированием нового запроса обязательно
Код: php
$sql = $db->getQuery(true);
Вы совершены правы. Я как раз это и сделал и еще переделал на вариант такой чтоб данные экранировались автоматически.

Для понимания(пример):

Код
// Создаем и заполняем объект
$profile = new stdClass();
$profile->user_id = 42;
$profile->profile_key = 'custom.message';
$profile->profile_value= 'Вставка данных с помощью insertObject()';
$profile->ordering = 1;
 
// Вставляем объект в таблицу профиля пользователя
$result = JFactory::getDbo()->insertObject('#__user_profiles', $profile);


Метод insertObject() автоматически экранирует данные: применяет quoteName() к имени таблицы и колонкам, а также quote() к значениям.


Спасибо сайту в очередной раз cmscafe.ru



P.S. Я думал что открыв 1 подключение выполнил все запросы и закрыть, казалось вроде это логично и типа лишний раз не открывал/закрывать подклчюение. А вышло что надо каждый раз открыть, закрыть.
« Последнее редактирование: 04.09.2019, 18:43:49 от pavel2950 »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Не работает мобильная версия сайта

Автор jeans

Ответов: 4
Просмотров: 1558
Последний ответ 21.05.2025, 12:44:06
от jeans
Не работает менеджер материалов, ошибка 500 SSL certificate problem

Автор Екатерина М

Ответов: 5
Просмотров: 2155
Последний ответ 06.04.2025, 09:27:20
от wishlight
[Решено] Вывод значений из custom fields материала в модуле по имени поля

Автор goga_pgasovav

Ответов: 3
Просмотров: 1569
Последний ответ 30.12.2024, 13:22:11
от goga_pgasovav
Не работает капча

Автор Leo1986

Ответов: 4
Просмотров: 1128
Последний ответ 16.09.2024, 09:15:28
от Leo1986
[Решено] Получить category description image в index.php шаблона

Автор goga_pgasovav

Ответов: 6
Просмотров: 1583
Последний ответ 12.07.2024, 17:06:14
от goga_pgasovav