/** * set config keys and isntance wide settings * * @param key string Our instance key * * @return void */ private function __construct($key) { //our instance and distingushing key $this->key = $key; //if our key is the default if ($this->key == 'default') { //generate our cache key from the full url $this->key = md5(Uri::full()); } //get our cache settings $this->config = Config::settings('cache'); //get our cache config from both system and app settings $this->duration = $this->config['duration']; //if we are in debug mode, force the duration to 0 (as in off) $this->duration = IS_DEBUG === true ? $this->duration : 0; //create our cache path $this->dir = PUBLIC_PATH . rtrim($this->config['dir'], '/') . '/'; //set our language code $this->lang_code = defined('LANG_CODE') ? '-' . LANG_CODE : ''; //create our filename default and append a language code to the filename if it exists $this->file = $this->checkDir() . $this->key . $this->lang_code . '.' . ltrim($this->config['file_ext'], '.'); //has our file type been passed into the init: self::init('css')->concat($array); if (isset($this->config[$this->key])) { //check the cache dir is in place and add our file name $this->file = $this->checkDir() . $this->config[$this->key]; } //for debugging $this->timestamp = Timer::mtime(); }
/** * prevent normal instantiation * * @param key string The key that is used to seperate our instances * * @return void */ private function __construct($key) { //if our key is the default if ($this->key == 'default') { //generate our meta key from the full url - and make sure its just alphanumeric $this->key = md5(Uri::full()); } $this->config = Config::settings('meta'); }
/** * setup the class * * @return void */ private function __construct() { //get the current uri $this->uri_segments = $this->arguments = Uri::segments(); //get the current uri $this->uri = rtrim(Uri::full(), '/'); $this->request_type = Input::server('request_method'); //get the route map from the config $this->route_map = Config::settings('routeMap'); //add any additional routes, adding them to the route map $this->routeMap(); }
public function notify() { $uri = Uri::full('admin/comments/edit/' . $this->id); $host = parse_url($_SERVER['HTTP_HOST'], PHP_URL_HOST) ?: 'localhost'; $from = 'notifications@' . $host; $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html; charset=utf-8' . "\r\n"; $headers .= 'From: ' . $from . "\r\n"; $message = '<html> <head> <title>' . __('comments.notify_subject') . '</title> <style> body {font: 15px/25px "Helvetica Neue", "Open Sans", "DejaVu Sans", "Arial", sans-serif;} table {margin: 1em 0; border-collapse: collapse;} table td {padding: 6px 8px; border: 1px solid #ccc;} h2, p {margin: 0 0 1em 0;} </style> </head> <body> <h2>' . __('comments.nofity_heading') . '</h2> <table> <tr> <td>' . __('comments.name') . '</td> <td>' . $this->name . '</td> </tr> <tr> <td>' . __('comments.email') . '</td> <td>' . $this->email . '</td> </tr> <tr> <td>' . __('comments.text') . '</td> <td>' . $this->text . '</td> </tr> </table> <p><a href="' . $uri . '">' . __('comments.view_comment') . '</a></p> </body> </html>'; // notify administrators foreach (User::where('role', '=', 'administrator')->get() as $user) { $to = $user->real_name . ' <' . $user->email . '>'; mail($to, __('comments.notify_subject'), $message, $headers); } }
Notify::success(__('comments.created')); // dont notify if we have marked as spam if (!$spam and Config::meta('comment_notifications')) { $comment->notify(); } return Response::redirect($posts_page->slug . '/' . $slug . '#comment'); }); /** * Rss feed */ Route::get(array('rss', 'feeds/rss'), function () { $uri = 'http://' . $_SERVER['HTTP_HOST']; $rss = new Rss(Config::meta('sitename'), Config::meta('description'), $uri, Config::app('language')); $query = Post::where('status', '=', 'published')->sort(Base::table('posts.created'), 'desc'); foreach ($query->get() as $article) { $rss->item($article->title, Uri::full(Registry::get('posts_page')->slug . '/' . $article->slug), $article->description, $article->created); } $xml = $rss->output(); return Response::create($xml, 200, array('content-type' => 'application/xml')); }); /** * Json feed */ Route::get('feeds/json', function () { $json = Json::encode(array('meta' => Config::get('meta'), 'posts' => Post::where('status', '=', 'published')->sort(Base::table('posts.created'), 'desc')->get())); return Response::create($json, 200, array('content-type' => 'application/json')); }); /** * Search */ Route::get(array('search', 'search/(:any)', 'search/(:any)/(:num)'), function ($slug = '', $offset = 1) {
/** * Theme helpers functions */ function full_url($url = '') { return Uri::full($url); }
$validator = new Validator(array('email' => $email)); $query = User::where('email', '=', $email); $validator->add('valid', function ($email) use($query) { return $query->count(); }); $validator->check('email')->is_email(__('users.email_missing'))->is_valid(__('users.email_not_found')); if ($errors = $validator->errors()) { Input::flash(); Notify::error($errors); return Response::redirect('admin/amnesia'); } $user = $query->fetch(); Session::put('user', $user->id); $token = noise(8); Session::put('token', $token); $uri = Uri::full('admin/reset/' . $token); $subject = __('users.recovery_subject'); $msg = __('users.recovery_message', $uri); mail($user->email, $subject, $msg); Notify::success(__('users.recovery_sent')); return Response::redirect('admin/login'); })); /* Reset password */ Route::get('admin/reset/(:any)', array('before' => 'guest', 'main' => function ($key) { $vars['messages'] = Notify::read(); $vars['token'] = Csrf::token(); $vars['key'] = $token = Session::get('token'); if ($token != $key) { Notify::error(__('users.recovery_expired'));
/** * @throws \RuntimeException If request-uri does not match site base-url * @return string */ private function computeUri() { $uri = Uri::full(); $pos = strpos($uri, '?'); $app = Config::get('app'); $app_url = empty($app['url']) ? "" : $app['url']; $base_uri = parse_url($app_url); $base_path = isset($base_uri['path']) ? $base_uri['path'] : ""; if (strlen($base_path) > 0) { // if $base_path exists if (strpos($uri, $base_path) == 0) { $uri = substr($uri, strlen($base_path)); } else { throw \RuntimeException('request uri does not match site base url'); } } if ($pos !== false) { return substr($uri, 0, $pos); } return $uri; }