| 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 | */ |
|---|
| 29 | function 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 | } |
|---|