Новости 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 Гость просматривают эту тему.
  • 504 Ответов
  • 33444 Просмотров
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Возможно ли такое: в параметры модуля добавить кнопку и назначить ей функцию, описанную в основном php-файле модуля? Просто кнопка с надписью на ней.
« Последнее редактирование: 02.04.2014, 15:50:17 от AlekVolsk »
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
1200 с лишним раз прочитано. Интересует, видимо, не только меня. Но - похоже на то - либо никто не знает, либо знают, что это невозможно, но даже об этом молчат... партизаны :)
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Все возможно но никто не может понять чего вы хотите! И да кнопку свзять с функцией в PHP нельзя! Кнопка это творение клиента, PHP это то что уже выполнилось на сервере.. после чего вы увидели кнопку..
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
ОК. Если нельзя сделать кнопку, то как можно загрузить и обработать файл, причем это надо сделать в админке?
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Загрузка файла - это форма с кнопочкой "Отправить". Где это надо сделать, в самописном компоненте?
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Скорее в плагине, компонент мне пока что-то не дается. Параметр типа file добавляет параметр с кнопкой для загрузки файла, как ему обработчик назначить? или обрабатывать при сохранении? параметру доступно свойство onclick, но это для указания js - мне не подходит, - js не освоил, либо из js вызвать функцию на php(?), никак не усвою весь этот механизм.

Как образец посмотрел com_installer, но там явно указана форма с кнопкой и обработчиком на js, обработчик вызывает что-то еще, не догнал.
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Параметр типа file добавляет параметр с кнопкой для загрузки файла, как ему обработчик назначить? или обрабатывать при сохранении?
Что нужно сделать, какой файл и как надо его обработать? Если хотите, чтобы вам помогли, нужно как можно больше конкретики.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Имеется файл XML, простой, его нужно загрузить, прочитать данные и записать эти данные в базу. Затем из базы вывести модулем во фронт.
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Ну вот, сразу стало понятно. Вам нужно не загрузить файл через форму, а simplexml_load_file, например.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Не будь паразитом, сделай что-нибудь самостоятельно!
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
А куда мне вставить этот simplexml_load_file? Как пользователь в модуле его указать должен?
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Знаете, год назад я был еще тупее, чем вы сейчас. Вы хотите, чтобы в рамках 1 темы получить то, за что я потратил не 1 неделю?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
У меня только 5 дней... Я чувствую себя даже не первоклашкой - мелким сопляком.
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Имеется файл XML, простой, его нужно загрузить, прочитать данные и записать эти данные в базу. Затем из базы вывести модулем во фронт.
ИМХО это должен быть компонент:
1. Представление с формой для загрузки файла.
2. Модель для обработки данных с формы (файла) и записи в базу.

Все. Больше ничего не требуется.
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Вы меня "обрадовали".
Попробую реализовать, в рамках этой темы, если что, поправите меня?
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Вы меня "обрадовали".
Попробую реализовать, в рамках этой темы, если что, поправите меня?
Без проблем. Для ускорения процесса, воспользуйтесь:
http://ссылка вырезана, так как домен распространяет вирусы/sozdanie-komponenta
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Воспользовался сервисом.
Приаттачил то, что сгенерировалось.
Установилось нормально, при входе в компонент в админке:
Fatal error: Call to undefined method Mfo_InfoHelper::setDocument() in Z:\home\mfo.local\www\administrator\components\com_mfo_info\views\load\view.html.php on line 20
Код: php
<?php
// No direct access
defined( '_JEXEC' ) or die;

/**
 * View for  current element
 * @author {auhtor}
 */
class Mfo_InfoViewLoad extends JViewLegacy
{

/**
* Method of display current template
* @param type $tpl
*/
public function display( $tpl = null )
{

$this->loadHelper( 'mfo_info' );
mfo_infoHelper::setDocument( 'view title', $this->baseurl );  // -> это и есть строка 20
parent::display( $tpl );
}

}
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Решил не заморачиваться с исправлением той заготовки, что сделал там - уж больно громоздкая заготовка получилась, набросал свой каркас по образцу с joomlablog.ru, добился того, что выводится форма без ошибок, пока пустая.
При установке создается таблица в базе, пустая. Это не вызовет при попытке чтения из нее ошибок? До того, как я сумею сделать проверку на наличие в ней данных?
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
При установке создается таблица в базе, пустая. Это не вызовет при попытке чтения из нее ошибок? До того, как я сумею сделать проверку на наличие в ней данных?
Конечно не вызовет.
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
А можно было просто закоментить 20 строку )
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
В одном представлении как можно совместить две модели, JModelAdmin и JModelList?

15 мин спустя:
Впрочем, все, что нужно, совместил в JModelList:
Код: php
jimport('joomla.application.component.modellist');
class MfoInfoModelLoad extends JModelList
{
  public function getTable($type = 'MfoInfo', $prefix = 'MfoInfoTable', $config = array())
  {
    return JTable::getInstance($type, $prefix, $config);
  }

  public function getForm($data = array(), $loadData = true)
  {
    $form = $this->loadForm($this->option.'.load', 'load', array('control'=>'jform', 'load_data'=>$loadData));
    if (empty($form)) {return false;}
    return $form;
  }

  protected function getListQuery()
  {
    $db = JFactory::getDBO();
    $query = $db->getQuery(true);
    $query->select('id, fullname, shortname, ogrn, inn, adr, phones, email, updated');
    $query->from('#__mfo_info');
    return $query;
  }
}

Вот только я сомневаюсь, правильно ли это.
« Последнее редактирование: 27.03.2014, 20:49:50 от AlekVolsk »
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Не срабатывает onclick кнопки "Загрузить", в консоли: ReferenceError: Joomla is not defined

/views/load/tmpl/defaulp.php:
Спойлер
[свернуть]

Что и где я забыл подключить? Что показать в дополнении к вышеуказанному?
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Ой, JModelAdmin нужна. JModelList для списка записей.
Так у меня и список записей тоже, выше скрин прикреплен
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Хотя, сейчас понял, что Вы немного по другому сделали, когда скрин увидел. Можно и так, так как у Вас в принципе нет формы с полями.

А как кнопку выводите?
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
А как кнопку выводите?
Код
<input class="btn btn-primary" type="button" value="<?php echo JText::_('COM_MFO_INFO_FORM_SUBMIT'); /* Загрузить */ ?>" onclick="Joomla.submitbutton()"/>
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Хотя в эту форму мне необходимо добавить текстовое поле с обычным параметром, аналогично параметру, указываемому в плагинах.

Сейчас поправил, в обоих местах MfoInfo.XmlSubmitsubmitbutton, все равно не работает.
Может, стоит подключить JHtml::_('jquery.framework'); ?

нет, не помогло
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
О, заработало: убрал MfoInfo. оставил только XmlSubmitsubmitbutton
Теперь главный вопрос: form.submit где должен выполняться? в /models/load.php? Как функция должна называться?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться