コード例 #1
0
ファイル: ia.core.php プロジェクト: kreativmind/subrion
 protected function _parseUrl()
 {
     $iaView =& $this->iaView;
     $domain = preg_replace('#[^a-z_0-9-.]#i', '', $_SERVER['HTTP_HOST']);
     $requestPath = ltrim($_SERVER['REQUEST_URI'], IA_URL_DELIMITER);
     if (!preg_match('#^www\\.#', $domain) && preg_match('#:\\/\\/www\\.#', $this->get('baseurl'))) {
         $domain = preg_replace('#^#', 'www.', $domain);
         $this->factory('util')->go_to('http://' . $domain . IA_URL_DELIMITER . $requestPath);
     } elseif (preg_match('#^www\\.#', $domain) && !preg_match('#:\\/\\/www\\.#', $this->get('baseurl'))) {
         $domain = preg_replace('#^www\\.#', '', $domain);
         $this->factory('util')->go_to('http://' . $domain . IA_URL_DELIMITER . $requestPath);
     }
     $iaView->assetsUrl = '//' . $domain . IA_URL_DELIMITER . FOLDER_URL;
     $iaView->domain = $domain;
     $iaView->domainUrl = 'http' . (isset($_SERVER['HTTPS']) && 'on' == $_SERVER['HTTPS'] ? 's' : '') . ':' . $iaView->assetsUrl;
     $iaView->language = $this->get('lang');
     $doExit = false;
     $changeLang = false;
     if (isset($_GET['_p'])) {
         $url = $_GET['_p'];
         unset($_GET['_p']);
     } else {
         $url = !isset($_SERVER['REDIRECT_URL']) || $_SERVER['REQUEST_URI'] != $_SERVER['REDIRECT_URL'] ? $_SERVER['REQUEST_URI'] : $_SERVER['REDIRECT_URL'];
         $url = substr($url, strlen(FOLDER) + 1);
     }
     $extension = IA_URL_DELIMITER;
     $url = explode('?', $url);
     $url = array_shift($url);
     $url = explode(IA_URL_DELIMITER, iaSanitize::htmlInjectionFilter(trim($url, IA_URL_DELIMITER)));
     $lastChunk = end($url);
     if ($pos = strrpos($lastChunk, '.')) {
         $extension = substr($lastChunk, $pos + 1);
         switch ($extension) {
             case self::EXTENSION_JSON:
                 $iaView->setRequestType(iaView::REQUEST_JSON);
                 break;
             case self::EXTENSION_XML:
                 $iaView->setRequestType(iaView::REQUEST_XML);
         }
         $extension = '.' . $extension;
         $url = str_replace($extension, '', $url);
     }
     $iaView->set('extension', $extension);
     if (isset($_POST['_lang']) && isset($this->languages[$_POST['_lang']])) {
         $iaView->language = $_POST['_lang'];
         $changeLang = true;
     }
     $isSystemChunk = true;
     $array = array();
     foreach ($url as $value) {
         if (!$isSystemChunk) {
             $array[] = $value;
             continue;
         }
         switch (true) {
             case $this->get('admin_page') == $value:
                 // admin panel
                 $this->_accessType = self::ACCESS_ADMIN;
                 continue 2;
             case 'logout' == $value:
                 // logging out
                 $doExit = true;
                 continue 2;
             case 2 == strlen($value):
                 // current language
                 if (isset($this->languages[$value])) {
                     $changeLang || ($iaView->language = $value);
                     array_shift($url);
                     // #1715
                     continue 2;
                 }
             default:
                 $iaView->name(empty($value) && 1 == count($url) ? $this->get('home_page') : $value);
                 $isSystemChunk = false;
         }
     }
     if (self::ACCESS_ADMIN == $this->getAccessType()) {
         if ($isSystemChunk && $this->get('home_page') == $iaView->name()) {
             $iaView->name(iaView::DEFAULT_HOMEPAGE);
         }
     }
     $iaView->url = empty($url[0]) ? array() : $url;
     $this->requestPath = $array;
     // set system language
     $this->language = $this->languages[$iaView->language];
     // set dynamic config
     $this->set('date_format', $this->language['date_format']);
     $this->set('locale', $this->language['locale']);
     define('IA_EXIT', $doExit);
 }
コード例 #2
0
ファイル: transactions.php プロジェクト: kreativmind/subrion
 protected function _jsonAction()
 {
     $output = array('error' => false, 'message' => array());
     $transaction = array('member_id' => (int) $_POST['member'], 'plan_id' => (int) $_POST['plan'], 'email' => $_POST['email'], 'item_id' => (int) $_POST['itemid'], 'gateway' => (string) $_POST['gateway'], 'sec_key' => uniqid('t'), 'reference_id' => empty($_POST['reference_id']) ? date('mdyHis') : iaSanitize::htmlInjectionFilter($_POST['reference_id']), 'amount' => (double) $_POST['amount'], 'currency' => $this->_iaCore->get('currency'), 'date' => $_POST['date'] . ' ' . $_POST['time']);
     if ($transaction['plan_id']) {
         $this->_iaCore->factory('plan');
         if ($plan = $this->_iaDb->row(iaDb::ALL_COLUMNS_SELECTION, iaDb::convertIds($transaction['plan_id']), iaPlan::getTable())) {
             $transaction['item'] = $plan['item'];
             $transaction['operation'] = iaLanguage::get('plan_title_' . $plan['id']);
         } else {
             $output['error'] = true;
             $output['message'][] = iaLanguage::get('error_plan_not_exists');
         }
     } else {
         $transaction['item'] = iaTransaction::TRANSACTION_MEMBER_BALANCE;
         $transaction['operation'] = iaLanguage::get('funds');
     }
     if (isset($_POST['username']) && $_POST['username']) {
         if ($memberId = $this->_iaDb->one_bind(iaDb::ID_COLUMN_SELECTION, '`username` = :user', array('user' => $_POST['username']), iaUsers::getTable())) {
             $transaction['member_id'] = $memberId;
         } else {
             $output['error'] = true;
             $output['message'][] = iaLanguage::get('incorrect_username');
         }
     }
     if ($transaction['email'] && !iaValidate::isEmail($transaction['email'])) {
         $output['error'] = true;
         $output['message'][] = iaLanguage::get('error_email_incorrect');
     }
     if (isset($transaction['item']) && in_array($transaction['item'], array(iaTransaction::TRANSACTION_MEMBER_BALANCE, 'members'))) {
         $transaction['item_id'] = $transaction['member_id'];
     }
     if (!$output['error']) {
         $output['success'] = (bool) $this->_iaDb->insert($transaction);
         $output['message'] = $output['success'] ? iaLanguage::get('transaction_added') : iaLanguage::get('invalid_parameters');
     }
     if (isset($output['success']) && $output['success']) {
         $this->_iaCore->startHook('phpTransactionCreated', array('id' => $output['success'], 'transaction' => $transaction));
         $output['success'] = (bool) $output['success'];
     }
     return $output;
 }
コード例 #3
0
ファイル: configuration.php プロジェクト: rentpad/subrion
 protected function _updateCustomParam($key, $value)
 {
     switch ($key) {
         case 'https':
             $baseUrl = $this->_iaCore->get('baseurl');
             $newBaseUrl = 'http' . ($value ? 's' : '') . substr($baseUrl, strpos($baseUrl, '://'));
             $this->_iaDb->update(array('value' => $newBaseUrl), iaDb::convertIds('baseurl', 'name'));
             $this->_redirectUrl = str_replace($baseUrl, $newBaseUrl, IA_SELF);
             break;
         case 'admin_page':
             $this->_redirectUrl = IA_URL . iaSanitize::htmlInjectionFilter($value) . '/configuration/general/';
     }
     return true;
 }