0

製品データベース エクステンションがあります。Extbase + Fluidに基づく。すべてが正常に機能していますが、アクセスが制限されているという問題があります。

一部のユーザー向けの製品のみがあります。グループを設定し、誰かがこの製品への直接リンクを使用すると、ログインしていない場合にログイン サイトが表示されるはずです。

サイトでは機能していますが、製品では次のことが得られます。

「値は「xx」型でなければなりませんが、「NULL」型でした。」エラー

私もrealUrlを使用しています。

これenable404forInvalidAliasは私の拡張機能に設定されているため、存在しない製品呼び出しは 404 ページにつながりますが、残念なことに、制限されたアクセスの質問を今まで処理できませんでした。

バージョン: 4.5.22 ソリューションは、メジャー アップデートなしで動作するはずです。

アップデート:

showActionの製品では、= NULLデフォルト値で定義されています。

Fluid テンプレートには、次のような条件が既にあります。

<f:if condition="{product}">
...
</f:if>

この行からのエラー メッセージ:

Tx_Extbase_MVC_Exception_InvalidArgumentValue thrown in file
\typo3\sysext\extbase\Classes\MVC\Controller\Argument.php 
in line 389.

私はいくつかのデバッグを行い、showAction 全体が実行されました。

4

1 に答える 1

2

製品のインスタンスを許可しないようにアクションを変更し、流体内の存在を確認できます。

public function showAction(Tx_YourExt_Domain_Model_Product $product = NULL) ..

流体中:

<f:if condition="{product}">
   <f:then> <!-- show your product --> </f:then>
   <f:else> 
      <!-- show a login form, e.g. something you have in typoscript -->
   </f:else>
</f:if>

これの欠点は、適切な 404 を簡単に処理できないことです。

ifAuthenticated viewhelperもあり、上記と組み合わせて、適切な 404 も簡単に処理できるはずです。ただし、これが導入された TYPO3 のバージョンはわかりません。

于 2013-09-23T17:39:22.963 に答える