| // +---------------------------------------------------------------------------+ // $Id$ require_once 'GuestbookMgr.php'; require_once 'DB/DataObject.php'; /** * Allows users to leave guestbook entries. * * @package guestbook * @author Rares Benea * @version $Revision: 1.0 $ */ class AdminGuestbookMgr extends GuestbookMgr { function AdminGuestbookMgr() { SGL::logMessage(null, PEAR_LOG_DEBUG); parent::SGL_Manager(); $this->pageTitle = 'Guestbook Manager'; $this->template = 'guestbookList.html'; $this->_aActionsMapping = array( 'add' => array('add'), 'insert' => array('insert', 'redirectToDefault'), 'list' => array('list'), 'delete' => array('delete','list'), ); } function validate($req, &$input) { SGL::logMessage(null, PEAR_LOG_DEBUG); $input->aDelete = $req->get('frmDelete'); // Not elegant but works $this->conf['GuestbookMgr']['useCaptcha'] = false; parent::validate($req, $input); } function _cmd_list(&$input, &$output) { SGL::logMessage(null, PEAR_LOG_DEBUG); $output->pageTitle = 'Welcome to our Guestbook'; $output->mode = 'List'; $output->template = 'guestbookList.html'; $query = " SELECT guestbook_id, date_created, name, email, message FROM {$this->conf['table']['guestbook']} ORDER BY guestbook_id DESC"; $limit = $_SESSION['aPrefs']['resPerPage']; $pagerOptions = array( 'mode' => 'Sliding', 'delta' => 3, 'perPage' => $limit, ); $aPagedData = SGL_DB::getPagedData($this->dbh, $query, $pagerOptions); if (is_array($aPagedData['data']) && count($aPagedData['data'])) { $output->pager = ($aPagedData['totalItems'] <= $limit) ? false : true; foreach ($aPagedData['data'] as $key => $value) { $stripMessage = substr($aPagedData['data'][$key]['message'], 0, 20); $aPagedData['data'][$key]['message'] = $stripMessage.'...'; } } $output->aPagedData = $aPagedData; } /** * Delete/unsubscribe a subscriber * * @access public * */ function _cmd_delete (& $input, & $output) { SGL::logMessage(null, PEAR_LOG_DEBUG); if (is_array($input->aDelete)) { foreach ($input->aDelete as $index => $guestbook_id) { $oEntry = DB_DataObject::factory($this->conf['table']['guestbook']); $oEntry->get($guestbook_id); $oEntry->delete(); unset ($oEntry); } } else { SGL :: raiseError('Incorrect parameter passed to '.__CLASS__.'::'.__FUNCTION__, SGL_ERROR_INVALIDARGS); } SGL :: raiseMsg('Entry deleted successfully', true, SGL_MESSAGE_INFO); } } ?>