Example #1
0
<?php

Route::collection(array('before' => 'auth,install_exists'), function () {
    /*
        List Metadata
    */
    Route::get('admin/extend/metadata', function () {
        $vars['token'] = Csrf::token();
        $vars['dashboard_page_options'] = array('panel' => 'Welcome', 'posts' => 'Posts', 'pages' => 'Pages');
        $vars['meta'] = Config::get('meta');
        $vars['pages'] = Page::dropdown();
        $vars['themes'] = Themes::all();
        return View::create('extend/metadata/edit', $vars)->partial('header', 'partials/header')->partial('footer', 'partials/footer');
    });
    /*
        Update Metadata
    */
    Route::post('admin/extend/metadata', function () {
        $input = Input::get(array('sitename', 'description', 'home_page', 'posts_page', 'posts_per_page', 'auto_published_comments', 'theme', 'comment_notifications', 'comment_moderation_keys', 'show_all_posts', 'dashboard_page'));
        foreach ($input as $key => $value) {
            $input[$key] = eq($value);
        }
        $validator = new Validator($input);
        $validator->check('sitename')->is_max(3, __('metadata.sitename_missing'));
        $validator->check('description')->is_max(3, __('metadata.sitedescription_missing'));
        $validator->check('posts_per_page')->is_regex('#^[0-9]+$#', __('metadata.missing_posts_per_page', 'Please enter a number for posts per page'));
        if ($errors = $validator->errors()) {
            Input::flash();
            Notify::error($errors);
            return Response::redirect('admin/extend/metadata');
        }
     }
     // encode title
     $input['title'] = e($input['title'], ENT_COMPAT);
     $input['show_in_menu'] = is_null($input['show_in_menu']) ? 0 : 1;
     Page::update($id, $input);
     Extend::process('page', $id);
     Notify::success(__('pages.updated'));
     return Response::redirect('admin/pages/edit/' . $id);
 });
 /*
 	Add Page
 */
 Route::get('admin/pages/add', function () {
     $vars['messages'] = Notify::read();
     $vars['token'] = Csrf::token();
     $vars['pages'] = Page::dropdown(array('exclude' => array(), 'show_empty_option' => true));
     $vars['statuses'] = array('published' => __('global.published'), 'draft' => __('global.draft'), 'archived' => __('global.archived'));
     // extended fields
     $vars['fields'] = Extend::fields('page');
     return View::create('pages/add', $vars)->partial('header', 'partials/header')->partial('footer', 'partials/footer')->partial('editor', 'partials/editor');
 });
 Route::post('admin/pages/add', function () {
     $input = Input::get(array('parent', 'name', 'title', 'slug', 'content', 'status', 'redirect', 'show_in_menu'));
     // if there is no slug try and create one from the title
     if (empty($input['slug'])) {
         $input['slug'] = $input['title'];
     }
     // convert to ascii
     $input['slug'] = slug($input['slug']);
     // encode title
     $input['title'] = e($input['title'], ENT_COMPAT);