70% OFF : CLICK HERE TO BUY IT TODAY FOR ONLY $44.70 OR GET IT FREE VIA TRIALPAY  

PHP Demo Application - Source Code

/Application/Model/DataObjects/Rental_Dropdown.php

<?php
/**
* Script Contents: Apeel_Application_Model_DataObjects_Rental_Dropdown Class
* Extends Apeel_Application_Model_DataObjects_Rental_Grid Class
* @package Apeel_Application_Model_DataObjects
*/

/**
* Dropdown Data Object for Rental
* which extends the Grid Data Object for Rental
* and provides specific functionality for Dropdown Lists, Autocomplete fields
* etc where an ID and Display value are returned.  

* The core abstract class contains all the PDO code for connecting to the 
* database, reading and writing data.  

* This concrete class contain the specifics of which tables/fields to read, 
* what kind of editor should be used with each field  (e.g. text box, dropdown,
* autocomplete etc) and could represent (for example) the data required to 
* populate a data entry form, or a grid, or to populate a drop down list, or 
* any other use you can think of.  

* The structure of Data Objects is based on the Template Design Pattern.  
*
* @package      Apeel_Application_Model_DataObjects
* @version      1.1.0
* @author       John W. King (email: contact@apeelframework.net)
* @copyright    City Business Logic Limited 2001-2011
* @license      Dual MIT / GNU Lesser General Public License Version 3
*/
class Apeel_Application_Model_DataObjects_Rental_Dropdown extends Apeel_Application_Model_DataObjects_Rental_Grid {
    
    
/**
    * Return SQL SELECT clause.  
    * 
    * @return string 
    */
    
protected function getSelect() {
        return
            
"
                SELECT
                    `rental`.`rental_id` AS `id`,
                    CONCAT(`inventory_id__film_id__film`.`title`, ' - ', `customer_id__customer`.`first_name`, ' ', `customer_id__customer`.`last_name`) AS `desc`
            "
;
    }
    
    
    
/**
    * Return SQL FROM clause.  
    * 
    * @return string 
    */
    
protected function getFrom() {
        return
            
'
                FROM
                    `rental`
                    LEFT JOIN `film` AS `inventory_id__film_id__film`
                        ON `inventory_id__film_id__film`.`film_id` = `rental`.`inventory_id`
                    LEFT JOIN `customer` AS `customer_id__customer`
                        ON `customer_id__customer`.`customer_id` = `rental`.`customer_id`

            '
;
    }
    
    
    
/**
    * Set SQL ORDER BY clause to Order by Desc field.  
    * 
    * @return string
    */
    
public function getOrderBy() {
        return 
'ORDER BY `desc`';
    }      
    
    
    
/**
    * Return shorthand PDO field type for given field.  
    * s = PDO::PARAM_STRING
    * i = PDO::PARAM_INT  
    * b = PDO::PARAM_BOOL
    * l = PDO::PARAM_LOB 
    * 
    * @param string $field
    * @return string
    */
    
public function getFieldDefinition($field) {

        
$definitions 
            array 
                (             
                    
"id" => 'i',
                    
"desc" => 's'
                
)
                ;
        
        
// Check if requested field exists in the array.
        
return Apeel_Framework_Controller_Libraries_Input::getArrayValueByIndexMustExist($definitions$field'Field Definitions');
    }
    
    
    
/**
    * Return an array containing the fields required for a dropdown list.    
    * 
    * @return array
    */    
    
public function getGridColumns() {
        return array(
            
'id' => array('alias' => 'id'),
            
'desc' => array('alias' => 'value')
        );
    }
    

    
/**
    * Returns definitions for the display field.  
    * 
    * The display field can be made up of a single field or a calculation.  
    * If using a calculation set computation to the raw MySQL SQL something like:
    * "CONCAT(`table`.`field1`, ' ', `table`.`field2`)"
    * If it is a single field then simply set it to the fieldname.  
    * 
    * @param integer $index (ignored - only included for compatibility with parent class)
    * @return array
    */   
    
public function getEditors($index NULL) {        
        return array(
'fieldname' => 'desc''computation' => "CONCAT(`inventory_id__film_id__film`.`title`, ' - ', `customer_id__customer`.`first_name`, ' ', `customer_id__customer`.`last_name`)");           
    }          
    
    
    
/**
    * Returns a string or an array containing one or more fieldnames that form 
    * the Primary key that identifies a unique row in this Data Object.  
    * 
    * @return string | array
    */
    
public function getPrimarykey() {
        return 
'rental.rental_id';
    }
    
    
    
/**
    * Returns a human-readable description of this Data Object
    * 
    * @return string
    */
    
public function getDataObjectName() {
        return 
'Rental';
    }
    
    
    
/**
    * Returns the name of the main table represented by this Data Object.  
    * 
    * @return string
    */
    
public function getMainTableName() {
        return 
'rental';
    }  
}

?>

PHP Demo Source Code Index