Drupal 7 - получение веб-формы, которая попадает между 2 даты - PullRequest
0 голосов
/ 24 апреля 2018

webform_get_submissions () в Drupal 7 возвращает все представления Webform, проблема в том, что я хочу вернуть представление, которое выпадает между 2 датами

например: получать веб-формы, которые были отправлены в период с 16 апреля 2018 года по 28 апреля 2018 года.

1 Ответ

0 голосов
/ 08 августа 2018

Позвольте мне поделиться решением, которое я придумала, возможно, это поможет вам найти полноразмерное решение.

Вы можете использовать фильтр в функции webform_get_submissions не только по nid или sid но, видимо, в любой другой области.В этом случае можно использовать фильтр по полю с именем submitted:

$submissions = webform_get_submissions(array('nid' => $node->nid, "submitted" => "1503753434"));

Это приведет к получению отправки, поле которого submitted точно равно 1503753434.Чтобы получить все представления, которые, например, новее, чем 1503753434, один путь находится внутри файла includes/webform.submissions.inc для функции webform_get_submissions_query, измените эту часть:

foreach ($filters as $column => $value) {
  $pager_query->condition($column, $value);
}

на эту часть:

foreach ($filters as $column => $value) {
  if ($column == "submitted") {
    $pager_query->condition($column, $value, ">");
  } else {
    $pager_query->condition($column, $value);
  }
}

Это приведет к получению заявок, которые новее, чем 1503753434.По аналогии мы можем добавить фильтр < или любые другие фильтры.

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

...