Alex Trofimov 7 лет назад
Родитель
Сommit
0fcb5e6b25
2 измененных файлов с 88 добавлено и 0 удалено
  1. 15 0
      modules/base/general/classes/BxBaseModGeneralModule.php
  2. 73 0
      samples/macros.php

+ 15 - 0
modules/base/general/classes/BxBaseModGeneralModule.php

@@ -285,6 +285,21 @@ class BxBaseModGeneralModule extends BxDolModule
         return $this->_oDb->getEntriesBy(array('type' => 'search_ids', 'search_params' => $aParams, 'start' => $iStart, 'per_page' => $iPerPage));
     }
 
+    /**
+     * @page service Service Calls
+     * @section bx_base_general Base General
+     * @subsection bx_base_general-other Other
+     * @subsubsection bx_base_general-module_icon module_icon
+     * 
+     * @code bx_srv('bx_posts', 'module_icon', [...]); @endcode
+     * 
+     * Get module icon as CSS class name with FontAwesome icon name class and color class
+     * 
+     * @see BxBaseModGeneralModule::serviceModuleIcon
+     */
+    /** 
+     * @ref bx_base_general-module_icon "module_icon"
+     */
     public function serviceModuleIcon ()
     {
         return isset($this->_oConfig->CNF['ICON']) ? $this->_oConfig->CNF['ICON'] : '';

+ 73 - 0
samples/macros.php

@@ -0,0 +1,73 @@
+<?php
+/**
+ * Copyright (c) UNA, Inc - https://una.io
+ * MIT License - https://opensource.org/licenses/MIT
+ *
+ * @defgroup    UnaCoreSamples Samples
+ * @{
+ */
+
+/**
+ * @page samples
+ * @section macros Macros list
+ */
+
+/**
+ * This sample shows list of all available macros with links to the documentation
+ */
+
+require_once('./../inc/header.inc.php');
+require_once(BX_DIRECTORY_PATH_INC . "design.inc.php");
+
+$oTemplate = BxDolTemplate::getInstance();
+$oTemplate->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',
+    );
+
+    $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 '<h1>' . $aModule['title'] . '</h1>';
+        echo '<p>';
+        foreach ($a as $sService) {
+            $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 '<a href="https://ci.una.io/docs/service.html#' . $sModule . '-' . $sService . '">';
+            echo '{{!' . $aModule['name']  . ':' . $sService . '[...]}}';
+            echo '</a><br />';
+        }
+        echo '</p>';
+    }
+
+    $s = ob_get_clean();
+    return DesignBoxContent("Macros List", $s, BX_DB_PADDING_DEF);
+}
+
+/** @} */