如何在broadleaf中将自定义部分添加到主页

时间:2017-10-17 11:50:54

标签: broadleaf-commerce

您好我是broadleaf的新手,我想将定制产品添加到broadleaf的主页,如主页将在时间加载两个产品,例如家庭将要加载顶级销售产品和辣酱。

请帮我解决问题。

先谢谢

1 个答案:

答案 0 :(得分:-1)

首先,我对阔叶也不是很有经验,但我的背景让我很容易绕过(我想),并且有很多不同的方法可以做到这一点,它真的取决于你最终如何维护列表和你的经验水平。 正如你所说,你刚刚开始,我会告诉你我认为最简单的方法。

首先,假设您使用的是最新版本的演示站点。在这种情况下,主页实际上只是一个带有自定义模板的类别。如果您在" Home"中查看管理员应用程序类别并选择"产品"选项卡,您将看到演示商店主页上显示的4个热酱的列表。 这里要注意的重要一点是,它不是" Hot Sauces"类别,它是在管理应用程序中选择的特定子集,不仅可以控制显示的项目,还可以控制显示的项目数。

如果您在主页html模板中看到过代码,您会看到类似的内容:

<div class="row">
    <h3 class="text-center">
     The Heat Clinic's Top Selling Sauces
    </h3>
    <th:block th:if="${products}" id="products" class="group" th:each="product : ${products}" th:object="${product}" >
         <div class="col-sm-6 col-md-3"  th:if="${product.isActive()}"
                                 th:include="catalog/partials/productListItem">
         </div>
    </th:block>
</div>

这是演示站点中显示主页上热酱列表的代码。 CategoryController 检索该类别的产品列表并将它们放入模型中。

现在,将第二个产品列表添加到主页的absoloute 最简单方法使用相同的技术。在管理员看看&#34;营销&#34;选项卡,您将在&#34;特色产品&#34;中看到相同的4个产品列表。部分。据我所知,实际上并没有在演示站点的新版本中使用它。请注意,还有upsell和xsell产品列表,但为此目的,我将使用“特色产品”列表。我建议您现在将这些更改为其他产品,以便您可以看到主页的更改后来正在提取正确的列表。 在homepage.html中插入类似以下代码的内容(它与您在上面看到的代码类似):

 <div class="row">
    <h3 class="text-center">Top Selling Products</h3>

    <th:block th:if="${category?.featuredProducts}" id="featuredProducts" class="group" th:each="featuredProduct : ${category.featuredProducts}">
        <div class="col-sm-6 col-md-3"   th:with="product=${featuredProduct.product}" th:object="${featuredProduct.product}"
                             th:include="catalog/partials/productListItem">
        </div>
    </th:block>
 </div>

你做完了。

这肯定不是唯一的方式,甚至是最好的方式,除非你的最佳定义是&#34;它需要5分钟和6行HTML&#34;。  在某些时候,根据您的需求如何变化,您最终可能会创建一个特定的 HomepageController ,这种方法在这种情况下仍然有效,无需自定义管理界面,只要数据仍然存在由控制器输入模型。

仅供参考:主页模板位于 site / src / main / resources / webTemplates / layout / homepage.html