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