4

zf2用の非常に単純なモジュールの作成はほぼ完了しました。モジュールに実行させたいことの1つは、レイアウトにcssを挿入して、生成されるHTMLがより適切に表示されるようにすることです。

これはモジュール内から実行できますか?もしそうなら、どのように?

編集:迅速な対応をありがとうございました。しかし、私はおそらく自分自身をあまり明確に説明しなかったと思います。「いくつかのcssを挿入する」とは、cssの文字列を取得し、実際にレイアウト内にレンダリングすることを意味します。これまでの回答が示唆しているように、外部のcssファイルにリンクしたり、アセットマネージャーにファイルを公開させたりするつもりはありませんでした。

4

3 に答える 3

8

モジュールからパブリックアセットをプッシュするためのオプションについては、ZendFramework2のモジュールからのアセットの公開またはZendFramework2モジュールのパブリックディレクトリをマージする方法を参照してください。

また、モジュールアセットを公開することに加えて、onBootstrapのようなトリガーされたメソッドに追加を配置することができます。

public function onBootstrap($e) {
    $sm = $e->getApplication()->getServiceManager();
    $headLink = $sm->get('viewhelpermanager')->get('headLink');
    $headLink->appendStylesheet('/assets/MyModule/css/mystylesheet.css');
}
于 2012-11-11T15:59:55.200 に答える
3

次のようなものを使用してみてください。

$sm = $this->getEvent()->getApplication()->getServiceManager();
$helper = $sm->get('viewhelpermanager')->get('headLink');
$helper->prependStylesheet('/css/mystylesheet.css');

モジュールコントローラで。

編集:

cssスタイルをモジュールに保存する場合は、レイアウトファイル(ヘッドセクション)にレンダリングするか、モジュール内に別のルートを作成することができます。たとえば、/get/style/[:name]。このルートは、プレーンテキスト/cssドキュメントのみを返す別のアクションを指します。多かれ少なかれ :)

于 2012-11-11T06:19:13.140 に答える
1

CSSを挿入する場所の変数をレイアウトに追加します。

<a href="#" style="<?php echo($this->CSS); ?>">Some Link</a>

次に、コントローラーで、必要に応じてロードして割り当てます。

$this->layout()->CSS = "CSS";
$this->layout()->CSS = $this->getRequest()->getPost('CSStoInject');
$this->layout()->CSS = fopen(), curl(), etc.
于 2013-04-22T19:51:25.667 に答える