Встроенное добавление/редактирование / удаление данных в представлениях в Drupal 7

Я пытаюсь создать тип контента (скажем метр). Каждый метр состоит из"чтения метра". Это содержание чтения метра содержит 3 поля, говорит название, ряд даты и использование. У меня есть страница панели, где я показываю все показания счетчика, связанные с родительским счетчиком. Я показал показания счетчика в табличном формате.

Я хочу, чтобы пользователь мог добавлять новые показания счетчика, не переходя на страницу создания показаний счетчика по умолчанию. Вместо вида формы по умолчанию страница, пользователь должен иметь возможность вводить данные в виде таблицы, и он должен быть автоматически сохранен в самом проекте.

Итак, я хочу, чтобы функциональность была такой: -

  1. отображение всех показаний счетчика с двумя ссылками, т. е. редактирование и удаление,
  2. когда пользователь нажимает на ссылку Редактировать, строка чтения счетчика должна стать редактируемой, и пользователь должен иметь возможность вносить изменения в одну и ту же таблицу,
  3. в нижнем колонтитуле есть должна быть ссылка для добавления нового показания счетчика, и когда пользователь нажимает на нее, новая пустая строка должна быть добавлена динамически в таблицу, и пользователь должен иметь возможность сделать новую запись в нее.

есть ли модуль в Drupal 7 для этого?? Я уже опробовал несколько модулей для этого, таких как SlickGrid, jQGrid и jEditable

любая помощь будет большое. Спасибо заранее.

2 ответов


боюсь, я не знаю о модуле, который делает все это из коробки. Но в случае, если вы продолжаете с пользовательским кодированием, вы можете посмотреть на следующее:

  1. редактировать и удалять параметры в строке в представлениях

использовать Просмотров Megarow. Для рабочего примера вы можете посмотреть, как он используется в коммерция backoffice. Обратите внимание, что вам нужно написать структуру формы (Form api ) для быстрого изменить форму в пользовательском модуле. Представления Megarow заботятся о заполнении ajax формы редактирования, ее отправке на стороне клиента и обновлении исходной строки после ответа от сервера.

  1. когда пользователь нажимает на ссылку редактирования, строка чтения счетчика должна стать редактируемой, и пользователь должен иметь возможность вносить изменения в строку за одним столом.

Views Megarow не поддерживает встроенное редактирование. Но другой модуль, предложенный @псу это делает. Его editablefields. Но у него нет кнопки edit/delete. Вы нажимаете на текст непосредственно (при условии, что пользователь имеет соответствующее разрешение на редактирование данных поля ) в представлении.

в случае, если вы собираетесь использовать editablefields, то вам нужно будет добавить еще одну кнопку удаления, которая будет перенаправлена на страницу, которая вызвала действие удаления.

Так как кнопка Удалить перенаправит на страницу подтверждения по умолчанию, вы можете хотите закодировать пользовательское действие удаления, которое может переопределить это.

  1. внизу страницы должна быть ссылка для добавления нового счетчика и когда пользователь нажимает на нее, пустую строку необходимо динамически добавляется в таблицу, и пользователь должен иметь возможность сделать новый вход в него.

Я предлагаю создать небольшую форму ajax. Создайте в нем кнопку" Добавить показания счетчика", которая при подаче создаст узел чтения счетчика в сервер. Форма ajax должна иметь родительскую информацию в скрытом поле (т. е. идентификатор счетчика). Ответ ajax для этой формы может быть другим скриптом для загрузки / обновления представления на стороне клиента.

код на стороне клиента для обновления представления можно найти в Вид Автообновление подмодуль в Views Hacks.

Если вы используете views megarow, вам нужно будет добавить еще одну функцию jquery в ajax response после обновления view-кнопка редактирования триггера. В противном случае вы можете чтобы добавить некоторые классы или темы во вновь созданные строки, чтобы привлечь их внимание.

важно, чтобы все представления обновлялись, чтобы поведение drupal было присоединено к вновь созданной записи в таблице.


Я не знаю, есть ли один модуль, который будет отвечать всем вашим потребностям, но вы можете использовать некоторые в сочетании.

просмотр массовых операций (VBO) - имеет поддержку Drupal 7

этот модуль увеличивает представления, позволяя выполнять массовые операции на отображаемых строк. Он делает это, показывая флажок перед каждый узел и добавление поля выбора, содержащего операции, которые могут быть прикладная. Drupal Core или Правила действия могут быть используемый.

editablefields - версия Drupal 7 в dev

этот модуль позволяет редактировать поля CCK на дисплее узла (например в узле / 123), а не только на страницах редактирования узла (например, node/123/edit). Он также работает в пределах просмотров и т. д. В любом месте можно выбрать " formatter, вы можете выбрать редактируемый (или нажмите, чтобы изменить).

editview - нет поддержки Drupal 7, но я думал, что упомяну об этом в случае вы можете адаптировать код самостоятельно

Editview-это плагин для модуля Views. Это позволяет создать представление, в котором узлы можно редактировать и создавать новые узлы.