class DivDataReader extends Div {
/**
* @var DataReader The Data Reader object
*/
var $datareader = '';
/**
* @var $layout The different layouts to use
* image link | image link | etc. on the same line
* image link | image link | etc. on the same line and google search
* image and link on each line
* <li> image and link on each line
* image <br> link etc. on the same line
*/
var $layout = '';
/**
* Constructor
* @param DataReader $datareader The Data Reader object
* @param String $text, The text for the Div tag or an object
* @param String $class The css class name
* @param String $align The align attribute
* @param String $id The ID attribute
*/
function DivDataReader($datareader='',$text='',$class='',$align='', $id='') {
$this->Div($text, $class, $align, $id);
$this->datareader = $this->getDatareader($datareader);
$this->adjustColumns();
}
/**
* Get the DataReader to use for this class
* @param DataReader $datareader The DataReader object, if defined
* @return DataReader or array The DataReader object or an array of default data
*/
function getDatareader($datareader) {
$theDatareader = $datareader;
if ($theDatareader == '') {
$columns = array(
LINK_TEXT_CONTACT_US=>array('text'=>LINK_TEXT_CONTACT_US,'href'=>LINK_HREF_EMAIL.'?'.REQUEST_EMNE.'=','title'=>LINK_TITLE_CONTACT_US,), // ,'class'=>'email'
LINK_TEXT_COMPANY_PROFILE=>array('text'=>LINK_TEXT_COMPANY_PROFILE,'href'=>LINK_HREF_URL.'/hvepseboguide/About/','title'=>LINK_TITLE_COMPANY_PROFILE,),
);
$theDatareader = $columns;
}
return $theDatareader;
}
/**
* Get the CSS class Name for this component
* @abstract
* @return String The CSS class name
*/
function getCssClass() {
return CSS_BODY;
}
/**
* Return the column data as html
* The column data may be
* - LINK_NAME
* - IMAGE_NAME
* - link
* - image
* - link + image
* <code>
* </code>
* @param String $page The page key
* @param array $column The column to loop for key/value pairs
* @return Object The html as an object
*/
function newColumn($page, $column) {
$object = new Raw();
if (count($column)>0) {
$text = '';
$href = '';
$title = '';
$aux = '';
$src = '';
$width = '';
$height = '';
$alt = '';
$span = '';
$class = $this->getCssClass();
$theValue = '';
foreach($column as $key=>$value) {
switch ($key) {
case KEY_TRIANGLE:
$theValue = $this->newTriangle($value, $class);
$class .= ' '.CSS_ONEPC;
break;
default:
$$key = $value;
break;
}
}
if ($theValue == '') {
if (defined('HTML_LANGUAGE_UTIL_PATH')) {
$text = ucfirst(Translate::get($text));
}
$aux = '';
if ($this->layout & LINK_LAYOUT_LI) {
$aux = LINK_LAYOUT_LI;
} else if ($this->layout & LINK_LAYOUT_BR) {
$aux = LINK_LAYOUT_BR;
}
if (is_a($this, "MenuFishEye")) {
$theValue = new Link('',$href,$class,$title,$aux);
$theValue->add(new Span($text,'','',"xdisplay: none;")); // The Menu Fish Eye
} else {
$theValue = new Link($text,$href,$class,$title,$aux);
}
if ($src != '') {
$theValue->add(new Image($src,$width,$height,$alt,$class));
} else {
}
}
$object->add($theValue);
} else {
// Ignore
}
return $object;
}
/**
* Return the content as a row object
* @return Object The content as an object
*/
function newColumns() {
$object = new Raw();
$numrows = 0;
if (is_a($this->datareader,DATA_READER_CLASS_NAME)) {
$numrows = $this->datareader->getNumRows();
}
if ($numrows > 0) {
if ($this->layout & LINK_LAYOUT_LI) {
$object = new Ul();
}
foreach($this->datareader->getRows() as $page=>$column) {
$object->add($this->newColumn($page, $column));
}
} else {
$object->add(new Raw(TEXT_NO_DATA));
}
return $object;
}
/**
* Adjust the columns for the different views
*/
function adjustColumns() {
if ($this->datareader != '' && is_array($this->datareader)) {
$columns = array();
if ($this->layout & LINK_LAYOUT_TRIANGLE) {
$columns[] = array(KEY_TRIANGLE=>IMAGE_TRIANGLE);
}
foreach($this->datareader as $key=>$column) {
$columns[] = $column;
}
$this->datareader = DataReaderFactory::newDataReader($columns);
}
if (!is_a($this->datareader,DATA_READER_CLASS_NAME)) {
$msg = $this->getClassName().'(), '.DATA_READER_CLASS_NAME." object expected, unknown datareader type=".gettype($this->datareader);
if (defined('HTML_LOG_UTIL_PATH')) {
Log::error(__FILE__,__LINE__,$msg);
} else {
}
Message::add($msg,__FILE__,__LINE__);
}
}
/**
* Get the content for the columns
* Each row is definition of a column
* @return String The html
*/
function getColumns() {
$html = '';
$this->add($this->newColumns());
$html .= $this->getStart();
$html .= $this->getEnd();
return $html;
}
}
?>
HTML source code
Den fulde HTML kildekode for DivDataReader klassen
<?
<!-- Test -->
<div><!-- Kontakt os --><a id="Link42" class="baseBody" href="http://www.hvepseeksperten.dk/FormMail/?baseEMNE=" title="Kontakt os via email
">Kontakt os</a>
<!-- Firma profil --><a id="Link43" class="baseBody" href="http://www.hvepseeksperten.dk/hvepseboguide/About/" title="Hvem er vi egentlig?">Firma profil</a>
<!-- Kontakt os --><a id="Link44" class="baseBody" href="http://www.hvepseeksperten.dk/FormMail/?baseEMNE=" title="Kontakt os via email
">Kontakt os</a>
<!-- Firma profil --><a id="Link45" class="baseBody" href="http://www.hvepseeksperten.dk/hvepseboguide/About/" title="Hvem er vi egentlig?">Firma profil</a>
</div>
?>
Class methods
Her er 'klasse metoderne' for DivDataReader klassen:
test
gethtml
object
getclassname
getmsg
addhtml
tostring
getcachefilename
save
content
html
setobject
set
get
getattribute
gettag
add
getsizeof
getelement
getelements
gettoogle
getmaximize
getminimize
newtriangle
display
showsource
div
getstart
getend
start
end
divdatareader
getdatareader
getcssclass
newcolumn
newcolumns
adjustcolumns
getcolumns
Object vars
Her er 'objekt variable' for DivDataReader klassen:
html =>
sql =>
elements => Array
sizeof => 2
text =>
class =>
align =>
id =>
datareader => Object
layout =>
DataReader.php
Her er felterne i DataReader for DivDataReader klassen: