Page History
用户可以标记Magnolia 5里的任何位置为书签。这样做的目的是,用户能够收藏他们常用的应用、特性和页面。比起不得不通过导航去目标位置,直接点击书签更好。您可以在浏览器种直接标记位置,也可以使用收藏夹应用。您可以将Magnolia 5里的任何位置标记为书签。这样做的好处是,您可以收藏常用的应用、特性和页面。直接点击书签比导航去目标位置更为方便。您可以在浏览器中直接标记位置,也可以使用收藏夹应用。
Table of Contents |
---|
通过历史碎片标记位置
标记任何位置的能力是通过在URL结尾处附上一个历史标记位置的能力是通过在URL结尾处附上一个历史碎片来实现的。在Magnolia 5里,碎片跟踪应用的内部状态,识别应用的名称、打开的标签卡,有时也识别到被编辑页面的路径。这就使得用户能够标记非常精细的细节信息,例如在一个网站体系里选择一个特定页面。
...
对于每一个能够在历史里找到的页面,应用应该生成一个独一无二的历史记号。记号可以是一个简单的字符串,让应用能够通过分析它而返回到一个特定的状态。这个记号将会作为一个URL碎片(在位置栏里的“#”号之后)保存在浏览器历史中,当用户在历史里前后查找或是打开一个链接时,这个碎片则被传递回到应用程序。
碎片格式
历史碎片对自带的Shell应用使用以下句法:历史碎片对自带的Shell应用使用以下语法:
#shell:<shellAppName>:<parameter>
对普通的应用使用以下句法:对普通的应用使用以下语法:
#app:<appName>:<subAppId>:<parameter>
井号#是一个标准的分隔符,标志URL的碎片部分开始。井号后的部分则用冒号相互隔开。井号#是一个标准的分隔符,标志URL的碎片部分开始。井号后的部分用冒号相互隔开。
- 第一部分是类型标识符。它可以是应用或者Shell,取决于该应用是普通的应用,还是三个特殊的Shell应用之一(
applaucher
,pulse
,favorite)
。对于您自己的应用,这个字符串总是favorite
)。对于您自己的应用,这个字符串总是app
。 appName
识别应用。三个Shell应用的内部名称为标识应用。三个Shell应用的内部名称为applauncher
,pulse
和favorite
。普通应用的命名方式也可以预见:Pages应用为。普通应用的命名方式也可以预见:页面应用为pages
,Assets应用则是,数字资产应用则是assets
等等。您可以在应用配置里定义您自己的应用名。Magnolia 5使用应用名来在系统里识别应用。等等。您可以在应用配置里定义您自己的应用名称。Magnolia 5使用应用名称来在系统里识别应用。subAppId
识别子应用。子应用以选项卡的方式显示给用户。每个应用至少有一个子应用。Magnolia推荐您将您的主要子程序命名为标识子应用。子应用以标签卡的方式显示。每个应用至少有一个子应用。为保持一致性,Magnolia推荐您将您的主要子程序命名为main
,为保持一致性。如果应用没有提供其它子应用的话,。如果应用没有提供其它子应用的话,main
子应用可以是唯一的选项卡。创建内容应用时,将您的子应用命名为子应用可以是唯一的标签卡。创建内容应用时,可以将您的子应用命名为browser
和detail。
parameter是碎片当中最后的部分。您可以添加诸如preview这样的参数来指导应用在预览模式显示页面。使用分号来将多个参数分隔开。
parameter
是碎片当中最后的部分,参数之间使用分号隔开。您可以添加preview
这样的参数来指导应用在预览模式显示页面。
碎片样例
Shell的Pulse应用。
Code Block #shell:pulse
- Pages应用下的browser子应用。
页面应用里,打开browser子应用。树型视图中当前选中
页面当前在树型视图中被选中。/demo-project/about
页面。
Code Block #app:pages:browser;/demo-project/about:treeview
- Pages应用的detail子应用。
页面应用里,打开detail子应用。当前正在编辑
页面当前正被编辑。/demo-project/about
页面。
Code Block #app:pages:detail;/demo-project/about:edit
- Pages应用的detail子应用。
页面应用下,打开detail子应用。当前正在预览
页面当前正被预览。/demo-project/about
页面。
view
参数指导应用在预览模式显示页面。Code Block #app:pages:detail;/demo-project/about:view
关于subAppId的更多信息
历史碎片的subAppId
部分可以保存不仅仅是子应用名字的更多信息。Pages应用的每个detail子应用(选项卡)编辑一个特定的页面。在这种情况下,部分可以保存更多信息,不仅仅是子应用名称。例如,页面应用的每个detail子应用(标签卡)编辑一个特定的页面,这时的subAppId
同样包含到该页面的路径,例如#app:pages:detail;/demo-project/about
。子应用名和路径之间用分号隔开。这里不能用冒号,因为它会破坏这个历史记号。
每个subAppId
都是独一无二的。这就允许系统能够辨认已经打开的选项卡并将其作为焦点,而不是打开一个副本。如上所示,当Pages应用打开一个detail子应用时,它会给该子应用分配一个独一无二的ID,其中包含了子应用名称(都是独一无二的。这就使系统能够辨认已经打开的标签卡并将其作为焦点,而不是打开一个副本。上例中,当页面应用打开一个detail子应用时,它会给该子应用分配一个独一无二的ID,其中包含了子应用名称(detail
)和去页面的路径()和到页面的路径(/demo-project/about
)。如果用户已经打开这个页面,收到请求时应用则会将这个选项卡作为焦点。)。如果用户已经打开这个页面,收到请求时应用则会将这个标签卡作为焦点。
参数
您可以利用参数来传递附加信息,例如告诉detail子应用在预览模式显示页面。您可以利用参数来传递附加信息,例如,告诉detail子应用在预览模式显示页面。
Code Block |
---|
#app:pages:detail;/demo-project/about:view |
...
Code Block |
---|
example.com/.magnolia?mgnlLocale=en#app:pages:detail;/path/to/page:view |
例子:
treeview
: 在树型视图中显示被选中的项目。在树型视图中显示选中项。listview
: 在列表视图中显示被选中的项目。在列表视图中显示选中项。thumbnailview
: 在缩略视图中显示被选中的项目。在缩略视图中显示选中项。edit
: 打开detail子应用的编辑器。view
: 打开detail子应用的预览模式。
在浏览历史中来回移动
位置碎片是Magnolia 5的关键导航特性。它使得使用浏览器本身的来回按钮变的可能。这才是现代的网络应用应有的工作方式。与其防止用户来回点击,不如让他们凭直观感觉操作。如果点击返回看起来是回到前一个状态应做的事,那么应用应该支持这种感觉。
...
5的关键导航特性,它使得使用浏览器本身的来回按钮变的可能。这才是现代的Web应用程序应有的工作方式——与其防止用户来回点击,不如让他们凭直观感觉操作。如果点击返回看起来应该回到前一个状态,那么应用应该支持这种感觉。
应用之间的位置变化
Todo |
---|
Triggering location changes between apps. |
Favorites应用
触发应用之间的位置变化。 |
收藏夹应用
在系统里保留收藏夹(Favorites)的一个好处就是,它们自动就是便携的。如果您工作在多个电脑和不同的浏览器上,收藏的书签仍然可用。收藏夹功能对系统管理员来说也同样是个解脱,因为他们需要为很大的用户群提供服务。管理员可以创建一套预定义好的书签,让所有的用户都可以立即使用。在系统里保留Favorites的一个好处就是,它们自动就是便携的。如果您工作在多个电脑和不同的浏览器上,书签仍然可用。Favorites功能对系统管理员来说同样是个解脱,因为他们需要为很大的用户群提供这个功能。管理员可以创造一套预定义好的书签,让所有的用户都可以立即使用。
Bestpractice | ||
---|---|---|
| ||
|