/**
  * @see com_salamon_interface_views::getCanonicalURL()
  */
 public function getCanonicalURL()
 {
     $canonicals = array();
     $canonicalsDomains = array();
     $request_uri = $_SERVER['REQUEST_URI'];
     $url = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
     $path = $this->_Setting->getSetting('pathtoapp', 'paths') . $this->_Setting->getSetting('configuration', 'paths') . 'canonicals' . ($this->getModule() != '' ? '_' . $this->getModule() : '') . '.php';
     if (file_exists($path)) {
         include $path;
         if (isset($canonicalsDomains[APP_DOMAIN])) {
             if (isset($canonicals[$request_uri])) {
                 $url = 'http://' . $this->_Setting->getSetting('env', 'defaults') . '.' . $canonicalsDomains[APP_DOMAIN] . $canonicals[$request_uri];
                 $canonical_tag = '<link rel="canonical" href="' . $url . '" />';
                 $canonical_tag .= '<meta property="og:url" content="' . $url . '" />';
             } else {
                 if ($_SERVER["REQUEST_URI"] == '/') {
                     $url = 'http://' . $this->_Setting->getSetting('env', 'defaults') . '.' . $canonicalsDomains[APP_DOMAIN];
                 } else {
                     $url = 'http://' . $this->_Setting->getSetting('env', 'defaults') . '.' . $canonicalsDomains[APP_DOMAIN] . $_SERVER["REQUEST_URI"];
                 }
             }
         } else {
             if (isset($canonicals[$request_uri])) {
                 $url = 'http://' . $_SERVER['SERVER_NAME'] . $canonicals[$request_uri];
             }
         }
     }
     return $url;
 }
 /**
  * Function return data for routes
  * 
  * @param array $routename
  */
 private function routesData($routename)
 {
     return $this->_SettingRoutes->getScopeSetting($routename);
 }
 protected function setDefaults($framework_path = '', $application_path = '', $folders = array(), $version = '', $appName = '', $mapingAppNameSpace = array(), $enviroments = array())
 {
     if ($application_path != '') {
         $this->application_path = $application_path;
     }
     if ($framework_path != '') {
         $this->framework_path = $framework_path;
     }
     if ($appName != '') {
         $this->appName = $appName;
     }
     if (count($folders) > 0) {
         $this->folders = $folders;
     }
     if ($version != '') {
         $this->version = $version;
     }
     if (count($mapingAppNameSpace) > 0) {
         $this->mapingAppNameSpace = $mapingAppNameSpace;
     }
     if (count($enviroments) > 0) {
         $this->enviroments = $enviroments;
     }
     $path = $this->framework_path . PATH_SEPARATOR . $this->framework_path . 'PEARS/' . PATH_SEPARATOR . $this->framework_path . 'com/salamon/v' . $this->version . '/';
     $path .= PATH_SEPARATOR . $this->application_path . 'com/' . $this->appName . '/' . PATH_SEPARATOR . $this->application_path . $this->folders['handlers'] . PATH_SEPARATOR . $this->application_path . $this->folders['configs'] . PATH_SEPARATOR . $this->application_path . $this->folders['views'] . PATH_SEPARATOR . $this->application_path . $this->folders['layouts'];
     ini_set($path, ini_get('include_path'));
     spl_autoload_extensions('.php');
     spl_autoload_register(array($this, 'objectLoader'));
     /**
      * Load nececery libs
      */
     require_once 'com.salamon.settings.php';
     require_once 'com.salamon.views.php';
     require_once 'com.salamon.settings.php';
     require_once 'com.salamon.controllers.php';
     require_once 'com.salamon.events.php';
     require_once 'com.salamon.session.php';
     require_once 'com.salamon.routes.php';
     require_once 'database/com.salamon.database.mysql.php';
     require_once 'com.salamon.general.php';
     require_once 'com.salamon.translations.php';
     /**
      * Namespace
      */
     $this->setAppNamespace();
     /**
      * Settings
      */
     $Setting = new com_salamon_settings($this->_settings_default_sett_name, $this->_settings_path_sett_dir);
     for ($i = 0; $i < count($this->enviroments); $i++) {
         $Setting->setEnv($this->enviroments[$i]['name'], $this->enviroments[$i]['subdomain'] . $this->thisDomain);
     }
     $Setting->setAppNamespace($this->thisAppNamescpace);
     $Setting->loadSetting();
     $Setting->loadEnvSetting();
     /**
      * Load Routes for Application
      */
     $SettingRoutes = new com_salamon_settings($this->_settings_route_config_name, $this->_settings_path_sett_dir);
     $SettingRoutes->setAppNamespace($this->thisAppNamescpace);
     $SettingRoutes->loadSetting();
     $Routes = new com_salamon_routes($SettingRoutes);
     /**
      * Seesion and Events
      */
     $Session = new com_salamon_session($Setting);
     $Event = new com_salamon_events($Setting, $Session, $Routes);
     /**
      * Translations
      */
     $currentlang = $Event->getValue('lang', 'post&get&session', '') != '' ? $Event->getValue('lang', 'post&get', '') : $Setting->getSetting('lang', 'defaults');
     $t = new com_salamon_translations($this->application_path . $this->folders['translations'], $currentlang);
     $Event->setTranslations($t);
     /**
      * Database
      */
     $this->_db = new com_salamon_database_mysql($Setting->getSetting('db_user', 'database'), $Setting->getSetting('db_serv', 'database'), $Setting->getSetting('db_pasw', 'database'), $Setting->getSetting('db_type', 'database'), $Setting->getSetting('db_name', 'database'));
     $this->_db->connection();
     $this->_Event = $Event;
     $this->_Setting = $Setting;
     $this->_Routes = $Routes;
     $this->_T = $t;
     $this->_Session = $Session;
 }