2009-06-16 9 views
2

このリンクでは、http://plone.org/documentation/how-to/set-default-datetimefield-current-date-timeは新しいスキーマ属性でこれを行う方法を説明しています。私はでした私たちのシステムのすべてのコンテンツタイプはこのメソッドを使用していますが、多少作業が集中しているものを好むでしょう。何度も間違ったコンテンツタイプを変更する必要があります。コンテンツ公開の現在の日付と時刻はどのようにデフォルト設定されていますか?

答えて

3

多分js soln? id(またはこれらの一般的な属性の1つ)によってdatetimeウィジェットを検索し、ブラウザ時間に基づいて時刻をリセットするonloadイベントがあります。あなたは非あらかじめ入力に必要な属性がまだ満たされているかどうかに基づいて編集対新しいフィルタすることができ(すなわちタイトル)

+0

JavaScriptを少し使用すると、デフォルトの空のeffectiveDateフィールドは現在の日付になりますか?私はそれを試してみましょう。 – pydanny

+0

このメソッドは完全に機能しました!完全にビューベースなので、私は大量のコンテンツタイプを変更する必要はありませんでした! – pydanny

1

「公開済み」をデフォルトのワークフロー状態にすることができます。それは問題を解決するはずです。

+0

.zcml残念ながら、この解決策は受け入れられません。私の仕事は、新しいコンテンツアイテムのデフォルトの公開日を現在の日付にすることです。ワークフローの変更を作成しません。 – pydanny

2

あなたは、アダプタでこれらの型を変更するためにarchetypes.schemaextenderを使用することができます。あなたのconfigureで

<adapter 
    factory=".adapters.DefaultDateModifier" 
    name="my-package-defaultdate" 
    /> 
adapters.pyで

class DefaultDateModifier(object): 
    """DefaultDateModifier adapter 
    """ 
    # XXX optionally adapt your content items iface here 
    adapts(ATCTMixin) 
    implements(ISchemaModifier) 

    def fiddle(self, schema): 
     # TODO switch out the default_method here... 
     pass 

    def __init__(self, context): 
     self.context = context 
+0

Plone 3.xで動作する多くの(50+)Plone 2.5コンテンツタイプに対して、どのように動作しますか?多くのコンテンツタイプをすべて修正する必要がありますか?それは私がしたくないものですから。 – pydanny

+1

すべてのタイプに共通のインターフェースまたはサブクラス(たとえばATCTMixin)がある場合は、そのタイプを一度拡張するだけです。それから、すべての種類が無料で追加されます。 また、zcmlを経由してこれらのタイプにインターフェイスをタグ付けすることもできます。その後、そのインタフェースを介して拡張します。 – claytron

+0

これはすばらしい修正*ですが、我々は共通のインターフェースやサブクラスを持っていません。 – pydanny

関連する問題