【问题标题】:I'm unable to set a main template, only works on my custom module我无法设置主模板,仅适用于我的自定义模块
【发布时间】:2015-03-21 08:57:57
【问题描述】:

我认为我的主题是一个相当基本的主题,我将其定位在 design>frontend>mytheme

然后我在配置>设计设置中将我的“包”作为“mytheme”。

我遇到的问题是我想要一个用于所有内容的主模板文件,但它只适用于我的自定义模块页面,而不是默认的 magento 页面,如登录/注册页面或主页。

以下是我的主题的基本 local.xml 文件。所有页面都添加了js文件,只是没有使用我的默认模板:

<?xml version="1.0" encoding="UTF-8"?>
<layout version="0.1.0">
    <default translate="label" module="page">
        <label>All Pages</label>
        <block type="page/html" name="root" output="toHtml" template="single_column.phtml">

        <block type="page/html_head" name="head" as="head">
            <action method="addJs"><script>prototype/prototype.js</script></action>
            <action method="addJs"><script>lib/jquery/jquery-1.10.2.min.js</script></action>
            <action method="addJs"><script>lib/jquery/noconflict.js</script></action>
            <action method="addJs"><script>lib/ccard.js</script></action>
            <action method="addJs"><script>prototype/validation.js</script></action>
            <action method="addJs"><script>scriptaculous/builder.js</script></action>
            <action method="addJs"><script>scriptaculous/effects.js</script></action>
            <action method="addJs"><script>scriptaculous/dragdrop.js</script></action>
            <action method="addJs"><script>scriptaculous/controls.js</script></action>
            <action method="addJs"><script>scriptaculous/slider.js</script></action>
            <action method="addJs"><script>varien/js.js</script></action>
            <action method="addJs"><script>varien/form.js</script></action>
            <action method="addJs"><script>mage/translate.js</script></action>
            <action method="addJs"><script>mage/cookies.js</script></action>

            <block type="page/js_cookie" name="js_cookies" template="page/js/cookie.phtml"/>
        </block>

            <block type="core/text_list" name="content" as="content" translate="label">
                <label>Main Content Area</label>
            </block>



        </block>

        <reference name="head">
            <action method="addCss">
                <stylesheet>css/local.css</stylesheet>
            </action>
        </reference>
     </default>
</layout>

【问题讨论】:

    标签: magento


    【解决方案1】:

    您可以在标题中创建一个块并添加所有 js 文件。 或者,如果您想从 xml 文件中调用 js,则需要在 local.xml 引用中添加要添加 js 的页面,请查看以下代码:

    <catalog_product_view>
    
         <reference name="root">
            <action method="setTemplate"><template>page/2columns-right.phtml</template></action>
                 </reference>
         <reference name="head">
                <action method="addJs"><script>firstyourscript.js</script></action>
               <action method="addJs"><script>secondyourscript.js</script></action>
            </reference>
    </catalog_product_view>
    

    通过这种方式,您可以在所有页面中添加您的 js 文件。您需要为您需要在 local.xml 中添加的所有页面设置具有引用名称 root 的模板

    【讨论】:

    • 对不起,我的问题并不是关于 js。 js 已正确添加到我的所有页面中。我的问题是关于我的主页、登录/注册页面、只有我的自定义模块页面上没有使用 single_column 模板这一事实。我不知道为什么会这样。
    • 回答已编辑,您需要在 local.xml 中添加所有句柄,并在其中添加参考根目录。
    • 似乎不起作用。这一切处理如何成为默认处理?什么是“目录产品视图”?它是任意的还是我必须在某处将其设置为“默认”?谢谢
    • 检查 base 和 rwd 主题,同样的事情发生了。尽管默认模板设置为“3columns.phtml”,但它似乎为不同的页面使用不同的模板。如果有办法全面获取模板文件....
    • 在 catalog.xml 中,您会发现“catalog_product_view”,这是您在站点中看到的产品详细信息页面时的句柄。我上面的代码是为产品详细信息页面设置根模板。您还将找到类别页面的句柄“catalog_category_default”。
    【解决方案2】:

    问题在于,在默认主页的管理设置中,它设置了 2column 模板,它会覆盖您设置为默认值的任何内容。

    为了解决这个问题,我刚刚创建了自己的模块/控制器并将其设置为默认主页。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多