listItemTpl = null; $this->itemsData = array(); $this->set('items', array()); //siia tuleb array of records (itemsData) $this->set('itemStrings', array()); //siia tulevad renderdatud itemsid $this->set('header', array()); //not array $this->set('headerLabelsMap', array()); //colName => Label $this->set('inputTypeMap', array()); //seda ei pea siin tegema, aga deklareeringu mõttes } /** * Määrab kirjemalli. * @access public */ function set_item_template(&$template) { $this->listItemTpl =& $template; } /** * Määrab kirjete massiivi. * @access public */ function set_items($items) { $this->itemsData = $items; } /** * @access public */ function fetch($file) { if (is_a( $this->listItemTpl, 'template')) { $list = array(); foreach ($this->itemsData as $id => $row) { $this->listItemTpl->set_vars($row); //ei clear-i(2. param) //sest $row peaks alati väärtustama //kõik väljad, mis tal on, isegi kui need on null-id $list[] = $this->listItemTpl->render(); } $this->set('itemStrings', $list); } else { //päis $header = array(); //kõigepealt võtame data key-d.. on neid siis või ei ole //var_dump($this->itemsData); $record = current($this->itemsData); //if (count($this->itemsData)) { if ($record) { foreach ($record as $col => $val) $header[$col] = $col; //$this->set('header', $header); } // kui datat pole -> kasutaja peab andma 'headerLabelsMap'i (colName => Label) foreach ($this->vars['headerLabelsMap'] as $col => $label) $header[$col] = $label; $this->set('header', $header); //sisu $this->set('items', $this->itemsData); } return parent::fetch($file); } } ?>