EC-CUBEめも

雛形の生成

コマンドでプラグインの雛形を生成することができます。

$ bin/console eccube:plugin:generate

対話形式でname, code, verを入力すると app/Plugin/[code]/ 以下に雛形となるファイル類が生成されます。

プラグインのインストール

管理画面にてプラグインのインストールは可能です。
コマンドでの操作はcodeを指定し、以下となります。

# インストール
$ bin/console eccube:plugin:install --code=[code]

# 有効化
$ bin/console eccube:plugin:enable --code=[code]

# 無効化
$ bin/console eccube:plugin:disable --code=[code]

# 削除
$ bin/console eccube:plugin:uninstall --code=[code]

# 削除(プラグインのファイルも削除する場合)
$ bin/console eccube:plugin:uninstall --code=[code] --uninstall-force=true

プラグイン固有設定画面

プラグイン一覧画面からプラグイン固有の設定画面を開きたい場合、Routeの name は小文字で [code]_admin_config と指定します。
コマンドで雛形を生成した場合は plugin_Test_config となっており設定リンクが表示されないので注意が必要です。

app/Plugin/Test/Controller/Admin/ConfigController.php

<?php

namespace Plugin\Test\Controller\Admin;

use Eccube\Controller\AbstractController;
use Plugin\Test\Form\Type\Admin\ConfigType;
use Plugin\Test\Repository\ConfigRepository;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Symfony\Component\HttpFoundation\Request;

class ConfigController extends AbstractController
{
    /**
     * @var ConfigRepository
     */
    protected $configRepository;

    /**
     * ConfigController constructor.
     *
     * @param ConfigRepository $configRepository
     */
    public function __construct(ConfigRepository $configRepository)
    {
        $this->configRepository = $configRepository;
    }
    /**
     * @Route("/%eccube_admin_route%/test/config", name="test_admin_config")
     * @Template("@Test/admin/config.twig")
     */
    public function index(Request $request)
    {
        $Config = $this->configRepository->get();
        $form = $this->createForm(ConfigType::class, $Config);
        $form->handleRequest($request);

        if ($form->isSubmitted() && $form->isValid()) {
            $Config = $form->getData();
            $this->entityManager->persist($Config);
            $this->entityManager->flush($Config);
            $this->addSuccess('登録しました。', 'admin');

            return $this->redirectToRoute('test_admin_config');
        }

        return [
            'form' => $form->createView(),
        ];
    }
}

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS