本文整理汇总了PHP中Varien_Event_Observer::getFront方法的典型用法代码示例。如果您正苦于以下问题:PHP Varien_Event_Observer::getFront方法的具体用法?PHP Varien_Event_Observer::getFront怎么用?PHP Varien_Event_Observer::getFront使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Varien_Event_Observer
的用法示例。
在下文中一共展示了Varien_Event_Observer::getFront方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: cachePage
/**
* Handles logic for caching pages. Currently checks the root block for the
* "CachePageFlag". Pages are only cached if the user is not logged in and does
* not have items in their cart.
*
* Observes: controller_front_send_response_before
* controller_front_send_response_after
*
* @param $observer
* @return void
*/
public function cachePage(Varien_Event_Observer $observer)
{
/**
* @var $engine Brim_PageCache_Model_Engine
*/
/**
* prevents method from being called twice. Used for Compat with Magento pre 1.4.2,
* where controller_front_send_response_before is optimal but does not exist.
*/
if ($this->_cachePageCalled == true) {
return $this;
}
$this->_cachePageCalled = true;
$engine = Mage::getSingleton('brim_pagecache/engine');
if (!$engine->isEnabled()) {
return;
}
$engine->cachePage($observer->getFront()->getResponse());
}
示例2: parseCssToBottom
/**
* Move Css (head & inline) to the bottom. ({excluded_css}{stripped_html}{css}</body></html>)
*
* Step 1: Return if module is disabled.
* Step 2: Load needed data.
* Step 3: Return if no </body> is found in html.
* Step 4: Search and replace conditional css units. (example: <!--[if lt IE 7]>{multiple css tags}<![endif]-->)
* Step 5: Search and replace external css tags. (link-tags must xhtml-compliant closed by "/>")
* Step 6: Search and replace inline css tags.
* Step 7: Return if no css is found.
* Step 8: Remove blank lines from html.
* Step 9: Recalculating </body> position, insert css groups right before body ends and set response.
* Final order:
* 1. excluded css
* 2. stripped html
* 3. conditional css tags
* 4. external css tags
* 5. inline css tags
* 6. </body></html>
*
* @param Varien_Event_Observer $observer
*/
public function parseCssToBottom(Varien_Event_Observer $observer)
{
//$timeStart = microtime(true);
// Step 1
$helper = Mage::helper('pagespeed_css');
if (!$helper->isEnabled()) {
return;
}
// Step 2
$response = $observer->getFront()->getResponse();
$html = $response->getBody();
$this->excludeList = $helper->getExcludeList();
// Step 3
$closedBodyPosition = strripos($html, self::HTML_TAG_BODY);
if (false === $closedBodyPosition) {
return;
}
// Step 4
$html = preg_replace_callback('#\\<\\!--\\[if[^\\>]*>\\s*<link[^>]*type\\="text\\/css"[^>]*/>\\s*<\\!\\[endif\\]-->#isU', 'self::processHit', $html);
// Step 5
$html = preg_replace_callback('#<link[^>]*type\\=["\']text\\/css["\'][^>]*/>#isU', 'self::processHit', $html);
// Step 6
$html = preg_replace_callback('#<style.*</style>#isUm', 'self::processHit', $html);
// Step 7
if (!$this->cssTags) {
return;
}
// Step 8
$html = preg_replace('/^\\h*\\v+/m', '', $html);
// Step 9
$closedBodyPosition = strripos($html, self::HTML_TAG_BODY);
$html = substr_replace($html, $this->cssTags, $closedBodyPosition, 0);
$response->setBody($html);
//Mage::log(round(((microtime(true) - $timeStart) * 1000)) . ' ms taken to parse Css to bottom');
}
示例3: controllerFrontSendResponseBefore
/**
* Fix form_key in html coming from cache
* @param Varien_Event_Observer $observer
*/
public function controllerFrontSendResponseBefore($observer)
{
if (Mage::getStoreConfigFlag(self::CONFIG_SECTION . '/general/enable_formkey_fix') && version_compare(Mage::getVersion(), '1.8', '>=')) {
/** @var Zend_Controller_Response_Http $response */
/** @noinspection PhpUndefinedMethodInspection */
$response = $observer->getFront()->getResponse();
$headers = $response->getHeaders();
$isHtml = true;
// Because it's default in PHP
foreach ($headers as $header) {
if ('Content-Type' == $header['name'] && false === strpos($header['value'], 'text/html')) {
$isHtml = false;
break;
}
}
if ($isHtml) {
$html = $response->getBody();
/** @noinspection PhpUndefinedMethodInspection */
$newFormKey = Mage::getSingleton('core/session')->getFormKey();
$urlParam = '/' . Mage_Core_Model_Url::FORM_KEY . '/';
$urlParamQ = preg_quote($urlParam, '#');
// Fix links
$html = preg_replace('#' . $urlParamQ . '[a-zA-Z0-9]+#', $urlParam . $newFormKey, $html);
// Fix hidden inputs in forms
$matches = array();
if (preg_match_all('#<input\\s[^>]*name=[\'"]{0,1}form_key[\'"]{0,1}[^>]*>#i', $html, $matches, PREG_SET_ORDER)) {
foreach ($matches as $matchData) {
$oldTag = $matchData[0];
$newTag = preg_replace('#value=[\'"]{0,1}[a-zA-Z0-9]+[\'"]{0,1}#i', 'value="' . $newFormKey . '"', $oldTag);
if ($oldTag != $newTag) {
$html = str_replace($oldTag, $newTag, $html);
}
}
}
$response->setBody($html);
}
}
}