#0 | Phalcon\Cache\Backend\File->save(341e44d1766e62810b66ed26e5e3f3aea0841712e180, Object(Phalcon\Mvc\Model\Resultset\Simple)) /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/modules/Application/Mvc/Model/Model.php (159) <?php /** * Model * * @copyright Copyright (c) 2011 - 2014 Aleksandr Torosh (http://wezoom.com.ua) * @author Aleksandr Torosh <webtorua@gmail.com> */ namespace Application\Mvc\Model; use Application\Mvc\Helper\ArrayHelper; use Application\Mvc\Helper\Draft; use Cms\Model\Language; class Model extends \Phalcon\Mvc\Model { const CACHE_LIFETIME = 172800; const TEMPLATE_DEFAULT_NAME = 'default'; public static $lang = 'vi'; // Translation array public static $custom_lang = ''; private static $translateCache = true; public $translations = []; // Language default public $fields = []; // Used to create a sitemap protected $translations_array = []; // Translation cache usage flag /** * Translate. In order to implement a multilingual scheme, you need to copy your model of the following methods: * Start Copy: */ protected $translateModel; // translate //The name of the class associated with the translations, for example = 'Page\Model\Translate\PageTranslate' /** * Installing another language sitemap */ public static function setCustomLang($lang) { self::$custom_lang = $lang; } //End Copy /** * Setting the cache usage of the flag. * It should be set up to call other method's model. * Example: * * ModelName::setTranslateCache(false); // We set the flag. Disabling the cache is necessary when working with models * in the admin * $entries = ModelName::find(); // Retrieve data */ public static function setTranslateCache($value) { self::$translateCache = (bool)$value; } /** * List template from folder views of this module * * @return array */ public static function dropdownTemplate() { $view = \Phalcon\DI::getDefault()->get('view'); $viewDir = $view->getViewsDir(); $templateDir = $viewDir . 'index/_templates' . DIRECTORY_SEPARATOR; $result = []; if (file_exists($templateDir)) { $templates = scandir($templateDir, SCANDIR_SORT_ASCENDING); if (sizeof($templates)) { foreach ($templates as $key => $value) { if (!in_array($value, [".", ".."]) && (!is_dir($viewDir . DIRECTORY_SEPARATOR . $value))) { $result[basename($value, '.volt')] = ucwords(preg_replace('/[^a-zA-Z0-9]/', ' ', basename($value, '.volt'))); } } } } return $result; } /** * @param null $model * * @return bool */ public static function canDelete($model = null) { return true; $auth = \Phalcon\Di::getDefault()->getSession()->get('auth'); return (APPLICATION_ENV == "development" || $auth->login == 'dev'); } /** * @return bool */ public static function canAdd() { return true; $auth = \Phalcon\Di::getDefault()->getSession()->get('auth'); return (APPLICATION_ENV == "development" || $auth->login == 'dev'); } public function initialize() { $this->hasMany("id", $this->translateModel, "foreign_id"); // translate } /** * This method is invoked after removal of all the fields in the Model */ public function afterFetch() { if ($this->translateModel && defined('LANG')) { // If there is an array of translation and is set constant active language or other language if (self::$custom_lang) { self::setLang(self::$custom_lang); } else { self::setLang(LANG); // Set the current language } $this->initTranslationsArray(); // Extract translated from the associated translation table $this->initTranslations(); } } /** * Setting the language */ public static function setLang($lang) { self::$lang = $lang; } /** * Removing the transfer array */ private function initTranslationsArray($lang = null) { $cacheKey = $this->translateCacheKey($lang); if (!$lang) { $lang = self::$lang; } if (!$this->getId()) { return false; } $model = new $this->translateModel(); $query = 'foreign_id = ' . $this->getId() . ' AND lang = "' . $lang . '"'; $params = ['conditions' => $query]; if (self::$translateCache) { $cache = $this->getDi()->get('modelsCache'); $data = $cache->get($cacheKey); if (!$data) { $data = $model->find($params); if ($data) { $r = $cache->save($cacheKey, $data); } } } else { $data = $model->find($params); } $this->translations_array = $data; } public function translateCacheKey($lang = null) { if (!$lang) { $lang = self::$lang; } if (!$this->getId()) { return false; } $query = 'foreign_id = ' . $this->getId() . ' AND lang = "' . $lang . '"'; $key = HOST_HASH . md5($this->getSource() . '_translate ' . $query); return $key; } public function initTranslations() { if (!empty($this->translations_array)) { foreach ($this->translations_array as $translation) { $this->translations[$translation->getKey()] = $translation->getValue(); } } } /** * Cleansing translation cache * The method is called after updating values in the model */ public function afterUpdate() { $this->deleteTranslateCache(); } public function deleteTranslateCache() { if (!$this->getId()) { return false; } $cache = $this->getDi()->get('cache'); $cache->delete($this->translateCacheKey()); } /** * Extracting money transfers on behalf of a variable */ public function getMLVariable($key) { $action = $this->getDI()->get('view')->getActionName(); if (in_array($action, ['edit', 'add']) && isset($_POST[$key])) { return $_POST[$key]; } if (array_key_exists($key, $this->translations)) { $r = $this->translations[$key]; } elseif ($key == 'slug') { if ($this->getId()) { $defaultLang = Language::findFirstByPrimary(1); $modelTranslate = new $this->translateModel(); $query = 'foreign_id = ' . $this->getId() . ' AND lang = "' . $defaultLang->iso . '"'; $params = ['conditions' => $query]; $translates = ArrayHelper::index($modelTranslate->find($params)->toArray(), 'key'); $r = $translates['slug']['value']; } } return $r; } public function setMLVariable($key, $value, $lang = null) { if (!$this->getId()) { return false; } $model = new $this->translateModel(); if (!$lang) { $lang = self::$lang; } $conditions = "foreign_id = :foreign_id: AND lang = :lang: AND key = :key:"; $parameters = [ 'foreign_id' => $this->getId(), 'lang' => $lang, 'key' => $key, ]; $entity = $model->findFirst([ $conditions, 'bind' => $parameters]); if (!$entity) { $entity = new $this->translateModel(); $entity->setForeignId($this->getId()); $entity->setLang($lang); $entity->setKey($key); } $entity->setValue($value); $entity->save(); } /** * @return string */ public function getNameOfClass() { return get_called_class(); } public function indexBy($arrData, $column = 'id') { $result = []; foreach ($arrData as $item) { $result[$item[$column]] = $item; } return $result; } /** * @return bool */ public function canEdit() { return true; } public function saveDraft($data = [], $category = '') { $draftFileName = $this->getDraftFileName($data, $category); Draft::getInstance()->save($draftFileName, $data); return $data; } /** * @param $data * @param $category * * @return array */ private function getDraftFileName($data, $category) { $auth = \Phalcon\Di::getDefault()->getSession()->get('auth'); $isNew = !isset($data['id']); if ($isNew) { $draftFileName = "draft_new_{$auth->login}_{$this->getSource()}"; if ($category != '') { $draftFileName .= "_{$category}"; } $draftFileName .= '_' . LANG; } else { $draftFileName = "draft_edit_{$auth->login}_{$this->getSource()}_{$data['id']}_" . LANG; } return $draftFileName; } public function getDraft($category = '') { $draftFileName = $this->getDraftFileName([], $category); if ($this->getId()) { // is Editing } return $data = Draft::getInstance()->get($draftFileName); } /** * @return mixed */ public function getMetaImage() { $image = $this->getDI()->get('helper')->image([ 'id' => $this->getId(), 'type' => $this->getImgFolder("thumbnail_photo"), 'width' => 722, 'height' => 361, 'strategy' => 'a', 'stretch' => 'false', 'widthHeight' => 'false', 'hash' => true, ]); if ($image->isExists()) { return $imgPath = $image->cachedRelPath(); } return ''; } public function getImgFolder($attr = null) { if ($attr) { return $this->getSource() . '_' . $attr; } return $this->getSource(); } } |
#1 | Application\Mvc\Model\Model->initTranslationsArray() /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/modules/Application/Mvc/Model/Model.php (122) <?php /** * Model * * @copyright Copyright (c) 2011 - 2014 Aleksandr Torosh (http://wezoom.com.ua) * @author Aleksandr Torosh <webtorua@gmail.com> */ namespace Application\Mvc\Model; use Application\Mvc\Helper\ArrayHelper; use Application\Mvc\Helper\Draft; use Cms\Model\Language; class Model extends \Phalcon\Mvc\Model { const CACHE_LIFETIME = 172800; const TEMPLATE_DEFAULT_NAME = 'default'; public static $lang = 'vi'; // Translation array public static $custom_lang = ''; private static $translateCache = true; public $translations = []; // Language default public $fields = []; // Used to create a sitemap protected $translations_array = []; // Translation cache usage flag /** * Translate. In order to implement a multilingual scheme, you need to copy your model of the following methods: * Start Copy: */ protected $translateModel; // translate //The name of the class associated with the translations, for example = 'Page\Model\Translate\PageTranslate' /** * Installing another language sitemap */ public static function setCustomLang($lang) { self::$custom_lang = $lang; } //End Copy /** * Setting the cache usage of the flag. * It should be set up to call other method's model. * Example: * * ModelName::setTranslateCache(false); // We set the flag. Disabling the cache is necessary when working with models * in the admin * $entries = ModelName::find(); // Retrieve data */ public static function setTranslateCache($value) { self::$translateCache = (bool)$value; } /** * List template from folder views of this module * * @return array */ public static function dropdownTemplate() { $view = \Phalcon\DI::getDefault()->get('view'); $viewDir = $view->getViewsDir(); $templateDir = $viewDir . 'index/_templates' . DIRECTORY_SEPARATOR; $result = []; if (file_exists($templateDir)) { $templates = scandir($templateDir, SCANDIR_SORT_ASCENDING); if (sizeof($templates)) { foreach ($templates as $key => $value) { if (!in_array($value, [".", ".."]) && (!is_dir($viewDir . DIRECTORY_SEPARATOR . $value))) { $result[basename($value, '.volt')] = ucwords(preg_replace('/[^a-zA-Z0-9]/', ' ', basename($value, '.volt'))); } } } } return $result; } /** * @param null $model * * @return bool */ public static function canDelete($model = null) { return true; $auth = \Phalcon\Di::getDefault()->getSession()->get('auth'); return (APPLICATION_ENV == "development" || $auth->login == 'dev'); } /** * @return bool */ public static function canAdd() { return true; $auth = \Phalcon\Di::getDefault()->getSession()->get('auth'); return (APPLICATION_ENV == "development" || $auth->login == 'dev'); } public function initialize() { $this->hasMany("id", $this->translateModel, "foreign_id"); // translate } /** * This method is invoked after removal of all the fields in the Model */ public function afterFetch() { if ($this->translateModel && defined('LANG')) { // If there is an array of translation and is set constant active language or other language if (self::$custom_lang) { self::setLang(self::$custom_lang); } else { self::setLang(LANG); // Set the current language } $this->initTranslationsArray(); // Extract translated from the associated translation table $this->initTranslations(); } } /** * Setting the language */ public static function setLang($lang) { self::$lang = $lang; } /** * Removing the transfer array */ private function initTranslationsArray($lang = null) { $cacheKey = $this->translateCacheKey($lang); if (!$lang) { $lang = self::$lang; } if (!$this->getId()) { return false; } $model = new $this->translateModel(); $query = 'foreign_id = ' . $this->getId() . ' AND lang = "' . $lang . '"'; $params = ['conditions' => $query]; if (self::$translateCache) { $cache = $this->getDi()->get('modelsCache'); $data = $cache->get($cacheKey); if (!$data) { $data = $model->find($params); if ($data) { $r = $cache->save($cacheKey, $data); } } } else { $data = $model->find($params); } $this->translations_array = $data; } public function translateCacheKey($lang = null) { if (!$lang) { $lang = self::$lang; } if (!$this->getId()) { return false; } $query = 'foreign_id = ' . $this->getId() . ' AND lang = "' . $lang . '"'; $key = HOST_HASH . md5($this->getSource() . '_translate ' . $query); return $key; } public function initTranslations() { if (!empty($this->translations_array)) { foreach ($this->translations_array as $translation) { $this->translations[$translation->getKey()] = $translation->getValue(); } } } /** * Cleansing translation cache * The method is called after updating values in the model */ public function afterUpdate() { $this->deleteTranslateCache(); } public function deleteTranslateCache() { if (!$this->getId()) { return false; } $cache = $this->getDi()->get('cache'); $cache->delete($this->translateCacheKey()); } /** * Extracting money transfers on behalf of a variable */ public function getMLVariable($key) { $action = $this->getDI()->get('view')->getActionName(); if (in_array($action, ['edit', 'add']) && isset($_POST[$key])) { return $_POST[$key]; } if (array_key_exists($key, $this->translations)) { $r = $this->translations[$key]; } elseif ($key == 'slug') { if ($this->getId()) { $defaultLang = Language::findFirstByPrimary(1); $modelTranslate = new $this->translateModel(); $query = 'foreign_id = ' . $this->getId() . ' AND lang = "' . $defaultLang->iso . '"'; $params = ['conditions' => $query]; $translates = ArrayHelper::index($modelTranslate->find($params)->toArray(), 'key'); $r = $translates['slug']['value']; } } return $r; } public function setMLVariable($key, $value, $lang = null) { if (!$this->getId()) { return false; } $model = new $this->translateModel(); if (!$lang) { $lang = self::$lang; } $conditions = "foreign_id = :foreign_id: AND lang = :lang: AND key = :key:"; $parameters = [ 'foreign_id' => $this->getId(), 'lang' => $lang, 'key' => $key, ]; $entity = $model->findFirst([ $conditions, 'bind' => $parameters]); if (!$entity) { $entity = new $this->translateModel(); $entity->setForeignId($this->getId()); $entity->setLang($lang); $entity->setKey($key); } $entity->setValue($value); $entity->save(); } /** * @return string */ public function getNameOfClass() { return get_called_class(); } public function indexBy($arrData, $column = 'id') { $result = []; foreach ($arrData as $item) { $result[$item[$column]] = $item; } return $result; } /** * @return bool */ public function canEdit() { return true; } public function saveDraft($data = [], $category = '') { $draftFileName = $this->getDraftFileName($data, $category); Draft::getInstance()->save($draftFileName, $data); return $data; } /** * @param $data * @param $category * * @return array */ private function getDraftFileName($data, $category) { $auth = \Phalcon\Di::getDefault()->getSession()->get('auth'); $isNew = !isset($data['id']); if ($isNew) { $draftFileName = "draft_new_{$auth->login}_{$this->getSource()}"; if ($category != '') { $draftFileName .= "_{$category}"; } $draftFileName .= '_' . LANG; } else { $draftFileName = "draft_edit_{$auth->login}_{$this->getSource()}_{$data['id']}_" . LANG; } return $draftFileName; } public function getDraft($category = '') { $draftFileName = $this->getDraftFileName([], $category); if ($this->getId()) { // is Editing } return $data = Draft::getInstance()->get($draftFileName); } /** * @return mixed */ public function getMetaImage() { $image = $this->getDI()->get('helper')->image([ 'id' => $this->getId(), 'type' => $this->getImgFolder("thumbnail_photo"), 'width' => 722, 'height' => 361, 'strategy' => 'a', 'stretch' => 'false', 'widthHeight' => 'false', 'hash' => true, ]); if ($image->isExists()) { return $imgPath = $image->cachedRelPath(); } return ''; } public function getImgFolder($attr = null) { if ($attr) { return $this->getSource() . '_' . $attr; } return $this->getSource(); } } |
#2 | Application\Mvc\Model\Model->afterFetch() |
#3 | Phalcon\Mvc\Model::cloneResultMap(Object(Publication\Model\Publication: [translateModel] => Publication\Model\Translate\PublicationTranslate, [translations] => Array(), [fields] => Array()), Array(31), null, 0, false) |
#4 | Phalcon\Mvc\Model\Resultset\Simple->current() |
#5 | Phalcon\Paginator\Adapter\Model->getPaginate() /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/modules/Application/Mvc/Helper.php (582) <?php /** * Helper * * @copyright Copyright (c) 2011 - 2014 Aleksandr Torosh (http://wezoom.com.ua) * @author Aleksandr Torosh <webtorua@gmail.com> */ namespace Application\Mvc; use Application\Mvc\Router\DefaultRouter; use Carbon\Carbon; use Cms\Model\Language; use Slider\Model\Slider; class Helper extends \Phalcon\Mvc\User\Component { private $translate = null; private $admin_translate = null; public $menu; public function __construct() { $this->menu = \Menu\Helper\Menu::getInstance(); } /** * Multilanguage Translate */ public function translate($string, $placeholders = null) { if (!$this->translate) { $this->translate = $this->getDi()->get('translate'); } return $this->translate->query($string, $placeholders); } /** * Multilanguage Translate Admin Panel */ public function at($string, $placeholders = null) { if (!$this->admin_translate) { $this->admin_translate = $this->getDi()->get('admin_translate'); } return $this->admin_translate->query($string, $placeholders); } public function widget($namespace, $params = []) { return new \Application\Widget\Proxy($namespace, $params); } /** * Вызов выджета из модуля StaticWidget * * @param $id - идентификатор виджета, например "phone" */ public function staticWidget($id) { $widget = \Widget\Model\Widget::findFirst(["id='{$id}'", "cache" => ["lifetime" => 120, "key" => HOST_HASH . md5("Widget::findFirst({$id})")]]); if ($widget) { return $widget->getHtml(); } } // TODO: get static no cache public function staticWidgetNoCache($id) { $widget = \Widget\Model\Widget::findFirst(["id='{$id}'"]); if ($widget) { return $widget->getHtml(); } } public function langUrl($params, $local = true) { $routeName = $params['for']; $routeName = DefaultRouter::ML_PREFIX . $routeName . '_' . LANG; $params['for'] = $routeName; $url = $this->url->get($params); if ($local) { return $url; } return $this->url->getStaticBaseUri() . $url; } public function languages() { return Language::findCachedLanguages(); } public function langSwitcher($lang, $string) { $helper = new \Application\Mvc\Helper\LangSwitcher(); return $helper->render($lang, $string); } public function cacheExpire($seconds) { $response = $this->getDi()->get('response'); $expireDate = new \DateTime(); $expireDate->modify("+$seconds seconds"); $response->setExpires($expireDate); $response->setHeader('Cache-Control', "max-age=$seconds"); } public function isAdminSession() { $session = $this->getDi()->get('session'); $auth = $session->get('auth'); if ($auth) { if ($auth->admin_session == true) { return true; } } } public function error($code = 404) { $helper = new \Application\Mvc\Helper\ErrorReporting(); return $helper->{'error' . $code}(); } public function title($title = null, $h1 = false) { return \Application\Mvc\Helper\Title::getInstance($title, $h1); } public function meta() { return \Application\Mvc\Helper\Meta::getInstance(); } public function activeMenu() { return \Application\Mvc\Helper\ActiveMenu::getInstance(); } public function announce($incomeString, $num = 150) { $object = new \Application\Mvc\Helper\Announce(); return $object->getString($incomeString, $num); } public function dbProfiler() { $object = new \Application\Mvc\Helper\DbProfiler(); return $object->DbOutput(); } public function constant($name) { return get_defined_constants()[$name]; } public function image($args, $attributes = []) { $imageFilter = new \Image\Storage($args, $attributes); return $imageFilter; } public function querySymbol() { $object = new \Application\Mvc\Helper\RequestQuery(); return $object->getSymbol(); } public function javascript($id) { $javascript = \Cms\Model\Javascript::findCachedById($id); if ($javascript) { return $javascript->getText(); } } public function modulePartial($template, $data, $module = null) { $view = clone $this->getDi()->get('view'); $theme = $this->getDi()->get('config')['theme']; $partialsDir = ''; $moduleName = \Application\Utils\ModuleName::camelize($module); if ($theme && $module) { $themePath = APPLICATION_PATH . '/themes/' . $this->getDi()->get('config')['theme'] . '/'; if (file_exists($themePath)) { $partialsDir = '../../../themes/' . $theme . '/' . $moduleName . '/'; } else { $partialsDir = '../../../modules/' . $moduleName . '/views/'; } } elseif ($module) { $partialsDir = '../../../modules/' . $moduleName . '/views/'; } $view->setPartialsDir($partialsDir); return $view->partial($template, $data); } public function getLoggedUser() { $session = $this->getDi()->get('session'); $auth = $session->get('auth'); if ($auth) { return $auth; } } public function getPage($id) { return \Page\Model\Page::findCachedById($id); } public function getFooterPhotoGallery() { return \Slider\Model\Slider::findFirst(1); } public function getHeaderMenu() { $items = \Menu\Model\Menu::find([ 'conditions' => 'root_id = 2 AND parent_id is NULL', 'order' => 'sort_order ASC', ]); return $items; } public function getHeaderSubMenu() { $items = \Menu\Model\Menu::find([ 'conditions' => 'root_id = 4 AND parent_id is NULL', 'order' => 'sort_order ASC', ]); return $items; } public function getFooterMenu() { $items = \Menu\Model\Menu::find([ 'conditions' => 'root_id = 3 AND parent_id is NULL', 'order' => 'sort_order ASC', ]); return $items; } public function getDateFormat($lang = 'vi') { $config = $this->getDI()->get('config'); return $config['date_format'][$lang]; } public function getTimeFromInt($value) { if ($value) { $hour = floor($value / 100); $min = $value % 100; $abbreviations = $hour >= 12 ? 'pm' : 'am'; $hour = $hour > 12 ? $hour - 12 : $hour; $min = $min == 0 ? null : ($min < 10 ? '0' . $min : $min); return $min ? $hour . ':' . $min . ' ' . $abbreviations : $hour . ' ' . $abbreviations; } else { return ''; } } public function getNumberFormat($number, $decimals = 0, $dec_point = ".", $thousands_sep = ",") { return number_format($number, $decimals, $dec_point, $thousands_sep); } public function getCurrencyFormat($value, $unit = "đ ") { return $unit . $this->getNumberFormat($value); } public function slider($name, $partial = 'base') { return new \Slider\Mvc\Helper($name, $partial); } public function repository($name) { switch ($name) { case "Publication": return new \Publication\Repository\PublicationRepository(); break; } } public function initTinyMCE4() { $this->getDi()->get('assets') ->collection('admin_js') ->addJs('vendor/tinymce_4.6.4/tinymce.min.js') ->addJs('vendor/tinymce_4.6.4/plugins/compat3x/plugin.js') ->addJs('static/js/admin/tinyMCE4/plugins/bootstrap/bootstrap.js') ->addJs('static/js/admin/tinyMCE4/tinyMCE4-init.js'); } public function getLatlngFromMapURL($url) { preg_match("/([0-9]|\.)*\!4d([0-9]|\.)*/", $url, $matches); if (count($matches) > 0) { $matchStr = $matches[0]; return explode('!4d', $matchStr); } else { return false; } } public function getListArea() { $locations = \Location\Model\Location::query()->order("popular DESC")->execute(); return $locations; } public function getConfig() { return $this->di->get('config'); } public function getTheme($data) { $themes = explode(', ', $data); $aTheme = $this->di->get('config')['master_data']['theme_tour']; foreach ($themes as $key => $theme) { $themes[$key] = $aTheme[$theme]; } return implode(', ', $themes); } public function generateItinerary($data) { $itinerary = explode(', ', $data); foreach ($itinerary as $key => $des) { $itinerary[$key] = ucwords($des); } return $itinerary; } public function generateGoogleMapCord($link) { $cord = explode(',', explode('@', $link)[1]); return $cord; } public function getPopularLocation() { return \Location\Model\Location::getPopularMenu(); } public function getOtherLocation() { return \Location\Model\Location::getOtherMenu(); } public function getSliderImages($slideId = 1) { return $slider = Slider::findFirst($slideId)->getSliderImages(); } public function getHomeGallery() { $slider = Slider::findFirst(2)->getSliderImages()->toArray(); $result = []; $numberOfSlider = 7; for ($i = 0; $i < count($slider); $i += $numberOfSlider) { $temp = []; foreach (array_slice($slider, $i, $numberOfSlider) as $slide) { array_push($temp, \Slider\Model\SliderImage::findFirst($slide['id'])); } array_push($result, $temp); } return $result; } public function getGalleryAtPage($noPage) { $slider = Slider::findFirst(2)->getSliderImages([ "limit" => Slider::ITEM_PER_PAGE * $noPage, ])->toArray(); $result = []; $numberOfSlider = 7; for ($i = 0; $i < count($slider); $i += $numberOfSlider) { $temp = []; foreach (array_slice($slider, $i, $numberOfSlider) as $slide) { array_push($temp, \Slider\Model\SliderImage::findFirst($slide['id'])); } array_push($result, $temp); } $showReadMore = false; if (Slider::findFirst(2)->getSliderImages()->count() > Slider::ITEM_PER_PAGE * $noPage) { $showReadMore = true; } return [ 'gallery' => $result, 'show_read_more' => $showReadMore, ]; } public function getDateTime($timestamp, $format) { $date = new Carbon(); $date->timestamp($timstamp); return $date->format($format); // Thursday 25th of December 1975 02:15:16 PM } public function getFBPosts() { /* PHP SDK v5.0.0 */ // $fb_news = FacebookNews::find(); // $result = []; // foreach ($fb_news as $news) { // $result[] = json_decode($news->content, JSON_HEX_APOS); // } if (!$this->getDI()->get('cache')->exists('fb_news')) { $this->scrapingFBPosts(); } $result = $this->getDI()->get('cache')->get('fb_news'); return $result; } public function scrapingFBPosts() { /* PHP SDK v5.0.0 */ /* make the API call */ try { $config = $this->di->get('config'); $posts = $this->di->get('fb')->get( '/' . $config['fb_page_id'] . '/feed?limit=10', $config['fb_access_token'] )->getDecodedBody()['data']; $result = []; foreach ($posts as $post) { $fPost = $this->di->get('fb')->get( $post['id'] . "?fields=full_picture,description,name,link,message", $config['fb_access_token'] )->getDecodedBody(); if (!$fPost['full_picture']) { continue; } else { if ($fPost['description'] == '') { $fPost['description'] = $fPost['message']; } if (count($result) >= 8) { break; } elseif (strpos(strtolower($fPost['description']), '#aeswebsite') !== false) { array_push($result, $fPost); } elseif (strpos(strtolower($fPost['description']), '#aes') !== false) { array_push($result, $fPost); } else { continue; } } } return $this->storeFacebookNews($result); } catch (Facebook\Exceptions\FacebookResponseException $e) { return false; } catch (Facebook\Exceptions\FacebookSDKException $e) { return false; } catch (\Exception $e) { return false; } /* handle the result */ } public function getRegistry() { return $this->di->get('registry'); } public function getAllEvent() { // The data set to paginate $currentPage = (int)$_GET["page"]; $type = \Publication\Model\Type::findCachedBySlug(\Publication\Model\Publication::TYPE_EVENT); $events = \Publication\Model\Publication::find([ "conditions" => "type_id={$type->getId()}", "order" => "date DESC", ]); // Create a Model paginator, show 10 rows by page starting from $currentPage $paginator = new \Phalcon\Paginator\Adapter\Model( [ "data" => $events, "limit" => 10, "page" => $currentPage, ] ); // Get the paginated results $page = $paginator->getPaginate(); return $page; } public function getFeaturedArticles($order = 'date DESC', $limit = 1000) { $model = constant('\Publication\Model\Publication::TYPE_NEWS'); $articles = \Publication\Model\News::find([ 'conditions' => 'type = :typeModel: AND pin_top = :featured_article:', 'bind' => ['typeModel' => strtolower($model), 'featured_article' => \Publication\Model\Publication::STATE_ON], 'order' => $order, 'limit' => $limit, ]); return $articles; } public function getAllNews() { $currentPage = (int)$_GET["page"]; $featuredNews = \Publication\Model\News::find([ 'conditions' => 'type = :typeModel: AND pin_top = :featured_article:', 'bind' => ['typeModel' => "news", 'featured_article' => \Publication\Model\Publication::STATE_ON], 'order' => "date DESC", 'limit' => 5, 'columns' => 'id', ]); $fId = []; foreach ($featuredNews->toArray() as $featured) { array_push($fId, $featured['id']); } $ids = implode(', ', $fId); $type = \Publication\Model\Type::findCachedBySlug(\Publication\Model\Publication::TYPE_NEWS); $news = \Publication\Model\Publication::find([ "conditions" => "type_id={$type->getId()} and id NOT IN ($ids)", "order" => "date DESC", ]); // Create a Model paginator, show 10 rows by page starting from $currentPage $paginator = new \Phalcon\Paginator\Adapter\Model( [ "data" => $news, "limit" => 10, "page" => $currentPage, ] ); // Get the paginated results $page = $paginator->getPaginate(); return $page; } public function getCoordinate($ggMapLink) { $coord = explode('!4d', explode('3d', $ggMapLink)[1]); return $coord; } public function getPeople($type) { return \User\Model\User::find([ "conditions" => "type = :type:", "bind" => [ "type" => $type, ], ]); } public function parseUserExperience($experience) { $experience = preg_replace("/\r|\n/", "<br/>", $experience); $result = array_filter(explode('<br/>', trim($experience))); return $result; } } |
#6 | Application\Mvc\Helper->getAllNews() /var/www/html/ciss/aesvietnam.edu.vn/web/src/data/cache/volt/%%var%%www%%html%%ciss%%aesvietnam.edu.vn%%web%%src%%app%%themes%%default%%page%%index%%_templates%%news.volt.php (1) <?php $sideSubTitle = array('title' => $this->helper->translate('News') . '', 'color' => '#313131'); ?> <?php $paging['total'] = $source->total_pages; ?> <?php $paging['current'] = $source->current; ?> <?php $paging['next'] = $source->next; ?> <?php $paging['prev'] = $source->before; ?> <?php $source = $this->helper->getAllNews(); ?> <?php $paging['total'] = $source->total_pages; ?> <?php $paging['current'] = $source->current; ?> <?php $arrNews = array(); ?> <?php $v6331623711038596121iterator = $source->items; $v6331623711038596121incr = 0; $v6331623711038596121loop = new stdClass(); $v6331623711038596121loop->length = count($v6331623711038596121iterator); $v6331623711038596121loop->index = 1; $v6331623711038596121loop->index0 = 1; $v6331623711038596121loop->revindex = $v6331623711038596121loop->length; $v6331623711038596121loop->revindex0 = $v6331623711038596121loop->length - 1; ?><?php foreach ($v6331623711038596121iterator as $news) { ?><?php $v6331623711038596121loop->first = ($v6331623711038596121incr == 0); $v6331623711038596121loop->index = $v6331623711038596121incr + 1; $v6331623711038596121loop->index0 = $v6331623711038596121incr; $v6331623711038596121loop->revindex = $v6331623711038596121loop->length - $v6331623711038596121incr; $v6331623711038596121loop->revindex0 = $v6331623711038596121loop->length - ($v6331623711038596121incr + 1); $v6331623711038596121loop->last = ($v6331623711038596121incr == ($v6331623711038596121loop->length - 1)); ?> <?php $category = $news->getCategories(array('limit' => 1))[0]; ?> <?php $arrNews[$v6331623711038596121loop->index0] = array('image' => array('md' => array('src' => $this->helper->image(array('id' => $news->getId(), 'type' => $news->getImgFolder('cover_photo'), 'width' => 500, 'height' => 321, 'strategy' => 'a', 'stretch' => 'false', 'widthHeight' => 'false'))->cachedRelPath() . '?' . $news->getUpdatedAt(), 'media' => '1024'), 'sm' => array('src' => $this->helper->image(array('id' => $news->getId(), 'type' => $news->getImgFolder('cover_photo'), 'width' => 768, 'height' => 494, 'strategy' => 'a', 'stretch' => 'false', 'widthHeight' => 'false'))->cachedRelPath() . '?' . $news->getUpdatedAt(), 'media' => '768'), 'xs' => array('src' => $this->helper->image(array('id' => $news->getId(), 'type' => $news->getImgFolder('cover_photo'), 'width' => 460, 'height' => 296, 'strategy' => 'a', 'stretch' => 'false', 'widthHeight' => 'false'))->cachedRelPath() . '?' . $news->getUpdatedAt(), 'media' => '460')), 'title' => $news->getTitle(), 'date' => $news->getDate('d-m-Y'), 'description' => $news->getShortDescription(), 'url' => $this->helper->langUrl(array('for' => 'publication', 'slug' => $news->getSlug(), 'type' => $category->getSlug(true))), 'meta' => array('isHorizontal' => true, 'alignTop' => true, 'isGradient' => false)); ?> <?php $v6331623711038596121incr++; } ?> <div id="news_page"> <div class="breadcrumb-container"> <div class="container"><?php echo $this->helper->widget('Page')->breadcrumb($page); ?></div> </div> <div class="container"> <?php $this->partial('PatternLab/atoms-side-sub-title', array('data' => \Application\Mvc\View\Engine\Filters\CastObj::cast($sideSubTitle))); ?> </div> <div class="container"> <div class="featured_news"> <?php echo $this->helper->widget('Publication')->featured(constant('\Publication\Model\Publication::TYPE_NEWS'), 5, 'date DESC', '', 'featured_news'); ?> </div> </div> <div class="divider visible-xs visible-sm"></div> <div class="container"> <div class="another-news"> <?php $this->partial('PatternLab/organisms-list-news', array('data' => \Application\Mvc\View\Engine\Filters\CastObj::cast($arrNews))); ?> </div> <?php $this->partial('PatternLab/molecules-paging', array('data' => $paging)); ?> </div> </div> |
#7 | Phalcon\Mvc\View\Engine\Volt->render(/var/www/html/ciss/aesvietnam.edu.vn/web/src/app/themes/default/Page/index/_templates/news.volt, Array([isMobile] => , [isTablet] => , [bodyClass] => page, [page] => Object(Page\Model\Page), [active_menu] => tin-tuc, [no_page] => 4), true) |
#8 | Phalcon\Mvc\View->_engineRender(Array([.volt] => Object(Application\Mvc\View\Engine\Volt), [.phtml] => Object(Phalcon\Mvc\View\Engine\Php)), index/_templates/news, true, true, null) |
#9 | Phalcon\Mvc\View->render(index, index, Array([slug] => tin-tuc)) /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/Bootstrap.php (429) <?php namespace YonaCMS; use Admin\Model\AdminUser; /** * Bootstrap * * @copyright Copyright (c) 2011 - 2014 Aleksandr Torosh (http://wezoom.com.ua) * @author Aleksandr Torosh <webtorua@gmail.com> */ class Bootstrap { public function run() { $di = new \Phalcon\DI\FactoryDefault(); // Config require_once APPLICATION_PATH . '/modules/Cms/Config.php'; $config = \Cms\Config::get(); $di->set('config', $config); // Registry $registry = new \Phalcon\Registry(); $di->set('registry', $registry); // Loader $loader = new \Phalcon\Loader(); $loader->registerNamespaces($config->loader->namespaces->toArray()); $loader->registerDirs([APPLICATION_PATH . "/plugins/"]); $loader->register(); // Database $db = new \Phalcon\Db\Adapter\Pdo\Mysql([ "host" => $config->database->host, "username" => $config->database->username, "password" => $config->database->password, "dbname" => $config->database->dbname, "charset" => $config->database->charset, ]); $di->set('db', $db); // View $this->initView($di); // URL $url = new \Phalcon\Mvc\Url(); $url->setBasePath($config->base_path); $url->setBaseUri($config->base_path); $di->set('url', $url); // Cache $this->initCache($di); // CMS $cmsModel = new \Cms\Model\Configuration(); $registry->cms = $cmsModel->getConfig(); // Отправляем в Registry // Application $application = new \Phalcon\Mvc\Application(); $application->registerModules($config->modules->toArray()); // Events Manager, Dispatcher $this->initEventManager($di); // Session $session = new \Phalcon\Session\Adapter\Files(); $session->start(); $di->set('session', $session); $acl = new \Application\Acl\DefaultAcl(); $di->set('acl', $acl); // JS Assets $this->initAssetsManager($di); // Flash helper $flash = new \Phalcon\Flash\Session([ 'error' => 'alert alert-danger', 'success' => 'alert alert-success', 'notice' => 'alert alert-info', 'warning' => 'alert alert-warning', ]); $di->set('flash', $flash); $di->set('helper', new \Application\Mvc\Helper()); /** * Custom DI */ $di->set('email', function () use ($config) { $sendgrid_config = $config['sendgrid']; $key = $sendgrid_config['key']; $settings = $sendgrid_config['settings']; return new \Application\Mvc\EmailHelper($key, $settings); }); /** * Guzzle */ $di->set('guzzle', function () use ($config) { return new \GuzzleHttp\Client(); }); // FB $di->set('fb', function () use ($config, $registry) { return new \Facebook\Facebook([ 'app_id' => $registry->cms['FB_APP_ID'], 'app_secret' => $registry->cms['FB_APP_SECRET'], 'default_graph_version' => 'v2.11', 'default_access_token' => $registry->cms['FB_APP_ACCESS_TOKEN'], // optional ]); }); // Routing $this->initRouting($application, $di); $application->setDI($di); // Main dispatching process $this->dispatch($di); } private function initRouting($application, $di) { $router = new \Application\Mvc\Router\DefaultRouter(); $router->setDi($di); foreach ($application->getModules() as $module) { $routesClassName = str_replace('Module', 'Routes', $module['className']); if (class_exists($routesClassName)) { $routesClass = new $routesClassName(); $router = $routesClass->init($router); } $initClassName = str_replace('Module', 'Init', $module['className']); if (class_exists($initClassName)) { new $initClassName(); } } $di->set('router', $router); } private function initAssetsManager($di) { $config = $di->get('config'); $isProductionEnv = APPLICATION_ENV == "production"; $locator = $isProductionEnv ? ROOT . '/' : '/'; $jsMin = $isProductionEnv ? new \Phalcon\Assets\Filters\Jsmin() : new \Phalcon\Assets\Filters\None(); $cssMin = $isProductionEnv ? new \Phalcon\Assets\Filters\Cssmin() : new \Phalcon\Assets\Filters\None(); $assetsManager = new \Application\Assets\Manager(); if ($isProductionEnv) { $js_collection = $assetsManager->collection('js') ->setLocal(true) ->addFilter($jsMin) ->setTargetPath(ROOT . '/assets/main.js') ->setTargetUri('assets/main.js') ->join(true); } else { $js_collection = $assetsManager->collection('js')->setLocal(true); } if ($config->assets->js) { foreach ($config->assets->js as $js) { $js_collection->addJs($locator . $js); } } if ($isProductionEnv) { $css_collection = $assetsManager->collection('css') ->setLocal(true) ->addFilter($cssMin) ->setTargetPath(ROOT . '/assets/main.min.css') ->setTargetUri('/assets/main.min.css') ->join(true); } else { $css_collection = $assetsManager->collection('css')->setLocal(true); } if ($config->assets->css) { foreach ($config->assets->css as $css) { $css_collection->addCss($locator . $css); } } // Admin JS Assets $assetsManager->collection('modules-admin-js') ->setLocal(true) ->addFilter(new \Phalcon\Assets\Filters\Jsmin()) ->setTargetPath(ROOT . '/assets/modules-admin.js') ->setTargetUri('assets/modules-admin.js') ->join(true); // Admin LESS Assets $assetsManager->collection('modules-admin-less') ->setLocal(true) ->addFilter(new \Application\Assets\Filter\Less()) ->setTargetPath(ROOT . '/assets/modules-admin.less') ->setTargetUri('assets/modules-admin.less') ->join(true) ->addCss(APPLICATION_PATH . '/modules/Admin/assets/admin.less'); $di->set('assets', $assetsManager); $admin_js_first_load_collection = $assetsManager->collection('first_load_js')->join($isProductionEnv); if ($config->assets->first_load_js) { foreach ($config->assets->first_load_js as $js) { $admin_js_first_load_collection->addJs('/' . $js); } } $admin_js_collection = $assetsManager->collection('admin_js')->join($isProductionEnv); if ($config->assets->admin_js) { foreach ($config->assets->admin_js as $js) { $admin_js_collection->addJs('/' . $js); } } $admin_css_collection = $assetsManager->collection('admin_css')->setLocal(true); if ($config->assets->admin_css) { foreach ($config->assets->admin_css as $css) { $admin_css_collection->addCss('/' . $css); } } } private function initEventManager($di) { $eventsManager = new \Phalcon\Events\Manager(); $dispatcher = new \Phalcon\Mvc\Dispatcher(); $eventsManager->attach("dispatch:beforeDispatchLoop", function ($event, $dispatcher) use ($di) { new \YonaCMS\Plugin\CheckPoint($di->get('request')); new \YonaCMS\Plugin\Localization($dispatcher); new \YonaCMS\Plugin\AdminLocalization($di->get('config')); new \YonaCMS\Plugin\Acl($di->get('acl'), $dispatcher, $di->get('view')); new \YonaCMS\Plugin\MobileDetect($di->get('session'), $di->get('view'), $di->get('request')); $auth = $di->get('session')->get('auth'); if ($auth) { $role = AdminUser::getRoleById($auth->id); $di->get('view')->user_role = $role; } }); $eventsManager->attach("dispatch:afterDispatchLoop", function ($event, $dispatcher) use ($di) { new \Seo\Plugin\SeoManager($dispatcher, $di->get('request'), $di->get('router'), $di->get('view')); new \YonaCMS\Plugin\Title($di); }); // Profiler $registry = $di->get('registry'); if ($registry->cms['PROFILER']) { $profiler = new \Phalcon\Db\Profiler(); $di->set('profiler', $profiler); $eventsManager->attach('db', function ($event, $db) use ($profiler) { if ($event->getType() == 'beforeQuery') { $profiler->startProfile($db->getSQLStatement()); } if ($event->getType() == 'afterQuery') { $profiler->stopProfile(); } }); } $db = $di->get('db'); $db->setEventsManager($eventsManager); $dispatcher->setEventsManager($eventsManager); $di->set('dispatcher', $dispatcher); } private function initView($di) { $view = new \Phalcon\Mvc\View(); $theme = $di->get('config')['theme']; if ($theme) { $themePath = __DIR__ . '/themes/' . $di->get('config')['theme'] . '/'; if (file_exists($themePath)) { define('MAIN_VIEW_PATH', '../../../themes/' . $theme . '/'); } } else { define('MAIN_VIEW_PATH', '../../../views/'); } $view->setMainView(MAIN_VIEW_PATH . 'main'); $view->setLayoutsDir(MAIN_VIEW_PATH . '/layouts/'); $view->setLayout('main'); $view->setPartialsDir(MAIN_VIEW_PATH . '/partials/'); // Volt $volt = new \Application\Mvc\View\Engine\Volt($view, $di); $volt->setOptions(['compiledPath' => APPLICATION_PATH . '/../data/cache/volt/']); $volt->initCompiler(); $phtml = new \Phalcon\Mvc\View\Engine\Php($view, $di); $viewEngines = [ ".volt" => $volt, ".phtml" => $phtml, ]; $view->registerEngines($viewEngines); $eventsManager = new \Phalcon\Events\Manager(); $eventsManager->attach( "view:afterRender", new \Application\Mvc\View\Event\ShortCodeParser($view) ); $view->setEventsManager($eventsManager); $ajax = $di->get('request')->getQuery('_ajax'); if ($ajax) { $view->setRenderLevel(\Phalcon\Mvc\View::LEVEL_LAYOUT); } $di->set('view', $view); return $view; } private function initCache($di) { $config = $di->get('config'); $cacheFrontend = new \Phalcon\Cache\Frontend\Data([ "lifetime" => 172800, "prefix" => HOST_HASH, ]); $cache = null; switch ($config->cache) { case 'file': $cache = new \Phalcon\Cache\Backend\File($cacheFrontend, [ "cacheDir" => APPLICATION_PATH . "/../data/cache/backend/", ]); break; case 'memcache': $cache = new \Phalcon\Cache\Backend\Memcache( $cacheFrontend, [ "host" => $config->memcache->host, "port" => $config->memcache->port, ]); break; } $di->set('cache', $cache, true); $di->set('modelsCache', $cache, true); \Application\Widget\Proxy::$cache = $cache; // Modules Widget System $modelsMetadata = new \Phalcon\Mvc\Model\Metadata\Memory(); $di->set('modelsMetadata', $modelsMetadata); } private function dispatch($di) { $router = $di['router']; $router->handle(); $view = $di['view']; $dispatcher = $di['dispatcher']; //var_dump($router->getModuleName()); //var_dump($router->getControllerName()); //var_dump($router->getActionName()); //die; $response = $di['response']; $dispatcher->setModuleName($router->getModuleName()); $dispatcher->setControllerName($router->getControllerName()); $dispatcher->setActionName($router->getActionName()); $dispatcher->setParams($router->getParams()); $moduleName = \Application\Utils\ModuleName::camelize($router->getModuleName()); $ModuleClassName = $moduleName . '\Module'; if (class_exists($ModuleClassName)) { $module = new $ModuleClassName; $module->registerAutoloaders(); $module->registerServices($di); $theme = $di->get('config')['theme']; if ($theme) { $themePath = '/themes/' . $di->get('config')['theme'] . '/' . $moduleName . '/'; if (file_exists(__DIR__ . $themePath)) { $view->setViewsDir(__DIR__ . $themePath); } } } //echo(time());die; $view->start(); $registry = $di['registry']; if ($registry->cms['DEBUG_MODE']) { $debug = new \Phalcon\Debug(); $debug->listen(); $dispatcher->dispatch(); } else { try { $dispatcher->dispatch(); } catch (\Phalcon\Exception $e) { // Errors catching $view->setViewsDir(__DIR__ . '/modules/Index/views/'); $view->setPartialsDir(''); $view->e = $e; if ($e instanceof \Phalcon\Mvc\Dispatcher\Exception) { $response->setHeader(404, 'Not Found'); $view->partial('error/error404'); } else { $response->setHeader(503, 'Service Unavailable'); $view->partial('error/error503'); } $response->sendHeaders(); echo $response->getContent(); return; } } //die; $view->render( $dispatcher->getControllerName(), $dispatcher->getActionName(), $dispatcher->getParams() ); $view->finish(); $response = $di['response']; // AJAX $request = $di['request']; $_ajax = $request->getQuery('_ajax'); if ($_ajax) { $contents = $view->getContent(); $return = new \stdClass(); $return->html = $contents; $return->title = $di->get('helper')->title()->get(); $return->success = true; if ($view->bodyClass) { $return->bodyClass = $view->bodyClass; } $headers = $response->getHeaders()->toArray(); if (isset($headers[404]) || isset($headers[503])) { $return->success = false; } $response->setContentType('application/json', 'UTF-8'); $response->setContent(json_encode($return)); } else { $response->setContent($view->getContent()); } $response->sendHeaders(); echo $response->getContent(); } } |
#10 | YonaCMS\Bootstrap->dispatch(Object(Phalcon\Di\FactoryDefault)) /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/Bootstrap.php (124) <?php namespace YonaCMS; use Admin\Model\AdminUser; /** * Bootstrap * * @copyright Copyright (c) 2011 - 2014 Aleksandr Torosh (http://wezoom.com.ua) * @author Aleksandr Torosh <webtorua@gmail.com> */ class Bootstrap { public function run() { $di = new \Phalcon\DI\FactoryDefault(); // Config require_once APPLICATION_PATH . '/modules/Cms/Config.php'; $config = \Cms\Config::get(); $di->set('config', $config); // Registry $registry = new \Phalcon\Registry(); $di->set('registry', $registry); // Loader $loader = new \Phalcon\Loader(); $loader->registerNamespaces($config->loader->namespaces->toArray()); $loader->registerDirs([APPLICATION_PATH . "/plugins/"]); $loader->register(); // Database $db = new \Phalcon\Db\Adapter\Pdo\Mysql([ "host" => $config->database->host, "username" => $config->database->username, "password" => $config->database->password, "dbname" => $config->database->dbname, "charset" => $config->database->charset, ]); $di->set('db', $db); // View $this->initView($di); // URL $url = new \Phalcon\Mvc\Url(); $url->setBasePath($config->base_path); $url->setBaseUri($config->base_path); $di->set('url', $url); // Cache $this->initCache($di); // CMS $cmsModel = new \Cms\Model\Configuration(); $registry->cms = $cmsModel->getConfig(); // Отправляем в Registry // Application $application = new \Phalcon\Mvc\Application(); $application->registerModules($config->modules->toArray()); // Events Manager, Dispatcher $this->initEventManager($di); // Session $session = new \Phalcon\Session\Adapter\Files(); $session->start(); $di->set('session', $session); $acl = new \Application\Acl\DefaultAcl(); $di->set('acl', $acl); // JS Assets $this->initAssetsManager($di); // Flash helper $flash = new \Phalcon\Flash\Session([ 'error' => 'alert alert-danger', 'success' => 'alert alert-success', 'notice' => 'alert alert-info', 'warning' => 'alert alert-warning', ]); $di->set('flash', $flash); $di->set('helper', new \Application\Mvc\Helper()); /** * Custom DI */ $di->set('email', function () use ($config) { $sendgrid_config = $config['sendgrid']; $key = $sendgrid_config['key']; $settings = $sendgrid_config['settings']; return new \Application\Mvc\EmailHelper($key, $settings); }); /** * Guzzle */ $di->set('guzzle', function () use ($config) { return new \GuzzleHttp\Client(); }); // FB $di->set('fb', function () use ($config, $registry) { return new \Facebook\Facebook([ 'app_id' => $registry->cms['FB_APP_ID'], 'app_secret' => $registry->cms['FB_APP_SECRET'], 'default_graph_version' => 'v2.11', 'default_access_token' => $registry->cms['FB_APP_ACCESS_TOKEN'], // optional ]); }); // Routing $this->initRouting($application, $di); $application->setDI($di); // Main dispatching process $this->dispatch($di); } private function initRouting($application, $di) { $router = new \Application\Mvc\Router\DefaultRouter(); $router->setDi($di); foreach ($application->getModules() as $module) { $routesClassName = str_replace('Module', 'Routes', $module['className']); if (class_exists($routesClassName)) { $routesClass = new $routesClassName(); $router = $routesClass->init($router); } $initClassName = str_replace('Module', 'Init', $module['className']); if (class_exists($initClassName)) { new $initClassName(); } } $di->set('router', $router); } private function initAssetsManager($di) { $config = $di->get('config'); $isProductionEnv = APPLICATION_ENV == "production"; $locator = $isProductionEnv ? ROOT . '/' : '/'; $jsMin = $isProductionEnv ? new \Phalcon\Assets\Filters\Jsmin() : new \Phalcon\Assets\Filters\None(); $cssMin = $isProductionEnv ? new \Phalcon\Assets\Filters\Cssmin() : new \Phalcon\Assets\Filters\None(); $assetsManager = new \Application\Assets\Manager(); if ($isProductionEnv) { $js_collection = $assetsManager->collection('js') ->setLocal(true) ->addFilter($jsMin) ->setTargetPath(ROOT . '/assets/main.js') ->setTargetUri('assets/main.js') ->join(true); } else { $js_collection = $assetsManager->collection('js')->setLocal(true); } if ($config->assets->js) { foreach ($config->assets->js as $js) { $js_collection->addJs($locator . $js); } } if ($isProductionEnv) { $css_collection = $assetsManager->collection('css') ->setLocal(true) ->addFilter($cssMin) ->setTargetPath(ROOT . '/assets/main.min.css') ->setTargetUri('/assets/main.min.css') ->join(true); } else { $css_collection = $assetsManager->collection('css')->setLocal(true); } if ($config->assets->css) { foreach ($config->assets->css as $css) { $css_collection->addCss($locator . $css); } } // Admin JS Assets $assetsManager->collection('modules-admin-js') ->setLocal(true) ->addFilter(new \Phalcon\Assets\Filters\Jsmin()) ->setTargetPath(ROOT . '/assets/modules-admin.js') ->setTargetUri('assets/modules-admin.js') ->join(true); // Admin LESS Assets $assetsManager->collection('modules-admin-less') ->setLocal(true) ->addFilter(new \Application\Assets\Filter\Less()) ->setTargetPath(ROOT . '/assets/modules-admin.less') ->setTargetUri('assets/modules-admin.less') ->join(true) ->addCss(APPLICATION_PATH . '/modules/Admin/assets/admin.less'); $di->set('assets', $assetsManager); $admin_js_first_load_collection = $assetsManager->collection('first_load_js')->join($isProductionEnv); if ($config->assets->first_load_js) { foreach ($config->assets->first_load_js as $js) { $admin_js_first_load_collection->addJs('/' . $js); } } $admin_js_collection = $assetsManager->collection('admin_js')->join($isProductionEnv); if ($config->assets->admin_js) { foreach ($config->assets->admin_js as $js) { $admin_js_collection->addJs('/' . $js); } } $admin_css_collection = $assetsManager->collection('admin_css')->setLocal(true); if ($config->assets->admin_css) { foreach ($config->assets->admin_css as $css) { $admin_css_collection->addCss('/' . $css); } } } private function initEventManager($di) { $eventsManager = new \Phalcon\Events\Manager(); $dispatcher = new \Phalcon\Mvc\Dispatcher(); $eventsManager->attach("dispatch:beforeDispatchLoop", function ($event, $dispatcher) use ($di) { new \YonaCMS\Plugin\CheckPoint($di->get('request')); new \YonaCMS\Plugin\Localization($dispatcher); new \YonaCMS\Plugin\AdminLocalization($di->get('config')); new \YonaCMS\Plugin\Acl($di->get('acl'), $dispatcher, $di->get('view')); new \YonaCMS\Plugin\MobileDetect($di->get('session'), $di->get('view'), $di->get('request')); $auth = $di->get('session')->get('auth'); if ($auth) { $role = AdminUser::getRoleById($auth->id); $di->get('view')->user_role = $role; } }); $eventsManager->attach("dispatch:afterDispatchLoop", function ($event, $dispatcher) use ($di) { new \Seo\Plugin\SeoManager($dispatcher, $di->get('request'), $di->get('router'), $di->get('view')); new \YonaCMS\Plugin\Title($di); }); // Profiler $registry = $di->get('registry'); if ($registry->cms['PROFILER']) { $profiler = new \Phalcon\Db\Profiler(); $di->set('profiler', $profiler); $eventsManager->attach('db', function ($event, $db) use ($profiler) { if ($event->getType() == 'beforeQuery') { $profiler->startProfile($db->getSQLStatement()); } if ($event->getType() == 'afterQuery') { $profiler->stopProfile(); } }); } $db = $di->get('db'); $db->setEventsManager($eventsManager); $dispatcher->setEventsManager($eventsManager); $di->set('dispatcher', $dispatcher); } private function initView($di) { $view = new \Phalcon\Mvc\View(); $theme = $di->get('config')['theme']; if ($theme) { $themePath = __DIR__ . '/themes/' . $di->get('config')['theme'] . '/'; if (file_exists($themePath)) { define('MAIN_VIEW_PATH', '../../../themes/' . $theme . '/'); } } else { define('MAIN_VIEW_PATH', '../../../views/'); } $view->setMainView(MAIN_VIEW_PATH . 'main'); $view->setLayoutsDir(MAIN_VIEW_PATH . '/layouts/'); $view->setLayout('main'); $view->setPartialsDir(MAIN_VIEW_PATH . '/partials/'); // Volt $volt = new \Application\Mvc\View\Engine\Volt($view, $di); $volt->setOptions(['compiledPath' => APPLICATION_PATH . '/../data/cache/volt/']); $volt->initCompiler(); $phtml = new \Phalcon\Mvc\View\Engine\Php($view, $di); $viewEngines = [ ".volt" => $volt, ".phtml" => $phtml, ]; $view->registerEngines($viewEngines); $eventsManager = new \Phalcon\Events\Manager(); $eventsManager->attach( "view:afterRender", new \Application\Mvc\View\Event\ShortCodeParser($view) ); $view->setEventsManager($eventsManager); $ajax = $di->get('request')->getQuery('_ajax'); if ($ajax) { $view->setRenderLevel(\Phalcon\Mvc\View::LEVEL_LAYOUT); } $di->set('view', $view); return $view; } private function initCache($di) { $config = $di->get('config'); $cacheFrontend = new \Phalcon\Cache\Frontend\Data([ "lifetime" => 172800, "prefix" => HOST_HASH, ]); $cache = null; switch ($config->cache) { case 'file': $cache = new \Phalcon\Cache\Backend\File($cacheFrontend, [ "cacheDir" => APPLICATION_PATH . "/../data/cache/backend/", ]); break; case 'memcache': $cache = new \Phalcon\Cache\Backend\Memcache( $cacheFrontend, [ "host" => $config->memcache->host, "port" => $config->memcache->port, ]); break; } $di->set('cache', $cache, true); $di->set('modelsCache', $cache, true); \Application\Widget\Proxy::$cache = $cache; // Modules Widget System $modelsMetadata = new \Phalcon\Mvc\Model\Metadata\Memory(); $di->set('modelsMetadata', $modelsMetadata); } private function dispatch($di) { $router = $di['router']; $router->handle(); $view = $di['view']; $dispatcher = $di['dispatcher']; //var_dump($router->getModuleName()); //var_dump($router->getControllerName()); //var_dump($router->getActionName()); //die; $response = $di['response']; $dispatcher->setModuleName($router->getModuleName()); $dispatcher->setControllerName($router->getControllerName()); $dispatcher->setActionName($router->getActionName()); $dispatcher->setParams($router->getParams()); $moduleName = \Application\Utils\ModuleName::camelize($router->getModuleName()); $ModuleClassName = $moduleName . '\Module'; if (class_exists($ModuleClassName)) { $module = new $ModuleClassName; $module->registerAutoloaders(); $module->registerServices($di); $theme = $di->get('config')['theme']; if ($theme) { $themePath = '/themes/' . $di->get('config')['theme'] . '/' . $moduleName . '/'; if (file_exists(__DIR__ . $themePath)) { $view->setViewsDir(__DIR__ . $themePath); } } } //echo(time());die; $view->start(); $registry = $di['registry']; if ($registry->cms['DEBUG_MODE']) { $debug = new \Phalcon\Debug(); $debug->listen(); $dispatcher->dispatch(); } else { try { $dispatcher->dispatch(); } catch (\Phalcon\Exception $e) { // Errors catching $view->setViewsDir(__DIR__ . '/modules/Index/views/'); $view->setPartialsDir(''); $view->e = $e; if ($e instanceof \Phalcon\Mvc\Dispatcher\Exception) { $response->setHeader(404, 'Not Found'); $view->partial('error/error404'); } else { $response->setHeader(503, 'Service Unavailable'); $view->partial('error/error503'); } $response->sendHeaders(); echo $response->getContent(); return; } } //die; $view->render( $dispatcher->getControllerName(), $dispatcher->getActionName(), $dispatcher->getParams() ); $view->finish(); $response = $di['response']; // AJAX $request = $di['request']; $_ajax = $request->getQuery('_ajax'); if ($_ajax) { $contents = $view->getContent(); $return = new \stdClass(); $return->html = $contents; $return->title = $di->get('helper')->title()->get(); $return->success = true; if ($view->bodyClass) { $return->bodyClass = $view->bodyClass; } $headers = $response->getHeaders()->toArray(); if (isset($headers[404]) || isset($headers[503])) { $return->success = false; } $response->setContentType('application/json', 'UTF-8'); $response->setContent(json_encode($return)); } else { $response->setContent($view->getContent()); } $response->sendHeaders(); echo $response->getContent(); } } |
#11 | YonaCMS\Bootstrap->run() /var/www/html/ciss/aesvietnam.edu.vn/web/src/web/index.php (24) <?php chdir(dirname(__DIR__)); define('ROOT', __DIR__); define('HOST_HASH', substr(md5($_SERVER['HTTP_HOST']), 0, 12)); defined('APPLICATION_ENV') || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production')); if (APPLICATION_ENV === 'development' || APPLICATION_ENV === 'staging') { //@TODO: fixed me by update docker to allow config php.ini error_reporting(E_ALL & ~E_NOTICE & ~E_STRICT); ini_set('display_errors', 1); ini_set('display_startup_errors', 1); ini_set('log_errors', 0); } define('APPLICATION_PATH', __DIR__ . '/../app'); require_once APPLICATION_PATH . '/../vendor/autoload.php'; require_once APPLICATION_PATH . '/Bootstrap.php'; $bootstrap = new YonaCMS\Bootstrap(); $bootstrap->run(); |
Key | Value |
---|---|
_url | /tin-tuc.html |
page | 4 |
Key | Value |
---|---|
REDIRECT_APPLICATION_ENV | production |
REDIRECT_downgrade-1_0 | |
REDIRECT_STATUS | 200 |
APPLICATION_ENV | production |
downgrade-1_0 | |
HTTP_USER_AGENT | CCBot/2.0 (https://commoncrawl.org/faq/) |
HTTP_ACCEPT | text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 |
HTTP_ACCEPT_LANGUAGE | en-US,en;q=0.5 |
HTTP_IF_MODIFIED_SINCE | Sun, 25 Oct 2020 19:58:50 GMT |
HTTP_ACCEPT_ENCODING | br,gzip |
HTTP_HOST | www.aesvietnam.edu.vn |
HTTP_CONNECTION | Keep-Alive |
PATH | /sbin:/usr/sbin:/bin:/usr/bin |
SERVER_SIGNATURE | <address>Apache/2.2.15 (CentOS) Server at www.aesvietnam.edu.vn Port 80</address>\n |
SERVER_SOFTWARE | Apache/2.2.15 (CentOS) |
SERVER_NAME | www.aesvietnam.edu.vn |
SERVER_ADDR | 172.16.254.4 |
SERVER_PORT | 80 |
REMOTE_ADDR | 3.237.205.144 |
DOCUMENT_ROOT | /var/www/html/ciss/aesvietnam.edu.vn/web/src/web |
SERVER_ADMIN | dinhhoaibao@gmail.com |
SCRIPT_FILENAME | /var/www/html/ciss/aesvietnam.edu.vn/web/src/web/index.php |
REMOTE_PORT | 34694 |
REDIRECT_QUERY_STRING | _url=/tin-tuc.html&page=4 |
REDIRECT_URL | /tin-tuc.html |
GATEWAY_INTERFACE | CGI/1.1 |
SERVER_PROTOCOL | HTTP/1.1 |
REQUEST_METHOD | GET |
QUERY_STRING | _url=/tin-tuc.html&page=4 |
REQUEST_URI | /tin-tuc.html?page=4 |
SCRIPT_NAME | /index.php |
PHP_SELF | /index.php |
REQUEST_TIME_FLOAT | 1611561864.579 |
REQUEST_TIME | 1611561864 |
# | Path |
---|---|
0 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/web/index.php |
1 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/vendor/autoload.php |
2 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/vendor/composer/autoload_real.php |
3 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/vendor/composer/ClassLoader.php |
4 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/vendor/composer/autoload_static.php |
5 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/vendor/symfony/polyfill-ctype/bootstrap.php |
6 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/vendor/symfony/polyfill-mbstring/bootstrap.php |
7 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/vendor/cakephp/core/functions.php |
8 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/vendor/guzzlehttp/psr7/src/functions_include.php |
9 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/vendor/guzzlehttp/psr7/src/functions.php |
10 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/vendor/guzzlehttp/promises/src/functions_include.php |
11 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/vendor/guzzlehttp/promises/src/functions.php |
12 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/vendor/guzzlehttp/guzzle/src/functions_include.php |
13 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/vendor/guzzlehttp/guzzle/src/functions.php |
14 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/vendor/symfony/polyfill-php72/bootstrap.php |
15 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/vendor/symfony/polyfill-php72/Php72.php |
16 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/vendor/symfony/var-dumper/Resources/functions/dump.php |
17 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/vendor/cakephp/utility/bootstrap.php |
18 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/vendor/cakephp/utility/Inflector.php |
19 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/vendor/cakephp/collection/functions.php |
20 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/vendor/psy/psysh/src/functions.php |
21 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/vendor/facebook/graph-sdk/src/Facebook/polyfills.php |
22 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/vendor/sendgrid/sendgrid/lib/SendGrid.php |
23 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/vendor/sendgrid/sendgrid/lib/helpers/mail/Mail.php |
24 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/vendor/sendgrid/sendgrid/lib/helpers/contacts/Recipients.php |
25 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/vendor/sendgrid/sendgrid/lib/helpers/stats/Stats.php |
26 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/vendor/donatj/phpuseragentparser/Source/UserAgentParser.php |
27 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/Bootstrap.php |
28 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/modules/Cms/Config.php |
29 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/config/environment/production.php |
30 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/config/global.php |
31 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/themes/default/config/assets/assets.php |
32 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/themes/default/config/assets/_admin.php |
33 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/themes/default/config/assets/_front_page.php |
34 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/config/modules.php |
35 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/modules/Application/Loader/Modules.php |
36 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/modules/Application/Mvc/View/Engine/Volt.php |
37 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/modules/Application/Mvc/View/Event/ShortCodeParser.php |
38 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/modules/Application/Widget/Proxy.php |
39 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/modules/Cms/Model/Configuration.php |
40 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/modules/Application/Acl/DefaultAcl.php |
41 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/config/acl.php |
42 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/modules/Application/Assets/Manager.php |
43 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/modules/Application/Assets/Filter/Less.php |
44 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/modules/Application/Mvc/Helper.php |
45 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/modules/Menu/Helper/Menu.php |
46 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/modules/Application/Mvc/Router/DefaultRouter.php |
47 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/modules/Index/Routes.php |
48 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/modules/Application/Mvc/Helper/CmsCache.php |
49 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/modules/Admin/Routes.php |
50 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/modules/Widget/Routes.php |
51 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/modules/Page/Routes.php |
52 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/modules/Page/Model/Page.php |
53 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/modules/Application/Mvc/Model/Model.php |
54 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/modules/Application/Utils/Tree/Node/NodeTrait.php |
55 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/modules/Application/Utils/Tree/Builder/TreeBuilderTrait.php |
56 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/modules/Publication/Routes.php |
57 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/modules/Publication/Model/Type.php |
58 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/modules/Slider/Routes.php |
59 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/modules/Seo/Routes.php |
60 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/modules/Menu/Routes.php |
61 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/modules/Menu/Model/Type.php |
62 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/modules/Tree/Routes.php |
63 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/modules/Tree/Init.php |
64 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/modules/Tree/Mvc/Helper.php |
65 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/modules/Sitemap/Routes.php |
66 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/modules/User/Routes.php |
67 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/modules/Popup/Routes.php |
68 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/modules/Subscribe/Routes.php |
69 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/modules/Application/Utils/ModuleName.php |
70 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/modules/Page/Module.php |
71 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/plugins/CheckPoint.php |
72 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/plugins/Localization.php |
73 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/modules/Cms/Model/Translate.php |
74 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/plugins/AdminLocalization.php |
75 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/data/translations/admin/en.php |
76 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/plugins/Acl.php |
77 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/plugins/MobileDetect.php |
78 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/vendor/mobiledetect/mobiledetectlib/Mobile_Detect.php |
79 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/modules/Page/Controller/IndexController.php |
80 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/modules/Application/Mvc/Controller.php |
81 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/modules/Page/Model/Translate/PageTranslate.php |
82 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/modules/Application/Mvc/Model/Translate.php |
83 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/modules/Application/Mvc/ImageHelper.php |
84 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/modules/Application/Mvc/Helper/Announce.php |
85 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/modules/Application/Mvc/Helper/Meta.php |
86 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/modules/Image/Storage.php |
87 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/modules/Application/Mvc/Helper/Title.php |
88 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/modules/Application/Mvc/Helper/ActiveMenu.php |
89 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/modules/Seo/Plugin/SeoManager.php |
90 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/modules/Seo/Model/Manager.php |
91 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/plugins/Title.php |
92 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/data/cache/volt/%%var%%www%%html%%ciss%%aesvietnam.edu.vn%%web%%src%%app%%themes%%default%%page%%index%%_templates%%news.volt.php |
93 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/modules/Publication/Model/News.php |
94 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/modules/Publication/Model/Publication.php |
95 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/modules/Publication/Model/GetSet/Publication.php |
96 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/modules/Publication/Model/Translate/TypeTranslate.php |
97 | /var/www/html/ciss/aesvietnam.edu.vn/web/src/app/modules/Publication/Model/Translate/PublicationTranslate.php |
Memory | |
---|---|
Usage | 2883584 |