SVN Alba r5400 - prosistem/alba/trunk/alba/apps/principal/modules/informes/actions
Author: josx Date: 2008-01-09 19:25:52 -0200 (Wed, 09 Jan 2008) New Revision: 5400 Modified: prosistem/alba/trunk/alba/apps/principal/modules/informes/actions/actions.class.php Log: Ahora el modulo de informes tiene soporte para que en el template se pueda usar un bucle (ademas del actual soporte para tablas) EJ: [docente;block=begin][docente.Nombre][docente;block=end] Modified: prosistem/alba/trunk/alba/apps/principal/modules/informes/actions/actions.class.php =================================================================== --- prosistem/alba/trunk/alba/apps/principal/modules/informes/actions/actions.class.php 2008-01-09 18:41:44 UTC (rev 5399) +++ prosistem/alba/trunk/alba/apps/principal/modules/informes/actions/actions.class.php 2008-01-09 21:25:52 UTC (rev 5400) @@ -477,23 +477,31 @@ // Saco del template todas las variables del tipo [sssss.rrrrr], tambien las del ciclo y además // evitando las variables del tbs con ; $matches = $results = array(); - if( preg_match_all("/\[([^];]*\.[^]]*)\]/", $fuente, $matches)) { - foreach ($matches[1] as $tag) { // Process each - if (sizeof($tag = explode('.', $tag)) > 1) { // Breakdown into components - $tail = array_pop($tag); - //salto las variables que tienen frm, habria que integrarlo - // a la expresion regular - if(strpos($tail, "frm=") !== false) { - continue; + if( preg_match_all("/\[[^];]*[;.][^]]*\]/", $fuente, $matches)) { + + foreach ($matches as $tags) { + foreach($tags as $tag) { + $tag = str_replace('[','',$tag); + $tag = str_replace(']','',$tag); + if (sizeof($aTag =explode('.', $tag)) > 1) { // Breakdown into components + $aTag =explode('.', $tag); + $tail = array_pop($aTag); + if(strpos($tail, "frm=") !== false) { + continue; + } + $pos = strpos($tail, ';block'); // posicion de block + if($pos !== false) { // es un listado + $tail = substr($tail, 0, $pos); + $results[$aTag[0]]['loop'] = 1; + } + $results[$aTag[0]][] = $tail; + } else { + $pos = strpos($tag, ';block=end'); // posicion de block + if($pos !== false) { // es un listado + $tail = substr($tag, 0, $pos); + $results[$tail]['loop'] = 1; + } } - $pos = strpos($tail, ';block'); // posicion de block - if($pos !== false) { // es un listado - $tail = substr($tail, 0, $pos); - $results[$tag[0]]['loop'] = 1; - } - eval('$results[\''.implode("']['", $tag)."'][] = '$tail';"); // Add to $result - } else { - $results[] = $tag[0]; // Add to $result } } }
participants (1)
-
commits@pressenter.com.ar