function modify($tpl, $operatorName, $operatorParameters, &$rootNamespace, &$currentNamespace, &$operatorValue, &$namedParameters) { switch ($operatorName) { case 'is_bookmarked': $bookmarkList = eZPersistentObject::fetchObjectList(eZContentBrowseBookmark::definition(), null, array('user_id' => eZUser::currentUserID(), 'node_id' => $namedParameters['node_id']), array('id' => 'desc'), array('offset' => 0, 'length' => '10'), true); if (count($bookmarkList) > 0) { $operatorValue = 1; } else { $operatorValue = 0; } break; case 'is_in_subscribed_nodes': $subscriptionList = eZPersistentObject::fetchObjectList(eZSubtreeNotificationRule::definition(), array('node_id'), array('user_id' => eZUser::currentUserID(), 'node_id' => $namedParameters['node_id']), null, null, false); if (count($subscriptionList) > 0) { $operatorValue = 1; } else { $operatorValue = 0; } break; } }
function fetchHttpInput($http, $module) { if ($http->hasPostVariable('NewRule_' . self::NOTIFICATION_HANDLER_ID)) { eZContentBrowse::browse(array('action_name' => 'AddSubtreeSubscribingNode', 'from_page' => '/notification/settings/'), $module); } else { if ($http->hasPostVariable('RemoveRule_' . self::NOTIFICATION_HANDLER_ID) and $http->hasPostVariable('SelectedRuleIDArray_' . self::NOTIFICATION_HANDLER_ID)) { $user = eZUser::currentUser(); $userList = eZSubtreeNotificationRule::fetchList($user->attribute('contentobject_id'), false); foreach ($userList as $userRow) { $listID[] = $userRow['id']; } $ruleIDList = $http->postVariable('SelectedRuleIDArray_' . self::NOTIFICATION_HANDLER_ID); foreach ($ruleIDList as $ruleID) { if (in_array($ruleID, $listID)) { eZPersistentObject::removeObject(eZSubtreeNotificationRule::definition(), array('id' => $ruleID)); } } } else { if ($http->hasPostVariable("BrowseActionName") and $http->postVariable("BrowseActionName") == "AddSubtreeSubscribingNode" and !$http->hasPostVariable('BrowseCancelButton')) { $selectedNodeIDArray = $http->postVariable("SelectedNodeIDArray"); $user = eZUser::currentUser(); $existingNodes = eZSubtreeNotificationRule::fetchNodesForUserID($user->attribute('contentobject_id'), false); foreach ($selectedNodeIDArray as $nodeID) { if (!in_array($nodeID, $existingNodes)) { $rule = eZSubtreeNotificationRule::create($nodeID, $user->attribute('contentobject_id')); $rule->store(); } } // $Module->redirectTo( "//list/" ); } } } }
static function removeByUserID($userID) { eZPersistentObject::removeObject(eZSubtreeNotificationRule::definition(), array('user_id' => $userID)); }