【问题标题】:CMS block only on first category pageCMS 仅在第一个类别页面上阻止
【发布时间】:2016-05-26 22:44:57
【问题描述】:

我正在使用 Magento 1.9 并在一件事上苦苦挣扎。 我的类别页面中有一个 CMS 块,但我希望它只显示在第一页上!因此,如果我向下滚动并移至同一类别的第 2 页,我不想再次看到该 CMS 块。 我试图将此代码放在 CMS 块中...但它忽略了我 (category-accordion.accordion 是 CMS 块的主要 div)

<script>
if (window.location.href.indexOf("?p=") >-1) 
{document.getElementsByClassName('category-accordion accordion')[0].display='none';}
// ]]></script>

有什么想法吗?

编辑:

在分类页面尝试了以下代码:

<?php if($this->isContentMode()): ?>
<?php echo $this->getCmsBlockHtml() ?>

<?php elseif($this->isMixedMode() && (strpos($_SERVER['REQUEST_URI'], '?=p') !== true)): ?>
   <?php echo $this->getCmsBlockHtml() ?>
   <?php echo $this->getProductListHtml() ?>

<?php elseif($this->isMixedMode() && (strpos($_SERVER['REQUEST_URI'], '?=p') !== false)): ?>
<?php echo $this->getProductListHtml() ?>

<?php else: ?>
 <?php echo $this->getProductListHtml() ?>
<?php endif; ?>

【问题讨论】:

    标签: php magento block categories


    【解决方案1】:

    您可以在类别视图模板catalog\category\view.phtml中设置条件。

    <?php 
    $currentPage = (int) $this->getRequest()->getParam('p', 1);
    if($currentPage <= 1) { 
    echo $this->getCmsBlockHtml()
    } ?>
    

    【讨论】:

    • 我像这样修改了文件,但似乎错误(不再上传页面):&lt;?php $currentPage = (int) $this-&gt;getRequest()-&gt;getParam('p', 1); ?&gt; &lt;?php if($this-&gt;isContentMode()): ?&gt; &lt;?php echo $this-&gt;getCmsBlockHtml() ?&gt; &lt;?php elseif($this-&gt;isMixedMode()): ?&gt; &lt;?php if($currentPage &lt;= 1) { echo $this-&gt;getCmsBlockHtml() } ?&gt; &lt;?php echo $this-&gt;getProductListHtml() ?&gt; &lt;?php else: ?&gt; &lt;?php echo $this-&gt;getProductListHtml() ?&gt; &lt;?php endif; ?&gt;
    • EDIT:我像这样修改了文件,但它似乎忽略了条件(显示块):&lt;?php if($this-&gt;isContentMode()) { echo $this-&gt;getCmsBlockHtml(); $currentPage = (int) $this-&gt;getRequest()-&gt;getParam('p', 1); } else if($this-&gt;isMixedMode() &amp;&amp; $currentPage &lt;= 1) { echo $this-&gt;getCmsBlockHtml(); echo $this-&gt;getProductListHtml(); } else if($this-&gt;isMixedMode() &amp;&amp; $currentPage &gt; 1) { echo $this-&gt;getProductListHtml(); } else { echo $this-&gt;getProductListHtml(); } ?&gt;
    • 您的第一个评论代码是正确的。你能告诉我你在这方面遇到了什么问题吗
    • Magento 似乎只在第一页检查条件,然后保留块...例如:如果我把$currentPage &gt; 1 CMS 块不显示在第一页,也没有显示在接下来的页面中,如果我输入 $currentPage &lt;= 1 它会在所有页面上显示它。
    • 您能否为每个页面回显$currentPage 变量。因为对我来说它工作正常
    【解决方案2】:

    试试这个。

    <script>
        if (window.location.href.indexOf("?p=") >-1) 
        {
            jQuery('.category-accordion.accordion').hide();
        }
    </script>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-13
      • 2014-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多