blank.gif
triangle.gif Du er her: /  Forsiden  /  Kildekoden  /  Mvc  /  Grid   Login nu   Login
blank.gif
blank.gif
triangle.gif Basic Base Component Db Dto Form Form-elements Jquery Layout Menu Menu-fisheye Mvc  Tab Table Template Util
blank.gif
blank.gif
 
arrow-headline.gif Index
 
  Tilbage

Navn : Grid.php


Sample code, tutorial

Sådan benyttes komponenten Grid klassen

Først skal du inkludere den fil der beskriver komponenten, som en klasse fil

  • <?
    require_once(HTML_PACKAGE_PATH.'/Grid.php');
    ?>

Dernæst kan du enten benytte komponenten som et taglib (statiske metoder):

  • <?
    Grid
    ::display($param1, $param2, $param3, ...);
    ?>

eller du kan lave en instance af komponenten og benytte metoderne direkte:

  • <?
    $object
    = new Grid($param1, $param2, $param3, ...);
    print
    $object->getHtml();
    ?>

Parent html

Sådan vises komponenten Grid klassen

arrow-headline.gif Besked (1)















PHP source code

Den fulde PHP kildekode for Grid klassen

<?
/**
* @package mvc
* @see HTML_MVC_VIEW_PATH.'/Grid.php'
* @copyright (c) http://Finn-Rasmussen.com
* @license http://Finn-Rasmussen.com/license/ myPHP License conditions
* @author http://Finn-Rasmussen.com
* @version 1.10
* @since 22-feb-2007
*/

/**
* The required files
*/
require_once(HTML_BASE_COMMON_PATH.'/Html.php');
require_once(
HTML_TABLE_COMPONENT_PATH.'/TableHeader.php');
require_once(
HTML_TABLE_COMPONENT_PATH.'/Table.php');
if (
defined('HTML_DB_LOGIN_VIEW_PATH')) {
    require_once(
HTML_DB_LOGIN_VIEW_PATH.'/ViewLogin.php');
}
if (
defined('HTML_DB_BASKET_VIEW_PATH')) {
    require_once(
HTML_DB_BASKET_VIEW_PATH.'/ViewBasket.php');
}
if (
defined('HTML_DB_CUSTOMER_VIEW_PATH')) {
    require_once(
HTML_DB_CUSTOMER_VIEW_PATH.'/ViewCustomerList.php');
}
if (
defined('HTML_DB_SEARCH_VIEW_PATH')) {
    require_once(
HTML_DB_SEARCH_VIEW_PATH.'/ViewSearchForm.php');
    require_once(
HTML_DB_SEARCH_VIEW_PATH.'/ViewSearchList.php');
}
require_once(
HTML_MVC_VIEW_PATH.'/ViewList.php');
require_once(
HTML_MVC_VIEW_PATH.'/ViewPlain.php');
require_once(
HTML_MVC_VIEW_PATH.'/ViewDetail.php');
require_once(
HTML_MVC_VIEW_PATH.'/ViewSimple.php');
require_once(
HTML_MVC_VIEW_PATH.'/ViewForm.php');
require_once(
HTML_MVC_VIEW_PATH.'/ViewBusinessCard.php');
require_once(
HTML_MVC_VIEW_PATH.'/ViewInfo.php');
if (
defined('HTML_SAX_VIEW_PATH')) {
    require_once(
HTML_SAX_VIEW_PATH.'/ViewXmlReader.php');
}
require_once(
HTML_DTO_UTIL_PATH.'/DataReader.php');
if (
defined('HTML_LOG_UTIL_PATH')) {
    require_once(
HTML_LOG_UTIL_PATH.'/Log.php');
}

/**
* The Grid object is respponsible for all the different views like a form. a list or a basket view
* It Generates the html for a Grid through the layout parameter
* <code>
* Usage:
*   $command = new Command();
*   $sql = "SELECT * FROM table WHERE ID=1"
*   $datareader = $command->newDataReader($sql);
* Or
*   $datareader = DatareaderFactory::newDatareader($sql);
*   
*   // Create the view
*   $layout = GRID_LAYOUT_VIEW_DETAIL;
*   $text   = 'The text header to use';
*   $grid = new Grid($datareader, $layout, $text);
*   print $grid->getHtml();
* Or
*   Grid::display($datareader, $layout, $text);
* Or
*   // Get the view as an object
*   $grid = new Grid($datareader, $layout, $text);
*   $view = $grid->newView();
*   print $view->getHtml();
*   
*
* Generates a complete grid interface
* +--------------------------------
* | Text header
* +--------------------------------
* | head1 | head2 | head3 | etc
* +--------------------------------
* | dat_1 | dat_2 | dat_3 | etc
* +--------------------------------
* </code>
* @package mvc
*/

class Grid extends Html {
    
/**
     * @var DataReader $datareader The Data Reader object to use
     */
    
var $datareader = '';

    
/**
     * @var String $layout The layout to use
     */
    
var $layout = '';

    
/**
     * @var String $text The text header to use
     */
    
var $text = '';

    
/**
     * Constructor
     * @param DataReader $datareader The Data Reader object
     * @param String $layout The layout to use
     * @param String $text   The text header to use
     */
    
function Grid($datareader='',$layout='', $text='') {
        
$this->Html();
        
$this->layout = $layout!=''?$layout:GRID_LAYOUT_VIEW_PLAIN;
        
$this->datareader = $datareader!=''?$datareader:new DataReader();
        if (!
is_a($this->datareader,DATA_READER_CLASS_NAME)) {
            
$msg = $this->getClassName().'->sanityCheck(), Wrong object, expected: '.CLASS_NAME_DATA_READER.' found: '.$this->datareade;
            if (
defined('HTML_LOG_UTIL_PATH')) {
                
Log::fatal(__FILE__,__LINE__,$msg);
                
$html = $this->getMsg(LOG_LEVEL_FATAL, $msg);
            } else {
                die(
'File: '.__FILE__."<br />\r\nLine: ".__LINE__."<br />\r\n".$msg);
            }
        }
        
$this->text = $text;
    }

    
/**
     * Return the data as a new ViewSearcForm object
     * @return object The requested view object
     */
    
function newViewSearchForm() {
        return new
ViewSearchForm($this->datareader,$this->text);
    }

    
/**
     * Return the data as a new ViewSearchList object
     * @return object The requested view object
     */
    
function newViewSearchList() {
        return new
ViewSearchList($this->datareader,$this->text);
    }

    
/**
     * Return the data as a new ViewList object
     * @return object The requested view object
     */
    
function newViewList() {
        return new
ViewList($this->datareader,$this->text);
    }

    
/**
     * Return the data as a new ViewForm object
     * @return object The requested view object
     */
    
function newViewForm() {
        return new
ViewForm($this->datareader,$this->text);
    }

    
/**
     * Return the data as a new ViewLogin object
     * @return object The requested view object
     */
    
function newViewLogin() {
        if (
defined('HTML_DB_LOGIN_VIEW_PATH')) {
            return new
ViewLogin($this->datareader,$this->text);
        } else {
            return new
Raw("<!-- ".$this->getClassName()."->newViewLogin() is disabled because of HTML_DB_LOGIN_VIEW_PATH -->\r\n");
        }
    }

    
/**
     * Return the data as a new ViewDetail object
     * @return object The requested view object
     */
    
function newViewDetail() {
        return new
ViewDetail($this->datareader,$this->text);
    }

    
/**
     * Return the data as a new ViewSimple object
     * @return object The requested view object
     */
    
function newViewSimple() {
        return new
ViewSimple($this->datareader,$this->text);
    }

    
/**
     * Return the data as html a new ViewBasket object
     * @return object The requested view object
     */
    
function newViewBasket() {
        if (
defined('HTML_DB_BASKET_VIEW_PATH')) {
            return new
ViewBasket($this->datareader,$this->text);
        } else {
            return new
Raw("<!-- ".$this->getClassName()."->newViewBasket() is disabled because of HTML_DB_BASKET_VIEW_PATH -->\r\n");
        }
    }

    
/**
     * Return the data as a new ViewCustomerList object
     * @return object The requested view object
     */
    
function newViewCustomerList() {
        if (
defined('HTML_DB_CUSTOMER_VIEW_PATH')) {
            return new
ViewCustomerList($this->datareader,$this->text);
        } else {
            return new
Raw("<!-- ".$this->getClassName()."->newViewCustomerList() is disabled because of HTML_DB_CUSTOMER_VIEW_PATH -->\r\n");
        }
    }

    
/**
     * Return the data as a new ViewPlain object
     * @return object The requested view object
     */
    
function newViewPlain() {
        return new
ViewPlain($this->datareader,$this->text);
    }

    
/**
     * Return the data as a new ViewBusinessCard object
     * @return object The requested view object
     */
    
function newViewBusinessCard() {
        return new
ViewBusinessCard($this->datareader,$this->text);
    }

    
/**
     * Return the data as a new ViewInfo object
     * @return object The requested view object
     */
    
function newViewInfo() {
        return new
ViewInfo($this->datareader,$this->text);
    }

    
/**
     * Return the data as new ViewXMLReader data object
     * @return object The requested view object
     */
    
function newViewXmlReader() {
        if (
defined('HTML_SAX_VIEW_PATH')) {
            return new
ViewXmlReader($this->datareader,$this->text);
        } else {
            return new
Raw("<!-- ".$this->getClassName()."->newViewXmlReader() is disabled because of HTML_SAX_VIEW_PATH -->\r\n");
        }
    }

    
/**
     * Return the view as a new View object
     * <code>
     * Usage:
     *    $grid = new Grid($datareader, $layout, $text);
     *    $view = $grid->newView();
     *    print $view->getHtml();
     * </code>
     * @return object The requested view object
     */
    
function newView() {
        
$view = new Raw();
        switch (
$this->layout) {
            case
GRID_LAYOUT_VIEW_SEARCH_FORM:
                
$view = $this->newViewSearchForm();
                break;
            case
GRID_LAYOUT_VIEW_SEARCH_LIST:
                
$view = $this->newViewSearchList();
                break;
            case
GRID_LAYOUT_VIEW_LIST:
                
$view = $this->newViewList();
                break;
            case
GRID_LAYOUT_VIEW_FORM:
                
$view = $this->newViewForm();
                break;
            case
GRID_LAYOUT_VIEW_LOGIN:
                
$view = $this->newViewLogin();
                break;
            case
GRID_LAYOUT_VIEW_DETAIL:
                
$view = $this->newViewDetail();
                break;
            case
GRID_LAYOUT_VIEW_SIMPLE:
                
$view = $this->newViewSimple();
                break;
            case
GRID_LAYOUT_VIEW_BASKET:
                
$view = $this->newViewBasket();
                break;
            case
GRID_LAYOUT_VIEW_CUSTOMER_LIST:
                
$view = $this->newViewCustomerList();
                break;
            case
GRID_LAYOUT_VIEW_XML_READER:
                
$view = $this->newViewXmlReader();
                break;
            case
GRID_LAYOUT_VIEW_PLAIN:
                
$view = $this->newViewPlain();
                break;
            case
GRID_LAYOUT_VIEW_BUSINESS_CARD:
                
$view = $this->newViewBusinessCard();
                break;
            case
GRID_LAYOUT_VIEW_INFO:
                
$view = $this->newViewInfo();
                break;
            default:
                die(
$this->getClassName().", Unknown GRID_LAYOUT_VIEW_xxx, found=".strtoupper(dechex($this->layout)));
                break;
        }
        return
$view;
    }
    
    
/**
     * Return the html
     * @return String The html
     */
    
function getHtml() {
        
$html  = $this->html;
        
$view  = $this->newView();
        
$html .= $view->getHtml();
        return
$html;
    }

    
/**
     * Display html
     * <code>
     * Usage:
     *    Grid::display($datareader,$layout,$text);
     * </code>
     * @static
     * @param DataReader $datareader The Data Reader object
     * @param String     $layout     The layout to use
     * @param String     $text       The text header to use
     */
    
function display($datareader,$layout='',$text='') {
        
$html = new Grid($datareader,$layout,$text);
        
$html->addHtml();
    }
}
?>

HTML source code

Den fulde HTML kildekode for Grid klassen

<?

<table width="323" class="formView baseBorder" border="0" cellpadding="2" cellspacing="0">
<
tr>
    <
td class="baseArrowHeader" valign="middle"><img src="/images/arrow-headline.gif" width="4" height="7" alt="arrow-headline.gif" />
</
td>
  <
th class="baseColorHeader" valign="top" align="left">Besked (1)
</
th>

</
tr>

</
table>

<
table width="323" class="formView baseBorder" border="0" cellpadding="10" cellspacing="0">
<
tr>
    <
td valign="top"><form action="/source-code/mvc/Grid/index.php" method="post" name="Viewform" id="Form69">
<
label for="Label62" accesskey="T" title="Accelerator key, use (Alt + T)">
    <
b>Priva<span class="baseColorDark">t</span>&nbsp;telefon</b>&nbsp; (Alt + T) </label><br />

<
input type="text" name="private_phone" id="Label62" class="formXLARGE baseBorder baseBody" value="48246030" title="private_phone&#013;&#013;&#013;&#013;" tabindex="13" /><br />



<
label for="Label63" accesskey="C" title="Accelerator key, use (Alt + C)">
    <
b>Kontakt person</b>&nbsp; (Alt + C) </label><br />

<
input type="text" name="contact_person" id="Label63" class="formXLARGE baseBorder baseBody" value="Finn Rasmussen" title="contact_person&#013;&#013;&#013;&#013;" tabindex="14" /><br />



<
label for="Label64" accesskey="M" title="Accelerator key, use (Alt + M)">
    <
b>Fir<span class="baseColorDark">m</span>anavn</b>&nbsp; (Alt + M) </label><br />

<
input type="text" name="company_name" id="Label64" class="formXLARGE baseBorder baseBody" value="HvepseEksperten.dk ApS" title="company_name&#013;&#013;&#013;&#013;" tabindex="15" /><br />



<
label for="Label65" accesskey="J" title="Accelerator key, use (Alt + J)">
    <
b>Adresse</b>&nbsp; (Alt + J) </label><br />

<
input type="text" name="address" id="Label65" class="formXLARGE baseBorder baseBody" value="Kongens Vænge 79" title="address&#013;&#013;&#013;&#013;" tabindex="16" /><br />



<
label for="Label66" accesskey="Q" title="Accelerator key, use (Alt + Q)">
    <
b>Postnr</b>&nbsp; (Alt + Q) </label><br />

<
input type="text" name="zip" id="Label66" class="formXLARGE baseBorder baseBody" value="3400" title="zip&#013;&#013;&#013;&#013;" tabindex="17" /><br />



<
label for="Label67" accesskey="Y" title="Accelerator key, use (Alt + Y)">
    <
b>B<span class="baseColorDark">y</span></b>&nbsp; (Alt + Y) </label><br />

<
input type="text" name="city" id="Label67" class="formXLARGE baseBorder baseBody" value="Hillerød" title="city&#013;&#013;&#013;&#013;" tabindex="18" /><br />



<
label for="Label68" accesskey="W" title="Accelerator key, use (Alt + W)">
    <
b>Land</b>&nbsp; (Alt + W) </label><br />

<
input type="text" name="country" id="Label68" class="formXLARGE baseBorder baseBody" value="Denmark" title="country&#013;&#013;&#013;&#013;" tabindex="19" /><br />




<
div align="right"><input type="button" id="Cancelbutton70" class="formButton baseBorder baseBody"
    
onclick="history.back();" value="Fortryd" title="Fortryd" tabindex="20" />

<
input type="reset" id="Resetbutton71" class="formButton baseBorder baseBody"
    
value="Nulstil" title="Nulstil (Alt + X)" tabindex="21" accesskey="X" />

<!--
VIEW_LOGIN_FORM -->

<
input type="submit" id="Submitbutton72" class="formButton baseBorder baseBody"
    
value="Login" title="Login (Alt + 0)" tabindex="22" accesskey="0" />


</
div>


</
form>

<
script type="text/javascript">
//<![CDATA[
function setFocus_Viewformprivate_phone() {if (typeof document.Viewform == 'object') {if (typeof document.Viewform.private_phone == 'object') {document.Viewform.private_phone.focus();document.Viewform.private_phone.select();}}}if (typeof focusIsDefined == 'undefined') {function onload2Body() {var onloadCurrent = window.onload;if (typeof onloadCurrent !== 'function') {window.onload = setFocus_Viewformprivate_phone;} else {window.onload = function() {onloadCurrent();setFocus_Viewformprivate_phone();}}}onload2Body();focusIsDefined = true;}
//]]>
</script>


</td>
</tr>

</table>

?>

Class methods

Her er 'klasse metoderne' for Grid klassen:

  • object
  • getclassname
  • getmsg
  • addhtml
  • gethtml
  • tostring
  • getcachefilename
  • save
  • content
  • html
  • setobject
  • set
  • get
  • getattribute
  • gettag
  • add
  • getsizeof
  • getelement
  • getelements
  • gettoogle
  • getmaximize
  • getminimize
  • newtriangle
  • display
  • showsource
  • grid
  • newviewsearchform
  • newviewsearchlist
  • newviewlist
  • newviewform
  • newviewlogin
  • newviewdetail
  • newviewsimple
  • newviewbasket
  • newviewcustomerlist
  • newviewplain
  • newviewbusinesscard
  • newviewinfo
  • newviewxmlreader
  • newview

Object vars

Her er 'objekt variable' for Grid klassen:

  • html =>
  • sql =>
  • elements => Array
  • sizeof => 0
  • datareader => Object
  • layout => 4
  • text =>

DataReader.php

Her er felterne i DataReader for Grid klassen:

  0   














 
triangle.gif

danmark

Germany

England

France

Italy

Norge

Sverige

USA


 
blank.gif
blank.gif
blank.gif