Index: voting_actions.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/voting_actions/voting_actions.module,v
retrieving revision 1.15.2.1
diff -u -r1.15.2.1 voting_actions.module
--- voting_actions.module	17 Apr 2007 21:59:36 -0000	1.15.2.1
+++ voting_actions.module	20 Nov 2007 15:59:54 -0000
@@ -1,10 +1,12 @@
 <?php
-// $Id: voting_actions.module,v 1.15.2.1 2007/04/17 21:59:36 eaton Exp $
+// $Id: voting_actions.module,v 1.15.2.4 2007/04/20 19:46:32 eaton Exp $
 
 /**
  * Lets users directly control the votingapi's integration with the actions module.
  */
- 
+ //include fix by newskicks team
+//visit us at: http://newskicks.com
+
 // Some initial constants.
 define(VOTING_ACTIONS_STATE_ENABLED, 1);
 define(VOTING_ACTIONS_STATE_OVERRIDDEN, 2);
@@ -79,8 +81,9 @@
 
 // Called by the Voting API whenever a result is calculated.
 function voting_actions_votingapi_results($cached, $votes, $content_type, $content_id) {
+//print "inside votingAPIresult<br>";
   $content = votingapi_load_content($content_id, $content_type);
-  if ($content == NULL) {
+  if ($content_type != 'node' || $content == NULL) {
     return;
   }
   $context = array(
@@ -101,7 +104,8 @@
 
 // Other helper functions build the actions cache from the database.
 function voting_actions_process_results($context) {
-  if (($data = cache_get('voting_actions_cache')) == FALSE) {
+//print "inside votingAPIProcessResult<br>";  
+if (($data = cache_get('voting_actions_cache')) == FALSE) {
     $action_sets = voting_actions_get_sets();
   }
   elseif (($action_sets = unserialize($data->data)) == FALSE) {
@@ -109,10 +113,10 @@
   }
   if (is_array($action_sets)) {
     foreach ($action_sets as $action_set) {
-      if (!empty($action_set['status'])) {
+      if (!empty($action_set['status']) && $action_set['status'] == VOTING_ACTIONS_STATE_ENABLED) {
         $actions = array();
-        if (_voting_actions_process_set($context, $action_set, $actions) == TRUE) {
-          actions_do($actions, $content);
+        if (_voting_actions_process_set($context, $action_set, $actions) === TRUE) {
+          actions_do($actions, $context['content']);
         }
       }
     }
@@ -124,6 +128,7 @@
  * Internal functions used to evaluate sets of actions, and individual conditions.
  */
 function _voting_actions_process_set($context = array(), $action_set = array(), &$actions) {  
+//print "inside votingAPIProcessSet<br>";
   // a little safety code to catch malformed sets.
   $action_set += _voting_actions_populate_set_defaults();
 
@@ -156,23 +161,23 @@
   if ($set_result == TRUE) {
     // Now check sub-actions.
 
-    foreach ($action_set['subsets'] as $subset) {
+    foreach ($action_set['sets'] as $subset) {
       // check the required flag of the subset. if it is, evaluate it.
       if ($subset['required'] == TRUE) {
         $set_result = $set_result && _voting_actions_process_set($context, $subset, $actions);
-        if ($set_result == FALSE) {
+        if ($set_result === FALSE) {
           return FALSE;
         }
       }
     }
 
-    if ($set_result == TRUE) {
+    if ($set_result === TRUE) {
       // It's still true after executing required subsets. Add the actions, then process optional subsets.
       foreach ($action_set['actions'] as $action) {
         $actions[] = $action;
       }
       
-      foreach ($action_set['subsets'] as $subset) {
+      foreach ($action_set['sets'] as $subset) {
         // now handle the non-required subsets
         if ($subset['required'] == FALSE) {
           _voting_actions_process_set($context, $subset, $actions);
@@ -185,12 +190,17 @@
 }
 
 function _voting_actions_process_condition($condition = array(), $context = array()) {
+//print "inside VotingActionProcessCondition<br>";
   $condition_cache = voting_actions_get_conditions();
   if ($condition_definition = $condition_cache[$condition['name']]) {
     $function = $condition_definition['eval_handler'];
+//print $function;
     if (function_exists($function)) {
       return $function($context, $condition);
     }
+     else{
+    print "Function Does not Exists?<br>";
+    }
   }
   
   return FALSE;
@@ -288,7 +298,7 @@
     }
     
     $set['status'] = voting_actions_get_status($set['name']);
-    $set['subsets'] = _voting_actions_load_sets_from_db($vasid);
+    $set['sets'] = _voting_actions_load_sets_from_db($set['vasid']);
     $sets[$set['name']] = $set;
   }
   
@@ -305,9 +315,7 @@
   db_query($sql, $vasid, $set['name'], $set['parent'],
     $set['source'], $set['description'], $set['condition_mask'], 
     $set['required'], $set['weight']);
-  
-  voting_actions_set_status($set['name'], $set['status']);
-  
+    
   if (is_array($set['conditions'])) {
     foreach ($set['conditions'] as $condition) {
       $condition['vasid'] = $vasid;
@@ -320,13 +328,6 @@
       db_query("INSERT INTO {voting_actions_action} (vasid, aid) VALUES (%d, '%s')", $vasid, $action);
     }
   }
-
-  if (is_array($set['sets'])) {
-    foreach ($set['sets'] as $sname => $subset) {
-      $subset['parent_name'] = $name;
-      _voting_actions_insert_set($subset);
-    }
-  }
 }
 
 function _voting_actions_insert_condition($condition) {
@@ -350,17 +351,23 @@
     $set['source'], $set['description'], $set['condition_mask'], 
     $set['required'], $set['weight'], $set['vasid']);
 
-  voting_actions_set_status($set['name'], $set['status']);
-
   if (is_array($set['conditions'])) {
+    // First we'll loop through and delete any that are
+    // in the db but not in the new version of the set.
+    $current_sets = array();
+    $current_sets['replacements'][] = $set['vasid'];
     foreach ($set['conditions'] as $condition) {
       if (isset($condition['vacid'])) {
-        if (!empty($condition['deleted'])) {
-          db_query("DELETE FROM {voting_actions_condition} WHERE vacid = %d", $set['vacid']);
-        }
-        else {
-          _voting_actions_update_condition($condition);
-        }
+        $current_sets['wildcards'][] = '%d';
+        $current_sets['replacements'][] = $condition['vacid'];
+      }
+    }
+    db_query("DELETE FROM {voting_actions_condition} WHERE vasid = %d AND vacid NOT IN (". implode(',', $current_sets['wildcards']) .")", $current_sets['replacements']);
+
+    foreach ($set['conditions'] as $condition) {
+      $condition['vasid'] = $set['vasid'];
+      if (isset($condition['vacid'])) {
+        _voting_actions_update_condition($condition);
       }
       else {
         _voting_actions_insert_condition($condition);
@@ -374,24 +381,7 @@
   db_query("DELETE FROM {voting_actions_action} WHERE vasid = %d", $set['vasid']);
   if (is_array($set['actions'])) {
     foreach ($set['actions'] as $action) {
-      db_query("INSERT INTO {voting_actions_action} (parent_name, aid) VALUES ('%s', %d)", $name, $set['vasid']);
-    }
-  }
-  
-  if (is_array($set['sets'])) {
-    foreach ($set['sets'] as $subset) {
-      if (isset($subset['vasid'])) {
-        _voting_actions_update_set($subset);
-      }
-      else {
-        _voting_actions_insert_set($subset);
-      }
-    }
-  }
-
-  if (is_array($set['deleted_sets'])) {
-    foreach ($set['deleted_sets'] as $subset) {
-      _voting_actions_delete_set($subset);
+      db_query("INSERT INTO {voting_actions_action} (vasid, aid) VALUES (%d, '%s')", $set['vasid'], $action);
     }
   }
 }
@@ -415,7 +405,6 @@
   db_query("DELETE FROM {voting_actions_condition} WHERE vasid = %d", $set['vasid']);
   db_query("DELETE FROM {voting_actions_action} WHERE vasid = %d", $set['vasid']);
   db_query("DELETE FROM {voting_actions_set} WHERE vasid = %d", $set['vasid']);
-  db_query("DELETE FROM {voting_actions_status} WHERE name = %d", $set['name']);
 }
 
 function _voting_actions_validate_set($set) {
@@ -454,17 +443,17 @@
 function _voting_actions_validate_condition($condition) {
   $errors = array();
   if (!is_array($condition)) {
-    $errors[] = "The condition is not an array!";
+    $errors[] = t("The condition is not an array!");
     return $errors;
   }
 
   if (!isset($condition['eval_handler'])) {
-    $errors[] = "The condition has no handler.";
+    $errors[] = t("The condition has no handler.");
   }
 
   if (!function_exists($condition['eval_handler'])) {
     $handler = $condition['eval_handler'];
-    $errors[] = "The condition has an invalid handler ($eval_handler).";
+    $errors[] = t("The condition has an invalid handler (@handler).", array('@handler' => $eval_handler));
   }
 
   return $errors;
@@ -478,6 +467,6 @@
     'weight' => 0,
     'conditions' => array(),
     'actions' => array(),
-    'subsets' => array(),
+    'sets' => array(),
   );
 }
\ No newline at end of file
