2017-11-28 4 views
0

基本的に私はTypo3拡張モデルでバックエンドに表示されているプロパティが必要です。 BEユーザが直接変更することはできません。多かれ少なかれUidプロパティのように(各モデルのgetUid()と同じように、プロパティにアクセスできるはずですが、このプロパティを設定してもらいたい)。Typo3 extension - 各レコードのUidのようにBEのプロパティは見えないはずです

基本的にBEユーザーがレコードを編集(作成または作成)するたびに、プロパティ(bool)をtrueに変更する必要がありますが、Schedulerタスクが実行されるたびにこのプロパティをfalseに設定します。どのように私はそのようなプロパティを定義するのですか?

+0

コンテンツが編集されているかどうかを判断する方法を実装したいと思われます。おそらくこれを行う簡単な方法があります。あなたが本当に欲しがっていることを言うなら(新しい質問ではより良い)、あなたはもっとポイントに近い答えを得るかもしれません。 – wirap

+0

さて、フックのおかげでレコードが編集されたときはいつでも、 "編集済み"というプロパティを1に変更することができました...この時点ではすべてがスムーズに進みましたが、神のためにはフィールドを不可視にすることはできませんレコードを作成または編集している間は、それが必要な最後のステップでしょう。 – Mondblut

+0

問題解決済み... TCAファイルのこのプロパティの「タイプ」を「パススルー」に変更しました。そうすれば、フィールドはBEには表示されませんが、プロパティはフック(1)とスケジューラタスク(0)に対応するセッターで実行された後で変更することができます。面白いことに、PHPMyAdminでは "編集済み"のデータ型をブール値に変更できません。自動的にtinyintが使用されます。たとえそれが私のために働くとしても、それは可能な限り「エレガント」ではありません。 – Mondblut

答えて

1

まず:あなたはとてもBEのユーザーは、デフォルトでそれを編集することはできません、読み取り専用としてフィールドを定義することができます。

$GLOBALS['TCA'][$yourTable]['columns'][$yourField]['config']['readonly'] = 1; 

あなたはそれを隠したい場合は、単に「showRecordFieldList」のフィールドが含まれていません

$GLOBALS['TCA'][$yourTable]['interface']['showRecordFieldList'] = 'all visible fields or palettes; 

第二(または任意のパレットを挙げる):あなたはとてもレコードに何らかの変更がtrueにあなたのフィールドを設定しますDataHandlerのためのフックを記述する必要があります。

+1

ありがとうございました。しかし、それは私はフックと正式なtypo3のドキュメントで動作するように考えていないので、勉強する必要があるのはずっと残っているようですが、typo3の新人にそれを理解させるのに殆ど十分ではありません。私はこれが怠け者だと知っていますが、ステップフックのチュートリアルによるステップへのリンクはありますか?私はそれの基本的な概念を理解していないように思えるので、あらかじめ定義されたtypo3メソッドで独自にコードを実装して実行することができます。でもどこから始めるの?何も思いつきません。 – Mondblut

+0

[この質問](https://stackoverflow.com/questions/13526428/typo3-hook-after-creating-or-editing-page)または[このウェブサイト](https:// daniel- siepmann.de/Posts/2016/07/21-how-to-find-typo3-hook.html) –

+0

長い試行錯誤の後、私はあなたの助けを借りて私の仕事を達成しました。どうもありがとう。 – Mondblut

関連する問題