BxReputationStudioPage.php 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  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 Reputation Reputation
  7. * @ingroup UnaModules
  8. *
  9. * @{
  10. */
  11. class BxReputationStudioPage extends BxBaseModNotificationsStudioPage
  12. {
  13. public function __construct($sModule, $mixedPageName, $sPage = "")
  14. {
  15. $this->_sModule = 'bx_reputation';
  16. parent::__construct($sModule, $mixedPageName, $sPage);
  17. $this->aMenuItems = array_merge($this->aMenuItems, [
  18. 'handlers' => ['name' => 'manage', 'icon' => 'cogs', 'title' => '_bx_reviews_menu_item_title_handlers'],
  19. 'levels' => ['name' => 'levels', 'icon' => 'cogs', 'title' => '_bx_reviews_menu_item_title_levels'],
  20. ]);
  21. }
  22. public function checkAction()
  23. {
  24. $sAction = bx_get($this->sParamPrefix . '_action');
  25. if($sAction === false)
  26. return false;
  27. if(empty($this->aModule) || !is_array($this->aModule))
  28. return array('code' => 1, 'message' => _t('_sys_request_page_not_found_cpt'));
  29. $sAction = bx_process_input($sAction);
  30. $aResult = array('code' => 2, 'message' => _t('_adm_mod_err_cannot_process_action'));
  31. switch($sAction) {
  32. case 'assign_levels':
  33. $iUpdated = 0;
  34. $aLevels = $this->_oModule->_oDb->getLevels();
  35. foreach($aLevels as $aLevel) {
  36. $aProfiles = $this->_oModule->_oDb->getProfiles(['sample' => 'points_range', 'points_in' => $aLevel['points_in'], 'points_out' => $aLevel['points_out']]);
  37. if(empty($aProfiles) || !is_array($aProfiles))
  38. continue;
  39. foreach($aProfiles as $aProfile)
  40. if($this->_oModule->_oDb->insertProfilesLevels(['profile_id' => $aProfile['profile_id'], 'level_id' => $aLevel['id']]))
  41. $iUpdated++;
  42. }
  43. $aResult = ['code' => 0, 'message' => _t('_bx_reputation_msg_assign_levels', $iUpdated)];
  44. break;
  45. default:
  46. $aResult = parent::checkAction();
  47. }
  48. return $aResult;
  49. }
  50. protected function getHandlers()
  51. {
  52. $CNF = &$this->_oModule->_oConfig->CNF;
  53. $oGrid = BxDolGrid::getObjectInstance($CNF['OBJECT_GRID_HANDLERS'], BxDolStudioTemplate::getInstance());
  54. if(!$oGrid)
  55. return '';
  56. $this->_oModule->_oTemplate->addStudioCss(['handlers.css']);
  57. $this->_oModule->_oTemplate->addStudioJs(['handlers.js']);
  58. $this->_oModule->_oTemplate->addStudioJsTranslation(['_sys_grid_search']);
  59. return $oGrid->getCode();
  60. }
  61. protected function getLevels()
  62. {
  63. $CNF = &$this->_oModule->_oConfig->CNF;
  64. $oGrid = BxDolGrid::getObjectInstance($CNF['OBJECT_GRID_LEVELS'], BxDolStudioTemplate::getInstance());
  65. if(!$oGrid)
  66. return '';
  67. $this->_oModule->_oTemplate->addStudioCss(['levels.css']);
  68. $this->_oModule->_oTemplate->addStudioJs(['levels.js']);
  69. return $oGrid->getCode();
  70. }
  71. }
  72. /** @} */