BxBaseSearchExtendedServices.php 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  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 UnaBaseView UNA Base Representation Classes
  7. * @{
  8. */
  9. /**
  10. * System services related to Extended Search.
  11. *
  12. * @see BxDolSearchExtended
  13. */
  14. class BxBaseSearchExtendedServices extends BxDol
  15. {
  16. public function __construct()
  17. {
  18. parent::__construct();
  19. }
  20. public function serviceGetForm($aParams)
  21. {
  22. $this->prepareParams($aParams);
  23. if(empty($aParams['object']))
  24. return '';
  25. $oSearch = BxDolSearchExtended::getObjectInstance($aParams['object']);
  26. if(!$oSearch || !$oSearch->isEnabled())
  27. return '';
  28. return $oSearch->getForm($aParams);
  29. }
  30. public function serviceGetResults($aParams)
  31. {
  32. $this->prepareParams($aParams);
  33. if(empty($aParams['object']))
  34. return '';
  35. $oSearch = BxDolSearchExtended::getObjectInstance($aParams['object']);
  36. if(!$oSearch || !$oSearch->isEnabled())
  37. return '';
  38. $sResults = $oSearch->getResults($aParams);
  39. return !empty($sResults) ? $sResults : (isset($aParams['show_empty']) && (bool)$aParams['show_empty'] ? MsgBox(_t('_Empty')) : '');
  40. }
  41. public function prepareParams(&$aParams)
  42. {
  43. if(empty($aParams['object']) && bx_get('object') !== false)
  44. $aParams['object'] = bx_process_input(bx_get('object'), BX_DATA_TEXT);
  45. if(!isset($aParams['show_empty']) && bx_get('show_empty') !== false)
  46. $aParams['show_empty'] = (bool)bx_get('show_empty');
  47. if(empty($aParams['template']) && bx_get('template') !== false)
  48. $aParams['template'] = bx_process_input(bx_get('template'), BX_DATA_TEXT);
  49. if(empty($aParams['cond']) && bx_get('cond') !== false)
  50. $aParams['cond'] = unserialize(urldecode(bx_process_input(bx_get('cond'), BX_DATA_TEXT)));
  51. if(!isset($aParams['start']) && bx_get('start') !== false)
  52. $aParams['start'] = (int)bx_get('start');
  53. if(!isset($aParams['per_page']) && bx_get('per_page') !== false)
  54. $aParams['per_page'] = (int)bx_get('per_page');
  55. }
  56. }
  57. /** @} */