9

だから私はlayout.phtmlにいくつかのデフォルトのメタタグを使用して設定しています

$this->headTitle() and $this->headMeta()->appendName()

そしてlayout.phtmlのヘッダーにエコーされます

私の質問は次のとおりです。これらのデフォルトのメタタグをビューファイルから変更して、それらを置き換えるにはどうすればよいですか?

私は使ってみました:

$this->headMeta()->appendName() or setName()

古いデフォルトのメタタグを置き換える代わりに、まったく新しいメタタグを作成します。どうすれば交換できますか?

4

5 に答える 5

14

私はこれをテストしたばかりで、setName()動作するはずです:

<?php $this->headMeta()->setName('keywords', 'test'); ?>
<?php $this->headMeta()->setName('keywords', 'test'); ?>

結果:

<meta name="keywords" content="another test" >  

その間:

<?php $this->headMeta()->setName('keywords', 'test'); ?>
<?php $this->headMeta()->appendName('keywords', 'another test'); ?>

結果:

<meta name="keywords" content="test" > 
<meta name="keywords" content="another test" > 
于 2011-03-18T08:35:43.473 に答える
11

キーワードのビュー変数を設定することをお勧めします。たとえば、bootstrap.phpで、デフォルトのキーワードを次のように定義できます。

protected function _initSetDefaultKeywords() {
     $view = $this->bootstrap('view')->getResource('view');        
     $view->keywords = 'default keywords';
}

layout.phtmlでは、次のようになります。

<?php echo $this->headMeta()->appendName('keywords', $this->keywords); ?>

最後に、ビュー(またはアクション)で、キーワードビュー変数を変更するだけでメタキーワードを変更できます。

// in an action
$this->view->keywords = 'new kewords';
//or in a view
<?php $this->keywords = 'new kewords'; ?>
于 2011-03-18T11:20:34.583 に答える
3

これが私のために働いたものです。レイアウトファイルでは、メタタグがエコーされていることを確認する必要があります。この段階では空ですが、メタタグが出力される場所をマークします。この方法の唯一の欠点は、デフォルトのメタタグを設定する方法がないように思われるため、各ビューファイルにメタタグを追加する必要があることです。

レイアウトファイル内

<?php echo $this->headMeta(); ?>

ビューの.phtmlファイル

$this->headMeta("test description text", "description");
于 2014-03-07T13:19:14.490 に答える
1

どうですか:

$keywords = 'php,zend,framework';
$this->view->headMeta($keywords,'keywords','name',array(),'SET');

メタタグ、リンク、スタイルをzendフレームワークに配置するためのベストプラクティスで、これがうまくいくことがわかりましたか?

于 2012-01-30T12:55:29.493 に答える
1

コントローラ/アクションなしで生成されるキーワードと説明

ブートストラップに2つのプラグインを登録します

    //ナビゲーションを登録します、$ view-> Navigation()-> setContainer(new Zend_Navigation($ NavigationArray));
    $ controller = Zend_Controller_Front :: getInstance();
    $ controller-> registerPlugin(new App_Controller_Plugin_PrepareNavigation());

    $ controller-> registerPlugin(new App_Controller_Plugin_SetMeta());

メタプラグインは次のようになります。

    パブリック関数routeShutdown(Zend_Controller_Request_Abstract $ request)
    {{
        $ view = Zend_Controller_Action_HelperBroker :: getExistingHelper('ViewRenderer')-> view;
        $ activePage = $ view-> Navigation()-> findOneBy('active'、true);

        $ view-> headTitle($ activePage-> title);
        $ view-> headMeta()-> appendName('keywords'、$ activePage-> keyswords);
        $ view-> headMeta()-> appendName('description'、$ activePage-> description);
        $ view-> pageHeader = $ activePage-> pageHeader;
    }

NavigationArrayは次のようになります。

          'pages' => array(
            array('label' =>'はじめに'、
                   'コントローラー'=>'コントローラー'、
                   'アクション'=>'はじめに'、
                   'route' =>'controlleraction'、
                   'pageHeader' =>'h1か何か'、
                   'タイトル'=>'メタタイトルとして使用'
                   'キーワード'=>'メタキーワード'
                   'description' =>'meta desc'、

(レイアウト/ビューから)単純に呼び出すことができるよりもprint $ this-> pageHeader;

于 2011-04-20T19:34:10.790 に答える