reinstalled all contribs with composer

need to run :
drush ev 'drupal_flush_all_caches();'
drush cr
and restart nginx and php-fpm before loading the website
This commit is contained in:
2019-04-30 19:27:47 +02:00
parent e1f9bb3cd0
commit 9da6cf9927
373 changed files with 3392 additions and 5 deletions
@@ -0,0 +1,295 @@
<?php
namespace Drupal\edlp_studio\Entity;
use Drupal\Core\Entity\EntityStorageInterface;
use Drupal\Core\Field\BaseFieldDefinition;
use Drupal\Core\Entity\ContentEntityBase;
use Drupal\Core\Entity\EntityChangedTrait;
use Drupal\Core\Entity\EntityTypeInterface;
use Drupal\user\UserInterface;
use Drupal\Core\Url;
/**
* Defines the Chutier entity.
*
* @ingroup edlp_studio
*
* @ContentEntityType(
* id = "chutier",
* label = @Translation("Chutier"),
* handlers = {
* "view_builder" = "Drupal\Core\Entity\EntityViewBuilder",
* "list_builder" = "Drupal\edlp_studio\ChutierListBuilder",
* "views_data" = "Drupal\edlp_studio\Entity\ChutierViewsData",
*
* "form" = {
* "default" = "Drupal\edlp_studio\Form\ChutierForm",
* "add" = "Drupal\edlp_studio\Form\ChutierForm",
* "edit" = "Drupal\edlp_studio\Form\ChutierForm",
* "delete" = "Drupal\edlp_studio\Form\ChutierDeleteForm",
* },
* "access" = "Drupal\edlp_studio\ChutierAccessControlHandler",
* "route_provider" = {
* "html" = "Drupal\edlp_studio\ChutierHtmlRouteProvider",
* },
* },
* base_table = "chutier",
* admin_permission = "administer chutier entities",
* entity_keys = {
* "id" = "id",
* "label" = "name",
* "uuid" = "uuid",
* "uid" = "user_id",
* "langcode" = "langcode",
* "status" = "status",
* },
* links = {
* "canonical" = "/admin/structure/studio/chutier/{chutier}",
* "add-form" = "/admin/structure/studio/chutier/add",
* "edit-form" = "/admin/structure/studio/chutier/{chutier}/edit",
* "delete-form" = "/admin/structure/studio/chutier/{chutier}/delete",
* "collection" = "/admin/structure/studio/chutier",
* },
* field_ui_base_route = "chutier.settings"
* )
*/
class Chutier extends ContentEntityBase implements ChutierInterface {
use EntityChangedTrait;
/**
* {@inheritdoc}
*/
public static function preCreate(EntityStorageInterface $storage_controller, array &$values) {
parent::preCreate($storage_controller, $values);
$values += [
'user_id' => \Drupal::currentUser()->id(),
];
}
/**
* {@inheritdoc}
*/
public function getName() {
return $this->get('name')->value;
}
/**
* {@inheritdoc}
*/
public function setName($name) {
$this->set('name', $name);
return $this;
}
/**
* {@inheritdoc}
*/
public function getCreatedTime() {
return $this->get('created')->value;
}
/**
* {@inheritdoc}
*/
public function setCreatedTime($timestamp) {
$this->set('created', $timestamp);
return $this;
}
/**
* {@inheritdoc}
*/
public function getOwner() {
return $this->get('user_id')->entity;
}
/**
* {@inheritdoc}
*/
public function getOwnerId() {
return $this->get('user_id')->target_id;
}
/**
* {@inheritdoc}
*/
public function setOwnerId($uid) {
$this->set('user_id', $uid);
return $this;
}
/**
* {@inheritdoc}
*/
public function setOwner(UserInterface $account) {
$this->set('user_id', $account->id());
return $this;
}
/**
* {@inheritdoc}
*/
public function isPublished() {
return (bool) $this->getEntityKey('status');
}
/**
* {@inheritdoc}
*/
public function setPublished($published) {
$this->set('status', $published ? TRUE : FALSE);
return $this;
}
/**
* {@inheritdoc}
*/
public static function baseFieldDefinitions(EntityTypeInterface $entity_type) {
$fields = parent::baseFieldDefinitions($entity_type);
$fields['user_id'] = BaseFieldDefinition::create('entity_reference')
->setLabel(t('Authored by'))
->setDescription(t('The user ID of author of the Chutier entity.'))
->setRevisionable(TRUE)
->setSetting('target_type', 'user')
->setSetting('handler', 'default')
->setTranslatable(TRUE)
->setDisplayOptions('view', [
'label' => 'hidden',
'type' => 'author',
'weight' => 0,
])
->setDisplayOptions('form', [
'type' => 'entity_reference_autocomplete',
'weight' => 5,
'settings' => [
'match_operator' => 'CONTAINS',
'size' => '60',
'autocomplete_type' => 'tags',
'placeholder' => '',
],
])
->setDisplayConfigurable('form', TRUE)
->setDisplayConfigurable('view', TRUE);
$fields['name'] = BaseFieldDefinition::create('string')
->setLabel(t('Name'))
->setDescription(t('The name of the Chutier entity.'))
->setSettings([
'max_length' => 50,
'text_processing' => 0,
])
->setDefaultValue('')
->setDisplayOptions('view', [
'label' => 'above',
'type' => 'string',
'weight' => -4,
])
->setDisplayOptions('form', [
'type' => 'string_textfield',
'weight' => -4,
])
->setDisplayConfigurable('form', TRUE)
->setDisplayConfigurable('view', TRUE)
->setRequired(TRUE);
$fields['status'] = BaseFieldDefinition::create('boolean')
->setLabel(t('Publishing status'))
->setDescription(t('A boolean indicating whether the Chutier is published.'))
->setDefaultValue(TRUE)
->setDisplayOptions('form', [
'type' => 'boolean_checkbox',
'weight' => -3,
]);
$fields['created'] = BaseFieldDefinition::create('created')
->setLabel(t('Created'))
->setDescription(t('The time that the entity was created.'));
$fields['changed'] = BaseFieldDefinition::create('changed')
->setLabel(t('Changed'))
->setDescription(t('The time that the entity was last edited.'));
$fields['documents'] = BaseFieldDefinition::create('entity_reference')
->setLabel(t('Documents'))
->setDescription(t('Documents from collection.'))
->setSetting('target_type', 'node')
->setSetting('handler', 'default')
// TODO: check node content type by settings @see readme
->setSetting('handler_settings',['target_bundles'=>['enregistrement'=>'enregistrement']] )
->setCardinality(BaseFieldDefinition::CARDINALITY_UNLIMITED)
->setDisplayOptions('view', array(
'label' => 'hidden',
'type' => 'enregistrement',
'weight' => 0,
))
->setDisplayOptions('form', array(
'type' => 'entity_reference_autocomplete',
'weight' => 5,
'settings' => array(
'match_operator' => 'CONTAINS',
'size' => '60',
'autocomplete_type' => 'tags',
'placeholder' => '',
),
))
->setDisplayConfigurable('form', TRUE)
->setDisplayConfigurable('view', TRUE);
return $fields;
}
/**
* {@inheritdoc}
*/
public static function getUserChutiersContents($uid){
// TODO: use query if we use more than one chutier
// $query = \Drupal::entityQuery('chutier')
// ->condition('user_id', $uid);
//
// $chutiers_nids = $query->execute();
// $chutiers = entity_load_multiple('chutier', $chutiers_nids);
//
// $contents = array();
// foreach ($chutiers as $id => $chutier) {
// $contents[$id] = array_column($chutier->documents->getValue(), 'target_id');
// }
/** @var UserDataInterface $userData */
$userData = \Drupal::service('user.data');
$default_chutier_id = $userData->get('edlp_studio', $uid, 'default_chutier');
if($chutier = entity_load('chutier', $default_chutier_id)){
return array_column($chutier->documents->getValue(), 'target_id');
}else{
return array();
}
}
/**
* {@inheritdoc}
*/
public static function getActionsUrl($id, $uid){
$contents = self::getUserChutiersContents($uid);
// dpm($contents);
if(array_search($id, $contents) === false){
$action = 'add';
}else{
$action = 'remove';
}
$args = array(
'action'=>$action,
'id'=>$id
);
$url = Url::fromRoute('edlp_studio.chutier_controller_ajax_add_content', $args, array(
'attributes' => array(
'class' => ['chutier-icon','chutier-link','chutier-ajax-link'],
'action' => $action,
'target_id' => $id,
)
));
return $url;
}
}
@@ -0,0 +1,105 @@
<?php
namespace Drupal\edlp_studio\Entity;
use Drupal\Core\Entity\ContentEntityInterface;
use Drupal\Core\Entity\EntityChangedInterface;
use Drupal\user\EntityOwnerInterface;
/**
* Provides an interface for defining Chutier entities.
*
* @ingroup edlp_studio
*/
interface ChutierInterface extends ContentEntityInterface, EntityChangedInterface, EntityOwnerInterface {
// Add get/set methods for your configuration properties here.
/**
* Gets the Chutier name.
*
* @return string
* Name of the Chutier.
*/
public function getName();
/**
* Sets the Chutier name.
*
* @param string $name
* The Chutier name.
*
* @return \Drupal\edlp_studio\Entity\ChutierInterface
* The called Chutier entity.
*/
public function setName($name);
/**
* Gets the Chutier creation timestamp.
*
* @return int
* Creation timestamp of the Chutier.
*/
public function getCreatedTime();
/**
* Sets the Chutier creation timestamp.
*
* @param int $timestamp
* The Chutier creation timestamp.
*
* @return \Drupal\edlp_studio\Entity\ChutierInterface
* The called Chutier entity.
*/
public function setCreatedTime($timestamp);
/**
* Returns the Chutier published status indicator.
*
* Unpublished Chutier are only visible to restricted users.
*
* @return bool
* TRUE if the Chutier is published.
*/
public function isPublished();
/**
* Sets the published status of a Chutier.
*
* @param bool $published
* TRUE to set this Chutier to published, FALSE to set it to unpublished.
*
* @return \Drupal\edlp_studio\Entity\ChutierInterface
* The called Chutier entity.
*/
public function setPublished($published);
/**
* get the contents in user's chutiers
*
* @param int $uid
* user id
*
* @return array
* associative array of contents by chutiers
*
*/
public static function getUserChutiersContents($uid);
/**
* get the contents in user's chutiers
*
* @param int $id
* content id
*
* @param int $uid
* user id
*
* @return Drupal\Core\Url
* depending on action is add or remove
*
*/
public static function getActionsURL($id, $uid);
}
@@ -0,0 +1,24 @@
<?php
namespace Drupal\edlp_studio\Entity;
use Drupal\views\EntityViewsData;
/**
* Provides Views data for Chutier entities.
*/
class ChutierViewsData extends EntityViewsData {
/**
* {@inheritdoc}
*/
public function getViewsData() {
$data = parent::getViewsData();
// Additional information for Views integration, such as table joins, can be
// put here.
return $data;
}
}
@@ -0,0 +1,243 @@
<?php
namespace Drupal\edlp_studio\Entity;
use Drupal\Core\Entity\EntityStorageInterface;
use Drupal\Core\Field\BaseFieldDefinition;
use Drupal\Core\Entity\ContentEntityBase;
use Drupal\Core\Entity\EntityChangedTrait;
use Drupal\Core\Entity\EntityTypeInterface;
use Drupal\user\UserInterface;
/**
* Defines the Composition entity.
*
* @ingroup edlp_studio
*
* @ContentEntityType(
* id = "composition",
* label = @Translation("Composition"),
* handlers = {
* "view_builder" = "Drupal\Core\Entity\EntityViewBuilder",
* "list_builder" = "Drupal\edlp_studio\CompositionListBuilder",
* "views_data" = "Drupal\edlp_studio\Entity\CompositionViewsData",
*
* "form" = {
* "default" = "Drupal\edlp_studio\Form\CompositionForm",
* "add" = "Drupal\edlp_studio\Form\CompositionForm",
* "edit" = "Drupal\edlp_studio\Form\CompositionForm",
* "delete" = "Drupal\edlp_studio\Form\CompositionDeleteForm",
* },
* "access" = "Drupal\edlp_studio\CompositionAccessControlHandler",
* "route_provider" = {
* "html" = "Drupal\edlp_studio\CompositionHtmlRouteProvider",
* },
* },
* base_table = "composition",
* admin_permission = "administer composition entities",
* entity_keys = {
* "id" = "id",
* "label" = "name",
* "uuid" = "uuid",
* "uid" = "user_id",
* "langcode" = "langcode",
* "status" = "status",
* },
* links = {
* "canonical" = "/composition/{composition}",
* "add-form" = "/composition/add",
* "edit-form" = "/composition/{composition}/edit",
* "delete-form" = "/composition/{composition}/delete",
* "collection" = "/admin/structure/studio/composition",
* },
* field_ui_base_route = "composition.settings"
* )
*/
class Composition extends ContentEntityBase implements CompositionInterface {
use EntityChangedTrait;
/**
* {@inheritdoc}
*/
public static function preCreate(EntityStorageInterface $storage_controller, array &$values) {
parent::preCreate($storage_controller, $values);
$values += [
'user_id' => \Drupal::currentUser()->id(),
];
}
/**
* {@inheritdoc}
*/
public function getName() {
return $this->get('name')->value;
}
/**
* {@inheritdoc}
*/
public function setName($name) {
$this->set('name', $name);
return $this;
}
/**
* {@inheritdoc}
*/
public function getCreatedTime() {
return $this->get('created')->value;
}
/**
* {@inheritdoc}
*/
public function setCreatedTime($timestamp) {
$this->set('created', $timestamp);
return $this;
}
/**
* {@inheritdoc}
*/
public function getOwner() {
return $this->get('user_id')->entity;
}
/**
* {@inheritdoc}
*/
public function getOwnerId() {
return $this->get('user_id')->target_id;
}
/**
* {@inheritdoc}
*/
public function setOwnerId($uid) {
$this->set('user_id', $uid);
return $this;
}
/**
* {@inheritdoc}
*/
public function setOwner(UserInterface $account) {
$this->set('user_id', $account->id());
return $this;
}
/**
* {@inheritdoc}
*/
public function isPublished() {
return (bool) $this->getEntityKey('status');
}
/**
* {@inheritdoc}
*/
public function setPublished($published) {
$this->set('status', $published ? TRUE : FALSE);
return $this;
}
/**
* {@inheritdoc}
*/
public static function baseFieldDefinitions(EntityTypeInterface $entity_type) {
$fields = parent::baseFieldDefinitions($entity_type);
$fields['user_id'] = BaseFieldDefinition::create('entity_reference')
->setLabel(t('Authored by'))
->setDescription(t('The user ID of author of the Composition entity.'))
->setRevisionable(TRUE)
->setSetting('target_type', 'user')
->setSetting('handler', 'default')
->setTranslatable(TRUE)
->setDisplayOptions('view', [
'label' => 'hidden',
'type' => 'author',
'weight' => 0,
])
->setDisplayOptions('form', [
'type' => 'entity_reference_autocomplete',
'weight' => 5,
'settings' => [
'match_operator' => 'CONTAINS',
'size' => '60',
'autocomplete_type' => 'tags',
'placeholder' => '',
],
])
->setDisplayConfigurable('form', TRUE)
->setDisplayConfigurable('view', TRUE);
$fields['name'] = BaseFieldDefinition::create('string')
->setLabel(t('Name'))
->setDescription(t('The name of the Composition entity.'))
->setSettings([
'max_length' => 50,
'text_processing' => 0,
])
->setDefaultValue('')
->setDisplayOptions('view', [
'label' => 'above',
'type' => 'string',
'weight' => -4,
])
->setDisplayOptions('form', [
'type' => 'string_textfield',
'weight' => -4,
])
->setDisplayConfigurable('form', TRUE)
->setDisplayConfigurable('view', TRUE)
->setRequired(TRUE);
$fields['status'] = BaseFieldDefinition::create('boolean')
->setLabel(t('Publishing status'))
->setDescription(t('A boolean indicating whether the Composition is published.'))
->setDefaultValue(TRUE)
->setDisplayOptions('form', [
'type' => 'boolean_checkbox',
'weight' => -3,
]);
$fields['created'] = BaseFieldDefinition::create('created')
->setLabel(t('Created'))
->setDescription(t('The time that the entity was created.'));
$fields['changed'] = BaseFieldDefinition::create('changed')
->setLabel(t('Changed'))
->setDescription(t('The time that the entity was last edited.'));
$fields['documents'] = BaseFieldDefinition::create('entity_reference')
->setLabel(t('Documents'))
->setDescription(t('Documents from collection.'))
->setSetting('target_type', 'node')
->setSetting('handler', 'default')
->setSetting('handler_settings',['target_bundles'=>['enregistrement'=>'enregistrement']] )
->setCardinality(BaseFieldDefinition::CARDINALITY_UNLIMITED)
->setDisplayOptions('view', array(
'label' => 'hidden',
'type' => 'enregistrement',
'weight' => 0,
))
->setDisplayOptions('form', array(
'type' => 'entity_reference_autocomplete',
'weight' => 5,
'settings' => array(
'match_operator' => 'CONTAINS',
'size' => '60',
'autocomplete_type' => 'tags',
'placeholder' => '',
),
))
->setDisplayConfigurable('form', TRUE)
->setDisplayConfigurable('view', TRUE);
return $fields;
}
}
@@ -0,0 +1,77 @@
<?php
namespace Drupal\edlp_studio\Entity;
use Drupal\Core\Entity\ContentEntityInterface;
use Drupal\Core\Entity\EntityChangedInterface;
use Drupal\user\EntityOwnerInterface;
/**
* Provides an interface for defining Composition entities.
*
* @ingroup edlp_studio
*/
interface CompositionInterface extends ContentEntityInterface, EntityChangedInterface, EntityOwnerInterface {
// Add get/set methods for your configuration properties here.
/**
* Gets the Composition name.
*
* @return string
* Name of the Composition.
*/
public function getName();
/**
* Sets the Composition name.
*
* @param string $name
* The Composition name.
*
* @return \Drupal\edlp_studio\Entity\CompositionInterface
* The called Composition entity.
*/
public function setName($name);
/**
* Gets the Composition creation timestamp.
*
* @return int
* Creation timestamp of the Composition.
*/
public function getCreatedTime();
/**
* Sets the Composition creation timestamp.
*
* @param int $timestamp
* The Composition creation timestamp.
*
* @return \Drupal\edlp_studio\Entity\CompositionInterface
* The called Composition entity.
*/
public function setCreatedTime($timestamp);
/**
* Returns the Composition published status indicator.
*
* Unpublished Composition are only visible to restricted users.
*
* @return bool
* TRUE if the Composition is published.
*/
public function isPublished();
/**
* Sets the published status of a Composition.
*
* @param bool $published
* TRUE to set this Composition to published, FALSE to set it to unpublished.
*
* @return \Drupal\edlp_studio\Entity\CompositionInterface
* The called Composition entity.
*/
public function setPublished($published);
}
@@ -0,0 +1,24 @@
<?php
namespace Drupal\edlp_studio\Entity;
use Drupal\views\EntityViewsData;
/**
* Provides Views data for Composition entities.
*/
class CompositionViewsData extends EntityViewsData {
/**
* {@inheritdoc}
*/
public function getViewsData() {
$data = parent::getViewsData();
// Additional information for Views integration, such as table joins, can be
// put here.
return $data;
}
}