BxBaseStudioPermissions.php 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. <?php
  2. /**
  3. * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
  4. * CC-BY License - http://creativecommons.org/licenses/by/3.0/
  5. *
  6. * @defgroup DolphinView Dolphin Studio Representation classes
  7. * @ingroup DolphinStudio
  8. * @{
  9. */
  10. defined('BX_DOL') or die('hack attempt');
  11. bx_import('BxDolStudioPermissions');
  12. class BxBaseStudioPermissions extends BxDolStudioPermissions {
  13. protected $sSubpageUrl;
  14. function BxBaseStudioPermissions($sPage = '') {
  15. parent::BxDolStudioPermissions($sPage);
  16. $this->sSubpageUrl = BX_DOL_URL_STUDIO . 'builder_permissions.php?page=';
  17. }
  18. function getPageCss() {
  19. return array_merge(parent::getPageCss(), array('forms.css', 'paginate.css', 'permissions.css'));
  20. }
  21. function getPageJs() {
  22. return array_merge(parent::getPageJs(), array('permissions.js'));
  23. }
  24. function getPageJsObject() {
  25. return 'oBxDolStudioPermissions';
  26. }
  27. function getPageMenu($aMenu = array(), $aMarkers = array()) {
  28. $sJsObject = $this->getPageJsObject();
  29. $aMenu = array();
  30. $aMenuItems = array(
  31. BX_DOL_STUDIO_PRM_TYPE_LEVELS,
  32. BX_DOL_STUDIO_PRM_TYPE_ACTIONS
  33. );
  34. foreach($aMenuItems as $sMenuItem)
  35. $aMenu[] = array(
  36. 'name' => $sMenuItem,
  37. 'icon' => 'mi-prm-' . $sMenuItem . '.png',
  38. 'link' => $this->sSubpageUrl . $sMenuItem,
  39. 'title' => _t('_adm_lmi_cpt_' . $sMenuItem),
  40. 'selected' => $sMenuItem == $this->sPage
  41. );
  42. return parent::getPageMenu($aMenu);
  43. }
  44. function getPageCode($bHidden = false) {
  45. $sMethod = 'get' . ucfirst($this->sPage);
  46. if(!method_exists($this, $sMethod))
  47. return '';
  48. return $this->$sMethod();
  49. }
  50. protected function getLevels() {
  51. return $this->getGrid('sys_studio_acl');
  52. }
  53. protected function getActions() {
  54. return $this->getGrid('sys_studio_acl_actions');
  55. }
  56. protected function getPrices() {
  57. return $this->getGrid('sys_studio_acl_prices');
  58. }
  59. protected function getGrid($sObjectName) {
  60. $oTemplate = BxDolStudioTemplate::getInstance();
  61. bx_import('BxDolGrid');
  62. $oGrid = BxDolGrid::getObjectInstance($sObjectName);
  63. if(!$oGrid)
  64. return '';
  65. $aTmplVars = array(
  66. 'js_object' => $this->getPageJsObject(),
  67. 'bx_repeat:blocks' => array(
  68. array(
  69. 'caption' => '',
  70. 'panel_top' => '',
  71. 'items' => $oGrid->getCode(),
  72. 'panel_bottom' => ''
  73. )
  74. )
  75. );
  76. return $oTemplate->parseHtmlByName('permissions.html', $aTmplVars);
  77. }
  78. }
  79. /** @} */