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); }