Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- class SimpleDecorator extends Decorator{
- private $headerblock='';
- private $infoblock = '';
- private $maincontent = '';
- private $editblock = '';
- private $navblock = '';
- //---------------------------- get header block
- public function getHeader() {
- return $this->headerblock;
- }
- //---------------------------- get content block
- public function getContent() {
- return $this->infoblock.$this->maincontent;
- }
- //---------------------------- get footer block
- public function getFooter() {
- return $this->editblock. $this->navblock;
- }
- //---------------------------- set message
- public function setMessage($msg) {
- $this->infoblock = $msg;
- }
- //---------------------------- draw buttons for posts
- private function _drawButtons($view, $record_id, $item) {
- $s = '<div class="entryeditpanel">';
- $s .= $this->dispatchEvent('beforeDrawEditButtons', $record_id, $item);
- $s .= '<div class="editbutton"><a href="'.
- $view->route_edit_form($record_id).'">edit</a></div>';
- $s .= '<div class="deletebutton"><a href="'.
- $view->route_delete_form($record_id).'">delete</a></div>';
- $s .= $this->dispatchEvent('afterDrawEditButtons', $record_id, $item);
- $s .= '</div>';
- $s .= $this->dispatchEvent('afterRow', $record_id, $item);
- return $s;
- }
- //---------------------------- draw page entry
- private function _drawPageEntry($view, $item) {
- $flds = array();
- foreach ($item as $key => $val) {
- if ($key!='idfield') {
- $s = $this->dispatchEvent('fieldFilter',$key, $val['value'],$item);
- $flds[] = array ('class'=>$key, 'value'=>($s ? $s : $val['value']));
- }
- }
- $s ='<div class="entrytitle"><a href="'.
- $view->route_view_single($item['idfield']).'">'.$flds[0]['value'].'</a></div>';
- array_shift($flds);
- foreach ($flds as $el) {
- $s .='<div class="'.$el['class'].'">'.$el['value'].'</div>';
- }
- $s .= $this->_drawButtons($view, $item['idfield'], $item);
- return $s;
- }
- //---------------------------- draw page
- private function _drawPage($view) {
- $s = '<div class="page">';
- $items = $view->v_items;
- for ($i=0; $i<count($items); $i++) {
- //--------------- draw captions
- if ($i==0) {
- foreach ($items[$i] as $key=>$val) {
- if ($key!='idfield')
- $s .= '<div class="caption" >'.$val['caption'].'</div>';
- }
- }
- $s .= '<div class="clearfix"></div>';
- $s .= $this->_drawPageEntry($view, $items[$i]);
- }
- $s .= '</div>';
- $this->maincontent = $s;
- }
- //---------------------------- draw single item
- public function _drawSingle($view) {
- $flds = array();
- foreach ($view->v_item as $key=>$value) {
- if ($key!='idfield')
- $flds[] = array ('class'=>$key, 'value'=>$value );
- }
- $this->headerblock = $flds[0]['value'];
- $s = '';
- for ($i=1; $i<count($flds); $i++) {
- $s .= '<div class="'.$flds[$i]['class'].'">'.$flds[$i]['value'].'</div>';
- }
- $this->maincontent = $s;
- }
- //---------------------------- draw form for adding or editing
- public function _drawForm($view, $add_or_edit) {
- if ($add_or_edit == 'add')
- $action = $view->route_insert();
- else
- $action = $view->route_update($view->v_item['idfield']);
- $view->_form->set_action_route($action);
- $view->_form->setCancelRoute($view->route_view_page($view->v_nav_pageid));
- if ($add_or_edit == 'edit') {
- $view->_form->set_field_values($view->v_item);
- }
- $this->maincontent = $view->_form->draw();
- }
- //---------------------------- draw navigation
- private function _drawNavigation($view) {
- $s ='<div class="navigation"><ul>';
- if ($view->v_nav_numpages>1)
- for ($i=0; $i < $view->v_nav_numpages; $i++) {
- $s .='<li>';
- if ($i== $view->v_nav_pageid) {
- $s .= ($i+1);
- } else {
- $s .= '<a href="'. $view->route_view_page($i).'">'.($i+1).'</a>';
- }
- $s .= '</li>';
- }
- $s .= '</ul></div>';
- $this->navblock = $s;
- }
- //---------------------------- draw edit block
- public function _drawEditPanel($view, $single=true) {
- $s = '<div class="editpanel">';
- $s .= $this->dispatchEvent('beforeEditPanel', $record_id, $item);
- $s .= '<div class="addbutton"><a href="'.$view->route_add_form().'">add</a></div>';
- if ($single) {
- $s .= '<div class="editbutton"><a href="'.
- $view->route_edit_form($view->v_item['idfield']).'">edit</a></div>';
- $s .= '<div class="deletebutton"><a href="'.
- $view->route_delete_form($view->v_item['idfield']).'">delete</a></div>';
- $s .= '<div class="backtolistbutton"><a href="'.
- $view->route_view_page($view->v_nav_pageid).'">back to list</a></div>';
- }
- $s .= $this->dispatchEvent('afterEditPanel', $record_id, $item);
- $s .= '</div>';
- $this->editblock = $s;
- }
- //----------------------------- draw page and navigation
- public function _drawPageEditNav($view) {
- $this->_drawPage($view);
- $this->_drawEditPanel($view, false);
- $this->_drawNavigation($view);
- }
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement