所以,我本周开始了一个新项目,当然我正在考虑在整个开发过程中我会发现的问题。我们打算开一家设计很好的商店,非常兴奋。但是,该设计使用了大量不能放置在magento正常功能中的内容。例如,有一个目录页面,其中包含许多内容块,其中包含诸如独特卖点或一些故事讲述之类的辅助信息。对于不同的类别,这可能会有所不同。我们谈论的是很多小内容块,而不是你可以填入类别描述字段的内容;)
到目前为止,我主要使用静态块来制作这些内容并在页面上显示它们,甚至可以使用xpath从块中提取我需要的信息,以防止最终用户使用WYSIWYG编辑器破坏设计。但是,我不认为这将是一个很好的解决方案,因为只需要创建和使用很多静态块而不会丢失所有内容的概述,而且我怀疑xpath确实是非常好的性能(比如搞砸了)用锤子)。
我正在考虑制作一个模块或使用一个模块,该模块可以添加属性并将属性集与静态块结合使用。有了它,您可以为某些页面创建自己的字段和组,并使最终用户可以轻松编辑其网店上的信息。然而,自己做这个(听起来很有趣)会花费很多时间,而且我真的找不到像这样做的模块。
你们在创建新网店时如何解决这些问题?有什么提示吗?
答案 0 :(得分:1)
我想你将使用你自己的主题和自己的类别页面模板,在这里你将设置你不希望管理员弄乱所见即所得编辑器的所有HTML,让他们只改变某些部分这页纸。要使管理员能够编辑这些属性,您需要向类别实体添加新属性。例如,如果管理员应该为某个框添加文本,则添加文本类型的属性,如果管理员想要添加HTML创建WYSIWYG编辑器类型的属性,等等。然后在您的模板中,您将检查该类别是否具有任何这些属性,并且它们具有非空值,然后打印它们。
例如:
<?php if ($category->getCustomTextAttribute() != ''): ?>
<div id="your-div">
<?php echo $category->getCustomTextAttribute(); ?>
</div>
<?php endif; ?>
<?php if ($category->getPromotionHtml() != ''): ?>
<div id="promotion-div">
<?php echo $category->getPromotionHtml(); ?>
</div>
<?php endif; ?>
这与产品页面的情况相同,不同之处在于产品可以通过管理员创建属性,然后在产品页面模板上打印,否则对于类别,您需要编写一个模块来执行此操作,如果您需要我的话可以为您提供创建类别属性的模块示例。
答案 1 :(得分:0)
我最终使用了zokibtmkd回答和向默认静态块添加字段的组合(图像上传功能和链接字段)。这两种解决方案的结合使我足以在设计中使用而不会弄乱管理员或模板。