Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- //----------------------------------------------
- // questions form
- //----------------------------------------------
- class QuestionsForm extends stdForm {
- public function __construct($action, $cancel_action, $flds) {
- $submit_action = array ('return check_form(this);',
- "\r\n".'function check_form(f) {
- for (var i=0; i<f.elements.length; i++) {
- if (f.elements[i].value=="") {
- alert(f.elements[i].name+" should be filled");
- return false;}
- } return true;}'."\r\n");
- parent::__construct( $action, $submit_action);
- $fset = $this->addFieldset('Question: ');
- $cancel_script = array ('back_to_list();',
- 'function back_to_list() {window.location.assign("'.$cancel_action.'");}');
- $this->addButton('SUBMIT','submit', 'post');
- $this->addButton('BUTTON','cancel', 'cancel', $cancel_script);
- //$this->_w($flds, __METHOD__);
- $fset->addField('TEXT', 'qtitle', $this->nzz($flds['qtitle'],''), 'Input question title');
- $fset->addField('TEXT', 'qtext', $this->nzz($flds['qtext'],''),'Input question');
- $fset->addField('TEXT', 'qcategory', $this->nzz($flds['qcategory'],''),'Input category');
- $fset->addField('TEXT', 'quser', $this->nzz($flds['quser'],''),'Input your name');
- }
- }
- //----------------------------------------------
- // questions view
- //----------------------------------------------
- class QuestionsView extends View {
- private $bcblock = '';
- private $maincontent = '';
- private $navblock = '';
- private $catblock = '';
- private $editblock = '';
- private $infoblock = '';
- private $_addurl = '';
- //---------------------------- draw buttons for posts
- private function _drawButtons($record_id) {
- $s = '<div class="entryeditpanel">';
- $s .= '<div class="editbutton"><a href="'.$this->route_edit_form($record_id).'">edit</a></div>';
- $s .= '<div class="deletebutton"><a href="'.$this->route_delete_form($record_id).'">delete</a></div>';
- $s .= '</div>';
- return $s;
- }
- //---------------------------- draw page entry
- private function _drawPageEntry($item) {
- extract($item);
- $s ='';
- $s .='<div class="entrytitle"><a href="'.$this->route_view_single($qid).'">'.$qtitle.'</a></div>';
- $s .='<div class="entrycontent">'.$qtext.'</div>';
- $s .='<div class="entrycategory">'.$qcategory.'</div>';
- $s .='<div class="entryuser">'.$quser.'</div>';
- $s .='<div class="entrydate">'.$qdate.'</div>';
- $s .= $this->_drawButtons($qid);
- return $s;
- }
- //---------------------------- draw page
- private function _drawPage() {
- $s = '<div class="page">';
- $items = $this->v_items;
- for ($i=0; $i<count($items); $i++) {
- $s .= $this->_drawPageEntry($items[$i]);
- }
- $s .= '</div>';
- return $s;
- }
- //---------------------------- draw single item
- private function _drawSingle() {
- $s = '<div class="content">'.$this->v_qtext.'</div>';
- $s .= '<div class="category">'.$this->v_qcategory.'</div>';
- $s .= '<div class="user">'.$this->v_quser.'</div>';
- $s .= '<div class="date">'.$this->v_qdate.'</div>';
- return $s;
- }
- //---------------------------- draw form for adding or editing
- private function _drawForm($add_or_edit, $flds=null) {
- if ($add_or_edit == 'add')
- $action = $this->route_insert();
- else
- $action = $this->route_update($this->v_qid);
- $zform = new QuestionsForm($action, $this->route_view_page($this->v_nav_pageid), $flds);
- return $zform->draw();
- }
- //---------------------------- draw bread crumbs
- private function _drawBreadCrumbs() {
- return 'Category: '.$this->v_nav_categoryname.' Page: '.$this->v_nav_pageid;
- }
- //---------------------------- draw navigation block
- private function _drawNavigation() {
- $s ='<div class="navigation"><ul>';
- for ($i=0; $i < $this->v_nav_numpages; $i++) {
- $s .='<li>';
- if ($i== $this->v_nav_pageid) {
- $s .= ($i+1);
- } else {
- $s .= '<a href="'. $this->route_view_page($i).'">'.($i+1).'</a>';
- }
- $s .= '</li>';
- }
- $s .= '</ul></div>';
- return $s;
- }
- //---------------------------- draw edit block
- private function _drawEditPanel($single=true) {
- $s = '<div class="editpanel">';
- $s .= '<div class="addbutton"><a href="'.$this->route_add_form().'">add question</a></div>';
- if ($single) {
- $s .= '<div class="editbutton"><a href="'.
- $this->route_edit_form($this->v_qid).'">edit question</a></div>';
- $s .= '<div class="deletebutton"><a href="'.
- $this->route_delete_form($this->v_qid).'">delete question</a></div>';
- $s .= '<div class="backtolistbutton"><a href="'.
- $this->route_view_page($this->v_nav_pageid).'">back to list</a></div>';
- }
- $s .= '</div>';
- return $s;
- }
- //----------------------------- draw page and navigation
- private function _drawPageNav() {
- $this->maincontent = $this->_drawPage();
- $this->navblock = $this->_drawNavigation();
- $this->editblock = $this->_drawEditPanel(false);
- }
- //---------------------------- draw common parts
- protected function commonRender() {
- $this->bcblock = $this->drawBreadCrumbs();
- }
- //---------------------------- put content into blocks
- protected function renderBlocks() {
- $this->_blocks['content'] = $this->bcblock.$this->infoblock.$this->maincontent;
- $this->_blocks['sidebar'] = $this->catblock;
- $this->_blocks['footer'] = $this->editblock. $this->navblock;
- }
- //-------------------------------------------
- // action handlers
- //-------------------------------------------
- //--------------------------- show single record
- public function view_single() {
- $this->_blocks['header'] = $this->v_qtitle;
- $this->maincontent = $this->_drawSingle();
- $this->editblock = $this->_drawEditPanel();
- }
- //--------------------------- show page
- public function view_page() {
- $this->_drawPageNav();
- }
- //---------------------------- show add form
- public function add_form() {
- $this->maincontent = $this->_drawForm('add');
- }
- //---------------------------- show insert record result
- public function insert() {
- $this->infoblock = $this->v_message.
- '<br/><a href="'.$this->route_view_single($this->v_newrecord_id).'">view record</a>';
- $this->_drawPageNav();
- }
- //---------------------------- show edit form
- public function edit_form() {
- $flds = array('qtitle'=> $this->v_qtitle,
- 'qtext'=> $this->v_qtext,
- 'qcategory'=> $this->v_qcategory,
- 'quser'=> $this->v_quser);
- $this->maincontent = $this->_drawForm('edit', $flds);
- }
- //---------------------------- show update record result
- public function update() {
- $this->infoblock = $this->v_message;
- $this->_drawPageNav();
- }
- //---------------------------- show delete form
- public function delete_form() {
- $this->infoblock = $this->v_message.'<br/>'.
- '<a href="'.$this->route_delete($this->v_nav_qid).'">delete</a><br/>'.
- '<a href="'.$this->route_view_page($this->v_nav_pageid).'">cancel</a>';
- }
- //---------------------------- show delete record result
- public function delete() {
- $this->infoblock = $this->v_message;
- $this->_drawPageNav();
- }
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement