BxBaseStudioModule.php 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  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 UnaView UNA Studio Representation classes
  7. * @ingroup UnaStudio
  8. * @{
  9. */
  10. class BxBaseStudioModule extends BxDolStudioModule
  11. {
  12. protected $aMenuItems = array(
  13. array('name' => BX_DOL_STUDIO_MOD_TYPE_SETTINGS, 'icon' => 'cogs', 'title' => '_adm_lmi_cpt_settings')
  14. );
  15. function __construct($sModule = "", $sPage = "")
  16. {
  17. parent::__construct($sModule, $sPage);
  18. }
  19. function getPageCss()
  20. {
  21. return array_merge(parent::getPageCss(), array('module.css'));
  22. }
  23. function getPageJs()
  24. {
  25. return array_merge(parent::getPageJs(), array('settings.js', 'module.js'));
  26. }
  27. function getPageJsObject()
  28. {
  29. return 'oBxDolStudioModule';
  30. }
  31. function getPageCaption()
  32. {
  33. $oTemplate = BxDolStudioTemplate::getInstance();
  34. $aTmplVars = array(
  35. 'js_object' => $this->getPageJsObject(),
  36. 'content' => parent::getPageCaption(),
  37. );
  38. return $oTemplate->parseHtmlByName('mod_page_caption.html', $aTmplVars);
  39. }
  40. function getPageAttributes()
  41. {
  42. if((int)$this->aModule['enabled'] == 0)
  43. return 'style="display:none"';
  44. return parent::getPageAttributes();
  45. }
  46. function getPageMenu($aMenu = array(), $aMarkers = array())
  47. {
  48. $sJsObject = $this->getPageJsObject();
  49. $aMenu = array();
  50. foreach($this->aMenuItems as $aItem)
  51. $aMenu[] = array(
  52. 'name' => $aItem['name'],
  53. 'icon' => $aItem['icon'],
  54. 'link' => isset($aItem['link']) ? $aItem['link'] : BX_DOL_URL_STUDIO . 'module.php?name=' . $this->sModule . '&page=' . $aItem['name'],
  55. 'title' => _t($aItem['title']),
  56. 'selected' => $aItem['name'] == $this->sPage
  57. );
  58. return parent::getPageMenu($aMenu);
  59. }
  60. function getPageCode($bHidden = false)
  61. {
  62. $sMethod = 'get' . ucfirst($this->sPage);
  63. if(!method_exists($this, $sMethod))
  64. return '';
  65. if((int)$this->aModule['enabled'] != 1)
  66. BxDolStudioTemplate::getInstance()->addInjection('injection_bg_style', 'text', ' bx-std-page-bg-empty');
  67. return $this->$sMethod();
  68. }
  69. protected function getSettings()
  70. {
  71. $oPage = new BxTemplStudioSettings($this->sModule);
  72. return BxDolStudioTemplate::getInstance()->parseHtmlByName('module.html', array(
  73. 'content' => $oPage->getPageCode(),
  74. ));
  75. }
  76. }
  77. /** @} */