Рейтинг:0

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

флаг my

Мы делаем новый сайт из старого проекта Drupal 7. Для каждого элемента в представлении мне нужно проверить, существует ли файл, чтобы включить или отключить ссылку. В Drupal 7 мы использовали file_exists() в шаблоне PHP, но мы больше не можем делать это с Twig.

Я решил использовать функцию template_preprocess_views_view_unformatted(&$variables), но мне не удалось правильно установить переменную.

функция bootstrap5_preprocess_views_view_unformatted(&$variables) {
    $variables['#cache']['max-age'] = 0;

    $id_view = $variables['view']->id();
    // эхо($id_view);
    переключатель ($id_view) {
        случай 'recent_incidents_block':
            foreach ($variables['rows'] as $key => &$value) {
                
                // $value['content']['#row']->file_exists= "test";
                $variables['rows'][$key]['file_exists'] = "тест";
            }
        сломать;
    }
}

Затем в шаблоне представления:

{% для строки в строках %}
  {% set file_exists = row.file_exists.value %}

Но с {{file_exists}} ничего не печатается.

флаг ru
Строка типа `"test"` является примитивным скалярным типом данных, она не имеет подсвойств или ключей, таких как `.value`. Но что бы вы ни пытались здесь, вы почти наверняка делаете это странно, массив рендеринга `{{ content }}` Drupal/Twig поддерживает пустые значения, Twig имеет пустые операторы для логики, и вы можете детализировать ссылки на объекты в Twig, добавляя ` .entity` в поле ER.
sonfd avatar
флаг in
Это управляемый файл drupal? Можете ли вы просто добавить поле в свое представление в пользовательском интерфейсе?
No Sssweat avatar
флаг ua
Попробуйте `file_exits = row.file_exists` без значения.

Ответить или комментировать

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