public function getHtml()
 {
     $htmlId = $this->_getHtmlId() . microtime(true);
     $format = $this->getLocale()->getDateStrFormat(Mage_Core_Model_Locale::FORMAT_TYPE_SHORT);
     $html = '<div class="range"><div class="range-line date">
         <span class="label">' . AO::helper('adminhtml')->__('From') . ':</span>
         <input type="text" name="' . $this->_getHtmlName() . '[from]" id="' . $htmlId . '_from" value="' . $this->getEscapedValue('from') . '" class="input-text no-changes"/>
         <img src="' . Mage_Core_Model_Design_Package::getDesign()->getSkinUrl('images/grid-cal.gif') . '" alt="" class="v-middle" id="' . $htmlId . '_from_trig" title="' . $this->htmlEscape(AO::helper('adminhtml')->__('Date selector')) . '"/>
         </div>';
     $html .= '<div class="range-line date">
         <span class="label">' . AO::helper('adminhtml')->__('To') . ' :</span>
         <input type="text" name="' . $this->_getHtmlName() . '[to]" id="' . $htmlId . '_to" value="' . $this->getEscapedValue('to') . '" class="input-text no-changes"/>
         <img src="' . Mage_Core_Model_Design_Package::getDesign()->getSkinUrl('images/grid-cal.gif') . '" alt="" class="v-middle" id="' . $htmlId . '_to_trig" title="' . $this->htmlEscape(AO::helper('adminhtml')->__('Date selector')) . '"/>
         </div></div>';
     $html .= '<input type="hidden" name="' . $this->_getHtmlName() . '[locale]" value="' . $this->getLocale()->getLocaleCode() . '"/>';
     $html .= '<script type="text/javascript">
         Calendar.setup({
             inputField : "' . $htmlId . '_from",
             ifFormat : "' . $format . '",
             button : "' . $htmlId . '_from_trig",
             align : "Bl",
             singleClick : true
         });
         Calendar.setup({
             inputField : "' . $htmlId . '_to",
             ifFormat : "' . $format . '",
             button : "' . $htmlId . '_to_trig",
             align : "Bl",
             singleClick : true
         });
     </script>';
     return $html;
 }
 /**
  * JS Calendar html
  *
  * @return string Formatted Html
  */
 public function getCalendarDateHtml()
 {
     // $require = $this->getOption()->getIsRequire() ? ' required-entry' : '';
     $require = '';
     $calendar = $this->getLayout()->createBlock('core/html_date')->setId('options_' . $this->getOption()->getId() . '_date')->setName('options[' . $this->getOption()->getId() . '][date]')->setClass('product-custom-option datetime-picker input-text' . $require)->setImage(Mage_Core_Model_Design_Package::getDesign()->getSkinUrl('images/grid-cal.gif'))->setExtraParams('onchange="opConfig.reloadPrice()"')->setFormat(AO::app()->getLocale()->getDateStrFormat(Mage_Core_Model_Locale::FORMAT_TYPE_SHORT));
     return $calendar->getHtml();
 }
Exemplo n.º 3
0
 protected function _construct()
 {
     parent::_construct();
     Mage_Core_Model_Design_Package::getDesign()->setArea('install')->setPackageName('default')->setTheme('default');
     $this->getLayout()->setArea('install');
     $this->setFlag('', self::FLAG_NO_CHECK_INSTALLATION, true);
 }
 protected function _beforeSave()
 {
     $value = $this->getValue();
     if (empty($value)) {
         throw new Exception('package name is empty.');
     }
     if (!Mage_Core_Model_Design_Package::getDesign()->designPackageExists($value)) {
         throw new Exception('package with this name does not exist and cannot be set.');
     }
 }
Exemplo n.º 5
0
 public function getInclude($template, array $variables)
 {
     $filename = Mage_Core_Model_Design_Package::getDesign()->getTemplateFilename($template);
     if (!$filename) {
         return '';
     }
     extract($variables);
     ob_start();
     include $filename;
     return ob_get_clean();
 }
Exemplo n.º 6
0
 public function translateAction()
 {
     if ($translate = $this->getRequest()->getPost('translate')) {
         try {
             if ($area = $this->getRequest()->getPost('area')) {
                 Mage_Core_Model_Design_Package::getDesign()->setArea($area);
             }
             AO::getModel('core/translate_inline')->processAjaxPost($translate);
             echo "{success:true}";
         } catch (Exception $e) {
             echo "{error:true,message:'" . $e->getMessage() . "'}";
         }
     }
     exit;
 }
Exemplo n.º 7
0
 public function getAllOptions($withEmpty = true)
 {
     if (is_null($this->_options)) {
         $design = Mage_Core_Model_Design_Package::getDesign()->getThemeList();
         $options = array();
         foreach ($design as $package => $themes) {
             $packageOption = array('label' => $package);
             $themeOptions = array();
             foreach ($themes as $theme) {
                 $themeOptions[] = array('label' => $theme, 'value' => $package . '/' . $theme);
             }
             $packageOption['value'] = $themeOptions;
             $options[] = $packageOption;
         }
         $this->_options = $options;
     }
     $options = $this->_options;
     if ($withEmpty) {
         array_unshift($options, array('value' => '', 'label' => AO::helper('core')->__('-- Please Select --')));
     }
     return $options;
 }
Exemplo n.º 8
0
 /**
  * Retrieve small image url
  *
  * @return unknown
  */
 public function getSmallImageUrl($product)
 {
     $url = false;
     if (!$product->getSmallImage()) {
         $url = Mage_Core_Model_Design_Package::getDesign()->getSkinUrl('images/no_image.jpg');
     } elseif ($attribute = $product->getResource()->getAttribute('small_image')) {
         $url = $attribute->getFrontend()->getUrl($product);
     }
     return $url;
 }
Exemplo n.º 9
0
 public function setTheme($theme)
 {
     $arr = explode('/', $theme);
     if (isset($arr[1])) {
         Mage_Core_Model_Design_Package::getDesign()->setPackageName($arr[0])->setTheme($arr[1]);
     } else {
         Mage_Core_Model_Design_Package::getDesign()->setTheme($theme);
     }
     return $this;
 }
Exemplo n.º 10
0
 public function getRemoveLinkHtml()
 {
     $src = Mage_Core_Model_Design_Package::getDesign()->getSkinUrl('images/rule_component_remove.gif');
     $html = ' <span class="rule-param"><a href="javascript:void(0)" class="rule-param-remove" title="' . AO::helper('rule')->__('Remove') . '"><img src="' . $src . '"  alt="" class="v-middle" /></a></span>';
     return $html;
 }
Exemplo n.º 11
0
 /**
  * Loading current theme translation
  *
  * @return Mage_Core_Model_Translate
  */
 protected function _loadThemeTranslation($forceReload = false)
 {
     $d = Mage_Core_Model_Design_Package::getDesign();
     $file = $d->getLocaleFileName('translate.csv');
     $this->_addData($this->_getFileData($file), false, $forceReload);
     return $this;
 }
Exemplo n.º 12
0
 /**
  * Retrieve skin JS file url
  *
  * @param   string $file
  * @return  string
  */
 public function getJsSkinUrl($file)
 {
     return Mage_Core_Model_Design_Package::getDesign()->getSkinUrl($file, array());
 }
Exemplo n.º 13
0
 /**
  * Render block
  *
  * @return string
  */
 public function renderView()
 {
     if (VPROF) {
         Varien_Profiler::start(__METHOD__);
     }
     $this->setScriptPath(AO::getBaseDir('design'));
     $params = array('_relative' => true);
     if ($area = $this->getArea()) {
         $params['_area'] = $area;
     }
     $templateName = Mage_Core_Model_Design_Package::getDesign()->getTemplateFilename($this->getTemplate(), $params);
     $templateName = scrunchName($templateName, 5);
     //var_dump($templateName);
     //var_dump(get_class($this));
     $html = $this->fetchView($templateName);
     if (VPROF) {
         Varien_Profiler::stop(__METHOD__);
     }
     return $html;
 }
Exemplo n.º 14
0
 protected function _initDesign()
 {
     $designPackage = Mage_Core_Model_Design_Package::getDesign();
     if ($designPackage->getArea() != self::AREA_FRONTEND) {
         return;
     }
     $currentStore = AO::app()->getStore()->getStoreId();
     $designChange = AO::getSingleton('core/design')->loadChange($currentStore);
     if ($designChange->getData()) {
         $designPackage->setPackageName($designChange->getPackage())->setTheme($designChange->getTheme());
     }
 }
    protected function _toHtml()
    {
        $profile = $this->getProfile();
        echo '<html><head>';
        echo '<script type="text/javascript">var FORM_KEY = "' . AO::getSingleton('core/session')->getFormKey() . '";</script>';
        $headBlock = $this->getLayout()->createBlock('page/html_head');
        $headBlock->addJs('prototype/prototype.js');
        $headBlock->addJs('mage/adminhtml/loader.js');
        echo $headBlock->getCssJsHtml();
        echo '<style type="text/css">
    ul { list-style-type:none; padding:0; margin:0; }
    li { margin-left:0; border:1px solid #ccc; margin:2px; padding:2px 2px 2px 2px; font:normal 12px sans-serif; }
    img { margin-right:5px; }
    </style>
    <title>' . ($profile->getId() ? $this->htmlEscape($profile->getName()) : $this->__('No profile')) . '</title>
</head><body>';
        echo '<ul>';
        echo '<li>';
        if ($profile->getId()) {
            echo '<img src="' . Mage_Core_Model_Design_Package::getDesign()->getSkinUrl('images/note_msg_icon.gif') . '" class="v-middle" style="margin-right:5px"/>';
            echo $this->__("Starting profile execution, please wait...");
            echo '</li>';
            echo '<li style="background-color:#FFD;">';
            echo '<img src="' . Mage_Core_Model_Design_Package::getDesign()->getSkinUrl('images/fam_bullet_error.gif') . '" class="v-middle" style="margin-right:5px"/>';
            echo $this->__("Warning: Please don't close window during importing/exporting data");
        } else {
            echo '<img src="' . Mage_Core_Model_Design_Package::getDesign()->getSkinUrl('images/error_msg_icon.gif') . '" class="v-middle" style="margin-right:5px"/>';
            echo $this->__("No profile loaded...");
        }
        echo '</li>';
        echo '</ul>';
        if ($profile->getId()) {
            echo '<ul id="profileRows">';
            ob_implicit_flush();
            $profile->run();
            foreach ($profile->getExceptions() as $e) {
                switch ($e->getLevel()) {
                    case Varien_Convert_Exception::FATAL:
                        $img = 'error_msg_icon.gif';
                        $liStyle = 'background-color:#FBB; ';
                        break;
                    case Varien_Convert_Exception::ERROR:
                        $img = 'error_msg_icon.gif';
                        $liStyle = 'background-color:#FDD; ';
                        break;
                    case Varien_Convert_Exception::WARNING:
                        $img = 'fam_bullet_error.gif';
                        $liStyle = 'background-color:#FFD; ';
                        break;
                    case Varien_Convert_Exception::NOTICE:
                        $img = 'fam_bullet_success.gif';
                        $liStyle = 'background-color:#DDF; ';
                        break;
                }
                echo '<li style="' . $liStyle . '">';
                echo '<img src="' . Mage_Core_Model_Design_Package::getDesign()->getSkinUrl('images/' . $img) . '" class="v-middle"/>';
                echo $e->getMessage();
                if ($e->getPosition()) {
                    echo " <small>(" . $e->getPosition() . ")</small>";
                }
                echo "</li>";
            }
            echo '<li id="liFinished" style="display:none;">';
            echo '<img src="' . Mage_Core_Model_Design_Package::getDesign()->getSkinUrl('images/note_msg_icon.gif') . '" class="v-middle" style="margin-right:5px"/>';
            echo $this->__("Finished profile execution.");
            echo '</li>';
            echo "</ul>";
            $showFinished = true;
            $batchModel = AO::getSingleton('dataflow/batch');
            /* @var $batchModel Mage_Dataflow_Model_Batch */
            if ($batchModel->getId()) {
                if ($batchModel->getAdapter()) {
                    $numberOfRecords = $profile->getData('gui_data/import/number_of_records');
                    $numberOfRecords = $numberOfRecords ? $numberOfRecords : 1;
                    $showFinished = false;
                    $batchImportModel = $batchModel->getBatchImportModel();
                    $importIds = $batchImportModel->getIdCollection();
                    $countItems = count($importIds);
                    $batchConfig = array('styles' => array('error' => array('icon' => Mage_Core_Model_Design_Package::getDesign()->getSkinUrl('images/error_msg_icon.gif'), 'bg' => '#FDD'), 'message' => array('icon' => Mage_Core_Model_Design_Package::getDesign()->getSkinUrl('images/fam_bullet_success.gif'), 'bg' => '#DDF'), 'loader' => Mage_Core_Model_Design_Package::getDesign()->getSkinUrl('images/ajax-loader.gif')), 'template' => '<li style="#{style}" id="#{id}">' . '<img id="#{id}_img" src="#{image}" class="v-middle" style="margin-right:5px"/>' . '<span id="#{id}_status" class="text">#{text}</span>' . '</li>', 'text' => $this->__('Processed <strong>%s%% %s/%d</strong> records', '#{percent}', '#{updated}', $countItems), 'successText' => $this->__('Imported <strong>%s</strong> records', '#{updated}'));
                    echo '
<script type="text/javascript">
var countOfStartedProfiles = 0;
var countOfUpdated = 0;
var countOfError = 0;
var importData = [];
var totalRecords = ' . $countItems . ';
var config= ' . Zend_Json::encode($batchConfig) . ';
</script>
<script type="text/javascript">
function addImportData(data) {
    importData.push(data);
}

function execImportData() {
    if (importData.length == 0) {
        $("updatedRows_img").src = config.styles.message.icon;
        $("updatedRows").style.backgroundColor = config.styles.message.bg;
        Element.insert($("liFinished"), {before: config.tpl.evaluate({
            style: "background-color:"+config.styles.message.bg,
            image: config.styles.message.icon,
            text: config.tplSccTxt.evaluate({updated:(countOfUpdated-countOfError)}),
            id: "updatedFinish"
        })});
        new Ajax.Request("' . $this->getUrl('*/*/batchFinish', array('id' => $batchModel->getId())) . '", {
            method: "post",
            parameters: {form_key: FORM_KEY},
            onComplete: function(transport) {
                if (transport.responseText.isJSON()) {
                    var response = transport.responseText.evalJSON();
                    if (response.error) {
                        Element.insert($("liFinished"), {before: config.tpl.evaluate({
                            style: "background-color:"+config.styles.error.bg,
                            image: config.styles.error.icon,
                            text: response.error.escapeHTML(),
                            id: "error-finish"
                        })});
                    }
                }

                $(\'liFinished\').show();
            }
        });
    } else {
        sendImportData(importData.shift());
    }
}

function sendImportData(data) {
    if (!config.tpl) {
        config.tpl = new Template(config.template);
        config.tplTxt = new Template(config.text);
        config.tplSccTxt = new Template(config.successText);
    }
    if (!$("updatedRows")) {
        Element.insert($("liFinished"), {before: config.tpl.evaluate({
            style: "background-color: #FFD;",
            image: config.styles.loader,
            text: config.tplTxt.evaluate({updated:countOfUpdated, percent:getPercent()}),
            id: "updatedRows"
        })});
    }
    countOfStartedProfiles++;
    if (!data.form_key) {
        data.form_key = FORM_KEY;
    }

    new Ajax.Request("' . $this->getUrl('*/*/batchRun') . '", {
      method: "post",
      parameters: data,
      onSuccess: function(transport) {
        countOfStartedProfiles --;
        countOfUpdated += data["rows[]"].length;
        if (transport.responseText.isJSON()) {
            addProfileRow(transport.responseText.evalJSON());
        } else {
            Element.insert($("updatedRows"), {before: config.tpl.evaluate({
                style: "background-color:"+config.styles.error.bg,
                image: config.styles.error.icon,
                text: transport.responseText.escapeHTML(),
                id: "error-" + countOfStartedProfiles
            })});
            countOfError += data["rows[]"].length;
        }
        execImportData();
      }
    });
}

function getPercent() {
    return Math.ceil((countOfUpdated/totalRecords)*1000)/10;
}

function addProfileRow(data) {
    if (data.errors.length > 0) {
        for (var i=0, length=data.errors.length; i<length; i++) {
            Element.insert($("updatedRows"), {before: config.tpl.evaluate({
                style: "background-color:"+config.styles.error.bg,
                image: config.styles.error.icon,
                text: data.errors[i],
                id: "id-" + (countOfUpdated + i + 1)
            })});
            countOfError ++;
        }
    }
    $("updatedRows_status").update(config.tplTxt.evaluate({updated:countOfUpdated, percent:getPercent()}));
}
</script>
';
                    $jsonIds = array_chunk($importIds, $numberOfRecords);
                    foreach ($jsonIds as $part => $ids) {
                        $data = array('batch_id' => $batchModel->getId(), 'rows[]' => $ids);
                        echo '<script type="text/javascript">addImportData(' . Zend_Json::encode($data) . ')</script>';
                    }
                    echo '<script type="text/javascript">execImportData()</script>';
                    //print $this->getUrl('*/*/batchFinish', array('id' => $batchModel->getId()));
                } else {
                    $batchModel->delete();
                }
            }
            if ($showFinished) {
                echo "<script type=\"text/javascript\">\$('liFinished').show();</script>";
            }
        }
        /*
        echo '<li>';
        echo '<img src="'.Mage_Core_Model_Design_Package::getDesign()->getSkinUrl('images/note_msg_icon.gif').'" class="v-middle" style="margin-right:5px"/>';
        echo $this->__("Finished profile execution.");
        echo '</li>';
        echo "</ul>";
        */
        echo '</body></html>';
        exit;
    }
Exemplo n.º 16
0
 public function storeDirective($construction)
 {
     $params = $this->_getIncludeParameters($construction[2]);
     if (!isset($params['_query'])) {
         $params['_query'] = array();
     }
     foreach ($params as $k => $v) {
         if (strpos($k, '_query_') === 0) {
             $params['_query'][substr($k, 7)] = $v;
             unset($params[$k]);
         }
     }
     $params['_absolute'] = $this->_useAbsoluteLinks;
     if (isset($params['direct_url'])) {
         $path = '';
         $params['_direct'] = $params['direct_url'];
         unset($params['direct_url']);
     } else {
         $path = $params['url'];
         unset($params['url']);
     }
     if (!self::$_urlInstance) {
         self::$_urlInstance = AO::getModel('core/url')->setStore(AO::app()->getStore(Mage_Core_Model_Design_Package::getDesign()->getStore()->getId()));
     }
     $_urlInstanceOldStore = null;
     if (!empty($path) && !AO::getStoreConfigFlag(Mage_Core_Model_Store::XML_PATH_STORE_IN_URL) && !AO::app()->isSingleStoreMode()) {
         $params['_query']['___store'] = AO::app()->getStore(Mage_Core_Model_Design_Package::getDesign()->getStore())->getCode();
     } elseif (!empty($path) && AO::getStoreConfigFlag(Mage_Core_Model_Store::XML_PATH_STORE_IN_URL) && !AO::app()->isSingleStoreMode()) {
         $_urlInstanceOldStore = self::$_urlInstance->getStore();
         self::$_urlInstance->setStore(AO::app()->getStore(Mage_Core_Model_Design_Package::getDesign()->getStore())->getCode());
     }
     $url = self::$_urlInstance->getUrl($path, $params);
     if (null == !$_urlInstanceOldStore) {
         self::$_urlInstance->setStore($_urlInstanceOldStore);
     }
     return $url;
 }
Exemplo n.º 17
0
 public function addActionLayoutHandles()
 {
     $update = $this->getLayout()->getUpdate();
     // load store handle
     $update->addHandle('STORE_' . AO::app()->getStore()->getCode());
     // load theme handle
     $package = Mage_Core_Model_Design_Package::getDesign();
     //$package = AO::getSingleton('core/design_package');
     $update->addHandle('THEME_' . $package->getArea() . '_' . $package->getPackageName() . '_' . $package->getTheme('layout'));
     // load action handle
     $update->addHandle(strtolower($this->getFullActionName()));
     return $this;
 }
Exemplo n.º 18
0
 public function customerSaveBeforeObserver($observer)
 {
     $customer = $observer->getEvent()->getCustomer();
     $isAdmin = Mage_Core_Model_Design_Package::getDesign()->getArea() === 'adminhtml';
     $email = $customer->getEmail();
     $host = AO::app()->getStore()->getConfig(Mage_Customer_Model_Customer::XML_PATH_DEFAULT_EMAIL_DOMAIN);
     $fakeEmail = $customer->getIncrementId() . '@' . $host;
     if ($email && $email != $fakeEmail && $customer->dataHasChangedFor('email') && (!$isAdmin || $isAdmin && $this->getConfigData('email_verification', 'check_admin'))) {
         $this->emailVerify($email);
     }
 }
Exemplo n.º 19
0
 function printError($error, $line = null)
 {
     if ($error == null) {
         return false;
     }
     $img = 'error_msg_icon.gif';
     $liStyle = 'background-color:#FDD; ';
     echo '<li style="' . $liStyle . '">';
     echo '<img src="' . Mage_Core_Model_Design_Package::getDesign()->getSkinUrl('images/' . $img) . '" class="v-middle"/>';
     echo $error;
     if ($line) {
         echo '<small>, Line: <b>' . $line . '</b></small>';
     }
     echo "</li>";
 }
Exemplo n.º 20
0
 /**
  * Send customer email
  *
  * @return bool
  */
 public function send()
 {
     if (is_null($this->_website) || is_null($this->_customer)) {
         return false;
     }
     if ($this->_type == 'price' && count($this->_priceProducts) == 0 || $this->_type == 'stock' && count($this->_stockProducts) == 0) {
         return false;
     }
     if (!$this->_website->getDefaultGroup() || !$this->_website->getDefaultGroup()->getDefaultStore()) {
         return false;
     }
     $storeId = $this->_website->getDefaultGroup()->getDefaultStore()->getId();
     $storeCode = $this->_website->getDefaultGroup()->getDefaultStore()->getCode();
     if ($this->_type == 'price' && !AO::getStoreConfig(self::XML_PATH_EMAIL_PRICE_TEMPLATE, $storeId)) {
         return false;
     } elseif ($this->_type == 'stock' && !AO::getStoreConfig(self::XML_PATH_EMAIL_STOCK_TEMPLATE, $storeId)) {
         return false;
     }
     Mage_Core_Model_Design_Package::getDesign()->setStore($storeId);
     Mage_Core_Model_Design_Package::getDesign()->setArea('frontend');
     $translate = AO::getSingleton('core/translate');
     /* @var $translate Mage_Core_Model_Translate */
     $translate->setTranslateInline(false);
     if ($this->_type == 'price') {
         $this->_getPriceBlock()->setStoreCode($storeCode);
         foreach ($this->_priceProducts as $product) {
             $product->setCustomerGroupId($this->_customer->getGroupId());
             $this->_getPriceBlock()->addProduct($product);
         }
         $block = $this->_getPriceBlock()->toHtml();
         $templateId = AO::getStoreConfig(self::XML_PATH_EMAIL_PRICE_TEMPLATE, $storeId);
     } elseif ($this->_type == 'stock') {
         $this->_getStockBlock()->setStoreCode($storeCode);
         foreach ($this->_stockProducts as $product) {
             $product->setCustomerGroupId($this->_customer->getGroupId());
             $this->_getStockBlock()->addProduct($product);
         }
         $block = $this->_getStockBlock()->toHtml();
         $templateId = AO::getStoreConfig(self::XML_PATH_EMAIL_STOCK_TEMPLATE, $storeId);
     } else {
         return false;
     }
     AO::getModel('core/email_template')->setDesignConfig(array('area' => 'frontend', 'store' => $storeId))->sendTransactional($templateId, AO::getStoreConfig(self::XML_PATH_EMAIL_IDENTITY, $storeId), $this->_customer->getEmail(), $this->_customer->getName(), array('customerName' => $this->_customer->getName(), 'alertGrid' => $block));
     $translate->setTranslateInline(true);
     return true;
 }
Exemplo n.º 21
0
 /**
  * Revert design settings to previous
  *
  * @return Mage_Core_Model_Email_Template
  */
 protected function _cancelDesignConfig()
 {
     if ($this->getDesignConfig()) {
         if ($this->getDesignConfig()->getOldArea()) {
             Mage_Core_Model_Design_Package::getDesign()->setArea($this->getDesignConfig()->getOldArea());
         }
         if ($this->getDesignConfig()->getOldStore()) {
             Mage_Core_Model_Design_Package::getDesign()->setStore($this->getDesignConfig()->getOldStore());
             Mage_Core_Model_Design_Package::getDesign()->setTheme('');
             Mage_Core_Model_Design_Package::getDesign()->setPackageName('');
         }
     }
     AO::app()->getLocale()->revert();
     return $this;
 }
Exemplo n.º 22
0
    protected function _insertInlineScriptsHtml()
    {
        if ($this->_isScriptInserted || stripos($this->_content, '</body>') === false) {
            return;
        }
        $baseJsUrl = AO::getBaseUrl('js');
        $ajaxUrl = AO::getUrl('core/ajax/translate', array('_secure' => AO::app()->getStore()->isCurrentlySecure()));
        $trigImg = $this->design->getSkinUrl('images/fam_book_open.png');
        ob_start();
        ?>
<!-- script type="text/javascript" src="<?php 
        echo $baseJsUrl;
        ?>
prototype/effects.js"></script -->
<script type="text/javascript" src="<?php 
        echo $baseJsUrl;
        ?>
prototype/window.js"></script>
<link rel="stylesheet" type="text/css" href="<?php 
        echo $baseJsUrl;
        ?>
prototype/windows/themes/default.css"/>
<link rel="stylesheet" type="text/css" href="<?php 
        echo $baseJsUrl;
        ?>
prototype/windows/themes/magento.css"/>

<script type="text/javascript" src="<?php 
        echo $baseJsUrl;
        ?>
mage/translate_inline.js"></script>
<link rel="stylesheet" type="text/css" href="<?php 
        echo $baseJsUrl;
        ?>
mage/translate_inline.css"/>

<div id="translate-inline-trig"><img src="<?php 
        echo $trigImg;
        ?>
" alt="[TR]"/></div>
<script type="text/javascript">
    new TranslateInline('translate-inline-trig', '<?php 
        echo $ajaxUrl;
        ?>
', '<?php 
        echo Mage_Core_Model_Design_Package::getDesign()->getArea();
        ?>
');
</script>
<?php 
        $html = ob_get_clean();
        $this->_content = str_ireplace('</body>', $html . '</body>', $this->_content);
        $this->_isScriptInserted = true;
    }
Exemplo n.º 23
0
 /**
  * @return Mage_Catalog_Model_Product_Image
  */
 public function setWatermark($file, $position = null, $size = null, $width = null, $heigth = null)
 {
     $filename = false;
     if (!$file) {
         return $this;
     }
     $baseDir = AO::getSingleton('catalog/product_media_config')->getBaseMediaPath();
     if (file_exists($baseDir . '/watermark/stores/' . AO::app()->getStore()->getId() . $file)) {
         $filename = $baseDir . '/watermark/stores/' . AO::app()->getStore()->getId() . $file;
     } elseif (file_exists($baseDir . '/watermark/websites/' . AO::app()->getWebsite()->getId() . $file)) {
         $filename = $baseDir . '/watermark/websites/' . AO::app()->getWebsite()->getId() . $file;
     } elseif (file_exists($baseDir . '/watermark/default/' . $file)) {
         $filename = $baseDir . '/watermark/default/' . $file;
     } elseif (file_exists($baseDir . '/watermark/' . $file)) {
         $filename = $baseDir . '/watermark/' . $file;
     } else {
         $baseDir = Mage_Core_Model_Design_Package::getDesign()->getSkinBaseDir();
         if (file_exists($baseDir . $file)) {
             $filename = $baseDir . $file;
         }
     }
     if ($filename) {
         $this->getImageProcessor()->setWatermarkPosition($position ? $position : $this->getWatermarkPosition())->setWatermarkWidth($width ? $width : $this->getWatermarkWidth())->setWatermarkHeigth($heigth ? $heigth : $this->getWatermarkHeigth())->watermark($filename);
     }
     return $this;
 }
Exemplo n.º 24
0
 /**
  * Retrieve value element
  *
  * @return Varien_Data_Form_Element_Abstract
  */
 public function getValueElement()
 {
     $element = parent::getValueElement();
     if (is_object($this->getAttributeObject())) {
         switch ($this->getAttributeObject()->getFrontendInput()) {
             case 'date':
                 $element->setImage(Mage_Core_Model_Design_Package::getDesign()->getSkinUrl('images/grid-cal.gif'));
                 break;
         }
     }
     return $element;
 }
Exemplo n.º 25
0
 /**
  * Sending email with invoice update information
  *
  * @return Mage_Sales_Model_Order_Invoice
  */
 public function sendUpdateEmail($notifyCustomer = true, $comment = '')
 {
     if (!AO::helper('sales')->canSendCreditmemoCommentEmail($this->getOrder()->getStore()->getId())) {
         return $this;
     }
     $currentDesign = Mage_Core_Model_Design_Package::getDesign()->setAllGetOld(array('package' => AO::getStoreConfig('design/package/name', $this->getStoreId())));
     $translate = AO::getSingleton('core/translate');
     /* @var $translate Mage_Core_Model_Translate */
     $translate->setTranslateInline(false);
     $order = $this->getOrder();
     $copyTo = $this->_getEmails(self::XML_PATH_UPDATE_EMAIL_COPY_TO);
     $copyMethod = AO::getStoreConfig(self::XML_PATH_UPDATE_EMAIL_COPY_METHOD, $this->getStoreId());
     if (!$notifyCustomer && !$copyTo) {
         return $this;
     }
     $mailTemplate = AO::getModel('core/email_template');
     if ($order->getCustomerIsGuest()) {
         $template = AO::getStoreConfig(self::XML_PATH_UPDATE_EMAIL_GUEST_TEMPLATE, $order->getStoreId());
         $customerName = $order->getBillingAddress()->getName();
     } else {
         $template = AO::getStoreConfig(self::XML_PATH_UPDATE_EMAIL_TEMPLATE, $order->getStoreId());
         $customerName = $order->getCustomerName();
     }
     if ($notifyCustomer) {
         $sendTo[] = array('name' => $customerName, 'email' => $order->getCustomerEmail());
         if ($copyTo && $copyMethod == 'bcc') {
             foreach ($copyTo as $email) {
                 $mailTemplate->addBcc($email);
             }
         }
     }
     if ($copyTo && ($copyMethod == 'copy' || !$notifyCustomer)) {
         foreach ($copyTo as $email) {
             $sendTo[] = array('name' => null, 'email' => $email);
         }
     }
     foreach ($sendTo as $recipient) {
         $mailTemplate->setDesignConfig(array('area' => 'frontend', 'store' => $order->getStoreId()))->sendTransactional($template, AO::getStoreConfig(self::XML_PATH_UPDATE_EMAIL_IDENTITY, $order->getStoreId()), $recipient['email'], $recipient['name'], array('order' => $order, 'billing' => $order->getBillingAddress(), 'creditmemo' => $this, 'comment' => $comment));
     }
     $translate->setTranslateInline(true);
     Mage_Core_Model_Design_Package::getDesign()->setAllGetOld($currentDesign);
     return $this;
 }
Exemplo n.º 26
0
 /**
  * Controller predispatch method
  *
  * @return Mage_Adminhtml_Controller_Action
  */
 public function preDispatch()
 {
     Mage_Core_Model_Design_Package::getDesign()->setArea('adminhtml')->setPackageName((string) AO::getConfig()->getNode('stores/admin/design/package/name'))->setTheme((string) AO::getConfig()->getNode('stores/admin/design/theme/default'));
     $this->getLayout()->setArea('adminhtml');
     AO::dispatchEvent('adminhtml_controller_action_predispatch_start', array());
     parent::preDispatch();
     $_isValidFormKey = true;
     $_isValidSecretKey = true;
     $_keyErrorMsg = '';
     if (AO::getSingleton('admin/session')->isLoggedIn()) {
         if ($this->getRequest()->isPost()) {
             $_isValidFormKey = $this->_validateFormKey();
             $_keyErrorMsg = 'Invalid Form Key';
         } elseif (AO::getSingleton('adminhtml/url')->useSecretKey()) {
             $_isValidSecretKey = $this->_validateSecretKey();
             $_keyErrorMsg = 'Invalid Secret Key';
         }
     }
     if (!$_isValidFormKey || !$_isValidSecretKey) {
         $this->setFlag('', self::FLAG_NO_DISPATCH, true);
         $this->setFlag('', self::FLAG_NO_POST_DISPATCH, true);
         if ($this->getRequest()->getQuery('isAjax', false) || $this->getRequest()->getQuery('ajax', false)) {
             $this->getResponse()->setBody(Zend_Json::encode(array('error' => true, 'error_msg' => AO::helper('adminhtml')->__($_keyErrorMsg))));
         } else {
             $this->_redirect('*/index/index');
         }
         return $this;
     }
     if ($this->getRequest()->isDispatched() && $this->getRequest()->getActionName() !== 'denied' && !$this->_isAllowed()) {
         $this->_forward('denied');
         $this->setFlag('', self::FLAG_NO_DISPATCH, true);
         return $this;
     }
     if (!$this->getFlag('', self::FLAG_IS_URLS_CHECKED) && !$this->getRequest()->getParam('forwarded') && !$this->_getSession()->getIsUrlNotice(true) && !AO::getConfig()->getNode('global/can_use_base_url')) {
         $this->_checkUrlSettings();
         $this->setFlag('', self::FLAG_IS_URLS_CHECKED, true);
     }
     if (is_null(AO::getSingleton('adminhtml/session')->getLocale())) {
         AO::getSingleton('adminhtml/session')->setLocale(AO::app()->getLocale()->getLocaleCode());
     }
     return $this;
 }
Exemplo n.º 27
0
 public function __toString()
 {
     try {
         if ($this->getImageFile()) {
             $this->_getModel()->setBaseFile($this->getImageFile());
         } else {
             $this->_getModel()->setBaseFile($this->getProduct()->getData($this->_getModel()->getDestinationSubdir()));
         }
         if ($this->_getModel()->isCached()) {
             return $this->_getModel()->getUrl();
         } else {
             if ($this->_scheduleRotate) {
                 $this->_getModel()->rotate($this->getAngle());
             }
             if ($this->_scheduleResize) {
                 $this->_getModel()->resize();
             }
             if ($this->_scheduleWatermark) {
                 $this->_getModel()->setWatermarkPosition($this->getWatermarkPosition())->setWatermarkSize($this->parseSize($this->getWatermarkSize()))->setWatermark($this->getWatermark(), $this->getWatermarkPosition());
             } else {
                 if ($watermark = AO::getStoreConfig("design/watermark/{$this->_getModel()->getDestinationSubdir()}_image")) {
                     $this->_getModel()->setWatermarkPosition($this->getWatermarkPosition())->setWatermarkSize($this->parseSize($this->getWatermarkSize()))->setWatermark($watermark, $this->getWatermarkPosition());
                 }
             }
             $url = $this->_getModel()->saveFile()->getUrl();
         }
     } catch (Exception $e) {
         $url = Mage_Core_Model_Design_Package::getDesign()->getSkinUrl($this->getPlaceholder());
     }
     return $url;
 }
Exemplo n.º 28
0
 public function fetchFileLayoutUpdates()
 {
     $coreConfig = AO::getConfig();
     $elementClass = $this->getElementClass();
     $design = Mage_Core_Model_Design_Package::getDesign();
     $area = $design->getArea();
     $storeId = AO::app()->getStore()->getId();
     $cacheKey = 'LAYOUT_' . $area . '_STORE' . $storeId . '_' . $design->getPackageName() . '_' . $design->getTheme('layout');
     #echo "TEST:".$cacheKey;
     $cacheTags = array('layout');
     if (AO::app()->useCache('layout') && ($layoutStr = AO::app()->loadCache($cacheKey))) {
         $this->_packageLayout = simplexml_load_string($layoutStr);
     }
     if (empty($layoutStr)) {
         $updatesRoot = $coreConfig->getNode($area . '/layout/updates');
         $updateFiles = array();
         foreach ($updatesRoot->children() as $updateNode) {
             if ($updateNode->file) {
                 $module = $coreConfig->getAttribute($updateNode, 'module');
                 if ($module && AO::getStoreConfigFlag('advanced/modules_disable_output/' . $module)) {
                     continue;
                 }
                 $updateFiles[] = (string) $updateNode->file;
             }
         }
         // custom local layout updates file - load always last
         $updateFiles[] = 'local.xml';
         $layoutStr = '';
         #$layoutXml = new $elementClass('<layouts/>');
         foreach ($updateFiles as $file) {
             $filename = $design->getLayoutFilename($file);
             if (!is_readable($filename)) {
                 continue;
             }
             $fileStr = file_get_contents($filename);
             $fileStr = str_replace($this->_subst['from'], $this->_subst['to'], $fileStr);
             $fileXml = simplexml_load_string($fileStr);
             if (!$fileXml instanceof SimpleXMLElement) {
                 continue;
             }
             $layoutStr .= $coreConfig->innerXml($fileXml);
             #$layoutXml->appendChild($fileXml);
         }
         $layoutXml = simplexml_load_string('<layouts>' . $layoutStr . '</layouts>');
         $this->_packageLayout = $layoutXml;
         if (AO::app()->useCache('layout')) {
             AO::app()->saveCache($this->_packageLayout->asXml(), $cacheKey, $cacheTags, null);
         }
     }
     return $this;
 }
Exemplo n.º 29
0
 /**
  * Add comment to order
  *
  * @param string $orderIncrementId
  * @param string $status
  * @param string $comment
  * @param boolean $notify
  * @return boolean
  */
 public function addComment($orderIncrementId, $status, $comment = null, $notify = false)
 {
     $order = $this->_initOrder($orderIncrementId);
     $order->addStatusToHistory($status, $comment, $notify);
     try {
         if ($notify && $comment) {
             $oldStore = Mage_Core_Model_Design_Package::getDesign()->getStore();
             $oldArea = Mage_Core_Model_Design_Package::getDesign()->getArea();
             Mage_Core_Model_Design_Package::getDesign()->setStore($order->getStoreId());
             Mage_Core_Model_Design_Package::getDesign()->setArea('frontend');
         }
         $order->sendOrderUpdateEmail($notify, $comment);
         $order->save();
         if ($notify && $comment) {
             Mage_Core_Model_Design_Package::getDesign()->setStore($oldStore);
             Mage_Core_Model_Design_Package::getDesign()->setArea($oldArea);
         }
     } catch (Mage_Core_Exception $e) {
         $this->_fault('status_not_changed', $e->getMessage());
     }
     return true;
 }
Exemplo n.º 30
0
 public function getGridParentHtml()
 {
     $templateName = Mage_Core_Model_Design_Package::getDesign()->getTemplateFilename($this->_parentTemplate, array('_relative' => true));
     return $this->fetchView($templateName);
 }