Форма каналу з полем завантаження матриці

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 є те, що дія "delete" неможливо скасувати (просто видалити префікс "not_").

Тому просто застосувати "не", якщо користувач не вирішив видалити файл, це не правильний спосіб зробити це, оскільки сценарій передбачає, що користувач видаляє файл.

1
додано
Так, я розумію мету "not_". Це чудове рішення для цієї взаємодії. Я редагував це вручну в моїй розмальовці, щоб імітувати свій JS, щоб всі елементи форми були такими ж схожі, як і в матричній версії. Враховуючи, що це не обов'язково, я спробував видалити його зовсім, але з таким же результатом.
додано Автор Henrik Paul, джерело