+ $sistema = intval($this->sistema);
+ if (is_a($db, 'db_result')) {
+ $result = $db;
+ // Si no es un resultado, hago el query.
+ } else {
+ $result = $db->query(
+ "SELECT *
+ FROM sistema
+ WHERE sistema = $sistema"
+ );
+ if (DB::isError($result)) {
+ return $result;
+ }
+ }
+ // Obtengo la fila.
+ $row = $result->fetchRow(DB_FETCHMODE_ASSOC);
+ if (!$row) {
+ return new AIError(AIERROR_NO_RESULTADOS,
+ "No hay más resultados en la DB [sistema=$sistema]");
+ }
+ // Asigno valores al objeto.
+ extract($row);
+ $this->sistema = $sistema;
+ $this->icono = $icono; # FIXME - new HTML_Icono (o no?)
+ $this->link = $link;
+ $this->link_ayuda = $link_ayuda;
+ $this->habilitado = $habilitado;
+ return true;
+ }
+ // -X2C
+
+ // +X2C Operation 459
+ /**
+ * @param DB $db DB donde guardar.
+ *
+ * @return PEAR_Error
+ * @access public
+ */
+ function guardar($db) // ~X2C
+ {
+ $sistema = intval($this->sistema);
+ $where = '';
+ $datos = array(
+ 'icono' => $this->icono,
+ 'link' => $this->link,
+ 'link_ayuda' => $this->link_ayuda,
+ 'habilitado' => $this->habilitado ? 1 : 0,
+ );
+ if ($sistema) {
+ $accion = DB_AUTOQUERY_UPDATE;
+ $where = "sistema = $sistema";
+ } else {
+ $accion = DB_AUTOQUERY_INSERT;
+ $sistema = $db->nextId('sistema');
+ if (DB::isError($sistema)) {
+ return $sistema;
+ }
+ // Asigno el nuevo id de sistema.
+ $this->sistema = $sistema;
+ $datos['sistema'] = $sistema;
+ }
+ $res = $db->autoExecute('sistema', $datos, $accion, $where);
+ if (DB::isError($res)) {
+ return $res;
+ }
+ return true;