Jelajahi Sumber

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

AntonLV 9 tahun lalu
induk
melakukan
36d876a89a

+ 3 - 0
modules/boonex/events/classes/BxEventsConfig.php

@@ -36,6 +36,7 @@ class BxEventsConfig extends BxBaseModProfileConfig
 
             // database tables
             'TABLE_ENTRIES' => $aModule['db_prefix'] . 'data',
+            'TABLE_ENTRIES_FULLTEXT' => 'search_fields',
             'TABLE_ADMINS' => $aModule['db_prefix'] . 'admins',
 
             // database fields
@@ -66,6 +67,8 @@ class BxEventsConfig extends BxBaseModProfileConfig
 
             'PARAM_NUM_RSS' => 'bx_events_num_rss',
             'PARAM_NUM_CONNECTIONS_QUICK' => 'bx_events_num_connections_quick',
+            
+            'PARAM_SEARCHABLE_FIELDS' => 'bx_events_searchable_fields',
 
             // objects
             'OBJECT_STORAGE' => 'bx_events_pics',

+ 2 - 1
modules/boonex/events/classes/BxEventsSearchResult.php

@@ -23,7 +23,7 @@ class BxEventsSearchResult extends BxBaseModGroupsSearchResult
             'table' => 'sys_profiles',
             'tableSearch' => 'bx_events_data',
             'ownFields' => array(),
-            'searchFields' => array('event_name', 'event_desc'),
+            'searchFields' => array(),
             'restriction' => array(
         		'account_id' => array('value' => '', 'field' => 'account_id', 'operator' => '='),
                 'perofileStatus' => array('value' => 'active', 'field' => 'status', 'operator' => '='),
@@ -68,6 +68,7 @@ class BxEventsSearchResult extends BxBaseModGroupsSearchResult
 
         $this->sFilterName = 'bx_events_data_filter';
         $this->oModule = $this->getMain();
+        $this->aCurrent['searchFields'] = explode(',', getParam($this->oModule->_oConfig->CNF['PARAM_SEARCHABLE_FIELDS']));
 
         $oJoinedProfile = null;
         $bProcessConditionsForPrivateContent = true;

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

@@ -8,6 +8,7 @@
 	<string name="_bx_events_option_num_rss"><![CDATA[Number of items in RSS feed]]></string>
     <string name="_bx_events_option_time_format"><![CDATA[Time format]]></string>
     <string name="_bx_events_option_short_date_format"><![CDATA[Short date format]]></string>
+    <string name="_bx_events_option_searchable_fields"><![CDATA[Searchable fields]]></string>
 
 	<string name="_bx_events_form_profile"><![CDATA[Events]]></string>
 	<string name="_bx_events_form_profile_display_add"><![CDATA[Add Event]]></string>

+ 3 - 1
modules/boonex/events/install/sql/enable.sql

@@ -15,7 +15,8 @@ INSERT INTO `sys_options` (`name`, `value`, `category_id`, `caption`, `type`, `e
 ('bx_events_per_page_browse', '24', @iCategId, '_bx_events_option_per_page_browse', 'digit', '', '', '', 11),
 ('bx_events_num_rss', '10', @iCategId, '_bx_events_option_num_rss', 'digit', '', '', '', 12),
 ('bx_events_time_format', 'H:i', @iCategId, '_bx_events_option_time_format', 'digit', '', '', '', 20),
-('bx_events_short_date_format', 'j M y', @iCategId, '_bx_events_option_short_date_format', 'digit', '', '', '', 22);
+('bx_events_short_date_format', 'j M y', @iCategId, '_bx_events_option_short_date_format', 'digit', '', '', '', 22)
+('bx_events_searchable_fields', 'event_name,event_desc', @iCategId, '_bx_events_option_searchable_fields', 'list', 'a:2:{s:6:"module";s:9:"bx_events";s:6:"method";s:21:"get_searchable_fields";}', '', '', 30);
 
 -- PAGES
 
@@ -441,6 +442,7 @@ INSERT INTO `sys_alerts_handlers` (`name`, `class`, `file`, `service_call`) VALU
 SET @iHandler := LAST_INSERT_ID();
 
 INSERT INTO `sys_alerts` (`unit`, `action`, `handler_id`) VALUES
+('system', 'save_setting', @iHandlerId),
 ('bx_timeline', 'post_common', @iHandler),
 ('bx_events_pics', 'file_deleted', @iHandler),
 ('bx_events_fans', 'connection_added', @iHandler),

+ 3 - 0
modules/boonex/groups/classes/BxGroupsConfig.php

@@ -36,6 +36,7 @@ class BxGroupsConfig extends BxBaseModProfileConfig
 
             // database tables
             'TABLE_ENTRIES' => $aModule['db_prefix'] . 'data',
+            'TABLE_ENTRIES_FULLTEXT' => 'search_fields',
             'TABLE_ADMINS' => $aModule['db_prefix'] . 'admins',
 
             // database fields
@@ -67,6 +68,8 @@ class BxGroupsConfig extends BxBaseModProfileConfig
             'PARAM_NUM_RSS' => 'bx_groups_num_rss',
             'PARAM_NUM_CONNECTIONS_QUICK' => 'bx_groups_num_connections_quick',
 
+            'PARAM_SEARCHABLE_FIELDS' => 'bx_groups_searchable_fields',
+
             // objects
             'OBJECT_STORAGE' => 'bx_groups_pics',
             'OBJECT_STORAGE_COVER' => 'bx_groups_pics',

+ 2 - 1
modules/boonex/groups/classes/BxGroupsSearchResult.php

@@ -23,7 +23,7 @@ class BxGroupsSearchResult extends BxBaseModGroupsSearchResult
             'table' => 'sys_profiles',
             'tableSearch' => 'bx_groups_data',
             'ownFields' => array(),
-            'searchFields' => array('group_name', 'group_desc'),
+            'searchFields' => array(),
             'restriction' => array(
         		'account_id' => array('value' => '', 'field' => 'account_id', 'operator' => '='),
                 'perofileStatus' => array('value' => 'active', 'field' => 'status', 'operator' => '='),
@@ -68,6 +68,7 @@ class BxGroupsSearchResult extends BxBaseModGroupsSearchResult
 
         $this->sFilterName = 'bx_groups_data_filter';
         $this->oModule = $this->getMain();
+        $this->aCurrent['searchFields'] = explode(',', getParam($this->oModule->_oConfig->CNF['PARAM_SEARCHABLE_FIELDS']));
 
         $oJoinedProfile = null;
         $bProcessConditionsForPrivateContent = true;

+ 2 - 1
modules/boonex/groups/install/langs/en.xml

@@ -5,7 +5,8 @@
 
 	<string name="_bx_groups_option_num_connections_quick"><![CDATA[Number of items in friends block]]></string>
 	<string name="_bx_groups_option_per_page_browse"><![CDATA[Number of items per page]]></string>
-	<string name="_bx_groups_option_num_rss"><![CDATA[Number of items in RSS feed]]></string>
+    <string name="_bx_groups_option_num_rss"><![CDATA[Number of items in RSS feed]]></string>
+    <string name="_bx_groups_option_searchable_fields"><![CDATA[Searchable fields]]></string>
 
 	<string name="_bx_groups_form_profile"><![CDATA[Groups]]></string>
 	<string name="_bx_groups_form_profile_display_add"><![CDATA[Add Group]]></string>

+ 3 - 0
modules/boonex/groups/install/sql/enable.sql

@@ -14,6 +14,8 @@ INSERT INTO `sys_options` (`name`, `value`, `category_id`, `caption`, `type`, `e
 ('bx_groups_num_connections_quick', '4', @iCategId, '_bx_groups_option_num_connections_quick', 'digit', '', '', '', 10),
 ('bx_groups_per_page_browse', '20', @iCategId, '_bx_groups_option_per_page_browse', 'digit', '', '', '', 11),
 ('bx_groups_num_rss', '10', @iCategId, '_bx_groups_option_num_rss', 'digit', '', '', '', 12);
+('bx_groups_searchable_fields', 'group_name,group_desc', @iCategId, '_bx_groups_option_searchable_fields', 'list', 'a:2:{s:6:"module";s:9:"bx_groups";s:6:"method";s:21:"get_searchable_fields";}', '', '', 30);
+
 
 -- PAGES
 
@@ -426,6 +428,7 @@ INSERT INTO `sys_alerts_handlers` (`name`, `class`, `file`, `service_call`) VALU
 SET @iHandler := LAST_INSERT_ID();
 
 INSERT INTO `sys_alerts` (`unit`, `action`, `handler_id`) VALUES
+('system', 'save_setting', @iHandlerId),
 ('bx_timeline', 'post_common', @iHandler),
 ('bx_groups_pics', 'file_deleted', @iHandler),
 ('bx_groups_fans', 'connection_added', @iHandler),

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

@@ -8,6 +8,7 @@
 	<string name="_bx_events_option_num_rss"><![CDATA[Число элементов в ленте RSS]]></string>
     <string name="_bx_events_option_time_format"><![CDATA[Формат времени]]></string>
     <string name="_bx_events_option_short_date_format"><![CDATA[Короткий формат даты]]></string>
+    <string name="_bx_events_option_searchable_fields"><![CDATA[Поля для поиска]]></string>
 
 	<string name="_bx_events_form_profile"><![CDATA[События]]></string>
 	<string name="_bx_events_form_profile_display_add"><![CDATA[Добавление события]]></string>

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

@@ -5,7 +5,8 @@
 
 	<string name="_bx_groups_option_num_connections_quick"><![CDATA[Число элементов в блоке друзей]]></string>
 	<string name="_bx_groups_option_per_page_browse"><![CDATA[Число элементов на странице]]></string>
-	<string name="_bx_groups_option_num_rss"><![CDATA[Число элементов в ленте RSS]]></string>
+    <string name="_bx_groups_option_num_rss"><![CDATA[Число элементов в ленте RSS]]></string>
+    <string name="_bx_groups_option_searchable_fields"><![CDATA[Поля для поиска]]></string>
 
 	<string name="_bx_groups_form_profile"><![CDATA[Группы]]></string>
 	<string name="_bx_groups_form_profile_display_add"><![CDATA[Добавление группы]]></string>

+ 2 - 14
template/scripts/BxBaseFormView.php

@@ -321,13 +321,7 @@ EOS;
                 if(empty($aInput['value']))
                     break;
 
-                $iTime = bx_process_input ($aInput['value'], isset($aInput['date_filter']) ? $aInput['date_filter'] : BX_DATA_DATE_TS, false, false);
-                if($iTime !== false) {
-                    $sValue = bx_time_js ($iTime, isset($aInput['date_format']) ? $aInput['date_format'] : BX_FORMAT_DATE);
-                    break;
-                }
-
-                $sValue = bx_process_input ($aInput['value'], BX_DATA_DATE, false, false);
+                $sValue = BxTemplFunctions::getInstance()->timeForJsFullDate($aInput['value'], isset($aInput['date_format']) ? $aInput['date_format'] : BX_FORMAT_DATE, true);
             break;
 
             case 'date_time':
@@ -336,13 +330,7 @@ EOS;
                 if(empty($aInput['value']))
                     break;
 
-                $iTime = bx_process_input ($aInput['value'], isset($aInput['date_filter']) ? $aInput['date_filter'] : BX_DATA_DATETIME_TS, false, false);
-                if($iTime !== false) {
-                    $sValue = bx_time_js ($iTime, isset($aInput['date_format']) ? $aInput['date_format'] : BX_FORMAT_DATE_TIME);
-                    break;
-                }
-
-                $sValue = bx_process_input ($aInput['value'], BX_DATA_DATETIME, false, false);
+                $sValue = BxTemplFunctions::getInstance()->timeForJsFullDate($aInput['value'], isset($aInput['date_format']) ? $aInput['date_format'] : BX_FORMAT_DATE_TIME, true);
             break;
 
             case 'checkbox_set':

+ 9 - 1
template/scripts/BxBaseFunctions.php

@@ -391,9 +391,17 @@ class BxBaseFunctions extends BxDolFactory implements iBxDolSingleton
     function timeForJs ($iUnixTimestamp, $sFormatIdentifier = BX_FORMAT_DATE, $bForceFormat = false)
     {
         $sDateUTC = bx_time_utc ($iUnixTimestamp);
-        return '<time datetime="' . $sDateUTC . '" data-bx-format="' . getParam($sFormatIdentifier) . '" data-bx-autoformat="' . ($bForceFormat ? 0 : getParam('sys_format_timeago')) . '">' . $sDateUTC . '</time>';
+        return $this->timeForJsFullDate ($sDateUTC, $sFormatIdentifier, $bForceFormat);
     }
 
+    /**
+     * Same as @see timeForJs but instead of unxtimestamp full date format is used (ex: 2005-08-15T15:52:01) as passec date param
+     */ 
+    function timeForJsFullDate ($sDateUTC, $sFormatIdentifier = BX_FORMAT_DATE, $bForceFormat = false)
+    {
+        return '<time datetime="' . $sDateUTC . '" data-bx-format="' . getParam($sFormatIdentifier) . '" data-bx-autoformat="' . ($bForceFormat ? 0 : getParam('sys_format_timeago')) . '">' . $sDateUTC . '</time>';
+    }
+    
     function statusOnOff ($mixed, $isMsg = false)
     {
         if ((is_bool($mixed) && !$mixed) || (is_string($mixed) && 'fail' == $mixed))