Browse Source

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

AntonLV 6 years ago
parent
commit
b3da46889e

+ 1 - 0
modules/boonex/reviews/classes/BxReviewsConfig.php

@@ -123,6 +123,7 @@ class BxReviewsConfig extends BxBaseModTextConfig
             'OBJECT_REPORTS' => 'bx_reviews',
             'OBJECT_VIEWS' => 'bx_reviews',
             'OBJECT_VOTES' => 'bx_reviews',
+            'OBJECT_VOTES_STARS' => 'bx_reviews_stars',
             'OBJECT_REACTIONS' => 'bx_reviews_reactions',
             'OBJECT_SCORES' => 'bx_reviews',
             'OBJECT_FAVORITES' => 'bx_reviews',

+ 14 - 0
modules/boonex/reviews/classes/BxReviewsModule.php

@@ -99,6 +99,20 @@ class BxReviewsModule extends BxBaseModTextModule
         return '';
     }
 
+    /*
+     * Stars Rating block for rate by users
+     **/
+    public function serviceEntityRating($iContentId = 0) {
+        if (!$iContentId) $iContentId = bx_process_input(bx_get('id'), BX_DATA_INT);
+
+        if ($iContentId) {
+            $aContentInfo = $this->_oDb->getContentInfoById($iContentId);
+            if (!$aContentInfo) return '';
+            return $this->_oTemplate->entryRating($aContentInfo);
+        }
+        return '';
+    }
+
 
     /*
      * Reviewed content block for module homepage

+ 17 - 0
modules/boonex/reviews/classes/BxReviewsTemplate.php

@@ -260,6 +260,23 @@ class BxReviewsTemplate extends BxBaseModTextTemplate
             'menu' => $oMenu,
         ];
     }
+
+    public function entryRating($aData)
+    {
+        $CNF = &$this->getModule()->_oConfig->CNF;
+
+    	$sVotes = '';
+        $oVotes = BxDolVote::getObjectInstance($CNF['OBJECT_VOTES_STARS'], $aData[$CNF['FIELD_ID']]);
+        if($oVotes) {
+			$sVotes = $oVotes->getElementBlock(array('show_counter' => true, 'show_legend' => true));
+			if(!empty($sVotes))
+				$sVotes = $this->parseHtmlByName('entry-rating.html', array(
+		    		'content' => $sVotes,
+		    	));
+        }
+
+    	return $sVotes;
+    }
 }
 
 /** @} */

+ 20 - 0
modules/boonex/reviews/classes/BxReviewsVoteStars.php

@@ -0,0 +1,20 @@
+<?php defined('BX_DOL') or die('hack attempt');
+/**
+ * Copyright (c) UNA, Inc - https://una.io
+ * MIT License - https://opensource.org/licenses/MIT
+ *
+ * @defgroup    Reviews Reviews
+ * @ingroup     UnaModules
+ *
+ * @{
+ */
+
+class BxReviewsVoteStars extends BxTemplVoteStars
+{
+    function __construct($sSystem, $iId, $iInit = 1)
+    {
+        parent::__construct($sSystem, $iId, $iInit);
+    }
+}
+
+/** @} */

+ 1 - 0
modules/boonex/reviews/install/langs/en.xml

@@ -124,6 +124,7 @@
     <string name="_bx_reviews_page_block_title_entry_attachments"><![CDATA[Attachments]]></string>
     <string name="_bx_reviews_page_block_title_entry_polls"><![CDATA[Polls]]></string>
     <string name="_bx_reviews_page_block_title_entry_all_actions"><![CDATA[All Actions]]></string>
+    <string name="_bx_reviews_page_block_title_entry_rating"><![CDATA[Rating]]></string>
     <string name="_bx_reviews_page_title_sys_entries_popular"><![CDATA[Popular Reviews]]></string>
     <string name="_bx_reviews_page_title_entries_popular"><![CDATA[Popular Reviews]]></string>
     <string name="_bx_reviews_page_title_sys_entries_top"><![CDATA[Top Reviews]]></string>

+ 6 - 5
modules/boonex/reviews/install/sql/enable.sql

@@ -59,11 +59,12 @@ INSERT INTO `sys_objects_page`(`object`, `title_system`, `title`, `module`, `lay
 ('bx_reviews_view_entry', '_bx_reviews_page_title_sys_view_entry', '_bx_reviews_page_title_view_entry', 'bx_reviews', 13, 2147483647, 1, 'view-review', '', '', '', '', 0, 1, 0, 'BxReviewsPageEntry', 'modules/boonex/reviews/classes/BxReviewsPageEntry.php');
 
 INSERT INTO `sys_pages_blocks`(`object`, `cell_id`, `module`, `title_system`, `title`, `designbox_id`, `hidden_on`, `visible_for_levels`, `type`, `content`, `deletable`, `copyable`, `active`, `order`) VALUES
-('bx_reviews_view_entry', 2, 'bx_reviews', '', '_bx_reviews_page_block_title_entry_info', 11, '', 2147483647, 'service', 'a:2:{s:6:\"module\";s:10:\"bx_reviews\";s:6:\"method\";s:11:\"entity_info\";}', 0, 0, 1, 0),
-('bx_reviews_view_entry', 2, 'bx_reviews', '_bx_reviews_page_block_title_sys_entry_context', '_bx_reviews_page_block_title_entry_context', 13, '', 2147483647, 'service', 'a:2:{s:6:\"module\";s:10:\"bx_reviews\";s:6:\"method\";s:14:\"entity_context\";}', 0, 0, 1, 1),
-('bx_reviews_view_entry', 2, 'bx_reviews', '', '_bx_reviews_page_block_title_entry_voting_options', 13, '', 2147483647, 'service', 'a:2:{s:6:\"module\";s:10:\"bx_reviews\";s:6:\"method\";s:21:\"entity_voting_options\";}', 0, 0, 1, 2),
-('bx_reviews_view_entry', 2, 'bx_reviews', '', '_bx_reviews_page_block_title_entry_location', 3, '', 2147483647, 'service', 'a:4:{s:6:\"module\";s:6:\"system\";s:6:\"method\";s:13:\"locations_map\";s:6:\"params\";a:2:{i:0;s:10:\"bx_reviews\";i:1;s:4:\"{id}\";}s:5:\"class\";s:20:\"TemplServiceMetatags\";}', 0, 0, 1, 3),
-('bx_reviews_view_entry', 2, 'bx_reviews', '', '_bx_reviews_page_block_title_entry_location', 13, '', 2147483647, 'service', 'a:2:{s:6:\"module\";s:10:\"bx_reviews\";s:6:\"method\";s:15:\"entity_location\";}', 0, 0, 0, 4),
+('bx_reviews_view_entry', 2, 'bx_reviews', '', '_bx_reviews_page_block_title_entry_rating', 13, '', 2147483647, 'service', 'a:2:{s:6:"module";s:10:"bx_reviews";s:6:"method";s:13:"entity_rating";}', 0, 0, 0, 0),
+('bx_reviews_view_entry', 2, 'bx_reviews', '', '_bx_reviews_page_block_title_entry_info', 11, '', 2147483647, 'service', 'a:2:{s:6:\"module\";s:10:\"bx_reviews\";s:6:\"method\";s:11:\"entity_info\";}', 0, 0, 1, 1),
+('bx_reviews_view_entry', 2, 'bx_reviews', '_bx_reviews_page_block_title_sys_entry_context', '_bx_reviews_page_block_title_entry_context', 13, '', 2147483647, 'service', 'a:2:{s:6:\"module\";s:10:\"bx_reviews\";s:6:\"method\";s:14:\"entity_context\";}', 0, 0, 1, 2),
+('bx_reviews_view_entry', 2, 'bx_reviews', '', '_bx_reviews_page_block_title_entry_voting_options', 13, '', 2147483647, 'service', 'a:2:{s:6:\"module\";s:10:\"bx_reviews\";s:6:\"method\";s:21:\"entity_voting_options\";}', 0, 0, 1, 3),
+('bx_reviews_view_entry', 2, 'bx_reviews', '', '_bx_reviews_page_block_title_entry_location', 3, '', 2147483647, 'service', 'a:4:{s:6:\"module\";s:6:\"system\";s:6:\"method\";s:13:\"locations_map\";s:6:\"params\";a:2:{i:0;s:10:\"bx_reviews\";i:1;s:4:\"{id}\";}s:5:\"class\";s:20:\"TemplServiceMetatags\";}', 0, 0, 1, 4),
+('bx_reviews_view_entry', 2, 'bx_reviews', '', '_bx_reviews_page_block_title_entry_location', 13, '', 2147483647, 'service', 'a:2:{s:6:\"module\";s:10:\"bx_reviews\";s:6:\"method\";s:15:\"entity_location\";}', 0, 0, 0, 5),
 ('bx_reviews_view_entry', 3, 'bx_reviews', '', '_bx_reviews_page_block_title_entry_author', 13, '', 2147483647, 'service', 'a:2:{s:6:\"module\";s:10:\"bx_reviews\";s:6:\"method\";s:13:\"entity_author\";}', 0, 0, 1, 0),
 ('bx_reviews_view_entry', 3, 'bx_reviews', '', '_bx_reviews_page_block_title_entry_text', 13, '', 2147483647, 'service', 'a:2:{s:6:\"module\";s:10:\"bx_reviews\";s:6:\"method\";s:17:\"entity_text_block\";}', 0, 0, 1, 1),
 ('bx_reviews_view_entry', 3, 'bx_reviews', '', '_bx_reviews_page_block_title_entry_all_actions', 13, '', 2147483647, 'service', 'a:2:{s:6:\"module\";s:10:\"bx_reviews\";s:6:\"method\";s:18:\"entity_all_actions\";}', 0, 0, 1, 2),

+ 22 - 0
modules/boonex/reviews/install/sql/install.sql

@@ -16,6 +16,8 @@ CREATE TABLE IF NOT EXISTS `bx_reviews_reviews` (
   `views` int(11) NOT NULL default '0',
   `rate` float NOT NULL default '0',
   `votes` int(11) NOT NULL default '0',
+  `srate` float NOT NULL default '0',
+  `svotes` int(11) NOT NULL default '0',
   `rrate` float NOT NULL default '0',
   `rvotes` int(11) NOT NULL default '0',
   `score` int(11) NOT NULL default '0',
@@ -189,6 +191,25 @@ CREATE TABLE IF NOT EXISTS `bx_reviews_votes_track` (
   KEY `vote` (`object_id`, `author_nip`)
 );
 
+CREATE TABLE IF NOT EXISTS `bx_reviews_svotes` (
+  `object_id` int(11) NOT NULL default '0',
+  `count` int(11) NOT NULL default '0',
+  `sum` int(11) NOT NULL default '0',
+  UNIQUE KEY `object_id` (`object_id`)
+);
+
+CREATE TABLE IF NOT EXISTS `bx_reviews_svotes_track` (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `object_id` int(11) NOT NULL default '0',
+  `author_id` int(11) NOT NULL default '0',
+  `author_nip` int(11) unsigned NOT NULL default '0',
+  `value` tinyint(4) NOT NULL default '0',
+  `date` int(11) NOT NULL default '0',
+  PRIMARY KEY (`id`),
+  KEY `vote` (`object_id`, `author_nip`)
+);
+
+
 CREATE TABLE IF NOT EXISTS `bx_reviews_reactions` (
   `object_id` int(11) NOT NULL default '0',
   `reaction` varchar(32) NOT NULL default '',
@@ -556,6 +577,7 @@ INSERT INTO `sys_objects_cmts` (`Name`, `Module`, `Table`, `CharsPostMin`, `Char
 -- VOTES
 INSERT INTO `sys_objects_vote` (`Name`, `TableMain`, `TableTrack`, `PostTimeout`, `MinValue`, `MaxValue`, `IsUndo`, `IsOn`, `TriggerTable`, `TriggerFieldId`, `TriggerFieldAuthor`, `TriggerFieldRate`, `TriggerFieldRateCount`, `ClassName`, `ClassFile`) VALUES 
 ('bx_reviews', 'bx_reviews_votes', 'bx_reviews_votes_track', '604800', '1', '1', '0', '1', 'bx_reviews_reviews', 'id', 'author', 'rate', 'votes', '', ''),
+('bx_reviews_stars', 'bx_reviews_svotes', 'bx_reviews_svotes_track', '604800', '1', '5', '0', '1', 'bx_reviews_reviews', 'id', 'author', 'srate', 'svotes', 'BxReviewsVoteStars', 'modules/boonex/reviews/classes/BxReviewsVoteStars.php'),
 ('bx_reviews_reactions', 'bx_reviews_reactions', 'bx_reviews_reactions_track', '604800', '1', '1', '1', '1', 'bx_reviews_reviews', 'id', 'author', 'rrate', 'rvotes', 'BxTemplVoteReactions', ''),
 ('bx_reviews_poll_answers', 'bx_reviews_polls_answers_votes', 'bx_reviews_polls_answers_votes_track', '604800', '1', '1', '0', '1', 'bx_reviews_polls_answers', 'id', 'author_id', 'rate', 'votes', 'BxReviewsVotePollAnswers', 'modules/boonex/reviews/classes/BxReviewsVotePollAnswers.php');
 

+ 1 - 1
modules/boonex/reviews/install/sql/uninstall.sql

@@ -1,6 +1,6 @@
 
 -- TABLES
-DROP TABLE IF EXISTS `bx_reviews_reviews`, `bx_reviews_covers`, `bx_reviews_files`, `bx_reviews_photos`, `bx_reviews_photos_resized`, `bx_reviews_videos`, `bx_reviews_videos_resized`, `bx_reviews_cmts`, `bx_reviews_cmts_notes`, `bx_reviews_votes`, `bx_reviews_votes_track`, `bx_reviews_reactions`, `bx_reviews_reactions_track`, `bx_reviews_views_track`, `bx_reviews_meta_keywords`, `bx_reviews_meta_locations`, `bx_reviews_meta_mentions`, `bx_reviews_reports`, `bx_reviews_reports_track`, `bx_reviews_favorites_track`, `bx_reviews_favorites_lists`, `bx_reviews_scores`, `bx_reviews_scores_track`, `bx_reviews_polls`, `bx_reviews_polls_answers`, `bx_reviews_polls_answers_votes`, `bx_reviews_polls_answers_votes_track`, `bx_reviews_voting_options`;
+DROP TABLE IF EXISTS `bx_reviews_reviews`, `bx_reviews_covers`, `bx_reviews_files`, `bx_reviews_photos`, `bx_reviews_photos_resized`, `bx_reviews_videos`, `bx_reviews_videos_resized`, `bx_reviews_cmts`, `bx_reviews_cmts_notes`, `bx_reviews_votes`, `bx_reviews_votes_track`, `bx_reviews_svotes`, `bx_reviews_svotes_track`, `bx_reviews_reactions`, `bx_reviews_reactions_track`, `bx_reviews_views_track`, `bx_reviews_meta_keywords`, `bx_reviews_meta_locations`, `bx_reviews_meta_mentions`, `bx_reviews_reports`, `bx_reviews_reports_track`, `bx_reviews_favorites_track`, `bx_reviews_favorites_lists`, `bx_reviews_scores`, `bx_reviews_scores_track`, `bx_reviews_polls`, `bx_reviews_polls_answers`, `bx_reviews_polls_answers_votes`, `bx_reviews_polls_answers_votes_track`, `bx_reviews_voting_options`;
 
 -- STORAGES & TRANSCODERS
 DELETE FROM `sys_objects_storage` WHERE `object` LIKE 'bx_reviews_%';

+ 1 - 0
modules/boonex/reviews/template/entry-rating.html

@@ -0,0 +1 @@
+<div class="bx-photos-entity-rating">__content__</div>