rowOrder

$wv->rowOrder($conf) sirve para manejar una lista de elementos en una base de datos con un campo de orden.

$conf es un array con los siguientes valores:

  • dbdata: array o string en json con el formato [tabla,orden,id,campo_filtrado,valor_filtrado], indica la estructura de la tabla con los datos. Los campos de filtrado son opcionales y sirven para seleccionar conjuntos de elementos dentro de una tabla, por ejemplo, en una tabla de automóviles podría ser campo=marca, valor=seat.
  • id: Campo únido de identificación de la tabla, normalmente el campo ID primario.
  • cmd: Commando "up" o "down" (arriba, abajo), usado para subir o bajar un puesto el ID indicado.
  • box: En una lista se pueden añadir checkboxes con el nombre box[] y el valor ID de cada registro, p.e. <input type="checkbox" name="box[]" value="<?=$register->id?>">, al enviar el formulario con estos checkboxes, los marcados se moveran a la posición indicada por el valor id. cmd debe estar vacío (null).
  • ar: (Anti Reload) - Evita que se ejecuten el movimiento de posición si se recarga la página si este campo es true. Se puede usar en conjunto con el método antiReload.

Ejemplo de uso:


//Configuración de la base de datos
$dbdata['table'] = "nombre-tabla";
$dbdata['order'] = "orden";
$dbdata['ffield'] = "campo-filtrado";
$dbdata['fvalue'] = "valor-filtrado";

//Configuración del método
$_conf = array();
$_conf['dbdata'] = $dbdata;
$_conf['id'] = $id;
$_conf['cmd'] = $cmd;
$_conf['box'] = $box;
$_conf['ar'] = $ar_bl;
    
$position = $wv->rowOrder($_conf);
    
if (isset($position->err)) {
    $wv->showMsg($position->err,array('style' => 'danger','title' => 'ORDER CLASS ERROR'));
}
if (isset($position->msg)) {
    $wv->showMsg($position->msg);
}

Formulario:


<table class="table table-condensed table-hover table-striped table-responsive table-nonfluid">
    <tr>
        <th><input type="checkbox" name="box[]" value="<?=$r->id?>"></th>
        <th>ID</th>
        <th>Marca</th>
        <th>Modelo</th>
        <th colspan="4">Orden</th>
    </tr>
<?php
$marca = "seat"; //Valor fijo para el ejemplo
$result = $wv-db->get_results("SELECT * FROM vehiculos WHERE marca = '$marca' ")
foreach ((object)$result as $r) {
<?
    <tr>
        <td><input name="box[]" type="checkbox" value="<?=$r->id?>"></td>
        <td><?=$r->id?></td>
        <td><?=$r->marca?></td>
        <td><?=$r->modelo?></td>
        <td><?=$r->field_order?></td>
        <td style="border:0 1px 0 1px solid;width:20px;" title="bajar">
            <?php if ($position->last != $r->id): ?>
            <a style="color:#0082CB;" href="?cmd=down&id=<?=$r->id?>">&#9660;</a>
            <?php endif ?>
        </td>
        <td style="border:0 1px 0 1px solid;width:20px;" title="subir">
            <?php if ($position->first != $r->id): ?>
            <a style="color:#0082CB;" href="?cmd=up&id=<?=$r->id?>">&#9650;</a>
            <?php endif ?>
        </td>
    </tr>
<?php
}
<?
</table>