iPédiatre
 Tout Classes Fichiers Fonctions Variables
iPPublishActionHandler.php
Aller à la documentation de ce fichier.
1 <?php
3 {
4  public function handle(&$module, &$http, &$objectID)
5  {
6 
7  $UserNode = eZUser::currentUser()->contentObject()->mainNode();
8  $UserNodeID = $UserNode->attribute('node_id');
9 
10  $article = eZContentObject::fetch($objectID);
11  $NodeID = $article->mainNodeID();
12  $ParentNodeID = $article->mainParentNodeID();
13  $children = $UserNode->children();
14 
15  // On décale les priorités de 1 sur la droite pour laisser la place au nouveau noeud (de priorité 0)
16  $priorityArray = array_map(function($n){return $n+1;}, array_keys($children));
17  $priorityIDArray = array_map(function($n){return $n->attribute('node_id');}, array_values($children));
18 
19  eZContentOperationCollection::updatePriority($UserNodeID, $priorityArray, $priorityIDArray);
20  eZContentCacheManager::clearContentCacheIfNeeded(eZUser::currentUser()->contentObject()->attribute('id') );
21 
22  // Si l'utilisateur est le propriétaire on ne peut pas supprimer le noeud, on le cache plutôt
23  if ($ParentNodeID == $UserNodeID && $article->mainNode()->attribute('is_hidden')) {
24 
25  $article->mainNode()->setAttribute('priority', 0); // on simule la création d'un nouveau noeud (priorité = 0)
26  eZContentOperationCollection::changeHideStatus( $NodeID );
27  eZDebug::writeNotice("l'article $objectID a été publié par son propriétaire");
28 
29  } else {
30 
31  eZContentOperationCollection::addAssignment( $NodeID, $objectID, array($UserNodeID) );
32  eZDebug::writeNotice("l'article $objectID a été publié par un pédiatre");
33 
34  }
35  }
36 }