rss_factory.php 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. <?php
  2. /**
  3. * @package Dolphin Core
  4. * @copyright Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
  5. * @license CC-BY - http://creativecommons.org/licenses/by/3.0/
  6. */
  7. require_once('./inc/header.inc.php');
  8. require_once(BX_DIRECTORY_PATH_INC . "languages.inc.php");
  9. require_once(BX_DIRECTORY_PATH_INC . "params.inc.php");
  10. function actionRSS() {
  11. $sType = isset($_REQUEST['action']) ? bx_process_input($_REQUEST['action']) : '';
  12. $iLength = isset($_REQUEST['length']) ? bx_process_input($_REQUEST['length'], BX_DATA_INT) : 0;
  13. $oDb = BxDolDb::getInstance();
  14. if(strncmp($sType, 'sys_', 4) == 0) {
  15. $aRssTitle = '';
  16. $aRssData = array();
  17. switch($sType) {
  18. case 'sys_stats':
  19. $aRssTitle = getParam('site_title');
  20. $oCache = $oDb->getDbCacheObject();
  21. $aStats = $oCache->getData($oDb->genDbCacheKey('sys_stat_site'));
  22. if (null === $aStats) {
  23. genSiteStatCache();
  24. $aStats = $oCache->getData($oDb->genDbCacheKey('sys_stat_site'));
  25. }
  26. if ($aStats && is_array($aStats)) {
  27. foreach ($aStats as $sKey => $aStat) {
  28. $iNum = $aStat['query'] ? $oDb->getOne($aStat['query']) : 0;
  29. $aRssData[] = array(
  30. 'UnitID' => $sKey,
  31. 'OwnerID' => '',
  32. 'UnitTitle' => $iNum . ' ' . _t('_' . $aStat['capt']),
  33. 'UnitLink' => $aStat['link'] ? BX_DOL_URL_ROOT . $aStat['link'] : '',
  34. 'UnitDesc' => '',
  35. 'UnitDateTimeUTS' => 0,
  36. 'UnitIcon' => ''
  37. );
  38. }
  39. }
  40. break;
  41. case 'sys_members':
  42. bx_import('BxTemplFunctions');
  43. $oFunctions = BxTemplFunctions::getInstance();
  44. $aRssTitle = getParam('site_title');
  45. $iLength = $iLength != 0 ? $iLength : 33;
  46. $aMembers = $oDb->getAll("SELECT *, UNIX_TIMESTAMP(`DateReg`) AS `DateRegUTS` FROM `Profiles` WHERE 1 AND (`Couple`='0' OR `Couple`>`ID`) AND `Status`='Active' ORDER BY `DateReg` DESC LIMIT " . (int)$iLength);
  47. foreach($aMembers as $aMember) {
  48. $aRssData[] = array(
  49. 'UnitID' => '',
  50. 'OwnerID' => '',
  51. 'UnitTitle' => $aMember['NickName'],
  52. 'UnitLink' => getProfileLink($aMember['ID']),
  53. 'UnitDesc' => $oFunctions->getMemberAvatar($aMember['ID']),
  54. 'UnitDateTimeUTS' => $aMember['DateRegUTS'],
  55. 'UnitIcon' => ''
  56. );
  57. }
  58. break;
  59. case 'sys_news':
  60. echo BxDolService::call('news', 'news_rss', array($iLength));
  61. return;
  62. }
  63. bx_import('BxDolRssFactory');
  64. $oRss = new BxDolRssFactory();
  65. echo $oRss->GenRssByData($aRssData, $aRssTitle, '');
  66. } else {
  67. BxDolService::call($sType, $sType . '_rss', array());
  68. }
  69. }
  70. actionRSS();