+ function addRowsData($format, $campos = array(), $lugar = 'append') {
+ if (!is_array($campos)) {
+ $campos = array($campos);
+ }
+ switch (strtolower($lugar)) {
+ case 'prepend':
+ $this->_prependRowsData[] = array($format, $campos);
+ break;
+ case 'append':
+ $this->_appendRowsData[] = array($format, $campos);
+ break;
+ default:
+ $this->raiseError('Lugar incorrecto. Lugares soportados: append, prepend.');
+ }
+ }
+
+ function _buildRowsData($datos, $row, $array) {
+ if ($array) {
+ foreach ($array as $data) {
+ list($format, $fields) = $data;
+ // Si tiene formatos y argumentos.
+ if ($fields) {
+ $args = array($format);
+ foreach ($fields as $field) {
+ if (is_array($row)) {
+ $args[] = $row[$field];
+ } else {
+ $args[] = $row->$field;
+ }
+ }
+ $datos[] = call_user_func_array('sprintf', $args);
+ // Si tiene solo formato.
+ } else {
+ #echo "TAG: $format<br>";
+ // Si es un link, traduce las variables GET.
+ if (is_a($format, 'mecon_html_link')) {
+ $vars = $format->getGetVars();
+ foreach ($vars as $var => $val) {
+ if (preg_match("/^{$this->_getVarPrefix}(.+)$/", $var, $m)
+ and ($val === null)) {
+ $format->setGetVar($var, $row[$m[1]]);
+ }
+ }
+ }
+ $datos[] = $format;
+ }
+ }
+ }
+ return $datos;
+ }
+
+ function addRowsIcon($id, $campos = array(), $link = null, $lugar = 'append') {
+ if (is_string($campos)) {
+ $campos = array($campos);
+ }
+ if (!$link) {
+ $link = @$_SERVER['PHP_SELF'];
+ }
+ if (is_string($link)) {
+ $link = new MECON_HTML_Link($link, '');
+ }
+ switch ($id) {
+ case 'modificar':
+ $img = new MECON_HTML_Image('/MECON/images/general_modificar', '(M)');
+ $link->addContents($img);
+ foreach ($campos as $campo) {
+ $link->setGetVar($this->_getVarPrefix.$campo, null);
+ }
+ $this->addRowsData($link, array(), $lugar);
+ break;
+ case 'no_modificar':
+ $img = new MECON_HTML_Image('/MECON/images/general_modificar_des', '(-)');
+ $this->addRowsData($img, array(), $lugar);
+ break;
+ case 'borrar':
+ $img = new MECON_HTML_Image('/MECON/images/general_eliminar', '(B)');
+ $link->addContents($img);
+ foreach ($campos as $campo) {
+ $link->setGetVar($this->_getVarPrefix.$campo, null);
+ }
+ $this->addRowsData($link, array(), $lugar);
+ break;
+ case 'no_borrar':
+ $img = new MECON_HTML_Image('/MECON/images/general_eliminar_des', '(-)');
+ $this->addRowsData($img, array(), $lugar);
+ break;
+ case 'ir':
+ $img = new MECON_HTML_Image('/MECON/images/general_ir4', '->');
+ $link->addContents($img);
+ foreach ($campos as $campo) {
+ $link->setGetVar($this->_getVarPrefix.$campo, null);
+ }
+ $this->addRowsData($link, array(), $lugar);
+ break;
+ default:
+ $this->raiseError("No hay un ícono predefinido llamado '$id'.");
+ }
+ }
+