1

次のように zend フレームワークにカスタム ビュー ヘルパーを追加したい:

  1. このコードをapplication.iniに配置しました:

    includePaths.library = APPLICATION_PATH "/../library"
    を作成し、myproject ルートにライブラリ ディレクトリを作成します 。

  2. ライブラリ ディレクトリにビュー ヘルパー TabEntry.php を作成します。

    class Zend_View_Helper_TabEntry extends Zend_View_Helper_Abstract {

    public function TabEntry() {

    }
    }

  3. ライブラリ ディレクトリに別のビュー ヘルパー TabEntries.php を作成します。

    class Zend_View_Helper_TabEntries extends Zend_View_Helper_TabEntry {

    public function TabEntries() {

    }
    }

  4. 私のphtmlで $this->TabEntries() を使用すると、エラーが発生します
  5. Bootstrap.php に次のコードを追加します。
    $view->addHelperPath('MyView/Helpers', "library_MyView_Helpers");
    $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('ViewRenderer'); $viewRenderer->setView($view);
4

4 に答える 4

2

ZF コーディング アプリケーション構造によると、正しいバージョンは次のようになります。

application.ini 内:

resources.view.helperPath.Your_View_Helper = "Your/View/Helper"

次に、ヘルパー: (別の抽象クラスが必要な理由がわからない):

// library/Your/View/Helper/TabEntry/Abstract.php

class Your_View_Helper_TabEntry_Abstract extends Zend_View_Helper_Abstract {
    public function tabEntry($param1, $param2) {} // note the lower case here
}

// library/Your/View/Helper/TabEntries.php

class Your_View_Helper_TabEntries extends Your_View_Helper_TabEntry_Abstract {
    public function tabEntries($param1, $param2) {...} // note the lower case
}

ビューで:

$this->tabEntries();

重要: call_user_funcLinux ファイルシステムでは大文字と小文字が区別されます。

于 2010-09-18T15:22:47.530 に答える
0

Zend フレームワーク/場所/var/www/html/you

1)you/application/views/helpers/<Magic is here>

2) 「Stuff.php」というこのファイルを上記のパスに配置します。

<?php
class Zend_View_Helper_Stuff extends Zend_View_Helper_Abstract 
{
  public function stuff()
  {
    $output = "IK BEN View Helper en DAN????";
    return htmlspecialchars($output);    
  }
}

?>

3) you/application/views/scripts/index/index.phtml に移動します <?= $this->stuff(); ?>:)

4) 出力は $output になります。

于 2011-10-26T19:42:21.070 に答える
0

ブートストラップにあるコードを再確認してください

Bootstrap.php にいくつかのコードを追加します。

$view->addHelperPath('MyView/Helpers', "library_MyView_Helpers");
$viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('ViewRenderer');
$viewRenderer->setView($view);

もっと似てるはず

$view->addHelperPath('My/View/Helpers', "My_View_Helpers");
$viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('ViewRenderer');
$viewRenderer->setView($view);

私の側では、次を使用します。

// Add path to project view helpers
Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer')->initView();
Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer')->view
    ->addHelperPath('Julien/View/Helper', 'Julien_View_Helper')
    ;

そのようなクラスがありますJulien/View/Helper/Percent.php

<?php
class Julien_View_Helper_Percent extends Zend_View_Helper_Abstract {

    public function percent ( $percentage ) {
        return $percentage * 100 . '%';
    }
}

次に、ビューを呼び出します

<?= $this->percent(0.255) ?>

出力します

25.5%

私のディレクトリレイアウトは次のようになります

project/
    lib/
        Julien/
            View/
                Helper/
                     Percent.php
        Zend/
    modules/
public/
   .htaccess 
   index.php
于 2010-09-27T18:32:45.247 に答える