Explorar el Código

#1063 - bugfix & improvements

RomanL hace 8 años
padre
commit
327d864165

+ 6 - 10
modules/boonex/quoteofday/classes/BxQuoteOfDayAlertsResponse.php

@@ -9,24 +9,20 @@
  * @{
  */
 
-class BxQuoteOfDayAlertsResponse extends BxBaseModTextAlertsResponse
-{
-    
-    protected $MODULE;
-	protected $_oModule;
-    
+class BxQuoteOfDayAlertsResponse extends BxDolAlertsResponse
+{  
     public function __construct()
     { 
-        $this->MODULE = 'bx_quoteofday';
-    	$this->_oModule = BxDolModule::getInstance($this->MODULE);
         parent::__construct();
     }
     
     public function response($oAlert)
     {
-        if ($oAlert->aExtras['option']=="bx_quoteofday_source" || $oAlert->aExtras['option']=="bx_quoteofday_rss_url" || $oAlert->aExtras['option']=="bx_quoteofday_selection_mode"){
-            $this->_oModule->RemoveQuoteFromCache();
+        if ($oAlert->aExtras['option'] == 'bx_quoteofday_source' || $oAlert->aExtras['option'] == 'bx_quoteofday_rss_url' || $oAlert->aExtras['option'] == 'bx_quoteofday_selection_mode'){
+            $oModule = BxDolModule::getInstance('bx_quoteofday');
+            $oModule->removeQuoteFromCache();
         }
     }
 }
+
 /** @} */

+ 1 - 3
modules/boonex/quoteofday/classes/BxQuoteofdayConfig.php → modules/boonex/quoteofday/classes/BxQuoteOfDayConfig.php

@@ -28,14 +28,12 @@ class BxQuoteOfDayConfig extends BxDolModuleConfig
             'FIELD_AUTHOR' => 'author',
             'FIELD_ADDED' => 'added',
             'FIELD_TEXT' => 'text',
-			'FIELD_STATUS' => 'status',
-        	'FIELD_STATUS_ADMIN' => 'status_admin',
+			'FIELD_STATUS' => 'status'
 		);
 		
 		$this->_aGridObjects = array(
         	'common' => $this->CNF['OBJECT_GRID'],
         );
-		
     }   
 }
 

+ 5 - 6
modules/boonex/quoteofday/classes/BxQuoteofdayDb.php

@@ -13,7 +13,6 @@ bx_import('BxDolModuleDb');
 
 class BxQuoteOfDayDb extends BxBaseModGeneralDb
 {
-	
 	function __construct(&$oConfig) 
     {
 		parent::__construct($oConfig);	
@@ -21,18 +20,18 @@ class BxQuoteOfDayDb extends BxBaseModGeneralDb
 	
 	public function getHiddenItemsCount()
 	{
-		$CNF=$this->_oConfig->CNF;
-		$sSql = $this->prepare("SELECT COUNT(*) FROM ".$CNF['TABLE_ENTRIES']." WHERE ".$CNF['FIELD_STATUS']."!='active' OR ".$CNF['FIELD_STATUS_ADMIN']."!='active' ");
-		return $this->getOne($sSql);
+		$CNF = &$this->_oConfig->CNF;
+		$sSql = $this->prepare("SELECT COUNT(*) FROM " . $CNF['TABLE_ENTRIES']." WHERE " . $CNF['FIELD_STATUS']."!='active'");
+		
+        return $this->getOne($sSql);
 	}
 	
 	public function getData()
 	{
 		$CNF = &$this->_oConfig->CNF;
-		return  $this->getColumn ("SELECT `".$CNF['FIELD_TEXT']."` FROM ".$CNF['TABLE_ENTRIES']." WHERE ".$CNF['FIELD_STATUS']."='active' AND ".$CNF['FIELD_STATUS_ADMIN']."='active'");
+		return  $this->getColumn("SELECT `" . $CNF['FIELD_TEXT'] . "` FROM " . $CNF['TABLE_ENTRIES'] . " WHERE " . $CNF['FIELD_STATUS'] . "='active'");
 	}
 	
 }
 
-
 /** @} */

+ 7 - 9
modules/boonex/quoteofday/classes/BxQuoteofdayGridInternal.php

@@ -33,7 +33,7 @@ class BxQuoteOfDayGridInternal extends BxTemplGrid
 		$oForm = BxDolForm::getObjectInstance('bx_quoteofday','bx_quoteofday_entry_add'); // get form instance for specified form object and display
 		if (!$oForm)
 			return '';
-		$oForm->aFormAttrs['action']=BX_DOL_URL_ROOT . 'grid.php?' . bx_encode_url_params($_GET, array('ids', '_r'));
+		$oForm->aFormAttrs['action'] = BX_DOL_URL_ROOT . 'grid.php?' . bx_encode_url_params($_GET, array('ids', '_r'));
 		$oForm->initChecker();
         if($oForm->isSubmittedAndValid()) {
 			$mixedResult = $oForm->insert(array('added' => time()));
@@ -44,8 +44,7 @@ class BxQuoteOfDayGridInternal extends BxTemplGrid
 			echoJson($aRes);
         }
         else {
-			
-            $sContent = BxTemplStudioFunctions::getInstance()->popupBox('bx_quoteofday_form_add', _t('_bx_quoteofday_form_add_title'), 	$this->_oModule->_oTemplate->parseHtmlByName('manage_item.html', array(
+            $sContent = BxTemplStudioFunctions::getInstance()->popupBox('bx_quoteofday_form_add', _t('_bx_quoteofday_form_add_title'), $this->_oModule->_oTemplate->parseHtmlByName('manage_item.html', array(
                 'form_id' => $oForm->id,
                 'form' => $oForm->getCode(true),
                 'object' => $this->_sObject,
@@ -63,8 +62,8 @@ class BxQuoteOfDayGridInternal extends BxTemplGrid
 		$oForm = BxDolForm::getObjectInstance('bx_quoteofday','bx_quoteofday_entry_edit'); // get form instance for specified form object and display
 		if (!$oForm)
 			return '';
-		$oForm->aFormAttrs['action']=BX_DOL_URL_ROOT . 'grid.php?' . bx_encode_url_params($_GET, array('_r'));
-		$aContentInfo=array();
+		$oForm->aFormAttrs['action'] = BX_DOL_URL_ROOT . 'grid.php?' . bx_encode_url_params($_GET, array('_r'));
+		$aContentInfo = array();
 		$aContentInfo = $this->_oModule->_oDb->getContentInfoById($iId);
 		$oForm->initChecker($aContentInfo, array());
         if($oForm->isSubmittedAndValid()) {
@@ -77,7 +76,7 @@ class BxQuoteOfDayGridInternal extends BxTemplGrid
         }
         else {
 			
-            $sContent = BxTemplStudioFunctions::getInstance()->popupBox('bx_quoteofday_form_edit', _t('_bx_quoteofday_form_edit_title'), 	$this->_oModule->_oTemplate->parseHtmlByName('manage_item.html', array(
+            $sContent = BxTemplStudioFunctions::getInstance()->popupBox('bx_quoteofday_form_edit', _t('_bx_quoteofday_form_edit_title'), $this->_oModule->_oTemplate->parseHtmlByName('manage_item.html', array(
                 'form_id' => $oForm->id,
                 'form' => $oForm->getCode(true),
                 'object' => $this->_sObject,
@@ -92,12 +91,11 @@ class BxQuoteOfDayGridInternal extends BxTemplGrid
         $aIds = bx_get('ids');
 		$iId = $aIds[0];
         $aContentInfo = $this->_oModule->_oDb->getContentInfoById($iId);
-        $this->_oModule->RemoveQuoteFromCache();
-        $this->_oModule->PutQuoteToCache($aContentInfo["text"]);
+        $this->_oModule->removeQuoteFromCache();
+        $this->_oModule->putQuoteToCache($aContentInfo["text"]);
         $aRes = array('msg' => _t('_bx_quoteofday_grid_action_title_adm_publish_text'));
         echoJson($aRes);
     }
-	
 }
 
 /** @} */

+ 50 - 52
modules/boonex/quoteofday/classes/BxQuoteofdayModule.php

@@ -11,20 +11,17 @@
 
 define('BX_QOD_SOURCE_INTERNAL', 'internal');
 define('BX_QOD_SOURCE_RSS', 'rss');
-
 define('BX_QOD_SELECTION_MODE_BY_RANDOM', 'random');
 define('BX_QOD_SELECTION_MODE_BY_ORDER', 'order');
-
 define('BX_QOD_LIFETIME_IN_SECONDS', 86400);
 
-class BxQuoteOfDayModule extends BxBaseModGeneralModule 
+class BxQuoteOfDayModule extends BxDolModule 
 {
     function __construct(&$aModule) 
     {
         parent::__construct($aModule);
     }
 
-	
     /**
      * Service methods
      */
@@ -45,13 +42,13 @@ class BxQuoteOfDayModule extends BxBaseModGeneralModule
     /** 
      * @ref bx_quoteofday-get_sources "get_sources"
      */
-    
 	public function serviceGetSources()
     {
         $aResult = array();
         $aChoices = array(BX_QOD_SOURCE_INTERNAL, BX_QOD_SOURCE_RSS);
         foreach($aChoices as $sChoice) 
 		 	$aResult[$sChoice]=_t('_bx_quoteofday_source_'. $sChoice);
+             
         return $aResult;
     }
     
@@ -78,10 +75,10 @@ class BxQuoteOfDayModule extends BxBaseModGeneralModule
         $aChoices = array(BX_QOD_SELECTION_MODE_BY_RANDOM, BX_QOD_SELECTION_MODE_BY_ORDER);
         foreach($aChoices as $sChoice) 
             $aResult[$sChoice]=_t('_bx_quoteofday_selection_mode_by_'. $sChoice);
+        
         return $aResult;
     }
 	
-    
     /**
      * @page service Service Calls
      * @section bx_quoteofday Quote of the Day
@@ -123,11 +120,12 @@ class BxQuoteOfDayModule extends BxBaseModGeneralModule
      */
 	public function serviceGetQuote()
     {
-		$sTextFromCache = $this->GetQuoteFromCache();
+		$sTextFromCache = $this->getQuoteFromCache();
         if ($sTextFromCache == null || $sTextFromCache == "")
         {
-            $sTextFromCache = $this->serviceSetQuote();
+            $sTextFromCache = $this->defineAndSetQuote();
         }
+        
         return  $sTextFromCache;
 	}
 	
@@ -135,106 +133,106 @@ class BxQuoteOfDayModule extends BxBaseModGeneralModule
      * @page service Service Calls
      * @section bx_quoteofday Quote of the Day
      * @subsection bx_quoteofday-other Other
-     * @subsubsection bx_quoteofday-set_quote
+     * @subsubsection bx_quoteofday-set_quotes_manage
      * 
-     * @code bx_srv('bx_quoteofday', 'set_quote', [...]); @endcode
+     * @code bx_srv('bx_quoteofday', 'set_quotes_manage', [...]); @endcode
      * 
-     * Define and store in cache Quote of the Day depend on current module settings
+     * Return Grid from internal quotes management
      * 
-     * @return string - current Quote of the Day from system cache.
+     * @return string -  code of grid quotes management.
      * 
-     * @see BxQuoteOfDayModule::serviceSetQuote
+     * @see BxQuoteOfDayModule::serviceGetQuotesManage
      */
     /** 
-     * @ref bx_quoteofday-set_quote "set_quote"
+     * @ref bx_quoteofday-set_quotes_manage "set_quotes_manage"
      */
-	public function serviceSetQuote()
+    public function serviceGetQuotesManage()
+    {
+		$this->_oTemplate->addJs('jquery.form.min.js');
+		$oGrid = BxDolGrid::getObjectInstance($this->_oConfig->CNF['OBJECT_GRID']);
+		if(!$oGrid)
+			return '';
+        
+		return $oGrid->getCode();
+    }
+    
+    public function defineAndSetQuote()
     {
 		$sRssUrl = getParam('bx_quoteofday_rss_url');
 		$iRssMaxItems = intval(getParam('bx_quoteofday_rss_max_items'));
-		$aSources=explode(',',getParam('bx_quoteofday_source'));
-        $sSelectionType=getParam('bx_quoteofday_selection_mode');
-		
+		$aSources = explode(',', getParam('bx_quoteofday_source'));
+        $sSelectionType = getParam('bx_quoteofday_selection_mode');
 		$aData=array();
 		
 		//##### Get data from internal set #####
-		if (in_array(BX_QOD_SOURCE_INTERNAL,$aSources)) {
-			$aData=array_merge($aData,$this->getInternalData());
+		if (in_array(BX_QOD_SOURCE_INTERNAL, $aSources)) {
+			$aData = array_merge($aData, $this->getInternalData());
 		}
 		
 		//##### Get data from rss #####
-		if (in_array(BX_QOD_SOURCE_RSS,$aSources) && $sRssUrl!="" && $iRssMaxItems>0)
-			$aData = array_merge($aData,$this->getRssData($sRssUrl,$iRssMaxItems));
+		if (in_array(BX_QOD_SOURCE_RSS, $aSources) && $sRssUrl != "" && $iRssMaxItems > 0)
+			$aData = array_merge($aData,$this->getRssData($sRssUrl, $iRssMaxItems));
+        
 		$iIndex = -1;
 		if ($sSelectionType == BX_QOD_SELECTION_MODE_BY_RANDOM) {
-            $iIndex = rand(0,count($aData)-1);
+            $iIndex = rand(0, count($aData) - 1);
         }
         else {
             $iDayOfYear = date('z');
             $iIndex = $iDayOfYear % count($aData);
         }
+        
         $sTextToChache = "";
         if ($iIndex > -1 && count($aData) > 0) {
             $sTextToChache = $aData[$iIndex];
-            $this->PutQuoteToCache($sTextToChache);
+            $this->putQuoteToCache($sTextToChache);
         }
+        
         return $sTextToChache;
 	}
     
-    
-    public function PutQuoteToCache($quoteText)
+    public function putQuoteToCache($quoteText)
     {
         $oCachObject = $this->_oDb->getDbCacheObject();
-		$oCachObject->setData($this->_oConfig->CNF['CACHEKEY'],$quoteText,BX_QOD_LIFETIME_IN_SECONDS);
+		$oCachObject->setData($this->_oConfig->CNF['CACHEKEY'], $quoteText, BX_QOD_LIFETIME_IN_SECONDS);
     }
     
-    public function GetQuoteFromCache()
+    public function getQuoteFromCache()
     {
-        $oCachObject = $this->_oDb->getDbCacheObject();
-		return $oCachObject->getData($this->_oConfig->CNF['CACHEKEY'],BX_QOD_LIFETIME_IN_SECONDS); 
+        $oCachObject = $this->_oDb->getDbCacheObject();    
+		return $oCachObject->getData($this->_oConfig->CNF['CACHEKEY'], BX_QOD_LIFETIME_IN_SECONDS); 
     }
 	
-    
-    public function RemoveQuoteFromCache()
+    public function removeQuoteFromCache()
     {
         $oCachObject = $this->_oDb->getDbCacheObject();
 		$oCachObject->delData($this->_oConfig->CNF['CACHEKEY']);
     }
 	
-	
 	private function getInternalData()
     {
 		return $this->_oDb->getData();
 	}
 	
-	private function getRssData($sRssUrl,$iRssMaxItems)
+	private function getRssData($sRssUrl, $iRssMaxItems)
     {
-		$aTmpRv=array();
+		$aTmpRv = array();
 		$oXmlParser = BxDolXmlParser::getInstance();
         $sXmlContent = bx_file_get_contents($sRssUrl);
-		$oTmp=$oXmlParser->getTags($sXmlContent, 'description');
-		if (is_array($oTmp)) {
-			$iC=0;
-			while (list( ,$oValue) = each($oTmp)) {
-				if ($iC==$iRssMaxItems) break;
-				if (isset($oValue['value']) && $oValue['level']==4 && trim(strip_tags($oValue['value'])) != "") {
-					array_push($aTmpRv,$oValue['value']);
+		$aTmp=$oXmlParser->getTags($sXmlContent, 'description');
+		if (is_array($aTmp)) {
+			$iC = 0;
+			while (list(, $aValue) = each($aTmp)) {
+				if ($iC == $iRssMaxItems) break;
+				if (isset($aValue['value']) && $aValue['level'] == 4 && trim(strip_tags($aValue['value'])) != "") {
+					array_push($aTmpRv, $aValue['value']);
 					$iC++;
 				}
 			}
 		}
+        
 		return $aTmpRv;
 	}
-	
-	public function serviceGetQuotesManage()
-    {
-		$this->_oTemplate->addJs('jquery.form.min.js');
-		$oGrid = BxDolGrid::getObjectInstance($this->_oConfig->CNF['OBJECT_GRID']);
-		if(!$oGrid)
-			return '';
-		return $oGrid->getCode();
-	
-    }
 }
 
 /** @} */

+ 0 - 8
modules/boonex/quoteofday/classes/BxQuoteofdayStudioPage.php

@@ -13,20 +13,12 @@ define('BX_DOL_STUDIO_MOD_TYPE_QUOTES', 'quotes');
 
 class BxQuoteOfDayStudioPage extends BxTemplStudioModule
 {
-	protected $_sModule;
-	protected $_oModule;
-
     function __construct($sModule = "", $sPage = "")
     {
-    	$this->_sModule = 'bx_quoteofday';
-    	$this->_oModule = BxDolModule::getInstance($this->_sModule);
-
         parent::__construct($sModule, $sPage);
-		
 		$oPermalink = BxDolPermalinks::getInstance();
       	$this->aMenuItems[] = array('name' =>BX_DOL_STUDIO_MOD_TYPE_QUOTES , 'icon' => 'bars', 'title' => '_bx_quoteofday_lmi_cpt_quotes', 'link' => BX_DOL_URL_ROOT . $oPermalink->permalink('page.php?i=quoteofday-manage'));
     }
-
 }
 
 /** @} */

+ 0 - 3
modules/boonex/quoteofday/install/config.php

@@ -72,9 +72,6 @@ $aConfig = array(
      * Dependencies Section
      */
     'dependencies' => array(),
-
-    
-
 );
 
 /** @} */

+ 8 - 8
modules/boonex/quoteofday/install/langs/en.xml

@@ -11,11 +11,11 @@
 	<string name="_bx_quoteofday_grid_column_title_adm_text"><![CDATA[Text]]></string>
 	<string name="_bx_quoteofday_grid_column_title_adm_added"><![CDATA[Added]]></string>
 	<string name="_bx_quoteofday_grid_action_title_adm_add"><![CDATA[Add new]]></string>
-  <string name="_bx_quoteofday_grid_action_title_adm_edit"><![CDATA[Edit]]></string>
-  <string name="_bx_quoteofday_grid_action_title_adm_delete"><![CDATA[Delete]]></string>
-  <string name="_bx_quoteofday_grid_action_title_adm_publish"><![CDATA[Mark as Today Quote]]></string>
-  <string name="_bx_quoteofday_grid_action_title_adm_publish_text"><![CDATA[Item set as Today Quote]]></string>
-  <string name="_bx_quoteofday_form_entry_input_do_submit"><![CDATA[Save]]></string>
+	<string name="_bx_quoteofday_grid_action_title_adm_edit"><![CDATA[Edit]]></string>
+	<string name="_bx_quoteofday_grid_action_title_adm_delete"><![CDATA[Delete]]></string>
+	<string name="_bx_quoteofday_grid_action_title_adm_publish"><![CDATA[Mark as Today Quote]]></string>
+	<string name="_bx_quoteofday_grid_action_title_adm_publish_text"><![CDATA[Item set as Today Quote]]></string>
+	<string name="_bx_quoteofday_form_entry_input_do_submit"><![CDATA[Save]]></string>
 	<string name="_bx_quoteofday_form_add_title"><![CDATA[Add new]]></string>
 	<string name="_bx_quoteofday_form_entry_input_text"><![CDATA[Text]]></string>
 	<string name="_bx_quoteofday_form_edit_title"><![CDATA[Edit]]></string>
@@ -26,7 +26,7 @@
 	<string name="_bx_quoteofday_acl_action_manage_entries"><![CDATA[use Quote of the Day management]]></string>
 	<string name="_bx_quoteofday_menu_item_title_system_admt_manage"><![CDATA[Quotes of the day - {addon} hidden]]></string>
 	<string name="_bx_quoteofday_form_entry_input_text_err"><![CDATA[Text field can't be empty]]></string>
-  <string name="_bx_quoteofday_selection_mode"><![CDATA[Quote of the Day selected by]]></string>
-  <string name="_bx_quoteofday_selection_mode_by_order"><![CDATA[By order]]></string>
-  <string name="_bx_quoteofday_selection_mode_by_random"><![CDATA[By random]]></string>
+	<string name="_bx_quoteofday_selection_mode"><![CDATA[Quote of the Day selected by]]></string>
+	<string name="_bx_quoteofday_selection_mode_by_order"><![CDATA[By order]]></string>
+	<string name="_bx_quoteofday_selection_mode_by_random"><![CDATA[By random]]></string>
 </resources>

+ 2 - 4
modules/boonex/quoteofday/install/sql/install.sql

@@ -6,11 +6,9 @@ CREATE TABLE `bx_quoteofday_internal` (
   `text` text NOT NULL,
   `added` int(11) DEFAULT NULL,
   `status` enum ('active', 'hidden') DEFAULT 'active',
-  `status_admin` enum ('active', 'hidden') DEFAULT 'active',
   PRIMARY KEY (`id`),
-  FULLTEXT INDEX ttext (`text`)
-)
-;
+  FULLTEXT INDEX `search_fields` (`text`)
+);
 
 -- FORMS
 INSERT INTO `sys_objects_form` (`object`, `module`, `title`, `action`, `form_attrs`, `submit_name`, `table`, `key`, `uri`, `uri_title`, `params`, `deletable`, `active`, `override_class_name`, `override_class_file`) VALUES(@sName, @sName, '_bx_quoteofday_form_entry', '', 'a:1:{s:7:"enctype";s:19:"multipart/form-data";}', 'do_submit', 'bx_quoteofday_internal', 'id', '', '', '', 0, 1, '', '');

+ 8 - 8
modules/boonex/quoteofday/request.php

@@ -1,13 +1,13 @@
 <?php defined('BX_DOL') or die('hack attempt');
 /**
- * Copyright (c) UNA, Inc - https://una.io
- * MIT License - https://opensource.org/licenses/MIT
- *
- * @defgroup    Quote of the Day
- * @ingroup     UnaModules
- *
- * @{
- */
+* Copyright (c) UNA, Inc - https://una.io
+* MIT License - https://opensource.org/licenses/MIT
+*
+* @defgroup    QuoteOfTheDay Quote of the Day
+* @ingroup     UnaModules
+*
+* @{
+*/
 
 require_once(BX_DIRECTORY_PATH_INC . "design.inc.php");
 

+ 31 - 0
modules/boonex/russian/data/langs/bx_quoteofday/ru.xml

@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources name="ru" flag="ru" title="Russian">
+  <string name="_bx_quoteofday"><![CDATA[Цитата дня]]></string>
+  <string name="_bx_quoteofday_option_rss_url"><![CDATA[Ссылка на внешний источник RSS]]></string>
+  <string name="_bx_quoteofday_lmi_cpt_quotes"><![CDATA[Список цитат]]></string>
+  <string name="_bx_quoteofday_source"><![CDATA[Источник]]></string>
+  <string name="_bx_quoteofday_rss_max_items"><![CDATA[Максимальное количество позиций, получаемых из RSS]]></string>
+  <string name="_bx_quoteofday_source_internal"><![CDATA[Список цитат]]></string>
+  <string name="_bx_quoteofday_source_rss"><![CDATA[Источник RSS]]></string>
+  <string name="_bx_quoteofday_grid_column_title_adm_active"><![CDATA[Активно]]></string>
+  <string name="_bx_quoteofday_grid_column_title_adm_text"><![CDATA[Текст]]></string>
+  <string name="_bx_quoteofday_grid_column_title_adm_added"><![CDATA[Добавлено]]></string>
+  <string name="_bx_quoteofday_grid_action_title_adm_add"><![CDATA[Добавить новую]]></string>
+  <string name="_bx_quoteofday_grid_action_title_adm_edit"><![CDATA[Редактировать]]></string>
+  <string name="_bx_quoteofday_grid_action_title_adm_delete"><![CDATA[Удалить]]></string>
+  <string name="_bx_quoteofday_grid_action_title_adm_publish"><![CDATA[Сделать Цитатой дня]]></string>
+  <string name="_bx_quoteofday_grid_action_title_adm_publish_text"><![CDATA[Цитата дня установлена]]></string>
+  <string name="_bx_quoteofday_form_entry_input_do_submit"><![CDATA[Сохранить]]></string>
+  <string name="_bx_quoteofday_form_add_title"><![CDATA[Добавить новую]]></string>
+  <string name="_bx_quoteofday_form_entry_input_text"><![CDATA[Текст]]></string>
+  <string name="_bx_quoteofday_form_edit_title"><![CDATA[Редактировать]]></string>
+  <string name="_bx_quoteofday_page_title_manage"><![CDATA[Управление Цитатами дня]]></string>
+  <string name="_bx_quoteofday_page_block_title_manage"><![CDATA[Управление Цитатами дня]]></string>
+  <string name="_bx_quoteofday_page_block_title"><![CDATA[Цитата дня]]></string>
+  <string name="_bx_quoteofday_form_entry_input_cancel"><![CDATA[Отмена]]></string>
+  <string name="_bx_quoteofday_menu_item_title_system_admt_manage"><![CDATA[Цитаты дня - {addon} скрыто]]></string>
+  <string name="_bx_quoteofday_form_entry_input_text_err"><![CDATA[Текстовое поле не может быть пустым]]></string>
+  <string name="_bx_quoteofday_selection_mode"><![CDATA[Выбирать цитату дня]]></string>
+  <string name="_bx_quoteofday_selection_mode_by_order"><![CDATA[По порядку]]></string>
+  <string name="_bx_quoteofday_selection_mode_by_random"><![CDATA[Случайно]]></string>
+</resources>