diff --git a/web/themes/custom/reha/dist/css/bundle.css b/web/themes/custom/reha/dist/css/bundle.css
index e0445ce..2db32cd 100644
--- a/web/themes/custom/reha/dist/css/bundle.css
+++ b/web/themes/custom/reha/dist/css/bundle.css
@@ -343,6 +343,11 @@ header .region-header #block-reha-navigationprincipale ul {
flex-direction: row;
justify-content: space-evenly;
}
+@media (max-width: 1400px) {
+ header .region-header #block-reha-navigationprincipale ul {
+ flex-direction: column;
+ }
+}
header .region-header #block-reha-navigationprincipale ul a {
font-weight: 800;
}
@@ -1998,4 +2003,93 @@ html.js body.node-type-operation.node-id-7 div.dialog-off-canvas-main-canvas div
.page-node-site .block-region-second ul.links::after {
content: url("../../dist/images/noun-arrow-1569918-black.svg");
padding-left: 0.5rem;
+}
+
+.page-ressources .view-ressources {
+ flex-direction: column;
+ padding: 5rem;
+}
+.page-ressources .view-ressources #views-exposed-form-ressources-page-1 {
+ width: 100%;
+ margin: auto;
+ display: flex;
+ flex-direction: column;
+ padding: 1rem;
+}
+.page-ressources .view-ressources #views-exposed-form-ressources-page-1::before {
+ content: "FILTRER :";
+}
+.page-ressources .view-ressources #views-exposed-form-ressources-page-1 .form-item-field-type-de-ressource-target-id {
+ order: 1;
+}
+.page-ressources .view-ressources #views-exposed-form-ressources-page-1 .js-form-item-field-site-target-id {
+ order: 2;
+}
+.page-ressources .view-ressources #views-exposed-form-ressources-page-1 #edit-actions {
+ order: 3;
+}
+.page-ressources .view-ressources .views-row .node-type-ressource {
+ display: flex;
+ flex-direction: column;
+}
+.page-ressources .view-ressources .views-row .node-type-ressource .field--name-field-image {
+ order: 1;
+ max-width: 100%;
+}
+.page-ressources .view-ressources .views-row .node-type-ressource .field--name-field-image img {
+ height: 200px;
+ width: auto;
+}
+.page-ressources .view-ressources .views-row .node-type-ressource .filtered-content {
+ display: flex;
+ flex-direction: column;
+}
+.page-ressources .view-ressources .views-row .node-type-ressource .filtered-content h2 {
+ order: 2;
+ margin: 0;
+ font-size: 1.5rem;
+ font-weight: 600;
+}
+.page-ressources .view-ressources .views-row .node-type-ressource .filtered-content .field--name-field-sous-titre {
+ order: 3;
+ font-size: 1.3rem;
+}
+.page-ressources .view-ressources .views-row .node-type-ressource .filtered-content .field--name-field-auteur {
+ order: 4;
+ font-weight: 900;
+ padding-top: 1rem;
+}
+.page-ressources .view-ressources .views-row .node-type-ressource .filtered-content .field--name-field-type-de-ressource {
+ order: 1;
+ text-transform: uppercase;
+ font-size: 1.2rem;
+}
+.page-ressources .view-ressources .views-row .node-type-ressource .filtered-content .field--name-field-site {
+ order: 5;
+}
+.page-ressources .view-ressources .views-row .node-type-ressource .filtered-content ul.links {
+ order: 6;
+ display: none;
+}
+
+.page-node-site .node-type-ressource {
+ width: 80%;
+ margin: auto;
+ display: flex;
+}
+.page-node-site .node-type-ressource .image-site {
+ width: 40%;
+ height: fit-content;
+ margin-right: 2rem;
+}
+.page-node-site .node-type-ressource .image-site img {
+ width: 100%;
+ height: auto;
+}
+.page-node-site .node-type-ressource .filtered-content {
+ width: 40%;
+}
+.page-node-site .node-type-ressource .body-content {
+ width: 100%;
+ margin-top: 2rem;
}
\ No newline at end of file
diff --git a/web/themes/custom/reha/reha.theme b/web/themes/custom/reha/reha.theme
index 23c3d5e..da431b7 100644
--- a/web/themes/custom/reha/reha.theme
+++ b/web/themes/custom/reha/reha.theme
@@ -27,30 +27,43 @@ function reha_preprocess_html(&$variables) {
/**
* Implements hook_preprocess_HOOK() for node.html.twig.
*/
-function reha_preprocess_node(&$variables) {
- $node = &$variables['node'];
- $variables['attributes']['class'][] = 'node-type-' . $node->gettype();
- if ($variables['node']->getType() == 'site') {
- $fields_to_exclude = [
- 'field_image', // Remplacez par le nom machine exact de votre champ image
- ];
- $filtered_content = [];
- $image_field_content = '';
+ function reha_preprocess_node(&$variables) {
+ $node = &$variables['node'];
+ $variables['attributes']['class'][] = 'node-type-' . $node->gettype();
+
+ if ($node->getType() == 'site' || $node->getType() == 'ressource') {
+ $fields_to_exclude = [
+ 'field_image', // Remplacez par le nom machine exact de votre champ image
+ ];
+
+ $filtered_content = [];
+ $image_field_content = '';
+ $body_field_content = '';
+ $files_field_content = '';
+ $liens_field_content = '';
- foreach ($variables['content'] as $field_name => $field_content) {
- if (!in_array($field_name, $fields_to_exclude)) {
- $filtered_content[$field_name] = $field_content;
- } else {
- $image_field_content = $field_content;
- }
+ foreach ($variables['content'] as $field_name => $field_content) {
+ if ($field_name == 'body') {
+ $body_field_content = $field_content;
+ } elseif ($field_name == 'field-fichiers') {
+ $files_field_content = $field_content;
+ } elseif ($field_name == 'field-liens') {
+ $liens_field_content = $field_content;
+ } elseif (!in_array($field_name, $fields_to_exclude)) {
+ $filtered_content[$field_name] = $field_content;
+ } else {
+ $image_field_content = $field_content;
+ }
+ }
+
+ $variables['filtered_content'] = $filtered_content;
+ $variables['image_field_content'] = $image_field_content;
+ $variables['body_field_content'] = $body_field_content;
+ $variables['files_field_content'] = $files_field_content;
+ $variables['liens_field_content'] = $liens_field_content;
}
-
- $variables['filtered_content'] = $filtered_content;
- $variables['image_field_content'] = $image_field_content;
- }
-
-}
+ }
/**
* Implements hook_preprocess_HOOK() for page templates.
diff --git a/web/themes/custom/reha/scss/pages/node-ressource.scss b/web/themes/custom/reha/scss/pages/node-ressource.scss
new file mode 100644
index 0000000..7869763
--- /dev/null
+++ b/web/themes/custom/reha/scss/pages/node-ressource.scss
@@ -0,0 +1,35 @@
+.page-node-site{
+ .node-type-ressource{
+ width: 80%;
+ margin: auto;
+ display: flex;
+
+
+ .image-site{
+ width: 40%;
+ height: fit-content;
+ margin-right: 2rem;
+ img{
+ width: 100%;
+ height: auto;
+ }
+ }
+ .filtered-content{
+ width: 40%;
+ .field--name-field-type-de-ressource,
+ .field--name-field-sous-titre,
+ .field--name-field-auteur,
+ .field--name-field-site{
+
+ }
+ .field--name-body{
+
+
+ }
+ }
+ .body-content {
+ width: 100%;
+ margin-top: 2rem;
+ }
+ }
+}
\ No newline at end of file
diff --git a/web/themes/custom/reha/scss/pages/ressources.scss b/web/themes/custom/reha/scss/pages/ressources.scss
new file mode 100644
index 0000000..9cdc899
--- /dev/null
+++ b/web/themes/custom/reha/scss/pages/ressources.scss
@@ -0,0 +1,81 @@
+
+.page-ressources{
+ .view-ressources{
+ flex-direction: column;
+ padding: 5rem;
+
+ #views-exposed-form-ressources-page-1{
+ width: 100%;
+ margin: auto;
+ display: flex;
+ flex-direction: column;
+ padding: 1rem;
+ &::before{
+ content: 'FILTRER :';
+ }
+
+ .form-item-field-type-de-ressource-target-id{
+ order: 1;
+ }
+ .js-form-item-field-site-target-id{
+ order: 2;
+ }
+ #edit-actions{
+ order: 3;
+ }
+ }
+ .views-row{
+ .node-type-ressource{
+ display: flex;
+ flex-direction: column;
+
+ .field--name-field-image{
+ order: 1;
+ max-width: 100%;
+ img{
+ height: 200px;
+ width: auto;
+ }
+ }
+ .filtered-content{
+ display: flex;
+ flex-direction: column;
+ h2{
+ order: 2;
+ margin: 0;
+ font-size: 1.5rem;
+ font-weight: 600;
+ }
+ .field--name-field-sous-titre {
+ order: 3;
+ font-size: 1.3rem;
+ // line-height: 0.3rem;
+ }
+ .field--name-field-auteur{
+ order: 4;
+ font-weight: 900;
+ padding-top: 1rem;
+ }
+
+ .field--name-field-type-de-ressource{
+ order: 1;
+ text-transform: uppercase;
+ font-size: 1.2rem;
+ }
+ .field--name-field-site{
+ order: 5;
+ }
+ ul.links{
+ order: 6;
+ display: none;
+ }
+ }
+
+
+ }
+
+ }
+
+ }
+}
+
diff --git a/web/themes/custom/reha/scss/partials/_header.scss b/web/themes/custom/reha/scss/partials/_header.scss
index 8589073..a41d831 100644
--- a/web/themes/custom/reha/scss/partials/_header.scss
+++ b/web/themes/custom/reha/scss/partials/_header.scss
@@ -71,10 +71,12 @@ header{
#block-reha-navigationprincipale {
grid-column: 3 / span 5 ;
ul{
-
display: flex;
flex-direction: row;
justify-content: space-evenly;
+ @media (max-width:1400px) {
+ flex-direction: column;
+ }
a{
font-weight: 800;
&.is-active{
diff --git a/web/themes/custom/reha/scss/reha.scss b/web/themes/custom/reha/scss/reha.scss
index a4d794d..216a57f 100644
--- a/web/themes/custom/reha/scss/reha.scss
+++ b/web/themes/custom/reha/scss/reha.scss
@@ -38,3 +38,6 @@
@import "pages/home/home-view-presentation";
@import "pages/le-programme";
@import "pages/node-site";
+@import "pages/ressources";
+@import "pages/node-ressource";
+
diff --git a/web/themes/custom/reha/templates/node--ressource.html.twig b/web/themes/custom/reha/templates/node--ressource.html.twig
new file mode 100644
index 0000000..2acc4a5
--- /dev/null
+++ b/web/themes/custom/reha/templates/node--ressource.html.twig
@@ -0,0 +1,125 @@
+{#
+/**
+ * @file
+ * Default theme implementation to display a node.
+ *
+ * Available variables:
+ * - node: The node entity with limited access to object properties and methods.
+ * Only method names starting with "get", "has", or "is" and a few common
+ * methods such as "id", "label", and "bundle" are available. For example:
+ * - node.getCreatedTime() will return the node creation timestamp.
+ * - node.hasField('field_example') returns TRUE if the node bundle includes
+ * field_example. (This does not indicate the presence of a value in this
+ * field.)
+ * - node.isPublished() will return whether the node is published or not.
+ * Calling other methods, such as node.delete(), will result in an exception.
+ * See \Drupal\node\Entity\Node for a full list of public properties and
+ * methods for the node object.
+ * - label: (optional) The title of the node.
+ * - content: All node items. Use {{ content }} to print them all,
+ * or print a subset such as {{ content.field_example }}. Use
+ * {{ content|without('field_example') }} to temporarily suppress the printing
+ * of a given child element.
+ * - author_picture: The node author user entity, rendered using the "compact"
+ * view mode.
+ * - metadata: Metadata for this node.
+ * - date: (optional) Themed creation date field.
+ * - author_name: (optional) Themed author name field.
+ * - url: Direct URL of the current node.
+ * - display_submitted: Whether submission information should be displayed.
+ * - attributes: HTML attributes for the containing element.
+ * The attributes.class element may contain one or more of the following
+ * classes:
+ * - node: The current template type (also known as a "theming hook").
+ * - node--type-[type]: The current node type. For example, if the node is an
+ * "Article" it would result in "node--type-article". Note that the machine
+ * name will often be in a short form of the human readable label.
+ * - node--view-mode-[view_mode]: The View Mode of the node; for example, a
+ * teaser would result in: "node--view-mode-teaser", and
+ * full: "node--view-mode-full".
+ * The following are controlled through the node publishing options.
+ * - node--promoted: Appears on nodes promoted to the front page.
+ * - node--sticky: Appears on nodes ordered above other non-sticky nodes in
+ * teaser listings.
+ * - node--unpublished: Appears on unpublished nodes visible only to site
+ * admins.
+ * - title_attributes: Same as attributes, except applied to the main title
+ * tag that appears in the template.
+ * - content_attributes: Same as attributes, except applied to the main
+ * content tag that appears in the template.
+ * - author_attributes: Same as attributes, except applied to the author of
+ * the node tag that appears in the template.
+ * - title_prefix: Additional output populated by modules, intended to be
+ * displayed in front of the main title tag that appears in the template.
+ * - title_suffix: Additional output populated by modules, intended to be
+ * displayed after the main title tag that appears in the template.
+ * - view_mode: View mode; for example, "teaser" or "full".
+ * - teaser: Flag for the teaser state. Will be true if view_mode is 'teaser'.
+ * - page: Flag for the full page state. Will be true if view_mode is 'full'.
+ * - readmore: Flag for more state. Will be true if the teaser content of the
+ * node cannot hold the main body content.
+ * - logged_in: Flag for authenticated user status. Will be true when the
+ * current user is a logged-in member.
+ * - is_admin: Flag for admin user status. Will be true when the current user
+ * is an administrator.
+ *
+ * @see template_preprocess_node()
+ *
+ * @ingroup themeable
+ */
+#}
+
+ {{ label }}
+
+ {% endif %}
+
+ {% for field_name, field_content in filtered_content %}
+ {{ field_content }}
+ {% endfor %}
+