Source for file ListAll.php
Documentation is available at ListAll.php
// include the config file
require_once '../util/AlphaConfig.inc';
require_once $config->get('sysRoot'). 'alpha/controller/AlphaController.inc';
require_once $config->get('sysRoot'). 'alpha/view/AlphaView.inc';
require_once $config->get('sysRoot'). 'alpha/controller/AlphaControllerInterface.inc';
require_once $config->get('sysRoot'). 'alpha/util/helpers/AlphaValidator.inc';
* Controller used to list a BO, which must be supplied in GET vars
* @package alpha::controller
* @author John Collins <dev@alphaframework.org>
* @version $Id: ListAll.php 1453 2011-12-04 15:12:54Z johnc $
* @license http://www.opensource.org/licenses/bsd-license.php The BSD License
* @copyright Copyright (c) 2011, John Collins (founder of Alpha Framework).
* Redistribution and use in source and binary forms, with or
* without modification, are permitted provided that the
* following conditions are met:
* * Redistributions of source code must retain the above
* copyright notice, this list of conditions and the
* * Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the
* following disclaimer in the documentation and/or other
* materials provided with the distribution.
* * Neither the name of the Alpha Framework nor the names
* of its contributors may be used to endorse or promote
* products derived from this software without specific
* prior written permission.
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* The new default AlphaView object used for rendering the onjects to list
* The start number for list pageination
* The count of the BOs of this type in the database
* The field name to sort the list by (optional, default is OID)
* The order to sort the list by (optional, should be ASC or DESC, default is ASC)
* The name of the BO field to filter the list by (optional)
* The value of the filterField to filter by (optional)
private static $logger = null;
* Constructor to set up the object
* @param string $visibility
self::$logger = new Logger('ListAll');
self::$logger->debug('>>__construct()');
// ensure that the super class constructor is called, indicating the rights group
parent::__construct($visibility);
self::$logger->debug('<<__construct');
public function doGET($params) {
self::$logger->debug('>>doGET($params=['. var_export($params, true). '])');
// load the business object (BO) definition
if (isset ($params['bo'])) {
}elseif(isset ($this->BOname)) {
if (isset ($params['order'])) {
if($params['order'] == 'ASC' || $params['order'] == 'DESC')
$this->order = $params['order'];
if (isset ($params['sort']))
$this->sort = $params['sort'];
* check and see if a custom create controller exists for this BO, and if it does use it otherwise continue
$this->BO = new $BOname();
self::$logger->error($e->getMessage());
echo AlphaView::displayPageFoot($this);
self::$logger->debug('<<doGET');
public function doPOST($params) {
self::$logger->debug('>>doPOST($params=['. var_export($params, true). '])');
// check the hidden security fields before accepting the form POST data
throw new SecurityException('This page cannot accept post data from remote servers!');
self::$logger->debug('<<doPOST');
// load the business object (BO) definition
if (isset ($params['bo'])) {
}elseif(isset ($this->BOname)) {
throw new IllegalArguementException('No BO available to list!');
if (isset ($params['order'])) {
if($params['order'] == 'ASC' || $params['order'] == 'DESC')
$this->order = $params['order'];
if (isset ($params['sort']))
$this->sort = $params['sort'];
$this->BO = new $BOname();
if (!empty($params['deleteOID'])) {
$temp->load($params['deleteOID']);
self::$logger->error($e->getMessage());
echo AlphaView::displayErrorMessage('Error deleting the BO of OID ['. $params['deleteOID']. '], check the log!');
self::$logger->warn($e->getMessage());
}catch (IllegalArguementException $e) {
self::$logger->error($e->getMessage());
echo AlphaView::displayPageFoot($this);
self::$logger->debug('<<doPOST');
* Sets up the title etc. and pagination start point
// set up the title and meta details
// set the start point for the list pagination
* Method to display the page footer with pageination links
* Method for rendering the pagination links
$end = (($this->startPoint- 1)+ $config->get('sysListPageAmount'));
$html .= '<p align="center">Displaying '. ($this->startPoint). ' to '. $end. ' of <strong>'. $this->BOCount. '</strong>. ';
$html .= '<p align="center">The list is empty. ';
$html .= '<a href="'. FrontController::generateSecureURL('act=ListAll&bo='. $this->BOname. '&start='. ($this->startPoint- $config->get('sysListPageAmount'))). '"><<-Previous</a> ';
$html .= '<a href="'. $_SERVER["PHP_SELF"]. '?bo='. $this->BOname. "&start=". ($this->startPoint- $config->get('sysListPageAmount')). '"><<-Previous</a> ';
}elseif($this->BOCount > $config->get('sysListPageAmount')){
$html .= '<<-Previous ';
for ($i = 0; $i < $this->BOCount; $i+= $config->get('sysListPageAmount')) {
$html .= ' <a href="'. $_SERVER["PHP_SELF"]. '?bo='. $this->BOname. "&start=". ($i+ 1). '">'. $page. '</a> ';
}elseif($this->BOCount > $config->get('sysListPageAmount')){
$html .= ' '. $page. ' ';
$html .= ' <a href="'. $_SERVER["PHP_SELF"]. '?bo='. $this->BOname. "&start=". ($this->startPoint+ $config->get('sysListPageAmount')).
}elseif($this->BOCount > $config->get('sysListPageAmount')){
$html .= ' Next->>';
* Method to display the main body HTML for this page
// get all of the BOs and invoke the listView on each one
if(isset ($this->sort) && isset ($this->order)) {
if(isset ($this->sort) && isset ($this->order))
$objects = $temp->loadAll($this->startPoint- 1, $config->get('sysListPageAmount'), $this->sort, $this->order);
$objects = $temp->loadAll($this->startPoint- 1, $config->get('sysListPageAmount'));
$this->BOCount = $temp->getCount();
foreach($objects as $object) {
// now build the new controller
if(basename($_SERVER['PHP_SELF']) == 'ListAll.php') {
$controller->doPOST($_REQUEST);
$controller->doGET($_GET);
|