Cheetah
ChFdbDb.php
Go to the documentation of this file.
1 <?php
2 
8 ch_import('ChWsbTextDb');
9 
10 class ChFdbDb extends ChWsbTextDb
11 {
12  function __construct(&$oConfig)
13  {
14  parent::__construct($oConfig);
15  }
16  function getEntries($aParams = array())
17  {
18  switch($aParams['sample_type']) {
19  case 'id':
20  $sMethod = 'getRow';
21  $sSelectClause = "`te`.`content` AS `content`, ";
22  $sWhereClause = " AND `te`.`id`='" . $aParams['id'] . "'";
23  $sOrderClause = "`te`.`date` DESC";
24  $sLimitClause = "LIMIT 1";
25  break;
26  case 'uri':
27  $sMethod = 'getRow';
28  $sSelectClause = "`te`.`content` AS `content`, ";
29  $sWhereClause = " AND `te`.`uri`='" . $aParams['uri'] . "'";
30  $sOrderClause = "`te`.`date` DESC";
31  $sLimitClause = "LIMIT 1";
32  break;
33  case 'view':
34  $sMethod = 'getAll';
35  $sSelectClause = "`te`.`content` AS `content`, ";
36  $sWhereClause = " AND `te`.`uri`='" . $aParams['uri'] . "' AND `te`.`status`='" . CH_TD_STATUS_ACTIVE . "'";
37  $sOrderClause = "`te`.`date` DESC";
38  $sLimitClause = "LIMIT 1";
39  break;
40  case 'search_unit':
41  $sMethod = 'getAll';
42  $sSelectClause = "SUBSTRING(`te`.`content`, 1, " . $this->_oConfig->getSnippetLength() . ") AS `content`, ";
43  $sWhereClause = " AND `te`.`uri`='" . $aParams['uri'] . "'";
44  $sOrderClause = "`te`.`date` DESC";
45  $sLimitClause = "LIMIT 1";
46  break;
47  case 'archive':
48  $sMethod = 'getAll';
49  $sSelectClause = "SUBSTRING(`te`.`content`, 1, " . $this->_oConfig->getSnippetLength() . ") AS `content`, ";
50  $sWhereClause = " AND `te`.`status`='" . CH_TD_STATUS_ACTIVE . "'";
51  $sOrderClause = "`te`.`date` DESC";
52  $sLimitClause = "LIMIT " . $aParams['start'] . ', ' . $aParams['count'];
53  break;
54  case 'owner':
55  $sMethod = 'getAll';
56  $sSelectClause = "SUBSTRING(`te`.`content`, 1, " . $this->_oConfig->getSnippetLength() . ") AS `content`, ";
57  $sWhereClause = " AND `te`.`author_id`='" . $aParams['sample_params']['owner_id'] . "'";
58  $sOrderClause = "`te`.`date` DESC";
59  $sLimitClause = "LIMIT " . $aParams['start'] . ', ' . $aParams['count'];
60  break;
61  case 'admin':
62  $sMethod = 'getAll';
63  $sSelectClause = "SUBSTRING(`te`.`content`, 1, " . $this->_oConfig->getSnippetLength() . ") AS `content`, ";
64  $sWhereClause = !empty($aParams['filter_value']) ? " AND (`tp`.`NickName` LIKE '%" . $aParams['filter_value'] . "%' OR `te`.`caption` LIKE '%" . $aParams['filter_value'] . "%' OR `te`.`content` LIKE '%" . $aParams['filter_value'] . "%' OR `te`.`tags` LIKE '%" . $aParams['filter_value'] . "%')" : "";
65  $sOrderClause = "`te`.`date` DESC";
66  $sLimitClause = "LIMIT " . $aParams['start'] . ', ' . $aParams['count'];
67  break;
68  case 'all':
69  $sMethod = 'getAll';
70  $sSelectClause = "SUBSTRING(`te`.`content`, 1, " . $this->_oConfig->getSnippetLength() . ") AS `content`, ";
71  $sWhereClause = " AND `te`.`status`='" . CH_TD_STATUS_ACTIVE . "'";
72  $sOrderClause = "`te`.`date` DESC";
73  break;
74  }
75  $sSql = "SELECT
76  " . $sSelectClause . "
77  `te`.`id` AS `id`,
78  `tp`.`ID` AS `author_id`,
79  `tp`.`NickName` AS `author_username`,
80  `te`.`caption` AS `caption`,
81  `te`.`tags` AS `tags`,
82  `te`.`uri` AS `uri`,
83  `te`.`allow_comment_to` AS `allow_comment_to`,
84  `te`.`allow_vote_to` AS `allow_vote_to`,
85  `te`.`date` AS `date`,
86  DATE_FORMAT(FROM_UNIXTIME(`te`.`date`), '" . $this->_oConfig->getDateFormat() . "') AS `date_uf`,
87  UNIX_TIMESTAMP() - `te`.`date` AS `ago`,
88  `te`.`status` AS `status`
89  FROM `" . $this->_sPrefix . "entries` AS `te`
90  LEFT JOIN `Profiles` AS `tp` ON `te`.`author_id`=`tp`.`ID`
91  WHERE 1 " . $sWhereClause . "
92  ORDER BY " . $sOrderClause . " " . $sLimitClause;
93 
94  $aResult = $this->$sMethod($sSql);
95 
96  if(!in_array($aParams['sample_type'], array('id', 'uri', 'view')))
97  for($i = 0; $i < count($aResult); $i++)
98  $aResult[$i]['content'] = strip_tags($aResult[$i]['content']);
99 
100  return $aResult;
101  }
102 
103  function getCount($aParams = array())
104  {
105  if(!isset($aParams['sample_type']))
106  $aParams['sample_type'] = '';
107 
108  switch($aParams['sample_type']) {
109  case 'owner':
110  $sWhereClause = "`author_id`='" . $aParams['sample_params']['owner_id'] . "' AND `status`='" . CH_TD_STATUS_ACTIVE . "'";
111  break;
112  case 'admin':
113  $sWhereClause = !empty($aParams['filter_value']) ? "(`caption` LIKE '%" . $aParams['filter_value'] . "%' OR `content` LIKE '%" . $aParams['filter_value'] . "%' OR `tags` LIKE '%" . $aParams['filter_value'] . "%')" : "1";
114  break;
115  default:
116  $sWhereClause = "`status`='" . CH_TD_STATUS_ACTIVE . "'";
117  break;
118  }
119  $sSql = "SELECT COUNT(`id`) FROM `" . $this->_sPrefix . "entries` WHERE " . $sWhereClause . " LIMIT 1";
120  return (int)$this->getOne($sSql);
121  }
122 }
ChFdbDb\getEntries
getEntries($aParams=array())
Definition: ChFdbDb.php:16
ChFdbDb\__construct
__construct(&$oConfig)
Definition: ChFdbDb.php:12
ChFdbDb
Definition: ChFdbDb.php:11
ch_import
ch_import($sClassName, $aModule=array())
Definition: utils.inc.php:1218
$aResult
$aResult
Definition: index.php:19
php
ChFdbDb\getCount
getCount($aParams=array())
Definition: ChFdbDb.php:103
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
empty
Attr AllowedRel this is empty
Definition: Attr.AllowedRel.txt:7