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:  * XmlConnect default helper
 29:  *
 30:  * @category    Mage
 31:  * @package     Mage_XmlConnect
 32:  * @author      Magento Core Team <core@magentocommerce.com>
 33:  */
 34: class Mage_XmlConnect_Helper_Data extends Mage_Core_Helper_Abstract
 35: {
 36:     /**
 37:      * Push title length
 38:      */
 39:     const PUSH_TITLE_LENGTH = 140;
 40: 
 41:     /**
 42:      * Message title length
 43:      */
 44:     const MESSAGE_TITLE_LENGTH = 255;
 45: 
 46:     /**
 47:      * Curl default timeout
 48:      */
 49:     const CURLOPT_DEFAULT_TIMEOUT = 60;
 50: 
 51:     /**
 52:      * List of the keys for xml config that have to be excluded form application config
 53:      *
 54:      * @var array
 55:      */
 56:     protected $_excludedXmlConfigKeys = array('notifications/applicationMasterSecret');
 57: 
 58:     /**
 59:      * Application names array
 60:      *
 61:      * @var array
 62:      */
 63:     protected $_appNames = array();
 64: 
 65:     /**
 66:      * Template names array
 67:      *
 68:      * @var array
 69:      */
 70:     protected $_tplNames = array();
 71: 
 72:     /**
 73:      * XML path to nodes to be excluded
 74:      */
 75:     const XML_NODE_CONFIG_EXCLUDE_FROM_XML = 'xmlconnect/mobile_application/nodes_excluded_from_config_xml';
 76: 
 77:     /**
 78:      * Default device type
 79:      */
 80:     const DEVICE_TYPE_DEFAULT = 'unknown';
 81: 
 82:     /**
 83:      * iPhone device identifier
 84:      */
 85:     const DEVICE_TYPE_IPHONE = 'iphone';
 86: 
 87:     /**
 88:      * iPad device identifier
 89:      */
 90:     const DEVICE_TYPE_IPAD = 'ipad';
 91: 
 92:     /**
 93:      * Android device identifier
 94:      */
 95:     const DEVICE_TYPE_ANDROID = 'android';
 96: 
 97:     /**
 98:      * Social network Twitter id
 99:      */
100:     const SOCIAL_NETWORK_TWITTER = 'twitter';
101: 
102:     /**
103:      * Social network Facebook id
104:      */
105:     const SOCIAL_NETWORK_FACEBOOK = 'facebook';
106: 
107:     /**
108:      * Social network LinkedIn id
109:      */
110:     const SOCIAL_NETWORK_LINKEDIN = 'linkedin';
111: 
112:     /**
113:      * Get device preview model
114:      *
115:      * @throws Mage_Core_Exception
116:      * @return Mage_XmlConnect_Model_Preview_Abstract
117:      */
118:     public function getPreviewModel()
119:     {
120:         $deviceType = $this->getDeviceType();
121: 
122:         switch ($deviceType) {
123:             case self::DEVICE_TYPE_IPHONE:
124:             case self::DEVICE_TYPE_IPAD:
125:             case self::DEVICE_TYPE_ANDROID:
126:                 $previewModel = Mage::getSingleton('xmlconnect/preview_' . strtolower($deviceType));
127:                 break;
128:             default:
129:                 Mage::throwException(
130:                     Mage::helper('xmlconnect')->__('Device doesn\'t recognized: "%s". Unable to load preview model.', $deviceType)
131:                 );
132:                 break;
133:         }
134:         return $previewModel;
135:     }
136: 
137:     /**
138:      * Get device helper
139:      *
140:      * @throws Mage_Core_Exception
141:      * @param Mage_XmlConnect_Model_Application $application
142:      * @return Mage_Core_Helper_Abstract
143:      */
144:     public function getDeviceHelper($application = null)
145:     {
146:         $deviceType = $this->getDeviceType($application);
147: 
148:         switch ($deviceType) {
149:             case self::DEVICE_TYPE_IPHONE:
150:             case self::DEVICE_TYPE_IPAD:
151:             case self::DEVICE_TYPE_ANDROID:
152:                 $helper =  Mage::helper('xmlconnect/' . $deviceType);
153:                 break;
154:             default:
155:                 Mage::throwException(
156:                     Mage::helper('xmlconnect')->__('Device doesn\'t recognized: "%s". Unable to load a helper.', $deviceType)
157:                 );
158:                 break;
159:         }
160:         return $helper;
161:     }
162: 
163:     /**
164:      * Get device tipe from application
165:      *
166:      * @param Mage_XmlConnect_Model_Application $application
167:      * @return string
168:      */
169:     public function getDeviceType($application = null)
170:     {
171:         $deviceType = null;
172:         if (empty($application) && Mage::registry('current_app') !== null) {
173:             $deviceType = (string) $this->getApplication()->getType();
174:         } elseif ($application instanceof Mage_XmlConnect_Model_Application) {
175:             $deviceType = (string) $application->getType();
176:         }
177:         if (empty($deviceType)) {
178:             $deviceType = self::DEVICE_TYPE_DEFAULT;
179:         }
180:         return $deviceType;
181:     }
182: 
183:     /**
184:      * Getter for current loaded application model
185:      *
186:      * @throws Mage_Core_Exception
187:      * @return Mage_XmlConnect_Model_Application
188:      */
189:     public function getApplication()
190:     {
191:         $model = Mage::registry('current_app');
192:         if (!($model instanceof Mage_XmlConnect_Model_Application)) {
193:             Mage::throwException(Mage::helper('xmlconnect')->__('App model not loaded.'));
194:         }
195: 
196:         return $model;
197:     }
198: 
199:     /**
200:      * Create array with filter model and filter block by key
201:      *
202:      * Create array with:
203:      * - Mage_Catalog_Model_Layer_Filter_Abstract
204:      * - Mage_Catalog_Block_Layer_Filter_Abstract
205:      *
206:      * @param string $key
207:      * @return array
208:      */
209:     public function getFilterByKey($key)
210:     {
211:         switch ($key) {
212:             case 'price':
213:                 $filterModelName = 'catalog/layer_filter_price';
214:                 break;
215:             case 'decimal':
216:                 $filterModelName = 'catalog/layer_filter_decimal';
217:                 break;
218:             case 'category':
219:                 $filterModelName = 'catalog/layer_filter_category';
220:                 break;
221:             default:
222:                 $filterModelName = 'catalog/layer_filter_attribute';
223:                 break;
224:         }
225:         return array(Mage::getModel($filterModelName), $this->getLayout()->createBlock($filterModelName));
226:     }
227: 
228:     /**
229:      * Export $this->_getUrl() function to public
230:      *
231:      * @param string $route
232:      * @param array $params
233:      * @return array
234:      */
235:     public function getUrl($route, $params = array())
236:     {
237:         return $this->_getUrl($route, $params);
238:     }
239: 
240:     /**
241:      * Retrieve device specific country options array
242:      *
243:      * @throws Mage_Core_Exception
244:      * @param bool $isItunes deprecated after 1.6.0.0
245:      * @return array
246:      */
247:     public function getCountryOptionsArray($isItunes = false)
248:     {
249:         Varien_Profiler::start('TEST: ' . __METHOD__);
250:         $deviceType = $this->getDeviceType();
251:         switch ($deviceType) {
252:             case self::DEVICE_TYPE_IPHONE:
253:             case self::DEVICE_TYPE_IPAD:
254:                 $cacheKey = 'XMLCONNECT_COUNTRY_ITUNES_SELECT_STORE_' . Mage::app()->getStore()->getCode();
255:                 $deviceCountries = $this->getDeviceHelper()->getItunesCountriesArray();
256:                 break;
257:             case self::DEVICE_TYPE_ANDROID:
258:                 $cacheKey = 'XMLCONNECT_COUNTRY_ANDROID_SELECT_STORE_' . Mage::app()->getStore()->getCode();
259:                 $deviceCountries = $this->getDeviceHelper()->getAndroidMarketCountriesArray();
260:                 break;
261:             default:
262:                 Mage::throwException(
263:                     Mage::helper('xmlconnect')->__('Country options don\'t recognized for "%s".', $deviceType)
264:                 );
265:                 break;
266:         }
267: 
268:         if (Mage::app()->useCache('config') && $cache = Mage::app()->loadCache($cacheKey)) {
269:             $options = unserialize($cache);
270:         } else {
271:             if (isset($deviceCountries)) {
272:                 $options = Mage::getModel('directory/country')->getResourceCollection()
273:                     ->addFieldToFilter('country_id', array('in' => $deviceCountries))->loadByStore()
274:                     ->toOptionArray(false);
275:             }
276:             if (Mage::app()->useCache('config')) {
277:                 Mage::app()->saveCache(serialize($options), $cacheKey, array('config'));
278:             }
279:         }
280:         Varien_Profiler::stop('TEST: ' . __METHOD__);
281: 
282:         if (count($options)) {
283:             $options[] = array('value' => 'NEW_COUNTRIES', 'label' => 'New Territories As Added');
284:         }
285: 
286:         return $options;
287:     }
288: 
289:     /**
290:      * Get list of predefined and supported Devices
291:      *
292:      * @return array
293:      */
294:     static public function getSupportedDevices()
295:     {
296:         $devices = array (
297:             self::DEVICE_TYPE_IPAD      => Mage::helper('xmlconnect')->__('iPad'),
298:             self::DEVICE_TYPE_IPHONE    => Mage::helper('xmlconnect')->__('iPhone'),
299:             self::DEVICE_TYPE_ANDROID   => Mage::helper('xmlconnect')->__('Android')
300:         );
301: 
302:         return $devices;
303:     }
304: 
305:     /**
306:      * Get list of predefined and supported Devices
307:      *
308:      * @return array
309:      */
310:     public function getStatusOptions()
311:     {
312:         $options = array (
313:             Mage_XmlConnect_Model_Application::APP_STATUS_SUCCESS => Mage::helper('xmlconnect')->__('Submitted'),
314:             Mage_XmlConnect_Model_Application::APP_STATUS_INACTIVE => Mage::helper('xmlconnect')->__('Not Submitted'),
315:         );
316:         return $options;
317:     }
318: 
319:     /**
320:      * Retrieve supported device types as "html select options"
321:      *
322:      * @return array
323:      */
324:     public function getDeviceTypeOptions()
325:     {
326:         $devices = self::getSupportedDevices();
327:         $options = array();
328:         $options[] = array('value' => '', 'label' => Mage::helper('xmlconnect')->__('Please Select Device Type'));
329:         foreach ($devices as $type => $label) {
330:             $options[] = array('value' => $type, 'label' => $label);
331:         }
332:         return $options;
333:     }
334: 
335:     /**
336:      * Get default application tabs
337:      *
338:      * @return array
339:      */
340:     public function getDefaultApplicationDesignTabs()
341:     {
342:         return $this->getDeviceHelper()->getDefaultDesignTabs();
343:     }
344: 
345:     /**
346:      * Get default Cache Lifetime
347:      *
348:      * @return int
349:      */
350:     public function getDefaultCacheLifetime()
351:     {
352:         return (int)Mage::getStoreConfig(
353:             Mage_XmlConnect_Model_Application::XML_PATH_DEFAULT_CACHE_LIFETIME
354:         );
355:     }
356: 
357:     /**
358:      * Return array for tabs like label -> action array
359:      *
360:      * @return array
361:      */
362:     protected function _getTabLabelActionArray()
363:     {
364:         if (!isset($this->_tabLabelActionArray)) {
365:             $this->_tabLabelActionArray = array();
366:             foreach ($this->getDefaultApplicationDesignTabs() as $tab) {
367:                 $this->_tabLabelActionArray[$tab['action']] = $tab['label'];
368:             }
369:         }
370:         return $this->_tabLabelActionArray;
371:     }
372: 
373:     /**
374:      * Return Translated tab label for given $action
375:      *
376:      * @param string $action
377:      * @return string|bool
378:      */
379:     public function getTabLabel($action)
380:     {
381:         $action = (string) $action;
382:         $tabs = $this->_getTabLabelActionArray();
383:         return (isset($tabs[$action])) ? $tabs[$action] : false;
384:     }
385: 
386:     /**
387:      * Merges $changes array to $target array recursive, overwriting existing key, and adding new one
388:      *
389:      * @param mixed $target
390:      * @param mixed $changes
391:      * @return array
392:      */
393:     static public function arrayMergeRecursive($target, $changes)
394:     {
395:         if (!is_array($target)) {
396:             $target = empty($target) ? array() : array($target);
397:         }
398:         if (!is_array($changes)) {
399:             $changes = array($changes);
400:         }
401:         foreach ($changes as $key => $value) {
402:             if (!array_key_exists($key, $target) and !is_numeric($key)) {
403:                 $target[$key] = $changes[$key];
404:                 continue;
405:             }
406:             if (is_array($value) or is_array($target[$key])) {
407:                 $target[$key] = self::arrayMergeRecursive($target[$key], $changes[$key]);
408:             } else if (is_numeric($key)) {
409:                 if (!in_array($value, $target)) {
410:                     $target[] = $value;
411:                 }
412:             } else {
413:                 $target[$key] = $value;
414:             }
415:         }
416: 
417:         return $target;
418:     }
419: 
420:     /**
421:      * Wrap $body with HTML4 headers
422:      *
423:      * @param string $body
424:      * @return string
425:      */
426:     public function htmlize($body)
427:     {
428:         $w3cUrl = 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd';
429:         return <<<EOT
430: &lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot; &quot;$w3cUrl&quot;&gt;
431: &lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot; xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;
432: &lt;head&gt;
433: &lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;style.css&quot; media=&quot;screen&quot;/&gt;
434: &lt;/head&gt;
435: &lt;body&gt;$body&lt;/body&gt;&lt;/html&gt;
436: EOT;
437:     }
438: 
439:     /**
440:      * Return select options for xml from array
441:      *
442:      * @param array $dataArray source array
443:      * @param string $selected selected item
444:      * @return string
445:      */
446:     public function getArrayAsXmlItemValues($dataArray, $selected)
447:     {
448:         $items = array();
449:         foreach ($dataArray as $k => $v) {
450:             if (!$k) {
451:                 continue;
452:             }
453:             $items[] = '
454:             <item' . ($k == $selected ? ' selected="1"' : '') . '>
455:                 <label>' . $v . '</label>
456:                 <value>' . ($k ? $k : '') . '</value>
457:             </item>';
458:         }
459:         $result = implode(PHP_EOL, $items);
460:         return $result;
461:     }
462: 
463:     /**
464:      * Return Solo Xml optional fieldset
465:      *
466:      * @param string $ssCcMonths
467:      * @param string $ssCcYears
468:      * @return string
469:      */
470:     public function getSoloXml($ssCcMonths, $ssCcYears)
471:     {
472:         $validatorMessage = $this->__('Please enter issue number or start date for switch/solo card type.');
473:         // issue number ==== validate-cc-ukss cvv
474:         $solo = <<<EOT
475: <fieldset_optional>
476:     <depend_on name="payment[cc_type]">
477:         <show_value>
478:             <item>SS</item>
479:             <item>SM</item>
480:             <item>SO</item>
481:         </show_value>
482:     </depend_on>
483: 
484:     <field name="payment[cc_ss_issue]" type="text" label="{$this->__('Issue Number')}">
485:         <validators>
486:             <validator relation="payment[cc_type]" type="credit_card_ukss" message="{$validatorMessage}"/>
487:         </validators>
488:     </field>;
489:     <field name="payment[cc_ss_start_month]" type="select" label="{$this->__('Start Date - Month')}">
490:         <values>
491:             $ssCcMonths
492:         </values>
493:     </field>
494:     <field name="payment[cc_ss_start_year]" type="select" label="{$this->__('Start Date - Year')}">
495:         <values>
496:             $ssCcYears
497:         </values>
498:     </field>
499: </fieldset_optional>
500: EOT;
501:         return $solo;
502:     }
503: 
504:     /**
505:      * Format price for correct view inside xml strings
506:      *
507:      * @param float $price
508:      * @return string
509:      */
510:     public function formatPriceForXml($price)
511:     {
512:         return sprintf('%01.2F', $price);
513:     }
514: 
515:     /**
516:      * Get list of predefined and supported message types
517:      *
518:      * @return array
519:      */
520:     static public function getSupportedMessageTypes()
521:     {
522:         $messages = array (
523:             Mage_XmlConnect_Model_Queue::MESSAGE_TYPE_PUSH      => Mage::helper('xmlconnect')->__('Push message'),
524:             Mage_XmlConnect_Model_Queue::MESSAGE_TYPE_AIRMAIL   => Mage::helper('xmlconnect')->__('AirMail message'),
525:         );
526: 
527:         return $messages;
528:     }
529: 
530:     /**
531:      * Retrieve supported message types as "html select options"
532:      *
533:      * @return array
534:      */
535:     public function getMessageTypeOptions()
536:     {
537:         $options = array();
538:         $messages = self::getSupportedMessageTypes();
539:         foreach ($messages as $type => $label) {
540:             $options[] = array('value' => $type, 'label' => $label);
541:         }
542:         return $options;
543:     }
544: 
545:     /**
546:      * Get push title length
547:      *
548:      * @return int
549:      */
550:     public function getPushTitleLength()
551:     {
552:         return self::PUSH_TITLE_LENGTH;
553:     }
554: 
555:     /**
556:      * Get message title length
557:      *
558:      * @return int
559:      */
560:     public function getMessageTitleLength()
561:     {
562:         return self::MESSAGE_TITLE_LENGTH;
563:     }
564: 
565:     /**
566:      * Retrieve applications as "html select options"
567:      *
568:      * @return array
569:      */
570:     public function getApplicationOptions()
571:     {
572:         $options = array();
573:         /** @var $app Mage_XmlConnect_Model_Application */
574:         foreach (Mage::getModel('xmlconnect/application')->getCollection() as $app) {
575:             $options[] = array('value' => $app->getId(), 'label' => $app->getName());
576:         }
577:         if (count($options) > 1) {
578:             array_unshift($options, array(
579:                 'value' => '', 'label' => Mage::helper('xmlconnect')->__('Please Select Application')
580:             ));
581:         }
582:         return $options;
583:     }
584: 
585:     /**
586:      * Get applications array like `code` as `name`
587:      *
588:      * @static array $apps
589:      * @return array
590:      */
591:     public function getApplications()
592:     {
593:         static $apps = array();
594: 
595:         if (empty($apps)) {
596:             foreach (Mage::getModel('xmlconnect/application')->getCollection() as $app) {
597:                 $apps[$app->getCode()] = $app->getName();
598:             }
599:         }
600:         return $apps;
601:     }
602: 
603:     /**
604:      * Check if creating AirMail template for the application is allowed
605:      *
606:      * @param Mage_XmlConnect_Model_Application $application
607:      * @deprecated after 1.6.0.0
608:      * @return boolean
609:      */
610:     public static function isTemplateAllowedForApplication($application = null)
611:     {
612:         return true;
613:     }
614: 
615:     /**
616:      * Send broadcast message
617:      *
618:      * @throws Mage_Core_Exception
619:      * @param Mage_XmlConnect_Model_Queue $queue
620:      */
621:     public function sendBroadcastMessage(Mage_XmlConnect_Model_Queue $queue)
622:     {
623:         if ($queue->getStatus() != Mage_XmlConnect_Model_Queue::STATUS_IN_QUEUE) {
624:             return;
625:         }
626: 
627:         try {
628:             $applicationId = Mage::getModel('xmlconnect/template')->load($queue->getTemplateId())->getApplicationId();
629:             /** @var $app Mage_XmlConnect_Model_Application */
630:             $app = Mage::getModel('xmlconnect/application')->load($applicationId);
631: 
632:             if (!$app->getId()) {
633:                 Mage::throwException(
634:                     Mage::helper('xmlconnect')->__('Can\'t load application with id "%s"', $applicationId)
635:                 );
636:             }
637: 
638:             if (!$app->isNotificationsActive()) {
639:                 $queue->setStatus(Mage_XmlConnect_Model_Queue::STATUS_CANCELED);
640:                 return;
641:             }
642: 
643:             $sendType = $queue->getData('type');
644:             switch ($sendType) {
645:                 case Mage_XmlConnect_Model_Queue::MESSAGE_TYPE_AIRMAIL:
646:                     $configPath = 'xmlconnect/' . Mage_XmlConnect_Model_Queue::MESSAGE_TYPE_AIRMAIL . '/broadcast_url';
647:                     $params = $queue->getAirmailBroadcastParams();
648:                     break;
649: 
650:                 case Mage_XmlConnect_Model_Queue::MESSAGE_TYPE_PUSH:
651:                 default:
652:                     $configPath = 'xmlconnect/' . Mage_XmlConnect_Model_Queue::MESSAGE_TYPE_PUSH . '/broadcast_url';
653:                     $params = $queue->getPushBroadcastParams();
654:                     break;
655:             }
656: 
657:             $curl = new Varien_Http_Adapter_Curl();
658:             $curl->setConfig($this->_getCurlConfig($app->getUserpwd()));
659: 
660:             $urbanUrl = Mage::getStoreConfig($configPath);
661:             $curl->write(
662:                 Zend_Http_Client::POST, $urbanUrl, HTTP_REQUEST_HTTP_VER_1_1, $this->getHttpHeaders(), $params
663:             );
664: 
665:             if ($curl->read() && $curl->getInfo(CURLINFO_HTTP_CODE) == 200) {
666:                 $queue->setStatus(Mage_XmlConnect_Model_Queue::STATUS_COMPLETED);
667:             }
668:             $curl->close();
669: 
670:             $queue->setIsSent(true);
671:             $queue->save();
672:             return;
673:         } catch (Exception $e) {
674:             Mage::logException($e);
675:             throw $e;
676:         }
677:     }
678: 
679:     /**
680:      * Get headers for broadcast message
681:      *
682:      * @return array
683:      */
684:     public function getHttpHeaders()
685:     {
686:         return array('Content-Type: application/json');
687:     }
688: 
689:     /**
690:      * Get urban airship curl request configuration
691:      *
692:      * @param string $userPwd
693:      * @param int $timeout
694:      * @return array
695:      */
696:     protected function _getCurlConfig($userPwd, $timeout = self::CURLOPT_DEFAULT_TIMEOUT)
697:     {
698:         return array ('timeout' => $timeout, 'userpwd' => $userPwd);
699:     }
700: 
701:     /**
702:      * Remove from array the unnecessary parameters by given keys
703:      *
704:      * @param array $data Source array
705:      * @param array $excludedKeys Keys to be excluded from array. Keys must be in xPath notation
706:      * @return array
707:      */
708:     public function excludeXmlConfigKeys($data, $excludedKeys = array())
709:     {
710:         $excludedKeys = $this->getExcludedXmlConfigKeys();
711:         if (!empty($excludedKeys)) {
712:             foreach ($excludedKeys as $keyToExclude) {
713:                 if (strpos($keyToExclude, '/')) {
714:                     $keys = array();
715:                     foreach (explode('/', $keyToExclude) as $key) {
716:                         $key = trim($key);
717:                         if (!empty($key)) {
718:                             $keys[] = $key;
719:                         }
720:                     }
721:                     if (!empty($keys)) {
722:                         $keys = '$data["' . implode('"]["', $keys) . '"]';
723:                         eval('if (isset(' . $keys . ')) unset(' . $keys . ');');
724:                     }
725:                 } elseif (!empty($keyToExclude) && isset($data[$keyToExclude])) {
726:                     unset($data[$keyToExclude]);
727:                 }
728:             }
729:         }
730:         return $data;
731:     }
732: 
733:     /**
734:      * Get excluded keys as array
735:      *
736:      * @return array
737:      */
738:     public function getExcludedXmlConfigKeys()
739:     {
740:         $toExclude = Mage::getStoreConfig(self::XML_NODE_CONFIG_EXCLUDE_FROM_XML);
741:         $nodes = array();
742:         foreach ($toExclude as $value) {
743:             $nodes[] = trim($value, '/');
744:         }
745: 
746:         return $nodes;
747:     }
748: 
749:     /**
750:      * Returns Application name by it's code
751:      * @param string $appCode
752:      * @return string
753:      */
754:     public function getApplicationName($appCode = null)
755:     {
756:         if (empty($appCode)) {
757:             return '';
758:         }
759:         if (!isset($this->_appNames[$appCode])) {
760:             $app = Mage::getModel('xmlconnect/application')->loadByCode($appCode);
761:             if ($app->getId()) {
762:                 $this->_appNames[$appCode] = $app->getName();
763:             } else {
764:                 return '';
765:             }
766:         }
767:         return $this->_appNames[$appCode];
768:     }
769: 
770:     /**
771:      * Returns Application name by it's code
772:      * @param string $templateId
773:      * @return string
774:      */
775:     public function getTemplateName($templateId = null)
776:     {
777:         if (empty($templateId)) {
778:             return '';
779:         }
780:         if (!isset($this->_tplNames[$templateId])) {
781:             $template = Mage::getModel('xmlconnect/template')->load($templateId);
782:             if ($template->getId()) {
783:                 $this->_tplNames[$templateId] = $template->getName();
784:             } else {
785:                 return '';
786:             }
787:         }
788:         return $this->_tplNames[$templateId];
789:     }
790: 
791:     /**
792:      * Set value into multidimensional array 'conf/native/navigationBar/icon'
793:      *
794:      * @param array &$target pointer to target array
795:      * @param string $fieldPath 'conf/native/navigationBar/icon'
796:      * @param mixed $fieldValue 'Some Value' || 12345 || array(1=>3, 'aa'=>43)
797:      * @param string $delimiter path delimiter
798:      * @return null
799:      */
800:     public function _injectFieldToArray(&$target, $fieldPath, $fieldValue, $delimiter = '/')
801:     {
802:         $nameParts = explode($delimiter, $fieldPath);
803:         foreach ($nameParts as $next) {
804:             if (!isset($target[$next])) {
805:                 $target[$next] = array();
806:             }
807:             $target =& $target[$next];
808:         }
809:         $target = $fieldValue;
810:         return null;
811:     }
812: 
813:     /**
814:      * Convert Url link to file path for images
815:      *
816:      * @param string $icon
817:      * @return string
818:      */
819:     public function urlToPath($icon)
820:     {
821:         $baseUrl = Mage::getBaseUrl('media');
822:         $path = str_replace($baseUrl, '', $icon);
823:         $filePath = Mage::getBaseDir('media') . DS . str_replace('/', DS, $path);
824:         return $filePath;
825: 
826:     }
827: 
828:     /**
829:      * Validate config body field is not empty
830:      *
831:      * @param string $field
832:      * @param array $native
833:      * @return bool
834:      */
835:     public function validateConfFieldNotEmpty($field, $native)
836:     {
837:         if (($native === false) || (!isset($native['body']) || !is_array($native['body'])
838:             || !isset($native['body'][$field]) || !Zend_Validate::is($native['body'][$field], 'NotEmpty'))
839:         ) {
840:             return false;
841:         }
842:         return true;
843:     }
844: 
845:     /**
846:      * Check the notifications are allowed for current type of application
847:      *
848:      * @param Mage_XmlConnect_Model_Application $application
849:      * @return bool
850:      */
851:     public function isNotificationsAllowed($application = null)
852:     {
853:         return $this->getDeviceHelper($application)->isNotificationsAllowed();
854:     }
855: 
856:     /**
857:      * Get front url for action
858:      *
859:      * @param string $action
860:      * @param array $params
861:      * @return string url
862:      */
863:     public function getActionUrl($action, $params = array())
864:     {
865:         $defaultParams = array(
866:             '_store' => $this->getApplication()->getStoreId(),
867:             '_nosid' => true,
868:             '_secure' => $this->getApplication()->getUseSecureURLInFrontend()
869:         );
870:         $params = array_merge($defaultParams, $params);
871:         return Mage::getUrl($action, $params);
872:     }
873: 
874:     /**
875:      * Remove trilling line breaks
876:      *
877:      * @param string $string
878:      * @return string
879:      */
880:     public function trimLineBreaks($string)
881:     {
882:         return preg_replace(array('@\r@', '@\n+@'), array('', PHP_EOL), $string);
883:     }
884: }
885: 
Magento 1.7.0.2 API documentation generated by ApiGen 2.8.0