Index: trunk/core/units/general/helpers/count_helper.php =================================================================== diff -u -N --- trunk/core/units/general/helpers/count_helper.php (revision 8076) +++ trunk/core/units/general/helpers/count_helper.php (revision 0) @@ -1,99 +0,0 @@ - 0) AND (LastCounted < '.adodb_mktime().' - LifeTime)'; - $this->Conn->Query($sql); - } - - /** - * Returns counter value - * - * @param string $name counter name - * @param Array $params counter parameters - * @param string $query_name specify query name directly (don't generate from parmeters) - * @param bool $multiple_results - * @return mixed - */ - function getCounter($name, $params = Array (), $query_name = null, $multiple_results = false) - { - $clone_counter = false; - $query_name = isset($query_name) ? $query_name : rtrim($name.'-'.implode('-', array_values($params)), '-'); - $sql = 'SELECT * - FROM '.TABLE_PREFIX.'Counters - WHERE Name = '.$this->Conn->qstr($query_name); - $count_data = $this->Conn->GetRow($sql); - - if (!$count_data && ($query_name != $name)) { - // cloned record not found -> search for origial one - $sql = 'SELECT * - FROM '.TABLE_PREFIX.'Counters - WHERE Name = '.$this->Conn->qstr($name); - $count_data = $this->Conn->GetRow($sql); - $clone_counter = true; - } - - if (is_null($count_data['CountValue'])) { - $params['PREFIX'] = TABLE_PREFIX; - $count_sql = $count_data['CountQuery']; - - foreach ($params as $replace_from => $replace_to) { - $count_sql = str_replace('<%'.$replace_from.'%>', $replace_to, $count_sql); - } - - if ($multiple_results) { - $count_data['CountValue'] = serialize($this->Conn->GetCol($count_sql)); - } - else { - $count_data['CountValue'] = $this->Conn->GetOne($count_sql); - } - - if ($clone_counter && !$count_data['IsClone']) { - // don't clone clones - $count_data['CounterId'] = 0; - $count_data['Name'] = $query_name; - $count_data['IsClone'] = 1; - } - - $count_data['LastCounted'] = adodb_mktime(); - $this->Conn->doInsert($count_data, TABLE_PREFIX.'Counters', 'REPLACE'); - } - - return $multiple_results ? unserialize($count_data['CountValue']) : $count_data['CountValue']; - } - - /** - * Resets counter, whitch are affected by one of specified tables - * - * @param string $tables comma separated tables list used in counting sqls - */ - function resetCounters($tables) - { - $tables = explode(',', $tables); - $prefix_length = strlen(TABLE_PREFIX); - foreach ($tables as $index => $table) { - // remove prefixes - if (substr($table, 0, $prefix_length) == TABLE_PREFIX) { - $table = substr($table, $prefix_length); - } - $tables[$index] = '(TablesAffected LIKE "%|'.$table.'|%")'; - } - - $sql = 'UPDATE '.TABLE_PREFIX.'Counters - SET CountValue = NULL - WHERE '.implode(' OR ', $tables); - - $this->Conn->Query($sql); - } - - } - -?> \ No newline at end of file