Просмотр исходного кода

Merge branch 'master' of github.com:unaio/una

Alex Trofimov 9 лет назад
Родитель
Сommit
f8c0b9f8de

+ 2 - 2
inc/classes/BxDolViewQuery.php

@@ -30,8 +30,8 @@ class BxDolViewQuery extends BxDolObjectQuery
 
 	public function getPerformedBy($iObjectId)
     {
-        $sQuery = $this->prepare("SELECT `viewer_id` FROM `{$this->_sTableTrack}` WHERE `object_id`=? ORDER BY `date` DESC", $iObjectId);
-        return $this->getColumn($sQuery);
+        $sQuery = $this->prepare("SELECT `viewer_id` AS `id`, COUNT(`viewer_id`) AS `count` FROM `{$this->_sTableTrack}` WHERE `object_id`=? GROUP BY `viewer_id` ORDER BY `date` DESC", $iObjectId);
+        return $this->getAll($sQuery);
     }
 
 	public function getView($iObjectId)

+ 1 - 0
modules/boonex/english/data/langs/system/en.xml

@@ -2395,6 +2395,7 @@ If it is not enabled then please consider implement this optimization, since it
 	<string name="_view_counter"><![CDATA[{0}]]></string>
 	<string name="_view_do_view"><![CDATA[View]]></string>
 	<string name="_view_do_view_by"><![CDATA[Viewed by]]></string>
+	<string name="_view_do_view_by_counter"><![CDATA[{0} views]]></string>
 	<string name="_vote_counter"><![CDATA[{0}]]></string>
 	<string name="_vote_do_like"><![CDATA[Thank you!]]></string>
 	<string name="_vote_do_unlike"><![CDATA[No thank you]]></string>

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

@@ -2393,6 +2393,7 @@
 	<string name="_view_counter"><![CDATA[{0}]]></string>
 	<string name="_view_do_view"><![CDATA[Посмотреть]]></string>
 	<string name="_view_do_view_by"><![CDATA[Просмотрено]]></string>
+	<string name="_view_do_view_by_counter"><![CDATA[{0} просмотров]]></string>
 	<string name="_vote_counter"><![CDATA[{0}]]></string>
 	<string name="_vote_do_like"><![CDATA[Спасибо!]]></string>
 	<string name="_vote_do_unlike"><![CDATA[Нет, спасибо]]></string>

+ 23 - 5
template/css/view.css

@@ -7,11 +7,29 @@ div.bx-view-by-list-cnt {
 	min-width: 13.75rem;
 	overflow: auto;
 }
-div.bx-view-by-list div.bx-def-unit, 
-div.bx-view-by-list div.bx-base-pofile-unit {
-	float: none;
-	margin-right: 0px;
-	margin-bottom: 0px;
+div.bx-view-user {
+    position: relative;
+}
+div.bx-view-user-avatar {
+    position: absolute;
+    top: 0px;
+    left: 0px;
+}
+div.bx-view-user-info {
+    display: -webkit-flex;
+    display: flex;
+    -webkit-align-items: center;
+    align-items: center;
+}
+div.bx-view-user-name {
+    text-overflow: ellipsis;
+    overflow: hidden;
+}
+div.bx-view-user-name a.bx-view-user-name {
+    font-weight: 700;
+}
+div.bx-view-user-name span.bx-view-user-info {
+    white-space: nowrap;
 }
 
 /*--- View Element Styles ---*/

+ 25 - 4
template/scripts/BxBaseView.php

@@ -274,12 +274,33 @@ class BxBaseView extends BxDolView
     {
         $aTmplUsers = array();
 
-        $aUserIds = $this->_oQuery->getPerformedBy($this->getId());
-        foreach($aUserIds as $iUserId) {
-            list($sUserName, $sUserUrl, $sUserIcon, $sUserUnit) = $this->_getAuthorInfo($iUserId);
+        $aUsers = $this->_oQuery->getPerformedBy($this->getId());
+        foreach($aUsers as $aUser) {
+            list($sUserName, $sUserUrl, $sUserIcon, $sUserUnit) = $this->_getAuthorInfo($aUser['id']);
+            $bUserIcon = !empty($sUserIcon);
+
             $aTmplUsers[] = array(
                 'style_prefix' => $this->_sStylePrefix,
-                'user_unit' => $sUserUnit
+                'bx_if:show_user_icon' => array(
+                    'condition' => $bUserIcon,
+                    'content' => array(
+                        'user_icon' => $sUserIcon
+                    )
+                ),
+                'bx_if:show_user_icon_empty' => array(
+                    'condition' => !$bUserIcon,
+                    'content' => array()
+                ),
+                'user_url' => $sUserUrl,
+            	'user_title' => bx_html_attribute($sUserName),
+            	'user_name' => $sUserName,
+                'bx_if:show_user_info' => array(
+                    'condition' => (int)$aUser['id'] == 0 && (int)$aUser['count'] > 0,
+                    'content' => array(
+                		'style_prefix' => $this->_sStylePrefix,
+                        'user_info' => _t('_view_do_view_by_counter', $aUser['count'])
+                    )
+                )
             );
         }
 

+ 20 - 1
template/view_by_list.html

@@ -2,7 +2,26 @@
 	<div class="__style_prefix__-by-list-cnt">
 		<div class="__style_prefix__-by-items">
 			<bx_repeat:list>
-				<div class="__style_prefix__-by-item bx-def-padding-sec bx-clearfix">__user_unit__</div>
+				<div class="__style_prefix__-by-item bx-def-padding-sec">
+				    <div class="__style_prefix__-user bx-clearfix">
+	                    <div class="__style_prefix__-user-avatar bx-def-thumb bx-def-thumb-size">
+			                <a href="__user_url__" class="__style_prefix__-user-avatar" title="__user_title__">
+			                    <bx_if:show_user_icon>
+			                        <img class="bx-def-thumb bx-def-thumb-size" src="__user_icon__" />
+			                    </bx_if:show_user_icon>
+			                    <bx_if:show_user_icon_empty>
+			                        <i class="sys-icon user"></i>
+			                    </bx_if:show_user_icon_empty>
+			                </a>
+			            </div>
+			            <div class="__style_prefix__-user-info bx-def-thumb-size-min-height bx-def-thumb-size-left-indent">
+			                <div class="__style_prefix__-user-name bx-def-font-middle bx-def-font-light bx-def-font-grayed">
+			                    <a href="__user_url__" class="__style_prefix__-user-name" title="__user_title__">__user_name__</a>
+			                    <bx_if:show_user_info><br /><span class="__style_prefix__-user-info">__user_info__</span></bx_if:show_user_info> 
+			                </div>
+			            </div>
+                    </div>
+                </div>
 			</bx_repeat:list>
 		</div>
 	</div>