RomanL пре 6 година
родитељ
комит
a4b334dc6c

+ 199 - 2
modules/base/general/classes/BxBaseModGeneralModule.php

@@ -493,7 +493,7 @@ class BxBaseModGeneralModule extends BxDolModule
      * 
      * 
      * @code bx_srv('bx_posts', 'browse_favorite', [...]); @endcode
      * @code bx_srv('bx_posts', 'browse_favorite', [...]); @endcode
      * 
      * 
-     * Display entries whoch were added to favorite list by some member
+     * Display entries which were added to favorite list by some member
      * @param $iProfileId profile ID
      * @param $iProfileId profile ID
      * @param $aParams additional browse params, see BxBaseModGeneralModule::serviceBrowse
      * @param $aParams additional browse params, see BxBaseModGeneralModule::serviceBrowse
      * 
      * 
@@ -519,10 +519,200 @@ class BxBaseModGeneralModule extends BxDolModule
             $bEmptyMessage = (bool)$aParams['empty_message'];
             $bEmptyMessage = (bool)$aParams['empty_message'];
             unset($aParams['empty_message']);
             unset($aParams['empty_message']);
         }
         }
+        
+        if(bx_get('list_id') !== false && !isset($aParams['list_id']))
+            $aParams['list_id'] = (int) bx_get('list_id');
 
 
         return $this->_serviceBrowse ('favorite', array_merge(array('user' => $oProfile->id()), $aParams), BX_DB_PADDING_DEF, $bEmptyMessage);
         return $this->_serviceBrowse ('favorite', array_merge(array('user' => $oProfile->id()), $aParams), BX_DB_PADDING_DEF, $bEmptyMessage);
     }
     }
     
     
+    /**
+     * @page service Service Calls
+     * @section bx_base_general Base General
+     * @subsection bx_base_general-browsing Browsing
+     * @subsubsection bx_base_general-browse_favorite_lists browse_favorite_lists
+     * 
+     * @code bx_srv('bx_posts', 'browse_favorite_lists', [...]); @endcode
+     * 
+     * Display entries which were added to favorite lists grouped by lists by some member
+     * @param $iProfileId profile ID
+     * @param $aParams additional browse params, see BxBaseModGeneralModule::serviceBrowse
+     * 
+     * @see BxBaseModGeneralModule::serviceBrowseFavoriteLists BxBaseModGeneralModule::serviceBrowse
+     */
+    /** 
+     * @ref bx_base_general-browse_favorite_lists "browse_favorite_lists"
+     */
+    public function serviceBrowseFavoriteLists ($iProfileId = 0, $aParams = array())
+    {
+        $CNF = &$this->_oConfig->CNF;
+        
+        $oProfile = null;
+        if((int)$iProfileId)
+            $oProfile = BxDolProfile::getInstance($iProfileId);
+        if(!$oProfile && bx_get('profile_id') !== false)
+            $oProfile = BxDolProfile:: getInstance(bx_process_input(bx_get('profile_id'), BX_DATA_INT));
+        if(!$oProfile)
+            $oProfile = BxDolProfile::getInstance();
+        if(!$oProfile)
+            return '';
+        
+        $iStart = (bx_get('list_start') !== false ? (int)bx_get('list_start') : 0);
+        $iPerPage = (int)getParam($CNF['PARAM_PER_PAGE_FOR_FAVORITES_LISTS']);
+        
+        return $this->_oTemplate->getFavoriteList($oProfile, $iStart, $iPerPage, $aParams);
+    }
+    
+    /**
+     * @page service Service Calls
+     * @section bx_base_general Base General
+     * @subsection bx_base_general-browsing Browsing
+     * @subsubsection bx_base_general-browse_favorite_list_actions browse_favorite_list_actions
+     * 
+     * @code bx_srv('bx_posts', 'browse_favorite_list_actions', [...]); @endcode
+     * 
+     * Display menu actions for favorite lists
+     * 
+     * @see BxBaseModGeneralModule::serviceFavoritesListActions
+     */
+    /** 
+     * @ref bx_base_general-browse_favorite_list_actions "browse_favorite_list_actions"
+     */
+     public function serviceFavoritesListActions(){
+         $iListId = null;
+         if(!bx_get('list_id'))
+             return false;
+         
+         $iListId = (int) bx_get('list_id');
+         
+         $oProfile = null;
+         if(bx_get('profile_id') !== false)
+             $oProfile = BxDolProfile:: getInstance(bx_process_input(bx_get('profile_id'), BX_DATA_INT));
+         if(!$oProfile)
+             return false;
+
+         $CNF = &$this->_oConfig->CNF;
+         $oFavorite = BxDolFavorite::getObjectInstance($CNF['OBJECT_FAVORITES'], 0, true);
+        
+         $aList = $oFavorite->getQueryObject()->getList(array('type' => 'id', 'list_id' => $iListId));
+         
+         if (!$oFavorite->isAllowedEditList($aList['author_id']))
+             return false;
+         
+         if (empty($aList) && $iListId > 0)
+             return false;
+         
+         $aMarkers = array(
+             'js_object' => $oFavorite->getJsObjectName(),
+             'list_id' => $iListId,
+         );
+
+         $oMenu = BxDolMenu::getObjectInstance('sys_favorite_list');
+
+         $oMenu->addMarkers($aMarkers);
+         $sMenu = $oMenu->getCode();
+
+         if(empty($sMenu))
+             return '';
+
+         return $sMenu . $oFavorite->getJsScript();
+     }
+     
+     /**
+    * @page service Service Calls
+    * @section bx_base_general Base General
+    * @subsection bx_base_general-menu Menu
+    * @subsubsection bx_base_general-favorites_list_info favorites_list_info
+    * 
+    * @code bx_srv('bx_posts', 'favorites_list_info', [...]); @endcode
+    * 
+    * Favorites list info
+    * @param $aParams array with additional custom params 
+    *                 which may overwrite some default values
+    * 
+    * @see BxBaseModGeneralModule::serviceFavoritesListInfo
+    */
+    /** 
+    * @ref bx_base_general-favorites_list_info "favorites_list_info"
+    */
+    public function serviceFavoritesListInfo($aParams = array()){
+        $CNF = &$this->_oConfig->CNF;
+        
+        $iListId = null;
+        if(bx_get('list_id') === false)
+            return false;
+        
+        $iListId = (int) bx_get('list_id');
+        
+        $oProfile = null;
+        if(bx_get('profile_id') !== false)
+            $oProfile = BxDolProfile:: getInstance(bx_process_input(bx_get('profile_id'), BX_DATA_INT));
+        
+        if(!$oProfile)
+            return false;
+        
+        $oFavorite = BxDolFavorite::getObjectInstance($CNF['OBJECT_FAVORITES'], 0, true);
+        $aList = $oFavorite->getQueryObject()->getList(array('type' => 'info', 'list_id' => $iListId, 'author_id' => $oProfile->id()));    
+        if (empty($aList))
+            return false;
+    
+        return $this->_oTemplate->getFavoritesListInfo($aList, $oProfile);
+    }
+    
+    /**
+    * @page service Service Calls
+    * @section bx_base_general Base General
+    * @subsection bx_base_general-menu Menu
+    * @subsubsection bx_base_general-favorites_list_social_sharing favorites_list_social_sharing
+    * 
+    * @code bx_srv('bx_posts', 'favorites_list_social_sharing', [...]); @endcode
+    * 
+    * Favorites list social sharing actions
+    * @param $aParams array with additional custom params 
+    *                 which may overwrite some default values
+    * 
+    * @see BxBaseModGeneralModule::serviceFavoritesListSocialSharing
+    */
+    /** 
+    * @ref bx_base_general-favorites_list_social_sharing "favorites_list_social_sharing"
+    */
+    public function serviceFavoritesListSocialSharing($aParams = array()){
+        $iListId = null;
+        if(bx_get('list_id') === false)
+            return false;
+        $iListId = (int) bx_get('list_id');
+         
+        $oProfile = null;
+        if(bx_get('profile_id') !== false)
+            $oProfile = BxDolProfile:: getInstance(bx_process_input(bx_get('profile_id'), BX_DATA_INT));
+        if(!$oProfile)
+            return false;
+
+         $CNF = &$this->_oConfig->CNF;
+         $oFavorite = BxDolFavorite::getObjectInstance($CNF['OBJECT_FAVORITES'], 0, true);
+         $aList = $oFavorite->getQueryObject()->getList(array('type' => 'id', 'list_id' => $iListId));
+         if (empty($aList) && $iListId > 0)
+             return false;
+         
+         $aMarkers = array(
+             'id' => $iListId,
+             'module' => $this->_aModule['name'],
+             'url' => $this->_getFavoriteListUrl($iListId, $oProfile->id()),
+             'title' => $iListId > 0 ? $aList['title'] : _t('_sys_txt_default_favorite_list')
+         );
+
+         $oMenu = BxDolMenu::getObjectInstance('sys_social_sharing');
+         $oMenu->addMarkers($aMarkers);
+         $sMenu = $oMenu->getCode();
+
+         if(empty($sMenu))
+             return '';
+
+         return $this->_oTemplate->parseHtmlByName('entry-share.html', array(
+             'menu' => $sMenu
+         ));
+     }
+    
     /**
     /**
      * Display entries posted into particular context
      * Display entries posted into particular context
      * @return HTML string
      * @return HTML string
@@ -2325,7 +2515,7 @@ class BxBaseModGeneralModule extends BxDolModule
     {
     {
         return getVisitorIP();
         return getVisitorIP();
     }
     }
-
+    
     public function getUserInfo($iUserId = 0)
     public function getUserInfo($iUserId = 0)
     {
     {
         $oProfile = BxDolProfile::getInstanceMagic($iUserId);
         $oProfile = BxDolProfile::getInstanceMagic($iUserId);
@@ -2412,6 +2602,13 @@ class BxBaseModGeneralModule extends BxDolModule
         return $AuditParams;
         return $AuditParams;
     }
     }
     
     
+    public function _getFavoriteListUrl ($iListId, $iProfileId)
+    {
+        $CNF = &$this->_oConfig->CNF;
+        return BX_DOL_URL_ROOT . BxDolPermalinks::getInstance()->permalink('page.php?i=' . $CNF['URI_FAVORITES_LIST'] . '&profile_id=' . $iProfileId . '&list_id=' . $iListId);
+    }
+    
+    
     // ====== PROTECTED METHODS
     // ====== PROTECTED METHODS
 
 
     protected function _serviceEntityForm ($sFormMethod, $iContentId = 0, $sDisplay = false, $sCheckFunction = false, $bErrorMsg = true)
     protected function _serviceEntityForm ($sFormMethod, $iContentId = 0, $sDisplay = false, $sCheckFunction = false, $bErrorMsg = true)

+ 86 - 0
modules/base/general/classes/BxBaseModGeneralTemplate.php

@@ -243,6 +243,92 @@ class BxBaseModGeneralTemplate extends BxDolModuleTemplate
     		'bx_repeat:info' => $aValues,
     		'bx_repeat:info' => $aValues,
     	));
     	));
     }
     }
+    
+    public function getFavoriteList($oProfile, $iStart, $iPerPage, $aParams)
+    {
+        $CNF = $this->_oConfig->CNF;
+        
+        $bEmptyMessage = false;
+        if(isset($aParams['empty_message'])) {
+            $bEmptyMessage = (bool)$aParams['empty_message'];
+            unset($aParams['empty_message']);
+        }
+        
+        $oFavorite = BxDolFavorite::getObjectInstance($CNF['OBJECT_FAVORITES'], 0, true);
+        $aListsData = $oFavorite->getQueryObject()->getList(array('type' => 'active', 'author_id' => $oProfile->id(), 'need_default' => true, 'start' => $iStart, 'limit' => $iPerPage + 1));
+        
+        $iNum = count($aListsData);
+        if ($iNum > $iPerPage)
+            $aListsData = array_slice($aListsData, 0, $iPerPage);
+        
+        $oPrivacy = BxDolPrivacy::getObjectInstance($CNF['OBJECT_PRIVACY_LIST_VIEW']);
+        $aListsTmpl = array();
+        
+        foreach($aListsData as $iListId => $sName) {
+            $aParams['list_id'] = $iListId;
+            if ($oPrivacy->check($iListId) || $iListId == 0){
+                $aTmp = $this->getModule()->_serviceBrowse ('favorite', array_merge(array('user' => $oProfile->id()), $aParams), BX_DB_PADDING_DEF, $bEmptyMessage, false);
+                if ($aTmp && $aTmp['content'] || true){
+                    $aListsTmpl[] = array(
+                        'title' => $sName, 
+                        'content_url' => $this->getModule()->_getFavoriteListUrl($iListId, $oProfile->id()),
+                        'content' => $aTmp['content']
+                    );
+                }
+            }
+            else{
+                $aListsTmpl[] = array(
+                    'title' => 'private list', 
+                    'content_url' => 'javascript:',
+                    'content' => ''
+                );
+            }
+        } 
+        
+        $oPaginate = new BxTemplPaginate(array(
+            'on_change_page' => "return !loadDynamicBlockAutoPaginate(this, '{start}', '{per_page}', " . bx_js_string(json_encode($aParams)) . ", 'list_start', 'list_per_page');",
+            'num' => $iNum,
+            'per_page' => $iPerPage,
+            'start' => $iStart,
+        ));
+        
+        return $this->parseHtmlByName('favorite-lists.html', array('bx_repeat:items' => $aListsTmpl)) . $oPaginate->getSimplePaginate() . $oFavorite->getJsScript();
+    }
+    
+    public function getFavoritesListInfo($aList, $oProfile)
+    {
+        $CNF = $this->_oConfig->CNF;
+        
+        $oPrivacy = BxDolPrivacy::getObjectInstance($CNF['OBJECT_PRIVACY_LIST_VIEW']);
+        $sTitle = "";
+        if ($aList['allow_view_favorite_list_to'] < 0){
+            $oProfileContext = BxDolProfile::getInstance(abs($aList['allow_view_favorite_list_to']));
+            $sTitle = $oProfileContext->getDisplayName();
+        }
+        else{
+            if (empty($aList['allow_view_favorite_list_to']))
+                $aList['allow_view_favorite_list_to'] = 3;
+            $aPrivaciInfo = $oPrivacy->getGroupsBy(array('type'=>'id' , 'id'=> $aList['allow_view_favorite_list_to']));
+            $sTitle = _t($aPrivaciInfo['title']);
+        }
+        
+        $aListsTmpl = array();
+        
+        if (!empty($aList['created'])){
+            $aListsTmpl[] = array('title' => _t('_sys_form_favorite_list_title_created'), 'value' => bx_time_js($aList['created']));
+        }
+        
+        $aListsTmpl = array_merge($aListsTmpl, 
+            array(
+                array('title' => _t('_sys_form_favorite_list_title_updated'), 'value' => bx_time_js($aList['updated'])),
+                array('title' => _t('_sys_form_favorite_list_title_count'), 'value' => $aList['count']),
+                array('title' => _t('_sys_form_favorite_list_title_visibility'), 'value' => $sTitle)
+            )
+        );
+        
+        return $this->parseHtmlByName('favorite-list-info.html', array('bx_repeat:items' => $aListsTmpl, 'author' => $oProfile->getUnit()));
+    }
+    
 
 
     function entryAllActions($sActions)
     function entryAllActions($sActions)
     {
     {

+ 13 - 0
modules/base/general/template/favorite-list-info.html

@@ -0,0 +1,13 @@
+<div class="bx-form-advanced-wrapper bx_videos_wrapper">
+    __author__
+    <div class=" bx-form-section bx-form-view-section bx-def-padding-sec-top bx-def-border-top bx-form-section-divider">
+        <div class=" bx-form-section-content bx-def-padding-top">
+            <bx_repeat:items>
+                <div class="bx-form-row-view-wrapper bx-form-row-view-wrapper-text bx-def-padding-sec-top">
+                    <div class="bx-form-row-view-caption">__title__:</div>
+                    <div class="bx-form-row-view-value">__value__</div>
+                </div>
+            </bx_repeat:items>
+        </div>
+    </div>
+</div>

+ 6 - 0
modules/base/general/template/favorite-lists.html

@@ -0,0 +1,6 @@
+<bx_repeat:items>
+    <div class="bx-def-padding-bottom">
+        <h2 class="bx-base-text-unit-title"><a href="__content_url__">__title__</a></h2>
+        __content__
+    </div>
+</bx_repeat:items>

+ 9 - 2
modules/base/text/classes/BxBaseModTextSearchResult.php

@@ -190,10 +190,17 @@ class BxBaseModTextSearchResult extends BxBaseModGeneralSearchResult
         $CNF = &$this->oModule->_oConfig->CNF;
         $CNF = &$this->oModule->_oConfig->CNF;
         
         
         $sSystem = '';
         $sSystem = '';
+        $iListId = 0;
+        
         if(!empty($aParams['system'])) {
         if(!empty($aParams['system'])) {
             $sSystem = $aParams['system'];
             $sSystem = $aParams['system'];
             unset($aParams['system']);
             unset($aParams['system']);
         }
         }
+        
+        if(!empty($aParams['list_id'])) {
+            $iListId = $aParams['list_id'];
+            unset($aParams['list_id']);
+        }
 
 
         $oProfileAuthor = BxDolProfile::getInstance((int)$aParams['user']);
         $oProfileAuthor = BxDolProfile::getInstance((int)$aParams['user']);
         if(!$oProfileAuthor) 
         if(!$oProfileAuthor) 
@@ -204,7 +211,7 @@ class BxBaseModTextSearchResult extends BxBaseModGeneralSearchResult
         if(!$oFavorite->isPublic() && $iProfileAuthor != bx_get_logged_profile_id()) 
         if(!$oFavorite->isPublic() && $iProfileAuthor != bx_get_logged_profile_id()) 
             return false;
             return false;
 
 
-        $aConditions = $oFavorite->getConditionsTrack($this->aCurrent['table'], 'id', $iProfileAuthor);
+        $aConditions = $oFavorite->getConditionsTrack($this->aCurrent['table'], 'id', $iProfileAuthor, $iListId);
         if(!empty($aConditions) && is_array($aConditions)) {
         if(!empty($aConditions) && is_array($aConditions)) {
             if(empty($this->aCurrent['restriction']) || !is_array($this->aCurrent['restriction']))
             if(empty($this->aCurrent['restriction']) || !is_array($this->aCurrent['restriction']))
                 $this->aCurrent['restriction'] = array();
                 $this->aCurrent['restriction'] = array();
@@ -214,7 +221,7 @@ class BxBaseModTextSearchResult extends BxBaseModGeneralSearchResult
                 $this->aCurrent['join'] = array();
                 $this->aCurrent['join'] = array();
             $this->aCurrent['join'] = array_merge($this->aCurrent['join'], $aConditions['join']);
             $this->aCurrent['join'] = array_merge($this->aCurrent['join'], $aConditions['join']);
         }
         }
-
+        
         $this->sBrowseUrl = 'page.php?i=' . $CNF['URI_AUTHOR_ENTRIES'] . '&profile_id={profile_id}';
         $this->sBrowseUrl = 'page.php?i=' . $CNF['URI_AUTHOR_ENTRIES'] . '&profile_id={profile_id}';
         $this->aCurrent['title'] = _t($CNF['T']['txt_all_entries_by_author']);
         $this->aCurrent['title'] = _t($CNF['T']['txt_all_entries_by_author']);
         $this->aCurrent['rss']['link'] = 'modules/?r=' . $this->oModule->_oConfig->getUri() . '/rss/' . $sMode . '/' . $iProfileAuthor;
         $this->aCurrent['rss']['link'] = 'modules/?r=' . $this->oModule->_oConfig->getUri() . '/rss/' . $sMode . '/' . $iProfileAuthor;

+ 0 - 1
modules/base/text/template/account_link.html

@@ -1 +0,0 @@
-<bx_include_base:../../../../template/account_link.html />

+ 1 - 0
modules/base/text/template/favorite-lists.html

@@ -0,0 +1 @@
+<bx_include_base:../modules/base/general/template/favorite-lists.html />111

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

@@ -2291,6 +2291,29 @@ If it is not enabled then please consider implement this optimization, since it
         <string name="_sys_form_ps_gc_input_caption_do_submit"><![CDATA[Submit]]></string>
         <string name="_sys_form_ps_gc_input_caption_do_submit"><![CDATA[Submit]]></string>
         <string name="_sys_form_ps_gc_input_caption_system_do_cancel"><![CDATA[Cancel]]></string>
         <string name="_sys_form_ps_gc_input_caption_system_do_cancel"><![CDATA[Cancel]]></string>
         <string name="_sys_form_ps_gc_input_caption_do_cancel"><![CDATA[Cancel]]></string>
         <string name="_sys_form_ps_gc_input_caption_do_cancel"><![CDATA[Cancel]]></string>
+  <string name="_sys_form_favorite"><![CDATA[Favorite]]></string>
+  <string name="_sys_form_display_favorite_add"><![CDATA[Add to favorite list]]></string>
+  <string name="_sys_form_display_favorite_list_edit"><![CDATA[Edit to favorite list]]></string>
+  <string name="_sys_form_favorite_input_caption_system_sys"><![CDATA[Object Type]]></string>
+  <string name="_sys_form_favorite_input_caption_system_list_id"><![CDATA[List Id]]></string>
+  <string name="_sys_form_favorite_input_caption_system_object_id"><![CDATA[Object ID]]></string>
+  <string name="_sys_form_favorite_input_caption_system_action"><![CDATA[Action]]></string>
+  <string name="_sys_form_favorite_input_caption_system_id"><![CDATA[System ID]]></string>
+  <string name="_sys_form_favorite_input_caption_system_list"><![CDATA[List]]></string>
+  <string name="_sys_form_favorite_input_caption_list"><![CDATA[List]]></string>
+  <string name="_sys_form_favorite_input_caption_system_title"><![CDATA[Title]]></string>
+  <string name="_sys_form_favorite_input_caption_title"><![CDATA[Title]]></string>
+  <string name="_sys_form_favorite_input_caption_system_allow_view_to"><![CDATA[Visibility]]></string>
+  <string name="_sys_form_favorite_input_caption_allow_view_to"><![CDATA[Visibility]]></string>
+  <string name="_sys_form_favorite_input_caption_submit"><![CDATA[Submit]]></string>
+  <string name="_sys_form_favorite_input_caption_system_submit"><![CDATA[Submit]]></string>
+  <string name="_sys_form_favorite_input_caption_button_new_list"><![CDATA[<i class="sys-icon folder-plus"></i>]]></string>
+  <string name="_sys_form_favorite_list_title_count"><![CDATA[Number of videos]]></string>
+  <string name="_sys_form_favorite_list_title_created"><![CDATA[Created]]></string>
+  <string name="_sys_form_favorite_list_title_updated"><![CDATA[Updated]]></string>
+  <string name="_sys_form_favorite_list_title_visibility"><![CDATA[Visibility]]></string>
+  <string name="_sys_txt_default_favorite_list"><![CDATA[Default]]></string>
+  
 	<string name="_sys_form_report"><![CDATA[Report]]></string>
 	<string name="_sys_form_report"><![CDATA[Report]]></string>
 	<string name="_sys_form_report_input_caption_submit"><![CDATA[Post]]></string>
 	<string name="_sys_form_report_input_caption_submit"><![CDATA[Post]]></string>
 	<string name="_sys_form_report_input_caption_text"><![CDATA[Report Text]]></string>
 	<string name="_sys_form_report_input_caption_text"><![CDATA[Report Text]]></string>
@@ -2698,6 +2721,11 @@ If it is not enabled then please consider implement this optimization, since it
   <string name="_sys_menu_item_title_wiki_delete_block"><![CDATA[Delete Block]]></string>
   <string name="_sys_menu_item_title_wiki_delete_block"><![CDATA[Delete Block]]></string>
   <string name="_sys_menu_item_title_wiki_translate"><![CDATA[Translate]]></string>
   <string name="_sys_menu_item_title_wiki_translate"><![CDATA[Translate]]></string>
   <string name="_sys_menu_item_title_wiki_history"><![CDATA[History]]></string>
   <string name="_sys_menu_item_title_wiki_history"><![CDATA[History]]></string>
+  <string name="_sys_menu_title_favorite_list"><![CDATA[Favorite list]]></string>
+  <string name="_sys_menu_set_title_sys_favorite_list"><![CDATA[Favorite list]]></string>
+  <string name="_sys_menu_item_title_favorite_list_edit"><![CDATA[Edit]]></string>
+  <string name="_sys_menu_item_title_wiki_favorite_list_delete"><![CDATA[Delete]]></string>
+  
   <string name="_sys_menu_dashboard_manage_tools_addon_counter1_caption_default"><![CDATA[hidden]]></string>
   <string name="_sys_menu_dashboard_manage_tools_addon_counter1_caption_default"><![CDATA[hidden]]></string>
   <string name="_sys_menu_dashboard_manage_tools_addon_counter1_caption_profile_default"><![CDATA[unapproved]]></string>
   <string name="_sys_menu_dashboard_manage_tools_addon_counter1_caption_profile_default"><![CDATA[unapproved]]></string>
   <string name="_sys_menu_dashboard_manage_tools_addon_counter2_caption_default"><![CDATA[reported]]></string>
   <string name="_sys_menu_dashboard_manage_tools_addon_counter2_caption_default"><![CDATA[reported]]></string>