Top  Branding  Banner 
blank.gif
blank.gif
triangle.gif Du er her: /  Forsiden  /  Kildekoden  /  Mvc  /  Grid   Login nå   Innlogging
blank.gif
««« Vis kildekode
blank.gif
tl.gif Base tr.gif tl.gif Basic tr.gif tl.gif Dto tr.gif tl.gif Form tr.gif tl.gif Language tr.gif tl.gif Layout tr.gif tl.gif Menu tr.gif tls.gif     Mvc  trs.gif tl.gif Netbank.eksperter.dk tr.gif tl.gif Tab tr.gif tl.gif Table tr.gif tl.gif Util tr.gif
blank.gif
blank.gif
arrow-headline.gif Indeks
MenuLink  MenuLeft  
Tilbake

Minimer: Navn

Grid.php


Vis: Sample code, tutorial

Grid, Sample code, tutorial

Slik bruker de bærende Grid klassen

Først må du inkludere i filen som beskriver komponent, som en klasse fil

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

Deretter kan du enten bruke den komponenten som en TagLib (statiske metoder):

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

eller du kan opprette en forekomst av komponenten og bruke metoder for direkte:

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

Minimer: Til å vise komponenten

Grid, Til å vise komponenten

Til å vise komponenten Grid klassen

No help













Vis: PHP source code

Grid, PHP source code

Den fullstendige kildekoden for PHP Grid klassen

<?php
/**
 * @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.11
 * @since 27-nov-2009
 */

/**
 * 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_PRODUCT_VIEW_PATH')) {
    require_once(
HTML_DB_PRODUCT_VIEW_PATH.'/ViewProductList.php');
}
if (
defined('HTML_DB_NEWS_VIEW_PATH')) {
    require_once(
HTML_DB_NEWS_VIEW_PATH.'/ViewNewsList.php');
}
if (
defined('HTML_DB_SELECT_VIEW_PATH')) {
    require_once(
HTML_DB_SELECT_VIEW_PATH.'/ViewSelectList.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');
}
if (
defined('HTML_DB_LINK_VIEW_PATH')) {
    require_once(
HTML_DB_LINK_VIEW_PATH.'/ViewLinkShow.php');
    require_once(
HTML_DB_LINK_VIEW_PATH.'/ViewLinkList.php');
}
if (
defined('HTML_DB_IMAGE_VIEW_PATH')) {
    require_once(
HTML_DB_IMAGE_VIEW_PATH.'/ViewImageShow.php');
    require_once(
HTML_DB_IMAGE_VIEW_PATH.'/ViewImageList.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
 *   $rows    = array( array(...), array(..), ... ); // An array of array's
 *   $header  = ''; // The header meta data
 *   $default = ''; // The default meta data array
 *   $limit   = ''; // The limit to use for the array
 *   $sort    = true;
 *   $datareader = DatareaderFactory::newDataReader($rows, $header, $default, $limit, $sort);
 *   
 *   // 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 The Data Reader object to use
     */
    
protected $datareader '';

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

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

    
/**
     * @var String $table The table to use in form create / update views
     */
    
protected $table '';

    
/**
     * Constructor
     * @param DataReader / array $datareader The Data Reader object OR an array
     * @param String $layout The layout to use
     * @param String $text   The text header to use
     */
    
function __construct($datareader$layout=''$text='') {
        
parent::__construct();
        
$this->layout     $layout     !== '' $layout     GRID_LAYOUT_VIEW_PLAIN;
        
$this->datareader $datareader !== '' $datareader : new DataReader();
        if ( ! 
$this->datareader instanceof DataReader ) {
            
$msg $this->getClassName().'->sanityCheck(), Wrong object, expected: '.CLASS_NAME_DATA_READER.' found: '.$this->datareade;
            if (
defined('HTML_LOG_UTIL_PATH')) {
                
Log::fatal($msg__FILE____LINE__);
                
$html $this->getMsg(LOG_LEVEL_FATAL$msg);
            } else {
                die(
'File: '.__FILE__."<br />\r\nLine: ".__LINE__."<br />\r\n".$msg);
            }
        }
        
$this->text $text;
    }
    
    
/**
     * Set the table name
     * @param String $table The currently table name to use
     */
    
public function setTable($table) {
        
$this->table $table;
    }

    
/**
     * 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
     * The name of the table must be set
     * @return object The requested view object
     */
    
function newViewForm() {
        
$view = new ViewForm($this->datareader$this->text);
        
$view->setTable$this->table );
        return 
$view;
    }

    
/**
     * 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 a new ViewLinkShow object
     * @return object The requested view object
     */
    
function newViewLinkShow() {
        return new 
ViewLinkShow($this->datareader$this->text);
    }

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

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

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

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

    
/**
     * Return the data as a new ViewSelectList object
     * @return object The requested view object
     */
    
function newViewSelectList() {
        return new 
ViewSelectList($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_READ:
                
$view $this->newViewSearchList();
                break;
            case 
GRID_LAYOUT_VIEW_LIST:
                
$view $this->newViewList();
                break;
            case 
GRID_LAYOUT_VIEW_CREATE_FORM:
                
// Intentionally fall through
            
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;
            case 
GRID_LAYOUT_VIEW_LINK_SHOW:
                
$view $this->newViewLinkShow();
                break;
            case 
GRID_LAYOUT_VIEW_LINK_READ:
                
$view $this->newViewLinkList();
                break;
            case 
GRID_LAYOUT_VIEW_IMAGE_READ:
                
$view $this->newViewImageList();
                break;
            case 
GRID_LAYOUT_VIEW_PRODUCT_LIST:
                
$view $this->newViewProductList();
                break;
            case 
GRID_LAYOUT_VIEW_NEWS_LIST:
                
$view $this->newViewNewsList();
                break;
            case 
GRID_LAYOUT_VIEW_NETBANK_ACCOUNTLIST:
                
$view $this->newViewList(); // The Netbank Accountlist demo
                
break;
            case 
GRID_LAYOUT_VIEW_SELECT_LIST:
                
$view $this->newViewSelectList(); // The Select demo
                
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 / array $datareader The Data Reader object OR an array
     * @param String     $layout     The layout to use
     * @param String     $text       The text header to use
     */
    
public static function display($datareader=null$layout=''$text='') {
        
$html = new Grid($datareader$layout$text);
        
$html->addHtml();
    }
}
?>

Vis: HTML source code

Grid, HTML source code

Den fullstendige HTML-kildekoden for Grid klassen

<?
<!-- DEBUGGrid -->
<!-- 
DEBUGViewForm -->

<
table id="ViewFormId" width="323" class="formView baseBorder" border="0" cellpadding="10" cellspacing="0">
 <
tr>
    <
td valign="top"><!-- DEBUGScript -->
<
script type="text/javascript">
//<![CDATA[
function onSubmitViewForm(theForm) {
    var 
isValid  true;
    var 
messages '';
    var 
focusMe  '';








    if (!
isValid) {
        var 
msg "Fylle felterne:\r\n";
        
msg += '===================\r\n';
        
msg += messages;
        
alert(msg);
    } else {
        var 
submitId document.getElementById('submitButtonViewFormId');
        
submitId.value     '   ...';
        
submitId.disabled  true;
        
submitId.className 'formButton baseBorder baseBody formXXSmall formButtonBee';
    }
    if (!
isValid && focusMe !== '') {
        
theForm[focusMe].focus();
    }
    return 
isValid;
}


//]]>
</script>

<!-- DEBUG: Form -->
<form action="/source-code/mvc/Grid/index.php" method="post" name="ViewForm" id="Form7" onsubmit="return onSubmitViewForm(this);">
<div class="baseAlignRight" align="right">No help</div>

<!-- DEBUG: Hiddens -->
<!-- Hiddens ViewForm -->
<!-- DEBUG: Hidden -->
<input type="hidden" name="baseCOMMAND" value="0fa21f16d900f79acf427a6011324329" title="85d3993b942fa1ea46c94653aac9400f (ViewForm)" />
<!-- DEBUG: Hidden -->
<input type="hidden" name="languageLANGUAGE" value="no" title="REQUEST_LANGUAGE" />


<!-- private_phone
13
varchar
customer

 -->

<!-- DEBUG: Label -->
<label for="Label1" accesskey="P" title="Accelerator key, use (Alt + P)">
    <b><span class="baseColorDark">P</span>rivat&nbsp;telefon</b>&nbsp; (Alt + P) </label><br />

<!-- DEBUG: Text -->
<input type="text" name="private_phone" id="Label1" class="formXLARGE baseBorder baseBody" maxlength="13" value="" title="private_phone&#013;13&#013;varchar&#013;customer&#013;&#013;" tabindex="1" /><br />



<!-- contact_person
100
varchar
customer


 -->

<!-- DEBUG: Label -->
<label for="Label2" accesskey="O" title="Accelerator key, use (Alt + O)">
    <b>K<span class="baseColorDark">o</span>ntakt&nbsp;person</b>&nbsp; (Alt + O) </label><br />

<!-- DEBUG: Text -->
<input type="text" name="contact_person" id="Label2" class="formXLARGE baseBorder baseBody" maxlength="100" value="" title="contact_person&#013;100&#013;varchar&#013;customer&#013;&#013;&#013;" tabindex="2" /><br />



<!-- company_name
100
varchar
customer

 -->

<!-- DEBUG: Label -->
<label for="Label3" accesskey="I" title="Accelerator key, use (Alt + I)">
    <b>F<span class="baseColorDark">i</span>rma&nbsp;navn</b>&nbsp; (Alt + I) </label><br />

<!-- DEBUG: Text -->
<input type="text" name="company_name" id="Label3" class="formXLARGE baseBorder baseBody" maxlength="100" value="" title="company_name&#013;100&#013;varchar&#013;customer&#013;&#013;" tabindex="3" /><br />



<!-- address
255
varchar
customer


 -->

<!-- DEBUG: Label -->
<label for="Label4" accesskey="A" title="Accelerator key, use (Alt + A)">
    <b><span class="baseColorDark">A</span>ddress</b>&nbsp; (Alt + A) </label><br />

<!-- DEBUG: Textarea -->
<textarea name="address" id="Label4" rows="5" cols="35" class="formXLARGE baseBorder baseBody" title="address
255
varchar
customer


" tabindex="4"></textarea><br />



<!-- zip
4
int
customer

0
 -->

<!-- COLUMN_FIELD_FLAG_AUTO_INCREMENT detected, so skip hidden field if INSERT -->


<!-- DEBUG: Hidden -->
<input type="hidden" name="utilID" value="" title="zip&#013;4&#013;int&#013;customer&#013;&#013;0&#013;" />



<!-- city
32
varchar
customer


 -->

<!-- DEBUG: Label -->
<label for="Label5" accesskey="B" title="Accelerator key, use (Alt + B)">
    <b><span class="baseColorDark">B</span>y</b>&nbsp; (Alt + B) </label><br />

<!-- DEBUG: Text -->
<input type="text" name="city" id="Label5" class="formXLARGE baseBorder baseBody" maxlength="32" value="" title="city&#013;32&#013;varchar&#013;customer&#013;&#013;&#013;" tabindex="5" /><br />



<!-- country



 -->

<!-- DEBUG: Label -->
<label for="Label6" accesskey="L" title="Accelerator key, use (Alt + L)">
    <b><span class="baseColorDark">L</span>and</b>&nbsp; (Alt + L) </label><br />

<!-- DEBUG: Text -->
<input type="text" name="country" id="Label6" class="formXLARGE baseBorder baseBody" value="" title="country&#013;&#013;&#013;&#013;" tabindex="6" /><br />




<!-- DEBUG: Buttons -->
<p><div class="baseAlignCenter"><!-- DEBUG: CancelButton -->
<input type="button" class="formButton baseBorder baseBody formXXSmall"
     onclick="history.back();" value="Tilbake" title="Tilbake" tabindex="7" />

<!-- DEBUG: ResetButton -->
<input type="reset" class="formButton baseBorder baseBody formXXSmall"
     value="Tilbakestill" title="Tilbakestill (Alt + Z)" tabindex="8" accesskey="Z" />

<!-- BUTTON_SUBMIT_TEXT -->

<!-- DEBUG: SubmitButton -->
<input type="submit" id="submitButtonViewFormId" class="formButton baseBorder baseBody formXXSmall"
     value="Sende inn" title="Sende inn (Alt + S)" tabindex="9" accesskey="S" />





</div>

</p>


</form>

<!-- DEBUG: Focus -->
<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 onload1Body() {
    var onloadCurrent = window.onload;
    if (typeof onloadCurrent !== 'function') {
        window.onload = setFocus_ViewFormprivate_phone;
    } else {
        window.onload = function() {
            onloadCurrent();
            setFocus_ViewFormprivate_phone();
        }
    }
}
onload1Body();
    focusIsDefined = true;
}

//]]>
</script>


</td>
 </tr>

</table>

?>

Vis: Class methods

Grid, Class methods

Her er klassen metoder Grid klassen:

  • __construct
  • setTable
  • newViewSearchForm
  • newViewSearchList
  • newViewList
  • newViewForm
  • newViewLogin
  • newViewDetail
  • newViewSimple
  • newViewBasket
  • newViewCustomerList
  • newViewPlain
  • newViewBusinessCard
  • newViewInfo
  • newViewLinkShow
  • newViewLinkList
  • newViewImageList
  • newViewProductList
  • newViewNewsList
  • newViewSelectList
  • newViewXmlReader
  • newView
  • getHtml
  • display
  • setObject
  • set
  • get
  • getAttribute
  • getTag
  • add
  • getSizeof
  • getElement
  • getElements
  • getToogle
  • getMaximize
  • getMinimize
  • newTriangle
  • getStartHtml
  • getEndHtml
  • showsource
  • getClassName
  • getMsg
  • addHtml
  • __toString
  • getCacheFileName
  • save
  • content

Vis: Object vars

Grid, Object vars

Her er object variabelen for Grid klassen:

  • html =>
  • sql =>

MenuRight 
triangle.gif

Dansk

Deutch

English (UK)

France

Italy

Norsk

Svensk

English (USA)


 
blank.gif
MenuBottom 
triangle.gif Copyright @ 1999-2010 Web Expert www.Finn-Rasmussen.com Powered by myPHP Versjon (5.2.6-1+lenny9) 1.11
blank.gif