PDOException: SQLSTATE[HY000]: General error: 1030 Got error 28
Phalcon Framework 1.2.3 [http://docs.phalconphp.com/en/1.2.3/] PDOException: SQLSTATE[HY000]: General error: 1030 Got error 28 from storage engine /var/www/openua/data/www/open-ua.com/apps/backend/models/Towns.php (224) Backtrace Request Server Included Files Memory #0 PDO -> query ( DESCRIBE `towns` ) #1 Phalcon\Db\Adapter\Pdo -> query ( DESCRIBE `towns` , null , null ) #2 Phalcon\Db\Adapter -> fetchAll ( DESCRIBE `towns` , 3 ) #3 Phalcon\Db\Adapter\Pdo\Mysql -> describeColumns ( towns , null ) #4 Phalcon\Mvc\Model\MetaData\Strategy\Introspection -> getMetaData ( Object(Modules\Backend\Models\Towns: 11) , Object(Phalcon\DI\FactoryDefault) ) #5 Phalcon\Mvc\Model\MetaData -> _initialize ( Object(Modules\Backend\Models\Towns: 11) , modules\backend\models\towns-towns , towns , null ) #6 Phalcon\Mvc\Model\MetaData -> readMetaDataIndex ( Object(Modules\Backend\Models\Towns: 11) , 0 ) #7 Phalcon\Mvc\Model\MetaData -> getAttributes ( Object(Modules\Backend\Models\Towns: 11) ) #8 Phalcon\Mvc\Model\Query -> _executeSelect ( Array([models] => Array([0] => Modules\Backend\Models\Towns), [tables] => Array([0] => towns), [columns] => Array([modules\Backend\Models\Towns] => Array([type] => object, [model] => Modules\Backend\Models\Towns, [column] => towns, [balias] => modules\Backend\Models\Towns))) , null , null ) #9 Phalcon\Mvc\Model\Query -> execute ( null , null ) #10 Phalcon\Mvc\Model :: find () /var/www/openua/data/www/open-ua.com/apps/backend/models/Towns.php (224) id; } public function getSource() { return $this->type_obj; } public function getRegionId() { return $this->region_id; } public function getAlias() { return $this->alias; } public function getPublish() { return $this->publish; } public function getLangId() { return $this->lang_id; } public function getGpsX() { return $this->gps_x; } public function getGpsY() { return $this->gps_y; } public function getZoom() { return $this->zoom; } public function getName($lang_id = false, $id = false) { $id = (empty($id)) ? $this->id : $id; return $this->getTranslationVariable('name', $lang_id, $id); } public function getDescription($lang_id = false, $id = false) { $id = (empty($id)) ? $this->id : $id; return $this->getTranslationVariable('description', $lang_id, $id); } public function getTranslationId($lang_id = false, $id = false) { $id = (empty($id)) ? $this->id : $id; return $this->getTranslationVariable('id', $lang_id, $id); } public function getMetaTitle($lang_id = false, $id = false) { $id = (empty($id)) ? $this->id : $id; return $this->getTranslationVariable('metatitle', $lang_id, $id); } public function getMetaDescription($lang_id = false, $id = false) { $id = (empty($id)) ? $this->id : $id; return $this->getTranslationVariable('metadescription', $lang_id, $id); } public function getMetaKeywords($lang_id = false, $id = false) { $id = (empty($id)) ? $this->id : $id; return $this->getTranslationVariable('metakeywords', $lang_id, $id); } public function getRegionName($id = false) { $id = (empty($id)) ? $this->region_id : $id; $region = new Regions; $region->id = $id; return $region->getName(); } public function getRegionAlias() { $region = Regions::findFirst($this->region_id); return $region->getAlias(); } public function searchWikiText($text) { $wiki = new Wiki; $result = $wiki->searchContent($text); $this->json_output($result, true); } public function getWikiText($text) { $wiki = new Wiki; $result = $wiki->getContent($text); die($result); } public function getTown($params = false) { $params = (empty($params)) ? $this->id : $params; $currTown = $this::findFirst($params); $this->getAllTranslations($currTown->getId()); $outputVars = array( 'id' => $currTown->getId(), 'region_id' => $currTown->getRegionId($currTown->getId()), 'region_name' => $currTown->getRegionName($currTown->getId()), 'publish' => $currTown->getPublish(), 'region_alias' => $currTown->getRegionAlias(), 'gps_x' => $currTown->getGpsX(), 'gps_y' => $currTown->getGpsY(), 'zoom' => $currTown->getZoom(), 'alias' => $currTown->alias ); $params = array( 'type_obj' => $this->getSource(), 'id_obj' => $currTown->getId() ); $wiki = new Wiki; $wikiInfo = $wiki->getContents($params); // print_r($wikiInfo); exit; if (!empty($wikiInfo)) { $outputVars['wiki'] = $wikiInfo; } $langs = Lang::find(); foreach ($langs as $v) { $outputVars[$v->id] = array( 'name' => $currTown->getName($v->id), 'description' => $currTown->getDescription($v->id), 'metatitle' => $currTown->getMetaTitle($v->id), 'metadescription' => $currTown->getMetaDescription($v->id), 'metakeywords' => $currTown->getMetaKeywords($v->id), 'translation_id' => $currTown->getTranslationId($v->id) ); } return $outputVars; } // public function getTownsList() // { // $townsList = $this::Find(); // $outputVars = array(); // $langs = Lang::find(); // foreach ($townsList as $v) // { // $townVars = array( // 'id' => $v->id, // 'region_id' => $v->region_id, // 'region_name' => $v->getRegionName(), // 'region_alias' => $v->getRegionAlias(), // 'publish' => $v->getPublish(), // 'gps_x' => $v->getGpsX(), // 'gps_y' => $v->getGpsY(), // 'zoom' => $v->getZoom(), // 'alias' => $v->alias, // 'name' => $v->getName($this->lang_id), // 'description' => $v->getDescription($this->lang_id), // 'metatitle' => $v->getMetaTitle($this->lang_id), // 'metadescription' => $v->getMetaDescription($this->lang_id), // 'metakeywords' => $v->getMetaKeywords($this->lang_id), // 'translation_id' => $v->getTranslationId($this->lang_id) // ); // // foreach($langs as $v2) // { // $townVars['langs'][$v2->id] = array ( // 'name' => $v->getName($v2->id), // 'description' => $v->getDescription($v2->id), // 'metatitle' => $v->getMetaTitle($v2->id), // 'metadescription' => $v->getMetaDescription($v2->id), // 'metakeywords' => $v->getMetaKeywords($v2->id), // 'translation_id' => $v->getTranslationId($v2->id) // ); // } // // $outputVars[] = $townVars; // } // return $outputVars; // } public function getTownsList($langId) { $townsList = $this::Find(); $outputVars = array(); foreach ($townsList as $v) { $townVars = array( 'id' => $v->id, 'region_id' => $v->region_id, 'region_name' => $v->getRegionName(), 'region_alias' => $v->getRegionAlias(), 'publish' => $v->getPublish(), 'gps_x' => $v->getGpsX(), 'gps_y' => $v->getGpsY(), 'zoom' => $v->getZoom(), 'alias' => $v->alias, 'name' => $v->getName($this->lang_id), 'description' => $v->getDescription($this->lang_id), 'metatitle' => $v->getMetaTitle($this->lang_id), 'metadescription' => $v->getMetaDescription($this->lang_id), 'metakeywords' => $v->getMetaKeywords($this->lang_id), 'translation_id' => $v->getTranslationId($this->lang_id) ); $outputVars[] = $townVars; } return $outputVars; } public function addTown($townVars, $action = 'create') { $error = false; $aliasName = $townVars['alias']; $aliasExp = explode("/[\0\x0B\t\n\r\f\a&=+%#<>\"~:`@\?\[\]\{\}\|\^'\\\!\.\)\(]/", $aliasName); $alias = strtolower((string)$aliasExp[0]); $this->region_id = $townVars['region_id']; $this->publish = $townVars['publish']; $this->gps_x = $townVars['gps_x']; $this->gps_y = $townVars['gps_y']; $this->zoom = $townVars['zoom']; $regionAlias = $this->getRegionAlias(); $langs = Lang::find(); if (!file_exists('data/' . $regionAlias)) { $error = 1; // Ошибка создания дирректории города } else { $dir = 'data/' . $regionAlias . '/' . $alias; if (!file_exists($dir) && $action == 'create') { mkdir($dir); if (!file_exists($dir . '/photo')) mkdir($dir . '/photo'); if (!file_exists($dir . '/tours')) mkdir($dir . '/tours'); if (!file_exists($dir . '/video')) mkdir($dir . '/video'); } elseif ($action == 'edit') { $this->id = $townVars['id']; $currRegion = $this::findFirst($this->id); $old_alias = $currRegion->getAlias(); rename('data/' . $regionAlias . '/' . $old_alias, $dir); } else $error = 1; // ошибка создания дирректории города } if (!empty($townVars['files']) && count($townVars['files']) > 0) foreach ($townVars['files'] as $file) { if ($file->getKey() == 'image') { $img_name = $dir . '/' . $alias . '.jpg'; $image = new Image(); $image->load($file->getTempName()); $image->resize(227, 227); $image->save($img_name); } if ($file->getKey() == 'herb') { $img_name = $dir . '/' . $alias . '_herb.jpg'; $image = new Image(); $image->load($file->getTempName()); $width = $image->getWidth(); if ($width > 90) $image->resizeToWidth(90); $image->save($img_name); } } if (empty($error)) { $this->alias = $alias; $town = $this->save(); if (!empty($town)) { $type_obj = $this->getSource(); $id_obj = $this->getId(); if (!empty($townVars['wiki_res'])) { $wiki_params = array( 'type_obj' => $type_obj, 'id_obj' => $id_obj, 'article' => $townVars['wiki_res'], 'wiki_text' => $townVars['wiki_text'] ); if ($action == 'edit' && !empty($townVars['wiki_id'])) $wiki_params['wiki_id'] = $townVars['wiki_id']; $wiki = new Wiki; $wiki->addArticle($wiki_params); } foreach ($langs as $v) { $curr_lang_id = $v->getId(); $translation_var = new Translation; $translationVars = array( 'translation_id' => $townVars['translation_ids'], 'name' => $townVars['names'][$curr_lang_id], 'description' => $townVars['descriptions'][$curr_lang_id], 'metatitle' => $townVars['metatitles'][$curr_lang_id], 'metadescription' => $townVars['metadescriptions'][$curr_lang_id], 'keywords' => $townVars['metakeywords'][$curr_lang_id], 'type_obj' => $type_obj, 'id_obj' => $id_obj ); $translation_var->addTranslation($translationVars, $curr_lang_id); /* if($translation_var->addTranslation($translationVars, $curr_lang_id) == 'error') $error = 2; // Ошибка добавления константы */ } } else $error = 3; // Ошибка добавления города } $output = array(); echo ""; if (!empty($error)) $output['error'] = $error; else $output = array('success' => 1, 'town_id' => $this->getId()); return $output; } public function generateXMLCache($town_id) { set_time_limit(0); $town_info = $this->getTown($town_id); // print_r($town_info); exit; $xml_path = 'data/' . $town_info['region_alias'] . '/' . $town_info['alias']; // рабочий файл для загрузки $include_content = file_get_contents('data/include_work.xml'); $this->saveXML($xml_path, 'include_work', $include_content); $include_share_content = file_get_contents('data/include_work1.xml'); $this->saveXML($xml_path, 'include_work1', $include_share_content); $pano = new BackendPano; $panoList = $pano->getPanoList(array('town' => $town_id)); $global_scene = '
' . "\n"; $start_scene = '' . "\n"; $global_hs_texts = '' . "\n"; $textFileContent = '' . "\n"; $mapFileContent = '' . "\n" . '' . "\n"; $langs = Lang::find(); $xml_aero = file_get_contents('data/scene_work_aero_global.xml'); $start_xml_aero = file_get_contents('data/scene_start_aero_global.xml'); $xml_land = file_get_contents('data/scene_work_global.xml'); $start_xml_land = file_get_contents('data/scene_start_global.xml'); $gallery = new Gallery(); $blocks = $gallery->createXML($panoList[0]['gallery_id']); foreach ($panoList as $k => $v) { // if($k>=90) { $scene_content = ($v['type'] == 1) ? $xml_aero : $xml_land; $start_scene_content = ($v['type'] == 1) ? $start_xml_aero : $start_xml_land; // $scene_content = file_get_contents('data/' . $xml_file); $textFileContent .= '' . "\n"; foreach ($langs as $v2) { $curr_lang_id = $v2->getId(); $curr_lang_iso = $v2->getIsoCode(); $textFileContent .= '' . "\n"; } $textFileContent .= '' . "\n"; $path = 'tours/' . $v['id'] . '/img/' . $v['id'] . '.tiles/'; $for_block = ''; if (!empty($v['gallery_id'])) { $for_block = ""; foreach ($blocks as $v2) { if ($v2['scene'] == $v['id']) $for_block = 'for_block="block_' . $v2['block'] . '"'; } } $xml_size_path = 'data/_sizes/' . $v['size'] . '.xml'; $xml_size_content = @file_get_contents($xml_size_path); $xml_size_content = str_replace('{path}', $path, $xml_size_content); $scene_content = str_replace(array('{hlookat}', '{vlookat}', '{path}', '{pano_id}', '{to}', '{scene_name}', '{scene_title}', '{vlookatmin}', '{vlookatmax}', '{for_block}', '{size_xml}'), array($v['hview'], $v['vview'], $path, $v['id'], 's' . $v['prev_pano'], 's' . $v['id'], $v['id'], $v['vlookatmin'], $v['vlookatmax'], $for_block, $xml_size_content), $scene_content); $start_scene_content = str_replace(array('{hlookat}', '{vlookat}', '{path}', '{pano_id}', '{to}', '{scene_name}', '{scene_title}', '{vlookatmin}', '{vlookatmax}', '{for_block}', '{size_xml}'), array($v['hview'], $v['vview'], $path, $v['id'], 's' . $v['prev_pano'], 's' . $v['id'], $v['id'], $v['vlookatmin'], $v['vlookatmax'], $for_block, $xml_size_content), $start_scene_content); $global_scene .= $scene_content . "\n"; $hotspot = new Hotspots; $pano_xml_points = $hotspot->generatePoints($v['id']); $global_scene .= $pano_xml_points['content'] . "\n"; $mapFileContent .= $pano_xml_points['map_content']; $global_scene .= '' . "\n"; $start_scene .= $start_scene_content; $global_hs_texts .= $pano_xml_points['texts'] . "\n"; // } } $global_scene .= ''; $start_scene .= ''; $global_hs_texts .= ''; $textFileContent .= ''; $mapFileContent .= ''; $this->saveXML($xml_path, 'scene_work', $global_scene); $this->saveXML($xml_path, 'scene_start', $start_scene); $this->saveXML($xml_path, 'hotspots_texts', $global_hs_texts); $this->saveXML($xml_path, 'texts', $textFileContent); $this->saveXML($xml_path, 'for_map', $mapFileContent); } public function removeTown($id) { $this->id = $id; $town = $this->getTown(); $error = false; // чистим константы $langs = Lang::find(); // чистим константы foreach ($langs as $v) { $constant = Translation::findFirst($town[$v->id]['translation_id']); if (!$constant || $constant->delete() === FALSE) $error = 1; } if ($town != FALSE) { // удаляем файлы $alias = $town['alias']; $regionAlias = $this->getRegionAlias(); $dir = 'data/' . $regionAlias . '/' . $alias; if (file_exists($dir)) $this->rrmdir($dir); if ($this->delete() == FALSE) { $error = 3; foreach ($town->getMessages() as $message) { $this->flashSession->error((string)$message); } } } $output = array(); if (!empty($error)) $output['error'] = $error; else $output['success'] = 1; return $output; } private function json_output($params, $encoded = false) { $params_encoded = (!$encoded) ? json_encode($params) : $params; die($params_encoded); } protected function saveXML($path, $name, $content) { $f = @fopen($path . '/' . $name . '.xml', "w"); @fwrite($f, $content); @fclose($f); } protected function getConstantDescr($field, $lang_id = false, $id) { $lang_id = $this->switchLang($lang_id); $this->getAllTranslations($id); foreach ($this->translations as $v) { if ($v->id_lang == $lang_id) $curr_translation = $v; } if (!empty($curr_translation)) { $translation = new Translation; return $translation->getVars($curr_translation, $field); } return false; } public function getTranslations() { $this->getAllTranslations(); if (!empty($this->translations)) { $translations = array(); foreach ($this->translations as $v) { $translations[$v->getLangId()] = array( 'id' => $v->getId(), 'name' => $v->getName(), 'description' => $v->getDescription(), 'params' => $v->getParams() ); } return $translations; } return false; } public function initialize() { $this->belongsTo('region_id', 'Modules\Backend\Models\Regions', 'id'); $this->belongsTo('id', 'Modules\Backend\Models\Translation', 'id_obj'); $this->belongsTo('type_obj', 'Modules\Backend\Models\Translation', 'type_obj'); } public function getRegion($parameters = null) { return $this->getRelated('Modules\Backend\Models\Regions', $parameters); } protected function switchLang($lang_id = false) { return (empty($lang_id)) ? $this->default_lang : $lang_id; } protected function getAllTranslations($id = false) { $query = "type_obj='" . $this->type_obj . "'" . ((!empty($id)) ? " AND id_obj=" . $id : ""); $this->translations = Translation::find($query); } protected function getTranslationVariable($variable, $lang_id = false, $id) { $lang_id = $this->switchLang($lang_id); return str_replace("\\", "", stripslashes($this->getConstantDescr($variable, $lang_id, $id))); } // delete non-empty directory private function rrmdir($path) { $path = rtrim($path, '/') . '/'; $items = glob($path . '*'); foreach ($items as $item) { is_dir($item) ? $this->rrmdir($item) : unlink($item); } rmdir($path); } } #11 Modules\Backend\Models\Towns -> getTownsList () /var/www/openua/data/www/open-ua.com/apps/frontend/models/Index.php (12) lang_id = 2; $townsList = $towns->getTownsList(); return $townsList; } } #12 Modules\Frontend\Models\Index -> getTownsList () /var/www/openua/data/www/open-ua.com/apps/frontend/controllers/IndexController.php (58) view->setLayout('index'); } public function indexAction() { $index = new Index; $langs_array = array ('ru', 'ua', 'en'); $req = $this->request->getQuery(); $url= array_merge(array_diff(preg_split("/\//", $req['_url']), array(''))); $filter = new \Phalcon\Filter(); if(!empty($url[0]) && in_array($url[0], $langs_array)) { $lang = $filter->sanitize($url[0], "string"); } if(empty($lang)) { $browser_lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2); if(in_array($browser_lang, $langs_array)) $lang = $browser_lang; else $lang = 'ua'; header('Location: /' . $lang . '/'); exit; } if(empty($lang)) $lang = 'ua'; switch($lang) { case 'ru': $curr_lang_id = 1; break; case 'en': $curr_lang_id = 3; break; default: $curr_lang_id = 2; } $constants = $this->get_constants(); $all_pano = new Pano; $total_count = $all_pano::count(); $townsList = $index->getTownsList(); $this->view->setVar('index', $index); $this->view->setVar('towns', $townsList); $this->view->setVar('lang', $lang); $this->view->setVar('total_count', $total_count); $this->view->setVar('lang_id', $curr_lang_id); $this->view->setVar('host', $_SERVER['HTTP_HOST']); $this->view->setVar('curr_url', 'http://' . $_SERVER['HTTP_HOST'] . '/' . $lang . '/'); $this->view->setVar('constants', $constants); } public function constantsAction() { $pano = new Pano; $panoList = $pano->getPanoList(); echo 'Pano:
'; foreach($panoList as $v) { if(!empty($v[3]['name'])) echo $v[3]['name'] . '
'; } echo '
Cities:
'; $towns = new Towns; $townsList = $towns->getTownsList(); foreach($townsList as $v) { if(!empty($v['langs'][3]['name'])) { echo $v['langs'][3]['name'] . '
'; echo $v['langs'][3]['description'] . '
'; echo $v['langs'][3]['metatitle'] . '
'; echo $v['langs'][3]['metadescription'] . '
'; echo $v['langs'][3]['metakeywords'] . '
'; } } echo '
Hotspots:
'; $hotspots = new Hotspots; $hotspotsList = $hotspots->getHotspotsList(array(1=>1)); foreach($hotspotsList as $v) { if(!empty($v[3]['name'])) echo $v[3]['name'] . '
'; } exit; } private function get_constants() { $constants = array ( 'lang_kw_title' => array ( 3 => ' - Virtual Ukraine 360', 2 => ' - Віртуальна Україна 360', 1 => ' - Виртуальная Украина 360' ), 'lang_top_title' => array ( 3 => 'Interactive guide to the cities, cultural monuments and tourist sites of Ukraine', 2 => 'Інтерактивний путівник містами, культурними пам’ятками та туристичними об’єктами України', 1 => 'Интерактивный путеводитель по городам, памятникам культуры и туристическим объектам Украины' ), 'lang_top_banner' => array ( 3 => 'Discover the beauty of
Ukraine without leaving home', 2 => 'дізнайся про мальовничі місця
України не виходячи з дому', 1 => 'узнай о красотах
Украины не выходя из дома' ), 'lang_top_waitfor' => array ( 3 => 'soon...', 2 => 'незабаром з вами...', 1 => 'скоро с вами...' ), 'lang_top_days' => array ( 3 => 'DAYS', 2 => 'ДНІВ', 1 => 'ДНЕЙ' ), 'lang_top_hours' => array ( 3 => 'HOURS', 2 => 'ГОДИН', 1 => 'ЧАСОВ' ), 'lang_top_minutes' => array ( 3 => 'MINUTES', 2 => 'ХВИЛИН', 1 => 'МИНУТ' ), 'lang_top_seconds' => array ( 3 => 'SECONDS', 2 => 'СЕКУНД', 1 => 'СЕКУНД' ), 'lang_top_subscribe' => array ( 3 => '
Subscribe on the project news', 2 => '
Підпишись на новини проекту', 1 => '
Подпишись на новости проекта' ), 'lang_top_entermail' => array ( 3 => 'Enter your email ...', 2 => 'Вкажіть Ваш email...', 1 => 'Укажите Ваш email...' ), 'lang_top_cities' => array ( 3 => 'Cities', 2 => 'Міста', 1 => 'Города' ), 'lang_comingsoon' => array ( 1 => 'Уже скоро', 2 => 'Вже скоро', 3 => 'Soon' ), 'lang_lutsk' => array ( 1 => 'Луцк', 2 => 'Луцьк', 3 => 'Lutsk' ), 'lang_odesa' => array ( 1 => 'Одесса', 2 => 'Одеса', 3 => 'Odesa' ), 'lang_ivano-frankivsk' => array( 1 => 'Ивано-Франковск', 2 => 'Івано-Франківськ', 3 => 'Ivano-Frankivsk' ), 'lang_kiev' => array ( 1 => 'Киев', 2 => 'Київ', 3 => 'Kyiv' ), 'lang_lviv' => array ( 1 => 'Львов', 2 => 'Львів', 3 => 'Lviv' ), 'lang_Krim' => array ( 1 => 'Крымское побережье', 2 => 'Кримське узберіжжя', 3 => 'Crimean coast' ), 'lang_mezhigirya' => array ( 1 => 'Межигорье', 2 => 'Межигір\'я', 3 => 'Mezhyhirya' ), 'lang_kamianets_podilskyi' => array ( 1 => 'Каменец-Подольский', 2 => 'Кам\'янець-Подільський', 3 => 'Kamianets-Podilskyi' ), 'lang_sumy' => array ( 1 => 'Сумы', 2 => 'Суми', 3 => 'Sumy' ), 'lang_top_about' => array ( 3 => 'About project', 2 => 'Про проект', 1 => 'О проекте' ), 'lang_sendmess' => array ( 1 => 'Присоединиться к проекту', 2 => 'Приєднатися до проекту', 3 => 'Join the project' ), 'lang_top_selectcity' => array ( 3 => 'Select the city', 2 => 'Обрати місто', 1 => 'Выбрать город' ), 'lang_top_shortdescr' => array ( 3 => 'The project brings together all the tourist regions and cities of Ukraine.', 2 => 'Проект об\'єднує всі туристичні регіони та міста України.', 1 => 'Проект объединяет все туристические регионы и города Украины.' ), 'lang_mailtitle' => array ( 1 => 'Вам есть, что нам сказать, или Вы желаете добавить свой объект в OpenUkraine? Позвоните или напишите нам.', 2 => 'Вам є, що нам сказати, або ви бажаєте додати свій об\'єкт до OpenUkraine? Телефонуйте або пишіть нам.', 3 => 'If you have something to tell us or you wish to add your object to OpenUkraine call or email us.' ), 'lang_top_description' => array ( 1 => 'Проект объединяет все туристические регионы и города Украины в формате 360. Он содержит различные туристические маршруты, взгляд на города и пейзажи с высоты птичьего полета, интерактивные прогулки по выбранному месту. Удобный интерфейс навигации позволяет с легкостью прогуляться по улицам выбранного города, выбрав один из предложенных туристических маршрутов или составив собственный, сориентироваться на местности (благодаря интеграции с гео-информационными системами), перейти к заинтересовавшим объектам одним кликом мышки. По желанию сразу выбрать в необходимом городе отель или ресторан, оценив его интерьер. Интересные места съемки, качественный фотоматериал побуждают пользователей познакомиться с Украиной не только виртуально, но и реально. В данный момент сайт находится в стадии разработки, но совсем скоро Вы получите возможность увидеть Украину такой, какой Вы ее еще не видели. «Open Ukraine» – открой для себя Украину!', 2 => 'Проект об\'єднує всі туристичні регіони та міста України в форматі 360. Він включає різноманітні туристичні маршрути, погляд на міста та краєвиди з висоти пташиного польоту, інтерактивні прогулянки обраним місцем. Зручний інтерфейс навігації дозволить легко прогулятися вулицями обраного міста, обравши один із запропонованих туристичних маршрутів або склавши свій, зорієнтуватися на місцевості (завдяки інтегруванню з гео-інформаційними системами), перейти до об’єктів, що зацікавили, одним кліком миші. За бажанням відразу обрати в необхідному місті готель чи ресторан, оцінивши його інтер’єр. Цікаві місця зйомки, якісний фотоматеріал заохочуватимуть відвідувачів познайомитися з Україною не тільки віртуально, але й реально. На разі сайт знаходиться на стадії розробки, але зовсім скоро ви матимете можливість побачити Україну такою, якою ви її ще не бачили. «Open Ukraine» – відкрий для себе Україну!', 3 => 'The project brings together all the tourist regions and cities of Ukraine. It contains a variety of tourist routes, an aerial view of cities and landscapes, interactive walk by the chosen place. User-friendly navigation interface allows you to walk easily through the streets of the selected city when you choose one of the tourist routes or create your own, it allows you to orient (through integration with geo-information systems), to go to interested objects with a mouse click. If you want you can immediately select the hotel or the restaurant appreciating its interior in the desired city. Interesting places of shooting, high-quality photographic material encourages users to get acquainted with Ukraine not only virtual, but real. At the moment the site is under construction but soon you will be able to see Ukraine the way you have not seen it before. Discover Ukraine!' ), 'lang_top_contacts' => array ( 3 => 'Contacts', 2 => 'Контакти', 1 => 'Контакты' ), 'lang_top_writeus' => array ( 3 => 'Write us', 2 => 'Напишіть нам', 1 => 'Напишите нам' ), 'lang_top_name' => array ( 3 => 'Your Name', 2 => 'Ваше ім\'я', 1 => 'Ваше Имя' ), 'lang_top_email' => array ( 3 => 'Your Email', 2 => 'Ваш Email', 1 => 'Ваш Email' ), 'lang_top_message' => array ( 3 => 'Message', 2 => 'Повідомлення', 1 => 'Сообщение' ), 'lang_top_send' => array ( 3 => 'Send', 2 => 'Надіслати', 1 => 'Отправить' ), 'lang_main' => array ( 1 => 'Главная', 2 => 'Головна', 3 => 'Main' ), 'lang_contacts' => array ( 1 => 'Контакты', 2 => 'Контакти', 3 => 'Contacts' ), 'lang_share' => array ( 1 => 'Поделиться с друзьями:', 2 => 'Поділитись з друзями:', 3 => 'Share with friends' ), 'lang_slogan' => array ( 1 => 'Профессиональные панорамные решения для Вашего бизнеса', 2 => 'Професійні панорамні рішення для Вашого бізнесу', 3 => 'Professional panoramic solutions for your business' ), 'lang_top_phone' => array ( 3 => 'Social-engineering project "Open Ukraine"
', 2 => 'СОЦІАЛЬНО-ІНЖИНІРИНГОВИЙ ПРОЕКТ «ВІДКРИТА УКРАЇНА»
', 1 => 'СОЦИАЛЬНО-ИНЖИНИРИНГОВЫЙ ПРОЕКТ «ОТКРЫТАЯ УКРАИНА»
' ), 'lang_top_whatis' => array ( 3 => 'What is OpenUkraine?', 2 => 'Що таке OpenUkraine?', 1 => 'Что такое OpenUkraine?' ), 'lang_top_seebird' => array ( 3 => 'Look at the city from a bird\'s eye view!', 2 => 'Поглянь на місто з висоти пташиного польоту!', 1 => 'Взгляни на город с высоты птичьего полета!' ), 'lang_top_tourplaces' => array ( 3 => 'Tourist regions and cities of Ukraine', 2 => 'Туристичні регіони і міста України', 1 => 'Туристические регионы и города Украины' ), 'lang_top_interesting' => array ( 3 => 'Interesting places, a variety of tourist routes', 2 => 'Цікаві місця зйомки, різноманітні туристичні маршрути', 1 => 'Интересные места съемки, разнообразные туристические маршруты' ), 'lang_top_multimedia' => array ( 3 => 'Unique multimedia content', 2 => 'Унікальне мультимедійне наповнення', 1 => 'Уникальное мультимедийное наполнение' ), 'lang_top_mediadescr' => array ( 3 => 'Bird\'s-eye view of cities and landscape.', 2 => 'Погляд на міста та краєвиди з висоти пташиного польоту.', 1 => 'Взгляд на города и пейзажи с высоты птичьего полета.' ), 'lang_top_quality' => array ( 3 => 'High quality', 2 => 'Висока якість', 1 => 'Высокое качество' ), 'lang_top_intguide' => array ( 3 => 'Interactive walk by the chosen place.', 2 => 'Інтерактивні прогулянки обраним місцем.', 1 => 'Интерактивные прогулки по выбранному месту.' ), 'lang_top_photoquality' => array ( 3 => 'High quality of the project visual part. High-quality photographic material.', 2 => 'Висока якість візуальної частини проекту. Якісній фотоматеріал.', 1 => 'Высокое качество визуальной части проекта. Качественный фотоматериал.' ), 'lang_top_socresource' => array ( 3 => 'Socially-oriented resource', 2 => 'Соціально-орієнтований ресурс', 1 => 'Социально-ориентированный ресурс' ), 'lang_top_openmin' => array ( 3 => 'Discover Ukraine in 5 min.', 2 => 'Відкрий Україну за 5 хв.', 1 => 'Открой Украину за 5 мин.' ), 'lang_top_letsfly' => array ( 3 => 'let\'s fly', 2 => 'політаємо?', 1 => 'полетаем?' ), 'lang_top_captured' => array ( 3 => 'already
captured
', 2 => 'відзнято
вже
', 1 => 'отснято
уже
' ), 'lang_top_panos' => array ( 3 => '3D and aero
panoramas
', 2 => '3D і аеро
панорам
', 1 => '3D и аэро
панорам
' ), 'lang_top_ilike' => array ( 3 => 'I like
OpenUkraine
', 2 => 'Мені подобається
OpenUkraine
', 1 => 'Мне нравится
OpenUkraine
' ) ); return $constants; } } #13 Modules\Frontend\Controllers\IndexController -> indexAction () #14 Phalcon\Dispatcher -> dispatch () #15 Phalcon\Mvc\Application -> handle () /var/www/openua/data/www/open-ua.com/public/index.php (425) listen(); /** * The FactoryDefault Dependency Injector automatically register the right services providing a full stack framework */ $di = new \Phalcon\DI\FactoryDefault(); $loader = new \Phalcon\Loader(); /** * We're a registering a set of directories taken from the configuration file */ $loader->registerDirs( array( __DIR__ . '/../apps/library/' ) )->register(); /** * Registering a router */ $di['router'] = function () { $router = new \Phalcon\Mvc\Router(false); $router->add('/pano/delete/{id}', array( 'module' => 'backend', 'controller' => 'pano', 'action' => 'delete' )); $router->add('/pano/delete', array( 'module' => 'backend', 'controller' => 'pano', 'action' => 'delete' )); $router->add('/pano/edit/{id}', array( 'module' => 'backend', 'controller' => 'pano', 'action' => 'edit' )); $router->add('/pano/add', array( 'module' => 'backend', 'controller' => 'pano', 'action' => 'add' )); $router->add('/pano/addhs/{id}', array( 'module' => 'backend', 'controller' => 'pano', 'action' => 'addhs' )); $router->add('/pano/indexhs/{id}', array( 'module' => 'backend', 'controller' => 'pano', 'action' => 'indexhs' )); $router->add('/pano/ediths/{id}', array( 'module' => 'backend', 'controller' => 'pano', 'action' => 'ediths' )); $router->add('/pano/deletehs/{id}', array( 'module' => 'backend', 'controller' => 'pano', 'action' => 'deletehs' )); $router->add('/pano/index', array( 'module' => 'backend', 'controller' => 'pano', 'action' => 'index' )); $router->add('/pano/list/', array( 'module' => 'backend', 'controller' => 'pano', 'action' => 'list' )); $router->add('/region/add', array( 'module' => 'backend', 'controller' => 'region', 'action' => 'add' )); $router->add('/town/add', array( 'module' => 'backend', 'controller' => 'town', 'action' => 'add' )); $router->add('/town/wikiSearch', array( 'module' => 'backend', 'controller' => 'town', 'action' => 'wikiSearch' )); $router->add('/town/wikiGet', array( 'module' => 'backend', 'controller' => 'town', 'action' => 'wikiGet' )); $router->add('/region/create', array( 'module' => 'backend', 'controller' => 'region', 'action' => 'create' )); $router->add('/region/edit/{id}', array( 'module' => 'backend', 'controller' => 'region', 'action' => 'edit' )); $router->add('/region/delete/{id}', array( 'module' => 'backend', 'controller' => 'region', 'action' => 'delete' )); $router->add('/region/delete', array( 'module' => 'backend', 'controller' => 'region', 'action' => 'delete' )); $router->add('/town/edit/{id}', array( 'module' => 'backend', 'controller' => 'town', 'action' => 'edit' )); $router->add('/town/cacheupdate/{id}', array( 'module' => 'backend', 'controller' => 'town', 'action' => 'cacheupdate' )); $router->add('/town/delete/{id}', array( 'module' => 'backend', 'controller' => 'town', 'action' => 'delete' )); $router->add('/town/delete', array( 'module' => 'backend', 'controller' => 'town', 'action' => 'delete' )); $router->add('/town/apitowns', array( 'module' => 'backend', 'controller' => 'town', 'action' => 'apitowns' )); $router->add('/pano/apitown', array( 'module' => 'backend', 'controller' => 'pano', 'action' => 'apitown' )); $router->add('/pano/pano', array( 'module' => 'backend', 'controller' => 'pano', 'action' => 'pano' )); $router->add('/town/create', array( 'module' => 'backend', 'controller' => 'town', 'action' => 'create' )); $router->add('/town/index', array( 'module' => 'backend', 'controller' => 'town', 'action' => 'index' )); $router->add('/region/create', array( 'module' => 'backend', 'controller' => 'region', 'action' => 'create' )); $router->add('/region/index', array( 'module' => 'backend', 'controller' => 'region', 'action' => 'index' )); $router->add('/gallery/index', array( 'module' => 'backend', 'controller' => 'gallery', 'action' => 'index' )); $router->add('/gallery/add', array( 'module' => 'backend', 'controller' => 'gallery', 'action' => 'add' )); $router->add('/gallery/edit/{id}', array( 'module' => 'backend', 'controller' => 'gallery', 'action' => 'edit' )); $router->add('/gallery/delete/{id}', array( 'module' => 'backend', 'controller' => 'gallery', 'action' => 'delete' )); $router->add('/admin/save', array( 'module' => 'backend', 'controller' => 'profile', 'action' => 'save' )); $router->add('/admin/edit/{id}', array( 'module' => 'backend', 'controller' => 'profile', 'action' => 'edit' )); $router->add('/admin/delete/{id}', array( 'module' => 'backend', 'controller' => 'profile', 'action' => 'delete' )); $router->add('/admin/display', array( 'module' => 'backend', 'controller' => 'index', 'action' => 'display' )); $router->add('/admin/access', array( 'module' => 'backend', 'controller' => 'index', 'action' => 'access' )); $router->add('/admin/create', array( 'module' => 'backend', 'controller' => 'profile', 'action' => 'create' )); $router->add('/auth/logout', array( 'module' => 'backend', 'controller' => 'auth', 'action' => 'logout' )); $router->add('/auth/login', array( 'module' => 'backend', 'controller' => 'auth', 'action' => 'login' )); $router->add('/test/index', array( 'module' => 'backend', 'controller' => 'test', 'action' => 'index' )); $router->add('/admin/index', array( 'module' => 'backend', 'controller' => 'index', 'action' => 'index' )); $router->add('/admin', array( 'module' => 'backend', 'controller' => 'index', 'action' => 'index' )); $router->add('/index', array( 'module' => 'frontend', 'controller' => 'index', 'action' => 'index' )); $router->add('/lang/{lang}/', array( 'module' => 'frontend', 'controller' => 'index', 'action' => 'index' )); $router->add('/', array( 'module' => 'frontend', 'controller' => 'index', 'action' => 'index' )); $router->add('/ru/', array( 'module' => 'frontend', 'controller' => 'index', 'action' => 'index' )); $router->add('/ua/', array( 'module' => 'frontend', 'controller' => 'index', 'action' => 'index' )); $router->add('/en/', array( 'module' => 'frontend', 'controller' => 'index', 'action' => 'index' )); $router->add('/map/', array( 'module' => 'frontend', 'controller' => 'map', 'action' => 'index' )); $router->add('/constants', array( 'module' => 'frontend', 'controller' => 'index', 'action' => 'constants' )); $router->add('/object', array( 'module' => 'frontend', 'controller' => 'pano', 'action' => 'object' )); $router->add('/lutsk', array( 'module' => 'frontend', 'controller' => 'pano', 'action' => 'index' )); $router->add('/share', array( 'module' => 'frontend', 'controller' => 'pano', 'action' => 'share' )); $router->setDefaults(array( 'module' => 'frontend', 'controller' => 'pano', 'action' => 'index' )); return $router; }; /** * The URL component is used to generate all kind of urls in the application */ $di->set('url', function () { $url = new \Phalcon\Mvc\Url(); $url->setBaseUri('/'); return $url; }); /** * Start the session the first time some component request the session service */ $di->set( 'session', function () { $session = new Phalcon\Session\Adapter\Files(); $session->start(); return $session; } ); $di->set( 'flashSession', function () { return new Phalcon\Flash\Session(array( 'error' => 'alert alert-error', 'success' => 'alert alert-success', 'notice' => 'alert alert-info', )); } ); /** * Handle the request */ $application = new \Phalcon\Mvc\Application(); $application->setDI($di); /** * Register application modules */ $application->registerModules(array( 'frontend' => array( 'className' => 'Modules\Frontend\Module', 'path' => '../apps/frontend/Module.php' ), 'backend' => array( 'className' => 'Modules\Backend\Module', 'path' => '../apps/backend/Module.php' ) )); echo $application->handle()->getContent(); Key Value _url /ua/ Key Value PATH /usr/local/bin:/usr/bin:/bin REDIRECT_HANDLER application/x-httpd-php5 REDIRECT_STATUS 200 HTTPS on HTTP_HOST open-ua.com HTTP_X_FORWARDED_FOR 195.128.17.206 HTTP_X_FORWARDED_PROTO https HTTP_X_FORWARDED_PORT 443 HTTP_CONNECTION close HTTP_ACCEPT_LANGUAGE uk,ru;q=0.8,en-US;q=0.5,en;q=0.3 HTTP_IF_MODIFIED_SINCE Sun, 28 Jan 2018 23:59:59 GMT HTTP_USER_AGENT Mozilla/5.0 (compatible; ARCHIVE.ORG.UA crawler) SERVER_SIGNATURE Apache/2.2.15 (CentOS) Server at open-ua.com Port 443 SERVER_SOFTWARE Apache/2.2.15 (CentOS) SERVER_NAME open-ua.com SERVER_ADDR 127.0.0.1 SERVER_PORT 443 REMOTE_ADDR 195.128.17.206 DOCUMENT_ROOT /var/www/openua/data/www/open-ua.com SERVER_ADMIN webmaster@open-ua.com SCRIPT_FILENAME /var/www/openua/data/www/open-ua.com/public/index.php REMOTE_PORT 38896 REDIRECT_QUERY_STRING _url=/ua/ REDIRECT_URL /public/index.php GATEWAY_INTERFACE CGI/1.1 SERVER_PROTOCOL HTTP/1.0 REQUEST_METHOD GET QUERY_STRING _url=/ua/ REQUEST_URI /ua/ SCRIPT_NAME /public/index.php ORIG_SCRIPT_FILENAME /var/www/php-bin/openua/php ORIG_PATH_INFO /public/index.php ORIG_PATH_TRANSLATED /var/www/openua/data/www/open-ua.com/public/index.php ORIG_SCRIPT_NAME /php-bin/php PHP_SELF /public/index.php REQUEST_TIME 1517119703 # Path 0 /var/www/openua/data/www/open-ua.com/public/index.php 1 /var/www/openua/data/www/open-ua.com/apps/frontend/Module.php 2 /var/www/openua/data/www/open-ua.com/apps/frontend/config/config.php 3 /var/www/openua/data/www/open-ua.com/apps/library/Security.php 4 /var/www/openua/data/www/open-ua.com/apps/frontend/controllers/IndexController.php 5 /var/www/openua/data/www/open-ua.com/apps/frontend/controllers/ControllerBase.php 6 /var/www/openua/data/www/open-ua.com/apps/frontend/models/Index.php 7 /var/www/openua/data/www/open-ua.com/apps/backend/models/Pano.php 8 /var/www/openua/data/www/open-ua.com/apps/backend/models/Towns.php Memory Usage 2359296