バージョン選択

フォーラム

メニュー

オンライン状況

73 人のユーザが現在オンラインです。 (64 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 73
もっと...

サイト内検索

プラグイン > 開発について > 管理画面のナビゲーションを表示したい

開発について

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
h_tanaka
投稿日時: 2016/10/20 17:06
対応状況: −−−
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1610
管理画面のナビゲーションを表示したい
EC-CUBE3にて、プラグインの開発を行おうと考えています。
Controllerで新規ページの追加、ServiceProvider でナビゲーションメニューへのリンクの追加はできました。
しかし管理画面のページとして作成したいため、まっさらなページではなく管理画面のヘッダーやナビゲーションを表示したいです。
どうすればよいでしょうか?

class SampleController
{
    public function sample(Application $app)
    {
        return 'Hello, Plugin World!!';
    }
}



class CategoryContentServiceProvider implements ServiceProviderInterface
{
    public function register(BaseApplication $app)
    {
        // 管理画面の受注管理にメニューを追加
        $app['config'] = $app->share($app->extend('config', function ($config) {
            $config['nav'][1]['child'][] = array(
                'id' => 'order_sample',
                'name' => 'サンプル',
                'url' => 'sample',
            );

            return $config;
        }));
    }
}
red
投稿日時: 2016/10/20 22:43
対応状況: −−−
登録日: 2010/2/15
居住地: 東京都
投稿: 1568
Re: 管理画面のナビゲーションを表示したい
twigでこんな書き方をすれば出るかと

{% extends 'default_frame.twig' %}

{% set menus = ['store', 'plugin', 'plugin_list'] %}


----------------
EC-CUBEのカスタマイズ、トラブル解決承ります
お気軽にお問い合わせ下さい
https://www.ec-cube.net/integrate/partner/partner.php?partner_id=690

h_tanaka
投稿日時: 2016/10/21 8:15
対応状況: −−−
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1610
Re: 管理画面のナビゲーションを表示したい
redさん、
ありがとうございます。

Controllerからtwigを読み込む処理を追加しましたが、エラーになってしまいます。

■エラーメッセージ
Twig_Error_Loader in Chain.php line 63:
Template "Admin/sample.twig" is not defined.

■構成
app/Plugin/CategoryContent/Controller/SampleController.php
app/Plugin/CategoryContent/Resource/template/Admin/sample.twig

    public function sample(Application $app)
    {
        return $app->render('Admin/sample.twig');
//        return $app->render('Resource/template/Admin/sample.twig');
//        return $app->render('../Resource/template/Admin/sample.twig');
//        return $app->render('Plugin/CategoryContent/Resource/template/Admin/sample.twig');
//        return $app->render('app/Plugin/CategoryContent/Resource/template/Admin/sample.twig');
    }
red
投稿日時: 2016/10/21 9:26
対応状況: −−−
登録日: 2010/2/15
居住地: 東京都
投稿: 1568
Re: 管理画面のナビゲーションを表示したい
return $app->render('CategoryContent/Resource/template/Admin/sample.twig');

これが正解かなと思います。


----------------
EC-CUBEのカスタマイズ、トラブル解決承ります
お気軽にお問い合わせ下さい
https://www.ec-cube.net/integrate/partner/partner.php?partner_id=690

h_tanaka
投稿日時: 2016/10/21 12:32
対応状況: −−−
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1610
Re: 管理画面のナビゲーションを表示したい
redさん、
ありがとうございます。それが正解でした!

twigも実装したのですが、白紙のページが表示されるだけで管理画面のヘッダーやメニューは表示されないです・・・。

{% extends 'default_frame.twig' %}

{% set menus = ['order', 'sample'] %}

{% block title %}受注管理{% endblock %}
{% block sub_title %}サンプル{% endblock %}

{% block main %}
<div class="row" id="aside_wrap">
    <form name="form1" method="post" action="?">
    </form>
</div>
{% endblock %}
red
投稿日時: 2016/10/21 14:43
対応状況: −−−
登録日: 2010/2/15
居住地: 東京都
投稿: 1568
Re: 管理画面のナビゲーションを表示したい
んーなぜでしょう?

全体がわからないのでなんとも言えません
https://github.com/EC-CUBE/Recommend-plugin
これを参考になにか足りないものがないか見比べてみるといいんじゃないでしょうか


----------------
EC-CUBEのカスタマイズ、トラブル解決承ります
お気軽にお問い合わせ下さい
https://www.ec-cube.net/integrate/partner/partner.php?partner_id=690

h_tanaka
投稿日時: 2016/10/24 8:23
対応状況: −−−
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1610
Re: 管理画面のナビゲーションを表示したい
ありがとうございます。参考になります。

まだ原因はわかりませんが、sample.twigでextendsしているdefault_frame.twigがadminではなくdefaultのものが読み込まれているようです。

■構成
app/Plugin/CategoryContent/Controller/SampleController.php
app/Plugin/CategoryContent/Resource/template/Admin/sample.twig
src/Eccube/Resource/template/admin/default_frame.twig ★こちらを読み込みたい
src/Eccube/Resource/template/default/default_frame.twig ★こちらが読み込まれる
red
投稿日時: 2016/10/24 9:14
対応状況: −−−
登録日: 2010/2/15
居住地: 東京都
投稿: 1568
Re: 管理画面のナビゲーションを表示したい
ServiceProviderがこんな感じになってますか?

// Routingを追加
$admin = $app['config']['admin_route'];
$app->match($admin . '/log_report', '\\Plugin\\LogReport\\Controller\\LogReportController::index')
->bind('admin_log_report');


----------------
EC-CUBEのカスタマイズ、トラブル解決承ります
お気軽にお問い合わせ下さい
https://www.ec-cube.net/integrate/partner/partner.php?partner_id=690

h_tanaka
投稿日時: 2016/10/24 17:56
対応状況: −−−
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1610
Re: 管理画面のナビゲーションを表示したい
redさん
ありがとうございます!
そうなっていなかったです!

ServiceProviderを次のように修正することで管理画面のメニューが表示されるようになりました!
まだよく理解できていないので、これから調べていきます。

■修正前
        // サンプルページ作成
        $app->match(
            '/sample', // アクセスされるURL
            '\Plugin\CategoryContent\Controller\SampleController::sample' // コントローラとメソット&#12441;名
        )->bind('sample'); // ルーティンク&#12441;名


■修正後
        // サンプルページ作成
        $admin = $app['config']['admin_route'];
        $app->match(
            $admin . '/sample', // アクセスされるURL
            '\Plugin\CategoryContent\Controller\SampleController::sample' // コントローラとメソット&#12441;名
        )->bind('sample'); // ルーティンク&#12441;名


他プラグインのコードを参考にしました。次でもうまくいくようです。
        // サンプルページ作成
        $app->match(
            '/' . $app['config']['admin_route'] . '/plugin/CategoryContent/sample', // アクセスされるURL
            '\Plugin\CategoryContent\Controller\SampleController::sample' // コントローラとメソット&#12441;名
        )->bind('sample'); // ルーティンク&#12441;名
468
投稿日時: 2016/11/23 3:24
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: 管理画面のナビゲーションを表示したい
/src/Eccube/Application.phpの191行目に以下のような記述がありますので、
アクセスされるURLの先頭が
'/' . $this['config']['admin_route'] . '/'
に一致する事で管理画面側のコントローラーに処理が振り分けられて管理画面のメニューが表示されるようになるのだと思います。

$this->mount('', new ControllerProvider\FrontControllerProvider());
$this->mount('/'.trim($this['config']['admin_route'], '/').'/', new ControllerProvider\AdminControllerProvider());

(1) 2 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,308名です
総投稿数は109,693件です

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1568
9
mcontact
1240
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.