Changeset 1376

Show
Ignore:
Timestamp:
12/05/07 22:20:35 (1 year ago)
Author:
rho
Message:

updated pages plugin:

  • allow php code only on administrators
  • function to check if is editing current page
  • tweaked help information on edit form
  • updated sidebar code
Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • devel/mod/pages/index.php

    r1343 r1376  
    1313require(dirname(__FILE__) . '/lib/pages.inc.php'); 
    1414 
    15 run('profile:init'); 
    1615// pages init 
    1716pages_actions(); 
    1817 
    19 if (!(page_owner() > 0)) { 
    20     // site main pages 
    21     // clear sidebar 
    22     global $CFG, $function; 
    23     $function['display:sidebar'] = array($CFG->dirroot . 'mod/pages/lib/menu_block.php'); 
     18templates_page_setup(); 
     19 
     20if (page_owner() < 1) { 
     21    // remove all but pages block 
     22    sidebar_remove(array('pages_sidebar', 'sidebar-profile'), true); 
    2423} 
    25  
    26 templates_page_setup(); 
    2724 
    2825$page_id = optional_param('page'); 
  • devel/mod/pages/lib.php

    r1375 r1376  
    1313    global $CFG, $function, $PAGE; 
    1414 
    15     $owner = page_owner(); 
    16  
    17     // only allow php code to administrators' pages 
    18     // and on site pages (page_owner = -1) 
    19     //TODO: move this check to per-page flag 
    20     if ($owner == -1 || user_flag_get('admin', page_owner())) { 
    21         define('pages_allow_php', true); 
    22     } else { 
    23         define('pages_allow_php', false); 
    24     } 
    25  
     15    define('pages_allow_php_admin', true); 
     16    define('pages_allow_php_user', false); 
    2617    define('pages_parse_keywords', true); 
    2718    define('pages_blog_textproc', false); // breaks content with br's 
     
    9081    } 
    9182 
    92     // add sidebar block 
    93     sidebar_add(25, 'sidebar-pages', pages_get_menu_block()); 
     83    // not show main site pages on sidebar 
     84    sidebar_add(25, 'pages_sidebar', null, true, __gettext('Your pages')); 
     85
     86 
     87function pages_php_allowed() { 
     88    if (page_owner() == -1 
     89        || pages_allow_php_user 
     90        || (pages_allow_php_admin && user_flag_get('admin', page_owner()))) 
     91    { 
     92        return true; 
     93    } else { 
     94        return false; 
     95    } 
    9496} 
    9597 
     
    137139            $page->content = pages_html_wrap('p', __gettext('This is your first page. Edit me!')); 
    138140            $page->content .= pages_html_wrap('p', __gettext('Installed on ') . pages_html_wrap('a', '{{url}}', array('href' => '{{url}}'))); 
    139             if (pages_allow_php) { 
     141            if (pages_php_allowed()) { 
    140142                $page->content .= pages_html_wrap('p', __gettext('Current time: ') . ' <?php echo strftime("%Y-%m-%d, %H:%m") ?>'); 
    141143            } 
     
    300302} 
    301303 
    302 function pages_get_menu_block() { 
     304function pages_sidebar() { 
    303305    global $CFG, $page_owner; 
    304306 
    305     //FIXME: only needs page_owner global on frontpage 
    306307    $owner = page_owner(); 
    307     //FIXME: workaround 
    308     if ($owner < 1 && $page_owner > 0) { 
    309         $owner = $page_owner; 
    310     } 
    311308 
    312309    $menu_elements = pages_get_mainmenu($owner); 
  • devel/mod/pages/lib/pages.inc.php

    r1343 r1376  
    152152 
    153153        $title = trim(optional_param('page-title')); 
    154         if (pages_allow_php) { 
     154        if (pages_php_allowed()) { 
    155155            $content = trim(optional_param('page-content', null, null)); 
    156156        } else { 
     
    306306function pages_process_content($content) { 
    307307    // execute php code 
    308     if (pages_allow_php) { 
     308    if (pages_php_allowed()) { 
    309309        $content = pages_eval($content); 
    310310    } 
     
    340340} 
    341341 
     342function pages_is_editing() { 
     343    global $PAGE; 
     344 
     345    return isset($PAGE->pages->editing); 
     346} 
     347 
    342348function pages_edit_page($page_name, $owner=-1) { 
    343     global $CFG; 
     349    global $CFG, $PAGE; 
     350 
     351    $PAGE->pages->editing = true; 
    344352 
    345353    if (!empty($page_name) && permissions_check('pages::edit', $owner)) { 
     
    480488 
    481489        // help 
    482         $form_help = pages_html_wrap('p', __gettext('You can use {{page}} keyword to link to others pages.<br />&raquo; <em>{{page:About_me}}</em> will link to your page with menu title "About me". e.g. {{page:Main}}<br />&raquo; <em>{{page:user:Title}}</em> will link to user\'s page "Title". e.g. {{page:news:Main}}')); 
     490        $form_help = __gettext('You can use {{page}} keyword to link to others pages.'); 
     491        $form_help .= '<br />&raquo; '; 
     492        $form_help .= __gettext('<em>{{page:About_me}}</em> will link to your page with menu title "About me". e.g. {{page:Main}}'); 
     493        $form_help .= '<br />&raquo; '; 
     494        $form_help .= __gettext('<em>{{page:user:Title}}</em> will link to user\'s page "Title". e.g. {{page:news:Main}}'); 
     495        $form_help .= '<br />&raquo; '; 
     496        $form_help .= __gettext('<em>{{page:content:Title}}</em> will link to site main pages "Title". e.g. {{page:content:About}}'); 
     497        $form_help  = pages_html_wrap('p', $form_help); 
    483498 
    484499        $input_buttons = pages_html_input('submit', array(