示例#1
0
 /**
  * Run's the set bounceback.
  * 
  * @access private
  * @final
  * @return boolean true if the check returns true and boolean false if not
  */
 private final function _runBounceBack()
 {
     // call hook
     Hook::call('Controller.runBounceBack.before', array(&$this->bounceback));
     if (isset($this->bounceback['check']) && method_exists($this->bounceback['check'][0], $this->bounceback['check'][1]) && (isset($this->bounceback['bounce']) && method_exists($this->bounceback['bounce'][0], $this->bounceback['bounce'][1])) && !$this->_viewExists(array("name" => $this->viewToLoad, "checkmethod" => true))) {
         $keys = array_keys(Reg::get('URI.working'));
         $values = array_values(Reg::get('URI.working'));
         $controllerPos = array_search('controller', $keys);
         if ($controllerPos === false) {
             $controllerPos = 0;
         }
         $this->params = array_combine($keys, array_slice(array_merge(array_slice($values, 0, $controllerPos + 1), array($this->bounceback['bounce'][1]), array_slice($values, $controllerPos + 1)), 0, count($keys)));
         Reg::set('Param', $this->params);
         $this->viewToLoad = Config::uriToMethod($this->params['view']);
         if ($this->_viewExists(array("name" => $this->viewToLoad, "checkmethod" => true)) !== true) {
             $return = false;
         } else {
             if (is_callable($this->bounceback['check']) && call_user_func($this->bounceback['check']) === false) {
                 $return = false;
             } else {
                 $return = true;
             }
         }
     } else {
         $return = false;
     }
     // call hook
     Hook::call('Controller.runBounceBack.after', array(&$return));
     return $return;
 }
示例#2
0
<?php

/* System Setup */
Reg::set("System.mode", "development");
/* URI Setup */
Reg::set(array("URI.useModRewrite" => true, "URI.useDashes" => true, "URI.forceDashes" => true));
Reg::set(array("URI.map" => array("controller" => "main", "view" => "index", "action" => null, "id" => null)));
/* Errors Setup */
Reg::set("Error.generalErrorMessage", "An error occured. Please contact the administrator.");
/* Database Setup */
Reg::set("Database.host", "localhost");
Reg::set("Database.username", "");
Reg::set("Database.password", "");
Reg::set("Database.database", "");
Reg::set("Database.driver", "MySQL");
/* Cache */
Reg::set(array('Cache.enabled' => true, 'Cache.path' => Reg::get('Path.physical') . '/cache', 'Cache.expires' => 3600));
示例#3
0
$app['conf'] = function () {
    return Art\Config::getInstance();
};
$app['user'] = function () {
    return new Art\User();
};
class Reg
{
    private static $reg = array();
    public static function set($key, $value)
    {
        self::$reg[$key] = $value;
    }
    public static function get($key)
    {
        return self::$reg[$key];
    }
}
Reg::set('app', $app);
Reg::set('seo', $app['conf']->getOptions('seo'));
require_once ROOT . '/vendor/AR/ActiveRecord.php';
ActiveRecord\Config::initialize(function ($cfg) use($app) {
    $cfg->set_model_directory(ROOT . '/model');
    $cfg->set_connections(array('production' => $app['conf']->getOption('db', 'dsn')));
    $cfg->set_default_connection('production');
});
require_once ROOT . '/vendor/Art/OpenPlayer.php';
$vkconf = $app['conf']->getOptions('vk');
$max = count($vkconf['email']) - 1;
$rkey = rand(0, $max);
$app['openplayer'] = new OpenPlayer\Core($vkconf['email'][$rkey], $vkconf['pass'][$rkey], $vkconf['appId'], $vkconf['uagent']);
 /**
  * Loads the url for the error. If the url points to a page inside the framework the function attempts to load it and handles any errors
  * or issues associated such as loading in a default error. If the url points to a page outside the framework then header location is set
  * and execution is stopped.
  * 
  * @access public
  * @static
  * @final
  * @param string|array $url The url that should be loaded can be the url or an array in the URI.map format
  */
 public function loadURL($url)
 {
     // call hook
     Hook::call('Exception.loadURL.before', array(&$url));
     if (!empty($url)) {
         if (!is_array($url) && preg_match("/^(http:|https:|ftp:|ftps:)/im", $url)) {
             // call hook
             Hook::call('Exception.loadURL.redirect', array(&$url));
             header('Location: ' . $url);
             header('Connection: close');
             exit;
         }
         if (is_array($url)) {
             $url = '/' . implode('/', array_merge(Reg::get("URI.map"), $url));
         }
         $url = str_replace(Reg::get('Path.root'), "", $url);
         $_SERVER['REQUEST_URI'] = $url;
         Reg::set("URI.working", $url);
         Reg::del("Branch.name");
         Config::processURI();
         $load['name'] = Config::uriToClass(Reg::get("URI.working.controller"));
         if (Reg::hasVal("Branch.name")) {
             $load['branch'] = Config::uriToClass(Reg::get("Branch.name"));
         }
         $load['type'] = 'Controller';
         $load = implode('_', $load);
         $controller = new $load();
         if (!is_object($controller)) {
             if (!file_exists(Reg::get("System.defaultError404"))) {
                 include Reg::get("System.defaultError404");
             } else {
                 echo Reg::get("System.defaultError404");
             }
         } else {
             try {
                 // call hook
                 Hook::call('Exception.loadURL.controller', array(&$controller));
                 $controller->_showView();
             } catch (EvergreenException $e) {
                 var_dump($e);
                 exit;
                 if (Reg::get("System.mode") == "development") {
                     if (isset(self::$params['code'])) {
                         $code = self::$params['code'];
                     }
                     // call hook
                     Hook::call('Exception.loadURL.default', array(&$url, &$code));
                     switch ($code) {
                         case 'GEN':
                             if (file_exists(Reg::get("System.defaultErrorGEN"))) {
                                 include Reg::get("System.defaultErrorGEN");
                             } else {
                                 echo Reg::get("System.defaultErrorGEN");
                             }
                             break;
                         case 'DB':
                             if (file_exists(Reg::get("System.defaultErrorDB"))) {
                                 include Reg::get("System.defaultErrorDB");
                             } else {
                                 echo Reg::get("System.defaultErrorDB");
                             }
                             break;
                         default:
                             if (file_exists(Reg::get("System.defaultErrorGEN"))) {
                                 include Reg::get("System.defaultErrorGEN");
                             } else {
                                 echo Reg::get("System.defaultErrorGEN");
                             }
                             break;
                     }
                 }
             }
         }
     } else {
         if (file_exists(Reg::get("System.defaultErrorGEN"))) {
             include Reg::get("System.defaultErrorGEN");
         } else {
             echo Reg::get("System.defaultErrorGEN");
         }
     }
 }
示例#5
0
function checkBackupTasks()
{
    $maxTime = time() - 60 * 60;
    //60 mins before.
    $data = DB::getArray("?:history", "siteID,historyID,microtimeInitiated", "microtimeInitiated >= " . $maxTime . " AND recheck = 0 AND \r\n\t(\r\n\t\t(type = 'backup' AND action = 'now') OR \r\n\t\t(type = 'scheduleBackup' AND action = 'runTask') OR \r\n\t\t(type = 'installClone' AND action = 'installCloneBackupNow')\r\n\t)\r\n\tAND \r\n\t(\r\n\t\t(status = 'netError' AND error IN('28', '52', '500', '502', '504', 'timeoutClear')) OR\r\n\t\t(status = 'error' AND error IN('main_plugin_connection_error'))\r\n\t)\r\n\t");
    // time and task == 'neterror', verifying check == 0 //28 => curl error: operation timeout, 52 => curl error: empty reply form server
    $checkTill = 35 * 60;
    //35 mins each 5 min interval
    if (!empty($data)) {
        foreach ($data as $key => $value) {
            $siteIDs = array();
            $siteIDs[] = $value['siteID'];
            $balanceTime = $value['microtimeInitiated'] + $checkTill - time();
            $addTime = 0;
            do {
                $actionID = uniqid('', true);
                Reg::set('currentRequest.actionID', $actionID);
                $params['timeScheduled'] = time() + $addTime;
                $params['status'] = 'scheduled';
                //$siteIDs = array($siteID);
                $extras = array('sendAfterAllLoad' => false, 'doNotShowUser' => true);
                manageClientsFetch::getStatsProcessor($siteIDs, $params, $extras);
                $balanceTime -= 5 * 60;
                $addTime += 5 * 60;
            } while ($balanceTime > 0);
            DB::update("?:history", array('recheck' => '1'), "historyID =" . $value['historyID']);
        }
    }
    return;
}
示例#6
0
 public static function backupResponseProcessor($historyID, $responseData)
 {
     responseDirectErrorHandler($historyID, $responseData);
     if (empty($responseData['success'])) {
         return false;
     }
     $historyData = DB::getRow("?:history", "*", "historyID='" . $historyID . "'");
     $siteID = $historyData['siteID'];
     if (!empty($responseData['success']['error']) && is_string($responseData['success']['error'])) {
         DB::update("?:history_additional_data", array('status' => 'error', 'errorMsg' => $responseData['success']['error'], 'error' => $responseData['success']['error_code']), "historyID=" . $historyID);
         return false;
     } else {
         if ($historyData['type'] == 'backup' && $historyData['action'] == 'multiCallNow') {
             $historyResponseStatus[$historyID] = "multiCallWaiting";
             Reg::set("historyResponseStatus", $historyResponseStatus);
             updateHistory(array('status' => "multiCallWaiting"), $historyID);
             self::triggerRecheck($responseData, $siteID);
         } else {
             DB::update("?:history_additional_data", array('status' => 'success'), "historyID='" . $historyID . "'");
             //---------------------------post process------------------------>
             $siteID = DB::getField("?:history", "siteID", "historyID='" . $historyID . "'");
             $allParams = array('action' => 'getStats', 'args' => array('siteIDs' => array($siteID), 'extras' => array('sendAfterAllLoad' => false, 'doNotShowUser' => true)));
             panelRequestManager::handler($allParams);
         }
     }
 }
示例#7
0
 public static function runOffBrowserLoad($params)
 {
     if (Reg::get('settings.executeUsingBrowser') != 1) {
         //using fsock
         callURLAsync(APP_URL . EXECUTE_FILE, array('runOffBrowserLoad' => 'true'));
     } elseif (Reg::get('settings.executeUsingBrowser') == 1) {
         Reg::set('currentRequest.runOffBrowserLoad', 'true');
     }
 }
示例#8
0
 /**
  * Check's the current uri for a route match and reprocesses the uri if there is a match.
  * 
  * @access private
  * @static
  * @param string $request_uri The current uri with the base uri excluded
  * @return boolean true if a route was found and boolean false if not
  */
 private static function checkRoutes($request_uri)
 {
     if (is_array(self::$routes)) {
         foreach (self::$routes as $route) {
             $generatedRegex = self::createRouteRegex($route['definition']);
             $destination = $route['destination'];
             if (preg_match($generatedRegex['regex'], $request_uri, $matches)) {
                 array_shift($matches);
                 $combinedMatches = array_combine(array_pad((array) $generatedRegex['definedPositions'], count($matches), 'wildcard'), array_pad((array) $matches, count($generatedRegex['definedPositions']), null));
                 foreach ($combinedMatches as $key => $match) {
                     if (in_array($match, $generatedRegex['definedPositions'])) {
                         unset($combinedMatches[$key]);
                     }
                 }
                 // Validate named positions
                 if (!empty($route['validation'])) {
                     foreach ($route['validation'] as $name => $regex) {
                         //$regex = preg_quote($regex, '/');
                         if ($combinedMatches[$name] == NULL && isset($destination[$name])) {
                             continue;
                         }
                         if (array_key_exists($name, $combinedMatches) && !preg_match('/^' . $regex . '$/i', $combinedMatches[$name])) {
                             return false;
                         }
                     }
                 }
                 // Check if the route is trying to load from main
                 if (isset($destination['branch']) && $destination['branch'] == Reg::get('System.rootIdentifier')) {
                     unset($destination['branch']);
                 }
                 // Check if routing to a branch, unset it from the destination, and load in the branch config
                 if (!empty($destination['branch'])) {
                     $branch = $destination['branch'];
                     unset($destination['branch']);
                     if (self::isBranch($branch)) {
                         self::loadBranchConfig($branch);
                     }
                 }
                 // Check if there is a wildcard match in the regex
                 $wildcard_matches = null;
                 if (!empty($combinedMatches['wildcard'])) {
                     $wildcard_matches = explode("/", $combinedMatches['wildcard']);
                     unset($combinedMatches['wildcard']);
                 }
                 // Clean up Null's from matches so that defaults aren't overridden
                 foreach ($combinedMatches as $key => $value) {
                     if ($value == NULL) {
                         unset($combinedMatches[$key]);
                     }
                 }
                 // Build the new URI array that has been defined by the route
                 $newURI = array_merge((array) array('branch' => $branch), (array) Reg::get("URI.map"), (array) $destination, (array) $combinedMatches);
                 // Loop through the URI and handle empty positions
                 foreach ($newURI as $key => &$value) {
                     if (is_array($value) && count($value) > 1) {
                         $value = reset($value);
                     }
                     if (empty($value) && count($wildcard_matches)) {
                         $newURI[$key] = array_shift($wildcard_matches);
                     }
                 }
                 // Check if there are remaining wildcard matches that havent filled empty positions and append them to the URI
                 if (isset($wildcard_matches) && count($wildcard_matches)) {
                     $newURI[] = implode("/", $wildcard_matches);
                 }
                 // Build the final URI that will be used
                 $newURI = rtrim("/" . implode("/", (array) $newURI), '/');
                 // Setup the needed configuration settings and re-process the URI
                 Reg::set("Route.current", array_merge($route, array("newWorkingURI" => $newURI)));
                 Reg::set("URI.working", $newURI);
                 self::processURI();
                 return true;
             }
         }
     }
     return false;
 }
示例#9
0
文件: app.php 项目: Trideon/gigolo
    }
} else {
    @date_default_timezone_set($getTimeZone);
}
//session
$cookiePath = parse_url(APP_URL, PHP_URL_PATH);
//@session_set_cookie_params(0, $cookiePath);
//@session_start();
//To prevent SQL Injection
$_REQUEST_ORIGINAL = $_REQUEST;
$_GET_ORIGINAL = $_GET;
$_POST_ORIGINAL = $_POST;
$_REQUEST = filterParameters($_REQUEST);
$_GET = filterParameters($_GET);
$_POST = filterParameters($_POST);
include_once APP_ROOT . "/controllers/processManager.php";
Reg::set('dateFormatLong', 'M d, Y @ h:ia');
Reg::set('dateFormatYearLess', 'M d @ h:ia');
clearUncompletedTask();
checkTriggerStatus();
checkBackupTasks();
checkUserLoggedInAndRedirect();
defineAppFullURL();
if (!defined('FORCED_AJAX_CALL_MIN_INTERVAL')) {
    define('FORCED_AJAX_CALL_MIN_INTERVAL', 1);
}
//need user id for checkUserLoggedInAndRedirect() so this code move top to here
if (!defined('UPDATE_PAGE')) {
    //addons //reason why it is not used in update page(update process page) is if those addons are loaded, in update process it include the latest file to run particular addon's update process by including its class, which results in fatal error of class already exists.
    loadActiveAddons();
}
示例#10
0
文件: search.php 项目: nyaa11/oplayer
    }, array('proximity' => 5, 'next_message' => 'Вперед', 'previous_message' => 'Назад'));
    $similar = array();
    if (!strpos($q, " ")) {
        $lastfmdata = Art\LastFM::request($app['conf'], "artist.getSimilar", array("limit" => 10, "artist" => $q));
        if (isset($lastfmdata->similarartists)) {
            $similar = $lastfmdata->similarartists->artist;
        }
    }
    Reg::set('q', $q);
    return $app['view']->render('layout.phtml', 'search/list.phtml', array('res' => $pagerfanta, 'pagination' => $pagination, 'q' => $q, 'similar' => $similar));
});
$app->get('/track/{vkid}', function (Request $request, $vkid) use($app) {
    $vtrack = $app['openplayer']->audioGetById($vkid)->audio;
    $seo = Reg::get('seo');
    $seo['title'] = "Слушать {$vtrack->artist} - {$vtrack->title} онлайн.";
    Reg::set('seo', $seo);
    $track = (array) $vtrack;
    $track['vkid'] = "{$vtrack->owner_id}_{$vtrack->aid}";
    return $app['view']->render('layout.phtml', 'part/track.phtml', array('track' => $track));
});
$app->get('/getlyrics', function (Request $request) use($app) {
    $text = nl2br($app['openplayer']->audioGetLyrics($request->get('lyricsId')));
    return new Response($text);
});
$app->get('/getsong/{vkid}', function (Request $request, $vkid) use($app) {
    session_write_close();
    $vkTrack = $app['openplayer']->getTrack($vkid);
    header("Content-Length: {$vkTrack['size']}");
    if ($request->get('dl')) {
        header('Last-Modified:');
        header('ETag:');
示例#11
0
<?php

Reg::set("Branch.active", true);
Reg::set("Branch.requiredSystemMode", "development");
Reg::set("Branch.minimumSystemVersion", "1.0");