本文整理汇总了PHP中Magento\Framework\Stdlib\DateTime\TimezoneInterface::isScopeDateInInterval方法的典型用法代码示例。如果您正苦于以下问题:PHP TimezoneInterface::isScopeDateInInterval方法的具体用法?PHP TimezoneInterface::isScopeDateInInterval怎么用?PHP TimezoneInterface::isScopeDateInInterval使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Magento\Framework\Stdlib\DateTime\TimezoneInterface
的用法示例。
在下文中一共展示了TimezoneInterface::isScopeDateInInterval方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: _renderPage
/**
* Renders CMS page
*
* @param Action $action
* @param int $pageId
* @param bool $renderLayout
* @return bool
*/
protected function _renderPage(Action $action, $pageId = null, $renderLayout = true)
{
if (!is_null($pageId) && $pageId !== $this->_page->getId()) {
$delimiterPosition = strrpos($pageId, '|');
if ($delimiterPosition) {
$pageId = substr($pageId, 0, $delimiterPosition);
}
$this->_page->setStoreId($this->_storeManager->getStore()->getId());
if (!$this->_page->load($pageId)) {
return false;
}
}
if (!$this->_page->getId()) {
return false;
}
$inRange = $this->_localeDate->isScopeDateInInterval(null, $this->_page->getCustomThemeFrom(), $this->_page->getCustomThemeTo());
if ($this->_page->getCustomTheme()) {
if ($inRange) {
$this->_design->setDesignTheme($this->_page->getCustomTheme());
}
}
$this->_view->getLayout()->getUpdate()->addHandle('default')->addHandle('cms_page_view');
$this->_view->addPageLayoutHandles(array('id' => $this->_page->getIdentifier()));
$this->_view->addActionLayoutHandles();
if ($this->_page->getRootTemplate()) {
if ($this->_page->getCustomRootTemplate() && $this->_page->getCustomRootTemplate() != 'empty' && $inRange) {
$handle = $this->_page->getCustomRootTemplate();
} else {
$handle = $this->_page->getRootTemplate();
}
$this->_pageLayout->applyHandle($handle);
}
$this->_eventManager->dispatch('cms_page_render', array('page' => $this->_page, 'controller_action' => $action));
$this->_view->loadLayoutUpdates();
if ($this->_page->getCustomLayoutUpdateXml() && $inRange) {
$layoutUpdate = $this->_page->getCustomLayoutUpdateXml();
} else {
$layoutUpdate = $this->_page->getLayoutUpdateXml();
}
if (!empty($layoutUpdate)) {
$this->_view->getLayout()->getUpdate()->addUpdate($layoutUpdate);
}
$this->_view->generateLayoutXml()->generateLayoutBlocks();
$contentHeadingBlock = $this->_view->getLayout()->getBlock('page_content_heading');
if ($contentHeadingBlock) {
$contentHeading = $this->_escaper->escapeHtml($this->_page->getContentHeading());
$contentHeadingBlock->setContentHeading($contentHeading);
}
if ($this->_page->getRootTemplate()) {
$this->_pageLayout->applyTemplate($this->_page->getRootTemplate());
}
/* @TODO: Move catalog and checkout storage types to appropriate modules */
$messageBlock = $this->_view->getLayout()->getMessagesBlock();
$messageBlock->addStorageType($this->messageManager->getDefaultGroup());
$messageBlock->addMessages($this->messageManager->getMessages(true));
if ($renderLayout) {
$this->_view->renderLayout();
}
return true;
}
示例2: calculateSpecialPrice
/**
* Calculate and apply special price
*
* @param float $finalPrice
* @param float $specialPrice
* @param string $specialPriceFrom
* @param string $specialPriceTo
* @param int|string|Store $store
* @return float
*/
public function calculateSpecialPrice($finalPrice, $specialPrice, $specialPriceFrom, $specialPriceTo, $store = null)
{
if ($specialPrice !== null && $specialPrice != false) {
if ($this->_localeDate->isScopeDateInInterval($store, $specialPriceFrom, $specialPriceTo)) {
$finalPrice = min($finalPrice, $specialPrice);
}
}
return $finalPrice;
}
示例3: _extractSettings
/**
* Extract custom layout settings from category or product object
*
* @param \Magento\Catalog\Model\Category|\Magento\Catalog\Model\Product $object
* @return \Magento\Framework\Object
*/
protected function _extractSettings($object)
{
$settings = new \Magento\Framework\Object();
if (!$object) {
return $settings;
}
$date = $object->getCustomDesignDate();
if (array_key_exists('from', $date) && array_key_exists('to', $date) && $this->_localeDate->isScopeDateInInterval(null, $date['from'], $date['to'])) {
$settings->setCustomDesign($object->getCustomDesign())->setPageLayout($object->getPageLayout())->setLayoutUpdates((array) $object->getCustomLayoutUpdate());
}
return $settings;
}
示例4: prepareResultPage
/**
* Return result blog page
*
* @param Action $action
* @param \Magento\Framework\Model\AbstractModel $page
* @return \Magento\Framework\View\Result\Page|bool
*/
public function prepareResultPage(Action $action, $page)
{
if ($page->getCustomThemeFrom() && $page->getCustomThemeTo()) {
$inRange = $this->_localeDate->isScopeDateInInterval(null, $page->getCustomThemeFrom(), $page->getCustomThemeTo());
} else {
$inRange = false;
}
if ($page->getCustomTheme()) {
if ($inRange) {
$this->_design->setDesignTheme($page->getCustomTheme());
}
}
/** @var \Magento\Framework\View\Result\Page $resultPage */
$resultPage = $this->resultPageFactory->create();
if ($inRange && $page->getCustomLayout() && $page->getCustomLayout() != 'empty') {
$handle = $page->getCustomLayout();
} else {
$handle = $page->getPageLayout();
}
if ($handle) {
$resultPage->getConfig()->setPageLayout($handle);
}
$fullActionName = $action->getRequest()->getFullActionName();
$resultPage->addHandle($fullActionName);
$resultPage->addPageLayoutHandles(['id' => $page->getIdentifier()]);
$this->_eventManager->dispatch($fullActionName . '_render', ['page' => $page, 'controller_action' => $action]);
if ($inRange && $page->getCustomLayoutUpdateXml()) {
$layoutUpdate = $page->getCustomLayoutUpdateXml();
} else {
$layoutUpdate = $page->getLayoutUpdateXml();
}
if ($layoutUpdate) {
$resultPage->getLayout()->getUpdate()->addUpdate($layoutUpdate);
}
return $resultPage;
}
示例5: prepareResultPage
/**
* Return result CMS page
*
* @param Action $action
* @param null $pageId
* @return \Magento\Framework\View\Result\Page|bool
*/
public function prepareResultPage(Action $action, $pageId = null)
{
if ($pageId !== null && $pageId !== $this->_page->getId()) {
$delimiterPosition = strrpos($pageId, '|');
if ($delimiterPosition) {
$pageId = substr($pageId, 0, $delimiterPosition);
}
$this->_page->setStoreId($this->_storeManager->getStore()->getId());
if (!$this->_page->load($pageId)) {
return false;
}
}
if (!$this->_page->getId()) {
return false;
}
$inRange = $this->_localeDate->isScopeDateInInterval(null, $this->_page->getCustomThemeFrom(), $this->_page->getCustomThemeTo());
if ($this->_page->getCustomTheme()) {
if ($inRange) {
$this->_design->setDesignTheme($this->_page->getCustomTheme());
}
}
/** @var \Magento\Framework\View\Result\Page $resultPage */
$resultPage = $this->resultPageFactory->create();
$this->setLayoutType($inRange, $resultPage);
$resultPage->addHandle('cms_page_view');
$resultPage->addPageLayoutHandles(['id' => $this->_page->getIdentifier()]);
$this->_eventManager->dispatch('cms_page_render', ['page' => $this->_page, 'controller_action' => $action]);
if ($this->_page->getCustomLayoutUpdateXml() && $inRange) {
$layoutUpdate = $this->_page->getCustomLayoutUpdateXml();
} else {
$layoutUpdate = $this->_page->getLayoutUpdateXml();
}
if (!empty($layoutUpdate)) {
$resultPage->getLayout()->getUpdate()->addUpdate($layoutUpdate);
}
$contentHeadingBlock = $resultPage->getLayout()->getBlock('page_content_heading');
if ($contentHeadingBlock) {
$contentHeading = $this->_escaper->escapeHtml($this->_page->getContentHeading());
$contentHeadingBlock->setContentHeading($contentHeading);
}
/* @TODO: Move catalog and checkout storage types to appropriate modules */
$messageBlock = $resultPage->getLayout()->getMessagesBlock();
$messageBlock->addStorageType($this->messageManager->getDefaultGroup());
$messageBlock->addMessages($this->messageManager->getMessages(true));
return $resultPage;
}
示例6: isScopeDateInInterval
/**
* @return bool
*/
public function isScopeDateInInterval()
{
return $this->localeDate->isScopeDateInInterval($this->product->getStore(), $this->getSpecialFromDate(), $this->getSpecialToDate());
}