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

leha111

  • Захожу иногда
  • 226
  • 0 / 0
Учусь делать компоненты.

https://mb4.ru/cms/joomla4/724-developing-a-basic-component-for-joomla-4.html

schooltechcontent.xml
Код
<?xml version="1.0" encoding="utf-8"?>
<extension type="component" method="upgrade">
<!-- атрибут 'version' для тега расширения больше не используется -->
 
    <name>SchoolTechContent</name>
    <!-- Следующие элементы являются необязательными и не содержат ограничений на форматирование -->
    <creationDate>Janiary 2022</creationDate>
    <!-- Фиктивный автор, не стесняйтесь заменять его в любом месте, где вы его видите -->
    <author></author>
    <authorUrl></authorUrl>
    <copyright></copyright>
    <license></license>
    <!-- Строка 'version' записывается в таблицу компонентов -->
    <version>0.0.1</version>
    <!-- Описание является необязательным и по умолчанию используется имя сомпонента -->
    <description>
        Schootech content
    </description>
 
    <!-- Это пространство имен PHP, в котором организован
    код расширения. Он должен следовать этому формату:
   
    Vendor\Component\ComponentName
 
    "Vendor" может быть названией компании или вашим собственным именем
   
    Раздел "ComponentName" ДОЛЖЕН соответствовать имени, используемому
    везде для вашего компонента. Каким бы ни было имя этого XML-файла,
    пространство имен должно совпадать (заглавные/прописные буквы не учитываются).
    -->
    <namespace path="src/">MuCompani\Component\schooltechcontent</namespace>
           
    <administration>
        <!-- Ссылка, которая появится в меню админки Joomla "Components" -->
        <menu link="index.php?option=com_schooltechcontent">SchoolTech</menu>
        <!-- Список файлов и папок для копирования.
             Обратите внимание на атрибут "folder".
             Это имя папки в пакете компонентов для копирования в CMS Joomla 4. -->
        <files folder="admin/">
            <folder>services</folder>
            <folder>src</folder>
            <folder>tmpl</folder>
        </files>
    </administration>
 
</extension>

admin/services/provider.php
Код
<?php

defined('_JEXEC') or die;

use Joomla\CMS\Dispatcher\ComponentDispatcherFactoryInterface;
use Joomla\CMS\Extension\ComponentInterface;
use Joomla\CMS\Extension\MVCComponent;
use Joomla\CMS\Extension\Service\Provider\ComponentDispatcherFactory;
use Joomla\CMS\Extension\Service\Provider\MVCFactory;
use Joomla\CMS\MVC\Factory\MVCFactoryInterface;
use Joomla\DI\Container;
use Joomla\DI\ServiceProviderInterface;

return new class implements ServiceProviderInterface {

    public function register(Container $container): void {
        $container->registerServiceProvider(new MVCFactory('\\MuCompani\\Component\\SchoolTechContent'));
        $container->registerServiceProvider(new ComponentDispatcherFactory('\\MuCompani\\Component\\SchoolTechContent'));
        $container->set(
            ComponentInterface::class,
            function (Container $container) {
                $component = new MVCComponent($container->get(ComponentDispatcherFactoryInterface::class));
                $component->setMVCFactory($container->get(MVCFactoryInterface::class));

                return $component;
            }
        );
    }
};

admin/src/Controller/DisplayController.php
Код
<?php

namespace MuCompani\Component\schooltechcontent\Administrator\Controller;

defined('_JEXEC') or die;

use Joomla\CMS\MVC\Controller\BaseController;


/**
 * Контроллер по умолчанию компонента SchoolTechContent
 *
 * @package     Joomla.Administrator
 * @subpackage  com_schooltechcontent
 */
class DisplayController extends BaseController {
    /**
     * Представление по умолчанию для метода отображения.
     *
     * @var string
     */
    protected $default_view = 'schoolcontent';

    public function display($cachable = false, $urlparams = array()) {
        return parent::display($cachable, $urlparams);
    }

}

admin/src/View/SchoolContent/HtmlView.php
Код
<?php

namespace MuCompani\Component\schooltechcontent\Administrator\Controller;

defined('_JEXEC') or die;

use Joomla\CMS\MVC\Controller\BaseController;


/**
 * Контроллер по умолчанию компонента SchoolTechContent
 *
 * @package     Joomla.Administrator
 * @subpackage  com_schooltechcontent
 */
class DisplayController extends BaseController {
    /**
     * Представление по умолчанию для метода отображения.
     *
     * @var string
     */
    protected $default_view = 'schoolcontent';

    public function display($cachable = false, $urlparams = array()) {
        return parent::display($cachable, $urlparams);
    }

}

admin/tmpl/schoolcontent/default.php
Код
<?php

namespace MuCompani\Component\schooltechcontent\Administrator\View\SchoolContent;

defined('_JEXEC') or die;

use Joomla\CMS\MVC\View\HtmlView as BaseHtmlView;

/**
 * @package     Joomla.Administrator
 * @subpackage  com_schooltechcontent
 *
 * [member=126442]copyright[/member]   Copyright (C) 2021 John Smith. All rights reserved.
 * @license     GNU General Public License version 3; see LICENSE
 */

/**
 * Основной вид в админке "SchoolTechContent"
 */
class HtmlView extends BaseHtmlView {

    /**
     * Отображение основного вида "SchoolTechContent"
     *
     * @param   string  $tpl  Имя файла шаблона для анализа; автоматический поиск путей к шаблону.
     * @return  void
     */
    function display($tpl = null) {
        parent::display($tpl);
    }


}

Собираю все это в архив com_schooltechcontent.zip и устанавливаю. В итоге, в меню компонента выводится

Некорректный класс контроллера: display

При копипасте из примера все работает нормально.

Где я ошибся (подозреваю, что где-то в admin/src/View/SchoolContent/HtmlView.php)?



*

ProtectYourSite

  • Живу я здесь
  • 2368
  • 139 / 4
  • Безопасность вебсайтов
Re: Ошибка при создании компонента
« Ответ #1 : 28.01.2022, 15:34:22 »
admin/src/View/SchoolContent/HtmlView.php

Код
namespace MuCompani\Component\schooltechcontent\Administrator\View\SchoolContent;

admin/tmpl/schoolcontent/default.php

Вообще убрать все и выводить только верстку,  к примеру
Код
	<h2>Hello world!</h2>
*

leha111

  • Захожу иногда
  • 226
  • 0 / 0
Re: Ошибка при создании компонента
« Ответ #2 : 31.01.2022, 07:53:24 »
admin/src/View/SchoolContent/HtmlView.php

И чем это отличается от того, что я написал ? Или это в смысле, что с ним что-то не так ? А что именно ?

Я пробовал в этом файле только эту строчку и оставить, но от опять выводит неверный класс display
« Последнее редактирование: 31.01.2022, 08:24:18 от leha111 »
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Re: Ошибка при создании компонента
« Ответ #3 : 31.01.2022, 10:32:04 »
admin/src/View/SchoolContent/HtmlView.php

И чем это отличается от того, что я написал ? Или это в смысле, что с ним что-то не так ? А что именно ?

Я пробовал в этом файле только эту строчку и оставить, но от опять выводит неверный класс display
admin/tmpl/schoolcontent/default.php

Здесь только вёрстку оставить, это же макет по сути. Там не должно быть классов.
*

leha111

  • Захожу иногда
  • 226
  • 0 / 0
Re: Ошибка при создании компонента
« Ответ #4 : 31.01.2022, 12:13:55 »
Косяк ! То, что записано, как admin/tmpl/schoolcontent/default.php - это, на самом деле, admin/src/View/SchoolContent/HtmlView.php. А реально это файл выгляди так.

Код
<?php

/**
 * @package     Joomla.Administrator
 * @subpackage  com_schooltechcontent
 *
 * [member=126442]copyright[/member]
 * @license
 */

// Нет прямого доступа к этому файлу
defined('_JEXEC') or die('Всем кыш! =D');
?>
<h2>ТЕСТ</h2>




 
*

leha111

  • Захожу иногда
  • 226
  • 0 / 0
Re: Ошибка при создании компонента
« Ответ #5 : 31.01.2022, 13:09:03 »
Попробовал немного переделать

schooltechcontent.xml

Код
<?xml version="1.0" encoding="utf-8"?>
<extension type="component" method="upgrade">
<!-- атрибут 'version' для тега расширения больше не используется -->
 
    <name>SchoolTechContent</name>
    <!-- Следующие элементы являются необязательными и не содержат ограничений на форматирование -->
    <creationDate></creationDate>
    <!-- Фиктивный автор, не стесняйтесь заменять его в любом месте, где вы его видите -->
    <author>MuCompani</author>
    <authorUrl></authorUrl>
    <copyright></copyright>
    <license></license>
    <!-- Строка 'version' записывается в таблицу компонентов -->
    <version>0.1</version>
    <!-- Описание является необязательным и по умолчанию используется имя сомпонента -->
    <description>
        Контент для сайта SchoolTech
    </description>
 
    <!-- Это пространство имен PHP, в котором организован
    код расширения. Он должен следовать этому формату:
   
    Vendor\Component\ComponentName
 
    "Vendor" может быть названией компании или вашим собственным именем
   
    Раздел "ComponentName" ДОЛЖЕН соответствовать имени, используемому
    везде для вашего компонента. Каким бы ни было имя этого XML-файла,
    пространство имен должно совпадать (заглавные/прописные буквы не учитываются).
    -->
    <namespace path="src/">MuCompani\Component\SchoolTechContent</namespace>
           
    <administration>
        <!-- Ссылка, которая появится в меню админки Joomla "Components" -->
        <menu link="index.php?option=com_schooltechcontent">SchoolTechContent</menu>
        <!-- Список файлов и папок для копирования.
             Обратите внимание на атрибут "folder".
             Это имя папки в пакете компонентов для копирования в CMS Joomla 4. -->
        <files folder="admin/">
            <folder>services</folder>
            <folder>src</folder>
            <folder>tmpl</folder>
        </files>
    </administration>
 
</extension>

admin/services/provider.php
Код
<?php

defined('_JEXEC') or die;

use Joomla\CMS\Dispatcher\ComponentDispatcherFactoryInterface;
use Joomla\CMS\Extension\ComponentInterface;
use Joomla\CMS\Extension\MVCComponent;
use Joomla\CMS\Extension\Service\Provider\ComponentDispatcherFactory;
use Joomla\CMS\Extension\Service\Provider\MVCFactory;
use Joomla\CMS\MVC\Factory\MVCFactoryInterface;
use Joomla\DI\Container;
use Joomla\DI\ServiceProviderInterface;

return new class implements ServiceProviderInterface {

    public function register(Container $container): void {
        $container->registerServiceProvider(new MVCFactory('\\MuCompani\\Component\\SchoolTechContent'));
        $container->registerServiceProvider(new ComponentDispatcherFactory('\\MuCompani\\Component\\SchoolTechContent'));
        $container->set(
            ComponentInterface::class,
            function (Container $container) {
                $component = new MVCComponent($container->get(ComponentDispatcherFactoryInterface::class));
                $component->setMVCFactory($container->get(MVCFactoryInterface::class));

                return $component;
            }
        );
    }
};

admin/src/Controller/DisplayController.php

Код
<?php

namespace MuCompani\Component\SchoolTechContent\Administrator\Controller;

defined('_JEXEC') or die;

use Joomla\CMS\MVC\Controller\BaseController;

/**
 * @package     Joomla.Administrator
 * @subpackage  com_schooltechcontent
 *
 * [member=126442]copyright[/member]   Copyright (C) 2021 John Smith. All rights reserved.
 * @license     GNU General Public License version 3; see LICENSE
 */

/**
 * Контроллер по умолчанию компонента SchoolTechContent
 *
 * @package     Joomla.Administrator
 * @subpackage  com_schooltechcontent
 */
class DisplayController extends BaseController {
    /**
     * Представление по умолчанию для метода отображения.
     *
     * @var string
     */
    protected $default_view = 'schooltemplate';

    public function display($cachable = false, $urlparams = array()) {
        return parent::display($cachable, $urlparams);
    }

}


admin/src/View/SchoolContent/HtmlView.php

Код
<?php

namespace MuCompani\Component\SchoolTechContent\Administrator\View\SchoolContent;

defined('_JEXEC') or die;

use Joomla\CMS\MVC\View\HtmlView as BaseHtmlView;

/**
 * @package     Joomla.Administrator
 * @subpackage  com_helloworld
 *
 * [member=126442]copyright[/member]   Copyright (C) 2021 John Smith. All rights reserved.
 * @license     GNU General Public License version 3; see LICENSE
 */

/**
 * Основной вид в админке "SchoolTechContnent"
 */
class HtmlView extends BaseHtmlView {

    /**
     * Отображение основного вида "SchoolTechContnent"
     *
     * @param   string  $tpl  Имя файла шаблона для анализа; автоматический поиск путей к шаблону.
     * @return  void
     */
    function display($tpl = null) {
        parent::display($tpl);
    }


}

admin/tmpl/schooltemplate/default.php
Код
<?php

/**
 * @package     Joomla.Administrator
 * @subpackage  com_helloworld
 *
 * [member=126442]copyright[/member]   Copyright (C) 2021 John Smith. All rights reserved.
 * @license     GNU General Public License version 3; see LICENSE
 */

// Нет прямого доступа к этому файлу
defined('_JEXEC') or die('Всем кыш! =D');
?>
<h2>Hello world!</h2>

Теперь он пишет "404 Не удалось найти представление [name, type, prefix]: schooltemplate, HTML, Administrator.

"
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Re: Ошибка при создании компонента
« Ответ #6 : 01.02.2022, 11:13:58 »
Зачем ты сюда это запостил?
https://github.com/joomla/joomla-cms/issues/36908

Это не проблема CMS, грузишь людей непонятно чем, ещё и ссылки там оставляешь на русскоязычый ресурс. Закрой там issue, пожалуйста.

Цитировать
Теперь он пишет "404 Не удалось найти представление [name, type, prefix]: schooltemplate, HTML, Administrator.
Тебе эта ошибка явно же пишет, что пытается открыть представление с именем schooltemplate. А у тебя какое? SchoolContent
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Ошибка при обновлении с 4.4 на 5.4

Автор kunsaid

Ответов: 1
Просмотров: 282
Последний ответ 25.12.2025, 14:13:16
от b2z
Ошибка БД при создании материала

Автор kunsaid

Ответов: 6
Просмотров: 1847
Последний ответ 29.10.2025, 19:36:49
от artem1977gri
Ошибка err_cache_miss

Автор geral

Ответов: 3
Просмотров: 17934
Последний ответ 01.10.2025, 07:15:51
от geral
Ошибка http 500 Whoops, looks like somethin после включение Отладки в настройках

Автор androv77

Ответов: 3
Просмотров: 1004
Последний ответ 03.04.2025, 17:55:01
от azm1n
Ошибка при установке Joomla 5 на Open Server 6.0

Автор Mnojitell

Ответов: 5
Просмотров: 1519
Последний ответ 03.04.2025, 11:36:11
от Akeksandr