00001 <?php 00002 /** 00003 * Magento 00004 * 00005 * NOTICE OF LICENSE 00006 * 00007 * This source file is subject to the Open Software License (OSL 3.0) 00008 * that is bundled with this package in the file LICENSE.txt. 00009 * It is also available through the world-wide-web at this URL: 00010 * http://opensource.org/licenses/osl-3.0.php 00011 * If you did not receive a copy of the license and are unable to 00012 * obtain it through the world-wide-web, please send an email 00013 * to license@magentocommerce.com so we can send you a copy immediately. 00014 * 00015 * DISCLAIMER 00016 * 00017 * Do not edit or add to this file if you wish to upgrade Magento to newer 00018 * versions in the future. If you wish to customize Magento for your 00019 * needs please refer to http://www.magentocommerce.com for more information. 00020 * 00021 * @category Mage 00022 * @package Mage_Core 00023 * @copyright Copyright (c) 2008 Irubin Consulting Inc. DBA Varien (http://www.varien.com) 00024 * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) 00025 */ 00026 00027 /** 00028 * Translation resource model 00029 * 00030 * @category Mage 00031 * @package Mage_Core 00032 * @author Magento Core Team <core@magentocommerce.com> 00033 */ 00034 class Mage_Core_Model_Mysql4_Translate extends Mage_Core_Model_Mysql4_Abstract 00035 { 00036 protected function _construct() 00037 { 00038 $this->_init('core/translate', 'key_id'); 00039 } 00040 00041 public function getTranslationArray($storeId=null) 00042 { 00043 if(!Mage::isInstalled()) { 00044 return array(); 00045 } 00046 00047 if (is_null($storeId)) { 00048 $storeId = Mage::app()->getStore()->getId(); 00049 } 00050 00051 $read = $this->_getReadAdapter(); 00052 if (!$read) { 00053 return array(); 00054 } 00055 00056 // $select = $read->select() 00057 // ->from(array('main'=>$this->getMainTable()), array( 00058 // 'string', 00059 // new Zend_Db_Expr('IFNULL(store.translate, main.translate)') 00060 // )) 00061 // ->joinLeft(array('store'=>$this->getMainTable()), 00062 // $read->quoteInto('store.string=main.string AND store.store_id=?', $storeId), 00063 // 'string') 00064 // ->where('main.store_id=0'); 00065 // 00066 // $result = $read->fetchPairs($select); 00067 // 00068 $select = $read->select() 00069 ->from($this->getMainTable()) 00070 ->where('store_id in (?)', array(0, $storeId)) 00071 ->order('store_id'); 00072 00073 $result = array(); 00074 foreach ($read->fetchAll($select) as $row) { 00075 $result[$row['string']] = $row['translate']; 00076 } 00077 00078 return $result; 00079 } 00080 00081 public function getTranslationArrayByStrings(array $strings, $storeId=null) 00082 { 00083 if(!Mage::isInstalled()) { 00084 return array(); 00085 } 00086 00087 if (is_null($storeId)) { 00088 $storeId = Mage::app()->getStore()->getId(); 00089 } 00090 00091 $read = $this->_getReadAdapter(); 00092 if (!$read) { 00093 return array(); 00094 } 00095 00096 if (empty($strings)) { 00097 return array(); 00098 } 00099 00100 $select = $read->select() 00101 ->from($this->getMainTable()) 00102 ->where('string in (:tr_strings)') 00103 ->where('store_id = ?', $storeId); 00104 $result = array(); 00105 foreach ($read->fetchAll($select, array('tr_strings'=>$read->quote($strings))) as $row) { 00106 $result[$row['string']] = $row['translate']; 00107 } 00108 00109 return $result; 00110 } 00111 00112 public function getMainChecksum() 00113 { 00114 return parent::getChecksum($this->getMainTable()); 00115 } 00116 }