当前位置: 首页>>代码示例>>PHP>>正文


PHP memBuff::set方法代码示例

本文整理汇总了PHP中memBuff::set方法的典型用法代码示例。如果您正苦于以下问题:PHP memBuff::set方法的具体用法?PHP memBuff::set怎么用?PHP memBuff::set使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在memBuff的用法示例。


在下文中一共展示了memBuff::set方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: output

 /**
  * Печатает содержимое файлов, при запросе /static.php?t=$seed.
  * Сжимает содержимое, контролирует кэширование на сервере и клиенте.
  *
  * @param string $seed закодировнная строка (параметр ?t).
  */
 public function output($seed)
 {
     $log = $this->_log;
     if (($type = $this->_decodeSeed($seed, $seed_expired)) === false) {
         $log->writeln("\n\nstatic_compressor::output()\n");
         $log->writeln("Error _decodeSeed - seed:{$seed}\n\n");
         exit;
     }
     if ($seed_expired) {
         $seed = $this->_encodeSeed($type);
     }
     $last_mod = $this->getLastModified($type);
     $mem_key = md5('static_compress.output' . $seed);
     $mem_data = $this->memBuff->get($mem_key);
     if (!$mem_data || $last_mod != $mem_data['last_mod']) {
         $mem_data['body'] = $this->_compress($type, true);
         $mem_data['etag'] = '"' . md5($mem_data['body']) . '"';
         $mem_data['last_mod'] = $last_mod;
         $mem_data['length'] = strlen($mem_data['body']);
         $this->memBuff->set($mem_key, $mem_data, self::GC_LIFE);
     }
     header('Content-Type: text/' . ($this->types[$type] == 'js' ? 'javascript' : 'css') . '; charset=' . self::getCharsetType($type));
     header('Cache-Control: public, must-revalidate, max-age=0');
     header('ETag: ' . $mem_data['etag']);
     header('Last-Modified: ' . gmdate('D, d M Y H:i:s', $mem_data['last_mod']) . ' GMT');
     if (isset($_SERVER['HTTP_IF_NONE_MATCH']) && $_SERVER['HTTP_IF_NONE_MATCH'] == $mem_data['etag'] && (!isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) || strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) >= $mem_data['last_mod'])) {
         header('HTTP/1.1 304 Not Modified');
         $mem_data['length'] = 0;
         $mem_data['body'] = null;
     }
     header('Content-Length: ' . $mem_data['length']);
     exit($mem_data['body']);
 }
开发者ID:kapai69,项目名称:fl-ru-damp,代码行数:39,代码来源:static_compress.php

示例2: process_event

 public function process_event(&$event)
 {
     $r = FALSE;
     switch ($event->type) {
         case 'memcache_delete':
             require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/memBuff.php';
             $memBuff = new memBuff();
             $memBuff->delete($event->data['key']);
             $r = TRUE;
             break;
         case 'memcache_flush_group':
             require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/memBuff.php';
             $memBuff = new memBuff();
             $memBuff->flushGroup($event->data['key']);
             $r = TRUE;
             break;
         case 'static_compress.createBatchBySeed':
             $GLOBALS['DEBUG_VAR'] = array();
             require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/static_compress.php';
             $memBuff = new memBuff();
             $memBuff->set('eto.kostyl.inache.tupit.set.v.createBatch', 1, 1);
             $stc = new static_compress();
             $r = !($error = $stc->createBatchBySeed($event->data['seed']));
             break;
     }
     if ($event->type) {
         $this->log->notice("Function {$event->type}... " . ($r ? 'Success' : 'Error ' . $error));
         $this->log->notice(base64_decode($event->data['seed']));
         $this->log->notice(var_export($GLOBALS['DEBUG_VAR']));
     }
     return PGQ_EVENT_OK;
 }
开发者ID:Nikitian,项目名称:fl-ru-damp,代码行数:32,代码来源:share.php

示例3: bind

 /**
  * Сохраняет или возвращает данные связывающие рассылку в личку с рассылкой в почту. Данные актуальны с 
  * момента начала рассылки и до ее окончания. Данные хранятся в переменной (т.к. скрипт постоянно запущен) и
  * дублируются в memcahce на случай отключения скрипта во время рассылки. Если во время рассылки в личку 
  * остановить скрипт и перегрузить memcahce, то данные данные потеряются и рассылка в почту не пойдет.
  * Если сделать то же во время рассылки на почту, есть вероятность отправить части пользователей повторные
  * письма.
  * 
  * @param  integer $messId  id личного сообщения
  * @param  array   $data    массив с данными для сохранения или NULL если данные нужно получить
  * @return array            если $data == NULL, возвращает массив данных для $messId
  */
 public function bind($messId, $data = NULL)
 {
     $cache = new memBuff();
     $idx = -1;
     if (empty($this->_binds)) {
         $this->_binds = $cache->get(self::MASSSEND_BIND_CACHE_KEY);
         if (!is_array($this->_binds)) {
             $this->_binds = array();
         }
     }
     if (count($this->_binds) >= 100) {
         array_shift($this->_binds);
     }
     for ($i = count($this->_binds) - 1; $i >= 0; $i--) {
         if ($this->_binds[$i]['__messId'] == $messId) {
             $idx = $i;
             break;
         }
     }
     if (is_null($data)) {
         return $idx >= 0 ? $this->_binds[$idx] : array();
     } else {
         $data['__messId'] = $messId;
         if ($idx >= 0) {
             $this->_binds[$idx] = $data;
         } else {
             $this->_binds[] = $data;
         }
         $cache->set(self::MASSSEND_BIND_CACHE_KEY, $this->_binds, 3600 * 48);
     }
 }
开发者ID:Nikitian,项目名称:fl-ru-damp,代码行数:43,代码来源:masssend.php

示例4: updateCache

 /**
  * Обновить кеш цен
  * 
  * @global type $DB
  * @return boolean
  */
 public static function updateCache()
 {
     global $DB;
     self::$_cache_data = null;
     $data = $DB->rows("SELECT * FROM " . get_class($this));
     if ($data) {
         //Преобразуем в удобную форму пользования
         foreach ($data as $el) {
             self::$_cache_data[$el['op_code']][$el['param']] = $el['sum'];
         }
         $memBuff = new memBuff();
         return $memBuff->set(self::OP_CODES_PRICE_MEMCACHE_TAG, self::$_cache_data, self::OP_CODES_PRICE_MEMCACHE_LIFE);
     }
     return false;
 }
开发者ID:Nikitian,项目名称:fl-ru-damp,代码行数:21,代码来源:op_codes_price.php

示例5: getCBRates

/**
 * Получает курсы валют с сайта ЦБ
 *
 * @return array массив, индексированный кодами валют (USD, EUR и т.д.), элементы которого есть свойства данной валюты.
 *               Курс рубля к каждой валюте берется из свойства 'Value'.
 */
function getCBRates()
{
    static $rates = NULL;
    if ($rates) {
        return $rates;
    }
    $memBuff = new memBuff();
    $curr_day = strtotime(date('d.m.Y'));
    if ($rdata = $memBuff->get('getCBRates')) {
        $rates = $rdata['rates'];
        if ($rdata['day'] == $curr_day) {
            return $rates;
        }
    }
    $xml = @file_get_contents('http://www.cbr.ru/scripts/XML_daily.asp', false, stream_context_create(array('http' => array('timeout' => 1))));
    //было 5 сек
    if ($xml && get_http_response_code($http_response_header) == 200) {
        $xmlDoc = new DOMDocument();
        if (@$xmlDoc->loadXML($xml)) {
            $rates = NULL;
            $xpath = new DOMXPath($xmlDoc);
            $valutes = $xpath->query('//Valute/CharCode');
            foreach ($valutes as $v) {
                $name = $v->nodeValue;
                if ($children = $v->parentNode->childNodes) {
                    foreach ($children as $ch) {
                        if ($ch->nodeType == XML_ELEMENT_NODE) {
                            $rates[$name][$ch->nodeName] = $ch->nodeValue;
                        }
                    }
                }
            }
            //@todo: кешируем курс пока на сутки потом нужно перерабоать в крон и БД
            $memBuff->set('getCBRates', array('day' => $curr_day, 'rates' => $rates), 86400);
        }
    }
    return $rates;
}
开发者ID:amage,项目名称:fl-ru-damp,代码行数:44,代码来源:stdf5.php

示例6: getSpamCount

 /**
  * Возвращает количество жалоб о спаме, удовлетворяющих условиям выборки
  * 
  * @param  array $filter фильтр
  * @return int
  */
 function getSpamCount($filter = array())
 {
     $DB = new DB();
     // plproxy
     $aFilter = array();
     $oMemBuf = new memBuff();
     $nCount = 0;
     if (is_array($filter) && count($filter)) {
         foreach ($filter as $sKey => $sVal) {
             $aFilter[] = array($sKey, $sVal);
         }
     }
     if (empty($aFilter) && ($nCount = $oMemBuf->get('messages_spam_count')) !== false) {
         return $nCount;
     } else {
         $sQuery = 'SELECT messages_spam_get_count(?a)';
         $nCount = $DB->val($sQuery, $aFilter);
         if (empty($aFilter) && !$DB->error) {
             $oMemBuf->set('messages_spam_count', $nCount, 3600);
         }
     }
     return $nCount;
 }
开发者ID:Nikitian,项目名称:fl-ru-damp,代码行数:29,代码来源:messages_spam.php

示例7: getList

 /**
  * ¬озвращает список публичных типовых услуг по заданным услови¤м и пагинацией
  * 
  * @return array
  */
 public function getList($excluded_ids = array())
 {
     $criteria = array($this->category_id, $this->city_id, $this->country_id, $this->keywords, $this->limit, $this->offset, $this->price_ranges, $this->price_max, $this->order, $excluded_ids, $this->user_id);
     $membuf = new memBuff();
     $memkey = __METHOD__ . '#' . md5(serialize($criteria));
     if (false !== ($result = $membuf->get($memkey)) && is_release()) {
         return $result;
     }
     $sort = $this->getSort();
     # @see http://sphinxsearch.com/forum/view.html?id=11538 about city = x or country = y
     $sphinxClient = new SphinxClient();
     $sphinxClient->SetServer(SEARCHHOST, SEARCHPORT);
     $sphinxClient->SetLimits($this->offset, $this->limit, 20000);
     $sphinxClient->SetSortMode(SPH_SORT_EXTENDED, $sort);
     $sphinxClient->SetFieldWeights(array('title' => 2, 'extra_title' => 1));
     //$sphinxClient->SetRankingMode(SPH_RANK_PROXIMITY_BM25);
     $selectExpression = '*';
     // все колонки
     if ($this->user_id) {
         $selectExpression .= ", IF(user_id = {$this->user_id}, 1, 0) as match_user";
         $sphinxClient->setFilter('match_user', array(1));
     }
     if ($this->category_id) {
         $selectExpression .= ", IF(category_id = {$this->category_id} or category_parent_id = {$this->category_id}, 1, 0) as match_category";
         $sphinxClient->setFilter('match_category', array(1));
     }
     if ($this->country_id) {
         $selectExpression .= ", IF(user_country_id = {$this->country_id} or country_id = {$this->country_id}, 1, 0) as match_country";
         $sphinxClient->setFilter('match_country', array(1));
     }
     if ($this->city_id) {
         $selectExpression .= ", IF(user_city_id = {$this->city_id} or city_id = {$this->city_id}, 1, 0) as match_city";
         $sphinxClient->setFilter('match_city', array(1));
     }
     if (count($this->price_ranges)) {
         $match_price_exprs = array();
         foreach ($this->getPriceRanges() as $i => $price_range) {
             if (!isset($this->price_ranges[$i])) {
                 continue;
             }
             $match_price_exprs[] = "price_{$i} = 1";
         }
         $match_price_exprs = implode(' or ', $match_price_exprs);
         $selectExpression .= ", IF({$match_price_exprs}, 1, 0) as match_price";
         $sphinxClient->setFilter('match_price', array(1));
     }
     if ($this->price_max > 0) {
         $selectExpression .= ", IF(price <= {$this->price_max}, 1, 0) as match_price_max";
         $sphinxClient->setFilter('match_price_max', array(1));
     }
     $searchString = '';
     if (!empty($this->keywords)) {
         $keywords = implode(' ', array_filter(preg_split('/\\s*,\\s*/', $this->keywords)));
         $searchString = trim($keywords);
         //$searchString = $this->GetSphinxKeyword($searchString);
         $sphinxClient->SetMatchMode(SPH_MATCH_ANY);
         //SPH_MATCH_EXTENDED2);
     }
     if (count($excluded_ids)) {
         $sphinxClient->setFilter('tservice_id', $excluded_ids, true);
     }
     $sphinxClient->SetSelect($selectExpression);
     $queryResult = $sphinxClient->query($searchString, "tservices;delta_tservices");
     //echo '<pre>error: ', $sphinxClient->GetLastError(), '</pre>';
     //echo '<pre>warn : ', $sphinxClient->GetLastWarning(), '</pre>';
     $list = array();
     $total = 0;
     if (isset($queryResult['matches'])) {
         foreach ($queryResult['matches'] as $id => $row) {
             $row['attrs']['id'] = $id;
             $list[] = $row['attrs'];
         }
         $total = $queryResult['total_found'] < $queryResult['total'] ? $queryResult['total_found'] : $queryResult['total'];
     }
     $result = array('list' => $list, 'total' => $total);
     if ($this->_ttl) {
         $membuf->set($memkey, $result, $this->_ttl);
     }
     return $result;
 }
开发者ID:Nikitian,项目名称:fl-ru-damp,代码行数:85,代码来源:tservices_catalog.php

示例8: _setLogTable

 /**
  * Устанавливает таблицу для записи посещений.
  * @see stat_collector::Step1()
  *
  * @param string $table       имя таблицы (stat_log|stat_log_t)
  * @param boolean $only_mem   true: сохранить только в мемкэш, иначе еще и в БД.
  * @return boolean   успешно?
  */
 private function _setLogTable($table, $only_mem = false)
 {
     $MEM = new memBuff();
     if ($only_mem || $this->_sDB->update('stat_variables', array('value' => $table), 'name = ?', 'log_table')) {
         return $MEM->set(stat_collector::LOGTBL_MEM_KEY, $table, 3000);
     }
     return false;
 }
开发者ID:Nikitian,项目名称:fl-ru-damp,代码行数:16,代码来源:stat_collector.php

示例9: stream

 /**
  * Запускает "постоянное соединение" и в цикле начинает проверять новые серверные события и отсылать их
  * клиентам.
  */
 public function stream($type)
 {
     $timer = 0;
     $sConn = round(self::CONNECT_TTL * 0.7);
     $disconnect = false;
     $this->_isStream = true;
     // обязательно отключаем работу с сессией, т.к. скрипт работает длительное время
     // и он может переписать сделанные другими скриптами изменения на старые
     session_write_close();
     ob_implicit_flush(true);
     $this->_counter('connects', 1);
     while (true) {
         // переодически сохраняем данные соединения
         if (++$timer % $sConn == 0) {
             $this->_saveConnect();
         }
         // проверяем новые события при необходимости
         foreach ($this->_sEvents as $name => $event) {
             $time = microtime(true);
             $key = self::MEMBUFF_EVENTS_TIMER_KEY . $this->_uid . ':' . $name;
             $evTime = (int) $this->_memBuff->get($key);
             if ($evTime + $event['check'] < $time) {
                 $this->_memBuff->set($key, $time, self::CONNECT_TTL);
                 call_user_func(array($this, $event['func']));
             }
         }
         // поспим
         sleep(1);
         // теперь можно все отдать клиенту
         $evid = $this->_counter('evid');
         if ($this->_connect['evid'] < $evid) {
             $this->_sendEvent($this->_connect['evid'] + 1);
             $this->_connect['evid'] = $evid;
             $this->_saveConnect();
             if ($type != 'hold') {
                 $disconnect = true;
             }
         }
         if ($disconnect || $timer >= self::SCRIPT_LIVE) {
             break;
         }
         // и пробел для поддержания соеденения
         //$this->_sendByte();
     }
 }
开发者ID:kapai69,项目名称:fl-ru-damp,代码行数:49,代码来源:QChat.php

示例10: header

        header("Location: " . str_replace($GLOBALS['host'], '', $location));
        //перекидываем на текущую страницу, чтобы нельзя было повторить POST по F5
        exit;
        break;
}
$header = "../header.php";
$footer = "../footer.html";
if (!$user->login) {
    include ABS_PATH . "/404.php";
    exit;
}
$obj_memcache = new memBuff();
if ($_SESSION['login']) {
    if ($_SESSION['login'] != $user->login) {
        if (!$obj_memcache->get('user_view_' . strtolower($user->login) . '_' . strtolower($_SESSION['login']))) {
            $obj_memcache->set('user_view_' . strtolower($user->login) . '_' . strtolower($_SESSION['login']), 1, 3600);
            $user->IncHits($user->login);
        }
    }
} else {
    if (!$obj_memcache->get('user_view_' . strtolower($user->login) . '_' . getRemoteIP())) {
        $obj_memcache->set('user_view_' . strtolower($user->login) . '_' . getRemoteIP(), 1, 3600);
        $user->IncHits($user->login);
    }
}
if ($user->is_banned && !hasPermissions('users')) {
    if (!$content) {
        $content = "ban.php";
    }
} else {
    if (!$content) {
开发者ID:Nikitian,项目名称:fl-ru-damp,代码行数:31,代码来源:index.php

示例11: GetPreview

/**
 * формирует превью проекта на главной странице.
 */
function GetPreview($data)
{
    $objResponse = new xajaxResponse();
    require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/projects.php';
    require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/attachedfiles.php';
    require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/CFile.php';
    require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/HTML/projects_lenta.php';
    require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/project_exrates.php';
    require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/memBuff2.php';
    $kind = 1;
    $memBuff = new memBuff();
    $htmlLenta = $memBuff->get('projectsLentaHTML');
    if (!$htmlLenta) {
        $prj = new new_projects();
        $prjs = $prj->getProjects($num_prjs, -1, 1, false, null, true);
        foreach ($prjs as &$proj) {
            // стираем принадлежность проекта к пользователю, чтобы не появилось кнопок РЕДАКТИРОВАТЬ и пр.
            unset($proj['user_id']);
        }
        unset($proj);
        $htmlPrj = new HTMLProjects();
        $htmlPrj->template = '/projects/tpl.lenta.new.php';
        $prj_content = $htmlPrj->ShowProjects($num_prjs, $prjs, 1, 1, null, true);
        $prfs = new professions();
        $profs = $prfs->GetAllProfessions('', 0, 1);
        // подложка с лентой проектов
        ob_start();
        include $_SERVER['DOCUMENT_ROOT'] . '/templates/main.php';
        $htmlLenta = ob_get_clean();
        // кэшируем ленту проектов
        $memBuff->set('projectsLentaHTML', $htmlLenta, 1800);
    }
    // подготавливаем данные для шаблона в ленту проектов
    $row = array();
    $row['kind'] = __paramValue('int', $data['kind']);
    $row['cost'] = __paramValue('int', $data['cost']);
    $row['currency'] = __paramValue('int', $data['currency_db_id']);
    $row['priceby'] = __paramValue('int', $data['priceby_db_id']);
    $row['name'] = stripslashes(__paramValue('html', $data['name'], null, true));
    $contacts = array('phone' => array('name' => 'Телефон', 'value' => ''), 'site' => array('name' => 'Сайт', 'value' => ''), 'icq' => array('name' => 'ICQ', 'value' => ''), 'skype' => array('name' => 'Skype', 'value' => ''), 'email' => array('name' => 'E-mail', 'value' => ''));
    if (isset($data['contacts'])) {
        foreach ($data['contacts'] as $name => $value) {
            if (!isset($contacts[$name])) {
                continue;
            }
            switch ($name) {
                case 'site':
                    if (!url_validate(ltrim(ltrim($value, 'http://'), 'https://')) && trim($value) != '') {
                        $error["contact_{$name}"] = 'Поле заполнено некорректно';
                    }
                    if (strpos($value, 'htt') === false && trim($value) != '') {
                        $value = 'http://' . $value;
                    }
                    break;
                case 'email':
                    if (!is_email($value) && trim($value) != '') {
                        $error["contact_{$name}"] = 'Поле заполнено некорректно';
                    }
                    break;
            }
            $contacts[$name]['value'] = __paramValue('htmltext', stripslashes($value));
        }
        $row['contacts'] = serialize($contacts);
    }
    $descrFull = stripslashes(__paramValue('html', $data['descr'], null, true));
    $descr = preg_replace('/^ /', "", $descrFull);
    $descr = preg_replace("/(\n) /", "\$1", $descr);
    $descr = reformat(strip_tags(htmlspecialchars(LenghtFormatEx(htmlspecialchars_decode($descr, ENT_QUOTES), 180), ENT_QUOTES), '<br />'), 50, 1, 0, 1);
    $descr = preg_replace("//", '&nbsp;', $descr);
    $row['descr'] = $descr;
    $row['t_is_payed'] = $data['logo_ok'] || $data['top_ok'];
    $row['t_is_ontop'] = __paramValue('bool', $data['top_ok']);
    $row['t_pro_only'] = $data['pro_only'] ? 't' : 'f';
    $row['t_verify_only'] = $data['verify_only'] ? 't' : 'f';
    $row['t_urgent'] = $data['urgent'] ? 't' : 'f';
    $row['t_hide'] = $data['hide'] ? 't' : 'f';
    $row['create_date'] = date('Y-m-d H:i', strtotime(date('Y-m-d H:i:s')) - 120);
    // делаем дату публикации 2 минуты назад
    $row['end_date'] = __paramValue('string', $data['end_date']);
    $row['win_date'] = __paramValue('string', $data['win_date']);
    $row['country'] = __paramValue('int', $data['project_location_columns'][0]);
    $row['city'] = __paramValue('int', $data['project_location_columns'][1]);
    list($row['country_name'], $row['city_name']) = explode(': ', __paramValue('string', $data['location']));
    $logoOK = __paramValue('bool', $data['logo_ok']);
    $topOK = __paramValue('bool', $data['top_ok']);
    $row['link'] = __paramValue('string', $data['link']);
    if ($logoOK) {
        $logoAttach = new attachedfiles($data['logo_attachedfiles_session']);
        $logoFiles = $logoAttach->getFiles(array(1));
        if (count($logoFiles)) {
            $logoFile = array_pop($logoFiles);
            // загружено может быть несколько файлов, берем последний
            $logoCFile = new CFile($logoFile['id']);
        } elseif (__paramValue('int', $data['logo_file_id'])) {
            $logoCFile = new CFile(__paramValue('int', $data['logo_file_id']));
        }
        $row['logo_name'] = $logoCFile->name;
//.........这里部分代码省略.........
开发者ID:kapai69,项目名称:fl-ru-damp,代码行数:101,代码来源:public.server.php

示例12: createBill

 /**
  * Создание счета @see class qiwipay.
  *
  * @param array $request параметры ($_POST).
  *
  * @return unknown
  */
 public function createBill($request)
 {
     if (!$this->uid) {
         return 'Пользователь не определен';
     }
     $account = new account();
     $account->GetInfo($this->uid, true);
     if ($error = $this->validate($request, $account->id)) {
         return $error;
     }
     $this->DB->start();
     $aData = array('account_id' => $account->id, 'phone' => $this->form['phone'], 'sum' => $this->form['sum']);
     $id = $this->DB->insert('qiwi_account', $aData, 'id');
     if ($id) {
         $params = new createBill();
         $params->login = $this->login;
         // логин
         $params->password = $this->passwd;
         // пароль
         $params->user = $this->form['phone'];
         // пользователь, которому выставляется счет
         $params->amount = $this->form['sum'];
         // сумма
         $params->comment = $this->form['comment'];
         // комментарий
         $params->txn = $id;
         // номер заказа
         $params->lifetime = $this->ltime;
         // время жизни (если пусто, используется по умолчанию 30 дней)
         $params->alarm = $this->alarm_sms;
         if ($this->passwd == 'debug') {
             $result = 1;
         } else {
             $result = $this->service->createBill($params)->createBillResult;
         }
         if ($err = $this->_checkResultError($result)) {
             $error['qiwi'] = $err;
             $this->DB->rollback();
             die;
             return $error;
         }
         unset($aData['sum']);
         $sCode = substr($aData['phone'], 0, 3);
         $sNum = substr($aData['phone'], 3);
         $sOper = $this->DB->val('SELECT COALESCE(operator_id, 0) FROM mobile_operator_codes 
             WHERE code = ? AND ? >= start_num AND ? <= end_num', $sCode, $sNum, $sNum);
         $aData['operator_id'] = $sOper;
         $this->DB->insert('qiwi_phone', $aData);
         $memBuff = new memBuff();
         $nStamp = time();
         $sKey = 'qiwiPhone' . $account->id . '_' . $aData['phone'];
         if (!($aData = $memBuff->get($sKey))) {
             $aData = array('time' => $nStamp, 'cnt' => 0);
         }
         $aData['time'] = $aData['time'] + 3600 > $nStamp ? $aData['time'] : $nStamp;
         $aData['cnt'] = $aData['time'] + 3600 > $nStamp ? $aData['cnt'] + 1 : 1;
         $memBuff->set($sKey, $aData, 3600);
         //-----------------------------------
     }
     $this->DB->commit();
     $this->saveBillForm();
     return 0;
 }
开发者ID:kapai69,项目名称:fl-ru-damp,代码行数:70,代码来源:qiwipay_soap.php

示例13: GetNewFrlEventsCount

 /**
  * Возвращает количество новых событий в проектах фрилансера.
  *
  * @param integer $user_id id фрилансера
  * @param boolean $waster  учитывать проекты в корзине?
  *
  * @return integer
  */
 public function GetNewFrlEventsCount($user_id, $waste = true)
 {
     global $DB;
     $mem = new memBuff();
     $key = 'prjEventsCnt' . ($waste ? 'Wst' : '') . $user_id;
     $count = $mem->get($key);
     if ($count === FALSE || is_array($count)) {
         $ex_where = $waste ? '' : ' AND po.is_waste = false ';
         $sql = "\n                SELECT count(po.*) \n                FROM projects_offers AS po\n                LEFT JOIN projects p \n                    ON p.id = po.project_id\n                WHERE \n                    p.state = 0\n                    AND po.po_frl_read = false \n                    {$ex_where}\n                    AND po.user_id = ?i \n               LIMIT 1";
         $count = (int) $DB->val($sql, $user_id);
         $mem->set($key, $count, 1800);
     }
     return $count;
 }
开发者ID:kapai69,项目名称:fl-ru-damp,代码行数:22,代码来源:projects_offers.php

示例14: getExcDaysInit

 /**
  * Берем данные за определенный год.
  * 
  * @global type $DB
  *
  * @param mixed $year  Год, если нет текущий
  * @param bool  $set   Записать данные сразу в переменные класса или нет
  * @param bool  $cache Использовать кеш или нет
  *
  * @return type
  */
 public function getExcDaysInit($year = false, $set = false, $cache = true)
 {
     global $DB;
     if ($year == false) {
         $year = $this->format('Y');
     }
     $mem = new memBuff();
     $exc_days = $cache ? $mem->get("exc_days_{$year}") : false;
     if ($exc_days === false) {
         $sql = 'SELECT * FROM exception_date WHERE year = ?';
         $exc_days = $DB->row($sql, $year);
         $mem->set("exc_days_{$year}", $exc_days, 1800);
     }
     if (!$exc_days) {
         return array();
     }
     $workdays = $this->initCollectionDate($exc_days['workdays']);
     $holidays = $this->initCollectionDate($exc_days['holidays']);
     if ($set) {
         $this->setWorkdays($workdays, true);
         $this->setHolidays($holidays, true);
         return;
     }
     return $exc_days;
 }
开发者ID:kapai69,项目名称:fl-ru-damp,代码行数:36,代码来源:LocalDateTime.php

示例15: getMaxPrice

 /**
  * Возвращает максимальную сумму покупки, проверив, покупал ли юзер 
  * что-нибудь через Плати потом ранее.
  *
  * @param type $bill_id ИД счета
  *
  * @return int
  */
 public function getMaxPrice($bill_id = 0)
 {
     $maxPrice = self::PRICE_MAX;
     if ($this->is_pro) {
         $maxPrice = self::PRICE_MAX_PRO;
     } else {
         $uid = get_uid(false);
         if ($uid > 0) {
             $memBuff = new memBuff();
             if ($maxPriceSaved = $memBuff->get('platipotom_max_price_' . $uid)) {
                 return $maxPriceSaved;
             } else {
                 if (!$bill_id) {
                     $account = new account();
                     $account->GetInfo($uid, true);
                     $bill_id = $account->id;
                 }
                 $sql = 'SELECT id FROM account_operations WHERE op_code = 12 AND payment_sys = ?i AND billing_id = ?i';
                 $operation_id = $this->db()->val($sql, self::PAYMENT_CODE, $bill_id);
                 if ($operation_id) {
                     $maxPrice = self::PRICE_MAX_MORE;
                 }
                 $memBuff->set('platipotom_max_price_' . $uid, $maxPrice);
             }
         }
     }
     return $maxPrice;
 }
开发者ID:kapai69,项目名称:fl-ru-damp,代码行数:36,代码来源:platipotom.php


注:本文中的memBuff::set方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。