macros.php 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. <?php
  2. /**
  3. * Copyright (c) UNA, Inc - https://una.io
  4. * MIT License - https://opensource.org/licenses/MIT
  5. *
  6. * @defgroup UnaCoreSamples Samples
  7. * @{
  8. */
  9. /**
  10. * @page samples
  11. * @section macros Macros list
  12. */
  13. /**
  14. * This sample shows list of all available macros with links to the documentation
  15. */
  16. require_once('./../inc/header.inc.php');
  17. require_once(BX_DIRECTORY_PATH_INC . "design.inc.php");
  18. $oTemplate = BxDolTemplate::getInstance();
  19. $oTemplate->setPageNameIndex (BX_PAGE_DEFAULT);
  20. $oTemplate->setPageHeader ("Macros List");
  21. $oTemplate->setPageContent ('page_main_code', PageCompMainCode());
  22. $oTemplate->getPageCode();
  23. /**
  24. * page code function
  25. */
  26. function PageCompMainCode()
  27. {
  28. ob_start();
  29. $aBaseClasses = array(
  30. 'BxBaseModGeneralModule' => 'bx_base_general',
  31. );
  32. $o = BxDolModuleQuery::getInstance();
  33. $aModules = $o->getModules();
  34. foreach ($aModules as $aModule) {
  35. $oModule = BxDolModule::getInstance($aModule['name']);
  36. if (!$oModule)
  37. continue;
  38. $oModuleReflection = new ReflectionClass(get_class($oModule));
  39. $a = bx_srv($aModule['name'], 'get_safe_services');
  40. if (!$a)
  41. continue;
  42. echo '<h1>' . $aModule['title'] . '</h1>';
  43. echo '<p>';
  44. foreach ($a as $sService) {
  45. $oMethodReflection = $oModuleReflection->getMethod('service' . $sService);
  46. $sDeclaringClass = $oMethodReflection->getDeclaringClass()->getName();
  47. $sService = trim(preg_replace_callback('/[A-Z]/', function ($aMatches) {
  48. return '_' . strtolower($aMatches[0]);
  49. }, $sService), '_');
  50. $sModule = isset($aBaseClasses[$sDeclaringClass]) ? $aBaseClasses[$sDeclaringClass] : $aModule['name'];
  51. echo '<a href="https://ci.una.io/docs/service.html#' . $sModule . '-' . $sService . '">';
  52. echo '{{!' . $aModule['name'] . ':' . $sService . '[...]}}';
  53. echo '</a><br />';
  54. }
  55. echo '</p>';
  56. }
  57. $s = ob_get_clean();
  58. return DesignBoxContent("Macros List", $s, BX_DB_PADDING_DEF);
  59. }
  60. /** @} */