Exemple #1
0
 public function run()
 {
     $selectQs = $this->getSelectQueryString();
     $whereQs = $this->getWhereQueryString();
     if (!isset($this->query['selectStruct']) && isset($this->query['selectParams'])) {
         $this->query['selectStruct'] = array('id');
         $selectQs['selectStructString'] = 'id';
     }
     if (isset($selectQs['selectStructString'])) {
         $queryStr = 'SELECT ' . $selectQs['selectStructString'] . ' FROM `' . $this->treeStructName . '` a ';
     }
     if (isset($whereQs['whereStructString'])) {
         $queryStr .= ' WHERE ' . $whereQs['whereStructString'];
     }
     if (isset($this->query['sortByStruct'])) {
         $queryStr .= 'order by ' . $this->query['sortByStruct']['element'] . ' ' . $this->query['sortByStruct']['order'];
     } else {
         $queryStr .= ' order by rate';
     }
     if (!isset($this->query['delete'])) {
         $mark = Common::createMark($this->query);
         if ($this->enableCache && ($result = xCache::serializedRead($this->cacheDir, $mark, $this->cacheTimeout))) {
             unset($this->query);
             return $result;
         }
     }
     if ($queryStr) {
         $pdoResult = $this->PDO->query($queryStr);
         if ($nStructResults = $pdoResult->fetchAll(PDO::FETCH_GROUP | PDO::FETCH_ASSOC)) {
             $nStructResults = array_map('reset', $nStructResults);
         }
     }
     // get all params as nodes
     if (isset($whereQs['whereParamsString'])) {
         $queryStr = 'select node_name, count( node_name ) as CCOUNT from ' . $this->treeParamName . ' b  WHERE ' . $whereQs['whereParamsString'];
         $result = $this->PDO->query($queryStr);
         $nParamsResults = $result->fetchAll(PDO::FETCH_COLUMN, 0);
         // no intersection no result
         if ($nStructResults && $nParamsResults && ($nodesIntersect = array_intersect($nParamsResults, array_keys($nStructResults)))) {
             foreach ($nodesIntersect as $k => $v) {
                 $structResults[$v] = $nStructResults[$v];
             }
             $nStructResults = $structResults;
         } else {
             $this->query = array();
             return;
         }
     } else {
         $nodesIntersect = array_keys($nStructResults);
     }
     if (isset($this->query['delete'])) {
         return $this->deleteProcess($nodesIntersect);
     }
     if (isset($this->query['selectParams'])) {
         $paramsResult = $this->getParams($nodesIntersect);
         while ($pf = $paramsResult->fetch(PDO::FETCH_ASSOC)) {
             $nodesParams[$pf['node_name']][$pf['parameter']] = $pf['value'];
         }
     } else {
         $nodesParams = null;
     }
     if ($pdoResult) {
         if (isset($this->query['sortByParam'])) {
             $nSortResults = $this->sortByParam(array_keys($nStructResults));
             foreach ($nSortResults as $k) {
                 $sorted[$k] = $nStructResults[$k];
             }
             $nStructResults = $sorted;
         }
         $result = $this->formatProcess($nStructResults, $nodesParams);
         if ($this->enableCache && !$this->query['delete']) {
             xCache::serializedWrite($result, $this->cacheDir, $mark, $this->cacheTimeout);
         }
         unset($this->query);
         return $result;
     }
 }
Exemple #2
0
require_once DOCUMENT_ROOT . '/conf/init.php';
require_once xConfig::get('PATH', 'CORE') . 'core.php';
require_once xConfig::get('PATH', 'CORE') . 'helpers.tpl.php';
require_once xConfig::get('PATH', 'CLASSES') . 'cache.class.php';
session_start();
xConfig::set('GLOBAL', 'currentMode', 'front');
xRegistry::set('EVM', xEventMachine::getInstance());
xCore::pluginEventDetector();
xConfig::set('PATH', 'fullBaseUrl', CHOST . $_SERVER['REQUEST_URI']);
xConfig::set('PATH', 'baseUrl', trim($_SERVER['REQUEST_URI']));
$position = strpos(xConfig::get('PATH', 'baseUrl'), '?');
if ($position !== false) {
    xConfig::set('PATH', 'baseUrl', substr(xConfig::get('PATH', 'baseUrl'), 0, $position, '?'));
}
require_once xConfig::get('PATH', 'XOAD') . 'xoad.php';
xCache::initialize('MemCache');
xRegistry::set('TMS', $TMS = new tMultiSection());
/*
$TMS->AddFileSection(PATH_.'templates/robots.htm');
$TMS->AddReplace('robots','paramse','hello');
$TMS->AddReplace('robots','arr',array('hell'=>'d'));
echo $TMS->ParseSection('robots');*/
//xPDO
xPDO::setSource(DB_HOST, DB_NAME, DB_USER, DB_PASS);
xRegistry::set('xPDO', xPDO::getInstance());
//Enhance
xNameSpaceHolder::addObjectToNS('E', new ENHANCE());
xNameSpaceHolder::addObjectToNS('D', new DEBUG());
global $time;
$y = Common::getmicrotime();
echo $y - $time . ' instansces ready ';
Exemple #3
0
 /**
  * инициализация механизма кеширования..
  *    
  * @param mixed $driver - File,MemCache,Auto    
  */
 public static function initialize($driver = 'File')
 {
     if ($driver == 'Auto') {
         if (class_exists('Memcache')) {
             $driver = 'MemCache';
         } else {
             $driver = 'File';
         }
     }
     $driverName = 'xCache' . $driver . 'Driver';
     Common::loadDriver(__CLASS__, $driverName);
     self::$driver = $driverName;
     self::initDriver();
 }
Exemple #4
0
 function serialize_session()
 {
     xCache::serializedWrite($this->data, 'session', $this->sessionid);
 }