diff --git a/web/sites/development.services.yml b/web/sites/development.services.yml index d2857c66..695ae8bb 100644 --- a/web/sites/development.services.yml +++ b/web/sites/development.services.yml @@ -4,6 +4,46 @@ # 'example.settings.local.php' file, which sits next to this file. parameters: http.response.debug_cacheability_headers: true + twig.config: + # Twig debugging: + # + # When debugging is enabled: + # - The markup of each Twig template is surrounded by HTML comments that + # contain theming information, such as template file name suggestions. + # - Note that this debugging markup will cause automated tests that directly + # check rendered HTML to fail. When running automated tests, 'debug' + # should be set to FALSE. + # - The dump() function can be used in Twig templates to output information + # about template variables. + # - Twig templates are automatically recompiled whenever the source code + # changes (see auto_reload below). + # + # For more information about debugging Twig templates, see + # https://www.drupal.org/node/1906392. + # + # Not recommended in production environments + # @default false + debug: true + # Twig auto-reload: + # + # Automatically recompile Twig templates whenever the source code changes. + # If you don't provide a value for auto_reload, it will be determined + # based on the value of debug. + # + # Not recommended in production environments + # @default null + auto_reload: null + # Twig cache: + # + # By default, Twig templates will be compiled and stored in the filesystem + # to increase performance. Disabling the Twig cache will recompile the + # templates from source each time they are used. In most cases the + # auto_reload setting above should be enabled rather than disabling the + # Twig cache. + # + # Not recommended in production environments + # @default true + cache: false services: cache.backend.null: class: Drupal\Core\Cache\NullBackendFactory diff --git a/web/themes/custom/popsu/popsu.theme b/web/themes/custom/popsu/popsu.theme index 839c3bb9..9d6e72fe 100644 --- a/web/themes/custom/popsu/popsu.theme +++ b/web/themes/custom/popsu/popsu.theme @@ -6,13 +6,6 @@ use Drupal\Core\Template\Attribute; -/* implements template_preprocess_views_view() */ - -// function popsu_preprocess_views_view(&$vars) { -// $view = $vars['view']; -// kint($view);die(); -// } - /* implements template_preprocess_views_view_unformatted() */ @@ -42,19 +35,33 @@ function popsu_preprocess_region(&$variables) { /** - * Implements hook_preprocess_block(). + * Implements hook_preprocess_page(). */ -function popsu_preprocess_views_view_fields(&$variables){ - - $entity = $variables['row']->_entity; - if($entity->hasField('field_programme')){ - $target_id = $entity->get('field_programme')->getString(); - //kint($variables['row']);die(); - // $variables['row']['attributes'] = new Attribute(); - // $variables['row']['attributes']->addClass("pouet-node-".$target_id); +// function popsu_preprocess_page(&$variables){ +// $rows = $variables['rows']; +// } + +function popsu_preprocess_views_view_grid(&$variables){ + $rows = $variables['rows']; + + foreach ($rows as $id => $row) { + + $entity = $row["#row"]->_entity; + $prog_id = $entity->get('field_programme')->getString(); + + // une fois qu'on obtient l'id du programme + // on crée une class pour chaque colonne + $options = $row["#view"]->style_plugin->options; + //V0 + $options['col_class_custom'] = "popsu-node-".$prog_id; + + //notes + // $attrs['class'] = "popsu-node-".$prog_id; + // $rows[$id]["#options"]["col_class_custom"] = new Attribute($attrs); + //$rows[$id]["#options"]["col_class_custom"] = 'class'; + } - } function popsu_preprocess_views_view_field(&$variables){ diff --git a/web/themes/custom/popsu/templates/views/views-view-grid.html.twig b/web/themes/custom/popsu/templates/views/views-view-grid.html.twig new file mode 100644 index 00000000..602c8a90 --- /dev/null +++ b/web/themes/custom/popsu/templates/views/views-view-grid.html.twig @@ -0,0 +1,78 @@ +{# +/** + * @file + * Default theme implementation for views to display rows in a grid. + * + * Available variables: + * - attributes: HTML attributes for the wrapping element. + * - title: The title of this group of rows. + * - view: The view object. + * - rows: The rendered view results. + * - options: The view plugin style options. + * - row_class_default: A flag indicating whether default classes should be + * used on rows. + * - col_class_default: A flag indicating whether default classes should be + * used on columns. + * - items: A list of grid items. Each item contains a list of rows or columns. + * The order in what comes first (row or column) depends on which alignment + * type is chosen (horizontal or vertical). + * - attributes: HTML attributes for each row or column. + * - content: A list of columns or rows. Each row or column contains: + * - attributes: HTML attributes for each row or column. + * - content: The row or column contents. + * + * @see template_preprocess_views_view_grid() + * + * @ingroup themeable + */ +#} +{% + set classes = [ + 'views-view-grid', + options.alignment, + 'cols-' ~ options.columns, + 'clearfix', + ] +%} +{% if options.row_class_default %} + {% + set row_classes = [ + 'views-row', + options.alignment == 'horizontal' ? 'clearfix', + ] + %} +{% endif %} +{% if options.col_class_default %} + {% + set col_classes = [ + 'views-col', + options.alignment == 'vertical' ? 'clearfix', + ] + %} +{% endif %} +{% if title %} +

{{ title }}

+{% endif %} + + {% if options.alignment == 'horizontal' %} + {% for row in items %} + + {% for column in row.content %} + + {{- column.content -}} + + {% endfor %} + + {% endfor %} + {% else %} + {% for column in items %} + + {% for row in column.content %} + + {{- row.content -}} + + {% endfor %} + + {% endfor %} + {% endif %} +