Overview

Packages

  • currencysymbol
  • MAbout
  • Mage
    • Admin
    • Adminhtml
    • AdminNotification
    • Api
    • Api2
    • Authorizenet
    • Backup
    • Bundle
    • Captcha
    • Catalog
    • CatalogIndex
    • CatalogInventory
    • CatalogRule
    • CatalogSearch
    • Centinel
    • Checkout
    • Cms
    • Compiler
    • Connect
    • Contacts
    • Core
    • Cron
    • CurrencySymbol
    • Customer
    • Dataflow
    • Directory
    • DirtectPost
    • Downloadable
    • Eav
    • GiftMessage
    • GoogleAnalytics
    • GoogleBase
    • GoogleCheckout
    • ImportExport
    • Index
    • Install
    • Log
    • Media
    • Newsletter
    • Oauth
    • Page
    • PageCache
    • Paygate
    • Payment
    • Paypal
    • PaypalUk
    • Persistent
    • Poll
    • ProductAlert
    • Rating
    • Reports
    • Review
    • Rss
    • Rule
    • Sales
    • SalesRule
    • Sedfriend
    • Sendfriend
    • Shipping
    • Sitemap
    • Tag
    • Tax
    • Usa
    • Weee
    • Widget
    • Wishlist
    • XmlConnect
  • None
  • Phoenix
    • Moneybookers
  • PHP
  • Zend
    • Date
    • Mime
    • XmlRpc

Classes

  • Mage_XmlConnect_Adminhtml_MobileController
  • Mage_XmlConnect_Block_Adminhtml_History
  • Mage_XmlConnect_Block_Adminhtml_History_Grid
  • Mage_XmlConnect_Block_Adminhtml_Mobile
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Edit
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Edit_Form
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Edit_Submission
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Edit_Tab_Cache
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Edit_Tab_Content
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Edit_Tab_Design
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Edit_Tab_Design_Accordion
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Edit_Tab_Design_Accordion_Images
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Edit_Tab_Design_Accordion_Tabs
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Edit_Tab_Design_Accordion_Themes
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Edit_Tab_Design_Preview
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Edit_Tab_Design_Themes
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Edit_Tab_Flurryanalytics
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Edit_Tab_General
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Edit_Tab_Notification
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Edit_Tab_Payment
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Edit_Tab_Settings
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Edit_Tab_Social
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Edit_Tab_Submission_History
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Edit_Tabs
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Form_Element_Addrow
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Form_Element_Color
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Form_Element_Country
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Form_Element_Datetime
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Form_Element_Font
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Form_Element_Image
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Form_Element_Page
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Form_Element_Tabs
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Form_Element_Theme
  • Mage_Xmlconnect_Block_Adminhtml_Mobile_Grid
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Grid_Renderer_Bool
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Grid_Renderer_Type
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Preview_Content
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Preview_Tabitems
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Submission
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Submission_Form
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Submission_Renderer_Country_Androidmarket
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Submission_Renderer_Country_Istore
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Submission_Tab_Container
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Submission_Tab_Container_Submission
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Submission_Tabs
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Widget_Form
  • Mage_XmlConnect_Block_Adminhtml_Queue
  • Mage_XmlConnect_Block_Adminhtml_Queue_Edit
  • Mage_XmlConnect_Block_Adminhtml_Queue_Edit_Form
  • Mage_XmlConnect_Block_Adminhtml_Queue_Grid
  • Mage_XmlConnect_Block_Adminhtml_Queue_Grid_Renderer_Action
  • Mage_XmlConnect_Block_Adminhtml_Queue_Grid_Renderer_Application
  • Mage_XmlConnect_Block_Adminhtml_Queue_Grid_Renderer_Id
  • Mage_XmlConnect_Block_Adminhtml_Queue_Grid_Renderer_Msgtitle
  • Mage_XmlConnect_Block_Adminhtml_Queue_Grid_Renderer_Pushtitle
  • Mage_XmlConnect_Block_Adminhtml_Queue_Grid_Renderer_Status
  • Mage_XmlConnect_Block_Adminhtml_Queue_Grid_Renderer_Template
  • Mage_XmlConnect_Block_Adminhtml_Template
  • Mage_XmlConnect_Block_Adminhtml_Template_Edit
  • Mage_XmlConnect_Block_Adminhtml_Template_Edit_Form
  • Mage_XmlConnect_Block_Adminhtml_Template_Grid
  • Mage_XmlConnect_Block_Adminhtml_Template_Grid_Renderer_Application
  • Mage_XmlConnect_Block_Adminhtml_Template_Grid_Renderer_Name
  • Mage_XmlConnect_Block_Adminhtml_Template_Preview
  • Mage_XmlConnect_Block_Adminhtml_Template_Preview_Form
  • Mage_XmlConnect_Block_Cart
  • Mage_XmlConnect_Block_Cart_Crosssell
  • Mage_XmlConnect_Block_Cart_Info
  • Mage_XmlConnect_Block_Cart_Item_Renderer
  • Mage_XmlConnect_Block_Cart_Item_Renderer_Configurable
  • Mage_XmlConnect_Block_Cart_Item_Renderer_Grouped
  • Mage_XmlConnect_Block_Cart_Paypal_Mecl_Details
  • Mage_XmlConnect_Block_Cart_Paypal_Mecl_Review
  • Mage_XmlConnect_Block_Cart_Paypal_Mecl_Shippingmethods
  • Mage_XmlConnect_Block_Cart_Paypal_Mep_Totals
  • Mage_XmlConnect_Block_Cart_Totals
  • Mage_XmlConnect_Block_Catalog
  • Mage_XmlConnect_Block_Catalog_Category
  • Mage_XmlConnect_Block_Catalog_Category_Info
  • Mage_XmlConnect_Block_Catalog_Filters
  • Mage_XmlConnect_Block_Catalog_Product
  • Mage_XmlConnect_Block_Catalog_Product_Attributes
  • Mage_XmlConnect_Block_Catalog_Product_Gallery
  • Mage_XmlConnect_Block_Catalog_Product_List
  • Mage_XmlConnect_Block_Catalog_Product_Options
  • Mage_XmlConnect_Block_Catalog_Product_Options_Bundle
  • Mage_XmlConnect_Block_Catalog_Product_Options_Configurable
  • Mage_XmlConnect_Block_Catalog_Product_Options_Giftcard
  • Mage_XmlConnect_Block_Catalog_Product_Options_Grouped
  • Mage_XmlConnect_Block_Catalog_Product_Options_Simple
  • Mage_XmlConnect_Block_Catalog_Product_Options_Virtual
  • Mage_XmlConnect_Block_Catalog_Product_Price
  • Mage_XmlConnect_Block_Catalog_Product_Price_Bundle
  • Mage_XmlConnect_Block_Catalog_Product_Price_Default
  • Mage_XmlConnect_Block_Catalog_Product_Price_Giftcard
  • Mage_XmlConnect_Block_Catalog_Product_Related
  • Mage_XmlConnect_Block_Catalog_Product_Review
  • Mage_XmlConnect_Block_Catalog_Product_Review_List
  • Mage_XmlConnect_Block_Catalog_Search
  • Mage_XmlConnect_Block_Catalog_Search_Suggest
  • Mage_XmlConnect_Block_Checkout_Address_Billing
  • Mage_XmlConnect_Block_Checkout_Address_Form
  • Mage_XmlConnect_Block_Checkout_Address_Shipping
  • Mage_XmlConnect_Block_Checkout_Agreements
  • Mage_XmlConnect_Block_Checkout_Order_Review
  • Mage_XmlConnect_Block_Checkout_Order_Review_Info
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Authorizenet
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Ccsave
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Checkmo
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Info_Authorizenet
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Info_Ccsave
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Info_Checkmo
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Info_Free
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Info_Paypal_Abstract
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Info_Paypal_Express
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Info_Paypal_Mecl
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Info_Pbridge_Authorizenet
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Info_Pbridge_Paypal_Direct
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Info_Pbridge_Paypaluk_Direct
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Info_Pbridge_Verisign
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Info_Purchaseorder
  • Mage_XmlConnect_Block_Checkout_Payment_Method_List
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Paypal_Direct
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Paypal_Payflow
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Pbridge_Abstract
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Pbridge_Authorizenet
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Pbridge_Paypal
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Pbridge_Paypaluk
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Pbridge_Verisign
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Purchaseorder
  • Mage_XmlConnect_Block_Checkout_Pbridge_Result
  • Mage_XmlConnect_Block_Checkout_Shipping_Method_Available
  • Mage_XmlConnect_Block_Cms_Page
  • Mage_XmlConnect_Block_Configuration
  • Mage_XmlConnect_Block_Customer_Address_Form
  • Mage_XmlConnect_Block_Customer_Address_List
  • Mage_XmlConnect_Block_Customer_Form
  • Mage_XmlConnect_Block_Customer_Form_Renderer_Boolean
  • Mage_XmlConnect_Block_Customer_Form_Renderer_Date
  • Mage_XmlConnect_Block_Customer_Form_Renderer_File
  • Mage_XmlConnect_Block_Customer_Form_Renderer_Image
  • Mage_XmlConnect_Block_Customer_Form_Renderer_Multiline
  • Mage_XmlConnect_Block_Customer_Form_Renderer_Multiselect
  • Mage_XmlConnect_Block_Customer_Form_Renderer_Select
  • Mage_XmlConnect_Block_Customer_Form_Renderer_Text
  • Mage_XmlConnect_Block_Customer_Form_Renderer_Textarea
  • Mage_XmlConnect_Block_Customer_GiftcardCheck
  • Mage_XmlConnect_Block_Customer_Order_Details
  • Mage_XmlConnect_Block_Customer_Order_Item_Renderer_Bundle
  • Mage_XmlConnect_Block_Customer_Order_Item_Renderer_Default
  • Mage_XmlConnect_Block_Customer_Order_Item_Renderer_Downloadable
  • Mage_XmlConnect_Block_Customer_Order_Item_Renderer_Giftcard
  • Mage_XmlConnect_Block_Customer_Order_Item_Renderer_Grouped
  • Mage_XmlConnect_Block_Customer_Order_Items
  • Mage_XmlConnect_Block_Customer_Order_List
  • Mage_XmlConnect_Block_Customer_Order_Totals
  • Mage_XmlConnect_Block_Customer_Order_Totals_Customerbalance
  • Mage_XmlConnect_Block_Customer_Order_Totals_Customerbalance_Refunded
  • Mage_XmlConnect_Block_Customer_Order_Totals_Giftcards
  • Mage_XmlConnect_Block_Customer_Order_Totals_Tax
  • Mage_XmlConnect_Block_Customer_Storecredit
  • Mage_XmlConnect_Block_Home
  • Mage_XmlConnect_Block_Review_Form
  • Mage_XmlConnect_Block_Wishlist
  • Mage_XmlConnect_CartController
  • Mage_XmlConnect_CatalogController
  • Mage_XmlConnect_CheckoutController
  • Mage_XmlConnect_CmsController
  • Mage_XmlConnect_ConfigurationController
  • Mage_XmlConnect_Controller_Action
  • Mage_XmlConnect_CustomerController
  • Mage_XmlConnect_Helper_Android
  • Mage_XmlConnect_Helper_Catalog_Category_Image
  • Mage_XmlConnect_Helper_Customer_Form_Renderer
  • Mage_XmlConnect_Helper_Customer_Order
  • Mage_XmlConnect_Helper_Data
  • Mage_XmlConnect_Helper_Image
  • Mage_XmlConnect_Helper_Ipad
  • Mage_XmlConnect_Helper_Iphone
  • Mage_XmlConnect_Helper_Theme
  • Mage_XmlConnect_IndexController
  • Mage_XmlConnect_Model_Adminhtml_System_Config_Backend_Baseurl
  • Mage_XmlConnect_Model_Adminhtml_System_Config_Backend_Currency_Default
  • Mage_XmlConnect_Model_Application
  • Mage_XmlConnect_Model_Catalog_Category_Image
  • Mage_XmlConnect_Model_ConfigData
  • Mage_XmlConnect_Model_History
  • Mage_XmlConnect_Model_Mysql4_Application
  • Mage_XmlConnect_Model_Mysql4_Application_Collection
  • Mage_XmlConnect_Model_Mysql4_Cms_Page_Collection
  • Mage_XmlConnect_Model_Mysql4_ConfigData
  • Mage_XmlConnect_Model_Mysql4_ConfigData_Collection
  • Mage_XmlConnect_Model_Mysql4_Filter_Collection
  • Mage_XmlConnect_Model_Mysql4_History
  • Mage_XmlConnect_Model_Mysql4_History_Collection
  • Mage_XmlConnect_Model_Mysql4_Queue
  • Mage_XmlConnect_Model_Mysql4_Queue_Collection
  • Mage_XmlConnect_Model_Mysql4_Setup
  • Mage_XmlConnect_Model_Mysql4_Template
  • Mage_XmlConnect_Model_Mysql4_Template_Collection
  • Mage_XmlConnect_Model_Observer
  • Mage_XmlConnect_Model_Payment_Method_Paypal_Config
  • Mage_XmlConnect_Model_Payment_Method_Paypal_Mecl
  • Mage_XmlConnect_Model_Payment_Method_Paypal_Mep
  • Mage_XmlConnect_Model_Paypal_Mecl_Checkout
  • Mage_XmlConnect_Model_Paypal_Mep_Checkout
  • Mage_XmlConnect_Model_Preview_Abstract
  • Mage_XmlConnect_Model_Preview_Android
  • Mage_XmlConnect_Model_Preview_Ipad
  • Mage_XmlConnect_Model_Preview_Iphone
  • Mage_XmlConnect_Model_Queue
  • Mage_XmlConnect_Model_Resource_Application
  • Mage_XmlConnect_Model_Resource_Application_Collection
  • Mage_XmlConnect_Model_Resource_Cms_Page_Collection
  • Mage_XmlConnect_Model_Resource_ConfigData
  • Mage_XmlConnect_Model_Resource_ConfigData_Collection
  • Mage_XmlConnect_Model_Resource_Filter_Collection
  • Mage_XmlConnect_Model_Resource_History
  • Mage_XmlConnect_Model_Resource_History_Collection
  • Mage_XmlConnect_Model_Resource_Queue
  • Mage_XmlConnect_Model_Resource_Queue_Collection
  • Mage_XmlConnect_Model_Resource_Setup
  • Mage_XmlConnect_Model_Resource_Template
  • Mage_XmlConnect_Model_Resource_Template_Collection
  • Mage_XmlConnect_Model_Simplexml_Element
  • Mage_XmlConnect_Model_Simplexml_Form
  • Mage_XmlConnect_Model_Simplexml_Form_Abstract
  • Mage_XmlConnect_Model_Simplexml_Form_Element_Abstract
  • Mage_XmlConnect_Model_Simplexml_Form_Element_Checkbox
  • Mage_XmlConnect_Model_Simplexml_Form_Element_Collection
  • Mage_XmlConnect_Model_Simplexml_Form_Element_CountryListSelect
  • Mage_XmlConnect_Model_Simplexml_Form_Element_Date
  • Mage_XmlConnect_Model_Simplexml_Form_Element_Email
  • Mage_XmlConnect_Model_Simplexml_Form_Element_Fieldset
  • Mage_XmlConnect_Model_Simplexml_Form_Element_File
  • Mage_XmlConnect_Model_Simplexml_Form_Element_Image
  • Mage_XmlConnect_Model_Simplexml_Form_Element_Multiline
  • Mage_XmlConnect_Model_Simplexml_Form_Element_Multiselect
  • Mage_XmlConnect_Model_Simplexml_Form_Element_Select
  • Mage_XmlConnect_Model_Simplexml_Form_Element_Text
  • Mage_XmlConnect_Model_Simplexml_Form_Element_Textarea
  • Mage_XmlConnect_Model_Simplexml_Form_Element_Validator
  • Mage_XmlConnect_Model_Simplexml_Form_Element_Validator_Abstract
  • Mage_XmlConnect_Model_Simplexml_Form_Element_Validator_Rule
  • Mage_XmlConnect_Model_Tabs
  • Mage_XmlConnect_Model_Template
  • Mage_XmlConnect_Model_Theme
  • Mage_XmlConnect_Paypal_MeclController
  • Mage_XmlConnect_Paypal_MepController
  • Mage_XmlConnect_PbridgeController
  • Mage_XmlConnect_ReviewController
  • Mage_XmlConnect_WishlistController

Interfaces

  • Mage_XmlConnect_Model_Simplexml_Form_Element_Renderer_Interface
  • Overview
  • Package
  • Class
  • Tree
  1: <?php
  2: /**
  3:  * Magento
  4:  *
  5:  * NOTICE OF LICENSE
  6:  *
  7:  * This source file is subject to the Open Software License (OSL 3.0)
  8:  * that is bundled with this package in the file LICENSE.txt.
  9:  * It is also available through the world-wide-web at this URL:
 10:  * http://opensource.org/licenses/osl-3.0.php
 11:  * If you did not receive a copy of the license and are unable to
 12:  * obtain it through the world-wide-web, please send an email
 13:  * to license@magentocommerce.com so we can send you a copy immediately.
 14:  *
 15:  * DISCLAIMER
 16:  *
 17:  * Do not edit or add to this file if you wish to upgrade Magento to newer
 18:  * versions in the future. If you wish to customize Magento for your
 19:  * needs please refer to http://www.magentocommerce.com for more information.
 20:  *
 21:  * @category    Mage
 22:  * @package     Mage_XmlConnect
 23:  * @copyright   Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
 24:  * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
 25:  */
 26: 
 27: /**
 28:  * Theme helper
 29:  *
 30:  * @category    Mage
 31:  * @package     Mage_XmlConnect
 32:  * @author      Magento Core Team <core@magentocommerce.com>
 33:  */
 34: class Mage_XmlConnect_Helper_Theme extends Mage_Adminhtml_Helper_Data
 35: {
 36:     /**
 37:      * Color Themes Cache
 38:      *
 39:      * @param array|null
 40:      */
 41:     protected $_themeArray = null;
 42: 
 43:     /**
 44:      * Return for Color Themes Fields array.
 45:      *
 46:      * @return array
 47:      */
 48:     public function getThemeAjaxParameters()
 49:     {
 50:         $themesArray = array (
 51:             'conf_native_navigationBar_tintColor'
 52:                 => 'conf[native][navigationBar][tintColor]',
 53:             'conf_native_body_primaryColor'
 54:                 => 'conf[native][body][primaryColor]',
 55:             'conf_native_body_secondaryColor'
 56:                 => 'conf[native][body][secondaryColor]',
 57:             'conf_native_categoryItem_backgroundColor'
 58:                 => 'conf[native][categoryItem][backgroundColor]',
 59:             'conf_native_categoryItem_tintColor'
 60:                 => 'conf[native][categoryItem][tintColor]',
 61: 
 62:             'conf_extra_fontColors_header'
 63:                 => 'conf[extra][fontColors][header]',
 64:             'conf_extra_fontColors_primary'
 65:                 => 'conf[extra][fontColors][primary]',
 66:             'conf_extra_fontColors_secondary'
 67:                 => 'conf[extra][fontColors][secondary]',
 68:             'conf_extra_fontColors_price'
 69:                 => 'conf[extra][fontColors][price]',
 70: 
 71:             'conf_native_body_backgroundColor'
 72:                 => 'conf[native][body][backgroundColor]',
 73:             'conf_native_body_scrollBackgroundColor'
 74:                 => 'conf[native][body][scrollBackgroundColor]',
 75:             'conf_native_itemActions_relatedProductBackgroundColor'
 76:                 => 'conf[native][itemActions][relatedProductBackgroundColor]'
 77:         );
 78:         return $themesArray;
 79:     }
 80: 
 81:     /**
 82:      * Returns JSON ready Themes array
 83:      *
 84:      * @param bool $flushCache load defaults
 85:      * @return array
 86:      */
 87:     public function getAllThemesArray($flushCache = false)
 88:     {
 89:         $result = array();
 90:         $themes = $this->getAllThemes($flushCache);
 91:         foreach ($themes as $theme) {
 92:             $result[$theme->getName()] = $theme->getFormData();
 93:         }
 94:         return $result;
 95:     }
 96: 
 97:     /**
 98:      * Get dropdown select image for theme
 99:      *
100:      * @param string $themeId
101:      * @return string Image url
102:      */
103:     public function getThemeImageUrl($themeId)
104:     {
105:         $themeImage = array_key_exists($themeId, $this->getDefaultThemes()) ? $themeId : 'user_custom';
106:         return Mage::helper('xmlconnect/image')->getSkinImagesUrl('swatch_' . $themeImage . '.gif');
107:     }
108: 
109:     /**
110:      * Get themes dropdown selector html
111:      *
112:      * @param string $themeId
113:      * @return string
114:      */
115:     public function getThemesSelector($themeId = '')
116:     {
117:         if (Mage::registry('current_app') !== null) {
118:             $themeId = Mage::registry('current_app')->getData('conf/extra/theme');
119:         }
120: 
121:         if (!$themeId) {
122:             $themeId = $this->getDefaultThemeName();
123:         }
124: 
125:         $currentTheme = $this->getThemeByName($themeId);
126:         if ($currentTheme === null) {
127:             $themeId = $this->getDefaultThemeName();
128:             $currentTheme = $this->getThemeByName($themeId);
129:         }
130: 
131:         if (!($currentTheme instanceof Mage_XmlConnect_Model_Theme)) {
132:             Mage::throwException(
133:                 Mage::helper('xmlconnect')->__('Can\'t load selected theme. Please check your media folder permissions.')
134:             );
135:         }
136: 
137:         $themeList = '';
138:         foreach ($this->getAllThemes(true) as $theme) {
139:             $themeList .= '<li id="' . $theme->getName() . '">';
140:             $themeList .= '<a rel="' . $theme->getName() . '" style="cursor:pointer;">' . $theme->getLabel();
141:             $themeList .= '<span>';
142:             $themeList .= '<img src="' . $this->getThemeImageUrl($theme->getName()) . '"/>';
143:             $themeList .= '</span></a></li>';
144:         }
145: 
146:         $themesDdl = <<<EOT
147:         <ul class="dropdown theme_selector" id="theme_selector_id">
148:             <li class="ddtitle theme_selector">
149:                 <a style="cursor:pointer;">{$currentTheme->getLabel()}
150:                     <span>
151:                         <img src="{$this->getThemeImageUrl($themeId)}"/>
152:                     </span>
153:                 </a>
154:             </li>
155:             <li style="display:none;" class="ddlist">
156:                 <ul>
157:                 {$themeList}
158:                 </ul>
159:             </li>
160:         </ul>
161: EOT;
162:         return $themesDdl;
163:     }
164: 
165:     /**
166:      * Reads directory media/xmlconnect/themes/*
167:      *
168:      * @param bool $flushCache Reads default color Themes
169:      * @return array contains Mage_XmlConnect_Model_Theme
170:      */
171:     public function getAllThemes($flushCache = false)
172:     {
173:         if (!$this->_themeArray || $flushCache) {
174:             $saveLibxmlErrors   = libxml_use_internal_errors(true);
175:             $this->_themeArray  = array();
176:             $themeDir = $this->getMediaThemePath();
177:             $ioFile = new Varien_Io_File();
178:             $ioFile->checkAndCreateFolder($themeDir);
179:             $ioFile->open(array('path' => $themeDir));
180:             try {
181:                 $fileList = $ioFile->ls(Varien_Io_File::GREP_FILES);
182:                 if (!count($fileList)) {
183:                     $this->resetTheme();
184:                     $this->getAllThemes(true);
185:                 }
186:                 foreach ($fileList as $file) {
187:                     $src = $themeDir . DS . $file['text'];
188:                     if (is_readable($src)) {
189:                         $theme = Mage::getModel('xmlconnect/theme', $src);
190:                         $this->_themeArray[$theme->getName()] = $theme;
191:                     }
192:                 }
193:                 asort($this->_themeArray);
194:                 libxml_use_internal_errors($saveLibxmlErrors);
195:             } catch (Exception $e) {
196:                 Mage::logException($e);
197:             }
198:         }
199:         return $this->_themeArray;
200:     }
201: 
202:     /**
203:      * Reads default theme directory
204:      *
205:      * @throws Mage_Core_Exception
206:      * @return array contains Mage_XmlConnect_Model_Theme
207:      */
208:     public function getDefaultThemes()
209:     {
210:         $saveLibxmlErrors   = libxml_use_internal_errors(true);
211:         $defaultThemeArray  = array();
212:         $themeDir = $this->_getDefaultThemePath();
213:         $ioFile = new Varien_Io_File();
214:         $ioFile->open(array('path' => $themeDir));
215:         try {
216:             $fileList = $ioFile->ls(Varien_Io_File::GREP_FILES);
217:             foreach ($fileList as $file) {
218:                 $src = $themeDir . DS . $file['text'];
219:                 if (is_readable($src)) {
220:                     $theme = Mage::getModel('xmlconnect/theme', $src);
221:                     $defaultThemeArray[$theme->getName()] = $theme;
222:                 }
223:             }
224:             libxml_use_internal_errors($saveLibxmlErrors);
225:         } catch (Exception $e) {
226:             Mage::logException($e);
227:         }
228:         if (!count($defaultThemeArray)) {
229:             Mage::throwException(Mage::helper('xmlconnect')->__('Can\'t load default themes.'));
230:         }
231:         return $defaultThemeArray;
232:     }
233: 
234:     /**
235:      * Create new custom theme
236:      *
237:      * @param  $themeName string
238:      * @param  $data array
239:      * @return Mage_XmlConnect_Model_Theme
240:      */
241:     public function createNewTheme($themeName, $data)
242:     {
243:         /** @var $defaultTheme Mage_XmlConnect_Model_Theme */
244:         $defaultTheme = $this->getThemeByName($this->getDefaultThemeName());
245:         return $defaultTheme->createNewTheme($themeName, $data);
246:     }
247: 
248:     /**
249:      * Get default theme path: /xmlconnect/etc/themes/*
250:      *
251:      * @return string
252:      */
253:     protected function _getDefaultThemePath()
254:     {
255:         return Mage::getModuleDir('etc', 'Mage_XmlConnect') . DS . 'themes';
256:     }
257: 
258:     /**
259:      * Get media theme path: media/xmlconnect/themes/*
260:      *
261:      * @return string
262:      */
263:     public function getMediaThemePath()
264:     {
265:         return Mage::getBaseDir('media') . DS . 'xmlconnect' . DS . 'themes';
266:     }
267: 
268:     /**
269:      * Reset themes color changes
270:      * Copy /xmlconnect/etc/themes/* to media/xmlconnect/themes/*
271:      *
272:      * @throws Mage_Core_Exception
273:      * @param null $theme
274:      * @return null
275:      */
276:     public function resetTheme($theme = null)
277:     {
278:         $themeDir = $this->getMediaThemePath();
279:         $defaultThemeDir = $this->_getDefaultThemePath();
280: 
281:         $ioFile = new Varien_Io_File();
282:         $ioFile->open(array('path' => $defaultThemeDir));
283:         $fileList = $ioFile->ls(Varien_Io_File::GREP_FILES);
284:         foreach ($fileList as $file) {
285:             $f = $file['text'];
286:             $src = $defaultThemeDir . DS . $f;
287:             $dst = $themeDir . DS .$f;
288: 
289:             if ($theme && ($theme . '.xml') != $f) {
290:                 continue;
291:             }
292: 
293:             if (!$ioFile->cp($src, $dst)) {
294:                 Mage::throwException(Mage::helper('xmlconnect')->__('Can\'t copy file "%s" to "%s".', $src, $dst));
295:             } else {
296:                 $ioFile->chmod($dst, 0755);
297:             }
298:         }
299:     }
300: 
301:     /**
302:      * Get theme object by name
303:      *
304:      * @param string $name
305:      * @return Mage_XmlConnect_Model_Theme|null
306:      */
307:     public function getThemeByName($name)
308:     {
309:         $themes = $this->getAllThemes();
310:         $theme = isset($themes[$name]) ? $themes[$name] : null;
311:         return $theme;
312:     }
313: 
314:     /**
315:      * Return predefined custom theme name
316:      *
317:      * @return string
318:      */
319:     public function getCustomThemeName()
320:     {
321:         return 'custom';
322:     }
323: 
324:     /**
325:      * Return predefined default theme name
326:      *
327:      * @return string
328:      */
329:     public function getDefaultThemeName()
330:     {
331:         return 'default';
332:     }
333: 
334:     /**
335:      * Get current theme name
336:      *
337:      * @return string
338:      */
339:     public function getThemeId()
340:     {
341:         $themeId = Mage::helper('xmlconnect')->getApplication()->getData('conf/extra/theme');
342: 
343:         if ($this->getThemeByName($themeId) === null) {
344:             $themeId = null;
345:         }
346: 
347:         if (empty($themeId)) {
348:             $themeId = $this->getDefaultThemeName();
349:         }
350:         return $themeId;
351:     }
352: 
353:     /**
354:      * Get theme label by theme name
355:      *
356:      * @param array $themes
357:      * @param bool $themeId
358:      * @return string
359:      */
360:     public function getThemeLabel(array $themes, $themeId = false)
361:     {
362:         $themeLabel = '';
363:         $themeId    = $themeId ? $themeId : $this->getThemeId();
364: 
365:         foreach ($themes as $theme) {
366:             if ($theme->getName() == $themeId) {
367:                 $themeLabel = $theme->getLabel();
368:                 break;
369:             }
370:         }
371:         return $themeLabel;
372:     }
373: 
374:     /**
375:      * Delete theme by id
376:      *
377:      * @param  $themeId
378:      * @return bool
379:      */
380:     public function deleteTheme($themeId)
381:     {
382:         $result = false;
383:         $ioFile = new Varien_Io_File();
384:         $ioFile->cd($this->getMediaThemePath());
385:         $themeFile = basename($themeId . '.xml');
386:         if ($ioFile->fileExists($themeFile)) {
387:             $result = $ioFile->rm($themeFile);
388:         }
389:         return $result;
390:     }
391: }
392: 
Magento 1.7.0.2 API documentation generated by ApiGen 2.8.0