iPédiatre
 Tout Classes Fichiers Fonctions Variables
iPArticle.php
Aller à la documentation de ce fichier.
1 <?php
2 
3 class iPArticle
4 {
8  protected $article;
9 
10 
11  public function __construct(eZContentObject $article)
12  {
13  $this->article = $article;
14  }
15 
16  public function setCategoryNodeID($assignmentID)
17  {
18  $noCategory = true;
19 
20  // Pour tous les noeuds déjà assignés à l'objet article...
21  foreach ($this->object->assignedNodes() as $location) {
22 
23  $nodeID = $location->attribute('node_id');
24  $parent = $location->fetchParent();
25 
26  // On ne s'intéresse ici qu'au noeud qui correspond à la catégorie de l'article
27  // donc un noeud d'objet 'folder' (par opposition à un objet 'user')
28  if ( $parent->classIdentifier() == 'folder' ) {
29 
30  $parentNodeID = $parent->attribute('node_id');
31 
32  if ($parentNodeID != $assignmentID ) {
33 
34  $toRemove[] = $nodeID;
35 
36  } else {
37 
38  $noCategory = false; // le noeud est déjà le bon
39  }
40  }
41  }
42 
43  // Si $toRemove n'est pas vide cela signifie que nous avons trouvé un ou des noeuds dans des folder
44  // mais qui ne correspondaient pas à la bonne catégorie. Il faut donc les supprimer.
45  if (!empty($toRemove))
46  {
47  eZContentOperationCollection::removeNodes($toRemove);
48  }
49 
50  // Si $noCategory est vrai si aucune catégorie n'a été trouvée ou si celle-ci n'était pas celle voulue
51  if ($noCategory)
52  {
53  eZContentOperationCollection::addAssignment($object->mainNodeID(), $contentObjectID, array($assignmentID));
54  eZDebug::writeDebug("L'objet n°{$contentObjectID} de type `article` a été positionné sous le noeud {$assignmentID}");
55  }
56  }
57 
61  public function getCategory()
62  {
63  $nodes = $this->object->assignedNodes();
64 
65  foreach ($nodes as $node) {
66 
67  $parent = $node->fetchParent();
68 
69  if ($parent->classIdentifier() == 'folder') {
70 
71  return $parent;
72  }
73  }
74 
75  return null;
76  }
77 
81  public function isNew()
82  {
83  return $this->object->attribute('current_version') == 1;
84  }
85 }