diff options
Diffstat (limited to 'h-source/Library/Helper/Popup.php')
-rwxr-xr-x | h-source/Library/Helper/Popup.php | 40 |
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"; } |