[pmwiki-users] Router recipe and pagename in config.php redefinition
    Carlos AB 
    cabsec.pmwiki at gmail.com
       
    Tue Jun  6 15:41:15 CDT 2017
    
    
  
Hi,
I was refactoring and including some missing features to the router
Recipe, that were discussed a really long time ago and I got stuck
with a problem.
The problem is that I could not update $pagename from config.php and I
don't know if this is a new or old behavior for php, or I got a way to
never bump into this kind of problem before.
I solved it creating a entry in PostConfig array that call a function
outside config.php, and it worked as it should.
The function is something like this:
function RouterSetVars($pn){
global $RouterPageName,$Cursor,$FmtPV,$pagename;
  $pagename = $RouterPageName;
  $_GET['n'] = $RouterPageName;
  $_GET['pagename'] = $RouterPageName;
  $_REQUEST['n'] = $RouterPageName;
  $_REQUEST['pagename'] = $RouterPageName;
  $FmtPV['$RequestedPage'] = "'".PHSC($RouterPageName, ENT_QUOTES)."'";
  $Cursor['*'] = &$pagename;
}
Some of the changes I've made :
   - Split the CamelCase Router function, in 2 functions
   - Include a reserved words to CamelCase differently and to dash
differently (reserve some words)
    - Changed the script so RouterPreProcess(), now RouterStart()
      has to be called from config, so you can turn it on and off
      when needed, comment, control it better and so on
    - And array has to be made as usual and will activate router
      when called early or before the include with $Routes
      array as a function parameter to RouterStart().
    - Changed $aRouter to $Router, usually it activates the recipe
      using an array called $Routes.
    - Changed $aline to $line, for readability as line is used always
      inside functions.
    - Changed "RT_" key for namespace to "Router", to
      ease comprehension for new comers.
    - Changed function names and calling to use Router namespace.
    - Included RouterRedirect function.
    - Changed rline to line for uniformity on Router Redirect and ease
      function comprehension
Should I upload the script to the router recipe page so others can
benefit from it?
Carlos
    
    
More information about the pmwiki-users
mailing list