public function processChangeHook(AJXP_Node $oldNode = null, AJXP_Node $newNode = null, $copy = false)
 {
     $newNotif = $this->notificationCenter->generateNotificationFromChangeHook($oldNode, $newNode, $copy, "new");
     if ($newNotif !== false && $newNotif->getNode() !== false) {
         $ids = $this->getWatchesOnNode($newNode, self::$META_WATCH_CHANGE);
         if (count($ids)) {
             foreach ($ids as $id) {
                 $this->notificationCenter->postNotification($newNotif, $id);
             }
         }
         if (!$newNode->isRoot()) {
             $parentNode = new AJXP_Node(dirname($newNode->getUrl()));
             $parentNode->setLeaf(false);
             $ids = $this->getWatchesOnNode($parentNode, self::$META_WATCH_CHANGE);
             if (count($ids)) {
                 // POST NOW : PARENT FOLDER IS AFFECTED
                 $parentNotif = new AJXP_Notification();
                 $parentNotif->setNode($parentNode);
                 $parentNotif->setAction(AJXP_NOTIF_NODE_CHANGE);
                 $this->notificationCenter->prepareNotification($newNotif);
                 $parentNotif->addRelatedNotification($newNotif);
                 foreach ($ids as $id) {
                     $this->notificationCenter->postNotification($parentNotif, $id);
                 }
             }
         }
     }
     if ($oldNode != null && $newNode != null && $oldNode->getUrl() == $newNode->getUrl()) {
         return;
     }
     $oldNotif = $this->notificationCenter->generateNotificationFromChangeHook($oldNode, $newNode, $copy, "old");
     if ($oldNotif !== false && $oldNotif->getNode() !== false) {
         $ids = $this->getWatchesOnNode($oldNode, self::$META_WATCH_CHANGE);
         if (count($ids)) {
             foreach ($ids as $id) {
                 $this->notificationCenter->postNotification($oldNotif, $id);
             }
         }
         if (!$oldNode->isRoot()) {
             $parentNode = new AJXP_Node(dirname($oldNode->getUrl()));
             $parentNode->setLeaf(false);
             $ids = $this->getWatchesOnNode($parentNode, self::$META_WATCH_CHANGE);
             if (count($ids)) {
                 // POST NOW : PARENT FOLDER IS AFFECTED
                 $parentNotif = new AJXP_Notification();
                 $parentNotif->setNode($parentNode);
                 $parentNotif->setAction(AJXP_NOTIF_NODE_CHANGE);
                 $this->notificationCenter->prepareNotification($oldNotif);
                 $parentNotif->addRelatedNotification($oldNotif);
                 foreach ($ids as $id) {
                     $this->notificationCenter->postNotification($parentNotif, $id);
                 }
             }
         }
     }
     $this->updateMetaLocation($oldNode, $newNode, $copy);
 }
 public function processChangeHook(AJXP_Node $oldNode = null, AJXP_Node $newNode = null, $copy = false)
 {
     $newNotif = $this->notificationCenter->generateNotificationFromChangeHook($oldNode, $newNode, $copy, "new");
     if ($newNotif !== false && $newNotif->getNode() !== false) {
         $this->processActiveHook($newNotif, self::$META_WATCH_CHANGE, AJXP_NOTIF_NODE_CHANGE);
     }
     if ($oldNode != null && $newNode != null && $oldNode->getUrl() == $newNode->getUrl()) {
         return;
     }
     $oldNotif = $this->notificationCenter->generateNotificationFromChangeHook($oldNode, $newNode, $copy, "old");
     if ($oldNotif !== false && $oldNotif->getNode() !== false) {
         $this->processActiveHook($oldNotif, self::$META_WATCH_CHANGE, AJXP_NOTIF_NODE_CHANGE);
     }
     $this->updateMetaLocation($oldNode, $newNode, $copy);
 }