mirror of https://github.com/xfarrow/phpxpress.git
added event onFieldDisplaying on the cards
This commit is contained in:
parent
7315c942a5
commit
b76a67562e
|
@ -49,9 +49,18 @@
|
||||||
$card2->addElementToList("of various sentences");
|
$card2->addElementToList("of various sentences");
|
||||||
$card2->addLink("Link1", "#");
|
$card2->addLink("Link1", "#");
|
||||||
$card2->addLink("Link2", "#");
|
$card2->addLink("Link2", "#");
|
||||||
|
|
||||||
|
$card2->onFieldDisplaying("onFieldDisplaying");
|
||||||
|
|
||||||
$card2->draw();
|
$card2->draw();
|
||||||
|
|
||||||
Card::endCardGroupLayout();
|
Card::endCardGroupLayout();
|
||||||
|
|
||||||
|
function onFieldDisplaying(&$field , &$value){
|
||||||
|
if($field == "Inhabitants"){
|
||||||
|
$value .= " (census 2019)";
|
||||||
|
}
|
||||||
|
}
|
||||||
?>
|
?>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
|
@ -2,6 +2,8 @@
|
||||||
include "include.php";
|
include "include.php";
|
||||||
|
|
||||||
class Card{
|
class Card{
|
||||||
|
|
||||||
|
// Structure
|
||||||
private $imageSource;
|
private $imageSource;
|
||||||
private $title;
|
private $title;
|
||||||
private $subtitle;
|
private $subtitle;
|
||||||
|
@ -12,6 +14,11 @@
|
||||||
private $list;
|
private $list;
|
||||||
private $linksArray;
|
private $linksArray;
|
||||||
private $button;
|
private $button;
|
||||||
|
|
||||||
|
// Events
|
||||||
|
private $onFieldDisplayingFunctionName;
|
||||||
|
|
||||||
|
// Layout
|
||||||
private $borderColor;
|
private $borderColor;
|
||||||
private $cardColor;
|
private $cardColor;
|
||||||
private $textColor;
|
private $textColor;
|
||||||
|
@ -140,10 +147,14 @@
|
||||||
echo '<div class="card-body">';
|
echo '<div class="card-body">';
|
||||||
echo '<h5 class="card-title">'. $this->title .'</h5>'; // title
|
echo '<h5 class="card-title">'. $this->title .'</h5>'; // title
|
||||||
echo '<h6 class="card-subtitle mb-2 text-muted">'. $this->subtitle .'</h6>'; // subtitle
|
echo '<h6 class="card-subtitle mb-2 text-muted">'. $this->subtitle .'</h6>'; // subtitle
|
||||||
echo '<p class="card-text">'. $this->innerText . '</p>'; // text
|
echo '<p class="card-text">'. $this->innerText . '</p>'; // innertext
|
||||||
|
|
||||||
if(isset($this->fieldsArray)){ // fields
|
// fields
|
||||||
|
if(isset($this->fieldsArray)){
|
||||||
foreach($this->fieldsArray as $field => $value){
|
foreach($this->fieldsArray as $field => $value){
|
||||||
|
if(isset($this->onFieldDisplayingFunctionName)){
|
||||||
|
call_user_func_array($this -> onFieldDisplayingFunctionName , array(&$field, &$value));
|
||||||
|
}
|
||||||
echo '<p class="card-text"><b>' . $field . ': </b>' . $value . '</p>';
|
echo '<p class="card-text"><b>' . $field . ': </b>' . $value . '</p>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -174,6 +185,23 @@
|
||||||
echo '</div></div>';
|
echo '</div></div>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
** The Event "onFieldDisplaying" gets fired just before the displaying of a field within
|
||||||
|
** a card, so you can display your own value.
|
||||||
|
** The function you have to provide must have this signature:
|
||||||
|
**
|
||||||
|
** function myFunction(&$field , &$value){...}
|
||||||
|
**
|
||||||
|
** You can change "field" snd "value" to whichever name you want.
|
||||||
|
**
|
||||||
|
*/
|
||||||
|
function onFieldDisplaying($functionName){
|
||||||
|
if(!is_callable($functionName))
|
||||||
|
throw new InvalidArgumentException("Couldn't call $functionName. You must provide the name of a function.");
|
||||||
|
|
||||||
|
$this -> onFieldDisplayingFunctionName = $functionName;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Using this overrides the card's width (known error from Bootstrap), so you should specify a width.
|
** Using this overrides the card's width (known error from Bootstrap), so you should specify a width.
|
||||||
** It always has to be closed with endCardGroupLayout()
|
** It always has to be closed with endCardGroupLayout()
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
include "include.php";
|
include "include.php";
|
||||||
|
|
||||||
class Table{
|
class Table{
|
||||||
|
|
||||||
// Structure
|
// Structure
|
||||||
private $dataSource;
|
private $dataSource;
|
||||||
private $columnCaptions;
|
private $columnCaptions;
|
||||||
|
@ -57,17 +58,21 @@
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
** Datasource can be either an array of object(s) or
|
||||||
|
** an array of array(s).
|
||||||
|
*/
|
||||||
function setDataSource(Array $dataSource){
|
function setDataSource(Array $dataSource){
|
||||||
if(empty($dataSource))
|
if(empty($dataSource))
|
||||||
throw new InvalidArgumentException('Parameter cannot be empty.');
|
throw new InvalidArgumentException('Parameter cannot be empty.');
|
||||||
|
|
||||||
$this->dataSource = $dataSource;
|
$this->dataSource = $dataSource;
|
||||||
|
|
||||||
// if array of objects provided
|
// Set captions when array of objects provided
|
||||||
if(is_object($dataSource[0]))
|
if(is_object($dataSource[0]))
|
||||||
$this->columnCaptions = array_keys(get_object_vars($this->dataSource[0]));
|
$this->columnCaptions = array_keys(get_object_vars($this->dataSource[0]));
|
||||||
|
|
||||||
// if array of arrays provided
|
// Set captione when array of arrays provided
|
||||||
else if(is_array($dataSource[0]))
|
else if(is_array($dataSource[0]))
|
||||||
$this->columnCaptions = array_keys($this->dataSource[0]);
|
$this->columnCaptions = array_keys($this->dataSource[0]);
|
||||||
}
|
}
|
||||||
|
@ -107,12 +112,12 @@
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** The Event "onValueDisplaying" gets fired just before the displaying of a value within
|
** The Event "onValueDisplaying" gets fired just before the displaying of a value within
|
||||||
** a table body, so you can display your own value if you want to.
|
** a table body, so you can display your own value.
|
||||||
** The function you have to provide must have this signature:
|
** The function you have to provide must have this signature:
|
||||||
**
|
**
|
||||||
** function myFunction($caption, &$value, $row){...}
|
** function myFunction($caption, &$value, $row){...}
|
||||||
**
|
**
|
||||||
** You can change "caption" and "value" to whichever name you want.
|
** You can change "caption", "value" and "row" to whichever name you want.
|
||||||
**
|
**
|
||||||
** caption: the ACTUAL fieldname of the dataSource whose value belongs to
|
** caption: the ACTUAL fieldname of the dataSource whose value belongs to
|
||||||
** value: the value you want to display.
|
** value: the value you want to display.
|
||||||
|
|
Loading…
Reference in New Issue