[Alba-desarrollo] SVN Alba r5400 -
prosistem/alba/trunk/alba/apps/principal/modules/informes/actions
commits en pressenter.com.ar
commits en pressenter.com.ar
Mie Ene 9 22:25:52 CET 2008
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
}
}
}
Más información sobre la lista de distribución Alba-desarrollo