1: <?php
2:
3:
4:
5:
6: class TabsB extends Control{
7: private $activeli = 1;
8: private $disabletabs = array();
9: private $activeblock = 1;
10:
11: public function oncreate($element) {
12: global $Client;
13: if($Client->request($this->name .'li')!="" && $Client->request($this->name .'li')!="null"){
14: $this->activeli = $Client->request($this->name . 'li');
15: }
16: }
17: public function disableTabs($param) {
18: $arr = explode(",",$param);
19: foreach ($arr as $key => $value) {
20: $this->disabletabs[$value] = $value;
21: }
22: }
23: public function onparse($event,$element) {
24: global $ctrl;
25: // $ctrl->debug->println("activeBlock set");
26: static $countli;
27: if($element->tag=="li"){
28: $countli += 1;
29: $element->setAttribute('data-linum',$countli);
30: if(isset($this->disabletabs[$countli])){
31: $element->attr['class'] = "disabled";
32: }
33: else if($this->activeli == $countli){
34: $cls = "";
35: if(isset($element->attr['class'])){
36: $cls = $element->attr['class'];
37: }
38: $element->attr['class'] = "active " . $cls ;
39: $this->activeblock = $countli;
40: }
41: }else if($element->tag=="a"){
42: $element->setAttribute('data-linum',$countli);
43: if($this->activeblock == $countli){
44: $this->activeblock = substr($element->attr['href'],1);
45: }
46: }else if(isset($element->attr['id']) && $element->attr['id'] == $this->activeblock){
47: $cls = "";
48: if(isset($element->attr['class'])){
49: $cls = $element->attr['class'];
50: }
51: $element->attr['class'] = $cls . " in active" ;
52:
53: }
54: }
55: public function onjsrender() {
56: addHeaderJSFunctionCode('ready', 'tab1', ' $(".nav-tabs").on(\'show.bs.tab\', "li.disabled a", function(event) {
57: event.stopImmediatePropagation();
58: return false;
59: });
60: $(".nav-tabs").off(\'show.bs.tab\', "li:not(.disabled) a");
61: $(\'.nav-tabs\').on(\'shown.bs.tab\', "li:not(.disabled) a", function(e){
62: activeTab = $(e.target).data("linum");
63: previousTab = $(e.relatedTarget).data("linum");
64: });');
65: addHeaderJSCode('tab1', ' activeTab = "'.$this->activeli.'"; previousTab = "null";');
66: }
67: public function onrender(){
68: global $ctrl;
69:
70: $this->parseMe();
71: }
72:
73: }
74: