Browse Source

#2314 - forum app & posts changes

RomanL 6 years ago
parent
commit
4209c451bc

+ 9 - 2
modules/boonex/forum/classes/BxForumConfig.php

@@ -47,6 +47,7 @@ class BxForumConfig extends BxBaseModTextConfig
             'FIELD_TEXT_ID' => 'discussion-text',
             'FIELD_TEXT_COMMENTS' => 'text_comments',
             'FIELD_CATEGORY' => 'cat',
+            'FIELD_MULTICAT' => 'multicat',
             'FIELD_LR_AUTHOR' => 'lr_profile_id',
             'FIELD_LR_ADDED' => 'lr_timestamp',
             'FIELD_LR_COMMENT_ID' => 'lr_comment_id',
@@ -64,6 +65,10 @@ class BxForumConfig extends BxBaseModTextConfig
             'FIELD_ANONYMOUS' => 'anonymous',
             'FIELDS_WITH_KEYWORDS' => 'auto', // can be 'auto', array of fields or comma separated string of field names, works only when OBJECT_METATAGS is specified
 
+             // some params
+            'PARAM_MULTICAT_ENABLED' => true,
+            'PARAM_MULTICAT_AUTO_ACTIVATION_FOR_CATEGORIES' => 'bx_forum_auto_activation_for_categories',
+            
             // page URIs
             'URI_VIEW_ENTRY' => 'view-discussion',
             'URI_AUTHOR_ENTRIES' => 'discussions-author',
@@ -174,14 +179,16 @@ class BxForumConfig extends BxBaseModTextConfig
         	'main' => 'BxForumMain',
         	'entry' => 'BxForumEntry',
         	'manage_tools' => 'BxForumManageTools',
-        	'studio' => 'BxForumStudio'
+        	'studio' => 'BxForumStudio',
+            'categories' => 'BxForumCategories'
         );
 
         $this->_aJsObjects = array(
         	'main' => 'oBxForumMain',
         	'entry' => 'oBxForumEntry',
         	'manage_tools' => 'oBxForumManageTools',
-        	'studio' => 'oBxForumStudio'
+        	'studio' => 'oBxForumStudio',
+            'categories' => 'oBxForumCategories'
         );
 
         $this->_aGridObjects = array(

+ 7 - 1
modules/boonex/forum/install/langs/en.xml

@@ -14,6 +14,7 @@
 	<string name="_bx_forum_option_searchable_fields"><![CDATA[Searchable fields for keyword search]]></string>
 	<string name="_bx_forum_option_autosubscribe_created"><![CDATA[Autosubscribe to newly created discussions]]></string>
 	<string name="_bx_forum_option_autosubscribe_replied"><![CDATA[Autosubscribe to replied discussions]]></string>
+  <string name="_bx_forum_option_auto_activation_for_categories"><![CDATA[Auto-Activation For Categories]]></string>
 
 	<string name="_bx_forum_form_entry"><![CDATA[Forum]]></string>
 	<string name="_bx_forum_form_entry_display_add"><![CDATA[New discussion]]></string>
@@ -46,6 +47,9 @@
     <string name="_bx_forum_form_entry_input_sys_cat"><![CDATA[Category]]></string>
     <string name="_bx_forum_form_entry_input_cat"><![CDATA[Category]]></string>
     <string name="_bx_forum_form_entry_input_cat_err"><![CDATA[Please select category]]></string>
+    <string name="_bx_forum_form_entry_input_sys_multicat"><![CDATA[Categories]]></string>
+    <string name="_bx_forum_form_entry_input_multicat"><![CDATA[Categories]]></string>
+    <string name="_bx_forum_form_entry_input_multicat_err"><![CDATA[Please select category]]></string>
     <string name="_bx_forum_form_search"><![CDATA[Search]]></string>
 	<string name="_bx_forum_form_search_display_full"><![CDATA[Full Search]]></string>
 	<string name="_bx_forum_form_search_input_sys_author"><![CDATA[Author]]></string>
@@ -153,8 +157,10 @@
 	<string name="_bx_forum_page_block_title_system_manage"><![CDATA[Manage Own]]></string>
 	<string name="_bx_forum_page_block_title_system_manage_administration"><![CDATA[Manage All]]></string>
 	<string name="_bx_forum_page_block_title_manage"><![CDATA[Manage]]></string>    
-    <string name="_bx_forum_page_block_title_popular_keywords"><![CDATA[Popular Hashtags]]></string>
+  <string name="_bx_forum_page_block_title_popular_keywords"><![CDATA[Popular Hashtags]]></string>
 	<string name="_bx_forum_page_block_title_cats"><![CDATA[Discussions Categories]]></string>
+  <string name="_bx_forum_page_block_title_sys_multicats"><![CDATA[Discussions Categories(Multi)]]></string>
+  <string name="_bx_forum_page_block_title_multicats"><![CDATA[Discussions Categories]]></string>
 	<string name="_bx_forum_page_block_title_my_entries"><![CDATA[My Discussions]]></string>
 	<string name="_bx_forum_page_title_sys_entries_search"><![CDATA[Search]]></string>
 	<string name="_bx_forum_page_title_entries_search"><![CDATA[Search]]></string>

+ 4 - 2
modules/boonex/forum/install/sql/enable.sql

@@ -18,7 +18,8 @@ INSERT INTO `sys_options` (`name`, `value`, `category_id`, `caption`, `type`, `c
 ('bx_forum_per_page_index', '6', @iCategId, '_bx_forum_option_per_page_index', 'digit', '', '', '', 11),
 ('bx_forum_per_page_profile', '6', @iCategId, '_bx_forum_option_per_page_profile', 'digit', '', '', '', 12),
 ('bx_forum_rss_num', '10', @iCategId, '_bx_forum_option_rss_num', 'digit', '', '', '', 20),
-('bx_forum_searchable_fields', 'title,text,text_comments', @iCategId, '_bx_forum_option_searchable_fields', 'list', '', '', 'a:2:{s:6:"module";s:8:"bx_forum";s:6:"method";s:21:"get_searchable_fields";}', 30);
+('bx_forum_searchable_fields', 'title,text,text_comments', @iCategId, '_bx_forum_option_searchable_fields', 'list', '', '', 'a:2:{s:6:"module";s:8:"bx_forum";s:6:"method";s:21:"get_searchable_fields";}', 30),
+('bx_forum_auto_activation_for_categories', 'on', @iCategId, '_bx_posts_option_auto_activation_for_categories', 'checkbox', '', '', '', 35);
 -- ('bx_forum_autosubscribe_created', '', @iCategId, '_bx_forum_option_autosubscribe_created', 'checkbox', '', '', '', 40),
 -- ('bx_forum_autosubscribe_replied', '', @iCategId, '_bx_forum_option_autosubscribe_replied', 'checkbox', '', '', '', 41),
 
@@ -140,7 +141,8 @@ INSERT INTO `sys_pages_blocks`(`object`, `cell_id`, `module`, `title_system`, `t
 ('bx_forum_home', 1, @sName, '', '_bx_forum_page_block_title_featured_entries', 11, 2147483647, 'service', 'a:3:{s:6:"module";s:8:"bx_forum";s:6:"method";s:15:"browse_featured";s:6:"params";a:4:{i:0;s:5:"table";i:1;b:0;i:2;b:1;i:3;b:0;}}', 0, 1, 1, 0),
 ('bx_forum_home', 1, @sName, '', '_bx_forum_page_block_title_latest_entries', 11, 2147483647, 'service', 'a:3:{s:6:"module";s:8:"bx_forum";s:6:"method";s:13:"browse_latest";s:6:"params";a:1:{i:0;s:5:"table";}}', 0, 1, 1, 1),
 ('bx_forum_home', 2, @sName, '', '_bx_forum_page_block_title_cats', 11, 2147483647, 'service', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:15:"categories_list";s:6:"params";a:2:{i:0;s:13:"bx_forum_cats";i:1;a:1:{s:10:"show_empty";b:1;}}s:5:"class";s:20:"TemplServiceCategory";}', 0, 1, 1, 0),
-('bx_forum_home', 2, @sName, '', '_bx_forum_page_block_title_popular_keywords', 11, 2147483647, 'service', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:14:"keywords_cloud";s:6:"params";a:2:{i:0;s:8:"bx_forum";i:1;s:8:"bx_forum";}s:5:"class";s:20:"TemplServiceMetatags";}', 0, 1, 1, 1);
+('bx_forum_home', 2, @sName, '', '_bx_forum_page_block_title_popular_keywords', 11, 2147483647, 'service', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:14:"keywords_cloud";s:6:"params";a:2:{i:0;s:8:"bx_forum";i:1;s:8:"bx_forum";}s:5:"class";s:20:"TemplServiceMetatags";}', 0, 1, 1, 1),
+('bx_forum_home', 2, @sName, '_bx_forum_page_block_title_sys_multicats', '_bx_forum_page_block_title_multicats', 11, 2147483647, 'service', 'a:2:{s:6:"module";s:8:"bx_forum";s:6:"method";s:21:"categories_multi_list";}', 0, 1, 0, 2);
 
 -- PAGE: module search
 INSERT INTO `sys_objects_page`(`object`, `uri`, `title_system`, `title`, `module`, `layout_id`, `visible_for_levels`, `visible_for_levels_editable`, `url`, `meta_description`, `meta_keywords`, `meta_robots`, `cache_lifetime`, `cache_editable`, `deletable`, `override_class_name`, `override_class_file`) VALUES 

+ 2 - 0
modules/boonex/forum/install/sql/install.sql

@@ -10,6 +10,7 @@ CREATE TABLE IF NOT EXISTS `bx_forum_discussions` (
   `thumb` int(11) NOT NULL,
   `title` varchar(255) NOT NULL,
   `cat` int(11) NOT NULL,
+  `multicat` text NOT NULL,
   `text` mediumtext NOT NULL,
   `text_comments` mediumtext NOT NULL,
   `lr_timestamp` int(11) NOT NULL,
@@ -256,6 +257,7 @@ INSERT INTO `sys_form_inputs`(`object`, `module`, `name`, `value`, `values`, `ch
 (@sName, @sName, 'text', '', '', 0, 'textarea', '_bx_forum_form_entry_input_sys_text', '_bx_forum_form_entry_input_text', '', 1, 0, 2, '', '', '', 'Avail', '', '_bx_forum_form_entry_input_text_err', 'XssHtml', '', 1, 0),
 (@sName, @sName, 'title', '', '', 0, 'text', '_bx_forum_form_entry_input_sys_title', '_bx_forum_form_entry_input_title', '', 1, 0, 0, '', '', '', 'Avail', '', '_bx_forum_form_entry_input_title_err', 'Xss', '', 1, 0),
 (@sName, @sName, 'cat', '', '#!bx_forum_cats', 0, 'select', '_bx_forum_form_entry_input_sys_cat', '_bx_forum_form_entry_input_cat', '', 1, 0, 0, '', '', '', 'avail', '', '_bx_forum_form_entry_input_cat_err', 'Xss', '', 1, 0),
+(@sName, @sName, 'multicat', '', '', 0, 'custom', '_bx_forum_form_entry_input_sys_multicat', '_bx_forum_form_entry_input_multicat', '', 1, 0, 0, '', '', '', 'avail', '', '_bx_forum_form_entry_input_multicat_err', 'Xss', '', 1, 0),
 (@sName, @sName, 'attachments', 'a:1:{i:0;s:14:"bx_forum_html5";}', 'a:2:{s:15:"bx_forum_simple";s:26:"_sys_uploader_simple_title";s:14:"bx_forum_html5";s:25:"_sys_uploader_html5_title";}', 0, 'files', '_bx_forum_form_entry_input_sys_attachments', '_bx_forum_form_entry_input_attachments', '', 0, 0, 0, '', '', '', '', '', '', '', '', 1, 0),
 (@sName, @sName, 'labels', '', '', 0, 'custom', '_sys_form_input_sys_labels', '_sys_form_input_labels', '', 0, 0, 0, '', '', '', '', '', '', '', '', 1, 0),
 (@sName, @sName, 'anonymous', '', '', 0, 'switcher', '_sys_form_input_sys_anonymous', '_sys_form_input_anonymous', '', 0, 0, 0, '', '', '', '', '', '', '', '', 1, 0),

+ 48 - 0
modules/boonex/forum/js/categories.js

@@ -0,0 +1,48 @@
+/**
+ * Copyright (c) UNA, Inc - https://una.io
+ * MIT License - https://opensource.org/licenses/MIT
+ *
+ * @defgroup    Forum Forum
+ * @ingroup     UnaModules
+ *
+ * @{
+ */
+
+function BxForumCategories(oOptions) {
+    this._sActionsUrl = oOptions.sActionUrl;
+    this._sObjName = oOptions.sObjName == undefined ? 'oBxPostsCategories' : oOptions.sObjName;
+
+    this._sAnimationEffect = oOptions.sAnimationEffect == undefined ? 'slide' : oOptions.sAnimationEffect;
+    this._iAnimationSpeed = oOptions.iAnimationSpeed == undefined ? 'slow' : oOptions.iAnimationSpeed;
+
+    this._aHtmlIds = oOptions.aHtmlIds == undefined ? {} : oOptions.aHtmlIds;
+    this._oRequestParams = oOptions.oRequestParams == undefined ? {} : oOptions.oRequestParams;
+}
+
+BxForumCategories.prototype.categoryAdd = function (oButton, sName) {
+    var oButton = $(oButton);
+
+    var oCategory = oButton.parents('#bx-form-element-' + sName).find('.bx-form-input-category:first').clone();
+    oCategory.find("input[type = 'text']").val('');
+    oCategory.find("input[type = 'hidden']").remove();
+
+    oButton.parents('.bx-form-input-category-add:first').before(oCategory);
+};
+
+BxForumCategories.prototype.categoryAddNew = function (oButton, sName) {
+    var oButton = $(oButton);
+
+    var oCategory = oButton.parents('#bx-form-element-' + sName).find('.bx-form-input-category-new:first').clone();
+    oCategory.find("input[type = 'text']").val('');
+    oCategory.find("input[type = 'hidden']").remove();
+
+    $('.bx-form-input-categories .bx-form-input-category-add:first').before(oCategory);
+};
+
+BxForumCategories.prototype.categoryDelete = function (oButton) {
+    $(oButton).parents('.bx-form-input-category:first').remove();
+};
+
+BxForumCategories.prototype.categoryDeleteNew = function (oButton) {
+    $(oButton).parents('.bx-form-input-category-new:first').remove();
+};

+ 1 - 0
modules/boonex/forum/template/category_list_inline.html

@@ -0,0 +1 @@
+<bx_include_base:../modules/base/text/template/category_list_inline.html />

+ 1 - 0
modules/boonex/forum/template/css/categories.css

@@ -0,0 +1 @@
+@import url(../../../../base/text/template/css/categories.css);

+ 1 - 0
modules/boonex/forum/template/form_categories.html

@@ -0,0 +1 @@
+<bx_include_base:../modules/base/text/template/form_categories.html />

+ 1 - 8
modules/boonex/posts/classes/BxPostsFormEntry.php

@@ -128,13 +128,10 @@ class BxPostsFormEntry extends BxBaseModTextFormEntry
 
         $aValsToAdd[$CNF['FIELD_STATUS']] = $aValsToAdd[$CNF['FIELD_PUBLISHED']] > $aValsToAdd[$CNF['FIELD_ADDED']] ? 'awaiting' : 'active';
 
-        $this->processMulticatBefore($CNF['FIELD_MULTICAT'], $aValsToAdd);
         $iContentId = parent::insert ($aValsToAdd, $isIgnore);
         if(!empty($iContentId)){
             $this->processFiles($CNF['FIELD_COVER'], $iContentId, true);
-            $this->processMulticatAfter($CNF['FIELD_MULTICAT'], $iContentId);
         }
-
         return $iContentId;
     }
 
@@ -150,12 +147,8 @@ class BxPostsFormEntry extends BxBaseModTextFormEntry
             $aValsToAdd[$CNF['FIELD_PUBLISHED']] = $iPublished;
         }
         
-        $this->processMulticatBefore($CNF['FIELD_MULTICAT'], $aValsToAdd);
         $iResult = parent::update ($iContentId, $aValsToAdd, $aTrackTextFieldsChanges);
-
-        $this->processFiles($CNF['FIELD_COVER'], $iContentId, false);
-        $this->processMulticatAfter($CNF['FIELD_MULTICAT'], $iContentId);
-
+        $this->processFiles($CNF['FIELD_COVER'], $iContentId, false);   
         return $iResult;
     }
 

+ 16 - 10
modules/boonex/russian/data/langs/bx_forum/ru.xml

@@ -14,6 +14,7 @@
 	<string name="_bx_forum_option_searchable_fields"><![CDATA[Поля для поиска по ключевому слову]]></string>
 	<string name="_bx_forum_option_autosubscribe_created"><![CDATA[Автоподписка на новые обсуждения]]></string>
 	<string name="_bx_forum_option_autosubscribe_replied"><![CDATA[Автоподписка на отвеченные обсуждения]]></string>
+  <string name="_bx_forum_option_auto_activation_for_categories"><![CDATA[Автоактивация для категорий]]></string>
 
 	<string name="_bx_forum_form_entry"><![CDATA[Форум]]></string>
 	<string name="_bx_forum_form_entry_display_add"><![CDATA[Создание обсуждения]]></string>
@@ -46,6 +47,9 @@
     <string name="_bx_forum_form_entry_input_sys_cat"><![CDATA[Категория]]></string>
 	<string name="_bx_forum_form_entry_input_cat"><![CDATA[Категория]]></string>
 	<string name="_bx_forum_form_entry_input_cat_err"><![CDATA[Нужно обязательно выбрать категорию]]></string>
+  <string name="_bx_forum_form_entry_input_sys_multicat"><![CDATA[Категории]]></string>
+  <string name="_bx_forum_form_entry_input_multicat"><![CDATA[Категории]]></string>
+  <string name="_bx_forum_form_entry_input_multicat_err"><![CDATA[Нужно обязательно выбрать категории]]></string>
 	<string name="_bx_forum_form_search"><![CDATA[Поиск]]></string>
 	<string name="_bx_forum_form_search_display_full"><![CDATA[Полный поиск]]></string>
 	<string name="_bx_forum_form_search_input_sys_author"><![CDATA[Автор]]></string>
@@ -148,19 +152,21 @@
     <string name="_bx_forum_page_block_title_sys_entry_context"><![CDATA[Опубликовано в]]></string>
     <string name="_bx_forum_page_block_title_entry_context"><![CDATA[Опубликовано в]]></string>
     <string name="_bx_forum_page_title_sys_manage"><![CDATA[Управление собственными обсуждениями]]></string>
-	<string name="_bx_forum_page_title_sys_manage_administration"><![CDATA[Управление всеми обсуждениями]]></string>
-	<string name="_bx_forum_page_title_manage"><![CDATA[Управление]]></string>
-	<string name="_bx_forum_page_block_title_system_manage"><![CDATA[Управление собственными обсуждениями]]></string>
-	<string name="_bx_forum_page_block_title_system_manage_administration"><![CDATA[Управление всеми обсуждениями]]></string>
-	<string name="_bx_forum_page_block_title_manage"><![CDATA[Управление]]></string>
+	  <string name="_bx_forum_page_title_sys_manage_administration"><![CDATA[Управление всеми обсуждениями]]></string>
+	  <string name="_bx_forum_page_title_manage"><![CDATA[Управление]]></string>
+	  <string name="_bx_forum_page_block_title_system_manage"><![CDATA[Управление собственными обсуждениями]]></string>
+	  <string name="_bx_forum_page_block_title_system_manage_administration"><![CDATA[Управление всеми обсуждениями]]></string>
+	  <string name="_bx_forum_page_block_title_manage"><![CDATA[Управление]]></string>
     <string name="_bx_forum_page_block_title_popular_keywords"><![CDATA[Популярные хэштеги]]></string>
     <string name="_bx_forum_page_block_title_cats"><![CDATA[Категории обсуждений]]></string>
+    <string name="_bx_posts_page_block_title_sys_multicats"><![CDATA[Категории обсуждений(Мульти)]]></string>
+    <string name="_bx_posts_page_block_title_multicats"><![CDATA[Категории обсуждений]]></string>
     <string name="_bx_forum_page_block_title_my_entries"><![CDATA[Мои обсуждения]]></string>
-	<string name="_bx_forum_page_title_sys_entries_search"><![CDATA[Поиск]]></string>
-	<string name="_bx_forum_page_title_entries_search"><![CDATA[Поиск]]></string>
-	<string name="_bx_forum_page_block_title_entries_search_form"><![CDATA[Поиск]]></string>
-	<string name="_bx_forum_page_block_title_entries_search_results"><![CDATA[Результаты поиска]]></string>
-	<string name="_bx_forum_page_block_title_search_form"><![CDATA[Форма поиска]]></string>
+	  <string name="_bx_forum_page_title_sys_entries_search"><![CDATA[Поиск]]></string>
+	  <string name="_bx_forum_page_title_entries_search"><![CDATA[Поиск]]></string>
+	  <string name="_bx_forum_page_block_title_entries_search_form"><![CDATA[Поиск]]></string>
+	  <string name="_bx_forum_page_block_title_entries_search_results"><![CDATA[Результаты поиска]]></string>
+	  <string name="_bx_forum_page_block_title_search_form"><![CDATA[Форма поиска]]></string>
     <string name="_bx_forum_page_block_title_search_results"><![CDATA[Результаты поиска]]></string>
     <string name="_bx_forum_page_block_title_search_form_cmts"><![CDATA[Форма поиска комментариев]]></string>
     <string name="_bx_forum_page_block_title_search_results_cmts"><![CDATA[Результаты поиска комментариев]]></string>

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

@@ -11,6 +11,7 @@
     <string name="_bx_posts_option_per_page_profile"><![CDATA[Количество элементов на странице профайла]]></string>
     <string name="_bx_posts_option_rss_num"><![CDATA[Количество элементов в ленте RSS]]></string>
     <string name="_bx_posts_option_searchable_fields"><![CDATA[Поля для поиска по ключевому слову]]></string>
+    <string name="_bx_posts_option_auto_activation_for_categories"><![CDATA[Автоактивация для категорий]]></string>
 
     <string name="_bx_posts_form_entry"><![CDATA[Публикации]]></string>
     <string name="_bx_posts_form_entry_display_add"><![CDATA[Добавить публикацию]]></string>
@@ -28,6 +29,9 @@
     <string name="_bx_posts_form_entry_input_sys_cat"><![CDATA[Категория]]></string>
     <string name="_bx_posts_form_entry_input_cat"><![CDATA[Категория]]></string>
     <string name="_bx_posts_form_entry_input_cat_err"><![CDATA[Нужно обязательно выбрать категорию]]></string>
+    <string name="_bx_posts_form_entry_input_sys_multicat"><![CDATA[Категории]]></string>
+    <string name="_bx_posts_form_entry_input_multicat"><![CDATA[Категории]]></string>
+    <string name="_bx_posts_form_entry_input_multicat_err"><![CDATA[Нужно обязательно выбрать категории]]></string>
     <string name="_bx_posts_form_entry_input_sys_text"><![CDATA[Текст]]></string>
     <string name="_bx_posts_form_entry_input_text"><![CDATA[Текст]]></string>
     <string name="_bx_posts_form_entry_input_text_err"><![CDATA[Поле для Текста не может быть пустым]]></string>
@@ -152,7 +156,9 @@
 	<string name="_bx_posts_page_block_title_system_manage_administration"><![CDATA[Управление всеми публикациями]]></string>
 	<string name="_bx_posts_page_block_title_manage"><![CDATA[Управление]]></string>    
 	<string name="_bx_posts_page_block_title_popular_keywords"><![CDATA[Популярные хэштеги]]></string>
-    <string name="_bx_posts_page_block_title_cats"><![CDATA[Категории публикаций]]></string>
+  <string name="_bx_posts_page_block_title_cats"><![CDATA[Категории публикаций]]></string>
+  <string name="_bx_posts_page_block_title_sys_multicats"><![CDATA[Категории публикаций(Мульти)]]></string>
+  <string name="_bx_posts_page_block_title_multicats"><![CDATA[Категории публикаций]]></string>
     <string name="_bx_posts_page_block_title_entry_info"><![CDATA[Инфо]]></string>
     <string name="_bx_posts_page_block_title_my_entries"><![CDATA[Мои публикации]]></string>
     <string name="_bx_posts_page_block_title_sys_recent_entries_view_showcase"><![CDATA[[Последние публикации (Витринный просмотр)]]></string>