1
0

BxBaseFeatureServices.php 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  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 for 'Features' engine.
  11. */
  12. class BxBaseFeatureServices extends BxDol
  13. {
  14. public function __construct()
  15. {
  16. parent::__construct();
  17. }
  18. /**
  19. * @page service Service Calls
  20. * @section bx_system_general System Services
  21. * @subsection bx_system_general-features Features
  22. * @subsubsection bx_system_general-perform perform
  23. *
  24. * @code bx_srv('system', 'perform', [[...]], 'TemplFeatureServices'); @endcode
  25. * @code {{~system:perform:TemplFeatureServices[[...]]~}} @endcode
  26. *
  27. * Performs Perform action (featured, unfeatured, etc) with features object.
  28. * @param $aParams an array with necessary parameters
  29. *
  30. * @see BxBaseFeatureServices::servicePerform
  31. */
  32. /**
  33. * @ref bx_system_general-perform "perform"
  34. * @api @ref bx_system_general-perform "perform"
  35. */
  36. public function servicePerform($aParams)
  37. {
  38. if(is_string($aParams))
  39. $aParams = json_decode($aParams, true);
  40. if(!$aParams['s'] || !$aParams['o'])
  41. return ['code' => BX_DOL_OBJECT_ERR_NOT_AVAILABLE];
  42. $oFeature = BxDolFeature::getObjectInstance($aParams['s'], $aParams['o']);
  43. if(!$oFeature || !$oFeature->isEnabled())
  44. return ['code' => BX_DOL_OBJECT_ERR_NOT_AVAILABLE];
  45. $aResult = $oFeature->doFeature($aParams);
  46. return (int)$aResult['code'] != 0 ? $aResult : $aResult['api'];
  47. }
  48. }
  49. /** @} */