setPageNameIndex (BX_PAGE_DEFAULT); $oTemplate->setPageHeader ("Macros List"); $oTemplate->setPageContent ('page_main_code', PageCompMainCode()); $oTemplate->getPageCode(); /** * page code function */ function PageCompMainCode() { ob_start(); $aBaseClasses = array( 'BxBaseModGeneralModule' => 'bx_base_general', 'BxBaseServices' => 'bx_system_general', 'BxBaseServiceAccount' => 'bx_system_general', 'BxBaseServiceCategory' => 'bx_system_general', 'BxBaseServiceLogin' => 'bx_system_general', 'BxBaseServiceMetatags' => 'bx_system_general', 'BxBaseServiceProfiles' => 'bx_system_general', 'BxBaseChartServices' => 'bx_system_general', 'BxBasePaymentsServices' => 'bx_system_general', ); $o = BxDolModuleQuery::getInstance(); $aModules = $o->getModules(); foreach ($aModules as $aModule) { $oModule = BxDolModule::getInstance($aModule['name']); if (!$oModule) continue; $oModuleReflection = new ReflectionClass(get_class($oModule)); $a = bx_srv($aModule['name'], 'get_safe_services'); if (!$a) continue; echo '
';
foreach ($a as $sService => $sClass) {
if ($sClass) {
if (0 === strncmp('BxPayment', $sClass, 9))
bx_import(substr($sClass, 9), 'bx_payment');
$oModuleReflection = new ReflectionClass($sClass);
}
$oMethodReflection = $oModuleReflection->getMethod('service' . $sService);
$sDeclaringClass = $oMethodReflection->getDeclaringClass()->getName();
$sService = trim(preg_replace_callback('/[A-Z]/', function ($aMatches) {
return '_' . strtolower($aMatches[0]);
}, $sService), '_');
$sModule = isset($aBaseClasses[$sDeclaringClass]) ? $aBaseClasses[$sDeclaringClass] : $aModule['name'];
echo '';
echo '{{~' . $aModule['name'] . ':' . $sService . '[...]~}}';
echo '
';
}
echo '