0

以下は、config フォルダー内の xml ファイルで使用されるイベント ハンドラーです。

<event-handler name="survey.completioninf">
    <broadcasts>
        <message name="checkLogin">
            <argument name="role" value="suadmin,manager" />
        </message>
        <message name="getPrograms" />
    </broadcasts> 
    <results>
        <result name="NotLoggedIn" do="user.login" redirect="true" />
        <result name="NotAuthorized" do="user.notauthorized" redirect="true" />
        <result do="view.template" />
    </results>
    <views>
        <include name="body" template="survey/completioninf.cfm" />
    </views>
</event-handler>

結果の値または属性に基づいて別のビュー ファイルを含める方法はありますか?

イベント名の一貫性を保つ必要があります。

4

1 に答える 1

1

必要なインクルードごとに (結果の値または属性に基づいて) 新しい結果を作成できます。redirect="false" を設定すると、survey.completioninf イベント名の下に残ります。基本的に、このイベントはフィルターになり、適切なインクルードにサイレントにリダイレクトされます。

<event-handler name="survey.completioninf">
    <broadcasts>
        <message name="checkLogin">
            <argument name="role" value="suadmin,manager" />
        </message>
        <message name="getPrograms" />
    </broadcasts> 
    <results>
        <result name="NotLoggedIn" do="user.login" redirect="true" />
        <result name="NotAuthorized" do="user.notauthorized" redirect="true" />
        <!-- Add your new results here and redirect to the desired events -->
        <result name="SurveyIsNotComplete" do="survey.ContinueSurvey" redirect="false">
        <result name="SurveyIsComplete" do="survey.CompletedSurvey" redirect="false">
    </results>
</event-handler>

<!-- You will need to create new events to handle these results -->
<event-handler name="survey.CompletedSurvey">
    <broadcasts>
        <message name="checkLogin">
            <argument name="role" value="suadmin,manager" />
        </message>
        <message name="getPrograms" />
    </broadcasts> 
    <results>
        <result name="NotLoggedIn" do="user.login" redirect="true" />
        <result name="NotAuthorized" do="user.notauthorized" redirect="true" />
        <result do="view.template" />
    </results>
    <views>
        <include name="body" template="survey/completioninf.cfm" />
    </views>
</event-handler>

<event-handler name="survey.ContinueSurvey">
    <broadcasts>
        <message name="checkLogin">
            <argument name="role" value="suadmin,manager" />
        </message>
        <message name="getPrograms" />
    </broadcasts> 
    <results>
        <result name="NotLoggedIn" do="user.login" redirect="true" />
        <result name="NotAuthorized" do="user.notauthorized" redirect="true" />
        <result do="view.template" />
    </results>
    <views>
        <include name="body" template="survey/continueSurvey.cfm" />
    </views>
</event-handler>
于 2014-07-18T15:17:55.933 に答える