BxChartsCron.php 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. <?php defined('BX_DOL') or die('hack attempt');
  2. /**
  3. * Copyright (c) UNA, Inc - https://una.io
  4. * MIT License - https://opensource.org/licenses/MIT
  5. *
  6. * @defgroup Charts Charts
  7. * @ingroup UnaModules
  8. *
  9. * @{
  10. */
  11. class BxChartsCron extends BxDolCron
  12. {
  13. protected $_sModule;
  14. protected $_oModule;
  15. public function __construct()
  16. {
  17. $this->_sModule = 'bx_charts';
  18. $this->_oModule = BxDolModule::getInstance($this->_sModule);
  19. parent::__construct();
  20. }
  21. function processing()
  22. {
  23. $this->processingTopByLikes();
  24. $this->processingMostActiveProfiles();
  25. $this->processingMostFollowedProfiles();
  26. }
  27. function processingTopByLikes()
  28. {
  29. $aSystems = BxDolVote::getSystems();
  30. $aModules = array_keys($this->_oModule->serviceGetTextModules());
  31. $sModulesDisabled = explode(',', getParam('bx_charts_chart_top_contents_by_likes_modules_disabled'));
  32. $aModules = array_diff($aModules, $sModulesDisabled);
  33. $this->_oModule->_oDb->clearTopByLikes();
  34. foreach($aModules as $sModule){
  35. $oModule = BxDolModule::getInstance($sModule);
  36. if(!empty($oModule->_oConfig->CNF['OBJECT_REACTIONS'])){
  37. $sSystem = $oModule->_oConfig->CNF['OBJECT_REACTIONS'];
  38. if(empty($sSystem) || empty($aSystems[$sSystem]['table_track']))
  39. continue;
  40. $this->_oModule->_oDb->saveTopByLikes($sModule, $aSystems[$sSystem]['table_track']);
  41. }
  42. }
  43. }
  44. function processingMostActiveProfiles()
  45. {
  46. $this->_oModule->_oDb->clearMostActiveProfiles();
  47. $aContentModules = array_keys($this->_oModule->serviceGetTextModules());
  48. $sContentModulesDisabled = explode(',', getParam('bx_charts_chart_most_active_profiles_posts_for_module_disabled'));
  49. $aContentModules = array_diff($aContentModules, $sContentModulesDisabled);
  50. foreach($aContentModules as $sContentModule){
  51. $oContentModule = BxDolModule::getInstance($sContentModule);
  52. if ($oContentModule && isset($oContentModule->_oConfig->CNF['TABLE_ENTRIES']) && isset($oContentModule->_oConfig->CNF['FIELD_AUTHOR'])){
  53. $sContentTable = $oContentModule->_oConfig->CNF['TABLE_ENTRIES'];
  54. $sColumnAuthor = $oContentModule->_oConfig->CNF['FIELD_AUTHOR'];
  55. $sColumnAdded = $oContentModule->_oConfig->CNF['FIELD_ADDED'];
  56. if (!empty($sContentTable) && !empty($sColumnAuthor)){
  57. $aSystems = BxDolView::getSystems();
  58. $aModules = array_keys($this->_oModule->serviceGetProfileModules());
  59. $sModulesDisabled = explode(',', getParam('bx_charts_chart_most_active_profiles_modules_disabled'));
  60. $aModules = array_diff($aModules, $sModulesDisabled);
  61. foreach($aModules as $sProfileModule){
  62. $oModule = BxDolModule::getInstance($sProfileModule);
  63. if(isset($oModule->_oConfig->CNF['OBJECT_VIEWS'])){
  64. $sSystem = $oModule->_oConfig->CNF['OBJECT_VIEWS'];
  65. if(empty($sSystem))
  66. continue;
  67. $this->_oModule->_oDb->saveMostActiveProfiles_Create($sProfileModule, $sContentModule, $sContentTable, $sColumnAuthor, $sColumnAdded);
  68. }
  69. }
  70. }
  71. }
  72. }
  73. foreach($aModules as $sProfileModule){
  74. $oModule = BxDolModule::getInstance($sProfileModule);
  75. if(isset($oModule->_oConfig->CNF['OBJECT_VIEWS'])){
  76. $sSystem = $oModule->_oConfig->CNF['OBJECT_VIEWS'];
  77. if(empty($sSystem))
  78. continue;
  79. $this->_oModule->_oDb->saveMostActiveProfiles_View($sProfileModule, $aSystems[$sSystem]['table_track']);
  80. }
  81. }
  82. }
  83. function processingMostFollowedProfiles()
  84. {
  85. $this->_oModule->_oDb->clearMostFollowedProfiles();
  86. $aModules = array_keys($this->_oModule->serviceGetProfileModules());
  87. foreach($aModules as $sProfileModule){
  88. $this->_oModule->_oDb->saveMostFollowedProfiles($sProfileModule);
  89. }
  90. }
  91. }
  92. /** @} */