рУССКИЙ
ИДИ НАХУЙ
Drupal 9 image field migration

Данная проблема относится к одному из сайтов с которым я работал, где использовалось кастомное поле для сохранения телефона. И в нем были пробелы. Одно из решений было удаление пробелов во время сохранения или пройтись во всем записям в БД и удалить.
Но иногда лучше не трогать то что работает.

Было дано задание добавить в текущую вьюху поиск по полю Телефон. Я не нашел готового решения для вьюх и написал кастом с помощью хука hook_views_query_alter().

Для примера, поле телефона имеет значение "+354 566 32 56" и нужно отфильтровать данный номер по строке "6632".
Следующий код вам в этом поможет:

/**
 * Implements hook_views_query_alter().
 *
 * @param ViewExecutable $view
 * @param Sql $query
 */
function custommodule_views_query_alter(ViewExecutable $view, Sql $query) {
  if ($view->id() == 'commerce_orders' && $view->current_display == 'orders') {
    // Traverse through the 'where' part of the query.
    foreach ($query->where as &$condition_group) {
      foreach ($condition_group['conditions'] as &$condition) {
        // Replace whitespaces from phone field.
        if ($condition['operator'] == 'formula' && !empty(strpos($condition['field'], 'field_phone_number'))) {
          $condition['field'] = preg_replace(['/CONCAT_WS/','/[)]/'], ['REPLACE(CONCAT_WS', "), ' ', '')"], $condition['field'] );
        }
      }
    }
  }
}

Добавить комментарий

Содержимое данного поля является приватным и не предназначено для показа.
  • HTML-теги не обрабатываются и показываются как обычный текст
рУССКИЙ
ИДИ НАХУЙ