Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
magento 2自定义phtml页面_Magento_Templates_Static Block_Magento2 - Fatal编程技术网

magento 2自定义phtml页面

magento 2自定义phtml页面,magento,templates,static-block,magento2,Magento,Templates,Static Block,Magento2,我刚刚对Magento 1.9有了足够的了解,并且能够进行所需的定制,有人告诉我,一旦它推出,我们将迁移到Magento v2.0。 找到了文件结构中的差异后,我相信我可以看到我们使用的自定义页面的代码放在何处,但是如何将此页面从我的项目添加到静态块中供以后使用呢? 以前,使用的方法如下(我意识到这可能不符合最佳实践,但它起到了作用): 在主题或核心模板目录中创建元素文件夹。 例如,/app/design/frontend//default/template/myelement/mypage.p

我刚刚对Magento 1.9有了足够的了解,并且能够进行所需的定制,有人告诉我,一旦它推出,我们将迁移到Magento v2.0。 找到了文件结构中的差异后,我相信我可以看到我们使用的自定义页面的代码放在何处,但是如何将此页面从我的项目添加到静态块中供以后使用呢? 以前,使用的方法如下(我意识到这可能不符合最佳实践,但它起到了作用):

  • 在主题或核心模板目录中创建元素文件夹。 例如,
    /app/design/frontend//default/template/myelement/mypage.phtml
  • 在内容编辑器中使用以下命令将此页面/元素添加到静态块:

    {{block type=“/default”template=“myelement/mypage.phtml”}

  • 然后可以根据需要将此块添加到类别页面

    在Magento 2中,我尝试了我认为需要的方法,即复制文件结构并向其中添加phtml文件,因此模板文件现在位于:

    /app/code/<supplier>/<module>/view/frontend/templates/mypage.phtml
    
    /app/code///view/frontend/templates/mypage.phtml
    
    将以下内容添加到内容编辑器:

    {{block type="<supplier>/<module>" template="mypage.phtml"}}
    
    {{block type=“/”template=“mypage.phtml”}
    
    不幸的是,这不会显示预期的页面(元素)。它也不会显示正在调用的“{block”条目,这通常发生在行无效时,因此我只能假设我缺少指向此模板的链接

    如果有人能在这方面提供帮助,我将不胜感激

    编辑: 对此的持续研究导致我做出以下假设:

  • Magento 2需要的不仅仅是一个新的.phtml页面,即使是简单的定制
  • 我仍然缺少一些东西
  • 在为Magento 2创建新模块方面,我已经学习了3个不同的教程,每个教程都提供了稍微不同的方法,但基本上是一样的,现在我有了我认为应该具备的所有代码元素,可以创建一个新的.phtml模板,以便在静态块中显示

    然而,这导致了另一个问题。 虽然我有所需的代码,但无法添加模块。将模块添加到etc/config.php,正如3本教程中的2本所建议的那样,在尝试清除缓存时,管理员和前端都会崩溃M2。手动清除var目录中的缓存文件夹后就是这种情况

    此外,仍然无法使用内容编辑器将.phtml模板文件添加到静态块或页面

    这里没有太多的头发需要拔掉,所以正在寻求帮助!提前感谢您

    您应该尝试使用“类”而不是“类型”。因此您的代码应该如下所示

    {{block class="<package>\<module>\Block\MyBlock" template="mypage.phtml"}}
    
     {{block class="VenderNameModulename\Block\MyBlock" template="VenderName_Modulename::myelement/mypage.phtml"}}
    
    {{block class=“\\block\MyBlock”template=“mypage.phtml”}
    
    GitHub上有几个示例,其中显示了一个模块,该模块使用一个非常简单的PHTML模板文件添加一个新页面。但是,此示例不使用CMS内容编辑-它是一个基于使用布局文件的示例

    您提到您遇到了崩溃。需要更多详细信息来帮助解决这个问题。如果您解决了这个问题,您是否可以更新此问题并接受回复以结束它?Thx!

    您应该尝试“VenderName\u Modulename::myelement/mypage.phtml”而不是“myelement/mypage.phtml”。因此您的代码应该是这样的

    {{block class="<package>\<module>\Block\MyBlock" template="mypage.phtml"}}
    
     {{block class="VenderNameModulename\Block\MyBlock" template="VenderName_Modulename::myelement/mypage.phtml"}}
    

    谢谢阿齐兹。不幸的是,虽然你的答案可能是正确的,但我似乎仍然遗漏了一些东西。谢谢阿齐兹。虽然我确信你的答案是正确的,但看起来确实有道理,但我一定仍然遗漏了一些东西。我已经阅读了创建模块的教程(对于我想要的内容,我做得太多了,但不妨学习一下)。当按照教程中的建议将模块添加到config.php时,Magento2会崩溃(管理员和前端)。使用完整的模块文件结构,使用您建议的代码将阻止整个块显示。有什么想法吗?此项目的工作已暂时停止。稍后将重新访问它。目前,我们正在继续使用Magento 1.9,并迁移到下一行的Magento 2。不过,感谢您的输入,请在下次使用时记住我们确实重温了Magento 2。