Пример #1
0
 /**
  * Get the users browser.
  *
  * return string the users browser name or Unknown.
  */
 function getBrowser()
 {
     $event = $this->Controller->Event->trigger('findBrowser');
     if (isset($event['findBrowser'][$this->Controller->plugin]) && is_string($event['findBrowser'][$this->Controller->plugin])) {
         return $event['findBrowser'][$this->Controller->plugin];
     }
     $agent = env('HTTP_USER_AGENT');
     srand((double) microtime() * 1000000);
     $r = rand();
     $u = uniqid(getmypid() . $r . (double) microtime() * 1000000, 1);
     $m = md5($u);
     if (preg_match("/msie[\\/\\sa-z]*([\\d\\.]*)/i", $agent, $m) && !preg_match("/webtv/i", $agent) && !preg_match("/omniweb/i", $agent) && !preg_match("/opera/i", $agent)) {
         // IE
         return 'MS Internet Explorer ' . $m[1];
     } else {
         if (preg_match("/netscape.?\\/([\\d\\.]*)/i", $agent, $m)) {
             // Netscape 6.x, 7.x ...
             return 'Netscape ' . $m[1];
         } else {
             if (preg_match("/mozilla[\\/\\sa-z]*([\\d\\.]*)/i", $agent, $m) && !preg_match("/gecko/i", $agent) && !preg_match("/compatible/i", $agent) && !preg_match("/opera/i", $agent) && !preg_match("/galeon/i", $agent) && !preg_match("/safari/i", $agent)) {
                 // Netscape 3.x, 4.x ...
                 return 'Netscape ' . $m[1];
             } else {
                 // Other
                 Configure::load('browsers');
                 $browsers = Configure::read('Browsers');
                 foreach ($browsers as $key => $value) {
                     if (preg_match('/' . regexEscape($value) . '.?\\/([\\d\\.]*)/i', $agent, $m)) {
                         return $browsers[$key] . ' ' . $m[1];
                         break;
                     }
                 }
             }
         }
     }
     return 'Unknown';
 }
Пример #2
0
 public function find($type, $options = array())
 {
     $Folder = new Folder($this->__path());
     $conditions = '.*';
     if (isset($options['conditions'][$this->alias . '.file_name'])) {
         $conditions = regexEscape($options['conditions'][$this->alias . '.file_name']);
     }
     $results = $Folder->find($conditions);
     switch ($type) {
         case 'count':
             return count($results);
             break;
         case 'all':
             return $results;
             break;
         case 'first':
             if (isset($results[0])) {
                 return $results[0];
             } else {
                 return false;
             }
             break;
     }
 }
Пример #3
0
    $hasManagers = false;
}
$pageRules = array('markers/point' => new PageRule(null, 'getPointMarker'), 'markers/cluster' => new PageRule(null, 'getClusterMarker'), '' => new PageRule('index.html', 'siteHome'), 'index.html?' => new PageRule('index.html', 'siteHome'), 'privacy.html' => new PageRule('privacy.html', 'defaultHandler'), '[a-zA-Z0-1]+\\.html' => new PageRule(null, 'defaultHandler'), 'images/.+' => new PageRule(), 'favicon\\..+' => new PageRule(), 'js/.+' => new PageRule(), 'css/.+' => new PageRule(), 'EpiCollectplus\\.apk' => new PageRule(), 'html/projectIFrame.html' => new PageRule(), 'api' => new PageRule('apidocs.html', 'defaultHandler'), 'pc' => new PageRule(null, 'projectCreator', true), 'create' => new PageRule(null, 'createFromXml', true), 'createProject.html' => new PageRule(null, 'createProject', true), 'projectHome.html' => new PageRule(null, 'projectHome'), 'createOrEditForm.html' => new PageRule(null, 'formBuilder', true), 'uploadProject' => new PageRule(null, 'uploadProjectXML', true), 'getForm' => new PageRule(null, 'getXML', true), 'validate' => new PageRule(null, 'validate', false), 'login.php' => new PageRule(null, 'loginHandler', false, true), 'loginCallback' => new PageRule(null, 'loginCallback', false, true), 'logout' => new PageRule(null, 'logoutHandler'), 'chooseProvider.html' => new PageRule(null, 'chooseProvider'), 'updateUser.html' => new PageRule(null, 'updateUser', true), 'saveUser' => new PageRule(null, 'saveUser', true), 'user/manager/?' => new PageRule(null, 'managerHandler', true), 'user/.*@.*?' => new PageRule(null, 'userHandler', true), 'admin' => new PageRule(null, 'admin', $hasManagers), 'listUsers' => new PageRule(null, 'listUsers', $hasManagers), 'disableUser' => new PageRule(null, 'disableUser', true), 'enableUser' => new PageRule(null, 'enableUser', true), 'resetPassword' => new PageRule(null, 'resetPassword', true), 'register' => new PageRule(null, 'createAccount', false), 'getControls' => new PageRule(null, 'getControlTypes'), 'uploadFile.php' => new PageRule(null, 'uploadHandlerFromExt'), 'ec/uploads/.+\\.(jpe?g|mp4)$' => new PageRule(null, 'getMedia'), 'ec/uploads/.+' => new PageRule(null, 'getUpload'), 'uploadTest.html' => new PageRule(null, 'defaultHandler', true), 'test' => new PageRule(null, 'siteTest', false), 'tests.*' => new PageRule(), 'createDB' => new PageRule(null, 'setupDB', $hasManagers), 'writeSettings' => new PageRule(null, 'writeSettings', $hasManagers), 'projects' => new PageRule(null, 'projectList'), '[a-zA-Z0-9_-]+(\\.xml|\\.json|\\.tsv|\\.csv|/)?' => new PageRule(null, 'projectHome'), '[a-zA-Z0-9_-]+/upload' => new PageRule(null, 'uploadData'), '[a-zA-Z0-9_-]+/download' => new PageRule(null, 'downloadData'), '[a-zA-Z0-9_-]+/summary' => new PageRule(null, 'projectSummary'), '[a-zA-Z0-9_-]+/usage' => new PageRule(null, 'projectUsage'), '[a-zA-Z0-9_-]+/formBuilder(\\.html)?' => new PageRule(null, 'formBuilder', true), '[a-zA-Z0-9_-]+/editProject.html' => new PageRule(null, 'editProject', true), '[a-zA-Z0-9_-]+/update' => new PageRule(null, 'updateProject', true), '[a-zA-Z0-9_-]+/manage' => new PageRule(null, 'updateProject', true), '[a-zA-Z0-9_-]+/updateStructure' => new PageRule(null, 'updateXML', true), '[a-zA-Z0-9_-]+/[a-zA-Z0-9_-]+/__stats' => new PageRule(null, 'tableStats'), '[a-zA-Z0-9_-]+/[a-zA-Z0-9_-]+/__activity' => new PageRule(null, 'formDataLastUpdated'), '[a-zA-Z0-9_-]+/uploadMedia' => new PageRule(null, 'uploadMedia'), '[a-zA-Z0-9_-]+/[a-zA-Z0-9_-]+/uploadMedia' => new PageRule(null, 'uploadMedia'), '[a-zA-Z0-9_-]+/[a-zA-Z0-9_-]+/__getImage' => new PageRule(null, 'getImage'), '[a-zA-Z0-9_-]+/[a-zA-Z0-9_-]+(\\.xml|\\.json|\\.tsv|\\.csv|\\.kml|\\.js|\\.css|/)?' => new PageRule(null, 'formHandler'), '[^/\\.]*/[^/\\.]+/[^/\\.]*(\\.xml|\\.json|/)?' => new PageRule(null, 'entryHandler'));
$d = new DateTime();
$i = $dat->format("su") - $d->format("su");
$rule = false;
/*Cookie policy handler*/
if (!getValIfExists($_SESSION, 'SEEN_COOKIE_MSG')) {
    flash(sprintf('EpiCollectPlus only uses first party cookies to make the site work. We do not add or read third-party cookies. If you are concerned about our use of cookies please read our <a href="%s/privacy.html">Privacy Statement</a>', $SITE_ROOT));
    $_SESSION['SEEN_COOKIE_MSG'] = true;
}
if (array_key_exists($url, $pageRules)) {
    $rule = $pageRules[$url];
} else {
    foreach (array_keys($pageRules) as $key) {
        if (preg_match("/^" . regexEscape($key) . "\$/", $url)) {
            //echo $key;
            $rule = $pageRules[$key];
            break;
        }
    }
}
if ($rule) {
    if ($rule->secure && !getValIfExists($_SERVER, "HTTPS")) {
        $https_enabled = false;
        try {
            $https_enabled = file_exists("https://{$_SERVER["HTTP_HOST"]}/{$SITE_ROOT}/{$url}");
        } catch (Exception $e) {
            $https_enabled = false;
        }
        if ($https_enabled) {