buongiorno ragazzi ho sistemato la classe seguendo il consiglio di Alhazred e me la sono fatta di sana pianta e devo dire che funziona bene si ho usato qualcosina che gia c era pero va bene !
vi posto il codice se qualcuno la vuole utilizzare posto il codice :
Codice PHP:
class datagrid
{
var $gridcontents = array();
var $limit;
var $offset;
var $sortby;
var $sortdir;
var $selfLink;
function gridstart($name, $title,$selectquery, $fields,$options)
{
global $dbcore ,$settings ;
ob_start();
if (!empty($_REQUEST["limit"]) && is_numeric($_REQUEST["limit"])){
$limit = $_REQUEST["limit"];
}else{
$limit = $options["limit"];
}
if (!empty($_REQUEST["offset"]) && is_numeric($_REQUEST["offset"])){
$offset = $_REQUEST["offset"];
}else{
$offset = "0";
}
if (!empty($_REQUEST["sortby"])){
$this->sortby = isset($_REQUEST["sortby"])?$_REQUEST["sortby"]:'';
$this->sortdir = iff(strtolower($_REQUEST["sortdir"])=="desc", "DESC", "ASC");
$updategrid = true;
}
else if (!empty($this->sortby)) {
$this->sortby = $this->sortby;
$this->sortdir = $this->sortdir;
}else{
$this->sortby = isset($options["sortby"])?$options["sortby"]:'';
$this->sortdir = isset($options["sortdir"])?$options["sortdir"]:'';
}
$sortstatement = iff($this->sortby, " ORDER BY ". $dbcore->escape($this->sortby) .iff(strtolower($this->sortdir)=="desc", " DESC", " ASC"));
$count = 0;
$sortjoin = $sortstatement." LIMIT ". $dbcore->escape($offset) .", ". $dbcore->escape($limit) .";";
eval("\$queryexec = \"". $selectquery ."\";");
$result = $dbcore->query($queryexec)or die(mysql_error());
echo '<table cellpadding="0" cellspacing="0" border="0" width="100%" class="tborder" style="float: left; position: relative;">'.CMS_CRLF;
echo '<thead>'.CMS_CRLF.'<tr>'.CMS_CRLF;
echo '<td class="tcat" width="1" align="left" nowrap>
<img src="'.$settings['pathcms'].'templates/admin_default/images/img_template/space.gif" width="1" height="21" border = "0"></td>';
echo '<td class="tcat" width="100%" colspan="" align="left" nowrap>'. $title .'</td>'.CMS_CRLF.'</tr>'.CMS_CRLF.'</thead>'.CMS_CRLF;
echo '<tbody><tr><td class="contenttableborder" colspan="2"><table border="0" cellpadding="3" cellspacing="1" width="100%">';
echo '<tr>';
$this->imgFilePath = $settings['pathcms'].'templates/admin_default/images/img_template/';
for ($xx=0; $xx<count($fields); $xx++){
$tdC_width = isset($fields[$xx]['width']) ? 'width = "'.$fields[$xx]['width'].'"' : '';
$tdC_height = isset($fields[$xx]['height'])? 'height = "'.$fields[$xx]['height'].'"' : '';
$tdC_align = isset($fields[$xx]['align']) ? 'align = "'.$fields[$xx]['align'].'"' : '';
$tdC_valign = isset($fields[$xx]['valign'])? 'valign = "'.$fields[$xx]['valign'].'"' : '';
$tdC_colspan = isset($fields[$xx]['colspan'])? 'colspan = "'.$fields[$xx]['colspan'].'"' : '';
echo '<td class="tabletitlerow" '.$tdC_width . $tdC_height. $tdC_align .$tdC_valign.'" nowrap>';
if($this->sortby == isset($fields[$xx]["name"])){
echo ' <a href="index.php?_n='.$_GET['_n'].'&_s='.$_GET['_s'].'&rows='.$limit.'&offset='.$offset.'&sortby='.urlencode($fields[$xx]["name"]).'&sortdir='.iff(strtolower($this->sortdir)=="asc", "desc", "asc").'">'. $fields[$xx]["name"].' <img src="'.$this->imgFilePath .iff(strtolower($this->sortdir)=="asc", "asc", "desc").'.gif" border="0" /></a>';
} else if (isset($fields[$xx]["type"]) and $fields[$xx]["type"] == "custom") {
echo ' '.$fields[$xx]["title"];
$norenderoptions = true;
} else {
echo ' <a href="index.php?_n='.$_GET['_n'].'&_s='.$_GET['_s'].'&rows='.$limit.'&offset='.$offset.'&sortby='.urlencode($fields[$xx]["name"]).'&sortdir='.iff(strtolower($this->sortdir)=="asc", "desc", "asc").'">'. $fields[$xx]["title"].'</a>';
}
echo '</td>';
}
echo '</tr>';
if($dbcore->num_rows($result)>0)
{
while( $rowfields = $dbcore->fetch_array($result))
{
$count++;
$getBgcolor = getBgcolor();
if (!$options["idname"])
{
$id = $count;
}else{
$id = $rowfields[$options["idname"]];
}
echo '<tr id="cms'. $id .'" class="'. $getBgcolor .'">'.CMS_CRLF;
for ($xx=0; $xx<count($fields); $xx++)
{
echo '<td class="tabletitlerow" '.$tdC_width . $tdC_height. $tdC_align .$tdC_valign.'" nowrap>';
if(isset($fields[$xx]["name"]) and $fields[$xx]["name"] !='')
{
echo $rowfields[$fields[$xx]["name"]];
}else{
echo $fields[$xx]["value"];
}
}
echo '</tr>';
}
}else{
echo '<tr id="cms" class="'.getBgcolor() .'">'.CMS_CRLF;
echo '<td class="tabletitlerow" align="left" nowrap>';
echo ' Empty';
echo '</td>';
echo '</tr>';
}
printTableFotterContent();
$this->gridcontents[$name] = ob_get_contents();
ob_end_clean();
}
function displaygrid($name)
{
echo $this->gridcontents[$name];
}
}
function getBgcolor($bgcolor = false)
{
global $RCW ;
if($bgcolor == "columright")
{
if($bgcolor == false)
{
$bgcolor = "columleft";
}else{
$bgcolor = "columright";
}
return "columright";
}else{
if($bgcolor == false)
{
$bgcolor = "columright";
}else{
$bgcolor = "columleft";
}
return "columleft";
}
}