Diferencia entre revisiones de «Msjqgrid»
(Página creada con '== JQUERY DATAGRID.== = Helper = <?php /** * Helpers * PHP version 5 * LICENSE * * This source file is subject to the GNU/GPL that is bundled * with this package in the f...') |
(Sin diferencias)
|
Revisión del 15:41 5 sep 2011
Sumario
JQUERY DATAGRID.
Helper
<?php /**
* Helpers * PHP version 5 * LICENSE * * This source file is subject to the GNU/GPL that is bundled * with this package in the file docs/LICENSE.txt. * It is also available through the world-wide-web at this URL: * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to emiliano@markisich.com.ar so we can send you a copy immediately. * * @author Markisich Emiliano <emiliano@markisich.com.ar> * (este es mi primer aporte al SoftWare Libre) */ /** * Libreria Mostrar datos en una grilla * es una adaptacion de jqGrid a kumbia. * Version 0.1 */
class msjqGrid{
public $contador = array();
/**
* titulo del datagrid
* @var string
*/
public $title_caption = ;
/**
* Si desea que poder obtener un order by por campo
* para esto debe recibir el field y el order
* default = false
* @var bool
*/
public $formatOption = array();
/**
* Si desea que poder obtener un order by por campo
* para esto debe recibir el field y el order
* default = false
* @var bool
*/
public $key = array();
/**
* Si desea que poder obtener un order by por campo
* para esto debe recibir el field y el order
* default = false
* @var bool
*/
public $order_fields = false;
/**
* Array de datos q se obtienen de un find
* @var array
*/
public $data_source = array();
/**
* url: url para la accion que efectua la paginacion,
* por defecto "module/controller/page/" y se envia por parametro el numero de pagina.
* por defecto busca en el mismo controller y action
* @var string
*/
public $url = ;
public $get_fields_and_headers = array();
/**
* Modelo actual
* @var string
*/
public $model = ;
/**
* campos que se van a mostrar de la base de datos
* @var array
*/
public $fields = array();
/**
* titulos o cabezeras que se mostra en la table
* @var array
*/
public $headers = array();
/**
*Cambia el titulo a mostrar según la key del array $data.
*/
public function setFormatoption($field, $formato){
$this->formatOption = array($field => $formato);
}
public function getformatOption($field){
return @$this->formatOption[$field];
}
public function setkey($field, $formato){
$this->key = array($field => $formato);
}
public function getkey($field){
return @$this->key[$field];
}
public function __construct($datos) {
$this->data_source = $datos; $this->url = Router::get('controller') . '/'; /*. Router::get('action');*/ //$this->headers = "kjgh"; // if($this->existData()){ // $this // }
}
public function xml(){
$code = '<Listado>';
$code .= '<Request>';
$code .= '<IsValid>True</IsValid>';
$code .= '<ItemSearchRequest>';
$code .= '<SearchIndex>'."Titulo" .'</SearchIndex>'; $code .= '</ItemSearchRequest>';
$code .= '</Request>';
$code .= '<Items>';
foreach ($this->data_source as $item):
$code .= '<Item>';
$code .= '<DetailPageURL></DetailPageURL>'; $code .= '<ItemAttributes>';
foreach ($this->fields as $campo):
$var = $item->$campo;
$code .="<$campo> $var </$campo>"; endforeach; $code .= '</ItemAttributes>';
$code .= '</Item>';
endforeach;
$code .= '</Items>';
$code .= '</Listado>';
return $code;
}
} ?>
parcial
<?php echo Tag::css('jqGrid-4.1.1/css/ui.jqgrid'); ?>
<?php echo Tag::css('jqGrid-4.1.1/css/ui.multiselect'); ?>
<?php echo Tag::js('jquery/jquery-ui-1.8.1.custom.min'); ?>
<?php echo Tag::js('jqGrid/plugins/jquery.layout'); ?>
<?php echo Tag::js('jqGrid/js/i18n/grid.locale-es'); ?>
<?php echo Tag::js('jqGrid/js/jquery.jqGrid.min'); ?>
<?php echo Tag::js('jqGrid/plugins/jquery.tablednd'); ?>
<?php echo Tag::js('jqGrid/plugins/jquery.contextmenu'); ?>
<?php echo Tag::js('jqGrid/plugins/ui.multiselect'); ?>
<?php echo Tag::js('jqGrid/plugins/xmlmap'); ?>
<?php
$model = ;
$names =;
foreach ($dataGrid->fields as $campo):
$names .= '"'.$campo.'",' ;
$formato = $dataGrid->getformatOption($campo);
$key = $dataGrid->getkey($campo);
$model .= '{name:"'.$campo.'",index:"'.$campo.'", width:120, xmlmap:"ItemAttributes>'.$campo.'", sorttype:"integer", sorttype:"int"'.$key . $formato.'},';
endforeach; ?>
<?php $datos ="'".'<?xml version="1.0" encoding="UTF-8" ?>' ; $datos .= $dataGrid->xml() ."'"; ?> <script type="text/javascript"> var datos = <?php echo "$datos"; ?>
jQuery(document).ready(function(){
var lastsel;
jQuery("#list").jqGrid({
//url: "listado",
datastr:datos,
datatype: "xmlstring",
colNames:[<?php echo substr($names, 0,-1);?>],
colModel:[<?php echo substr($model, 0,-1);?>],
height:250, with: 450,
loadonce: true,
xmlReader: { root : "Items", row: "Item", repeatitems: false, id: "ASIN" },
rowNum:10,
rowList:[5,10,20,30],
pager:jQuery('#pagered'), //'#pagered',
sortname: 'id',
viewrecords: true,
sortorder: "desc",
caption: "Listado",
forceFit : true,
cellEdit: false,
cellsubmit: 'clientArray',
multiselect: true,
onSelectRow: function(rowid){
lastsel = $('#list').getCell(rowid, 'id');
}, ondblClickRow: function(rowid){
lastsel = $('#list').getCell(rowid, 'id');
}, footerrow : true, userDataOnFooter : true, altRows : true,
// grouping:true,
// groupingView : {
// groupField : ['debe'],
// groupDataSorted : true
// },
// caption: "Grouping",
groupSummary: true,
// groupDataSorted: true
});
jQuery("#list").jqGrid('navGrid','#pagered',
{edit:false,add:false,del:false},
{},
{},
{},
{multipleSearch:true, multipleGroup:false, showQuery: false} );
jQuery("#list").jqGrid('navButtonAdd',"#pagered",{
caption:"",
buttonicon:'ui-icon-plus',
onClickButton: function(){
location.href='/<?php echo $dataGrid->url ?>create/';
},
position:"last"
}); jQuery("#list").jqGrid('navButtonAdd',"#pagered",{
caption:"",
buttonicon:"ui-icon-pencil",
onClickButton: function(){
// var gsr = jQuery("#list").jqGrid('getGridParam','selrow'); // if(gsr){ // jQuery("#list").jqGrid('GridToForm',gsr,"#order"); // } else { // alert("Seleccione un registro") // }
if(lastsel){
location.href="/<?php echo $dataGrid->url ?>edit/"+lastsel;
}else{
alert("Seleccione un registro")
}
},
position:"last"
}); jQuery("#list").jqGrid('navButtonAdd',"#pagered",{
caption:"",
buttonicon:"ui-icon-trash",
onClickButton: function(){
/* var gsr = jQuery("#list").jqGrid('getGridParam','selrow'); if(gsr){ jQuery("#list").jqGrid('GridToForm',gsr,"#order"); } else { alert("Seleccione un registro") }*/
if(lastsel){
location.href="/<?php echo $dataGrid->url ?>del/"+lastsel;
}else{
alert("Seleccione un registro")
}
},
position:"last"
});
});
function mysum(val, name, record) { return parseFloat(val||0) + parseFloat((record[name]||0)); }
function currencyFmatter (cellvalue, options, rowObject) {
return "$"+cellvalue;
};
// $("#list").jqGrid('bindKeys', {"onEnter":function( rowid ) { alert("You enter a row with id:"+rowid)} } );
function formatOperations(cellvalue, options, rowObject) {
return "<a href='/<?php echo $dataGrid->url ?>edit/" + cellvalue + "' id='ui-icon-trash'>Edit</a> "+ "<a <a href='/<?php echo $dataGrid->headers ?>del/" + cellvalue + "'>Edit</a>"; };
</script>