-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathSorter.php
More file actions
120 lines (104 loc) · 3.79 KB
/
Sorter.php
File metadata and controls
120 lines (104 loc) · 3.79 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
<?php
//Sorter Class @0-2DDC3DF7
class clsSorter
{
public $ComponentType = "Sorter";
public $OrderDirection;
public $OrderColumn;
public $IsOn;
public $IsAsc;
public $TargetName;
public $SorterName;
public $FileName;
public $Visible;
public $CCSEvents;
public $CCSEventResult;
public $Parent;
public $Attributes;
function clsSorter($ComponentName, $SorterName, $FileName, & $Parent)
{
$this->TargetName = $ComponentName;
$this->SorterName = $SorterName;
$this->FileName = $FileName;
$this->Visible = true;
$this->CCSEvents = array();
$this->Parent = & $Parent;
$this->Attributes = new clsAttributes($this->SorterName . ":");
$this->OrderColumn = CCGetParam($this->TargetName . "Order", "");
$this->OrderDirection = CCGetParam($this->TargetName . "Dir", "");
$this->IsOn = ($this->OrderColumn == $this->SorterName);
$this->IsAsc = (!strlen($this->OrderDirection) || $this->OrderDirection == "ASC");
}
function GetLink($link)
{
global $CCSUseAmp;
$link = !$CCSUseAmp ? $link : str_replace('&', '&', $link);
return $link;
}
function Show()
{
global $Tpl;
$this->EventResult = CCGetEvent($this->CCSEvents, "BeforeShow", $this);
if(!$this->Visible) return;
$this->Attributes->Show();
$QueryString = CCGetQueryString("QueryString", Array($this->TargetName . "Page", "ccsForm"));
$SorterBlock = "Sorter " . $this->SorterName;
$AscOnPath = $SorterBlock . "/Asc_On";
$AscOffPath = $SorterBlock . "/Asc_Off";
$DescOnPath = $SorterBlock . "/Desc_On";
$DescOffPath = $SorterBlock . "/Desc_Off";
$QueryString = CCAddParam($QueryString, $this->TargetName . "Order", $this->SorterName);
$AscOnExist = $Tpl->BlockExists($AscOnPath);
$AscOffExist = $Tpl->BlockExists($AscOffPath);
$DescOnExist = $Tpl->BlockExists($DescOnPath);
$DescOffExist = $Tpl->BlockExists($DescOffPath);
if($this->IsOn)
{
if($this->IsAsc)
{
$this->OrderDirection = "DESC";
if($AscOnExist) $Tpl->Parse($AscOnPath, false);
if($AscOffExist) $Tpl->SetVar($AscOffPath, "");
if($DescOnExist) $Tpl->SetVar($DescOnPath, "");
if($DescOffExist)
{
$Tpl->SetVar("Desc_URL", $this->GetLink($this->FileName . "?" . CCAddParam($QueryString, $this->TargetName . "Dir", "DESC")));
$Tpl->Parse($DescOffPath, false);
}
}
Else
{
$this->OrderDirection = "ASC";
if($AscOnExist) $Tpl->SetVar($AscOnPath, "");
if($AscOffExist)
{
$Tpl->SetVar("Asc_URL",$this->GetLink( $this->FileName . "?" . CCAddParam($QueryString, $this->TargetName . "Dir", "ASC")));
$Tpl->Parse($AscOffPath, false);
}
if($DescOnExist) $Tpl->Parse($DescOnPath, false);
if($DescOffExist) $Tpl->SetVar($DescOffPath, "");
}
}
else
{
$this->OrderDirection = "ASC";
if($AscOnExist) $Tpl->SetVar($AscOnPath, "");
if($AscOffExist)
{
$Tpl->SetVar("Asc_URL", $this->GetLink($this->FileName . "?" . CCAddParam($QueryString, $this->TargetName . "Dir", "ASC")));
$Tpl->Parse($AscOffPath, false);
}
if($DescOnExist) $Tpl->SetVar($DescOnPath, "");
if($DescOffExist)
{
$Tpl->SetVar("Desc_URL", $this->GetLink($this->FileName . "?" . CCAddParam($QueryString, $this->TargetName . "Dir", "DESC")));
$Tpl->Parse($DescOffPath, false);
}
}
$QueryString = CCAddParam($QueryString, $this->TargetName . "Dir", $this->OrderDirection);
$Tpl->SetVar("Sort_URL", $this->GetLink($this->FileName . "?" . $QueryString));
$Tpl->Parse($SorterBlock, false);
}
}
//End Sorter Class
?>