Cheetah
ChFilesSearch.php
Go to the documentation of this file.
1 <?php
2 
8 ch_import('ChTemplSearchResult');
9 
11 {
12  var $oModule;
14  var $bAdminMode = false;
15  function __construct ($sParamName = '', $sParamValue = '', $sParamValue1 = '', $sParamValue2 = '')
16  {
17  parent::__construct();
18  // main settings
19  $this->aCurrent = array(
20  'name' => 'ch_files',
21  'title' => '_ch_files',
22  'table' => 'ch_files_main',
23  'ownFields' => array('ID', 'Title', 'Uri', 'Desc', 'Date', 'Size', 'Ext', 'Views', 'Rate', 'RateCount', 'Type'),
24  'searchFields' => array('Title', 'Tags', 'Desc', 'Categories'),
25  'join' => array(
26  'profile' => array(
27  'type' => 'left',
28  'table' => 'Profiles',
29  'mainField' => 'Owner',
30  'onField' => 'ID',
31  'joinFields' => array('NickName')
32  ),
33  'icon' => array(
34  'type' => 'left',
35  'table' => 'ch_files_types',
36  'mainField' => 'Type',
37  'onField' => 'Type',
38  'joinFields' => array('Icon')
39  ),
40  'albumsObjects' => array(
41  'type' => 'left',
42  'table' => 'sys_albums_objects',
43  'mainField' => 'ID',
44  'onField' => 'id_object',
45  'joinFields' => ''
46  ),
47  'albums' => array(
48  'type' => 'left',
49  'table' => 'sys_albums',
50  'mainField' => 'id_album',
51  'onField' => 'ID',
52  'joinFields' => array('AllowAlbumView'),
53  'mainTable' => 'sys_albums_objects'
54  )
55  ),
56  'restriction' => array(
57  'activeStatus' => array('value'=>'approved', 'field'=>'Status', 'operator'=>'=', 'paramName' => 'status'),
58  'owner' => array('value'=>'', 'field'=>'NickName', 'operator'=>'=', 'paramName'=>'ownerName', 'table'=>'Profiles'),
59  'ownerStatus' => array('value'=>array('Rejected', 'Suspended'), 'operator'=>'not in', 'paramName'=>'ownerStatus', 'table'=>'Profiles', 'field'=>'Status'),
60  'tag' => array('value'=>'', 'field'=>'Tags', 'operator'=>'against', 'paramName'=>'tag'),
61  'category' => array('value'=>'', 'field'=>'Categories', 'operator'=>'against', 'paramName'=>'categoryUri'),
62  'id' => array('value' => '', 'field' => 'ID', 'operator' => 'in'),
63  'allow_view' => array('value'=>'', 'field'=>'AllowAlbumView', 'operator'=>'in', 'table'=> 'sys_albums'),
64  'not_allow_view' => array('value'=>'', 'field'=>'AllowAlbumView', 'operator'=>'not in', 'table'=> 'sys_albums'),
65  'album_status' => array('value'=>'active', 'field'=>'Status', 'operator'=>'=', 'table'=> 'sys_albums'),
66  'albumType' => array('value'=>'', 'field'=>'Type', 'operator'=>'=', 'paramName'=>'albumType', 'table'=>'sys_albums'),
67  ),
68  'paginate' => array('perPage' => 10, 'page' => 1, 'totalNum' => 10, 'totalPages' => 1),
69  'sorting' => 'last',
70  'view' => 'full',
71  'ident' => 'ID',
72  'rss' => array(
73  'title' => _t('_ch_files'),
74  'link' => '',
75  'image' => '',
76  'profile' => 0,
77  'fields' => array (
78  'Link' => '',
79  'Title' => 'title',
80  'DateTimeUTS' => 'date',
81  'Desc' => 'desc',
82  'Image' => '',
83  ),
84  ),
85  );
86 
87  // redeclaration some unique fav fields
88  $this->aAddPartsConfig['favorite'] = array(
89  'type' => 'inner',
90  'table' => 'ch_files_favorites',
91  'mainField' => 'ID',
92  'onField' => 'ID',
93  'userField' => 'Profile',
94  'joinFields' => ''
95  );
96 
97  $this->oModule = ChWsbModule::getInstance('ChFilesModule');
98  $this->oTemplate = $this->oModule->_oTemplate;
99  $this->oModule->_oTemplate->addCss('search.css');
100  $this->aConstants['filesUrl'] = $this->oModule->_oConfig->getFilesUrl();
101  $this->aConstants['filesDir'] = $this->oModule->_oConfig->getFilesPath();
102  $this->aConstants['filesInAlbumCover'] = 32;
103  $this->aConstants['picPostfix'] = $this->oModule->_oConfig->aFilePostfix;
104 
105  //permalinks generation
106  $this->aConstants['linksTempl'] = array(
107  'home' => 'home',
108  'file' => 'view/{uri}',
109  'category' => 'browse/category/{uri}',
110  'browseAll' => 'browse/',
111  'browseUserAll' => 'albums/browse/owner/{uri}',
112  'browseAllTop' => 'browse/top',
113  'tag' => 'browse/tag/{uri}',
114  'album' => 'browse/album/{uri}',
115  'add' => 'browse/my/add'
116  );
117 
118  $this->aCurrent['restriction']['albumType']['value'] = $this->aCurrent['name'];
119 
120  //additional modes for browse
121  switch ($sParamName) {
122  case 'calendar':
123  $this->aCurrent['restriction']['calendar-min'] = array('value' => "UNIX_TIMESTAMP('{$sParamValue}-{$sParamValue1}-{$sParamValue2} 00:00:00')", 'field' => 'Date', 'operator' => '>=', 'no_quote_value' => true);
124  $this->aCurrent['restriction']['calendar-max'] = array('value' => "UNIX_TIMESTAMP('{$sParamValue}-{$sParamValue1}-{$sParamValue2} 23:59:59')", 'field' => 'Date', 'operator' => '<=', 'no_quote_value' => true);
125  break;
126  case 'top':
127  $this->aCurrent['sorting'] = 'top';
128  break;
129  case 'popular':
130  $this->aCurrent['sorting'] = 'popular';
131  break;
132  case 'featured':
133  $this->aCurrent['restriction']['featured'] = array(
134  'value'=>'1', 'field'=>'Featured', 'operator'=>'=', 'paramName'=>'ch_files_mode'
135  );
136  break;
137  case 'favorited':
138  if (isset($this->aAddPartsConfig['favorite']) && !empty($this->aAddPartsConfig['favorite']) && getLoggedId() != 0) {
139  $this->aCurrent['join']['favorite'] = $this->aAddPartsConfig['favorite'];
140  $this->aCurrent['restriction']['fav'] = array(
141  'value' => getLoggedId(),
142  'field' => $this->aAddPartsConfig['favorite']['userField'],
143  'operator' => '=',
144  'table' => $this->aAddPartsConfig['favorite']['table']
145  );
146  }
147  break;
148  case 'album':
149  $this->aCurrent['sorting'] = 'album_order';
150  $this->aCurrent['restriction']['album'] = array(
151  'value'=>'', 'field'=>'Uri', 'operator'=>'=', 'paramName'=>'albumUri', 'table'=>'sys_albums'
152  );
153  if ($sParamValue1 == 'owner' && strlen($sParamValue2) > 0)
154  $this->aCurrent['restriction']['owner']['value'] = $sParamValue2;
155  break;
156  }
157  }
158 
159  function _getPseud ()
160  {
161  return array(
162  'id' => 'ID',
163  'title' => 'Title',
164  'date' => 'Date',
165  'size' => 'Size',
166  'uri' => 'Uri',
167  'view' => 'Views',
168  'ownerId' => 'Owner',
169  'ownerName' => 'NickName',
170  'desc' => 'Desc'
171  );
172  }
173 
174  function getAlterOrder()
175  {
176  $aSql = array();
177  switch ($this->aCurrent['sorting']) {
178  case 'popular':
179  $aSql['order'] = " ORDER BY `DownloadsCount` DESC";
180  break;
181 
182  case 'album_order':
183  $aSql['order'] = " ORDER BY `obj_order` ASC, `id_object` DESC";
184  break;
185  }
186 
187  return $aSql;
188  }
189 
190  function displaySearchUnit ($aData)
191  {
192  $bShort = isset($this->aCurrent['view']) && $this->aCurrent['view'] == 'short' ? true : false;
193  if ($this->oModule->isAdmin($this->oModule->_iProfileId) || is_array($this->aCurrent['restriction']['allow_view']['value']))
194  $bVis = true;
195  elseif ($this->oModule->oAlbumPrivacy->check('album_view', $aData['id_album'], $this->oModule->_iProfileId))
196  $bVis = true;
197  else
198  $bVis = false;
199 
200  if (!$bVis) {
201  $aUnit = array(
202  'ch_if:show_title' => array(
203  'condition' => !$bShort,
204  'content' => array(1)
205  )
206  );
207  $sCode = $this->oTemplate->parseHtmlByName('browse_unit_private.html', $aUnit);
208  } else
209  $sCode = $bShort ? $this->getSearchUnitShort($aData) : $this->getSearchUnit($aData);
210  return $sCode;
211  }
212 
213  function displayResultBlock ()
214  {
215  $sCode = parent::displayResultBlock();
216  return !empty($sCode) ? $this->oTemplate->parseHtmlByName('default_margin.html', array('content' => $sCode)) : $sCode;
217  }
218 
219  function getSearchUnit ($aData)
220  {
221  $aUnit['unitClass'] = $this->aCurrent['name'];
222  $aUnit['ch_if:admin'] = array(
223  'condition' => $this->bAdminMode,
224  'content' => array('id' => $aData['id'])
225  );
226  // pic
227  $sPicName = empty($aData['Icon']) ? 'default.png': $aData['Icon'];
228  $aUnit['pic'] = $this->oModule->_oTemplate->getIconUrl($sPicName);
229  $aUnit['spacer'] = $this->oModule->_oTemplate->getIconUrl('spacer.gif');
230  // rate
231  if (!is_null($this->oRate) && $this->oRate->isEnabled())
232  $aUnit['rate'] = $this->oRate->getJustVotingElement(0, 0, $aData['Rate']);
233 
234  // title
235  $aUnit['titleLink'] = $this->getCurrentUrl('file', $aData['id'], $aData['uri']);
236  $aUnit['title'] = stripslashes($aData['title']);
237 
238  // from
239  $aUnit['fromLink'] = getProfileLink($aData['ownerId']);
240  $aUnit['from'] = getNickName($aData['ownerId']);
241 
242  //extension
243  $aUnit['ext'] = $aData['Ext'];
244 
245  //size
246  $aUnit['size'] = _t_format_size($aData['size']);
247 
248  // when
249  $aUnit['when'] = defineTimeInterval($aData['date']);
250  // view
251  $aUnit['view'] = $aData['view'];
252  // desc
253  $aUnit['desc'] = stripslashes($aData['desc']);
254 
255  $aUnit['id'] = $aData['id'];
256  return $this->oModule->_oTemplate->parseHtmlByName('browse_unit.html', $aUnit, array('{','}'));
257  }
258 
259  function getSearchUnitShort ($aData)
260  {
261  //var_dump($aData); exit;
262  $aUnit = array();
263  $aUnit['unitClass'] = $this->aCurrent['name'];
264 
265  // title
266  $aUnit['titleLink'] = $this->getCurrentUrl('file', $aData['id'], $aData['uri']);
267  $aUnit['title'] = $aData['title'];
268 
269  // from
270  $aUnit['fromLink'] = getProfileLink($aData['ownerId']);
271  $aUnit['from'] = getNickName($aData['ownerId']);
272 
273  //extension
274  $aUnit['ext'] = $aData['Ext'];
275 
276  //size
277  $aUnit['size'] = _t_format_size($aData['size']);
278 
279  // when
280  $aUnit['when'] = defineTimeInterval($aData['date']);
281 
282  // pic
283  $sPicName = is_null($aData['Icon']) ? 'default.png': $aData['Icon'];
284  $aUnit['pic'] = $this->oModule->_oTemplate->getIconUrl($sPicName);
285 
286  $aUnit['id'] = $aData['id'];
287  return $this->oModule->_oTemplate->parseHtmlByName('browse_unit_short.html', $aUnit, array('{','}'));
288  }
289 
290  function setSorting ()
291  {
292  $this->aCurrent['sorting'] = isset($_GET[$this->aCurrent['name'].'_mode']) ? $_GET[$this->aCurrent['name'].'_mode'] : $this->aCurrent['sorting'];
293  }
294 
295  function getTopMenu($aExclude = array())
296  {
297  $aDBTopMenu = array();
298  $aLinkAddon = $this->getLinkAddByPrams($aExclude);
299  foreach (array('last', 'top') as $sMyMode) {
300  switch ($sMyMode) {
301  case 'last':
302  $sModeTitle = '_Latest';
303  break;
304  case 'top':
305  $sModeTitle = '_Top';
306  break;
307  }
308 
309  if(basename( $_SERVER['PHP_SELF'] ) == 'rewrite_name.php' || basename( $_SERVER['PHP_SELF'] ) == 'profile.php')
310  $sLink = CH_WSB_URL_ROOT . "profile.php?ID={$this->aCurrent['restriction']['owner']['value']}&";
311  else
312  $sLink = ch_html_attribute($_SERVER['PHP_SELF']) . "?";
313  $sLink .= $this->aCurrent['name'] . "_mode=$sMyMode" . $aLinkAddon['params'] . $aLinkAddon['paginate'] . $aLinkAddon['type'];
314 
315  $aDBTopMenu[$sModeTitle] = array('href' => $sLink, 'dynamic' => true, 'active' => ($sMyMode == $this->aCurrent['sorting']));
316  }
317  return $aDBTopMenu;
318  }
319 
320  function getCurrentUrl ($sType, $iId, $sUri, $aOwner = '')
321  {
322  $sLink = $this->aConstants['linksTempl'][$sType];
323  return CH_WSB_URL_ROOT . $this->oModule->_oConfig->getBaseUri() . str_replace('{uri}', $sUri, $sLink);
324  }
325 
326  function getAlbumList ($iPage = 1, $iPerPage = 10, $aCond = array())
327  {
328  $oSet = new ChWsbAlbums($this->aCurrent['name']);
329  foreach ($this->aCurrent['restriction'] as $sKey => $aParam)
330  $aData[$sKey] = $aParam['value'];
331  $aData = array_merge($aData, $aCond);
332  $iAlbumCount = $oSet->getAlbumCount($aData);
333  if ($iAlbumCount > 0) {
334  $this->aCurrent['paginate']['totalAlbumNum'] = $iAlbumCount;
335  $sCode = $this->addCustomParts();
336  $aList = $oSet->getAlbumList($aData, (int)$iPage, (int)$iPerPage);
337  foreach ($aList as $iKey => $aData)
338  $sCode .= $this->displayAlbumUnit($aData);
339  } else
340  $sCode = MsgBox(_t('_Empty'));
341  return $sCode;
342  }
343 
344  function displayAlbumUnit ($aData, $bCheckPrivacy = true)
345  {
346  if (!$this->bAdminMode && $bCheckPrivacy) {
347  if (!$this->oModule->oAlbumPrivacy->check('album_view', $aData['ID'], $this->oModule->_iProfileId)) {
348  $aUnit = array(
349  'img_url' => $this->oTemplate->getIconUrl('lock.png'),
350  );
351  return $this->oTemplate->parseHtmlByName('album_unit_private.html', $aUnit);
352  }
353  }
354  $aUnit['type'] = $this->oModule->_oConfig->getMainPrefix();
355  $aUnit['ch_if:editMode'] = array(
356  'condition' => $this->bAdminMode,
357  'content' => array(
358  'id' => $aData['ID'],
359  'checked' => $this->sCurrentAlbum == $aData['Uri'] ? 'checked="checked"' : ''
360  )
361  );
362 
363  // from
364  $aUnit['fromLink'] = getProfileLink($aData['Owner']);
365  $aUnit['from'] = getNickName($aData['Owner']);
366 
367  $aUnit['albumUrl'] = $this->getCurrentUrl('album', $aData['ID'], $aData['Uri']) . '/owner/' . getUsername($aData['Owner']);
368 
369  // pic
370  $aUnit['spacer'] = $this->oTemplate->getIconUrl('spacer.gif');
371 
372  // cover
373  $iItems = isset($this->aConstants['filesInAlbumCover']) ? (int)$this->aConstants['filesInAlbumCover'] : 15;
374  $aItems = $this->getAlbumCovers($aData['ID'], array('filesInAlbumCover' => $iItems));
375  if((!is_array($aItems) || count($aItems) == 0) && $this->oModule->_iProfileId != $aData['Owner']) {
376  $this->aCurrent['paginate']['totalAlbumNum']--;
377  return '';
378  }
379 
380  $aUnits = array();
381  for($i = 0; $i < $iItems; $i++) {
382  $aItem = array_shift($aItems);
383  $bItem = isset($aItem['id_object']) && (int)$aItem['id_object'] > 0;
384 
385  $aUnits[] = array(
386  'ch_if:exist' => array(
387  'condition' => $bItem,
388  'content' => array(
389  'unit' => $bItem ? $this->getAlbumCoverUrl($aItem) : '',
390  )
391  ),
392  'ch_if:not-exist' => array(
393  'condition' => !$bItem,
394  'content' => array()
395  )
396  );
397  }
398  $aUnit['ch_repeat:units'] = $aUnits;
399 
400  // title
401  $aUnit['titleLink'] = $aUnit['albumUrl'];
402  $aUnit['title'] = $aData['Caption'];
403 
404  // when
405  $aUnit['when'] = defineTimeInterval($aData['Date']);
406 
407  // view
408  $aUnit['view'] = isset($aData['ObjCount']) ? $aData['ObjCount'] . ' ' . _t($this->aCurrent['title']): '';
409  return $this->oTemplate->parseHtmlByName('album_unit.html', $aUnit, array('{','}'));
410  }
411 
412  function getAlbumCovers ($iAlbumId, $aParams = array())
413  {
414  $iAlbumId = (int)$iAlbumId;
415  $iLimit = isset($aParams['filesInAlbumCover']) ? (int)$aParams['filesInAlbumCover'] : null;
416  return $this->oModule->oAlbums->getAlbumCoverFiles($iAlbumId, array('table' => $this->aCurrent['table'], 'field' => 'ID', 'fields_list' => array('Type')), array(array('field'=>'Status', 'value'=>'approved')), $iLimit);
417  }
418 
419  function getAlbumCoverUrl (&$aIdent)
420  {
421  $sIcon = $this->oModule->_oConfig->getMimeTypeIcon($aIdent['Type']);
422  return $this->oTemplate->getIconUrl($sIcon);
423  }
424 
425  function getImgUrl ($iId, $sImgType = 'browse')
426  {
427  $iId = (int)$iId;
428  $sPostFix = isset($this->aConstants['picPostfix'][$sImgType]) ? $this->aConstants['picPostfix'][$sImgType] : $this->aConstants['picPostfix']['browse'];
429  return $this->aConstants['filesUrl'] . $iId . $sPostFix;
430  }
431 
432  function getAlbumsBlock ($aSectionParams = array(), $aAlbumParams = array(), $aCustom = array())
433  {
434  $aCustomTmpl = array(
435  'caption' => _t('_' . $this->oModule->_oConfig->getMainPrefix() .'_albums'),
436  'enable_center' => true,
437  'unit_css_class' => '.sys_album_unit',
438  'page' => isset($_GET['page']) ? (int)$_GET['page'] : 1,
439  'per_page' => isset($_GET['per_page']) ? (int)$_GET['per_page']: (int)$this->oModule->_oConfig->getGlParam('number_albums_home'),
440  'simple_paginate' => true,
441  'menu_top' => '',
442  'menu_bottom' => '',
443  'paginate_url' => '',
444  'simple_paginate_url' => CH_WSB_URL_ROOT . $this->oModule->_oConfig->getUri() . '/albums/browse'
445  );
446  $aCustom = array_merge($aCustomTmpl, $aCustom);
447  $this->aCurrent['paginate']['perPage'] = $aCustom['per_page'];
448  $this->aCurrent['paginate']['page'] = $aCustom['page'];
449 
450  $this->fillFilters($aSectionParams);
451  $sCode = $this->getAlbumList($this->aCurrent['paginate']['page'], $this->aCurrent['paginate']['perPage'], $aAlbumParams);
452  if ($this->aCurrent['paginate']['totalAlbumNum'] > 0) {
453  if ($aCustom['enable_center'])
454  $sCode = $GLOBALS['oFunctions']->centerContent($sCode, $aCustom['unit_css_class']);
455  if (empty($aCustom['menu_bottom'])) {
456  $aLinkAddon = $this->getLinkAddByPrams(array('r'));
457  $oPaginate = new ChWsbPaginate(array(
458  'page_url' => $aCustom['paginate_url'],
459  'count' => $this->aCurrent['paginate']['totalAlbumNum'],
460  'per_page' => $this->aCurrent['paginate']['perPage'],
461  'page' => $this->aCurrent['paginate']['page'],
462  'on_change_page' => 'return !loadDynamicBlock({id}, \'' . $aCustom['paginate_url'] . $aLinkAddon['params'] .'&page={page}&per_page={per_page}\');',
463  ));
464  $aCode['menu_bottom'] = $aCustom['simple_paginate'] ? $oPaginate->getSimplePaginate($aCustom['simple_paginate_url']) : $oPaginate->getPaginate();
465  $aCode['code'] = DesignBoxContent($aCustom['caption'], $sCode);
466  } else
467  $aCode['menu_bottom'] = $aCustom['menu_bottom'];
468  }
469  $aCode['menu_top'] = $aCustom['menu_top'];
470  return array($aCode['code'], $aCode['menu_top'], $aCode['menu_bottom'], (!empty($aCode['code']) ? false : ''));
471  }
472 
473  //services
474  function serviceGetFilesInCat ($iId, $sCategory = '')
475  {
476  $this->aCurrent['paginate']['perPage'] = 1000;
477  $this->aCurrent['join']['category'] = array(
478  'type' => 'left',
479  'table' => 'sys_categories',
480  'mainField' => 'ID',
481  'onField' => 'ID',
482  'joinFields' => array('Category')
483  );
484 
485  $this->aCurrent['restriction']['ownerId'] = array(
486  'value' => $iId ? $iId : '',
487  'field' => 'Owner',
488  'operator' => '=',
489  );
490 
491  $this->aCurrent['restriction']['category'] = array(
492  'value' => $sCategory,
493  'field' => 'Category',
494  'operator' => '=',
495  'table' => 'sys_categories'
496  );
497 
498  $this->aCurrent['restriction']['type'] = array(
499  'value' => $this->aCurrent['name'],
500  'field' => 'Type',
501  'operator' => '=',
502  'table' => 'sys_categories'
503  );
504 
505  $aFiles = $this->getSearchData();
506  if (!$aFiles)
507  $aFiles = array();
508  foreach ($aFiles as $k => $aRow) {
509  $sIcon = !empty($aRow['Icon']) ? $aRow['Icon'] : 'default.png';
510  $aFiles[$k]['icon'] = $this->oModule->_oTemplate->getIconUrl($sIcon);
511  $aFiles[$k]['url'] = $this->getCurrentUrl('file', $aRow['ID'], $aRow['uri']);
512  }
513  return $aFiles;
514  }
515 
516  function serviceGetAlbumPrivacy ($iAlbumId, $iViewer = 0)
517  {
518  if (!$iViewer)
519  $iViewer = $this->oModule->_iProfileId;
520  return $this->oModule->oAlbumPrivacy->check('album_view', (int)$iAlbumId, $iViewer);
521  }
522 
523  function serviceGetFilesInAlbum ($iAlbumId, $isCheckPrivacy = false, $iViewer = 0)
524  {
525  $iAlbumId = (int)$iAlbumId;
526  if (!$iAlbumId)
527  return array();
528  if (!$iViewer)
529  $iViewer = $this->oModule->_iProfileId;
530  if ($isCheckPrivacy && !$this->oModule->oAlbumPrivacy->check('album_view', (int)$iAlbumId, $iViewer))
531  return array();
532 
533  $this->aCurrent['paginate']['perPage'] = 1000;
534  $this->aCurrent['join']['albumsObjects'] = array(
535  'type' => 'left',
536  'table' => 'sys_albums_objects',
537  'mainField' => 'ID',
538  'onField' => 'id_object',
539  'joinFields' => array('obj_order')
540  );
541  $this->aCurrent['sorting'] = 'album_order';
542  $this->aCurrent['restriction']['album'] = array(
543  'value'=>$iAlbumId, 'field'=>'id_album', 'operator'=>'=', 'paramName'=>'albumId', 'table'=>'sys_albums_objects'
544  );
545  $aFiles = $this->getSearchData();
546  if (!$aFiles)
547  $aFiles = array();
548  foreach ($aFiles as $k => $aRow) {
549  $sIcon = !empty($aRow['Icon']) ? $aRow['Icon'] : 'default.png';
550  $aFiles[$k]['icon'] = $this->oModule->_oTemplate->getIconUrl($sIcon);
551  $aFiles[$k]['url'] = $this->getCurrentUrl('file', $aRow['ID'], $aRow['uri']);
552  $aFiles[$k]['mime_type'] = $aRow['Type'];
553  $aFiles[$k]['path'] = $this->aConstants['filesDir'] . $aRow['ID'] . '_' . sha1($aRow['Date']);
554  }
555  return $aFiles;
556  }
557 
558  function serviceGetEntry($iId, $sType = 'thumb')
559  {
560  return $this->serviceGetFileArray($iId);
561  }
562 
563  function serviceGetItemArray($iId, $sType = 'browse')
564  {
565  return $this->serviceGetFileArray($iId);
566  }
567 
569  {
570  $iId = (int)$iId;
571  $sqlQuery = "SELECT a.`ID` as `id`,
572  a.`Title` as `title`,
573  a.`Desc` as `desc`,
574  a.`Uri` as `uri`,
575  a.`Owner` as `owner`,
576  a.`Date` as `date`,
577  a.`Ext`,
578  a.`Type`,
579  a.`Rate`,
580  a.`Status` as `status`,
581  b.`id_album`,
582  d.`Icon`
583  FROM `{$this->aCurrent['table']}` as a
584  LEFT JOIN `sys_albums_objects` as b ON b.`id_object` = a.`ID`
585  LEFT JOIN `sys_albums` as c ON c.`ID` = b.`id_album`
586  LEFT JOIN `ch_files_types` as d ON d.`Type` = a.`Type`
587  WHERE a.`ID`='$iId' AND c.`Type`='{$this->aCurrent['name']}'";
588  $aData = db_arr($sqlQuery);
589  if (!$aData)
590  return array();
591 
592  $iSize = (int)$this->oModule->_oConfig->getGlParam('browse_width');
593  $sIcon = !empty($aData['Icon']) ? $aData['Icon'] : 'default.png';
594  $sFile = $aData['id'];
595  if (strlen($aData['Ext']) > 0)
596  $sFile .= '_' . sha1($aData['date']);
597  $aInfo = array(
598  'file' => $this->oModule->_oTemplate->getIconUrl($sIcon),
599  'file_path' => $this->oModule->_oTemplate->getIconPath($sIcon),
600  'width' => $iSize + 4,
601  'height' => $iSize + 4,
602  'title' => $aData['title'],
603  'owner' => $aData['owner'],
604  'description' => $aData['desc'],
605  'url' => $this->getCurrentUrl('file', $iId, $aData['uri']),
606  'date' => $aData['date'],
607  'rate' => $aData['Rate'],
608  'path' => $this->aConstants['filesDir'] . $sFile,
609  'extension' => $aData['Ext'],
610  'mime_type' => $aData['Type'],
611  'status' => $aData['status'],
612  'album_id' => $aData['id_album']
613  );
614  return empty($aInfo['file']) ? array() : $aInfo;
615  }
616 
617  function serviceGetFilesBlock ($aParams = array(), $aCustom = array(), $sLink = '')
618  {
619  $aCode = $this->getBrowseBlock($aParams, $aCustom, $sLink, false);
620  if ($this->aCurrent['paginate']['totalNum'] > 0)
621  return array($aCode['code'], $aCode['menu_top'], $aCode['menu_bottom'], $aCode['wrapper']);
622  }
623 
624  function serviceGetFilePath ($iFile)
625  {
626  $iFile = (int)$iFile;
627  $aInfo = $this->oModule->_oDb->getFileInfo(array('fileId'=>$iFile), true, array('medID', 'medExt'));
628  return $this->aConstants['filesDir'] . $aInfo['medID'] . '.' . $aInfo['medExt'];
629  }
630 
631  function serviceGetProfileAlbumsBlock ($iProfileId, $sSpecUrl = '')
632  {
633  $iProfileId = (int)$iProfileId;
634  $sNickName = getUsername($iProfileId);
635  $sSimpleUrl = CH_WSB_URL_ROOT . $this->oModule->_oConfig->getBaseUri() . 'albums/browse/owner/' . $sNickName;
636  $sPaginateUrl = mb_strlen($sSpecUrl) > 0 ? strip_tags($sSpecUrl) : getProfileLink($iProfileId);
637  return $this->getAlbumsBlock(array('owner' => $iProfileId), array('hide_default' => TRUE), array('enable_center' => false, 'paginate_url' => $sPaginateUrl, 'simple_paginate_url' => $sSimpleUrl));
638  }
639 
643  function serviceGetWallPost($aEvent)
644  {
645  return $this->oModule->serviceGetWallPost($aEvent);
646  }
647 
651  function serviceGetWallPostOutline($aEvent)
652  {
653  return $this->oModule->serviceGetWallPostOutline($aEvent);
654  }
655 
659  function serviceGetWallPostComment($aEvent)
660  {
661  $iId = (int)$aEvent['object_id'];
662  $iOwner = (int)$aEvent['owner_id'];
663  $sOwner = getNickName($iOwner);
664 
665  $aItem = $this->serviceGetFileArray($iId);
666  if(empty($aItem) || !is_array($aItem))
667  return array('perform_delete' => true);
668 
669  $aContent = unserialize($aEvent['content']);
670  if(empty($aContent) || !isset($aContent['comment_id']))
671  return '';
672 
673  ch_import('ChTemplCmtsView');
674  $oCmts = new ChTemplCmtsView($this->oModule->_oConfig->getMainPrefix(), $iId);
675  if(!$oCmts->isEnabled())
676  return '';
677 
678  $aComment = $oCmts->getCommentRow((int)$aContent['comment_id']);
679 
680  $sCss = '';
681  if($aEvent['js_mode'])
682  $sCss = $this->oModule->_oTemplate->addCss('wall_post.css', true);
683  else
684  $this->oModule->_oTemplate->addCss('wall_post.css');
685 
686  $sTextWallObject = _t('_ch_files_wall_object');
687  return array(
688  'title' => _t('_ch_files_wall_added_new_comment_title', $sOwner, $sTextWallObject),
689  'description' => $aComment['cmt_text'],
690  'content' => $sCss . $this->oModule->_oTemplate->parseHtmlByName('modules/cheetah/wall/|timeline_comment.html', array(
691  'mod_prefix' => 'ch_files',
692  'cpt_user_name' => $sOwner,
693  'cpt_added_new' => _t('_ch_files_wall_added_new_comment'),
694  'cpt_object' => $sTextWallObject,
695  'cpt_item_url' => $aItem['url'],
696  'cnt_comment_text' => $aComment['cmt_text'],
697  'snippet' => $this->oModule->_oTemplate->parseHtmlByName('wall_post_comment.html', array(
698  'cnt_item_page' => $aItem['url'],
699  'cnt_item_width' => $aItem['width'],
700  'cnt_item_height' => $aItem['height'],
701  'cnt_item_icon' => $aItem['file'],
702  'cnt_item_title' => $aItem['title'],
703  'cnt_item_description' => $aItem['description'],
704  ))
705  ))
706  );
707  }
708 
709  function getRssUnitLink (&$a)
710  {
711  return CH_WSB_URL_ROOT . $this->oModule->_oConfig->getBaseUri() . 'view/' . $a['uri'];
712  }
713 }
TRUE
URI MungeSecretKey $secret_key</pre >< p > If the output is TRUE
Definition: URI.MungeSecretKey.txt:17
true
if(!defined("TRUE_VAL")) define("TRUE_VAL" true
Definition: constants.inc.php:8
ChFilesSearch\serviceGetFileArray
serviceGetFileArray($iId)
Definition: ChFilesSearch.php:568
ChBaseSearchResult\getLinkAddByPrams
getLinkAddByPrams($aExclude=array())
Definition: ChBaseSearchResult.php:186
ChFilesSearch\__construct
__construct($sParamName='', $sParamValue='', $sParamValue1='', $sParamValue2='')
Definition: ChFilesSearch.php:15
MsgBox
MsgBox($sText, $iTimer=0)
Definition: design.inc.php:175
ChFilesSearch\getAlbumList
getAlbumList($iPage=1, $iPerPage=10, $aCond=array())
Definition: ChFilesSearch.php:326
ChFilesSearch
Definition: ChFilesSearch.php:11
ChWsbModule\getInstance
static getInstance($sClassName)
Definition: ChWsbModule.php:89
ChBaseSearchResult\getBrowseBlock
getBrowseBlock($aParams, $aCustom=array(), $sMainUrl='', $bClearJoins=true)
Definition: ChBaseSearchResult.php:281
defineTimeInterval
defineTimeInterval($iTime, $bAutoDateConvert=true, $bShort=false)
Definition: utils.inc.php:831
$aUnit
$aUnit
Definition: short_profile_info.php:31
$sCode
$sCode
Definition: explanation.php:19
ChFilesSearch\serviceGetFilesInCat
serviceGetFilesInCat($iId, $sCategory='')
Definition: ChFilesSearch.php:474
ch_import
ch_import($sClassName, $aModule=array())
Definition: utils.inc.php:1218
php
$iId
$iId
Definition: license.php:15
ChFilesSearch\getAlbumCovers
getAlbumCovers($iAlbumId, $aParams=array())
Definition: ChFilesSearch.php:412
ChFilesSearch\_getPseud
_getPseud()
Definition: ChFilesSearch.php:159
ChFilesSearch\getSearchUnitShort
getSearchUnitShort($aData)
Definition: ChFilesSearch.php:259
$sParamValue
$sParamValue
Definition: actions.inc.php:16
$iPerPage
else $iPerPage
Definition: browse.php:61
ChFilesSearch\getSearchUnit
getSearchUnit($aData)
Definition: ChFilesSearch.php:219
_t_format_size
_t_format_size($iBytes, $iPrecision=2)
Definition: languages.inc.php:545
ChFilesSearch\$oModule
$oModule
Definition: ChFilesSearch.php:12
ChFilesSearch\displayAlbumUnit
displayAlbumUnit($aData, $bCheckPrivacy=true)
Definition: ChFilesSearch.php:344
ChFilesSearch\serviceGetWallPost
serviceGetWallPost($aEvent)
Definition: ChFilesSearch.php:643
ch_html_attribute
ch_html_attribute($mixedInput)
Definition: utils.inc.php:1324
$aInfo
$aInfo
Definition: constants.inc.php:21
ChFilesSearch\serviceGetWallPostOutline
serviceGetWallPostOutline($aEvent)
Definition: ChFilesSearch.php:651
ChFilesSearch\serviceGetWallPostComment
serviceGetWallPostComment($aEvent)
Definition: ChFilesSearch.php:659
db_arr
db_arr($query, $bindings=[])
Definition: db.inc.php:76
ChWsbSearchResult\addCustomParts
addCustomParts()
Definition: ChWsbSearch.php:262
$sType
$sType
Definition: actions.inc.php:11
$sFile
$sFile
Definition: index.php:20
ChBaseSearchResult\fillFilters
fillFilters($aParams)
Definition: ChBaseSearchResult.php:242
$_GET
$_GET['debug']
Definition: index.php:67
ChFilesSearch\serviceGetProfileAlbumsBlock
serviceGetProfileAlbumsBlock($iProfileId, $sSpecUrl='')
Definition: ChFilesSearch.php:631
ChFilesSearch\serviceGetFilesInAlbum
serviceGetFilesInAlbum($iAlbumId, $isCheckPrivacy=false, $iViewer=0)
Definition: ChFilesSearch.php:523
ChFilesSearch\$bAdminMode
$bAdminMode
Definition: ChFilesSearch.php:14
$sParamName
$sParamName
Definition: actions.inc.php:15
getLoggedId
getLoggedId()
Definition: profiles.inc.php:32
ChTemplCmtsView
Definition: ChTemplCmtsView.php:14
ChTemplSearchResult
Definition: ChTemplSearchResult.php:11
getNickName
getNickName( $ID='')
Definition: profiles.inc.php:461
ChFilesSearch\serviceGetFilesBlock
serviceGetFilesBlock($aParams=array(), $aCustom=array(), $sLink='')
Definition: ChFilesSearch.php:617
ChWsbAlbums
Definition: ChWsbAlbums.php:9
getUsername
getUsername( $ID='')
Definition: profiles.inc.php:443
ChWsbSearchResult\getSearchData
getSearchData()
Definition: ChWsbSearch.php:376
ChFilesSearch\serviceGetFilePath
serviceGetFilePath($iFile)
Definition: ChFilesSearch.php:624
ChWsbPaginate
Definition: ChWsbPaginate.php:69
ChFilesSearch\getAlterOrder
getAlterOrder()
Definition: ChFilesSearch.php:174
ChFilesSearch\getRssUnitLink
getRssUnitLink(&$a)
Definition: ChFilesSearch.php:709
_t
_t($key, $arg0="", $arg1="", $arg2="")
Definition: languages.inc.php:509
getProfileLink
getProfileLink( $iID, $sLinkAdd='')
Definition: profiles.inc.php:484
ChFilesSearch\serviceGetAlbumPrivacy
serviceGetAlbumPrivacy($iAlbumId, $iViewer=0)
Definition: ChFilesSearch.php:516
ChFilesSearch\serviceGetEntry
serviceGetEntry($iId, $sType='thumb')
Definition: ChFilesSearch.php:558
$iPage
$iPage
Definition: browse.php:50
ChFilesSearch\setSorting
setSorting()
Definition: ChFilesSearch.php:290
ChFilesSearch\displaySearchUnit
displaySearchUnit($aData)
Definition: ChFilesSearch.php:190
ChFilesSearch\getTopMenu
getTopMenu($aExclude=array())
Definition: ChFilesSearch.php:295
ChFilesSearch\getCurrentUrl
getCurrentUrl($sType, $iId, $sUri, $aOwner='')
Definition: ChFilesSearch.php:320
ChFilesSearch\serviceGetItemArray
serviceGetItemArray($iId, $sType='browse')
Definition: ChFilesSearch.php:563
DesignBoxContent
DesignBoxContent($title, $content, $db_num=0, $caption_item='', $bottom_item='')
Definition: design.inc.php:78
ChFilesSearch\displayResultBlock
displayResultBlock()
Definition: ChFilesSearch.php:213
empty
Attr AllowedRel this is empty
Definition: Attr.AllowedRel.txt:7
ChFilesSearch\getAlbumsBlock
getAlbumsBlock($aSectionParams=array(), $aAlbumParams=array(), $aCustom=array())
Definition: ChFilesSearch.php:432
ChFilesSearch\getAlbumCoverUrl
getAlbumCoverUrl(&$aIdent)
Definition: ChFilesSearch.php:419
as
as
Definition: Filter.ExtractStyleBlocks.Escaping.txt:10
ChFilesSearch\getImgUrl
getImgUrl($iId, $sImgType='browse')
Definition: ChFilesSearch.php:425
$iProfileId
if( $sMembersList) $iProfileId
Definition: communicator.php:29
$GLOBALS
$GLOBALS['iAdminPage']
Definition: advanced_settings.php:10
ChFilesSearch\$oTemplate
$oTemplate
Definition: ChFilesSearch.php:13