8 require_once(
'ChWsbModuleDb.php');
30 parent::__construct($oConfig);
31 $this->_oConfig = &$oConfig;
33 $sPrefix = $this->_oConfig->getMainPrefix();
34 if($sPrefix ==
'ch_sounds') {
35 $this->aFileFields = array(
37 'Categories'=>
'Categories',
38 'medProfId'=>
'Owner',
39 'medTitle' =>
'Title',
40 'thumbUrl' =>
'ThumbUrl',
42 'medDesc' =>
'Description',
45 'medViews' =>
'Views',
46 'Approved' =>
'Status',
47 'Featured' =>
'Featured',
49 'RateCount' =>
'RateCount',
52 $this->aFileFields = array(
54 'Categories'=>
'Categories',
55 'medProfId'=>
'Owner',
56 'medTitle' =>
'Title',
58 'medDesc' =>
'Description',
61 'medViews' =>
'Views',
62 'Approved' =>
'Status',
63 'Featured' =>
'Featured',
65 'RateCount' =>
'RateCount',
69 $this->aFavoriteFields = array(
71 'ownerId' =>
'Profile',
79 $sqlQuery =
"UPDATE `{$this->sFileTable}` SET `$sField` = '$sValue' WHERE `{$this->aFileFields['medID']}`='$iFile'";
80 return $this->
query($sqlQuery);
105 $iFile = (int)$iFile;
108 $sqlQuery =
"INSERT INTO `{$this->sFavoriteTable}` (`{$this->aFavoriteFields['fileId']}`, `{$this->aFavoriteFields['ownerId']}`, `{$this->aFavoriteFields['favDate']}`)
109 VALUES('$iFile', '{$this->iViewer}', '" .
time() .
"')";
110 $iRes = (int)$this->
query($sqlQuery);
119 $iFile = (int)$iFile;
122 $sqlQuery =
"DELETE FROM `{$this->sFavoriteTable}`
123 WHERE `{$this->aFavoriteFields['fileId']}`='$iFile'
124 AND `{$this->aFavoriteFields['ownerId']}`='{$this->iViewer}'";
125 $iRes = (int)$this->
query($sqlQuery);
134 $iFile = (int)$iFile;
135 $sqlCheck =
"SELECT COUNT(*) FROM `{$this->sFavoriteTable}`
136 WHERE `{$this->aFavoriteFields['fileId']}`='$iFile'
137 AND `{$this->aFavoriteFields['ownerId']}`='{$this->iViewer}'";
138 $iCheck = (int)$this->
getOne($sqlCheck);
139 return $iCheck == 0 ?
false :
true;
144 $iMember = (int)$iMember;
145 $iFrom = (int)$iFrom;
147 $sqlQuery =
"SELECT `{$this->aFavoriteFields['fileId']}` FROM `{$this->sFavoriteTable}` WHERE `{$this->aFavoriteFields['ownerId']}`= ? LIMIT $iFrom, $iPerPage";
148 return $this->
getAll($sqlQuery, [$iMember]);
153 $iFile = (int)$iFile;
154 $sqlQuery =
"SELECT COUNT(*) FROM `{$this->sFavoriteTable}` WHERE `{$this->aFavoriteFields['fileId']}`='$iFile'";
155 return (
int)$this->
getOne($sqlQuery);
160 $aFields = array(
'medID',
'Categories',
'medProfId',
'medTitle',
'medUri',
'Rate');
163 if (isset($this->aFileFields[$sValue]))
164 $sqlFields .=
"a.`{$this->aFileFields[$sValue]}`, ";
166 $sqlQuery =
"SELECT $sqlFields DAYOFMONTH(FROM_UNIXTIME(a.`{$this->aFileFields['medDate']}`)) AS `Day`, c.*
167 FROM `{$this->sFileTable}` as a
168 LEFT JOIN `sys_albums_objects` as b ON b.`id_object` = a.`{$this->aFileFields['medID']}`
169 INNER JOIN `sys_albums` as c ON c.`ID` = b.`id_album` AND c.`Type` = '{$this->_oConfig->getMainPrefix()}'
170 WHERE a.`{$this->aFileFields['medDate']}` >= UNIX_TIMESTAMP('$iYear-$iMonth-1')
171 AND a.`{$this->aFileFields['medDate']}` < UNIX_TIMESTAMP('$iNextYear-$iNextMonth-1')
172 AND a.`{$this->aFileFields['Approved']}` = '$sStatus'";
174 $sqlQuery .=
" AND c.`AllowAlbumView` ";
179 return $this->
getAll ($sqlQuery);
203 $sqlQuery =
"UPDATE";
204 $sqlCond =
" WHERE `{$this->aFileFields['medID']}`='$iFileId'";
206 $sqlQuery =
"INSERT INTO ";
208 $aData[
'Hash'] = md5(microtime());
210 $sqlQuery .=
"`{$this->sFileTable}` SET ";
211 foreach ($aData
as $sKey => $sValue) {
212 if (array_key_exists($sKey, $this->aFileFields))
215 return $this->
query(trim($sqlQuery,
', ') . $sqlCond);
220 $iFile = (int)$iFile;
222 $sqlQuery =
"DELETE FROM `{$this->sFavoriteTable}` WHERE `{$this->aFavoriteFields['fileId']}`='$iFile'";
223 $this->
query($sqlQuery);
225 $sqlQuery =
"DELETE FROM `{$this->sFileTable}` WHERE `{$this->aFileFields['medID']}`='$iFile'";
226 return $this->
query($sqlQuery);
233 foreach ($aParams
as $sField => $mixedParam) {
237 $oAlbum =
new ChWsbAlbums($this->_oConfig->getMainPrefix(), $this->iViever);
238 $sqlJoin =
"LEFT JOIN `{$oAlbum->sAlbumObjectsTable}` ON `{$oAlbum->sAlbumObjectsTable}`.`id_object`=`{$this->sFileTable}`.`{$this->aFileFields['medID']}`";
239 $sqlWhere .=
" AND `{$oAlbum->sAlbumObjectsTable}`.`id_album` = " . (int)$mixedParam;
243 $oAlbum =
new ChWsbAlbums($this->_oConfig->getMainPrefix(), $this->iViever);
244 $sqlJoin =
"LEFT JOIN `{$oAlbum->sAlbumObjectsTable}` ON `{$oAlbum->sAlbumObjectsTable}`.`id_object`=`{$this->sFileTable}`.`{$this->aFileFields['medID']}`
245 LEFT JOIN `{$oAlbum->sAlbumTable}` ON `{$oAlbum->sAlbumTable}`.`ID`=`{$oAlbum->sAlbumObjectsTable}`.`id_album`";
246 $sFieldName = str_replace(
'album',
'', $sField);
247 $sqlWhere .=
" AND `{$oAlbum->sAlbumTable}`.`Type` = '{$this->_oConfig->getMainPrefix()}' ";
248 if (in_array($sFieldName, $oAlbum->aAlbumFields))
249 $sqlWhere .=
"AND `{$oAlbum->sAlbumTable}`.`$sFieldName` = '$mixedParam'";
252 if (isset($this->aFileFields[$sField])) {
253 $mixedParam = is_array($mixedParam) ? $mixedParam : array($mixedParam);
255 foreach ($mixedParam
as $sParam)
256 $sqlList .=
"'$sParam', ";
257 $sqlList = trim($sqlList,
', ');
258 $sqlWhere .=
" AND `{$this->sFileTable}`.`{$this->aFileFields[$sField]}` IN($sqlList)";
263 $sqlQuery =
"SELECT COUNT(`{$this->sFileTable}`.`{$this->aFileFields['medID']}`) FROM `{$this->sFileTable}` $sqlJoin WHERE $sqlWhere";
264 return $this->
getOne($sqlQuery);
272 $sqlQuery =
"SELECT COUNT(`{$this->aFileFields['medID']}`) FROM `{$this->sFileTable}` WHERE `{$this->aFileFields['medProfId']}`='$iProfileId' AND `{$this->aFileFields['Approved']}`='$sStatus'";
273 return $this->
getOne($sqlQuery);
281 $sqlQuery =
"SELECT `{$this->aFileFields['medID']}` FROM `{$this->sFileTable}` WHERE `{$this->aFileFields['medProfId']}`='$iProfileId'";
282 return $this->
getPairs($sqlQuery, $this->aFileFields[
'medID'], $this->aFileFields[
'medID']);
289 if (isset($aIdent[
'fileUri']))
291 elseif (isset($aIdent[
'fileId']))
292 $sqlCondition =
"`{$this->sFileTable}`.`{$this->aFileFields['medID']}`='" . (int)$aIdent[
'fileId'] .
"'";
297 $aFields = array_keys($this->aFileFields);
301 if (isset($this->aFileFields[$sValue]))
302 $sqlFields .=
"`{$this->sFileTable}`.`{$this->aFileFields[$sValue]}` as `$sValue`, ";
307 $oAlbum =
new ChWsbAlbums($this->_oConfig->getMainPrefix());
309 INNER JOIN `{$oAlbum->sAlbumObjectsTable}` ON `{$oAlbum->sAlbumObjectsTable}`.`id_object`=`{$this->sFileTable}`.`{$this->aFileFields['medID']}`
310 INNER JOIN `{$oAlbum->sAlbumTable}` ON (`{$oAlbum->sAlbumTable}`.`ID`=`{$oAlbum->sAlbumObjectsTable}`.`id_album` AND `{$oAlbum->sAlbumTable}`.`Type`='" . $this->_oConfig->getMainPrefix() .
"')
312 $sqlAlbumFields =
"`{$oAlbum->sAlbumTable}`.`ID` as `albumId`, `{$oAlbum->sAlbumTable}`.`Caption` as `albumCaption`, `{$oAlbum->sAlbumTable}`.`Uri` as `albumUri`, `{$oAlbum->sAlbumTable}`.`AllowAlbumView`, `{$oAlbum->sAlbumObjectsTable}`.`obj_order`";
314 $sqlCount =
"COUNT(`share1`.`{$this->aFileFields['medID']}`) as `Count`, ";
315 $sqlCountJoin =
"LEFT JOIN `{$this->sFileTable}` as `share1` USING (`{$this->aFileFields['medProfId']}`)";
316 $sqlGroup =
"GROUP BY `share1`.`{$this->aFileFields['medProfId']}`";
318 $sqlFields = rtrim($sqlFields,
', ');
319 $sqlQuery =
"SELECT $sqlFields $sqlCount $sqlAlbumFields
320 FROM `{$this->sFileTable}`
323 WHERE $sqlCondition $sqlGroup LIMIT 1";
324 return $this->
getRow($sqlQuery);
334 $sqlQuery =
"SELECT `ID`, `NickName` FROM `Profiles` WHERE `NickName` LIKE ?";
335 return $this->
getAll($sqlQuery, [
"{$sArg}%"]);