4

ZendFramework1.8を使用しています。headMeta()がメタキーワードを複製するのに問題があります。

私のlayout.phtmlには、
<?php echo $this->headMeta(); ?>

関数内に次のコードを含むカスタムController_Plugin_ViewSetup(拡張)があります:Zend_Controller_Plugin_AbstractdispatchLoopStartup()
$view->headMeta()->setHttpEquiv('Content-Type', 'text/html;charset=utf-8'); $view->headMeta()->setName('keywords', 'global,generic,keywords,');

最後に、ビュースクリプトには、次のものがあります。
$this->headMeta()->appendName('keywords', 'view,specific,keywords');

HTMLソースコードで次のように表示されることを期待していました。
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="keywords" content="global,generic,keywords,view,specific,keywords" />

しかし、私は実際にこれを見ます:
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="keywords" content="global,generic,keywords," />
<meta name="keywords" content="view,specific,keywords" />

つまり、メタキーワードは本来のように連結されていません。私は何が間違っているのですか?

乾杯、
マット

4

1 に答える 1

5

これは、append メソッドが、既に定義されているリストにキーワードを追加しないためです。append メソッドは、既に定義されているタグに次のタグを追加します。同様に、prepend を選択すると、プラグインで定義したタグの前に新しいタグが追加されます。

最善の方法は、プラグインからキーワード プレース ホルダーを削除し、既定のキーワードを構成オブジェクトに保存し、追加のキーワードを追加すると同時に、これらをビューに挿入することだと思います。

于 2009-06-18T15:19:34.150 に答える