热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

关于saprfc:如何给-SAP-Spartacus-Storefront-创建新的页面

Spartacus是一个单页面的应用程序,但它依然应用页面的概念来辨别应用程序内的不同视图。Spartacus页面来自CMS,由插槽和组件形成。页面蕴含插槽,插槽蕴含组件。为了组织公共插槽和组件,Spartacus反对页面模板。页面模板蕴含布局以及可全局应用的组件,例如页眉和页脚局部。

Creating New Pages and Components

Spartacus 是一个单页面的应用程序,但它依然应用页面的概念来辨别应用程序内的不同视图。 Spartacus 页面来自 CMS,由插槽和组件形成。 页面蕴含插槽,插槽蕴含组件。 为了组织公共插槽和组件,Spartacus 反对页面模板。 页面模板蕴含布局以及可全局应用的组件,例如页眉和页脚局部。

Spartacus 从 CMS 接管每个页面,其中蕴含一个插槽和组件列表,该列表用于出现相应的组件。

Creating a New Page

Spartacus 中的页面基于应用负责 API 从 SAP Commerce 后端获取的 CMS 页面。 来自 SAP Commerce 端的数据定义了元数据,如 url、题目等,以及页面的构造。 构造意味着可用的局部类型以及调配给这些局部的 CMS 组件。 Spartacus 接管此信息并为该构造提供真正的组件,包含逻辑、ui、响应式设计、款式等。因为这种定义的办法,它须要 2 个步骤来创立新的 Spartacus 页面。 首先,须要在 SAP Commerce 端创立 CMS 页面。 其次,须要创立 Spartacus 端的组件并将其调配给 CMS 组件。

要在 Spartacus 中创立新页面,首先须要在 CMS 中创立相干页面。

SmartEdit 提供了一个直观的向导,您能够应用它为内容目录创立类别、内容、电子邮件和产品页面。您还能够向页面增加限度,以指定在何种条件下向客户显示页面。

SmartEdit 提供了一个直观的向导来帮忙您为内容目录创立页面。您能够创立类别、内容、电子邮件和产品页面。创立页面时,您能够抉择创立主页面或变体页面。

主页(Primary page)是始终向所有用户显示的默认版本。您创立的所有变体页面都基于主页面。您不能为主页调配限度。当不存在变体页面或不存在与以后显示条件匹配的变体页面时,即显示条件不满足利用于现有的工夫、用户组、类别等限度规定时,显示主页面变体页面。

变体页面(viration page)基于主页面,但增加了限度。限度指定在何种条件下显示变体页面,例如当属于特定组的用户查看页面时,或者当用户在指定日期期间抉择页面并且存在要在指定日期显示的变体页面时.您能够为变体页面增加类别、工夫、用户组和其余限度。您能够增加到变体页面的限度类型取决于页面的类型。

创立页面时,您应该留神以下事项:

  • 如果主页尚不存在,则您无奈创立变体页面。 变体页面必须基于主页面。
  • 您只能为类别和产品页面类型创立一个主页。
  • 您能够为内容页面类型(content page type)创立多个主页面。
  • 您只须要为内容页面指定一个页面标签(page label),并且它在内容目录版本中必须是惟一的。 您在主页上指定一个页面标签,它会被所有关联的变体页面继承。
  • 您能够基于单个主页面创立多个变体页面。
  • 您必须向变体页面增加至多一个限度。

SAP 建议您将页面增加到目录的暂存版本,以便您当前能够将更改与目录的在线版本同步。

具体的步骤能够参考这个页面

作为第一步,让咱们从 SAP Commerce 端定义开始。创立一个新的 CMS 页面须要为不同类型的类型创立多个实例。咱们先谈谈这些类型。

  • 模板 Template:模板定义了页面的各个局部。
  • ContentPage:它是页面自身。它蕴含诸如 url、应应用哪个模板、题目等值。 url 存储在这种类型的属性“标签”上。
  • ContentSlot:这是能够调配给 section 的类型,负责内容自身。它本人没有内容,但能够将组件调配给插槽。该组件蕴含基于 Spartacus 方调配的内容。
  • CMS 组件:规范商务零碎中有多种 CMS 组件可用,也能够创立新类型。如果不须要非凡属性,则能够应用通用 CMSFlexComponent 类型来创立组件实例。
  • ContentSlotForPage:此类型仅解决将 ContentSlot 实例调配给 ContentPage 实例的局部。局部由这种类型的“地位”属性解决。

也能够通过 Impex 实现创立。

创立这些实例的 Impex 始终具备雷同的构造,并且能够反复用于创立新的 CMS 页面。 只需依据您的须要批改内容。 它也能够在后盾手动实现,但我倡议应用 impex 并将其导入 HAC。 只需登录,转到控制台选项卡和 ImpEx 导入并粘贴批改后的 impex 内容。 Impex 看起来像这样:

$cOntentCatalog=electronics-spaContentCatalog
$cOntentCV=catalogVersion(CatalogVersion.catalog(Catalog.id[default=$contentCatalog]),CatalogVersion.version[default=Staged])[default=$contentCatalog:Staged]
$siteResource=jar:de.hybris.platform.spartacussampledataaddon.constants.SpartacussampledataaddonConstants&/spartacussampledataaddon/import/contentCatalogs/electronicsContentCatalog
 
###### Components and Pages ######
 
INSERT_UPDATE CMSFlexComponent;$contentCV[unique=true];uid[unique=true];name;flexType
;;ZBestsellerComponent;ZBestsellerComponent;ZBestsellerComponent
 
# Create the missing pages
INSERT_UPDATE ContentPage;$contentCV[unique=true];uid[unique=true];name;masterTemplate(uid,$contentCV);label;defaultPage[default='true'];approvalStatus(code)[default='approved'];homepage[default='false']
;;ZBestseller;Bestseller Page;ContentPage1Template;/ourbestseller
 
INSERT_UPDATE ContentSlot;$contentCV[unique=true];uid[unique=true];name;active;cmsComponents(uid,$contentCV)
;;Section2A-ZBestseller;Section 2A Slot for Bestseller Page;true;ZBestsellerComponent
 
INSERT_UPDATE ContentSlotForPage;$contentCV[unique=true];uid[unique=true];position[unique=true];page(uid,$contentCV)[unique=true];contentSlot(uid,$contentCV)[unique=true]
;;Section2A-ZBestseller;Section2A;ZBestseller;Section2A-ZBestseller
 
#Language settings
$language=en
INSERT_UPDATE ContentPage;$contentCV[unique=true];uid[unique=true];title[lang=$language]
;;ZBestseller;Our Bestseller

在 CMS 中创立新页面后,Spartacus 会主动增加它,无需任何配置。 Spartacus 中页面的 URL 与 CMS 标签雷同。

Creating a New Component

要在 Spartacus 中创立新组件,首先须要在 CMS 中创立相干组件。您能够通过将组件类型增加到内容槽来创立组件。增加组件类型时,会呈现组件编辑器供您定义组件的属性。 您能够定义的属性取决于组件所基于的组件类型。 创立组件后,它会呈现在“增加组件”面板的“保留的组件”选项卡中,可供您和其余用户增加到目录的其余页面。

创立组件时,您能够在组件编辑器中指定组件的属性。 它由以下三 (3) 个选项卡组成:

  • 内容 Content:容许您指定组件的名称和内容。 您能够在此处指定的内容取决于组件所基于的组件类型。 例如,创立 Paragraph 组件时,能够指定文本或 HTML 代码,创立简略的横幅组件时,能够指定要显示的图像以及内部或外部 URL 等。
  • 根本信息 Basic Info:显示组件的 ID,以及组件创立和上次批改的日期和工夫。
  • 可见性 Visibility:容许您更改组件的可见性并为其调配限度,如下所示:

(1)显示组件设置容许您暗藏可见组件并使暗藏组件可见。 请留神,如果您处于高级编辑模式,则只能使暗藏的零部件可见。
(2)限度编辑器容许您增加、编辑和删除限度。 请留神,如果可见性设置为 OFF,则限度不实用。

因为组件的内容依据其所基于的组件类型而有所不同,因而在形容每个组件类型的文档中形容了指定组件的内容。

具体步骤参考这个链接

在 CMS 中创立新组件后,须要将其映射到新的 Angular 组件。

以下示例显示了如何映射新的欲望清单组件。 在这种状况下,欲望清单组件具备以下文件构造:

而后你能够在 wishlist.module.ts 中映射欲望清单组件,如下所示:

/*...*/
imports: [
  ConfigModule.withConfig({
    cmsComponents: {
      YOUR_NEW_COMPONENT_TYPE: {
        component: WishlistComponent // The class of your Angular component
      }
    }
  })
]

此逻辑会在 CMS 中的任何地位注入 WishlistComponent。

Static Pages

您还能够通过创立动态页面来创立带有自定义组件的自定义页面。

以下过程形容了如何应用欲望清单组件创立动态欲望清单页面。

(1) 创立动态页面和动态路由。

以下示例在 Wishlist-page.module.ts 中创立了一个欲望清单页面:

import { RouterModule, Routes } from '@angular/router';
 import { CmsPageGuard } from '@spartacus/storefront';
 /*...*/

 const staticRoutes: Routes = [{
   path: 'wishlist',
   component: WishlistPageComponent // Custom page component,
   canActivate: [CmsPageGuard]
 }];

 /*...*/
 imports: [RouterModule.forChild(staticRoutes)];

(2) 将组件增加到页面,就像增加任何惯例 Angular 组件一样。

在以下示例中,组件增加到 wishlist-page.component.html 中:


   

推荐阅读
  • Python实现变声器功能(萝莉音御姐音)的方法及步骤
    本文介绍了使用Python实现变声器功能(萝莉音御姐音)的方法及步骤。首先登录百度AL开发平台,选择语音合成,创建应用并填写应用信息,获取Appid、API Key和Secret Key。然后安装pythonsdk,可以通过pip install baidu-aip或python setup.py install进行安装。最后,书写代码实现变声器功能,使用AipSpeech库进行语音合成,可以设置音量等参数。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 展开全部下面的代码是创建一个立方体Thisexamplescreatesanddisplaysasimplebox.#Thefirstlineloadstheinit_disp ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • 关键词:Golang, Cookie, 跟踪位置, net/http/cookiejar, package main, golang.org/x/net/publicsuffix, io/ioutil, log, net/http, net/http/cookiejar ... [详细]
  • 也就是|小窗_卷积的特征提取与参数计算
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了卷积的特征提取与参数计算相关的知识,希望对你有一定的参考价值。Dense和Conv2D根本区别在于,Den ... [详细]
  • ASP.NET2.0数据教程之十四:使用FormView的模板
    本文介绍了在ASP.NET 2.0中使用FormView控件来实现自定义的显示外观,与GridView和DetailsView不同,FormView使用模板来呈现,可以实现不规则的外观呈现。同时还介绍了TemplateField的用法和FormView与DetailsView的区别。 ... [详细]
  • 本文讨论了在shiro java配置中加入Shiro listener后启动失败的问题。作者引入了一系列jar包,并在web.xml中配置了相关内容,但启动后却无法正常运行。文章提供了具体引入的jar包和web.xml的配置内容,并指出可能的错误原因。该问题可能与jar包版本不兼容、web.xml配置错误等有关。 ... [详细]
  • Spring框架《一》简介
    Spring框架《一》1.Spring概述1.1简介1.2Spring模板二、IOC容器和Bean1.IOC和DI简介2.三种通过类型获取bean3.给bean的属性赋值3.1依赖 ... [详细]
  • 使用Spring AOP实现切面编程的步骤和注意事项
    本文介绍了使用Spring AOP实现切面编程的步骤和注意事项。首先解释了@EnableAspectJAutoProxy、@Aspect、@Pointcut等注解的作用,并介绍了实现AOP功能的方法。然后详细介绍了创建切面、编写测试代码的过程,并展示了测试结果。接着讲解了关于环绕通知的使用方法,并修改了FirstTangent类以添加环绕通知方法。最后介绍了利用AOP拦截注解的方法,只需修改全局切入点即可实现。使用Spring AOP进行切面编程可以方便地实现对代码的增强和拦截。 ... [详细]
  • 使用freemaker生成Java代码的步骤及示例代码
    本文介绍了使用freemaker这个jar包生成Java代码的步骤,通过提前编辑好的模板,可以避免写重复代码。首先需要在springboot的pom.xml文件中加入freemaker的依赖包。然后编写模板,定义要生成的Java类的属性和方法。最后编写生成代码的类,通过加载模板文件和数据模型,生成Java代码文件。本文提供了示例代码,并展示了文件目录结构。 ... [详细]
author-avatar
高玉成
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有