strange argument passing in Postnuke

Top Page
Attachments:
Message as email
+ (text/plain)
Delete this message
Reply to this message
Author: Alexander Henry
Date:  
Subject: strange argument passing in Postnuke
"just read the docs" not there. Quiet.
"just read the code" code snippet from Postnuke below. Be quiet.


In postnuke, the API calls are rather sparsely documented. They like to
call functions like this:

        $output->URL(pnVarPrepForDisplay(pnModURL('Mymodule',
                                                  'user',
                                                  'viewdetails',
                                                  array('id' => $id))),
                                         "Really Neat Link!!  Click me!!");


The pnModURL part makes a link in HTML output. Clicking on the link
will call the function

function mymodule_user_viewdetails($args){

    list($id) = pnVarCleanFromInput('id');


    extract($args);


....

}

and, magically, the variable $id appears as a global variable inside the
function mymodule_user_viewdetails.
Now the problem I'm having is that if I pass id=57, which appears as 57
in the URL in the browser, I get 5. If I pass id=112, I get 1. It just
chops stuff off. I would like to debug this, BUT

function pnVarCleanFromInput()
{
    $search = array('|</?\s*SCRIPT.*?>|si',
                    '|</?\s*FRAME.*?>|si',
                    '|</?\s*OBJECT.*?>|si',
                    '|</?\s*META.*?>|si',
                    '|</?\s*APPLET.*?>|si',
                    '|</?\s*LINK.*?>|si',
                    '|</?\s*IFRAME.*?>|si',
                    '|STYLE\s*=\s*"[^"]*"|si');


    $replace = array('');


    $resarray = array();





what the hell??? it accepts no arguements, yet the arguements are
required or the code crashes!!! cutting the line list($id) =
pnVarCleanFromInput('id'); gets me NO arguments at all!




I have never debugged anything like this. Arguements seem to pass
through four layers, two of which are invisible.


If anyone is showing up at Stamtisch that knows about this, help would
be appreciated.

--Alexander