statics can be promoted to front page (for app header menu)

This commit is contained in:
Bachir Soussi Chiadmi 2023-07-06 10:54:44 +02:00
parent f1ae451352
commit 1735f8f6ac
8 changed files with 164 additions and 48 deletions

View File

@ -6,8 +6,59 @@ dependencies:
- field.field.node.static.body
- node.type.static
module:
- path
- field_group
- text
third_party_settings:
field_group:
group_tabs:
children:
- group_contenu
- group_deta
label: Tabs
region: content
parent_name: ''
weight: 0
format_type: tabs
format_settings:
classes: ''
show_empty_fields: false
id: ''
direction: vertical
width_breakpoint: 640
group_contenu:
children:
- title
- body
label: Contenu
region: content
parent_name: group_tabs
weight: 13
format_type: tab
format_settings:
classes: ''
show_empty_fields: false
id: ''
formatter: open
description: ''
required_fields: true
group_deta:
children:
- status
- promote
- uid
- created
label: Details
region: content
parent_name: group_tabs
weight: 14
format_type: tab
format_settings:
classes: ''
show_empty_fields: false
id: ''
formatter: closed
description: ''
required_fields: true
id: node.static.default
targetEntityType: node
bundle: static
@ -25,40 +76,20 @@ content:
third_party_settings: { }
created:
type: datetime_timestamp
weight: 4
region: content
settings: { }
third_party_settings: { }
langcode:
type: language_select
weight: 2
region: content
settings:
include_locked: true
third_party_settings: { }
path:
type: path
weight: 7
weight: 5
region: content
settings: { }
third_party_settings: { }
promote:
type: boolean_checkbox
weight: 5
weight: 3
region: content
settings:
display_label: true
third_party_settings: { }
status:
type: boolean_checkbox
weight: 9
region: content
settings:
display_label: true
third_party_settings: { }
sticky:
type: boolean_checkbox
weight: 6
weight: 2
region: content
settings:
display_label: true
@ -73,7 +104,7 @@ content:
third_party_settings: { }
uid:
type: entity_reference_autocomplete
weight: 3
weight: 4
region: content
settings:
match_operator: CONTAINS
@ -81,9 +112,9 @@ content:
size: 60
placeholder: ''
third_party_settings: { }
url_redirects:
weight: 8
region: content
settings: { }
third_party_settings: { }
hidden: { }
hidden:
langcode: true
path: true
revision_log: true
sticky: true
url_redirects: true

View File

@ -6,8 +6,8 @@ dependencies:
- field.field.node.static.body
- node.type.static
module:
- manage_display
- text
- user
_core:
default_config_hash: oGSMA6gtfWJ1AlOJQfaQ3Qpi7ZarWaHqInUX9DaJLzo
id: node.static.default
@ -18,15 +18,22 @@ content:
body:
type: text_default
label: hidden
settings: { }
third_party_settings: { }
weight: 0
region: content
links:
settings: { }
third_party_settings: { }
weight: 1
region: content
title:
type: title
label: hidden
settings:
link_to_entity: true
tag: h2
third_party_settings: { }
weight: 0
region: content
hidden:
created: true
langcode: true
links: true
search_api_excerpt: true
uid: true

View File

@ -15,6 +15,7 @@ dependencies:
module:
- actions_permissions
- administerusersbyrole
- content_lock
- content_translation
- file
- filter
@ -42,10 +43,12 @@ permissions:
- 'access toolbar'
- 'access user profiles'
- 'access users overview'
- 'administer nodes'
- 'administer productions menu items'
- 'administer registration codes'
- 'assign group_admin role'
- 'assign group_member role'
- 'break content lock'
- 'bypass confidentialite workflow_transition access'
- 'cancel users with role group_admin'
- 'cancel users with role group_member'
@ -108,6 +111,7 @@ permissions:
- 'edit own concernement content'
- 'edit own enregistrement content'
- 'edit own reponse content'
- 'edit own static content'
- 'edit terms in collectionneurs'
- 'edit terms in entrees'
- 'edit terms in genres'
@ -118,11 +122,14 @@ permissions:
- 'edit users by role'
- 'edit users with role group_admin'
- 'edit users with role group_member'
- 'execute entity:break_lock node'
- 'execute entity:save_action menu_link_content'
- 'execute entity:save_action node'
- 'execute entity:save_action taxonomy_term'
- 'execute entity:save_action user'
- 'execute entity:unpublish_action node'
- 'execute node_assign_owner_action node'
- 'execute node_make_sticky_action node'
- 'execute node_promote_action node'
- 'execute node_save_action node'
- 'execute node_unpromote_action node'

View File

@ -20,6 +20,7 @@ type Concernement implements NodeInterface {
description: String
caillou: String
recit: Filefield
recit_colophon: String
entites: [Entiteintegre]
besoins: [Besoin]
doleances: [Doleance]
@ -50,7 +51,7 @@ type Entite implements NodeInterface {
}
type Source {
audios: Filefield
audios: [Filefield]
date: Date
documents: [Filefield]
description: String
@ -150,6 +151,7 @@ type Static implements NodeInterface {
author: String
created: String
changed: String
promoted: Boolean
texte: String
}

View File

@ -31,6 +31,10 @@ extend type Query {
allstatics: [Static]
}
extend type Query {
promotedstatics: [Static]
}
extend type Query {
statics(ids: [Int]): [Static]
}

View File

@ -243,6 +243,13 @@ class OuattSchemaExtension extends SdlSchemaExtensionPluginBase {
->map('position', $builder->fromValue(0))
));
$registry->addFieldResolver('Concernement', 'recit_colophon',
$builder->produce('property_path')
->map('type', $builder->fromValue('entity:node'))
->map('value', $builder->fromParent())
->map('path', $builder->fromValue('field_recit_colophon.value'))
);
$registry->addFieldResolver('Concernement', 'entites',
$builder->produce('entity_reference_revisions')
->map('entity', $builder->fromParent())
@ -1065,6 +1072,24 @@ class OuattSchemaExtension extends SdlSchemaExtensionPluginBase {
)
);
$registry->addFieldResolver('Query', 'promotedstatics',
$builder->compose(
$builder->callback(function($parent, $arg){
$entity_storage = \Drupal::entityTypeManager()->getStorage('node');
$query = $entity_storage->getQuery()
->condition('type', ['static'], 'IN')
->condition('promote', true)
->accessCheck(TRUE);
$results = $query->execute();
return $results;
}),
$builder->produce('entity_load_multiple')
->map('type', $builder->fromValue('node'))
->map('ids', $builder->fromParent())
)
);
$registry->addFieldResolver('Query', 'statics',
$builder->produce('entity_load_multiple')
->map('type', $builder->fromValue('node'))
@ -1109,6 +1134,13 @@ class OuattSchemaExtension extends SdlSchemaExtensionPluginBase {
->map('entity', $builder->fromParent())
));
$registry->addFieldResolver('Static', 'promoted',
$builder->produce('property_path')
->map('type', $builder->fromValue('entity:node'))
->map('value', $builder->fromParent())
->map('path', $builder->fromValue('promote.value'))
);
$registry->addFieldResolver('Static', 'texte',
$builder->produce('property_path')
->map('type', $builder->fromValue('entity:node'))

View File

@ -58,6 +58,7 @@ function ouatminimal_form_node_form_alter(&$form, FormStateInterface $form_state
$form['#theme'] = ['node_edit_form'];
$form['#attached']['library'][] = 'seven/node-form';
if ($form["#form_id"] != 'node_static_edit_form') {
// unset($form['advanced']);
$form['advanced']['#type'] = 'container';
$form['advanced']['#access'] = FALSE;
@ -70,6 +71,7 @@ function ouatminimal_form_node_form_alter(&$form, FormStateInterface $form_state
$form['revision_information']['#group'] = 'meta';
// $form['author']['#group']['group_admin'];
}
}

View File

@ -0,0 +1,31 @@
{#
/**
* @file
* Theme override for a node edit form.
*
* Two column template for the node add/edit form.
*
* This template will be used when a node edit form specifies 'node_edit_form'
* as its #theme callback. Otherwise, by default, node add/edit forms will be
* themed by form.html.twig.
*
* Available variables:
* - form: The node add/edit form.
*
* @see seven_form_node_form_alter()
*/
#}
<div class="layout-node-form clearfix">
<div class="layout-region layout-region-node-main">
{{ form|without('advanced', 'footer', 'actions') }}
</div>
<div class="layout-region layout-region-node-secondary">
{{ form.advanced }}
</div>
<div class="layout-region layout-region-node-footer">
<div class="layout-region-node-footer__content">
{{ form.footer }}
{{ form.actions }}
</div>
</div>
</div>