チャネル形式の日付入力フィールド書式の問題

#ゴール

{exp:channel:entries} を使用して複数のエントリを表示し、各エントリ内に {exp:channel:form} を使用してエントリのコンテンツを編集できます。

#件の問題

このメソッドを使用すると、エントリの選択フィールドとチェックボックスを表示および編集できますが、ネイティブの日付タイプを使用するカスタムフィールドは機能しません。

たとえば、エントリのカスタム日付フィールドに2013-11-29 12:00 AMという値が含まれている場合、チャンネル形式の対応する日付入力フィールドに値 '1385704800'があります。

また、日付入力フィールドをクリックしても、日付ピッカーは表示されません。

この問題は、チャネルフォームがチャネルエントリタグでラップされている場合にのみ発生します。チャネルフォームで新しいエントリを作成すると、それだけで正常に動作します。

私は2.7.2を実行しています。

Edit: Here's the simplified template code:

{exp:channel:entries channel="projects" disable="pagination|categories|member_data" status="Open"}
    {exp:channel:form channel="projects" return="graphics/manager" entry_id="{entry_id}" json="yes" id="publishForm{entry_id}" include_jquery="no" preserve_checkboxes="yes" disable="categories|member_data"}
        {cf-form-proj-due format='%M. %d'} <!-- This works -->
        <input type="text" name="cf-form-proj-due" id="cf-form-proj-due" value="{cf-form-proj-due}"> <!-- This does not work -->
    {/exp:channel:form}
{/exp:channel:entries}
2
テンプレートコードを公開できますか?
追加された 著者 Nikos Steiakakis,
私は単純化されたテンプレートコードを追加しました。
追加された 著者 8bittree,

2 答え

私は何が起こっているかもしれないと思うのは、datepickerのJavaScriptがチャンネルエントリタグを通して各ループによってページに何度も追加されているということです。

チャンネル形式タグ include_assets = "no" にはJavascriptを追加できないパラメータがあります。そのため、条件付きでそれを使用して最初のエントリのアセットのみを出力することができます。次のようにコードを調整します。

{exp:channel:entries channel="projects" disable="pagination|categories|member_data" status="Open"}
    {exp:channel:form channel="projects" return="graphics/manager" entry_id="{entry_id}" json="yes" id="publishForm{entry_id}" include_jquery="no" preserve_checkboxes="yes" disable="categories|member_data" {if count > 1}include_assets="no"{/if} }
        {cf-form-proj-due format='%M. %d'} <!-- This works -->
        <input type="text" name="cf-form-proj-due" id="cf-form-proj-due" value="{cf-form-proj-due}"> <!-- This does not work -->
    {/exp:channel:form}
{/exp:channel:entries}
1
追加された
数字の文字列はUNIXのタイムスタンプです。それには何も問題ありません。フィールドに独自のjQuery UIのdatepickerスクリプトを添付していれば、それを選択して変換できるはずです。
追加された 著者 Daan,
あなたが本当に遅いホストにいない限り、それがそこに長く存在するとは想像できません。
追加された 著者 Daan,
しかし、それをフォーマットすることもできます。デートピッカーは気にしないでください。
追加された 著者 Daan,
提案していただきありがとうございます。残念ながら、その動作は変わりません。また、条件なしで include_assets = "no" を追加しようとしましたが、予想通り入力からカレンダーアイコンを削除しましたが、数値の文字列は残っていました。
追加された 著者 8bittree,
Jeremyありがとう。私はそれをやらなければならなくなるかもしれませんが、それは日付入力フィールドをクリックした後に問題を解決するように見えるだけです。 UNIXのタイムスタンプは、jQueryを使用して再フォーマットしない限り、最初から表示されます。
追加された 著者 8bittree,
ご助言ありがとうございます。ジェレミー。私は、あなたが提案したように、jQueryを使って、すべてうまくいきました。オリジナルの問題はおそらくEEバグか、私はチャンネル形式を間違って使っています。
追加された 著者 8bittree,

exp:channel:formタグでdatepicker = "no"を使用し、jquery:

$('#start_date').datepicker({changeYear: true, changeMonth: true, yearRange:'today.getFullYear():2020',dateFormat:'dd-mm-yy'}); 
0
追加された