2

Zend FW は初めてです。Feedparsercontroller の indexAction という名前のコントローラーで単純なフィードパーサーを作成しようとしています。しかし、解析されたフィード出力をウィジェットとしてインデックス ページに表示したいと考えています。出力/変数データをインデックスビューに移動するにはどうすればよいですか?

以下は私のパーサーです。

class FeedparserController extends Zend_Controller_Action {

public function init() {
    /* Initialize action controller here */
}

public function indexAction() {

    $feedUrl = 'http://feeds.feedburner.com/ZendScreencastsVideoTutorialsAboutTheZendPhpFrameworkForDesktop';
    $feed = Zend_Feed_Reader::import ( $feedUrl );

    $this->view->gettingStarted = array ();
    foreach ( $feed as $entry ) {
        if (array_search ( 'Getting Started', $entry->getCategories ()->getValues () )) {
            $this->view->gettingStarted [$entry->getLink ()] = $entry->getTitle ();
        }
    }
}

}

login で同じことを実装し、コントローラーも登録したいと思います。

4

3 に答える 3

2

おそらく私はあなたの質問を完全に理解していません。

ただし、ここでの最善のアプローチは、フィードに関連するビジネスロジック(取得、マッサージ、表示の設定など)を単独で担当する別のフィードコントローラーを作成することです。

次に、フィードコントローラーを呼び出すJavaScriptコードを含むパーシャルを作成します。これにより、目的のウィジェットが出力されます。これはいくつかのことを非常にうまく行います。

  1. フィード関連のロジックを一元化します
  2. フィードウィジェットを好きな場所に配置できます
  3. これはSOAアプローチであり、一般的には良いことです。

お役に立てれば!

于 2011-05-23T02:25:40.180 に答える
1

ウィジェットの最適なロジックはajaxだと思います。

いくつかの jsウィジェットライブラリ (たとえば jQuery ui など) を使用し、これらのウィジェットをいくつかの ajax クエリによってロードして、HTML を返すようにします。これにより、単純なウィジェットのリロード動作も可能になります (ページ全体をリロードする必要はありません)。

サーバー側では、コントローラー/アクションを ajax リクエスト経由で呼び出し、html スニペットのみを送信できるようにする必要があります (すべてのレイアウトを含むページ全体ではありません)。

これを行うには、ContextSwitch と AjaxContextアクション ヘルパーを確認します。FeedparserController に、XMLHHTTPRequest で /format/html を使用して index アクションを呼び出すことができること、およびこの場合、ビュー ヘルパーが index になることを伝えます。

init 部分では、indexAction を ajax モードで呼び出して、html スニペット ('html') をレンダリングできると言うでしょう:

$Ajaxcontext = $this->_helper->getHelper('AjaxContext');
$Ajaxcontext->addActionContext('index', 'html')
            ->initContext();

ビュースクリプトの名前を次のように変更するだけfeedparser/index.phtmlですfeedparser/index.ajax.phtml

indexAction では、自分の作業を行い、ビュー スクリプトで必要なものを出力します。レイアウト構成の問題について考えないでください。独自のレイアウト パーツで単独で作業し、構成は js 側で行われます。

JavaScript の部分では、ajax (jQuery では $.load または $.ajax など) を介して呼び出していることを確認してください)

私の意見では、html ではなく json 応答を使用する必要があることに注意してください。しかし、それは ajax 通信をどのように制御したいか (およびエラーやリダイレクトなどを処理するかどうかの問題であり、それは別の問題です)。

于 2011-05-23T08:46:06.960 に答える
0

ビューヘルパーはどうですか?

あなたはそれについて読むことができますZend Frameworkのヘルパーを見る

于 2011-05-23T07:25:05.583 に答える