Sitio de asuntos y tópicos acerca de VENENUX GNU/Linux, multimedia, y comunidad, para paquetes de emulación y otros visita McKAY bros..

Indice reciente de contenidos:

Repositorio Programas para VENENUX: http://venenux.org/repos/venenux/
Paquetes de Juegos y emuladores para VENENUX: http://74.86.158.5/~op0014t/mckayemu/
Nuevo foros de VENENUX : http://foros.venenux.org

gambas3: collections of collections asi como php array of arrays

|
Esos chicos que codifican en php encontrarán gracioso que hacer objetos de datos en tablas sea fácil .. matrices, arrays .. por eso que en php una matriz puede manejar cualquier valor, y el índice puede ser cualquier tipo, no sólo índices enteros. El artículo se inspiró en un problema en la lista de correo gambas:
Http://gambas.8142.n7.nabble.com/collection-of-collection-problem-tp58654p58659.html

Pero espera, en php, una matriz puede manejar múltiples matrices, que no es lo mismo de una matriz multidimensional! ¡cuidado! Que es el mejor en este caso especial de este artículo!

Quiero decir: una matriz dentro de una matriz! Y los valores y la clave de los arrays pueden ser de cualquier tipo .. genial!
En java, hay alguna dificultad, una colección es la única manera de hacer eso y hay otro, sólo un tipo de valores pueden manejar en una colección.

Desafortunadamente en Gambas su más duro todavía: debe ser colecciones y debe iterar dos veces para manejar otro.

Un Ejemplo:

..un objeto "orden" que tiene asociado muchos "productos" entonces: 

La data ejemplo:

Main object: object (1 elemento con muchos atributos) y uno de estos es el cod_contenido, de los productos de la orden 
Second objects: attr:cod_contenido varios objetos con muchos atributos y muchos de esos objetos

|-----------------------------|
|   ORD101                    |
|-----------------------------|
| cod_orde:101                |
| des_order:description bla bl|----------------------------|
| cod_contents:1011           |        CON1011             |
|-----------------------------|----------------------------|
                              |    cod_product:101,        |
                              |    cod_order:101,          |
                              |    can_product:2           |
                              |----------------------------|
                              |    cod_product:102         |
                              |    cod_order:101           |
                              |    can_product:12          |
                              |----------------------------|

Hacerlo con php:

muy facil dentro del arreglo inicial se coloca como un valor el otro arreglo solo dos iteraciones:

$conn = mysqli_connect($servername, $username, $password, $dbname);
$orders = "SELECT * FROM almorder WHERE cod_order = '001'";
$ordersproducts = "SELECT * FROM alorderproducts WHERE cod_order = '001'";
$result = mysqli_query($conn, $orders);
foreach($result as $keyname => $valuename) 
{
    $orderarray[$keyname] = $valuename; 
    if ( $keyname == 'cod_contenido' )
    {
        $resultdet = mysqli_query($conn, $ordersproducts);
        foreach($resultdet as $keynamedet => $valuenamedet)
        {
            $orderdetail[$keynamedet] = $valuenamedet;
        }
        $orderarray[$keyname] = $valuename;
    }
}

Hacerlo con Gambas:

En gamgas es una complicacion, hay que iterar dos veces por cada objeto, y no se puede usar arreglos, sino colleciones.. puesto que los arreglos son de un solo tipo:

orders = "SELECT * FROM almorder WHERE cod_order = '001'";
ordersproducts = "SELECT * FROM alorderproducts WHERE cod_order = '001'";
rset = $conexion.Exec(orders)
For Each rset
    columnas = New Collection(gb.IgnoreCase)
    For Each hField In rset.Fields
        columnas.Add(hField.Name), rset[hField.Name])
        if ( Comp(hField.Name, "cod_contenido") == 0 ) then
            rsetdet = $conexion.Exec(ordersproduts)
            filasdet = New Collection(gb.IgnoreCase)
            For Each rsetdet
                columnasdet = New Collection(gb.IgnoreCase)
                For Each hFieldet In rsetdet.Fields
                    columnasdet.Add(hFieldet.Name), rsetet[hFieldet.Name])
                Netx
                filasdet.Add(columnaset, rset!cod_contenido)
            Next
            columnas.Add(filasdet, "cod_contenido")
        Endif
    Next
    filas.Add(columnas, rset!cod_despacho)
Next

!



Codeigniter VNX: Vanilla Datatables class generator code

|
El codeigniter VNX tiene una nueva capacidad increible, la tabla ahora puede integrarse con vanilla DataTables, sin necesidad de Jquery, esto hace a el framework en terminos de carga rapido, ya que el script para esto es menos de 10k . Nada de estupidos Jquery y versiones de este.

https://gitlab.com/venenux/codeigniterpower

Como? igual: con una sola linea:
 $this->table->set_datatables( array("fixedColumns"=>TRUE) );

  • buscador integrado para las filas y columnas
  • paginacion automatica configurable
  • generacion y carga de codigo js/css automatica, solo se escribe php



codeigniter en venenux : video how to php y codeigniter 5 pasos

|
En este video se resume como y porque comenzar programar en php y codeigniter VenenuX es ma facil:



Synce y conectar PDA y Palms facil

|
En el repositorio hay un paquete llamado synce-gvfs que lo hace todo

El la primera imagen se muestra la ruta USERSPACE donde el usuario puede acceder realmente a los archivos, esto funciona con fuse y gvfs , synce emplea estas capas y monta el dispositivo aqui:
el "1000" es el identificador de usuario puedes hacer:

cd /var/run/user/"$(id -u)"

.. y como una imagen vale mas que mil palabras: