index d8ee0fb80bb7427bac07a0b60d2e9695e9301393..b17dfa74e3a73cdbe9b12c81ee05bf8ed56dd6bc 100644 (file)
var $a_entries;
var $a_header;
var $b_displayPageNums;
- var $summary;
+ var $s_summary;
var $cols;
var $pageid;
+ //FIXME: Ignoring the fact, that they were missing - height and width are numeric...
+ var $s_height;
+ var $s_width;
// Members for page managment
var $i_currentPage;
var $i_entriesPerPage;
+ var $force_height = false;
+ var $list_footer = "";
+ var $fix_list_for_plugins = FALSE;
+
// Added php 4 constructor
function divlist($pageid){
$this->i_currentPage = 0;
$this->i_entriesPerPage = 10;
- $this->s_height = "500";
- $this->s_width = "600";
+ $this->s_height = "450";
+ $this->s_width = "600px";
$this->s_summary = "";
$this->a_entries = array();
$this->a_header = array();
}
+ function SetPluginMode($val = TRUE)
+ {
+ $this->fix_list_for_plugins = $val;
+ }
+
+ function SetFooter($str)
+ {
+ $this->list_footer = $str;
+ }
+
function AddEntry($a_entriedata) {
$this->a_entries[] = $a_entriedata;
}
function SetHeight($s_height) {
$this->s_height= $s_height;
+ $this->force_height = true;
}
function SetWidth($s_width) {
$this->s_width= $s_width;
+ if(preg_match("/^[0-9]*$/",$this->s_width)){
+ $this->s_width .="px";
+ }
}
function SetEntriesPerPage($i_num){
function DrawList(){
$s_return = "";
- $s_return.= "<table summary='".$this->s_summary."' style='width:".$this->s_width."px;height:".$this->s_height."px;' cellspacing='0' id='t_scrolltable'>";
+ if(!$this->force_height || $this->fix_list_for_plugins){
+ $s_return.= "<table summary='".$this->s_summary."' style='width:".
+ $this->s_width.";height:".$this->s_height.
+ "px;' cellspacing='0' id='t_scrolltable'>";
+ } else {
+ $s_return.= "<table summary='".$this->s_summary."' style='width:".
+ $this->s_width.";height:".$this->s_height.
+ "px;' cellspacing='0' id='t_scrolltable_onlywidth'>";
+ }
$s_return.= $this->_generateHeader();
- $s_return.=$this->_generatePage();
-
+ $s_return.= $this->_generatePage();
+ $s_return.= $this->_generateFooter();
$s_return.= "</table>";
return ($s_return);
function _numpages(){
$cnt = count($this->a_entries);
- $tmp = $cnt % $this->i_entriesPerPage;
$pages = (int) ($cnt / $this->i_entriesPerPage);
- if($tmp) $pages ++;
+ if($cnt % $this->i_entriesPerPage){
+ $pages++;
+ }
return $pages;
}
function _numentries(){
- $cnt = count($this->a_entries);
- return $cnt;
+ return count($this->a_entries);
}
+
+ function _generateFooter()
+ {
+ $s_return = "";
+ if(!empty($this->list_footer)){
+
+ // Using scrolltable?
+ if($this->i_entriesPerPage == 0) {
+ if(!$this->force_height) {
+ $s_return.= "\n<tr><td class='scrollhead'><table summary='' style='width:100%' cellspacing='0' id='t_scrollfoot'>";
+ } else {
+ $s_return.= "\n<tr><td class='scrollhead'><table summary='' style='width:100%' cellspacing='0' id='t_scrollfoot_onlywidth'>";
+ }
+ }
+ $s_return .= "<tr><td class='listfooter' style='border-bottom:0px;'>".$this->list_footer."</td>";
+ // Attach a 13px-wide column (used as scrollbar space in body-table),
+ // but do this only if we are really using scrolltables.
+ if($this->i_entriesPerPage == 0) {
+ $s_return.= "\n<td class='listfooter' style='width:13px;border-right:0px;'> </td>";
+ $s_return.= "\n</table></td>";
+ }
+
+ $s_return.= "\n</tr>";
+
+ }
+ return($s_return);
+ }
function _generateHeader(){
-
$s_return = "";
$s_value = "";
$s_key = "";
// Using scrolltable?
if($this->i_entriesPerPage == 0) {
- $s_return .= "\n<tr><td class='scrollhead'><table summary='' style='width:".$this->s_width."px;' cellspacing='0' id='t_scrollhead'>";
+ if(!$this->force_height) {
+ $s_return.= "\n<tr><td class='scrollhead'><table summary='' style='width:".$this->s_width.";' cellspacing='0' id='t_scrollhead'>";
+ } else {
+ $s_return.= "\n<tr><td class='scrollhead'><table summary='' style='width:".$this->s_width.";' cellspacing='0' id='t_scrollhead_onlywidth'>";
+ }
}
- $s_return .= "\n<tr>";
+ $s_return.= "\n<tr>";
foreach($this->a_header[0] as $s_key => $s_value ){
if(!isset($s_value['attach'])){
// Attach a 13px-wide column (used as scrollbar space in body-table),
// but do this only if we are really using scrolltables.
if($this->i_entriesPerPage == 0) {
- $s_return .= "\n<td class='listheader' style='width:13px;border-right:0px;'> </td>";
- $s_return .= "\n</table></td>";
+ $s_return.= "\n<td class='listheader' style='width:13px;border-right:0px;'> </td>";
+ $s_return.= "\n</table></td>";
}
- $s_return .= "\n</tr>";
+ $s_return.= "\n</tr>";
return $s_return;
}
if($this->i_entriesPerPage == 0) {
// We need to construct a "body"-table that is width-of-scrollbar thinner than the "head"-table.
- $s_return .= "\n<tr><td colspan='".$this->cols."' class='scrollbody'><div style='width:".$this->s_width."px;height:".($this->s_height-20)."px;' id='d_scrollbody' class='scrollbody'>";
- $s_return .= "<table summary='' style='height:100%;width:581px;' cellspacing='0' id='t_scrollbody'>";
+ if(!$this->force_height) {
+ $s_return .= "\n<tr><td colspan='".$this->cols."' class='scrollbody'><div style='width:".$this->s_width.";height:".($this->s_height-20)."px;' id='d_scrollbody' class='scrollbody'>";
+ $s_return .= "<table summary='' style='height:100%;width:581px;' cellspacing='0' id='t_scrollbody'>";
+ } else {
+ $s_return .= "\n<tr><td colspan='".$this->cols."' class='scrollbody'><div style='width:".$this->s_width.";height:".($this->s_height-20)."px;' id='d_scrollbody_onlywidth' class='scrollbody'>";
+ $s_return .= "<table summary='' style='height:100%;width:581px;' cellspacing='0' id='t_scrollbody_onlywidth'>";
+ }
}
$i_alternate=0;
/* If divlist is empty, append a single white entry */
if(count($this->a_entries)==0){
$str = $s_return."<tr>";
- $str.="<td class='list1' colspan='".$this->cols."' style='height:100%;border-right:0px;width:100%;'> </td>";
+ $str.="<td class='list1nohighlight' colspan='".$this->cols."' style='height:100%;border-right:0px;width:100%;'> </td>";
$str.="</tr>";
if($this->i_entriesPerPage == 0) {
$str.="</table></div></td></tr>";
return($str);
} else {
+ //FIXME: Ahrg. I'd like to read this code without wasting my time.
if ($this->i_entriesPerPage > 0) {
while($start > $this->_numentries()){
$start = $start - $this->i_entriesPerPage;
$s_value = $this->a_entries[$i];
-
+ // Alternation of background color
if($i_alternate) $i_alternate=0; else $i_alternate=1;
- $s_return .= "\n<tr class='rowxp'>";
+ $s_return .= "\n<tr class='rowxp".$i_alternate."'>";
$cnt = 0;
$i_alternate=1;
}
- $s_return .= "\n<tr>";
+ $s_return .= "\n<tr class='rowxp".$i_alternate."'>";
$cnt = 0;
$style = " ".$s_value2['attach']." " ;
}
- $s_return .= "\n<td ".$style." class='".$class."' onmouseover='highlight(this);' onmouseout='unhighlight(this,\"list".$i_alternate."\");'>";
+ $s_return .= "\n<td ".$style." class='".$class."'>";
$s_return .= $s_value2['string'];
$s_return .= "</td>";
}
}
// if fewer than 22 Entries (list not full), print row to fill empty space
+ //FIXME: Why 22? Isn't the size dynamic
if($this->_numEntries()<=22){
$fill= "";
for ($i= 1; $i <= $this->cols; $i++){
}
}
}
+
// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
?>