This application is not used any more and exists only for history. Post new tickets on the Github account.
Cette application n'est plus utilisée, et existe uniquement pour son historique. Postez les nouveaux tickets sur le compte github.

Ticket #1449: block.mloop.php

File block.mloop.php, 2.2 KB (added by flav, 3 years ago)

plugin de template ayant besoin du blockstack

Line 
1<?php
2
3// Virer varName. (Obsolète grace à l'itérateur?)
4
5
6/**
7* @package     jspip
8* @subpackage  jtpl_plugin
9* @author      Guillon Flavien
10* @copyright   2010 Guillon Flavien
11* @licence     GNU Lesser General Public Licence see LICENCE file or http://www.gnu.org/licenses/lgpl.html
12*/
13
14/**
15 * a special list block list easily data objects
16 *
17 * <pre>{loop '$boucle1(articles)->$art', [$conditions],[$offset],[$pSize],['<p>display_if_none</p>']}
18 * ..here generated list of data objects {/loop}</pre>
19 *
20 * @param jTplCompiler $compiler the template compiler
21 *
22 * @param boolean true if it is the begin of block, else false
23 *
24 * @param $param array(0=>'definition',
25 *  optional:[$params])
26 *
27 * @return string the php code corresponding to the begin or end of the block
28 */
29function jtpl_block_common_mloop($compiler, $begin, $param=array())
30{
31    if($begin){
32        if(count($param) == 2)  {
33                $content = '';
34               
35                $loopKey = md5(serialize($compiler->_blockStack));
36               
37        $content .= '
38        jClasses::inc("tpl_mloop");
39        $definition'.$loopKey.' = tpl_mloop::extractDefinition('.$param[0].');
40        $loop'.$loopKey.' = new tpl_mloop($definition'.$loopKey.'[\'driver\'],'.$param[1].');
41       
42                $t->_vars[$definition'.$loopKey.'[\'var\']] = &$loop'.$loopKey.';
43        if($loop'.$loopKey.'->getCount())       {
44                        $functions["loop_".$definition'.$loopKey.'[\'var\']] = function (&$list) use (&$t,&$definition'.$loopKey.',&$loop'.$loopKey.',&$functions)      {
45                                $loop'.$loopKey.'->up();
46                                $loop'.$loopKey.'->setFirstAndLastElement($list);
47                                $isHierarchized = $loop'.$loopKey.'->isHierarchized();
48                                $definition = $definition'.$loopKey.';
49                                foreach($list as $t->_vars[$definition'.$loopKey.'[\'objectVar\']] )    {
50                                        ';
51               
52        }else{
53                        die(var_export($param,2));
54            $content='';
55            $compiler->doError2('errors.tplplugin.block.bad.argument.number','mloop',2);
56        }
57    }else{
58                $loopKey = md5(serialize($compiler->_blockStack));
59        $content = '
60                                }
61                                $loop'.$loopKey.'->down();
62                        };
63                        $functions["loop_".$definition'.$loopKey.'[\'var\']]($loop'.$loopKey.'->getList());
64                }
65                ';
66    }
67    return $content;
68}