Cheetah
inc
classes
ChWsbTextDb.php
Go to the documentation of this file.
1
<?
php
2
8
ch_import
(
'ChWsbModuleDb'
);
9
10
class
ChWsbTextDb
extends
ChWsbModuleDb
11
{
12
var
$_oConfig
;
13
14
function
__construct
(&$oConfig)
15
{
16
parent::__construct($oConfig);
17
18
$this->_oConfig = &$oConfig;
19
}
23
function
getEntries
($aParams = array())
24
{
25
$sMethod =
'getAll'
;
26
$sSelectClause = $sWhereClause = $sOrderClause = $sLimitClause =
""
;
27
switch
($aParams[
'sample_type'
]) {
28
case
'id'
:
29
$sMethod =
'getRow'
;
30
$sWhereClause =
" AND `te`.`id`='"
. $aParams[
'id'
] .
"'"
;
31
$sOrderClause =
"`te`.`when` DESC"
;
32
$sLimitClause =
"LIMIT 1"
;
33
break
;
34
case
'uri'
:
35
$sMethod =
'getRow'
;
36
$sWhereClause =
" AND `te`.`uri`='"
. $aParams[
'uri'
] .
"'"
;
37
$sOrderClause =
"`te`.`when` DESC"
;
38
$sLimitClause =
"LIMIT 1"
;
39
break
;
40
case
'view'
:
41
$sWhereClause =
" AND `te`.`uri`='"
. $aParams[
'uri'
] .
"' AND `te`.`status`='"
.
CH_TD_STATUS_ACTIVE
.
"'"
;
42
$sOrderClause =
"`te`.`when` DESC"
;
43
$sLimitClause =
"LIMIT 1"
;
44
break
;
45
case
'search_unit'
:
46
$sWhereClause =
" AND `te`.`uri`='"
. $aParams[
'uri'
] .
"'"
;
47
$sOrderClause =
"`te`.`when` DESC"
;
48
$sLimitClause =
"LIMIT 1"
;
49
break
;
50
case
'archive'
:
51
$sWhereClause =
" AND `te`.`status`='"
.
CH_TD_STATUS_ACTIVE
.
"'"
;
52
$sOrderClause =
"`te`.`when` DESC"
;
53
$sLimitClause =
"LIMIT "
. (int)$aParams[
'start'
] .
', '
. (
int
)$aParams[
'count'
];
54
break
;
55
case
'featured'
:
56
$sWhereClause =
" AND `te`.`status`='"
.
CH_TD_STATUS_ACTIVE
.
"' AND `te`.`featured`='1'"
;
57
$sOrderClause =
"`te`.`when` DESC"
;
58
$sLimitClause =
"LIMIT "
. (int)$aParams[
'start'
] .
', '
. (
int
)$aParams[
'count'
];
59
break
;
60
case
'top_rated'
:
61
$sWhereClause =
" AND `te`.`status`='"
.
CH_TD_STATUS_ACTIVE
.
"'"
;
62
$sOrderClause =
"`te`.`rate` DESC"
;
63
$sLimitClause =
"LIMIT "
. (int)$aParams[
'start'
] .
', '
. (
int
)$aParams[
'count'
];
64
break
;
65
case
'popular'
:
66
$sWhereClause =
" AND `te`.`status`='"
.
CH_TD_STATUS_ACTIVE
.
"'"
;
67
$sOrderClause =
"`te`.`view_count` DESC"
;
68
$sLimitClause =
"LIMIT "
. (int)$aParams[
'start'
] .
', '
. (
int
)$aParams[
'count'
];
69
break
;
70
case
'admin'
:
71
$sWhereClause = !
empty
($aParams[
'filter_value'
]) ?
" AND (`caption` LIKE '%"
. $aParams[
'filter_value'
] .
"%' OR `content` LIKE '%"
. $aParams[
'filter_value'
] .
"%' OR `tags` LIKE '%"
. $aParams[
'filter_value'
] .
"%')"
:
""
;
72
$sOrderClause =
"`te`.`when` DESC"
;
73
$sLimitClause =
"LIMIT "
. $aParams[
'start'
] .
', '
. $aParams[
'count'
];
74
break
;
75
case
'all'
:
76
$sWhereClause =
" AND `te`.`status`='"
.
CH_TD_STATUS_ACTIVE
.
"'"
;
77
$sOrderClause =
"`te`.`when` DESC"
;
78
break
;
79
}
80
$sSql =
"SELECT
81
"
. $sSelectClause .
"
82
`te`.`id` AS `id`,
83
`te`.`caption` AS `caption`,
84
`te`.`snippet` AS `snippet`,
85
`te`.`content` AS `content`,
86
`te`.`when` AS `when_uts`,
87
DATE_FORMAT(FROM_UNIXTIME(`te`.`when`), '%Y-%m-%d %H:%i') AS `when`,
88
DATE_FORMAT(FROM_UNIXTIME(`te`.`when`), '"
. $this->_oConfig->getDateFormat() .
"') AS `when_uf`,
89
UNIX_TIMESTAMP() - `te`.`when` AS `ago`,
90
`te`.`uri` AS `uri`,
91
`te`.`tags` AS `tags`,
92
`te`.`categories` AS `categories`,
93
`te`.`comment` AS `comment`,
94
`te`.`vote` AS `vote`,
95
`te`.`date` AS `date`,
96
`te`.`status` AS `status`,
97
`te`.`featured` AS `featured`,
98
`te`.`cmts_count` AS `cmts_count`
99
FROM `"
. $this->_sPrefix .
"entries` AS `te`
100
WHERE 1 "
. $sWhereClause .
"
101
ORDER BY "
. $sOrderClause .
" "
. $sLimitClause;
102
$aResult
= $this->$sMethod($sSql);
103
104
if
(!in_array($aParams[
'sample_type'
], array(
'id'
,
'uri'
,
'view'
))) {
105
$iSnippetLen = $this->_oConfig->getSnippetLength();
106
107
for
($i = 0; $i < count(
$aResult
); $i++)
108
$aResult
[$i][
'content'
] = mb_substr(str_replace(array(
' '
,
'<'
,
'>'
), array(
' '
,
''
,
''
), strip_tags(
$aResult
[$i][
'snippet'
])), 0, $iSnippetLen);
109
}
110
111
return
$aResult
;
112
}
119
function
deleteEntries
($mixed)
120
{
121
if
(!is_array($mixed))
122
$mixed = array($mixed);
123
124
$sSql =
"DELETE FROM `"
. $this->_sPrefix .
"entries` WHERE `id` IN ('"
. implode(
"', '"
, $mixed) .
"')"
;
125
return
$this->
query
($sSql) > 0;
126
}
134
function
updateEntry
($mixed, $aValues)
135
{
136
if
(!is_array($mixed))
137
$mixed = array($mixed);
138
139
$sSql =
""
;
140
foreach
($aValues
as
$sKey => $sValue)
141
$sSql .=
"`"
. $sKey .
"`='"
. $sValue .
"', "
;
142
$sSql =
"UPDATE `"
. $this->_sPrefix .
"entries` SET "
. substr($sSql, 0, -2) .
" WHERE `id` IN ('"
. implode(
"', '"
, $mixed) .
"')"
;
143
return
$this->
query
($sSql) > 0;
144
}
145
function
getCount
($aParams = array())
146
{
147
if
(!isset($aParams[
'sample_type'
]))
148
$aParams[
'sample_type'
] =
''
;
149
150
switch
($aParams[
'sample_type'
]) {
151
case
'featured'
:
152
$sWhereClause =
"`status`='"
.
CH_TD_STATUS_ACTIVE
.
"' AND `featured`='1'"
;
153
break
;
154
case
'admin'
:
155
$sWhereClause = !
empty
($aParams[
'filter_value'
]) ?
"(`caption` LIKE '%"
. $aParams[
'filter_value'
] .
"%' OR `content` LIKE '%"
. $aParams[
'filter_value'
] .
"%' OR `tags` LIKE '%"
. $aParams[
'filter_value'
] .
"%')"
:
"1"
;
156
break
;
157
default
:
158
$sWhereClause =
"`status`='"
.
CH_TD_STATUS_ACTIVE
.
"'"
;
159
break
;
160
}
161
$sSql =
"SELECT COUNT(`id`) FROM `"
. $this->_sPrefix .
"entries` WHERE "
. $sWhereClause .
" LIMIT 1"
;
162
return
(
int
)$this->
getOne
($sSql);
163
}
164
function
getByMonth
($iYear, $iMonth, $iNextYear, $iNextMonth)
165
{
166
$sSql =
"SELECT
167
*,
168
DAYOFMONTH(FROM_UNIXTIME(`when`)) AS `Day`
169
FROM `"
. $this->_sPrefix .
"entries`
170
WHERE `when` >= UNIX_TIMESTAMP('"
. $iYear .
"-"
. $iMonth .
"-1') AND `when` < UNIX_TIMESTAMP('"
. $iNextYear .
"-"
. $iNextMonth .
"-1') AND `status` = '0'"
;
171
return
$this->
getAll
($sSql);
172
}
173
function
publish
(&$aIds)
174
{
175
$aIds = $this->
getColumn
(
"SELECT
176
`id`
177
FROM `"
. $this->_sPrefix .
"entries`
178
WHERE `status`='"
.
CH_TD_STATUS_PENDING
.
"' AND `when`<=UNIX_TIMESTAMP()"
);
179
if
(
empty
($aIds))
180
return
false
;
181
182
$iStatus = $this->_oConfig->isAutoapprove() ?
CH_TD_STATUS_ACTIVE
:
CH_TD_STATUS_INACTIVE
;
183
return
(
int
)$this->
query
(
"UPDATE `"
. $this->_sPrefix .
"entries`
184
SET `status`='"
. $iStatus .
"'
185
WHERE `id` IN ('"
. implode(
"','"
, $aIds) .
"')"
) > 0;
186
}
187
}
ChWsbTextDb\getCount
getCount($aParams=array())
Definition:
ChWsbTextDb.php:145
ChWsbTextDb\$_oConfig
$_oConfig
Definition:
ChWsbTextDb.php:12
ch_import
ch_import($sClassName, $aModule=array())
Definition:
utils.inc.php:1218
$aResult
$aResult
Definition:
index.php:19
php
ChWsbModuleDb
Definition:
ChWsbModuleDb.php:12
ChWsbDb\getAll
getAll($sQuery, $aBindings=[], $iFetchType=PDO::FETCH_ASSOC)
Definition:
ChWsbDb.php:206
ChWsbTextDb\publish
publish(&$aIds)
Definition:
ChWsbTextDb.php:173
ChWsbTextDb\getEntries
getEntries($aParams=array())
Definition:
ChWsbTextDb.php:23
ChWsbTextDb\deleteEntries
deleteEntries($mixed)
Definition:
ChWsbTextDb.php:119
ChWsbDb\query
query($sQuery, $aBindings=[])
Definition:
ChWsbDb.php:386
CH_TD_STATUS_INACTIVE
const CH_TD_STATUS_INACTIVE
Definition:
ChWsbTextData.php:13
ChWsbTextDb\getByMonth
getByMonth($iYear, $iMonth, $iNextYear, $iNextMonth)
Definition:
ChWsbTextDb.php:164
ChWsbDb\getOne
getOne($sQuery, $aBindings=[], $iIndex=0)
Definition:
ChWsbDb.php:263
CH_TD_STATUS_ACTIVE
const CH_TD_STATUS_ACTIVE
Definition:
ChWsbTextData.php:12
ChWsbTextDb
Definition:
ChWsbTextDb.php:11
ChWsbTextDb\__construct
__construct(&$oConfig)
Definition:
ChWsbTextDb.php:14
ChWsbTextDb\updateEntry
updateEntry($mixed, $aValues)
Definition:
ChWsbTextDb.php:134
empty
Attr AllowedRel this is empty
Definition:
Attr.AllowedRel.txt:7
as
as
Definition:
Filter.ExtractStyleBlocks.Escaping.txt:10
CH_TD_STATUS_PENDING
const CH_TD_STATUS_PENDING
Definition:
ChWsbTextData.php:14
ChWsbDb\getColumn
getColumn($sQuery, $aBindings=[])
Definition:
ChWsbDb.php:243
Generated by
1.8.20