public function getUrl($mixedId) { $oPageQuery = new BxDolPageQuery(array()); $sContent = $oPageQuery->getPageBlockContent($mixedId); if (!$sContent) { return false; } list($sUrl) = explode('#', $sContent); if (!$sUrl) { return false; } return $sUrl; }
/** * Process page triggers. * Page triggers allow to automatically add page blocks to modules with no different if dependant module was install before or after the module page block belongs to. * For example module "Notes" adds page blocks to all profiles modules (Persons, Organizations, etc) * with no difference if persons module was installed before or after "Notes" module was installed. * @param $sPageTriggerName trigger name to process, usually specified in module installer class - @see BxBaseModGeneralInstaller * @return always true, always success */ public static function processPageTrigger($sPageTriggerName) { // get list of active modules $aModules = BxDolModuleQuery::getInstance()->getModulesBy(array('type' => 'modules', 'active' => 1)); // get list of page block triggers $aPageBlocks = BxDolPageQuery::getPageTriggers($sPageTriggerName); // check each page block trigger for all modules foreach ($aPageBlocks as $aPageBlock) { foreach ($aModules as $aModule) { if (!BxDolRequest::serviceExists($aModule['name'], 'get_page_object_for_page_trigger')) { continue; } $sPageObject = BxDolService::call($aModule['name'], 'get_page_object_for_page_trigger', array($sPageTriggerName)); if (!$sPageObject) { continue; } $aPageBlock['object'] = $sPageObject; BxDolPageQuery::addPageBlockToPage($aPageBlock); } } return true; }
/** * Get page object instance by object name * @param $sObject object name * @return object instance or false on error */ public static function getObjectInstance($sObject) { if (isset($GLOBALS['bxDolClasses']['BxDolPage!' . $sObject])) { return $GLOBALS['bxDolClasses']['BxDolPage!' . $sObject]; } $aObject = BxDolPageQuery::getPageObject($sObject); if (!$aObject || !is_array($aObject)) { return false; } bx_import('BxTemplPage'); $sClass = 'BxTemplPage'; if (!empty($aObject['override_class_name'])) { $sClass = $aObject['override_class_name']; if (!empty($aObject['override_class_file'])) { require_once BX_DIRECTORY_PATH_ROOT . $aObject['override_class_file']; } else { bx_import($sClass); } } $o = new $sClass($aObject); return $GLOBALS['bxDolClasses']['BxDolPage!' . $sObject] = $o; }