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