マトリックスファイルアップロードフィールドを持つチャネルフォーム

EE v2.7.3 Matrix v2.5.8

私はカスタムスタイルのトンを行う必要があるチャンネル:フォームを持っているので、{field:my_matrix_field}でレンダリングされたものを使って、手動でフォームマークアップを作成しました。

この方法では、新しいファイルをアップロードしたり、既存のファイルを置き換えたりすることができません。

I can: Upload files in the control panel Upload files by using {field:my_matrix_field} inside the form Upload files by using my own markup tied to a single, non-matrix file field. Post & updated data in text fields within the matrix field, using my own markup.

私はできない:  自分のマークアップを使ってファイルを行列フィールドにアップロードします。

{field:my_matrix_field}によって作成されたマークアップ:

<input type="file" name="cb-video[row_id_22][col_id_7]" class="file-chooser">
<input type="hidden" name="cb-video[row_id_22][col_id_7][existing]" value="logo.jpg|3" class="existing_file">

私が作成したマークアップ:

<input type="file" name="cb-video[row_id_22][col_id_7]" class="file-chooser">
<input type="hidden" name="not_cb-video[row_id_22][col_id_7][existing]" value="logo.jpg|3" class="existing_file">

注意:私は、隠しフィールドの名前attrを "not_"を先頭に付けて変更します。これは、Matrix JSが編集時にフィールドをファイルするために行う処理と似ています。 {field:my_matrix_field}バージョンはデータを正常に投稿し、マークアップは表示されません。

私は追加の隠しフィールドやJSファイルが含まれている必要がありますか?私はそれが同じである限り、手動で作成されたマークアップでうまくいくように感じます。これは他のフィールド型と同様に機能します。

ありがとう!

1
まったく同じマークアップを作成している場合は、何がポイントですか? {field:my_matrix_field}が作成するマークアップのスタイルを変更してみませんか?
追加された 著者 David A Gibson,
私はフォームフィールドをここに含めただけなので。マトリックスフィールドに付随するマークアップの残りの部分はテーブルベースであり、クライアントが必要とするようなスタイルにはなりません。ファイルフィールドだけではなく、すべての機能をすばらしく動作させます。
追加された 著者 Henrik Paul,

1 答え

私は以前JSのその部分を書いていましたが、メモリが使えば、 "ファイルを削除"リンクがクリックされたときだけ、 "not_"接頭辞が適用されていました。それは、Matrix PHPの部分が探していたファイルを見つけられず、それを削除するように行われました。このJS操作の理由は、「削除」アクションが元に戻すことができるようにすることです(単に「not_」接頭辞を削除することによって)。

したがって、ユーザがファイルを削除することを選択しないで「not」を適用するだけでは、これを行う正しい方法ではありません。スクリプトは、ファイルがユーザによって削除されたと見なします。

1
追加された
はい、私は "not_"の目的を理解しています。この相互作用のための素晴らしいソリューションです。あなたのJSを模倣するために私のマークアップで手動で編集しました。すべてのフォーム要素をマトリックス版と同じようにするためです。それが必要ではないことを考えると、私はそれを完全に取り除こうとしましたが、同じ結果でした。
追加された 著者 Henrik Paul,