PHP Classes

File: controllers/controller.example.php

Recommend this page to a friend!
  Classes of Kristo Vaher  >  Wave Framework  >  controllers/controller.example.php  >  Download  
File: controllers/controller.example.php
Role: Class source
Content type: text/plain
Description: Example Controller
Class: Wave Framework
MVC framework for building Web sites and APIs
Author: By
Last change: Integrated a new method callTool() to Factory and State, which allows you to call system specific functions such as filesystem cleaner or to get an index of files. More tools will be added in the future. The additional JavaScript and PHP loading now targets /scripts/ folder and not /libraries/ folder. Added the option to load external JS and CSS based on sitemap URL. File handler can also use overrides now, if a file is in resources folder. Moved '/resources/autoload.php' to '/resources/scripts/script.php'.
Date: 9 years ago
Size: 5,781 bytes
 

Contents

Class file image Download
<?php

/**
 * MyProjectNameHere <http://www.example.com>
 * Controller Class
 *
 * It is recommended to extend Controller classes from WWW_Factory in order to
 * provide various useful functions and API access for the Controller.
 *
 * @package Factory
 * @author DeveloperNameHere <email@example.com>
 * @copyright Copyright (c) 2012, ProjectOwnerNameHere
 * @license Unrestricted
 * @tutorial /doc/pages/guide_mvc.htm
 * @since 1.0.0
 * @version 1.0.0
 */

class WWW_controller_example extends WWW_Factory {
   
   
/**
     * Simple example call to get data
     *
     * Please note that only public methods can be called through API, protected
     * and private methods remain hidden. This method would be accessible over API
     * with 'www-command=example-get' call.
     *
     * @param array $input input data sent to controller
     * @input [key] This key is one of the accepted input values
     * @return array
     * @output [key] This is an output value that might exist in the output array
     * @response [500] Data returned
     */
   
public function get($configuration){
   
       
// This is only set for demonstration purposes, remove it when using this class as template
       
$configuration['id']=1;
   
       
// ID needs to be set
       
if(isset($configuration['id'])){
           
// Loading the model and data to the model
           
$data=$this->getModel('example');
            if(
$data->load($configuration['id'])){
               
// Returning an array representation of the model data
               
return $this->resultTrue('Entry found',$data->get());
            } else {
               
// Action failed because entry was not found
               
return $this->resultFalse('Entry not found');
            }
        } else {
           
// Action failed because incorrect request was made to the controller
           
return $this->resultError('ID not defined');
        }
       
    }
   
   
/**
     * Simple example call to get multiple database rows
     *
     * @param array $input input data sent to controller
     * @input [key] This key is one of the accepted input values
     * @return array
     * @output [key] This is an output value that might exist in the output array
     * @response [500] Data returned
     */
   
public function all($configuration){
   
       
// Loading the model and sending input data to the request
       
$data=$this->getModel('example');
       
$data=$data->all($configuration);
       
       
// This returns empty array if none were found
       
if($data){
            return
$this->resultTrue('Request complete',$data);
        } else {
            return
$this->resultFalse('Search failed');
        }
       
    }
   
   
/**
     * Simple example call to add rows to database
     *
     * @param array $input input data sent to controller
     * @input [key] This key is one of the accepted input values
     * @return array
     * @output [key] This is an output value that might exist in the output array
     * @response [500] Data returned
     */
   
public function add($input){
           
       
// This flag checks if error has been encountered during form validation
       
$errorsEncountered=array();
       
$errorFields=array();
       
       
// Validating input
       
if(isset($input['name']) && trim($input['name'])!=''){
           
$input['name']=trim($input['name']);
        } else {
           
$errorFields['name']=true;
           
$errorsEncountered[]='name-incorrect';
        }
       
       
// Data is only added if no errors were encountered
       
if(empty($errorsEncountered)){
           
// Getting model and setting the parameters
           
$data=$this->getModel('example');
           
$data->name=$input['name'];
           
// Attempting to save
           
if($data->save()){
                return
$this->resultTrue('Entry added');
            } else {
                return
$this->resultError('Failed to add entry');
            }
        } else {
            return
$this->resultFalse('Input data incorrect');
        }
       
    }

   
/**
     * Simple example call to edit rows to database
     *
     * @param array $input input data sent to controller
     * @input [key] This key is one of the accepted input values
     * @return array
     * @output [key] This is an output value that might exist in the output array
     * @response [500] Data returned
     */
   
public function edit($input){
   
       
// ID has to be set when editing
       
if(isset($input['id'])){
           
           
// This flag checks if error has been encountered during form validation
           
$errorsEncountered=array();
           
$errorFields=array();
           
           
// Validating input
           
if(isset($input['name']) && trim($input['name'])!=''){
               
$input['name']=trim($input['name']);
            } else {
               
$errorFields['name']=true;
               
$errorsEncountered[]='name-incorrect';
            }
           
           
// Data is only edited if no errors were encountered
           
if(empty($errorsEncountered)){
               
// Getting model
               
$data=$this->getModel('example');
               
// Data loading has to work based on the provided ID
               
if($data->load($input['id'])){
                   
// Setting the changed input parameters
                   
$data->name=$input['name'];
                   
// Attempting to save
                   
if($data->save()){
                        return
$this->resultTrue('Entry edited');
                    } else {
                        return
$this->resultError('Failed to edit entry');
                    }
                } else {
                    return
$this->resultFalse('Entry ID not found');
                }
            } else {
                return
$this->resultFalse('Input data incorrect');
            }
               
        } else {
            return
$this->resultFalse('Entry ID is missing');
        }
       
    }

   
/**
     * Simple example call to delete a row from database
     *
     * @param array $input input data sent to controller
     * @input [key] This key is one of the accepted input values
     * @return array
     * @output [key] This is an output value that might exist in the output array
     * @response [500] Data returned
     */
   
public function delete($input){
   
       
// ID has to be set when deleting
       
if(isset($input['id'])){
           
// Getting model
           
$data=$this->getModel('example');
           
// Attempting to delete
           
if($data->delete($input['id'])){
                return
$this->resultTrue('Entry deleted');
            } else {
                return
$this->resultError('Failed to delete entry');
            }
        } else {
            return
$this->resultFalse('Entry ID is missing');
        }
       
    }
   
}
   
?>

For more information send a message to info at phpclasses dot org.