فهرست منبع

Ticket #3583 - Timeline: Dynamic browsing: Browse by context in Artificer.

AntonLV 4 سال پیش
والد
کامیت
c0d1f1b384

+ 26 - 0
modules/boonex/artificer/data/template/bx_timeline/css/view.css

@@ -2,6 +2,32 @@
 import url(../../../../../timeline/template/css/view.css);
 --*/
 
+/*--- Dynamic Browsing: Menu ---*/
+.bx-tl-menu-feeds.bx-menu-ver li img, 
+.bx-tl-menu-feeds.bx-menu-ver li .sys-icon {
+    display: inline-block;
+    vertical-align: top;
+    width: 1.5rem;
+    height: 1.5rem;
+    line-height: 1.5rem;
+    font-size: 1.0rem;
+}
+.bx-tl-menu-feeds.bx-menu-ver li .bx-menu-show {
+    display: none;
+}
+.bx-tl-menu-feeds.bx-menu-ver li .bx-menu-hide {
+    display: inline;
+}
+.bx-tl-menu-feeds.bx-menu-ver li.bx-menu-item-collapsed .bx-menu-show {
+    display: inline;
+}
+.bx-tl-menu-feeds.bx-menu-ver li.bx-menu-item-collapsed .bx-menu-hide {
+    display: none;
+}
+.bx-tl-menu-feeds.bx-menu-ver li.bx-menu-item-collapsed .bx-menu-item-subitems {
+    display: none;
+}
+
 /*--- Filters Style ---*/
 div.bx-tl-view-filters {
     min-width: 14rem;

+ 25 - 0
modules/boonex/artificer/data/template/bx_timeline/menu_feeds.html

@@ -0,0 +1,25 @@
+<ul class="__style_prefix__-menu-feeds bx-menu-ver bx-menu-object-__object__">
+    <bx_repeat:menu_items>
+        <li class="bx-menu-item bx-menu-item-__name__ __class_add__ text-sm font-medium">
+            <div class="bx-menu-item-cnt">
+                <div class="bx-menu-item-link flex items-center justify-between p-2 text-gray-600 dark:text-gray-300 hover:bg-gray-200 dark:hover:text-gray-100 dark:hover:bg-gray-700 hover:text-gray-900 rounded-md">
+                    <a class="flex items-center w-full truncate" href="__link__" onclick="__onclick__"__attrs__>
+                        <bx_include_auto:menu_icon.html />
+                        <span class="bx-menu-item-title ml-2 truncate">__title__</span>
+                    </a>
+                    <bx_if:show_toggle>
+                        <span class="bx-menu-collapse pl-2">
+                            <a href="javascript:void(0)" onclick="javascript:__js_object__.toggleMenuItemFeeds(this)">
+                                <i class="sys-icon chevron-up bx-menu-hide"></i>
+                                <i class="sys-icon chevron-down bx-menu-show"></i>
+                            </a>
+                        </span>
+                    </bx_if:show_toggle>
+                </div>
+                <bx_if:show_subitems>
+                    <div class="bx-menu-item-subitems">__subitems__</div>
+                </bx_if:show_subitems>
+            </div>
+        </li>
+    </bx_repeat:menu_items>
+</ul>

+ 17 - 0
modules/boonex/artificer/data/template/bx_timeline/menu_feeds_subitems.html

@@ -0,0 +1,17 @@
+<ul class="bx-menu-item-subitems bx-menu-pf-subitems bx-menu-ver">
+    <bx_repeat:menu_items>
+        <li class="bx-menu-subitem bx-menu-subitem-__name__ __class_add__ text-sm font-medium">
+            <div class="bx-menu-item-cnt flex items-center pl-4 pr-2 py-2 text-gray-600 dark:text-gray-300 hover:bg-gray-200 dark:hover:text-gray-100 dark:hover:bg-gray-700 hover:text-gray-900 rounded-md">
+                <a class="flex items-center truncate" href="__link__" onclick="__onclick__"__attrs__>
+                    <bx_include_auto:menu_icon.html />
+                    <span class="bx-menu-item-title ml-2 truncate">__title__</span>
+                </a>
+                <bx_if:addon>
+                    <div class="bx-menu-addon pl-2">
+                        <div class="bx-menu-addon-cnt bx-def-label menu">__addon__</div>
+                    </div>
+                </bx_if:addon>
+            </div>
+        </li>
+    </bx_repeat:menu_items>
+</ul>

+ 4 - 3
modules/boonex/timeline/classes/BxTimelineMenuFeeds.php

@@ -97,7 +97,10 @@ class BxTimelineMenuFeeds extends BxTemplMenu
             return $this->_oModule->_oTemplate->parseHtmlByName('menu_item_divider.html', []);
 
         $aResult = parent::_getMenuItem($a);
-        $aResult = array_merge($aResult, [
+        if(!$aResult)
+            return $aResult;
+
+        return array_merge($aResult, [
             'js_object' => $this->_sJsObject,
             'style_prefix' => $this->_sStylePrefix,
             'bx_if:show_toggle' => [
@@ -108,8 +111,6 @@ class BxTimelineMenuFeeds extends BxTemplMenu
                 ]
             ]
         ]);
-
-        return $aResult;
     }
 }
 

+ 30 - 0
modules/boonex/timeline/classes/BxTimelineModule.php

@@ -1375,6 +1375,36 @@ class BxTimelineModule extends BxBaseModNotificationsModule implements iBxDolCon
         ));
     }
 
+    /**
+     * @page service Service Calls
+     * @section bx_timeline Timeline
+     * @subsection bx_timeline-page_blocks Page Blocks
+     * @subsubsection bx_timeline-get_block_post_custom get_block_post_custom
+     * 
+     * @code bx_srv('bx_timeline', 'get_block_post_custom', [...]); @endcode
+     * 
+     * Get Post block for the Custom timeline.
+     *
+     * @return an array describing a block to display on the site. All necessary CSS and JS files are automatically added to the HEAD section of the site HTML.
+     * 
+     * @see BxTimelineModule::serviceGetBlockPostCustom
+     */
+    /** 
+     * @ref bx_timeline-get_block_post_custom "get_block_post_custom"
+     */
+    public function serviceGetBlockPostCustom($aParams)
+    {
+        if(!isLogged())
+            return '';
+
+        $iProfileId = $this->getProfileId();
+
+        if (!isset($aParams['form_display']))
+            $aParams['form_display'] = $this->_oConfig->getPostFormDisplay($aParams['type']);
+
+        return $this->_getBlockPost($iProfileId, $aParams);
+    }
+
     /**
      * @page service Service Calls
      * @section bx_timeline Timeline

+ 1 - 1
modules/boonex/timeline/template/menu_feeds.html

@@ -9,7 +9,7 @@
                     </a>
                     <bx_if:show_toggle>
                         <span class="bx-menu-collapse bx-def-padding-sec-left">
-                            <a href="javascript:void(0)" onclick="__js_object__.toggleMenuItemFeeds(this)">
+                            <a href="javascript:void(0)" onclick="javascript:__js_object__.toggleMenuItemFeeds(this)">
                                 <i class="sys-icon chevron-up bx-menu-hide"></i>
                                 <i class="sys-icon chevron-down bx-menu-show"></i>
                             </a>