- * @access public
- * @param $intPos
- * @param $strClass
- * @param $strClassLink
- * @param $number
- * @param $renderTD if this value = 1, this function will include the TD tags
- * @return void
- */
- function RenderColumn( $intPos = 0, $strClass = "tblCell", $strClassLink = "tblCellA" , $number = 0, $renderTD = 1)
- {
- if ( ! defined ( 'ENABLE_ENCRYPT') ) define ( 'ENABLE_ENCRYPT', 'no' ) ;
-
- global $G_DATE_FORMAT;
- global $G_TABLE_DATE_FORMAT;
- $col = $this->Columns[$intPos];
-
- switch (substr($col['Name'], 0, 1)) {
- case '=':
- // Si empieza con '=' entonces se toma como valor constante
- $val = substr($col['Name'], 1, strlen($col['Name'])-1);
- break;
- case '%':
- // Si empieza con '%' entonces traducir/convertir el valor
- $fieldname = substr($col['Name'], 1, strlen($col['Name'])-1);
- $val = $this->_row_values[$fieldname];
- $val = $this->translateValue( $this->_contexto, $val, SYS_LANG );
- break;
- default:
- $fieldname = $col['Name'];
- $val = isset ( $this->_row_values[$fieldname] ) ? $this->_row_values[$fieldname] : '' ;
- }
-
- $res = "";
- if (($this->show_nummbers)and ($intPos == 0))
- $res = "| $number | ";
-
- if(!(stristr($val,"script") === false)) $val = htmlentities($val,ENT_QUOTES,'utf-8');
-
- if ( $renderTD == 1 ) {
- $res .= " 0 ) $res .= " width=\"" . $col["Width"] . "\"";
- $res .= "> " ;
- }
-
- switch ( $col["Type"] )
- {
- case 'hidden':
- return '';
- break;
- case "text":
- if ( $val != "" ) $res .= G::unhtmlentities($val,ENT_QUOTES,'utf-8');
- else $res .= " ";
- break;
- case "text-dontSearch":
- if ( $val != "" ) $res .= G::unhtmlentities($val);
- else $res .= " ";
- break;
- case "html":
- if ( $val != "" ) $res .= ($val);
- else $res .= " ";
- break;
- case "textPlain":
- if ( $val != "" ) $res .= ($this->ParsingFromHtml(G::unhtmlentities($val),"300"));
- //if ( $val != "" ) $res .= (($val));
- else $res .= " ";
- break;
- case "currency":
- if ( $val != "" ) {
- $aux = explode (' ', $val);
- $format = number_format( (float)$aux[0], 2, ".", ",");
- $res .= htmlentities( $format . ' ' . ( isset( $aux[1] ) ? $aux[1] : '' ) ,ENT_QUOTES,'utf-8');
- }
- else
- $res .= " ";
- break;
-
- case "currency2":
- if ( $val != "" ) {
- $res .= G::NumberToCurrency( $val);
- }
- else
- $res .= "$ 0.00";
- break;
-
- case "percentage2":
- if ( $val != "" ) {
- $res .= G::NumberToPercentage( $val);
- }
- else
- $res .= "0.00 %";
- break;
-
- case "percentage":
- if ( $val != "" ) {
- $res .= htmlentities( number_format( (float)$val, 2, ".", ",") . " %" ,ENT_QUOTES,'utf-8');
- }
- else {
- $res .= " ";
- }
- break;
-
- case "date":
- if ( $val != "" && $val != '0000-00-00 00:00:00' ) {
- $part = explode (' ', $val);
- $aux = explode ('-', $part[0]);
-
- switch($G_DATE_FORMAT) {
- case 'DD/MM/AAAA':$res .= formatDate('$d/$m/$Y $H:$i:$s',$val);
- break;
- case 'MM/DD/AAAA':$res .= formatDate('$m/$d/$Y $H:$i:$s EST',$val);
- break;
- case 'AAAA/MM/DD':$res .= formatDate('$Y/$m/$d $H:$i:$s',$val);
- break;
- case 'LITERAL' :$res .= formatDate('$M $d $Y',$val);
- break;
- }
-
- }
- else
- $res .= " ";
-
- break;
-
- case "email":
- if( $val != "" ) {
- $res .= "";
- $res .= $val;
- $res .= "";
- }
- else {
- $res .= " ";
- }
- break;
-
- case "ifpdf":
- if ( $val == '1' ) {
- $image = " ";
- //valor
- $tlabel = substr( $col["Content"] , 0, 1 );
- $vname = substr( $col["Content"], 1, (strlen($col["Content"]) - 1) );
- $lval = $this->_row_values[$vname];
- //$res .= " $image "; //It open a new window... better the other way By JHL 16/11/06
- $res .= " $image ";
- }
- else
- $res .= " ";
- break;
-
- case "ifimg":
- $image = " ";
- if ( $val == '1' ) {
- //valor
- $tlabel = substr( $col["Content"] , 0, 1 );
- $vname = substr( $col["Content"], 1, (strlen($col["Content"]) - 1) );
- $lval = $this->_row_values[$vname];
- $res .= " $image ";
- }
- else
- $res .= " ";
- break;
-
-
- case "ifrtf":
- if ( $val == '1' ) {
- $image = " ";
- //valor
- $tlabel = substr( $col["Content"] , 0, 1 );
- $vname = substr( $col["Content"], 1, (strlen($col["Content"]) - 1) );
- $lval = $this->_row_values[$vname];
- //$res .= " $image "; //It open a new window... better the other way By JHL 16/11/06
- $res .= " $image ";
- }
- else
- $res .= " ";
- break;
-
- case "image":
-
- if (is_array($col["Condition"])) //By JHL to enable Condition to display a image -- New parameter Condition in Addrawcolumn
- {
- $field_compare=$col["Condition"]['field'];
- $tlabel = substr($field_compare,0,1);
- switch($tlabel)
- {
- case "&":
- $vname = substr($field_compare, 1, (strlen($field_compare) - 1) );
- $field_val = $this->_row_values[$vname];
- break;
- }
-
-
- }
- else
- $val = " ";
-// break;
-
- case "textimage":
- $AAS=$col['Extra'];
- $val1 = " ";
-// break;
- case "image-text":
- if ( is_array($col['Content']) && $col['Content'] != "") {
- // Hay mas de un valor para el link
- $values = $col['Content'];
- $n = count($values);
-
- $res .= "_row_values[$vname];
-
- $res .= $i == $n-1 ? $lval : $lval . "/";
- break;
- }
- }
- $res .= "\">".strtoupper($fieldname)."$val";
- }else
- $val2 = "".strtoupper($fieldname)."";
-// break;
-
-
- case "link":
- if ( $val == "" ) $res .= " ";
- $title = '';
- if ( $col["Type"] == 'link' && trim( isset ( $this->_row_values['TOOLTIP']) ? $this->_row_values['TOOLTIP'] : '' ) );
- $title = (isset ( $this->_row_values['TOOLTIP']) ? "title=\" " .$this->_row_values['TOOLTIP']. " \"" : '' ) ;
- if ( is_array($col['Content']) && $col['Content'] != "") {
- // Hay mas de un valor para el link
- $values = $col['Content'];
- $n = count($values);
-
- $res .= "_row_values[$vname];
-
- $res .= $i == $n-1 ? $lval : $lval . "/";
- break;
- }
- }
- $res .= "\">$val";
- }
- elseif ( $col["Content"] != "" && !is_array($col['Content']) ) {
- $tlabel = substr( $col["Content"] , 0, 1 );
- switch( $tlabel )
- {
- case "&":
- $vname = substr( $col["Content"], 1, (strlen($col["Content"]) - 1) );
- $lval = $this->_row_values[$vname];
- if ( ENABLE_ENCRYPT == 'yes' ) {
-
- //$encoded = G::encrypt ( $col["Target"] . "/" . $lval . ".html", URL_KEY );
- $encoded = G::encryptUrl ( $col["Target"] . "/" . $lval . ".html", URL_KEY );
- $res .= "";
- if ($col["Type"]=="textimage")
- {
- $res .= $val1;
- $val=" (".$val.")";
- }
- if ($col["Type"]=="image-text") {
-
- $res .= $val2;
- }
- $res .= $val;
- $res .= "";
- }
- else {
- $res .= "";
- if ($col["Type"]=="textimage")
- {
- $res .= $val1;
- $val=" (".$val.")";
- }
- if ($col["Type"]=="image-text") {
-
- $res .= $val2;
- }
- $res .= $val;
- $res .= "";
- }
- break;
- case "$":
- $vname = substr( $col["Content"], 1, (strlen($col["Content"]) - 1) );
- $lval = $HTTP_SESSION_VARS[$vname];
- $res .= "";
- $res .= $val;
- $res .= "";
- break;
- default:
- $res .= "";
- $res .= $col["Content"];
- $res .= "";
- break;
- }
- }
- else
- {
- $res .= "";
- $res .= $val;
- $res .= "";
- }
- break;
-
-
- case "linknew":
- if ( $val == "" ) $res .= " ";
- if ( $col["Content"] != "" ) {
- $tlabel = substr( $col["Content"] , 0, 1 );
- switch( $tlabel )
- {
- case "&":
- if ( ENABLE_ENCRYPT == 'yes' ) {
- $vname = substr( $col["Content"], 1, (strlen($col["Content"]) - 1) );
- $lval = $this->_row_values[$vname];
- //$encoded = G::encryptUrl ( $col["Target"] , URL_KEY ). "/" . $lval . ".html";
- $encoded = G::encryptUrl ( $col["Target"]. "/" . $lval . "" , URL_KEY );
- $res .= "";
- $res .= $val;
- $res .= "";
- }
- else {
- $vname = substr( $col["Content"], 1, (strlen($col["Content"]) - 1) );
- $lval = $this->_row_values[$vname];
- $res .= "";
- $res .= $val;
- $res .= "";
- }
- break;
- case "$":
- $vname = substr( $col["Content"], 1, (strlen($col["Content"]) - 1) );
- $lval = $HTTP_SESSION_VARS[$vname];
- $res .= "";
- $res .= $val;
- $res .= "";
- break;
- default:
- $res .= "";
- $res .= $col["Content"];
- $res .= "";
- break;
- }
- }
- else
- {
- $res .= "";
- $res .= $val;
- $res .= "";
- }
- break;
-
- case "iflink":
- if ( $col["Content"] != "" )
- {
- $tlabel = substr( $col["Content"] , 0, 1 );
- if( $val != "" )
- {
- switch( $tlabel )
- {
- case "&":
- $vname = substr( $col["Content"], 1, (strlen($col["Content"]) - 1) );
- $lval = $this->_row_values[$vname];
- $res .= "";
- $res .= $val;
- $res .= "";
- break;
- case "$":
- $vname = substr( $col["Content"], 1, (strlen($col["Content"]) - 1) );
- $lval = $HTTP_SESSION_VARS[$vname];
- $res .= "";
- $res .= $val;
- $res .= "";
- break;
- default:
- $res .= "";
- $res .= $col["Content"];
- $res .= "";
- break;
- }
- }
- else
- {
- $res .= " ";
- }
- }
- else
- {
- $res .= "";
- $res .= $val;
- $res .= "";
- }
- break;
-
-
- case "jsimglink":
- $val = " ";
-
- case "jslink":
- if ( $val == "" ) $val .= " " . $col['Name'] . '';
- if ( $val == "" ) $res .= " ";
- if ( $col["Content"] != "" )
- {
- $tlabel = substr( $col["Content"] , 0, 1 );
- switch( $tlabel )
- {
- case "&":
- $vname = substr( $col["Content"], 1, (strlen($col["Content"]) - 1) );
- $lval = $this->_row_values[$vname];
- $res .= "";
- $res .= $val;
- $res .= "";
- break;
-
- case "$":
- $vname = substr( $col["Content"], 1, (strlen($col["Content"]) - 1) );
- $lval = $HTTP_SESSION_VARS[$vname];
- $res .= "";
- $res .= $val;
- $res .= "";
- break;
-
- case '_':
- $Values = explode(',', substr($col['Content'], 1, strlen($col['Content'])));
- $res .= "_row_values[substr($Value, 1, strlen($Value))] . ',';
- else
- $res .= "'" . $this->_row_values[substr($Value, 1, strlen($Value))] . "',";
- else
- $res .= $Value . ',';
- }
- $res = substr($res, 0, strlen($res) - 1);
- $res .= ")\"" . $col['Extra'] . ">";
- $res .= $val;
- $res .= "";
- break;
-
- default:
- $res .= "";
- $res .= $col["Content"];
- $res .= "";
- break;
- }
- }
- else
- {
- $res .= "";
- $res .= $val;
- $res .= "";
- }
- break;
-
- case "checkbox":
- $res .= "
- * @access public
- * @param string $strAction Next action to do
- * @param string $strLabel Label
- * @return void
- */
- function SetAction( $strAction, $strLabel="Continue" )
- {
- $this->Action = $strAction;
- $this->ActionLabel = $strLabel;
- }
-
- /**
- * Set contaxt and table (array) of translate
- *
- * @author Hardy Beltran Monasterios
- * @param string $contexto Contexto en el cual se busca la traducci?n
- * @param array $tabla Tabla con valores para traducir
- * @param string $nombre Nombre del array $tabla
- * @access public
- * @return void
- */
- function setTranslate( $contexto, $tabla, $nombre )
- {
- if (is_array($this->contexto)) {
- $this->contexto[0][] = $contexto;
- $this->contexto[1][] = $nombre;
-
- } else {
- $this->contexto = array();
- $this->contexto[0][] = $contexto;
- $this->contexto[1][] = $nombre;
- // array_push($this->contexto[0], $contexto);
- // array_push($this->contexto[1], $nombre);
- }
- if (is_array($this->translate)) {
- $this->translate = array();
- $this->translate[$nombre] = $tabla;
- } else {
- $this->translate[$nombre] = $tabla;
- }
- // Fijamos ultimo contexto usado
- $this->_contexto = $contexto;
- }
-
- /**
- * Search value in the table of translation and returns last accourding to choised context
- * Retorna el valor a su equivalente traducido/convertido
- * @author Hardy Beltran Monasterios
- * @param string $contexto Contexto en el cual se busca la traducci?n
- * @param mixed $valor Valor que se va traducir/convertir
- * @param string $lang El lenguaje que se va utilizar
- * @return mixed
- */
- function translateValue( $contexto, $valor, $lang )
- {
- // Verificar si exite el contexto
- if (in_array($contexto, $this->contexto[0])) {
- $j = count($this->contexto[0]);
- for ( $i=0; $i < $j; $i++ ) {
- if ($contexto == $this->contexto[0][$i]){
- $origen = $this->contexto[1][$i];
- }
- }
- $tabla = $this->translate[$origen];
- if (isset($tabla[$lang][$valor])) {
- return $tabla[$lang][$valor];
- } else {
- print ("l10n error:no lang or value.");
- }
- } else {
- print ("l10n error:no context.");
- }
- }
-
- /**
- * Estable el contexto de traducci?n/conversi?n
- *
- * @author Hardy Beltran Monasterios
- * @param string $contexto Contexto en el cual se busca la traducci?n
- * @return void
- */
- function setContext( $contexto )
- {
- $this->_context = $contexto;
- }
-
-/**
- * Parse from HTML
- *
- * @author Fernando Ontiveros Lira
- * @access public
- * @return void
- */
- function ParsingFromHtml($value, $number = '100000000')
- {
- $car = substr($value, 0,1);
- $len = strlen($value);
- $Flag = 1;
- $token = '';
- $i = 0;
-
- While ($i<=$len and $i <= $number){
- $car=substr($value,$i,1);
- $br = strtoupper(substr($value,$i,4));
- if ($car == '<'){
- $Flag = 0;
- }
- if ($car == '>'){
- $Flag = 1;
- }
- if($br == ' ' || $br == '')
- $token .= " ";
-
- if (($Flag == 1)&& ($car != '>')){
- $token .= $car;
- if ( $i == $number )
- $token .= "... ";
- }
- $i = $i +1;
- }
- return $token;
- }
+.
+ *
+ * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
+ * Coral Gables, FL, 33134, USA, or email info@colosa.com.
+ *
+ */
+/**
+ *
+ *
+ *
+ *
+ * Table class definition
+ * Render table
+ *
+ * @package gulliver.system
+ * @author Fernando Ontiveros Lira
+ * @copyright (C) 2002 by Colosa Development Team.
+ *
+ */
+
+class Table
+{
+ var $Columns = null;
+ var $Labels = null;
+ var $rows_per_page = 25;
+ var $show_nummbers = null;
+ var $first_row = 0;
+ var $row_pos = 0;
+ var $Action = ""; //not used
+ var $ActionLabel = "Continuar"; //not used
+ var $_dbc = null;
+ var $_dbses = null;
+ var $_dbset = null;
+ var $_source = "";
+ var $DefaultOrder = "UID";
+ var $DefaultOrderDir = 'ASC';
+ var $CustomOrder = "";
+ var $WhereClause = "";
+ var $_row_values = null;
+ var $_ordered = true;
+ var $orderprefix = "";
+ var $CountQry = "";
+ var $filtro = 1;
+ var $title = '';
+
+ /**
+ * Asocia un arreglo con valores de traducci?n/conversi?n a un contexto
+ *
+ * @var array
+ */
+ var $contexto = null;
+
+ /**
+ * Arreglo que contiene las cadenas que van a ser usadas al traducir/convertir
+ *
+ * @var array
+ */
+ var $translate = null;
+
+ /**
+ * Establece el ?ltimo contexto utilizado
+ *
+ * @var string
+ */
+ var $_contexto = '';
+
+ /**
+ * Set conecction using default values
+ *
+ * @author Fernando Ontiveros Lira
+ * @access public
+ * @param string $objConnection connection string
+ * @return void
+ */
+ function Table ($objConnection = null)
+ {
+ $this->SetTo( $objConnection );
+ }
+
+ /**
+ * Set conecction using default values
+ *
+ * @author Fernando Ontiveros Lira
+ * @access public
+ * @param string $objConnection connection string
+ * @return void
+ */
+ function SetTo ($objConnection = null)
+ {
+ $this->_dbc = $objConnection;
+ }
+
+ /**
+ * Set query string
+ *
+ * @author Fernando Ontiveros Lira
+ * @access public
+ * @param string $stQry query string
+ * @param string $stDefaultOrder index to order by, default value='UID'
+ * @return void
+ */
+ function SetSource ($stQry = "", $stDefaultOrder = "UID", $stDefaultOrderDir = 'ASC')
+ {
+ //to fix missing value for variable orderDir, when between pages changes.
+ $url1 = $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] . '?';
+ $url2 = strstr( $_SERVER['HTTP_REFERER'] . '?', $_SERVER['HTTP_HOST'] );
+ $url1 = substr( $url1, 0, strpos( $url1, '?' ) );
+ $url2 = substr( $url2, 0, strpos( $url2, '?' ) );
+ if ($url1 != $url2) {
+ if (isset( $_SESSION['OrderBy'] )) {
+ unset( $_SESSION['OrderBy'] );
+ }
+ if (isset( $_SESSION['OrderDir'] )) {
+ unset( $_SESSION['OrderDir'] );
+ }
+ }
+ $this->_source = $stQry;
+ $this->DefaultOrder = $stDefaultOrder;
+ $this->DefaultOrderDir = $stDefaultOrderDir;
+ }
+
+ /**
+ * Obtains query string asociated
+ *
+ * @author Fernando Ontiveros Lira
+ * @access public
+ * @return void
+ */
+ function GetSource ()
+ {
+ global $HTTP_GET_VARS;
+ global $HTTP_SESSION_VARS;
+ $stOrderByDir = $this->DefaultOrderDir;
+ if (isset( $HTTP_SESSION_VARS['OrderDir'] ) && ($HTTP_SESSION_VARS['OrderDir'] == 'DESC' || $HTTP_SESSION_VARS['OrderDir'] == 'ASC'))
+ $stOrderByDir = $HTTP_SESSION_VARS['OrderDir'];
+
+ $stQry = $this->_source;
+ if ($this->WhereClause != "") {
+ $stQry .= " WHERE " . $this->WhereClause;
+ }
+
+ if ($this->_ordered == true) {
+ $stOrderBy = (isset( $HTTP_GET_VARS[$this->orderprefix . 'order'] ) ? $HTTP_GET_VARS[$this->orderprefix . 'order'] : '');
+ $stOrderLb = (isset( $HTTP_GET_VARS[$this->orderprefix . 'label'] ) ? $HTTP_GET_VARS[$this->orderprefix . 'label'] : '');
+
+ //if( isset( $HTTP_SESSION_VARS['OrderDir'] ) && $HTTP_SESSION_VARS['OrderDir'] == $stOrderBy ) {
+ if ($stOrderLb) {
+ if ($HTTP_SESSION_VARS['OrderDir'] == 'ASC') {
+ $stOrderByDir = 'DESC';
+ } elseif ($HTTP_SESSION_VARS['OrderDir'] == 'DESC') {
+ $stOrderByDir = 'ASC';
+ }
+ } elseif (isset( $HTTP_SESSION_VARS['OrderDir'] ) && $HTTP_SESSION_VARS['OrderDir'] != '') {
+ $stOrderByDir = $HTTP_SESSION_VARS['OrderDir'];
+ } else {
+ $stOrderByDir = $this->DefaultOrderDir;
+ }
+
+ if ($stOrderBy == "") {
+ if ($this->DefaultOrder != "") {
+ $aux = str_replace( ' ASC|', '', $this->DefaultOrder . '|' );
+ $aux = str_replace( ' DESC|', '', $aux );
+ $aux = str_replace( '|', '', $aux );
+ $stQry .= " ORDER BY " . $aux . " " . $stOrderByDir;
+ }
+ } else {
+ $stQry .= " ORDER BY " . $stOrderBy;
+ if ($stOrderByDir != "") {
+ $stQry .= " $stOrderByDir";
+
+ }
+ }
+ } else {
+ if ($this->DefaultOrder != "") {
+ $stQry .= " ORDER BY " . $this->DefaultOrder . " " . (isset( $stOrderBy ) ? $stOrderBy : '');
+ }
+ }
+ //print $stQry;
+
+
+ $HTTP_SESSION_VARS['OrderBy'] = isset( $stOrderBy ) ? $stOrderBy : '';
+ $HTTP_SESSION_VARS['OrderDir'] = $stOrderByDir;
+
+ $page = (isset( $HTTP_GET_VARS["page"] ) ? $HTTP_GET_VARS["page"] : '');
+
+ $tr = (isset( $HTTP_SESSION_VARS['TP'] ) ? $HTTP_SESSION_VARS['TP'] : '');
+
+ $desde = 0;
+
+ if ($page != "") {
+ //$desde=(($page-1)*25);
+ $desde = (($page - 1) * $this->rows_per_page);
+
+ //$strLimit = " LIMIT $desde , 25";
+ $strLimit = " LIMIT $desde , $this->rows_per_page";
+ if (PEAR_DATABASE == 'pgsql') {
+ //$strLimit = " OFFSET $desde LIMIT 25";
+ $strLimit = " OFFSET $desde LIMIT $this->rows_per_page";
+ }
+ $stQry .= $strLimit;
+ }
+
+ //print $stQry;
+ $this->_dbses = new DBSession( $this->_dbc );
+ $this->_dbses->UseDB( DB_NAME );
+ $this->_dbses->Query( $stQry );
+ $this->_dbset = new DBRecordset( $this->_dbses->result );
+ }
+
+ /**
+ * Obtains number of elements of asociated query
+ *
+ * @author Fernando Ontiveros Lira
+ * @access public
+ * @return int
+ */
+ function TotalCount ()
+ {
+ global $HTTP_GET_VARS;
+ global $HTTP_SESSION_VARS;
+
+ $stQry = $this->_source;
+ if ($this->WhereClause != "") {
+ $stQry .= " WHERE " . $this->WhereClause;
+ }
+ if ($this->_ordered == true) {
+ $stOrderBy = (isset( $HTTP_GET_VARS[$this->orderprefix . 'order'] ) ? $HTTP_GET_VARS[$this->orderprefix . 'order'] : '');
+ if ($stOrderBy == "") {
+ if ($this->DefaultOrder != "") {
+ $stQry .= " ORDER BY " . $this->DefaultOrder;
+ }
+ } else {
+ $stQry .= " ORDER BY " . $stOrderBy;
+ }
+ } else {
+ if ($this->DefaultOrder != "") {
+ $stQry .= " ORDER BY " . $this->DefaultOrder;
+ }
+ }
+
+ $dbses = new DBSession( $this->_dbc );
+ $dbses->UseDB( DB_NAME );
+ $dset = $dbses->Execute( $stQry );
+ return $dset->Count();
+ }
+
+ /**
+ * Obtains number of elements of asociated recordset
+ *
+ * @author Fernando Ontiveros Lira
+ * @access public
+ * @return int
+ */
+ function Count ()
+ {
+ if (is_object( $this->_dbset )) {
+ return $this->_dbset->Count();
+ } else {
+ return 0;
+ }
+ }
+
+ /**
+ * Obtains row position
+ *
+ * @author Fernando Ontiveros Lira
+ * @access public
+ * @return int
+ */
+ function CurRow ()
+ {
+ return $this->row_pos;
+ }
+
+ /**
+ * Obtains number columns
+ *
+ * @author Fernando Ontiveros Lira
+ * @access public
+ * @return int
+ */
+ function ColumnCount ()
+ {
+ $result = 0;
+ if (is_array( $this->Columns )) {
+ $result = count( $this->Columns );
+ }
+ return $result;
+ }
+
+ /**
+ * Obtains a row array and moves the internal data pointer ahead
+ *
+ * @author Fernando Ontiveros Lira
+ * @access public
+ * @return array
+ */
+ function Read ()
+ {
+ $this->_row_values = $this->_dbset->Read();
+ $this->row_pos ++;
+ return $this->_row_values;
+ }
+
+ /**
+ * Moves the internal row pointer
+ *
+ * @author Fernando Ontiveros Lira
+ * @access public
+ * @param int $intPos position to seek
+ * @return int
+ */
+ function Seek ($intPos = 0)
+ {
+ $result = $this->_dbset->Seek( $intPos );
+ if ($result) {
+ $this->row_pos = $intPos;
+ }
+ return $result;
+ }
+
+ /**
+ * Moves the internal row pointer to first position
+ *
+ * @author Fernando Ontiveros Lira
+ * @access public
+ * @return int
+ */
+ function MoveFirst ()
+ {
+ if ($this->Count() != 0) {
+ if ($this->first_row < $this->Count()) {
+ $this->Seek( $this->first_row );
+ }
+ }
+ }
+
+ /**
+ * Verify if row position is in the end
+ *
+ * @author Fernando Ontiveros Lira
+ * @access public
+ * @return boolean
+ */
+ function EOF ()
+ {
+ $result = false;
+ if ($this->Count() == 0) {
+ $result = true;
+ } else {
+ if ($this->row_pos >= $this->Count()) {
+ $result = true;
+ } else {
+ if ($this->rows_per_page != 0) {
+ if ($this->row_pos >= $this->first_row + $this->rows_per_page) {
+ $result = true;
+ }
+ }
+ }
+ }
+ return $result;
+ }
+
+ /**
+ * Set values to add a column to show in the dynaform
+ *
+ * @author Fernando Ontiveros Lira
+ * @access public
+ * @param $strLabel
+ * @param $strType
+ * @param $strName
+ * @param $strAlign
+ * @param $intWidth
+ * @param $strTarget
+ * @param $strContent
+ * @return void
+ */
+ function AddColumn ($strLabel = "", $strType = "text", $strName = "", $strAlign = "left", $intWidth = 0, $strTarget = "", $strContent = "")
+ {
+ $tmpCol = array ("Name" => $strName,"Type" => $strType,"Width" => $intWidth,"Align" => $strAlign,"Target" => $strTarget,"Content" => $strContent
+ );
+ $pos = 0;
+ if (is_array( $this->Columns )) {
+ $pos = count( $this->Columns );
+ }
+ $this->Columns[$pos] = $tmpCol;
+ $this->Labels[$pos] = $strLabel;
+ }
+
+ /**
+ * Set values to add a column to show in the dynaform
+ *
+ * @author Fernando Ontiveros Lira
+ * @access public
+ * @param $strType
+ * @param $strName
+ * @param $strAlign
+ * @param $intWidth
+ * @param $strTarget
+ * @param $strContent
+ * @param $strExtra
+ * @param $strCondition
+ * @param $orderByThis
+ * @return void
+ */
+ function AddRawColumn ($strType = "text", $strName = "", $strAlign = "left", $intWidth = 0, $strTarget = "", $strContent = "", $strExtra = "", $strCondition = "", $orderByThis = true)
+ {
+ $tmpCol = array ("Name" => $strName,"Type" => $strType,"Width" => $intWidth,"Align" => $strAlign,"Target" => $strTarget,"Content" => $strContent,"Extra" => $strExtra,"Condition" => $strCondition,"orderByThis" => $orderByThis
+ );
+ $pos = 0;
+ if (is_array( $this->Columns )) {
+ $pos = count( $this->Columns );
+ }
+ $this->Columns[$pos] = $tmpCol;
+ $this->Labels[$pos] = "";
+ }
+
+ /**
+ * Show dynaform's title
+ *
+ * @author Fernando Ontiveros Lira
+ * @access public
+ * @param $pa
+ * @param $intPos
+ * @param $strClass
+ * @return void
+ */
+ function RenderTitle ($pa, $intPos = 1, $strClass = "tblHeader")
+ {
+ if (! defined( 'ENABLE_ENCRYPT' )) {
+ define( 'ENABLE_ENCRYPT', 'no' );
+ }
+ global $HTTP_SESSION_VARS;
+ $col = $this->Columns[$intPos];
+ $order = ! ($col["Type"] == "image");
+ if ($this->_ordered == true && $order) {
+ $res = " 0) {
+ $res .= " width=\"" . $col["Width"] . "\"";
+ }
+ $res .= ">";
+
+ //$res .= "Columns[$intPos]['Name'] . "&page=" . $pa . "&label=true";
+ //$res .= $_SERVER['REDIRECT_URL'] . "?order=" . $this->Columns[$intPos]['Name']."&page=".$pa."&label=true";
+ $res .= "\">" . $this->Labels[$intPos] . "";
+
+ $res .= " | \n"; //echo $res;die;
+ } else {
+ $res = " 0) {
+ $res .= " width=\"" . $col["Width"] . "\"";
+ }
+ $res .= ">";
+ $res .= $this->Labels[$intPos] . " | \n";
+ }
+ return $res;
+ }
+
+ /**
+ * Show dynaform's title using ajax
+ *
+ * @author Fernando Ontiveros Lira
+ * @access public
+ * @param $pa
+ * @param $intPos
+ * @param $strClass
+ * @return void
+ */
+ function RenderTitle_ajax ($pa, $intPos = 1, $strClass = "tblHeader")
+ {
+ global $HTTP_SESSION_VARS;
+ $col = $this->Columns[$intPos];
+ $order = ! (($col["Type"] == "image") || ($col["Type"] == "jsimglink"));
+
+ if ($this->_ordered == true && $order) {
+ $res = " 0) {
+ $res .= " width=\"" . $col["Width"] . "\"";
+ }
+ $res .= ">";
+
+ //$res .= "Columns[$intPos]['Name'];
+ $res .= "Javascript:changetableOrder('$_temp_var',$pa)";
+ //$res .= $_SERVER['REDIRECT_URL'] . "?order=" . $this->Columns[$intPos]['Name']."&page=".$pa."&label=true";
+ $res .= "\">" . $this->Labels[$intPos] . "";
+ if ($HTTP_SESSION_VARS['OrderBy'] == $this->Columns[$intPos]['Name']) {
+ if ($HTTP_SESSION_VARS['OrderDir'] == 'DESC') {
+ $res .= " ";
+ } else {
+ $res .= " ";
+ }
+ }
+
+ $res .= " | \n"; //echo $res;die;
+ } else {
+ $res = " 0) {
+ $res .= " width=\"" . $col["Width"] . "\"";
+ }
+ $res .= ">";
+ $res .= $this->Labels[$intPos] . " | \n";
+ }
+ return $res;
+ }
+
+ /**
+ * Show dynaform title
+ *
+ * @author Fernando Ontiveros Lira
+ * @access public
+ * @param $pa
+ * @param $fil
+ * @param $intPos
+ * @param $strClass
+ * @param $auxgetval
+ * @return void
+ */
+ function RenderTitle2 ($pa, $fil, $intPos, $strClass = "tblHeader", $auxgetval = '')
+ {
+ if (! defined( 'ENABLE_ENCRYPT' )) {
+ define( 'ENABLE_ENCRYPT', 'no' );
+ }
+ global $HTTP_SESSION_VARS;
+
+ if ($auxgetval == '') {
+ $targ = SYS_TARGET . ".html";
+ } else {
+ $targ = SYS_TARGET . '.html?' . $auxgetval;
+ }
+ $target = (ENABLE_ENCRYPT == 'yes' ? G::encryptUrl( urldecode( $targ ), URL_KEY ) : $targ);
+
+ $col = $this->Columns[$intPos];
+
+ if ($col['Type'] == 'hidden') {
+ return '';
+ }
+ $order = ! ($col["Type"] == "image");
+
+ if (($this->_ordered == true) && ($order) && ($this->Columns[$intPos]['orderByThis'])) {
+ $res = "";
+ if (($this->show_nummbers) and ($intPos == 0)) {
+ $res = "# | ";
+ }
+ $res .= " 0) {
+ $res .= " width=\"" . $col["Width"] . "\"";
+ }
+ $res .= "> ";
+
+ $res .= "Columns[$intPos]['Name'] . "&page=" . $pa . "&label=true";
+ $res .= "javascript:bsearch('$direccion')";
+ //$res .= $target . "?".$fil."order=" . $this->Columns[$intPos]['Name']."&page=".$pa."&label=true";
+ $res .= "\">" . $this->Labels[$intPos] . "";
+
+ $res .= " | \n";
+ } else {
+ $col = $this->Columns[$intPos];
+ $res = " 0) {
+ $res .= " width=\"" . $col["Width"] . "\"";
+ }
+ $res .= ">";
+ $res .= (isset( $this->Labels[$intPos] ) ? $this->Labels[$intPos] : '') . " | \n";
+ }
+ return $res;
+ }
+
+ /**
+ * Show dynaform column
+ *
+ * @author Fernando Ontiveros Lira
+ * @access public
+ * @param $intPos
+ * @param $strClass
+ * @param $strClassLink
+ * @param $number
+ * @param $renderTD if this value = 1, this function will include the TD tags
+ * @return void
+ */
+ function RenderColumn ($intPos = 0, $strClass = "tblCell", $strClassLink = "tblCellA", $number = 0, $renderTD = 1)
+ {
+ if (! defined( 'ENABLE_ENCRYPT' )) {
+ define( 'ENABLE_ENCRYPT', 'no' );
+ }
+ global $G_DATE_FORMAT;
+ global $G_TABLE_DATE_FORMAT;
+ $col = $this->Columns[$intPos];
+
+ switch (substr( $col['Name'], 0, 1 )) {
+ case '=':
+ // Si empieza con '=' entonces se toma como valor constante
+ $val = substr( $col['Name'], 1, strlen( $col['Name'] ) - 1 );
+ break;
+ case '%':
+ // Si empieza con '%' entonces traducir/convertir el valor
+ $fieldname = substr( $col['Name'], 1, strlen( $col['Name'] ) - 1 );
+ $val = $this->_row_values[$fieldname];
+ $val = $this->translateValue( $this->_contexto, $val, SYS_LANG );
+ break;
+ default:
+ $fieldname = $col['Name'];
+ $val = isset( $this->_row_values[$fieldname] ) ? $this->_row_values[$fieldname] : '';
+ }
+
+ $res = "";
+ if (($this->show_nummbers) and ($intPos == 0)) {
+ $res = "$number | ";
+ }
+ if (! (stristr( $val, "script" ) === false)) {
+ $val = htmlentities( $val, ENT_QUOTES, 'utf-8' );
+ }
+
+ if ($renderTD == 1) {
+ $res .= " 0) {
+ $res .= " width=\"" . $col["Width"] . "\"";
+ }
+ $res .= "> ";
+ }
+
+ switch ($col["Type"]) {
+ case 'hidden':
+ return '';
+ break;
+ case "text":
+ if ($val != "") {
+ $res .= G::unhtmlentities( $val, ENT_QUOTES, 'utf-8' );
+ } else {
+ $res .= " ";
+ }
+ break;
+ case "text-dontSearch":
+ if ($val != "") {
+ $res .= G::unhtmlentities( $val );
+ } else {
+ $res .= " ";
+ }
+ break;
+ case "html":
+ if ($val != "") {
+ $res .= ($val);
+ } else {
+ $res .= " ";
+ }
+ break;
+ case "textPlain":
+ if ($val != "") {
+ $res .= ($this->ParsingFromHtml( G::unhtmlentities( $val ), "300" ));
+ //if ( $val != "" ) $res .= (($val));
+ } else {
+ $res .= " ";
+ }
+ break;
+ case "currency":
+ if ($val != "") {
+ $aux = explode( ' ', $val );
+ $format = number_format( (float) $aux[0], 2, ".", "," );
+ $res .= htmlentities( $format . ' ' . (isset( $aux[1] ) ? $aux[1] : ''), ENT_QUOTES, 'utf-8' );
+ } else {
+ $res .= " ";
+ }
+ break;
+
+ case "currency2":
+ if ($val != "") {
+ $res .= G::NumberToCurrency( $val );
+ } else {
+ $res .= "$ 0.00";
+ }
+ break;
+
+ case "percentage2":
+ if ($val != "") {
+ $res .= G::NumberToPercentage( $val );
+ } else {
+ $res .= "0.00 %";
+ }
+ break;
+
+ case "percentage":
+ if ($val != "") {
+ $res .= htmlentities( number_format( (float) $val, 2, ".", "," ) . " %", ENT_QUOTES, 'utf-8' );
+ } else {
+ $res .= " ";
+ }
+ break;
+
+ case "date":
+ if ($val != "" && $val != '0000-00-00 00:00:00') {
+ $part = explode( ' ', $val );
+ $aux = explode( '-', $part[0] );
+
+ switch ($G_DATE_FORMAT) {
+ case 'DD/MM/AAAA':
+ $res .= formatDate( '$d/$m/$Y $H:$i:$s', $val );
+ break;
+ case 'MM/DD/AAAA':
+ $res .= formatDate( '$m/$d/$Y $H:$i:$s EST', $val );
+ break;
+ case 'AAAA/MM/DD':
+ $res .= formatDate( '$Y/$m/$d $H:$i:$s', $val );
+ break;
+ case 'LITERAL':
+ $res .= formatDate( '$M $d $Y', $val );
+ break;
+ }
+
+ } else {
+ $res .= " ";
+ }
+ break;
+
+ case "email":
+ if ($val != "") {
+ $res .= "";
+ $res .= $val;
+ $res .= "";
+ } else {
+ $res .= " ";
+ }
+ break;
+
+ case "ifpdf":
+ if ($val == '1') {
+ $image = " ";
+ //valor
+ $tlabel = substr( $col["Content"], 0, 1 );
+ $vname = substr( $col["Content"], 1, (strlen( $col["Content"] ) - 1) );
+ $lval = $this->_row_values[$vname];
+ //$res .= " $image "; //It open a new window... better the other way By JHL 16/11/06
+ $res .= " $image ";
+ } else {
+ $res .= " ";
+ }
+ break;
+
+ case "ifimg":
+ $image = " ";
+ if ($val == '1') {
+ //valor
+ $tlabel = substr( $col["Content"], 0, 1 );
+ $vname = substr( $col["Content"], 1, (strlen( $col["Content"] ) - 1) );
+ $lval = $this->_row_values[$vname];
+ $res .= " $image ";
+ } else {
+ $res .= " ";
+ }
+ break;
+
+ case "ifrtf":
+ if ($val == '1') {
+ $image = " ";
+ //valor
+ $tlabel = substr( $col["Content"], 0, 1 );
+ $vname = substr( $col["Content"], 1, (strlen( $col["Content"] ) - 1) );
+ $lval = $this->_row_values[$vname];
+ //$res .= " $image "; //It open a new window... better the other way By JHL 16/11/06
+ $res .= " $image ";
+ } else {
+ $res .= " ";
+ }
+ break;
+
+ case "image":
+
+ if (is_array( $col["Condition"] )) //By JHL to enable Condition to display a image -- New parameter Condition in Addrawcolumn
+{
+ $field_compare = $col["Condition"]['field'];
+ $tlabel = substr( $field_compare, 0, 1 );
+ switch ($tlabel) {
+ case "&":
+ $vname = substr( $field_compare, 1, (strlen( $field_compare ) - 1) );
+ $field_val = $this->_row_values[$vname];
+ break;
+ }
+
+ } else {
+ $val = " ";
+ }
+ // break;
+
+
+ case "textimage":
+ $AAS = $col['Extra'];
+ $val1 = " ";
+ // break;
+ case "image-text":
+ if (is_array( $col['Content'] ) && $col['Content'] != "") {
+ // Hay mas de un valor para el link
+ $values = $col['Content'];
+ $n = count( $values );
+
+ $res .= "_row_values[$vname];
+
+ $res .= $i == $n - 1 ? $lval : $lval . "/";
+ break;
+ }
+ }
+ $res .= "\">" . strtoupper( $fieldname ) . "$val";
+ } else
+ $val2 = "" . strtoupper( $fieldname ) . "";
+ // break;
+
+
+ case "link":
+ if ($val == "")
+ $res .= " ";
+ $title = '';
+ if ($col["Type"] == 'link' && trim( isset( $this->_row_values['TOOLTIP'] ) ? $this->_row_values['TOOLTIP'] : '' ))
+ ;
+ $title = (isset( $this->_row_values['TOOLTIP'] ) ? "title=\" " . $this->_row_values['TOOLTIP'] . " \"" : '');
+ if (is_array( $col['Content'] ) && $col['Content'] != "") {
+ // Hay mas de un valor para el link
+ $values = $col['Content'];
+ $n = count( $values );
+
+ $res .= "_row_values[$vname];
+
+ $res .= $i == $n - 1 ? $lval : $lval . "/";
+ break;
+ }
+ }
+ $res .= "\">$val";
+ } elseif ($col["Content"] != "" && ! is_array( $col['Content'] )) {
+ $tlabel = substr( $col["Content"], 0, 1 );
+ switch ($tlabel) {
+ case "&":
+ $vname = substr( $col["Content"], 1, (strlen( $col["Content"] ) - 1) );
+ $lval = $this->_row_values[$vname];
+ if (ENABLE_ENCRYPT == 'yes') {
+
+ //$encoded = G::encrypt ( $col["Target"] . "/" . $lval . ".html", URL_KEY );
+ $encoded = G::encryptUrl( $col["Target"] . "/" . $lval . ".html", URL_KEY );
+ $res .= "";
+ if ($col["Type"] == "textimage") {
+ $res .= $val1;
+ $val = " (" . $val . ")";
+ }
+ if ($col["Type"] == "image-text") {
+
+ $res .= $val2;
+ }
+ $res .= $val;
+ $res .= "";
+ } else {
+ $res .= "";
+ if ($col["Type"] == "textimage") {
+ $res .= $val1;
+ $val = " (" . $val . ")";
+ }
+ if ($col["Type"] == "image-text") {
+
+ $res .= $val2;
+ }
+ $res .= $val;
+ $res .= "";
+ }
+ break;
+ case "$":
+ $vname = substr( $col["Content"], 1, (strlen( $col["Content"] ) - 1) );
+ $lval = $HTTP_SESSION_VARS[$vname];
+ $res .= "";
+ $res .= $val;
+ $res .= "";
+ break;
+ default:
+ $res .= "";
+ $res .= $col["Content"];
+ $res .= "";
+ break;
+ }
+ } else {
+ $res .= "";
+ $res .= $val;
+ $res .= "";
+ }
+ break;
+
+ case "linknew":
+ if ($val == "")
+ $res .= " ";
+ if ($col["Content"] != "") {
+ $tlabel = substr( $col["Content"], 0, 1 );
+ switch ($tlabel) {
+ case "&":
+ if (ENABLE_ENCRYPT == 'yes') {
+ $vname = substr( $col["Content"], 1, (strlen( $col["Content"] ) - 1) );
+ $lval = $this->_row_values[$vname];
+ //$encoded = G::encryptUrl ( $col["Target"] , URL_KEY ). "/" . $lval . ".html";
+ $encoded = G::encryptUrl( $col["Target"] . "/" . $lval . "", URL_KEY );
+ $res .= "";
+ $res .= $val;
+ $res .= "";
+ } else {
+ $vname = substr( $col["Content"], 1, (strlen( $col["Content"] ) - 1) );
+ $lval = $this->_row_values[$vname];
+ $res .= "";
+ $res .= $val;
+ $res .= "";
+ }
+ break;
+ case "$":
+ $vname = substr( $col["Content"], 1, (strlen( $col["Content"] ) - 1) );
+ $lval = $HTTP_SESSION_VARS[$vname];
+ $res .= "";
+ $res .= $val;
+ $res .= "";
+ break;
+ default:
+ $res .= "";
+ $res .= $col["Content"];
+ $res .= "";
+ break;
+ }
+ } else {
+ $res .= "";
+ $res .= $val;
+ $res .= "";
+ }
+ break;
+
+ case "iflink":
+ if ($col["Content"] != "") {
+ $tlabel = substr( $col["Content"], 0, 1 );
+ if ($val != "") {
+ switch ($tlabel) {
+ case "&":
+ $vname = substr( $col["Content"], 1, (strlen( $col["Content"] ) - 1) );
+ $lval = $this->_row_values[$vname];
+ $res .= "";
+ $res .= $val;
+ $res .= "";
+ break;
+ case "$":
+ $vname = substr( $col["Content"], 1, (strlen( $col["Content"] ) - 1) );
+ $lval = $HTTP_SESSION_VARS[$vname];
+ $res .= "";
+ $res .= $val;
+ $res .= "";
+ break;
+ default:
+ $res .= "";
+ $res .= $col["Content"];
+ $res .= "";
+ break;
+ }
+ } else {
+ $res .= " ";
+ }
+ } else {
+ $res .= "";
+ $res .= $val;
+ $res .= "";
+ }
+ break;
+
+ case "jsimglink":
+ $val = " ";
+
+ case "jslink":
+ if ($val == "") {
+ $val .= " " . $col['Name'] . '';
+ }
+ if ($val == "") {
+ $res .= " ";
+ }
+ if ($col["Content"] != "") {
+ $tlabel = substr( $col["Content"], 0, 1 );
+ switch ($tlabel) {
+ case "&":
+ $vname = substr( $col["Content"], 1, (strlen( $col["Content"] ) - 1) );
+ $lval = $this->_row_values[$vname];
+ $res .= "";
+ $res .= $val;
+ $res .= "";
+ break;
+
+ case "$":
+ $vname = substr( $col["Content"], 1, (strlen( $col["Content"] ) - 1) );
+ $lval = $HTTP_SESSION_VARS[$vname];
+ $res .= "";
+ $res .= $val;
+ $res .= "";
+ break;
+
+ case '_':
+ $Values = explode( ',', substr( $col['Content'], 1, strlen( $col['Content'] ) ) );
+ $res .= "_row_values[substr( $Value, 1, strlen( $Value ) )] . ',';
+ } else {
+ $res .= "'" . $this->_row_values[substr( $Value, 1, strlen( $Value ) )] . "',";
+ }
+ } else {
+ $res .= $Value . ',';
+ }
+ }
+ $res = substr( $res, 0, strlen( $res ) - 1 );
+ $res .= ")\"" . $col['Extra'] . ">";
+ $res .= $val;
+ $res .= "";
+ break;
+
+ default:
+ $res .= "";
+ $res .= $col["Content"];
+ $res .= "";
+ break;
+ }
+ } else {
+ $res .= "";
+ $res .= $val;
+ $res .= "";
+ }
+ break;
+
+ case "checkbox":
+ $res .= "
+ * @access public
+ * @param string $strAction Next action to do
+ * @param string $strLabel Label
+ * @return void
+ */
+ function SetAction ($strAction, $strLabel = "Continue")
+ {
+ $this->Action = $strAction;
+ $this->ActionLabel = $strLabel;
+ }
+
+ /**
+ * Set contaxt and table (array) of translate
+ *
+ * @author Hardy Beltran Monasterios
+ * @param string $contexto Contexto en el cual se busca la traducci?n
+ * @param array $tabla Tabla con valores para traducir
+ * @param string $nombre Nombre del array $tabla
+ * @access public
+ * @return void
+ */
+ function setTranslate ($contexto, $tabla, $nombre)
+ {
+ if (is_array( $this->contexto )) {
+ $this->contexto[0][] = $contexto;
+ $this->contexto[1][] = $nombre;
+
+ } else {
+ $this->contexto = array ();
+ $this->contexto[0][] = $contexto;
+ $this->contexto[1][] = $nombre;
+ // array_push($this->contexto[0], $contexto);
+ // array_push($this->contexto[1], $nombre);
+ }
+ if (is_array( $this->translate )) {
+ $this->translate = array ();
+ $this->translate[$nombre] = $tabla;
+ } else {
+ $this->translate[$nombre] = $tabla;
+ }
+ // Fijamos ultimo contexto usado
+ $this->_contexto = $contexto;
+ }
+
+ /**
+ * Search value in the table of translation and returns last accourding to choised context
+ * Retorna el valor a su equivalente traducido/convertido
+ *
+ * @author Hardy Beltran Monasterios
+ * @param string $contexto Contexto en el cual se busca la traducci?n
+ * @param mixed $valor Valor que se va traducir/convertir
+ * @param string $lang El lenguaje que se va utilizar
+ * @return mixed
+ */
+ function translateValue ($contexto, $valor, $lang)
+ {
+ // Verificar si exite el contexto
+ if (in_array( $contexto, $this->contexto[0] )) {
+ $j = count( $this->contexto[0] );
+ for ($i = 0; $i < $j; $i ++) {
+ if ($contexto == $this->contexto[0][$i]) {
+ $origen = $this->contexto[1][$i];
+ }
+ }
+ $tabla = $this->translate[$origen];
+ if (isset( $tabla[$lang][$valor] )) {
+ return $tabla[$lang][$valor];
+ } else {
+ print ("l10n error:no lang or value.") ;
+ }
+ } else {
+ print ("l10n error:no context.") ;
+ }
+ }
+
+ /**
+ * Estable el contexto de traducci?n/conversi?n
+ *
+ * @author Hardy Beltran Monasterios
+ * @param string $contexto Contexto en el cual se busca la traducci?n
+ * @return void
+ */
+ function setContext ($contexto)
+ {
+ $this->_context = $contexto;
+ }
+
+ /**
+ * Parse from HTML
+ *
+ * @author Fernando Ontiveros Lira
+ * @access public
+ * @return void
+ */
+ function ParsingFromHtml ($value, $number = '100000000')
+ {
+ $car = substr( $value, 0, 1 );
+ $len = strlen( $value );
+ $Flag = 1;
+ $token = '';
+ $i = 0;
+
+ While ($i <= $len and $i <= $number) {
+ $car = substr( $value, $i, 1 );
+ $br = strtoupper( substr( $value, $i, 4 ) );
+ if ($car == '<') {
+ $Flag = 0;
+ }
+ if ($car == '>') {
+ $Flag = 1;
+ }
+ if ($br == ' ' || $br == '')
+ $token .= " ";
+
+ if (($Flag == 1) && ($car != '>')) {
+ $token .= $car;
+ if ($i == $number)
+ $token .= "... ";
+ }
+ $i = $i + 1;
+ }
+ return $token;
+ }
}
| |