【问题标题】:Magento Block MissingMagento 块丢失
【发布时间】:2014-03-25 02:54:45
【问题描述】:

我似乎丢失了我的页面上包含产品的块。我确实安装了垂直导航,但我不确定这与它有什么关系。我正在添加产品,已检查它们是否显示为库存等,但它们没有出现。如果我什至在类别上键入描述,这也不会出现。如果我也转到产品页面的特定 URL,它们仍然不会显示。我打开了路径提示,看起来那个块只是丢失了?帮助!

【问题讨论】:

    标签: xml magento block php


    【解决方案1】:

    首先确保您正在使用编译器和缓存,并在每次更改后刷新 Magetno 缓存和缓存存储。

    您需要研究的两个文件是主题的 local.xml 文件和主题的 list.phtml 以及产品和类别的 view.phtml 文件。

    把这段代码贴在 /app/design/frontend/yourtheme/default/layout/local.xml 的末尾,看看有没有区别:

    <catalog_category_default translate="label">
        <label>Catalog Category (Non-Anchor)</label>
        <reference name="left">
            <block type="catalog/navigation" name="catalog.leftnav" after="currency" template="catalog/navigation/left.phtml"/>
        </reference>
        <reference name="content">
            <block type="catalog/category_view" name="category.products" template="catalog/category/view.phtml">
                <block type="catalog/product_list" name="product_list" template="catalog/product/list.phtml">
                    <block type="catalog/product_list_toolbar" name="product_list_toolbar" template="catalog/product/list/toolbar.phtml">
                        <block type="page/html_pager" name="product_list_toolbar_pager"/>
                        <!-- The following code shows how to set your own pager increments -->
                        <!--
                            <action method="setDefaultListPerPage"><limit>4</limit></action>
                            <action method="setDefaultGridPerPage"><limit>9</limit></action>
                            <action method="addPagerLimit"><mode>list</mode><limit>2</limit></action>
                            <action method="addPagerLimit"><mode>list</mode><limit>4</limit></action>
                            <action method="addPagerLimit"><mode>list</mode><limit>6</limit></action>
                            <action method="addPagerLimit"><mode>list</mode><limit>8</limit></action>
                            <action method="addPagerLimit" translate="label"><mode>list</mode><limit>all</limit><label>All</label></action>
                        -->
                    </block>
                    <action method="addColumnCountLayoutDepend"><layout>empty</layout><count>6</count></action>
                    <action method="addColumnCountLayoutDepend"><layout>one_column</layout><count>5</count></action>
                    <action method="addColumnCountLayoutDepend"><layout>two_columns_left</layout><count>4</count></action>
                    <action method="addColumnCountLayoutDepend"><layout>two_columns_right</layout><count>4</count></action>
                    <action method="addColumnCountLayoutDepend"><layout>three_columns</layout><count>3</count></action>
                    <action method="setToolbarBlockName"><name>product_list_toolbar</name></action>
                </block>
            </block>
        </reference>
    </catalog_category_default>
    
    <catalog_category_layered translate="label">
        <label>Catalog Category (Anchor)</label>
        <reference name="left">
            <block type="catalog/layer_view" name="catalog.leftnav" after="currency" template="catalog/layer/view.phtml"/>
        </reference>
        <reference name="content">
            <block type="catalog/category_view" name="category.products" template="catalog/category/view.phtml">
                <block type="catalog/product_list" name="product_list" template="catalog/product/list.phtml">
                    <!-- <action method="addReviewSummaryTemplate"><type>default</type><template>review/helper/su.phtml</template></action> -->
                    <block type="catalog/product_list_toolbar" name="product_list_toolbar" template="catalog/product/list/toolbar.phtml">
                        <block type="page/html_pager" name="product_list_toolbar_pager"/>
                        <!-- The following code shows how to set your own pager increments -->
                        <!--
                            <action method="setDefaultListPerPage"><limit>4</limit></action>
                            <action method="setDefaultGridPerPage"><limit>3</limit></action>
                            <action method="addPagerLimit"><mode>list</mode><limit>2</limit></action>
                            <action method="addPagerLimit"><mode>list</mode><limit>4</limit></action>
                            <action method="addPagerLimit"><mode>list</mode><limit>6</limit></action>
                            <action method="addPagerLimit"><mode>list</mode><limit>8</limit></action>
                            <action method="addPagerLimit" translate="label"><mode>list</mode><limit>all</limit><label>All</label></action>
                            <action method="addPagerLimit"><mode>grid</mode><limit>3</limit></action>
                            <action method="addPagerLimit"><mode>grid</mode><limit>6</limit></action>
                            <action method="addPagerLimit"><mode>grid</mode><limit>9</limit></action>
                            <action method="addPagerLimit" translate="label"><mode>grid</mode><limit>all</limit><label>All</label></action>
                        -->
                    </block>
                    <action method="addColumnCountLayoutDepend"><layout>empty</layout><count>6</count></action>
                    <action method="addColumnCountLayoutDepend"><layout>one_column</layout><count>5</count></action>
                    <action method="addColumnCountLayoutDepend"><layout>two_columns_left</layout><count>4</count></action>
                    <action method="addColumnCountLayoutDepend"><layout>two_columns_right</layout><count>4</count></action>
                    <action method="addColumnCountLayoutDepend"><layout>three_columns</layout><count>3</count></action>
                    <action method="setToolbarBlockName"><name>product_list_toolbar</name></action>
                </block>
            </block>
        </reference
    </catalog_category_layered>
    

    [此代码是从类别视图页面的 MAgento 默认 XML 中提取的,因此通过将其放在 local.xml 的末尾,这是尝试将所有块添加回]

    然后查看 app/design/frontend/yourtheme/default/template/catalog/catagory/view.phtml 并确保它有某处

    &lt;?php echo $this-&gt;getProductListHtml() ?&gt;

    如果产品块仍未显示,请在所有 xml 文件中搜索 name="product_list"category.products 以查看是否有模块正在更改或删除块。

    如果它仍然不存在,请切换到 Magento 默认主题,以检查默认主题中是否存在。如果不是,请检查您的类别设置并开始禁用第三方模块,直到它恢复。

    **编辑

    这是 app/design/frontend/default/modern/layout/catalog.xml 的原始代码,请检查该文件中是否有此代码:

    <catalog_category_default translate="label">
        <label>Catalog Category (Non-Anchor)</label>
        <reference name="root">
            <action method="setTemplate"><template>page/2columns-left.phtml</template></action>
        </reference>
        <reference name="left">
            <block type="catalog/navigation" name="catalog.leftnav" after="currency" template="catalog/navigation/left.phtml"/>
        </reference>
        <reference name="content">
            <block type="catalog/category_view" name="category.products" template="catalog/category/view.phtml">
                <block type="catalog/product_list" name="product_list" template="catalog/product/list.phtml">
                    <block type="catalog/product_list_toolbar" name="product_list_toolbar" template="catalog/product/list/toolbar.phtml">
                        <block type="page/html_pager" name="product_list_toolbar_pager"/>
                        <!-- The following code shows how to set your own pager increments -->
                        <!--
                            <action method="setDefaultListPerPage"><limit>10</limit></action>
                            <action method="setDefaultGridPerPage"><limit>8</limit></action>
                            <action method="addPagerLimit"><mode>list</mode><limit>10</limit></action>
                            <action method="addPagerLimit"><mode>list</mode><limit>20</limit></action>
                            <action method="addPagerLimit"><mode>list</mode><limit>30</limit></action>
                            <action method="addPagerLimit" translate="label"><mode>list</mode><limit>all</limit><label>All</label></action>
                            <action method="addPagerLimit"><mode>grid</mode><limit>8</limit></action>
                            <action method="addPagerLimit"><mode>grid</mode><limit>16</limit></action>
                            <action method="addPagerLimit"><mode>grid</mode><limit>24</limit></action>
                            <action method="addPagerLimit" translate="label"><mode>grid</mode><limit>all</limit><label>All</label></action>
                        -->
                    </block>
                    <!--action method="addColumnCountLayoutDepend"><layout>empty</layout><count>6</count></action>
                    <action method="addColumnCountLayoutDepend"><layout>one_column</layout><count>5</count></action>
                    <action method="addColumnCountLayoutDepend"><layout>two_columns_left</layout><count>4</count></action>
                    <action method="addColumnCountLayoutDepend"><layout>two_columns_right</layout><count>4</count></action>
                    <action method="addColumnCountLayoutDepend"><layout>three_columns</layout><count>3</count></action-->
                    <action method="setColumnCount"><count>4</count></action>
                    <action method="setToolbarBlockName"><name>product_list_toolbar</name></action>
                </block>
            </block>
        </reference>
    </catalog_category_default>
    
    <catalog_category_layered translate="label">
        <label>Catalog Category (Anchor)</label>
        <reference name="root">
            <action method="setTemplate"><template>page/2columns-left.phtml</template></action>
        </reference>
        <reference name="left">
            <block type="catalog/layer_view" name="catalog.leftnav" after="currency" template="catalog/layer/view.phtml"/>
        </reference>
        <reference name="content">
            <block type="catalog/category_view" name="category.products" template="catalog/category/view.phtml">
                <block type="catalog/product_list" name="product_list" template="catalog/product/list.phtml">
                    <!-- <action method="addReviewSummaryTemplate"><type>default</type><template>review/helper/su.phtml</template></action> -->
                    <block type="catalog/product_list_toolbar" name="product_list_toolbar" template="catalog/product/list/toolbar.phtml">
                        <block type="page/html_pager" name="product_list_toolbar_pager"/>
                        <!-- The following code shows how to set your own pager increments -->
                        <!--
                            <action method="setDefaultListPerPage"><limit>10</limit></action>
                            <action method="setDefaultGridPerPage"><limit>8</limit></action>
                            <action method="addPagerLimit"><mode>list</mode><limit>10</limit></action>
                            <action method="addPagerLimit"><mode>list</mode><limit>20</limit></action>
                            <action method="addPagerLimit"><mode>list</mode><limit>30</limit></action>
                            <action method="addPagerLimit" translate="label"><mode>list</mode><limit>all</limit><label>All</label></action>
                            <action method="addPagerLimit"><mode>grid</mode><limit>8</limit></action>
                            <action method="addPagerLimit"><mode>grid</mode><limit>16</limit></action>
                            <action method="addPagerLimit"><mode>grid</mode><limit>24</limit></action>
                            <action method="addPagerLimit" translate="label"><mode>grid</mode><limit>all</limit><label>All</label></action>
                        -->
                    </block>
                    <!--action method="addColumnCountLayoutDepend"><layout>empty</layout><count>6</count></action>
                    <action method="addColumnCountLayoutDepend"><layout>one_column</layout><count>5</count></action>
                    <action method="addColumnCountLayoutDepend"><layout>two_columns_left</layout><count>4</count></action>
                    <action method="addColumnCountLayoutDepend"><layout>two_columns_right</layout><count>4</count></action>
                    <action method="addColumnCountLayoutDepend"><layout>three_columns</layout><count>3</count></action-->
                    <action method="setColumnCount"><count>4</count></action>
                    <action method="setToolbarBlockName"><name>product_list_toolbar</name></action>
                </block>
            </block>
        </reference>
    </catalog_category_layered>
    

    【讨论】:

    • 非常感谢您的帮助!我的“catalog.xml”文件(不是local.xml)中有你上面显示的代码,只是我认为我删除了一些重要的东西。我复制并粘贴了您的代码并替换了我拥有的代码并且它有效!谢谢!
    • 我说得太早了!我让它工作,然后点击“刷新”,它消失了,我再也无法找回它。我真的不认为我在刷新之间进行了任何更改,并且我尝试过刷新我的 magento 缓存和存储。啊:(((
    • 更新:如果我将“布局”更改为“默认”,它会起作用,但如果我将布局设置为“现代”(我的主题),它不会显示。因此,我在现代模板下遗漏了一些东西。知道我在寻找什么来解决这个问题。您提到“检查您的类别设置”——这是什么意思?
    • 有一个文件 app/design/frontend/default/modern/layout/catalog.xml - 确保该文件中包含原始代码:我将其添加到上面的答案中。此外,检查您是否有文件 app/design/frontend/default/modern/layout/local.xml,如果有,请检查该文件是否对 catalog_category_default 或 catalog_category_layered 块进行了任何更新。我很高兴它对你有点作用。请继续感知,我认为你很接近。奇怪的是它工作了,现在它没有仔细检查缓存、文件名和设计设置。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-23
    • 2012-06-01
    • 2014-09-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多