BxDolModule.php 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. <?php defined('BX_DOL') or die('hack attempt');
  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 DolphinCore Dolphin Core
  7. * @{
  8. */
  9. /**
  10. * Base class for Module classes in modules engine.
  11. *
  12. * The object of the class contains major objects of the whole module. They are:
  13. * a. An object of config class
  14. * @see BxDolModuleConfig
  15. *
  16. * b. An object of database class.
  17. * @see BxDolModuleQuery
  18. *
  19. * c. An object of template class.
  20. * @see BxDolTemplate
  21. *
  22. *
  23. * Example of usage:
  24. * @see any module included in the default Dolphin's package.
  25. *
  26. *
  27. * Static Methods:
  28. *
  29. * Get an instance of a module's class.
  30. * @see BxDolModule::getInstance($sClassName)
  31. *
  32. *
  33. * Memberships/ACL:
  34. * Doesn't depend on user's membership.
  35. *
  36. *
  37. * Alerts:
  38. * no alerts available
  39. *
  40. */
  41. class BxDolModule extends BxDol {
  42. public $_aModule;
  43. public $_oDb;
  44. public $_oTemplate;
  45. public $_oConfig;
  46. /**
  47. * constructor
  48. */
  49. function __construct($aModule) {
  50. parent::__construct();
  51. $this->_aModule = $aModule;
  52. $sClassPrefix = $aModule['class_prefix'];
  53. $sClassPath = BX_DIRECTORY_PATH_MODULES . $aModule['path'] . 'classes/';
  54. $sClassName = $sClassPrefix . 'Config';
  55. require_once($sClassPath . $sClassName . '.php');
  56. $this->_oConfig = new $sClassName($aModule);
  57. $sClassName = $sClassPrefix . 'Db';
  58. require_once($sClassPath . $sClassName . '.php');
  59. $this->_oDb = new $sClassName($this->_oConfig);
  60. $sClassName = $sClassPrefix . 'Template';
  61. require_once($sClassPath . $sClassName . '.php');
  62. $this->_oTemplate = new $sClassName($this->_oConfig, $this->_oDb);
  63. $this->_oTemplate->loadTemplates();
  64. }
  65. /**
  66. * Static method to get an instance of a module's class.
  67. *
  68. * @param $sName module name.
  69. */
  70. public static function getInstance($sName) {
  71. if(empty($sName))
  72. return null;
  73. bx_import('BxDolModuleQuery');
  74. $aModule = BxDolModuleQuery::getInstance()->getModuleByName($sName);
  75. if(empty($aModule) || !is_array($aModule))
  76. return null;
  77. $sClassName = $aModule['class_prefix'] . 'Module';
  78. if(isset($GLOBALS['bxDolClasses'][$sClassName]))
  79. return $GLOBALS['bxDolClasses'][$sClassName];
  80. $sClassPath = BX_DIRECTORY_PATH_MODULES . $aModule['path'] . '/classes/' . $sClassName . '.php';
  81. if(!file_exists($sClassPath))
  82. return null;
  83. require_once($sClassPath);
  84. $GLOBALS['bxDolClasses'][$sClassName] = new $sClassName($aModule);
  85. return $GLOBALS['bxDolClasses'][$sClassName];
  86. }
  87. public static function getTitle($sUri) {
  88. return _t(self::getTitleKey($sUri));
  89. }
  90. public static function getTitleKey($sUri) {
  91. return '_sys_module_' . strtolower(str_replace(' ', '_', $sUri));
  92. }
  93. /**
  94. * get module name
  95. */
  96. function getName() {
  97. return $this->_aModule['name'];
  98. }
  99. /**
  100. * Check whether user logged in or not.
  101. *
  102. * @return boolean result of operation.
  103. */
  104. public function isLogged() {
  105. return isLogged();
  106. }
  107. /**
  108. * Get currently logged in user ID.
  109. *
  110. * @return integer user ID.
  111. */
  112. public function getUserId() {
  113. return getLoggedId();
  114. }
  115. /**
  116. * Get currently logged in user password.
  117. *
  118. * @return string user password.
  119. */
  120. public function getUserPassword () {
  121. return getLoggedPassword();
  122. }
  123. }
  124. /** @} */