Code

Modified test1 to use smarty
[gosa.git] / include / class_ObjectListViewport.inc
index 3ec96e99538c13fc62179b7a0e776ea28d2db68d..477fd41321dc98b6470c9df43fec309c602fcb8d 100644 (file)
@@ -23,18 +23,19 @@ class ObjectListViewportException extends Exception {
 
     \sa ObjectList
  */
-class ObjectListViewport {
+class ObjectListViewport implements GOsaGuiElement {
 
   /* Internal variable for color alternation */
   protected $colorAlternator= 0;
 
-  /* Dummy here ----> */
   private $headline;
   private $footer;
   private $entryFormat;
+
+  /* Dummy here ----> */
   private $attributes= array('cn', '_icon', '_actions', 'dn');
-  
   /* <---- Dummy here */
+
   private $displayHeaderFlag= TRUE;
   private $displayFooterFlag= TRUE;
   private $numberOfCols= 0;
@@ -53,6 +54,7 @@ class ObjectListViewport {
 
   /*! \brief ID used to identify objects of same list */
   private $id = "";
+
   
   /*! \brief ObjectListViewport constructor
 
@@ -60,10 +62,14 @@ class ObjectListViewport {
 
     \param config Config section that is used to configure this ObjectListViewport
    */
-       public function __construct($config, $multiselect= TRUE){
+       public function __construct($config, $multiselect= TRUE, $displayHeader= TRUE, $displayFooter= FALSE){
+
+    /* Transfer initialization values */
+    $this->displayFooterFlag= $displayFooter;
+    $this->displayHeaderFlag= $displayHeader;
+    $this->multiselect= $multiselect;
 
-       $this->multiselect= $multiselect;
-    /* Dummy here */
+    /* Load list configuration from ConfigManager */
     $cr= Registry::getInstance("ConfigManager");
     $cr->setSection($config);
     $this->parseHeadline($cr->getValue("headline"));
@@ -74,9 +80,10 @@ class ObjectListViewport {
     $this->objects= new ObjectList($config);
 
     /* generate an unique id */
-    $this->id = preg_replace("/[^0-9]/","",microtime());
+    $this->id= uniqid();
   }
 
+
        /*! \brief Handles _POST / _GET events
 
            Processes the list of registered plugins to do their eventHandler and adapt
@@ -88,50 +95,64 @@ class ObjectListViewport {
   }
 
 
-       /*! \brief Renders headline into a string
+       /*! \brief Processes post events
 
-           Gets the headline description from the ObjectList object and renders it.
+           Processes all post events and acts as needed.
 
-      \return HTML rendered headline
+      \return bool for if changes are present or not
         */
-  private function renderHeadline(){
-    $tpl =" <tr>
-              <td class='ObjectListViewport_TD_Header' id='ObjectListViewport_TD_Header".$this->id."'>
-                <table class='ObjectListViewport_Header_Table' id='ObjectListViewport_Header_Table".$this->id."'>
-                  <tr>
-                    {content}
-                  </tr>
-                </table>
-             </td>
-           </tr>";
-    $buffer ="";
-    foreach($this->headline as $key => $value){
-      $buffer .= "<td class='ObjectListViewport_Header_Cell' style='".$value['style']."'>".$value['name']."</td>\n";
-    }
-    return(preg_replace("/\{content\}/", $buffer,$tpl));
-  }
+  public function process(){
 
-
-       /*! \brief Renders footer into a string
-
-           Gets the footer description from the ObjectList object and renders it.
-
-      \return HTML rendered footer
-        */
-  private function renderFooter(){
-    $buffer ="<tr>
-              <td class='ObjectListViewport_TD_Footer' id='ObjectListViewport_TD_Footer".$this->id."'>
-                <table class='ObjectListViewport_Footer_Table'>
-                  <tr>
-                    <td class='ObjectListViewport_Footer_Cell' colspan='".count($this->headline)."'>".$this->footer."</td>
-                  </tr>
-                </table>     
-              </td>
-           </tr>";
-    return $buffer;
+    /* TODO: process input */
+    return FALSE;
   }
 
 
+#/*! \brief Renders headline into a string
+#
+#    Gets the headline description from the ObjectList object and renders it.
+#
+#    \return HTML rendered headline
+# */
+#private function renderHeadline(){
+#  $tpl =" <tr>
+#            <td class='ObjectListViewport_TD_Header' id='ObjectListViewport_TD_Header_".$this->id."'>
+#              <table class='ObjectListViewport_Header_Table' id='ObjectListViewport_Header_Table_".$this->id."'>
+#                <tr>
+#                  {content}
+#                </tr>
+#              </table>
+#           </td>
+#         </tr>";
+#  $buffer ="";
+#  foreach($this->headline as $key => $value){
+#    $buffer .= "<td class='ObjectListViewport_Header_Cell' style='".$value['style']."'>".$value['name']."</td>\n";
+#  }
+#  return(preg_replace("/\{content\}/", $buffer,$tpl));
+#}
+
+
+#/*! \brief Renders footer into a string
+#
+#    Gets the footer description from the ObjectList object and renders it.
+#
+#    \return HTML rendered footer
+# */
+#private function renderFooter(){
+#  $buffer ="<tr>
+#            <td class='ObjectListViewport_TD_Footer' id='ObjectListViewport_TD_Footer_".$this->id."'>
+#              <table class='ObjectListViewport_Footer_Table'>
+#                <tr>
+#                  <td class='ObjectListViewport_Footer_Cell' colspan='".count($this->headline)."'>".$this->footer."</td>
+#                </tr>
+#              </table>     
+#            </td>
+#         </tr>";
+#  return $buffer;
+#}
+
+
+  /* TODO: replace this -> not our task */
   private function getEntryIcon($entry,$alt = ""){
     return("<img src='images/".$entry['_icon']."' alt='".$alt."' class='center'>");
   }
@@ -226,14 +247,6 @@ class ObjectListViewport {
         */
   public function render() {
 
-    $header = $footer = "";
-    if($this->displayHeaderFlag){
-      $header = $this->renderHeadline();
-    }
-    if($this->displayFooterFlag){
-      $footer = $this->renderFooter();
-    }
-
     /* Apply current filter */
     $entries = "";
     $objects= new ObjectListFilterIterator($this->objects->getIterator());
@@ -241,31 +254,25 @@ class ObjectListViewport {
       $entries .= $this->renderEntry($value);
     }
 
-    /* Generate fixed headline */
-    $buffer = "
-    <table class='ObjectListViewport' id='ObjectListViewport".$this->id."' cellspacing=0 cellpadding=0>
-      <tr>
-        <td>
-              <table class='ObjectListViewport_Table' id='ObjectListViewport_Table".$this->id."' cellpadding=0 cellspacing=0 >
-                ".$header."
-                <tr>
-                  <td class='ObjectListViewport_TD_Entries' id='ObjectListViewport_TD_Entries".$this->id."'>
-                    <div class='ObjectListViewport_Entry_Cover' id='ObjectListViewport_Entry_Cover".$this->id."'> 
-                      <table class='ObjectListViewport_Entry_Table' id='ObjectListViewport_Entry_Table".$this->id."'>
-                        ".$entries."
-                      </table> 
-                    </div>
-                  </td>
-                </tr>
-                ".$footer."
-              </table>
-
-        </td>
-      </tr>
-    </table>
-";
-
-    return ($buffer);
+    $smarty = get_smarty();
+    $smarty->assign("OLV_Entries",$entries);
+    $smarty->assign("OLV_List_Id",$this->id);
+
+    /* Footer variables */
+    $smarty->assign("OLV_Footer_Enabled",$this->displayFooterFlag);
+    $smarty->assign("OLV_Footer_Message",$this->footer);
+    $smarty->assign("OLV_Num_Cols",$this->numberOfCols);
+
+    /* Assign Headline values */
+    $smarty->assign("OLV_Header_Enabled",$this->displayHeaderFlag);
+    $smarty->assign("OLV_Header",$this->headline);
+    $buffer ="";
+    foreach($this->headline as $key => $value){
+      $buffer .= "<td class='ObjectListViewport_Header_Cell' style='".$value['style']."'>".$value['name']."</td>\n";
+    }
+
+    return($smarty->fetch("ObjectListViewport.tpl"));
   }
 
 
@@ -331,16 +338,6 @@ class ObjectListViewport {
     $this->headline= $cell_formats;
   }
 
-
-  public function enableFooter($bool= TRUE){
-    $this->displayFooterFlag= $bool;
-  }
-
-
-  public function enableHeader($bool= TRUE){
-    $this->displayHeaderFlag= $bool;
-  }
-  
 }
 
 // vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler: