aboutsummaryrefslogtreecommitdiff
path: root/h-source/Library/Helper/Popup.php
diff options
context:
space:
mode:
Diffstat (limited to 'h-source/Library/Helper/Popup.php')
-rwxr-xr-xh-source/Library/Helper/Popup.php40
1 files changed, 38 insertions, 2 deletions
diff --git a/h-source/Library/Helper/Popup.php b/h-source/Library/Helper/Popup.php
index 017e873..18bb00d 100755
--- a/h-source/Library/Helper/Popup.php
+++ b/h-source/Library/Helper/Popup.php
@@ -34,16 +34,31 @@ class Helper_Popup extends Helper_Html {
//the type of the popup. If type !=exclusive, than each voice selected is added to the where clause. If type=exclusive, the selection of a popup voice causes the unselection of the other voices
public $type = null;
- public $allString = 'All';
+ public $allString = null;
//list of popup names
public $popupItems = array();
+
+ //if it has to print the filter legend
+ public $printLegend = false;
+
+ //popup legend
+ public $legend = array();
+
+ public function __construct()
+ {
+ //get the generic language class
+ $this->strings = Factory_Strings::generic(Params::$language);
+
+ $this->allString = $this->strings->gtext('All');
+ }
- public function build($url, $popupArray = null, $type = 'exclusive', $pageArg = null) {
+ public function build($url, $popupArray = null, $type = 'exclusive', $pageArg = null, $printLegend = false) {
$this->url = $url;
$this->popupArray = $popupArray;
$this->pageArg = $pageArg;
$this->type = $type;
+ $this->printLegend = $printLegend;
foreach ($this->popupArray as $field => $popup)
{
@@ -70,6 +85,7 @@ class Helper_Popup extends Helper_Html {
}
}
+ //create the HTML of the popup
public function render() {
$returnString = null;
if ($this->checkViewArgs())
@@ -80,15 +96,26 @@ class Helper_Popup extends Helper_Html {
}
foreach ($this->popupArray as $field => $popup)
{
+ //default legend
+ $this->legend[$field] = Params::$nullQueryValue;
+
if ($this->type === 'exclusive') $this->unselect($field);
//save the value of the current ViewArg
$tempArg = $this->viewArgs[$field];
+ $this->legend[$field] = $tempArg;
+
$returnString .= "<ul onMouseOver='DisplayTag(this,\"block\");' onMouseOut='DisplayTag(this,\"none\");' id='menuBlock'><li class='innerItem'>".$popup->name."<ul class='innerList'>\n";
for ($i = 0; $i < count($popup->itemsValue); $i++)
{
$this->viewArgs[$field] = $popup->itemsValue[$i];
$viewStatus = Url::createUrl(array_values($this->viewArgs));
$returnString .= "<li><a href='".Url::getRoot($this->url).$viewStatus."'>".$popup->itemsName[$i]."</a></li>\n";
+
+ //set the legend
+ if (strcmp($popup->itemsValue[$i],$this->legend[$field]) === 0)
+ {
+ $this->legend[$field] = $popup->itemsName[$i];
+ }
}
$this->viewArgs[$field] = Params::$nullQueryValue;
$viewStatus = Url::createUrl(array_values($this->viewArgs));
@@ -96,6 +123,15 @@ class Helper_Popup extends Helper_Html {
$returnString .= "</ul>\n</li>\n</ul>\n";
$this->viewArgs[$field] = $tempArg;
}
+ if ($this->printLegend)
+ {
+ $returnString .= "<div class='popup_legend'>\n";
+ foreach ($this->popupArray as $field => $popup)
+ {
+ $returnString .= "<div class='popup_legend_item'>".$this->legend[$field]."</div>";
+ }
+ $returnString .= "</div>\n";
+ }
if (count($this->popupArray)>0) {
$returnString .= "<script type=\"text/javascript\" src=\"http://".DOMAIN_NAME."/Public/Js/DisplayTag.js\"></script>\n";
}