Easy Template Question

Author Message

Clemens T

Friday 27 May 2005 8:05:02 am

Hello all,
I'm currently developing my own Module which lists all folders in a Node (it works fine with 1 directory, but I want to use it with subdirectories as well).

My ViewList looks like:

$ViewList = array();

$ViewList['folderlist'] = array(
    'script' => 'folderlist.php',
    'params' => array () );

Now, when I change this to:

$ViewList = array();

$ViewList['folderlist'] = array(
    'script' => 'folderlist.php',
    'params' => array ('ParentID') );

I could in fact make sure that the template file lists everything in a subdirectory through the ParentID (as node_id), and if none is provided then it lists the default node_id. But, how is this done.

I don't know how to fetch/get the value in my template file. Or do I have to make this choice in folderlist.php and use multiple templates? I'm a bit stuck, besides that, the module system rocks :).

Greets,
Clemens
ps: I've been searching this site, and looked in to several contribs, but I can't find an answer. Thank you

Xavier Dutoit

Friday 27 May 2005 8:44:12 am

Hi,

Good luck, Assuming the nodeid is going to be a param in the url (eg: /myextension/myfunction/42)

Another way is to use named parameters (eg: /myextension/myfunction/(nodeid)/42 )

echo "Have a look at:<br><pre>";
print_r ($Params);
echo"</pre>";

// otherwise, something more useful
include_once( 'kernel/common/template.php' );
$tpl =& templateInit();

if (isset ($Params['Parameters'][0]))
      $tpl->setVariable('nodeid',$Params['Parameters'][0]);

//named parameters

foreach ($Params[UserParameters] as $param => $value)
    $tpl->setVariable( $param, $value );

Then you can use it into the template as any variable.

I guess that's just a test, as otherwise they are easier ways of listing all folders in a node ;)

X+

http://www.sydesy.com

Clemens T

Friday 27 May 2005 9:38:04 am

Wow thanks, I got it to work.. and yes, this is just a basic setup of a module that's going to contain more complex data than I can imagine.

BUT... there is one thing.. This works:

if (isset ($Params['Parameters'][0]))
      $tpl->setVariable('nodeid',$Params['Parameters'][0]);

and in my template I'll just say

{$nodeid}

THAT works.. but as you told me something about 'named parameters'.. I saw the code. and thought, hey that just loops through all the viewparameters and assigns them to the appropriate variables. I think I'm wrong, but don't know why.

I can't get this to work, I think because the UserParamters array is not properly filled? (just a thought).

//named parameters

foreach ($Params[UserParameters] as $param => $value)
    $tpl->setVariable( $param, $value );

Thanks on the quick reply!
Qudos for X.
Greetings,
Clemens

ps: my viewlist is still with
'params' = array( 'nodeid' );

edit: I'm still using {$nodeid} in my template code to get the nodeid..

Powered by eZ Publish™ CMS Open Source Web Content Management. Copyright © 1999-2014 eZ Systems AS (except where otherwise noted). All rights reserved.

eZ debug

Timing: Jan 19 2025 00:11:23
Script start
Timing: Jan 19 2025 00:11:23
Module start 'layout'
Timing: Jan 19 2025 00:11:23
Module start 'content'
Timing: Jan 19 2025 00:11:24
Module end 'content'
Timing: Jan 19 2025 00:11:24
Script end

Main resources:

Total runtime0.8577 sec
Peak memory usage4,096.0000 KB
Database Queries57

Timing points:

CheckpointStart (sec)Duration (sec)Memory at start (KB)Memory used (KB)
Script start 0.00000.0055 587.9063152.6250
Module start 'layout' 0.00550.0033 740.531339.4297
Module start 'content' 0.00880.8472 779.9609547.3047
Module end 'content' 0.85600.0017 1,327.265612.1875
Script end 0.8577  1,339.4531 

Time accumulators:

 Accumulator Duration (sec) Duration (%) Count Average (sec)
Ini load
Load cache0.00320.3776160.0002
Check MTime0.00140.1639160.0001
Mysql Total
Database connection0.00080.095710.0008
Mysqli_queries0.796892.8988570.0140
Looping result0.00060.0744550.0000
Template Total0.814695.020.4073
Template load0.00220.258520.0011
Template processing0.812494.712020.4062
Template load and register function0.00020.028710.0002
states
state_id_array0.00180.209610.0018
state_identifier_array0.00200.237720.0010
Override
Cache load0.00180.2123390.0000
Sytem overhead
Fetch class attribute can translate value0.00080.095520.0004
Fetch class attribute name0.00170.197740.0004
XML
Image XML parsing0.00060.068420.0003
class_abstraction
Instantiating content class attribute0.00000.001340.0000
General
dbfile0.00200.2387160.0001
String conversion0.00000.001040.0000
Note: percentages do not add up to 100% because some accumulators overlap

Templates used to render the page:

UsageRequested templateTemplateTemplate loadedEditOverride
1node/view/full.tplfull/forum_topic.tplextension/sevenx/design/simple/override/templates/full/forum_topic.tplEdit templateOverride template
3content/datatype/view/ezxmltext.tpl<No override>extension/community_design/design/suncana/templates/content/datatype/view/ezxmltext.tplEdit templateOverride template
4content/datatype/view/ezxmltags/line.tpl<No override>design/standard/templates/content/datatype/view/ezxmltags/line.tplEdit templateOverride template
11content/datatype/view/ezxmltags/paragraph.tpl<No override>extension/ezwebin/design/ezwebin/templates/content/datatype/view/ezxmltags/paragraph.tplEdit templateOverride template
6content/datatype/view/ezxmltags/literal.tpl<No override>extension/community/design/standard/templates/content/datatype/view/ezxmltags/literal.tplEdit templateOverride template
1content/datatype/view/ezimage.tpl<No override>extension/sevenx/design/simple/templates/content/datatype/view/ezimage.tplEdit templateOverride template
1print_pagelayout.tpl<No override>extension/community/design/community/templates/print_pagelayout.tplEdit templateOverride template
 Number of times templates used: 27
 Number of unique templates used: 7

Time used to render debug report: 0.0001 secs