/** * 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'; }
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; } }
$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) {