1

私は 10 月の cms 用に次の非常に基本的なプラグインを持っていますが、オプションを編集可能にする方法や、プラグインがページに保存されるようにする方法がわかりません。ページを保存して閉じて再読み込みすると、バナー ヘッダーが消えてしまいます。

他のプラグインと例を見てきましたが、何が間違っているのか本当にわかりません..

Plugin.php

<?php namespace MDibbets\BannerHeader;

use System\Classes\PluginBase;

class Plugin extends PluginBase
{

    public function pluginDetails()
    {
        return [
            'name'        => 'Banner Header',
            'description' => 'Provides content management for the banner header module.',
            'author'      => 'Michael Dibbets',
            'icon'        => 'icon-sun-o'
        ];
    }

    public function registerComponents()
    {
        return [
           '\MDibbets\BannerHeader\Components\BannerHeader' => 'bannerheader'
        ];
    }
}

コンポーネント/bannerheader.php

<?php 
namespace MDibbets\BannerHeader\Components;

use App;
use Event;
use Backend;
use Cms\Classes\ComponentBase;
use System\Classes\ApplicationException;

class BannerHeader extends ComponentBase
{
    public function componentDetails()
    {
        return [
            'name'        => 'Banner Header',
            'description' => 'Places a nice big banner header on the page with the below settings.'
        ];
    }

    public function defineProperties()
    {
        return [
            'maintitle' => [
                'title'             => 'Main Title',
                'type'              => 'string',
                'default'           => 'Welcome'
            ],
            'subtitle' => [
                'title'             => 'Sub Title',
                'type'              => 'string',
                'default'           => 'you are'
            ],
            'content' => [
                    'title'             => 'The Content',
                    'type'              => 'string',
                    'default'           => 'xxxxxxxxxx'
            ]
        ];
    }
    public function info() {
        $ret = new stdClass();
        $ret->title = $this->property('title');
        $ret->subtitle = $this->property('subtitle');
        $ret->content = $this->property('content');
        return $ret;
    }
    public function onRun() {
        $this->page['bannerheader'] = $this->info();
    }
   //...

}

?>

私は天気アプリのチュートリアルのすべてのステップに従いましたが、ロジックはこれが正しく機能することを示していますか? Uncaught Error: Error parsing the Inspector field configuration. SyntaxError: Unexpected end of input バナーボックスをダブルクリックしてオプションを開くと、javascriptコンソールが表示されます..

明らかに何かが間違っていますが、この不可解なメッセージは、私がそれを解決できる方向に私を指し示していません.

これを障害にまでさかのぼる方法を知っている人はいますか? または適切なドキュメントを教えてください。他のプラグインは正常に動作し、正常に保存されます。

それはおそらく愚かで小さなものです。私は愚かな小さなことが何であるかを理解することはできません.(時々私は新しいことを学ぶのが嫌いです.

4

1 に答える 1

2

追加するだけ$ret = new \stdClass();です。

ソース:プラグインのプロパティを編集できず、プラグインがページに保存されない

ただし、stdClassは PHP ベースの関数であり、10 月の関数ではありません。エラーが発生する可能性がありますが、私は考えていません。

ありがとう (-:

于 2015-06-24T13:38:31.587 に答える