AntonLV 6 лет назад
Родитель
Сommit
9854b1e875

+ 0 - 8
modules/boonex/lucid/data/template/bx_timeline/type_repost.html

@@ -1,8 +0,0 @@
-<bx_if:show_title>
-	<div class="__style_prefix__-title bx-def-margin-leftright bx-def-margin-sec-bottom">__title__</div>
-</bx_if:show_title>
-<bx_if:show_content>
-	<div class="__style_prefix__-content __style_prefix__-reposted bx-def-margin-sec-bottom">
-	__content__
-	</div>
-</bx_if:show_content>

+ 1 - 1
modules/boonex/russian/data/langs/bx_timeline/ru.xml

@@ -273,7 +273,7 @@
     <string name="_bx_timeline_txt_note_processing_awaiting"><![CDATA[Обновление будет опубликована как только сконвертируется видео.]]></string>
     <string name="_bx_timeline_txt_note_processing_failed"><![CDATA[Обновление не было опубликовано, тк произошла ошибка при конвертации видео. Обновите видео, чтобы решить проблему.]]></string>
     <string name="_bx_timeline_txt_rss_caption"><![CDATA[Лента {0}]]></string>
-    <string name="_bx_timeline_txt_added_sample"><![CDATA[добавил {0}]]></string>
+    <string name="_bx_timeline_txt_added_sample"><![CDATA[Добавил {0}]]></string>
     <string name="_bx_timeline_txt_user_added_sample"><![CDATA[{0} добавил {1}]]></string>
     <string name="_bx_timeline_txt_user_repost"><![CDATA[Репост от {0}]]></string>
     <string name="_bx_timeline_txt_user_reposted_user_sample"><![CDATA[{0} сделал репост {1} {2}]]></string>

+ 1 - 1
modules/boonex/timeline/classes/BxTimelineMenuItemManage.php

@@ -35,7 +35,7 @@ class BxTimelineMenuItemManage extends BxTimelineMenuItemActions
 
         $this->_bShowTitles = true;
         $this->_bShowCounters = true;
-        $this->_sTmplNameItem = '';
+        $this->_sTmplNameItem = 'menu_custom_item_ver.html';
     }
 }
 

+ 67 - 19
modules/boonex/timeline/classes/BxTimelineTemplate.php

@@ -1428,6 +1428,7 @@ class BxTimelineTemplate extends BxBaseModNotificationsTemplate
         $sAuthorUrl = $oAuthor->getUrl();
         $sAuthorUnit = $oAuthor->getUnit(0, array('template' => 'unit_wo_info'));
         $sAuthorBadges = $oAuthor->getBadges();
+        $sAuthorAction = _t($aEvent['sample_action'], _t($aEvent['sample']));
 
         if(($bViewItem || $this->_oConfig->isCountAllViews()) && !empty($aEvent['views']) && is_array($aEvent['views']) && isset($aEvent['views']['system']))
             $oModule->getViewObject($aEvent['views']['system'], $aEvent['views']['object_id'])->doView();
@@ -1437,11 +1438,26 @@ class BxTimelineTemplate extends BxBaseModNotificationsTemplate
         $aTmplVarsMenuItemActions = $this->_getTmplVarsMenuItemActions($aEvent, $aBrowseParams);
         $aTmplVarsMenuItemMeta = $this->_getTmplVarsMenuItemMeta($aEvent, $aBrowseParams);
 
+        $aTmplVarsManage = $this->_getTmplVarsManage($aEvent, $aBrowseParams);
+
+        $bTmplVarsAction = $this->_oConfig->isSystem($aEvent['type'], $aEvent['action']);
+        $aTmplVarsAction = array();
+        if($bTmplVarsAction) {
+            $aTmplVarsTimelineOwner = $this->_getTmplVarsTimelineOwner($aEvent);
+
+            $aTmplVarsAction = array(
+                'style_prefix' => $sStylePrefix,
+                'item_owner_action' => $sAuthorAction,
+                'bx_if:show_timeline_owner' => array(
+                    'condition' => !empty($aTmplVarsTimelineOwner),
+                    'content' => $aTmplVarsTimelineOwner
+                ),
+            );
+        }
+
         $aTmplVarsOwnerActions = $this->_getTmplVarsOwnerActions($aEvent, $aBrowseParams);
         $bTmplVarsOwnerActions = !empty($aTmplVarsOwnerActions); 
 
-        $aTmplVarsTimelineOwner = $this->_getTmplVarsTimelineOwner($aEvent);
-
         $bPinned = (int)$aEvent['pinned'] > 0;
         $bSticked = (int)$aEvent['sticked'] > 0;
         $bPromoted = (int)$aEvent['promoted'] > 0;
@@ -1480,7 +1496,11 @@ class BxTimelineTemplate extends BxBaseModNotificationsTemplate
             $oForm->initChecker($aEvent);
 
             if(!empty($oForm->aInputs) && is_array($oForm->aInputs))
-                $sFields = $oForm->getCode();
+                foreach($oForm->aInputs as $aInput)
+                    if($aInput['type'] != 'hidden' && !empty($aInput['value'])) {
+                        $sFields = $oForm->getCode();
+                        break;
+                    }
         }
 
         $aTmplVars = array (
@@ -1504,11 +1524,6 @@ class BxTimelineTemplate extends BxBaseModNotificationsTemplate
             'item_owner_title' => bx_html_attribute($sAuthorName),
             'item_owner_name' => $sAuthorName .' '. $sAuthorBadges,
             'item_owner_unit' => $sAuthorUnit,
-            'item_owner_action' => _t($aEvent['sample_action'], _t($aEvent['sample'])),
-            'bx_if:show_timeline_owner' => array(
-                'condition' => !empty($aTmplVarsTimelineOwner),
-                'content' => $aTmplVarsTimelineOwner
-            ),
             'item_view_url' => $this->_oConfig->getItemViewUrl($aEvent),
             'item_date' => bx_time_js($aEvent['date']),
             'bx_if:show_pinned' => array(
@@ -1529,6 +1544,15 @@ class BxTimelineTemplate extends BxBaseModNotificationsTemplate
                     'style_prefix' => $sStylePrefix,
             	)
             ),
+            'bx_if:show_manage' => array(
+                'condition' => !empty($aTmplVarsManage),
+                'content' => $aTmplVarsManage
+            ),
+            'bx_if:show_item_action' => array(
+                'condition' => $bTmplVarsAction,
+                'content' => $aTmplVarsAction
+            ),
+            'content_type' => $sType,
             'content' => is_string($aEvent['content']) ? $aEvent['content'] : $this->_getContent($sType, $aEvent, $aBrowseParams),
             'bx_if:show_location' => array(
             	'condition' => !empty($sLocation),
@@ -1725,6 +1749,35 @@ class BxTimelineTemplate extends BxBaseModNotificationsTemplate
         );
     }
 
+    protected function _getTmplVarsManage(&$aEvent, $aBrowseParams = array())
+    {
+        $oMenu = BxDolMenu::getObjectInstance($this->_oConfig->getObject('menu_item_actions_all'));
+        if($oMenu)
+            return array();
+        
+        $oMenu = BxDolMenu::getObjectInstance($this->_oConfig->getObject('menu_item_manage'));
+        if(!$oMenu)
+            return array();
+
+        $oMenu->setEvent($aEvent, $aBrowseParams);
+        $oMenu->setDynamicMode(isset($aBrowseParams['dynamic_mode']) && $aBrowseParams['dynamic_mode'] === true);
+        if(!$oMenu->isVisible())
+            return array();
+
+        $sOnclick = "bx_menu_popup('bx_timeline_menu_item_manage', this, {'id':'bx_timeline_menu_item_manage_{content_id}'}, {content_id:{content_id}, name:'{name}', view:'{view}', type:'{type}'});";
+        $sOnclick = bx_replace_markers($sOnclick, array(
+            'content_id' => $aEvent['id'],            
+            'view' => $aBrowseParams['view'],
+            'type' => $aBrowseParams['type'],
+            'name' => $aBrowseParams['name'],
+        ));
+
+        return array(
+            'style_prefix' => $this->_oConfig->getPrefix('style'),
+            'onclick' => $sOnclick
+        );
+    }
+
     protected function _getTmplVarsMenuItemCounters(&$aEvent, $aBrowseParams = array())
     {
         $oMenu = BxDolMenu::getObjectInstance($this->_oConfig->getObject('menu_item_counters'));
@@ -2072,22 +2125,16 @@ class BxTimelineTemplate extends BxBaseModNotificationsTemplate
         $sSample = _t($aContent['sample']);
         $sSampleLink = empty($aContent['url']) ? $sSample : $this->parseLink($aContent['url'], $sSample);
 
-        $sTitle = _t('_bx_timeline_txt_reposted', $sOwnerLink, $sSampleLink);
-        $sText = $this->_getContent($aContent['parse_type'], $aEvent, $aBrowseParams);
+        $sContent = $this->_getContent($aContent['parse_type'], $aEvent, $aBrowseParams);
 
         return array(
-            'bx_if:show_title' => array(
-                'condition' => !empty($sTitle),
-                'content' => array(
-                    'style_prefix' => $sStylePrefix,
-                    'title' => $sTitle,
-                )
-            ),
+            'style_prefix' => $sStylePrefix,
+            'item_owner_action' => _t('_bx_timeline_txt_reposted', $sOwnerLink, $sSampleLink),
             'bx_if:show_content' => array(
-                'condition' => !empty($sText),
+                'condition' => !empty($sContent),
                 'content' => array(
                     'style_prefix' => $sStylePrefix,
-                    'content' => $sText,
+                    'content' => $sContent,
                 )
             )
         );
@@ -2173,6 +2220,7 @@ class BxTimelineTemplate extends BxBaseModNotificationsTemplate
 
                 $sContent = _t('_sys_menu_item_title_sm_subscribe');
                 $aTmplVarsActions[] = array(
+                    'style_prefix' => $sStylePrefix,
                     'href' => "javascript:void(0)",
                     'onclick' => "bx_conn_action(this, '" . $sConnection . "', 'add', '" . $iOwner . "', false, function(oData, eElement) {" . $sJsObject . ".onConnect(eElement, oData);})",
                     'title' => bx_html_attribute($sContent),

+ 1 - 1
modules/boonex/timeline/install/langs/en.xml

@@ -273,7 +273,7 @@
     <string name="_bx_timeline_txt_note_processing_awaiting"><![CDATA[Update will be published as soon as video is converted]]></string>
     <string name="_bx_timeline_txt_note_processing_failed"><![CDATA[Update isn't published because video conversion failed, edit video to fix the issue.]]></string>
     <string name="_bx_timeline_txt_rss_caption"><![CDATA[{0}'s timeline]]></string>
-    <string name="_bx_timeline_txt_added_sample"><![CDATA[added {0}]]></string>
+    <string name="_bx_timeline_txt_added_sample"><![CDATA[Added {0}]]></string>
     <string name="_bx_timeline_txt_user_added_sample"><![CDATA[{0} added {1}]]></string>
     <string name="_bx_timeline_txt_user_repost"><![CDATA[{0}'s repost]]></string>
     <string name="_bx_timeline_txt_user_reposted_user_sample"><![CDATA[{0} reposted {1}'s {2}]]></string>

+ 2 - 2
modules/boonex/timeline/install/sql/enable.sql

@@ -135,11 +135,11 @@ INSERT INTO `sys_menu_items`(`set_name`, `module`, `name`, `title_system`, `titl
 ('bx_timeline_menu_item_actions', 'bx_timeline', 'item-reaction', '_bx_timeline_menu_item_title_system_item_reaction', '', 'javascript:void(0)', '', '', '', '', '', 0, 2147483647, 1, 0, 1, 30),
 ('bx_timeline_menu_item_actions', 'bx_timeline', 'item-score', '_bx_timeline_menu_item_title_system_item_score', '', 'javascript:void(0)', '', '', '', '', '', 0, 2147483647, 0, 0, 1, 40),
 ('bx_timeline_menu_item_actions', 'bx_timeline', 'item-share', '_bx_timeline_menu_item_title_system_item_share', '_bx_timeline_menu_item_title_item_share', 'javascript:void(0)', 'bx_menu_popup(''bx_timeline_menu_item_share'', this, {''id'':''bx_timeline_menu_item_share_{content_id}''}, {content_id:{content_id}, name:''{name}'', view:''{view}'', type:''{type}''});', '', 'share-alt', '', 'bx_timeline_menu_item_share', 1, 2147483647, 1, 0, 1, 50),
-('bx_timeline_menu_item_actions', 'bx_timeline', 'item-more', '_bx_timeline_menu_item_title_system_item_more', '_bx_timeline_menu_item_title_item_more', 'javascript:void(0)', 'bx_menu_popup(''bx_timeline_menu_item_manage'', this, {''id'':''bx_timeline_menu_item_manage_{content_id}''}, {content_id:{content_id}, name:''{name}'', view:''{view}'', type:''{type}''});', '', 'ellipsis-h', '', 'bx_timeline_menu_item_manage', 1, 2147483647, 1, 0, 1, 60);
+('bx_timeline_menu_item_actions', 'bx_timeline', 'item-more', '_bx_timeline_menu_item_title_system_item_more', '_bx_timeline_menu_item_title_item_more', 'javascript:void(0)', 'bx_menu_popup(''bx_timeline_menu_item_manage'', this, {''id'':''bx_timeline_menu_item_manage_{content_id}''}, {content_id:{content_id}, name:''{name}'', view:''{view}'', type:''{type}''});', '', 'ellipsis-v', '', 'bx_timeline_menu_item_manage', 1, 2147483647, 0, 0, 1, 60);
 
 -- MENU: all actions menu for view entry 
 INSERT INTO `sys_objects_menu`(`object`, `title`, `set_name`, `module`, `template_id`, `deletable`, `active`, `override_class_name`, `override_class_file`) VALUES 
-('bx_timeline_menu_item_actions_all', '_bx_timeline_menu_title_item_actions_all', 'bx_timeline_menu_item_actions_all', 'bx_timeline', 15, 0, 1, 'BxTimelineMenuItemActionsAll', 'modules/boonex/timeline/classes/BxTimelineMenuItemActionsAll.php');
+('bx_timeline_menu_item_actions_all', '_bx_timeline_menu_title_item_actions_all', 'bx_timeline_menu_item_actions_all', 'bx_timeline', 15, 0, 0, 'BxTimelineMenuItemActionsAll', 'modules/boonex/timeline/classes/BxTimelineMenuItemActionsAll.php');
 
 INSERT INTO `sys_menu_sets`(`set_name`, `module`, `title`, `deletable`) VALUES 
 ('bx_timeline_menu_item_actions_all', 'bx_timeline', '_bx_timeline_menu_set_title_item_actions_all', 0);

+ 109 - 37
modules/boonex/timeline/template/css/view.css

@@ -346,21 +346,28 @@ div.bx-tl-item div.bx-tl-item-owner {
     position: relative;
     text-align: left;
 }
+
 div.bx-tl-item div.bx-tl-owner-avatar {
     position: absolute;
     top: 0px;
     left: 0px;
 }
+
 div.bx-tl-item div.bx-tl-owner-info {
     display: -webkit-flex;
     display: flex;
-    -webkit-align-items: center;
-    align-items: center;
+    -webkit-flex-direction: column;
+    flex-direction: column;
+    -webkit-align-items: flex-start;
+    align-items: flex-start;
+    -webkit-justify-content: center;
+    justify-content: center;
 }
+
 div.bx-tl-item div.bx-tl-item-owner.bx-tl-io-with-actions div.bx-tl-owner-info {
-    margin-right: 68px;
-    margin-right: 4.25rem;
+    margin-right: 2.5rem;
 }
+
 div.bx-tl-item div.bx-tl-owner-name {
     position: relative;
     display: -webkit-flex;
@@ -382,11 +389,6 @@ div.bx-tl-item div.bx-tl-owner-name > * {
     vertical-align: middle;
 }
 
-div.bx-tl-item div.bx-tl-owner-name > .bx-tl-on-nl {
-    width: 100%;
-    height: 0;
-}
-
 div.bx-tl-item div.bx-tl-owner-name a.bx-tl-owner-name,
 div.bx-tl-item div.bx-tl-owner-name .bx-tl-timeline-owner-name a.bx-tl-ton-item {
     font-weight: 700;
@@ -406,17 +408,14 @@ div.bx-tl-item div.bx-tl-owner-name .bx-tl-hot .sys-icon {
     display: inline-block;
     cursor: default;
 }
-div.bx-tl-item div.bx-tl-owner-actions {
-    position: absolute;
-    top: 0px;
-    right: 0px;
-	line-height: 48px;
-	line-height: 3rem;
+
+/*+++ Item Owner Actions Style +++*/
+.bx-tl-owner-actions .bx-tl-oa-div,
+.bx-tl-owner-actions .bx-tl-owner-action {
+    padding: 0 0 0 0.5rem;
 }
-div.bx-tl-item div.bx-tl-owner-actions .bx-btn {
-    display: inline-block;
-	float: none;
-	vertical-align: middle;
+.bx-tl-view.bx-tl-view-outline .bx-tl-owner-actions .bx-tl-oa-div:first-of-type {
+    display: none;
 }
 
 /*--- Item Meta Info Style ---*/
@@ -447,6 +446,39 @@ div.bx-tl-item div.bx-tl-owner-actions .bx-btn {
     display: inline-block;
     vertical-align: top;
 }
+.bx-tl-item-meta .bx-tl-date,
+.bx-tl-item-meta .bx-tl-pinned .sys-icon,
+.bx-tl-item-meta .bx-tl-sticked .sys-icon,
+.bx-tl-item-meta .bx-tl-hot .sys-icon {
+    color: rgba(40, 60, 80, 0.5);
+}
+.bx-tl-item-meta .bx-tl-pinned .sys-icon,
+.bx-tl-item-meta .bx-tl-sticked .sys-icon,
+.bx-tl-item-meta .bx-tl-hot .sys-icon {
+    display: inline-block;
+    cursor: default;
+}
+
+/*--- Item Manage Style ---*/
+.bx-tl-item-manage {
+    position: absolute;
+    top: 0;
+    right: 0;
+}
+.bx-tl-item-manage a {
+    position: relative;
+    width: 2rem;
+    height: 2rem;
+}
+
+/*--- Item Action Style ---*/
+div.bx-tl-item div.bx-tl-item-action .bx-tl-timeline-owner-name a.bx-tl-ton-item {
+    font-weight: 700;
+}
+div.bx-tl-item div.bx-tl-item-action .bx-tl-timeline-owner-name .bx-tl-ton-div:first-child {
+    display: none;
+}
+
 
 /*--- Item Content Style ---*/
 div.bx-tl-item-content {
@@ -497,14 +529,14 @@ div.bx-tl-item-text div.bx-tl-content-show-more {
     position: relative;
 }
 div.bx-tl-item-text div.bx-tl-content p {
-	margin-top: 10px;
-	margin-top: 0.625rem;
-	margin-bottom: 10px;
-	margin-bottom: 0.625rem;
+    margin-top: 10px;
+    margin-top: 0.625rem;
+    margin-bottom: 10px;
+    margin-bottom: 0.625rem;
 }
 div.bx-tl-item-text div.bx-tl-content img {
-	max-width: 100%;
-	height: auto;
+    max-width: 100%;
+    height: auto;
 }
 
 /*--- Item Images Style ---*/
@@ -518,19 +550,19 @@ div.bx-tl-item div.bx-tl-item-image {
 }
 
 /*--- Item Activity (Actions and Manage are different menus) ---*/
-div.bx-tl-item div.bx-tl-item-activity .bx-menu-custom:not(.bx-menu-submenu-more-auto) {
+div.bx-tl-item div.bx-tl-item-activity .bx-menu-custom.bx-menu-hor {
     position: relative;
     display: -webkit-flex;
     display: flex;
     -webkit-justify-content: flex-start;
     justify-content: flex-start;
 }
-div.bx-tl-item div.bx-tl-item-activity .bx-menu-custom:not(.bx-menu-submenu-more-auto).bx-mma-ready {
+div.bx-tl-item div.bx-tl-item-activity .bx-menu-custom.bx-menu-hor.bx-mma-ready {
     -webkit-justify-content: flex-start;
     justify-content: flex-start;
 }
-div.bx-tl-item div.bx-tl-item-activity .bx-menu-custom:not(.bx-menu-submenu-more-auto)::before,
-div.bx-tl-item div.bx-tl-item-activity .bx-menu-custom:not(.bx-menu-submenu-more-auto)::after {
+div.bx-tl-item div.bx-tl-item-activity .bx-menu-custom.bx-menu-hor::before,
+div.bx-tl-item div.bx-tl-item-activity .bx-menu-custom.bx-menu-hor::after {
     display: none;
 }
 div.bx-tl-item div.bx-tl-item-activity .bx-menu-custom li > a,
@@ -539,9 +571,12 @@ div.bx-tl-item div.bx-tl-item-activity .bx-menu-custom li > span {
 }
 div.bx-tl-item div.bx-tl-item-activity.bx-tl-ia-counters .bx-menu-custom.bx-menu-hor li > a,
 div.bx-tl-item div.bx-tl-item-activity.bx-tl-ia-counters .bx-menu-custom.bx-menu-hor li > div,
-div.bx-tl-item div.bx-tl-item-activity.bx-tl-ia-counters .bx-menu-custom.bx-menu-hor li > span,
-div.bx-tl-item div.bx-tl-item-activity .bx-menu-custom.bx-menu-hor.bx-menu-more-auto:not(.bx-menu-submenu-more-auto) li > a,
-div.bx-tl-item div.bx-tl-item-activity .bx-menu-custom.bx-menu-hor.bx-menu-more-auto:not(.bx-menu-submenu-more-auto) li > span {
+div.bx-tl-item div.bx-tl-item-activity.bx-tl-ia-counters .bx-menu-custom.bx-menu-hor li > span {
+    margin-top: 1.0rem;
+    margin-right: 1.25rem;
+}
+div.bx-tl-item div.bx-tl-item-activity .bx-menu-custom.bx-menu-hor.bx-menu-hor li > a,
+div.bx-tl-item div.bx-tl-item-activity .bx-menu-custom.bx-menu-hor.bx-menu-hor li > span {
     margin-right: 1.25rem;
 }
 div.bx-tl-item div.bx-tl-item-activity .bx-menu-custom li > span {
@@ -557,6 +592,7 @@ div.bx-tl-item div.bx-tl-item-activity .bx-menu-custom li > span img {
     background-position: center center;
 }
 
+div.bx-tl-item div.bx-tl-item-manage .bx-menu-item-icon,
 div.bx-tl-item div.bx-tl-item-activity .bx-menu-custom li .sys-action-do-icon,
 div.bx-tl-item div.bx-tl-item-activity .bx-menu-custom li .bx-menu-item-icon {
     box-sizing: border-box;
@@ -576,7 +612,7 @@ div.bx-tl-item div.bx-tl-item-activity .bx-menu-custom li .bx-menu-item-icon .sy
     vertical-align: top;
 }
 
-/*--- Item Activity (all actions in one menu) ---*/
+/*--- Item Activity (all actions in one menu) and Item Manage (separate menu) ---*/
 div.bx-tl-item div.bx-tl-item-activity .bx-menu-custom.bx-menu-more-auto > li.bx-menu-item {
     padding: 0;
     white-space: nowrap;
@@ -584,9 +620,14 @@ div.bx-tl-item div.bx-tl-item-activity .bx-menu-custom.bx-menu-more-auto > li.bx
 div.bx-tl-item div.bx-tl-item-activity .bx-menu-custom.bx-menu-more-auto > li.bx-menu-item.bx-menu-item-more-auto a {
     padding: 0;
 }
+.bx-popup .bx-menu-custom.bx-menu-custom-ver.bx-menu-object-bx_timeline_menu_item_manage > li.bx-menu-item  a > span,
 div.bx-tl-item div.bx-tl-item-activity .bx-menu-custom.bx-menu-more-auto .bx-popup .bx-menu-custom.bx-menu-submenu-more-auto > li.bx-menu-item  a > span {
     margin-left: 0;
 }
+.bx-popup .bx-menu-custom.bx-menu-custom-ver.bx-menu-object-bx_timeline_menu_item_manage > li.bx-menu-item  a .sys-action-do-icon,
+.bx-popup .bx-menu-custom.bx-menu-custom-ver.bx-menu-object-bx_timeline_menu_item_manage > li.bx-menu-item  a .sys-action-do-icon > .sys-icon,
+.bx-popup .bx-menu-custom.bx-menu-custom-ver.bx-menu-object-bx_timeline_menu_item_manage > li.bx-menu-item  a .bx-menu-item-icon,
+.bx-popup .bx-menu-custom.bx-menu-custom-ver.bx-menu-object-bx_timeline_menu_item_manage > li.bx-menu-item  a .bx-menu-item-icon > .sys-icon,
 div.bx-tl-item div.bx-tl-item-activity .bx-menu-custom.bx-menu-more-auto .bx-popup .bx-menu-custom.bx-menu-submenu-more-auto > li.bx-menu-item  a .sys-action-do-icon,
 div.bx-tl-item div.bx-tl-item-activity .bx-menu-custom.bx-menu-more-auto .bx-popup .bx-menu-custom.bx-menu-submenu-more-auto > li.bx-menu-item  a .sys-action-do-icon > .sys-icon,
 div.bx-tl-item div.bx-tl-item-activity .bx-menu-custom.bx-menu-more-auto .bx-popup .bx-menu-custom.bx-menu-submenu-more-auto > li.bx-menu-item  a .bx-menu-item-icon,
@@ -600,11 +641,42 @@ div.bx-tl-item div.bx-tl-item-activity .bx-menu-custom.bx-menu-more-auto .bx-pop
     line-height: 1.5rem;
     font-size: 1.0rem;
 }
+.bx-popup .bx-menu-custom.bx-menu-custom-ver.bx-menu-object-bx_timeline_menu_item_manage > li.bx-menu-item  a .sys-action-do-text,
+.bx-popup .bx-menu-custom.bx-menu-custom-ver.bx-menu-object-bx_timeline_menu_item_manage > li.bx-menu-item  a .bx-menu-item-title,
 div.bx-tl-item div.bx-tl-item-activity .bx-menu-custom.bx-menu-more-auto .bx-popup .bx-menu-custom.bx-menu-submenu-more-auto > li.bx-menu-item  a .sys-action-do-text,
 div.bx-tl-item div.bx-tl-item-activity .bx-menu-custom.bx-menu-more-auto .bx-popup .bx-menu-custom.bx-menu-submenu-more-auto > li.bx-menu-item  a .bx-menu-item-title {
     margin-left: 0.5rem;
 }
 
+/*--- Item Activity without Auto-More ---*/
+div.bx-tl-item div.bx-tl-item-activity:not(.bx-tl-ia-counters) .bx-menu-custom.bx-menu-hor:not(.bx-menu-more-auto),
+div.bx-tl-item div.bx-tl-item-activity:not(.bx-tl-ia-counters) .bx-menu-custom.bx-menu-hor:not(.bx-menu-more-auto) li {
+    overflow: hidden;
+}
+div.bx-tl-item div.bx-tl-item-activity:not(.bx-tl-ia-counters) .bx-menu-custom.bx-menu-hor:not(.bx-menu-more-auto) a,
+div.bx-tl-item div.bx-tl-item-activity:not(.bx-tl-ia-counters) .bx-menu-custom.bx-menu-hor:not(.bx-menu-more-auto) span {
+    display: block;
+    white-space: nowrap;
+}
+div.bx-tl-item div.bx-tl-item-activity:not(.bx-tl-ia-counters) .bx-menu-custom.bx-menu-hor:not(.bx-menu-more-auto) span.bx-menu-item-icon,
+div.bx-tl-item div.bx-tl-item-activity:not(.bx-tl-ia-counters) .bx-menu-custom.bx-menu-hor:not(.bx-menu-more-auto) span.sys-action-do-icon {
+    -webkit-flex-shrink: 0;
+    flex-shrink: 0;
+}
+div.bx-tl-item div.bx-tl-item-activity:not(.bx-tl-ia-counters) .bx-menu-custom.bx-menu-hor:not(.bx-menu-more-auto) .sys-action-element-holder,
+div.bx-tl-item div.bx-tl-item-activity:not(.bx-tl-ia-counters) .bx-menu-custom.bx-menu-hor:not(.bx-menu-more-auto) .bx-menu-item-title,
+div.bx-tl-item div.bx-tl-item-activity:not(.bx-tl-ia-counters) .bx-menu-custom.bx-menu-hor:not(.bx-menu-more-auto) .sys-action-do-text {
+    max-width: 100%;
+
+    -webkit-flex-shrink: 1;
+    flex-shrink: 1;
+}
+div.bx-tl-item div.bx-tl-item-activity:not(.bx-tl-ia-counters) .bx-menu-custom.bx-menu-hor:not(.bx-menu-more-auto) .bx-menu-item-title,
+div.bx-tl-item div.bx-tl-item-activity:not(.bx-tl-ia-counters) .bx-menu-custom.bx-menu-hor:not(.bx-menu-more-auto) .sys-action-do-text {
+    overflow: hidden;
+    text-overflow: ellipsis;
+}
+
 /*--- Item Style: Timeline ---*/
 div.bx-tl-view-timeline div.bx-tl-items:before {
     content: '';
@@ -680,12 +752,12 @@ div.bx-tl-view-outline div.bx-tl-content-show-more a {
 
 /*+++ Item Image +++*/
 div.bx-tl-view-search div.bx-tl-item-images {
-	margin-left: 0px;
-	margin-right: 0px;
+    margin-left: 0px;
+    margin-right: 0px;
 }
 div.bx-tl-view-search div.bx-tl-item-image {
-	margin-right: 2px;
-	margin-right: 0.125rem;
+    margin-right: 2px;
+    margin-right: 0.125rem;
 }
 div.bx-tl-view-timeline div.bx-tl-item-image,
 div.bx-tl-view-outline div.bx-tl-item-image,

+ 52 - 40
modules/boonex/timeline/template/item_outline.html

@@ -13,54 +13,66 @@
             </bx_if:show_note>
             <div class="__style_prefix__-item-owner bx-def-margin-leftright __class_owner__"> 
                 <div class="__style_prefix__-owner-avatar bx-def-thumb-size">__item_owner_unit__</div>
-                    <div class="__style_prefix__-owner-info bx-def-thumb-size-min-height bx-def-thumb-size-left-indent">
-                        <!-- NOTE: Spaces after and between elements in 'owner-name' DIV are needed for better line folding -->
-                        <div class="__style_prefix__-owner-name bx-def-font-middle bx-def-font-grayed">
-                            <a href="__item_owner_url__" class="__style_prefix__-owner-name" title="__item_owner_title__">__item_owner_name__</a><span>&nbsp;__item_owner_action__&nbsp;</span> 
-                            <bx_if:show_timeline_owner>
-                                <span><bx_text:_bx_timeline_txt_to />&nbsp;</span> 
-                                <span class="__style_prefix__-timeline-owner-name">
-                                    <bx_repeat:owners><span class="__style_prefix__-ton-div">, </span><a href="__owner_url__" class="__style_prefix__-ton-item">__owner_username__</a></bx_repeat:owners>
-                                </span>
-                            </bx_if:show_timeline_owner>
-                            <bx_if:show_menu_item_meta>
-                                <span class="bx-tl-on-nl"></span>
-                                <span class="__style_prefix__-item-meta bx-def-font-grayed">__meta__</span>
-                            </bx_if:show_menu_item_meta>
-                            <bx_if:show_pinned>
-                                <span class="__style_prefix__-pinned bx-def-margin-sec-left">
-                                    <i class="sys-icon thumbtack" title="<bx_text_attribute:_bx_timeline_txt_pinned />"></i>
-                                </span>
-                            </bx_if:show_pinned>
-                            <bx_if:show_sticked>
-                                <span class="__style_prefix__-sticked bx-def-margin-sec-left">
-                                    <i class="sys-icon thumbtack" title="<bx_text_attribute:_bx_timeline_txt_sticked />"></i>
-                                </span>
-                            </bx_if:show_sticked>
-                            <bx_if:show_hot>
-                                <span class="__style_prefix__-hot bx-def-margin-sec-left">
-                                    <i class="sys-icon fire" title="<bx_text_attribute:_bx_timeline_txt_hot />"></i>
-                                </span>
-                            </bx_if:show_hot>
-                        </div>
+                <div class="__style_prefix__-owner-info bx-def-thumb-size-min-height bx-def-thumb-size-left-indent">
+                    <div class="__style_prefix__-owner-name bx-def-font-middle bx-def-font-grayed">
+                        <a href="__item_owner_url__" class="__style_prefix__-owner-name" title="__item_owner_title__">__item_owner_name__</a>
+                        <bx_if:show_owner_actions>
+                            <span class="__style_prefix__-owner-actions">
+                                <bx_repeat:owner_actions>
+                                    <span class="__style_prefix__-oa-div">&#183;</span><a class="__style_prefix__-owner-action" href="__href__" onclick="__onclick__" title="__title__"><i class="sys-icon __icon__"></i></a>
+                                </bx_repeat:owner_actions>
+                            </span>
+                        </bx_if:show_owner_actions>
                     </div>
-                    <bx_if:show_owner_actions>
-                    <div class="__style_prefix__-owner-actions bx-def-thumb-size-min-height">
-                        <bx_repeat:owner_actions>
-                            <a class="bx-btn bx-btn-small" href="__href__" onclick="__onclick__" title="__title__"><i class="sys-icon __icon__"></i></a>
-                        </bx_repeat:owner_actions>
+                    <div class="__style_prefix__-item-meta bx-def-font-middle bx-def-font-grayed">
+                        <bx_if:show_menu_item_meta>
+                            <span class="__style_prefix__-meta">__meta__</span>
+                        </bx_if:show_menu_item_meta>
+                        <bx_if:show_pinned>
+                            <span class="__style_prefix__-pinned bx-def-margin-sec-left">
+                                <i class="sys-icon thumbtack" title="<bx_text_attribute:_bx_timeline_txt_pinned />"></i>
+                            </span>
+                        </bx_if:show_pinned>
+                        <bx_if:show_sticked>
+                            <span class="__style_prefix__-sticked bx-def-margin-sec-left">
+                                <i class="sys-icon thumbtack" title="<bx_text_attribute:_bx_timeline_txt_sticked />"></i>
+                            </span>
+                        </bx_if:show_sticked>
+                        <bx_if:show_hot>
+                            <span class="__style_prefix__-hot bx-def-margin-sec-left">
+                                <i class="sys-icon fire" title="<bx_text_attribute:_bx_timeline_txt_hot />"></i>
+                            </span>
+                        </bx_if:show_hot>
                     </div>
-                </bx_if:show_owner_actions>
+                    <bx_if:show_manage>
+                        <div class="__style_prefix__-item-manage">
+                            <a href="javascript:void(0)" onclick="__onclick__">
+                                <span class="bx-menu-item-icon bx-def-align-center"><i class="sys-icon ellipsis-v"></i></span>
+                            </a>
+                        </div>
+                    </bx_if:show_manage>
+                </div>
             </div>
-            <div class="__style_prefix__-item-content bx-clearfix">__content__</div>
+            <bx_if:show_item_action>
+                <div class="__style_prefix__-item-action bx-def-margin-lefttopright bx-def-font-middle bx-def-font-grayed">
+                    <span>__item_owner_action__&nbsp;</span>
+                    <bx_if:show_timeline_owner>
+                        <span><bx_text:_bx_timeline_txt_to />&nbsp;</span> 
+                        <span class="__style_prefix__-timeline-owner-name">
+                            <bx_repeat:owners><span class="__style_prefix__-ton-div">, </span><a href="__owner_url__" class="__style_prefix__-ton-item">__owner_username__</a></bx_repeat:owners>
+                        </span> 
+                    </bx_if:show_timeline_owner>
+                </div>
+            </bx_if:show_item_action>
+            <div class="__style_prefix__-item-content __style_prefix__-ic-__content_type__ bx-clearfix">__content__</div>
             <bx_if:show_location>
-                <div class="__style_prefix__-item-location bx-def-margin-leftright bx-def-margin-sec-top bx-def-font-grayed bx-clearfix">__location__</div>
+                <div class="__style_prefix__-item-location bx-def-margin-lefttopright bx-def-font-grayed bx-clearfix">__location__</div>
             </bx_if:show_location>
             <bx_if:show_fields>
-                <div class="__style_prefix__-item-fields bx-def-margin-leftright bx-def-margin-sec-top bx-def-font-grayed bx-clearfix">__fields__</div>
+                <div class="__style_prefix__-item-fields bx-def-margin-lefttopright bx-def-font-grayed bx-clearfix">__fields__</div>
             </bx_if:show_fields>
             <bx_if:show_menu_item_counters>
-                <div class="__style_prefix__-item-activity __style_prefix__-ia-counters bx-def-margin-leftright bx-def-margin-sec-top bx-clearfix">__menu_item_counters__</div>
+                <div class="__style_prefix__-item-activity __style_prefix__-ia-counters bx-def-margin-leftright bx-clearfix">__menu_item_counters__</div>
             </bx_if:show_menu_item_counters>
             <bx_if:show_menu_item_actions>
                 <div class="__style_prefix__-item-activity-divider bx-def-hr bx-def-margin-top"></div>

+ 19 - 13
modules/boonex/timeline/template/item_search.html

@@ -5,16 +5,11 @@
             <div class="__style_prefix__-owner-info bx-def-thumb-size-min-height bx-def-thumb-size-left-indent">
                 <!-- NOTE: Spaces after and between elements in 'owner-name' DIV are needed for better line folding -->
                 <div class="__style_prefix__-owner-name bx-def-font-middle bx-def-font-light bx-def-font-grayed">
-                    <a href="__item_owner_url__" class="__style_prefix__-owner-name" title="__item_owner_title__">__item_owner_name__</a> 
-                    <bx_if:show_timeline_owner>
-                        <i class="sys-icon caret-right"></i>
-                        <span class="__style_prefix__-timeline-owner-name">
-                            <bx_repeat:owners><span class="__style_prefix__-ton-div">, </span><a href="__owner_url__" class="__style_prefix__-ton-item">__owner_username__</a></bx_repeat:owners>
-                        </span>
-                    </bx_if:show_timeline_owner>
-                    <span class="bx-def-font-small"> __item_owner_action__ </span> 
+                    <a href="__item_owner_url__" class="__style_prefix__-owner-name" title="__item_owner_title__">__item_owner_name__</a>
+                </div>
+                <div class="__style_prefix__-item-meta bx-def-font-middle bx-def-font-grayed">
                     <bx_if:show_menu_item_meta>
-                        <span class="__style_prefix__-item-meta bx-def-font-small">__meta__</span>
+                        <span class="__style_prefix__-meta bx-def-font-small">__meta__</span>
                     </bx_if:show_menu_item_meta>
                     <bx_if:show_pinned>
                         <span class="__style_prefix__-pinned bx-def-margin-thd-left">
@@ -34,9 +29,20 @@
                 </div>
             </div>
         </div>
-		<div class="__style_prefix__-item-content bx-def-margin-leftright bx-def-margin-top bx-clearfix">__content__</div>
-		<bx_if:show_location>
-		    <div class="__style_prefix__-item-location bx-def-margin-leftright bx-def-margin-top bx-def-font-grayed bx-clearfix">__location__</div>
-		</bx_if:show_location>
+        <bx_if:show_item_action>
+            <div class="__style_prefix__-item-action bx-def-margin-lefttopright bx-def-font-middle bx-def-font-grayed">
+                <span class="bx-def-font-small">__item_owner_action__&nbsp;</span> 
+                <bx_if:show_timeline_owner>
+                    <i class="sys-icon caret-right"></i>
+                    <span class="__style_prefix__-timeline-owner-name">
+                        <bx_repeat:owners><span class="__style_prefix__-ton-div">, </span><a href="__owner_url__" class="__style_prefix__-ton-item">__owner_username__</a></bx_repeat:owners>
+                    </span>
+                </bx_if:show_timeline_owner>
+            </div>
+        </bx_if:show_item_action>
+        <div class="__style_prefix__-item-content __style_prefix__-ic-__content_type__ bx-clearfix">__content__</div>
+        <bx_if:show_location>
+            <div class="__style_prefix__-item-location bx-def-margin-leftright bx-def-margin-top bx-def-font-grayed bx-clearfix">__location__</div>
+        </bx_if:show_location>
     </div>
 </div>

+ 33 - 21
modules/boonex/timeline/template/item_timeline.html

@@ -18,18 +18,19 @@
         <div class="__style_prefix__-item-owner bx-def-margin-leftright __class_owner__"> 
             <div class="__style_prefix__-owner-avatar bx-def-thumb-size">__item_owner_unit__</div>
             <div class="__style_prefix__-owner-info bx-def-thumb-size-min-height bx-def-thumb-size-left-indent">
-                <!-- NOTE: Spaces after and between elements in 'owner-name' DIV are needed for better line folding -->
                 <div class="__style_prefix__-owner-name bx-def-font-middle bx-def-font-grayed">
-                    <a href="__item_owner_url__" class="__style_prefix__-owner-name" title="__item_owner_title__">__item_owner_name__</a><span>&nbsp;__item_owner_action__&nbsp;</span> 
-                    <bx_if:show_timeline_owner>
-                        <span><bx_text:_bx_timeline_txt_to />&nbsp;</span> 
-                        <span class="__style_prefix__-timeline-owner-name">
-                            <bx_repeat:owners><span class="__style_prefix__-ton-div">, </span><a href="__owner_url__" class="__style_prefix__-ton-item">__owner_username__</a></bx_repeat:owners>
-                        </span> 
-                    </bx_if:show_timeline_owner>
+                    <a href="__item_owner_url__" class="__style_prefix__-owner-name" title="__item_owner_title__">__item_owner_name__</a> 
+                    <bx_if:show_owner_actions>
+                        <span class="__style_prefix__-owner-actions">
+                            <bx_repeat:owner_actions>
+                                <span class="__style_prefix__-oa-div">&#183;</span><a class="__style_prefix__-owner-action" href="__href__" onclick="__onclick__">__content__</a>
+                            </bx_repeat:owner_actions>
+                        </span>
+                    </bx_if:show_owner_actions>
+                </div>
+                <div class="__style_prefix__-item-meta bx-def-font-middle bx-def-font-grayed">
                     <bx_if:show_menu_item_meta>
-                        <span class="bx-tl-on-nl"></span>
-                        <span class="__style_prefix__-item-meta bx-def-font-grayed">__meta__</span>
+                        <span class="__style_prefix__-meta">__meta__</span>
                     </bx_if:show_menu_item_meta>
                     <bx_if:show_pinned>
                         <span class="__style_prefix__-pinned bx-def-margin-sec-left">
@@ -47,24 +48,35 @@
                         </span>
                     </bx_if:show_hot>
                 </div>
+                <bx_if:show_manage>
+                    <div class="__style_prefix__-item-manage">
+                        <a href="javascript:void(0)" onclick="__onclick__">
+                            <span class="bx-menu-item-icon bx-def-align-center"><i class="sys-icon ellipsis-v"></i></span>
+                        </a>
+                    </div>
+                </bx_if:show_manage>
             </div>
-            <bx_if:show_owner_actions>
-                <div class="__style_prefix__-owner-actions bx-def-thumb-size-min-height">
-                    <bx_repeat:owner_actions>
-                        <a class="bx-btn bx-btn-small" href="__href__" onclick="__onclick__">__content__</a>
-                    </bx_repeat:owner_actions>
-                </div>
-            </bx_if:show_owner_actions>
         </div>
-        <div class="__style_prefix__-item-content bx-clearfix">__content__</div>
+        <bx_if:show_item_action>
+            <div class="__style_prefix__-item-action bx-def-margin-lefttopright bx-def-font-middle bx-def-font-grayed">
+                <span>__item_owner_action__&nbsp;</span>
+                <bx_if:show_timeline_owner>
+                    <span><bx_text:_bx_timeline_txt_to />&nbsp;</span> 
+                    <span class="__style_prefix__-timeline-owner-name">
+                        <bx_repeat:owners><span class="__style_prefix__-ton-div">, </span><a href="__owner_url__" class="__style_prefix__-ton-item">__owner_username__</a></bx_repeat:owners>
+                    </span> 
+                </bx_if:show_timeline_owner>
+            </div>
+        </bx_if:show_item_action>
+        <div class="__style_prefix__-item-content __style_prefix__-ic-__content_type__ bx-clearfix">__content__</div>
         <bx_if:show_location>
-            <div class="__style_prefix__-item-location bx-def-margin-leftright bx-def-margin-sec-top bx-def-font-grayed bx-clearfix">__location__</div>
+            <div class="__style_prefix__-item-location bx-def-margin-lefttopright bx-def-font-grayed bx-clearfix">__location__</div>
         </bx_if:show_location>
         <bx_if:show_fields>
-            <div class="__style_prefix__-item-fields bx-def-margin-leftright bx-def-margin-sec-top bx-def-font-grayed bx-clearfix">__fields__</div>
+            <div class="__style_prefix__-item-fields bx-def-margin-lefttopright bx-def-font-grayed bx-clearfix">__fields__</div>
         </bx_if:show_fields>
         <bx_if:show_menu_item_counters>
-            <div class="__style_prefix__-item-activity __style_prefix__-ia-counters bx-def-margin-leftright bx-def-margin-sec-top bx-clearfix">__menu_item_counters__</div>
+            <div class="__style_prefix__-item-activity __style_prefix__-ia-counters bx-def-margin-leftright bx-clearfix">__menu_item_counters__</div>
         </bx_if:show_menu_item_counters>
         <bx_if:show_menu_item_actions>
             <div class="__style_prefix__-item-activity-divider bx-def-hr bx-def-margin-top"></div>

+ 1 - 0
modules/boonex/timeline/template/menu_custom_item_ver.html

@@ -0,0 +1 @@
+<bx_include_auto:menu_custom_item_hor.html />

+ 2 - 2
modules/boonex/timeline/template/type_post.html

@@ -12,9 +12,9 @@
         </bx_repeat:items>
     </div>
 </bx_if:show_videos>
-<div class="__style_prefix__-item-text bx-def-margin-top bx-def-margin-leftright">
+<div class="__style_prefix__-item-text bx-def-margin-lefttopright">
     <bx_if:show_title>
-        <div class="__style_prefix__-title bx-def-margin-sec-bottom bx-def-font-h1">__title__</div>
+        <div class="__style_prefix__-title bx-def-margin-sec-bottom bx-def-font-h3">__title__</div>
     </bx_if:show_title>
     <bx_if:show_content>
         <div class="__style_prefix__-content">__item_content__</div>

+ 6 - 6
modules/boonex/timeline/template/type_repost.html

@@ -1,8 +1,8 @@
-<bx_if:show_title>
-	<div class="__style_prefix__-title bx-def-margin-sec-bottom bx-def-margin-leftright bx-def-font-large">__title__</div>
-</bx_if:show_title>
+<div class="__style_prefix__-item-action bx-def-margin-lefttopright bx-def-font-middle bx-def-font-grayed">
+    <span>__item_owner_action__</span>
+</div>
 <bx_if:show_content>
-	<div class="__style_prefix__-content __style_prefix__-reposted bx-def-margin-sec-bottom">
-	__content__
-	</div>
+    <div class="__style_prefix__-content">
+        __content__
+    </div>
 </bx_if:show_content>

+ 3 - 1
template/scripts/BxBaseCmts.php

@@ -629,6 +629,8 @@ class BxBaseCmts extends BxDolCmts
         $bShowDoCommentAsButton = !$bShowDoCommentAsButtonSmall && isset($aParams['show_do_comment_as_button']) && $aParams['show_do_comment_as_button'] == true;
 
         $iCount = (int)$this->getCommentsCountAll();
+        if($iCount == 0 && !$bShowEmpty)
+            return '';
 
         $sClass = $this->_sStylePrefix . '-counter';
         if($bShowDoCommentAsButtonSmall)
@@ -674,7 +676,7 @@ class BxBaseCmts extends BxDolCmts
                     'onclick' => $sOnclick
                 )
             ),
-            'content' => $iCount != 0 || $bShowEmpty ? $this->_getCounterLabel($iCount) : '',
+            'content' => $this->_getCounterLabel($iCount),
             'bx_repeat:profiles' => $aTmplVarsProfiles,
             'bx_if:show_icon' => array(
                 'condition' => $bShowEmpty || !empty($aTmplVarsProfiles),