1

この質問はPHP Debug Barに関するものです。

DataCollectorPHP Debug Barにカスタムを追加しています。マウスオーバーしたときに、きれいにフォーマットされた情報を追加したいと思います。例えば、

public function getWidgets() {
    $name = $this->getName();
    $hg_changeset = rtrim(`/usr/local/bin/hg id -i`,"\n+") ?: '(unavailable)';
    $hg_branch = rtrim(`/usr/local/bin/hg id -b`,"\n") ?: '(unavailable)';
    return array(
        $name => array(
            "icon" => "leaf",
            "tooltip" => "Changeset: $hg_changeset\nBranch: $hg_branch",
            "map" => $name,
            "default" => json_encode("Unknown"),
        )
    );
}

次のようにレンダリングします。

ここに画像の説明を入力

HTML を に入れる方法はありtooltipますか? 自動エスケープするようです。

4

1 に答える 1

0

このような独自のインジケーターを作成できることがわかりました。

var LinkIndicator = PhpDebugBar.DebugBar.Indicator.extend({

    tagName: 'a',

    render: function() {
        LinkIndicator.__super__.render.apply(this);
        this.bindAttr('href', function(href) {
            this.$el.attr('href', href);
        });
    }

});

それを独自のファイルにスローし、DebugBar\DataCollector\AssetProviderインターフェイスを使用してコレクターに含めることができます。私は暗闇の中で突き刺しましたgetWidgets.カスタムインジケーターを指定できる秘密のプロパティがメソッドにあります:

public function getWidgets()
{
    return array(
        "nameOfMyWidget" => array(
            "icon" => "inbox",
            "indicator" => "LinkIndicator", // lets you specify the JS "class" you just created
            "map" => "nameOfMyWidget",
            "default" => "'xxx'"
        )
    );
}

更新:したがって、実際には秘密ではありません。このページの下部にあるドキュメントに埋もれています。

于 2014-05-10T00:19:14.403 に答える