Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

Magnolia 5可以让用户标记任何系统里的位置为书签。这个设计的想法是,用户能够收藏他们常用的应用,特性和页面。与其不得不通过导航去目标位置,不如直接点击书签。您可以在浏览器种直接标记位置,也可以使用Favorites应用。您可以将Magnolia 5里的任何位置标记为书签。这样做的好处是,您可以收藏常用的应用、特性和页面。直接点击书签比导航去目标位置更为方便。您可以在浏览器中直接标记位置,也可以使用收藏夹应用。

Table of Contents

通过历史碎片标记位置

标记任何位置的能力是通过在URL结尾处附上一个历史标记位置的能力是通过在URL结尾处附上一个历史碎片来实现的。在Magnolia 5里,碎片跟踪应用的内部状态。它识别应用的名称,打开的选项卡,有时候也识别到被编辑页面的路径。这就使得用户能够标记非常精细的细节信息,例如在一个网站体系里选择一个特定页面。5里,碎片跟踪应用的内部状态,识别应用的名称、打开的标签卡,有时也识别到被编辑页面的路径。这就使得用户能够标记非常精细的细节信息,例如在一个网站体系里选择一个特定页面。

历史碎片的概念并不是Magnolia 5特有的,而是我们是从Google Web Toolkit里引进的。GWT文档是这么解释它的:

对于每一个能够在历史里找到的页面,应用应该生成一个独一无二的历史记号。记号可以是一个简单的字符串,让应用能够通过分析它而返回到一个特定的状态。这个记号可以在浏览器历史中被保存为一个URL碎片(在位置栏中,“#”号之后),当用户在历史里前后查找或是打开一个链接时,这个碎片则被返回到应用程序。对于每一个能够在历史里找到的页面,应用应该生成一个独一无二的历史记号。记号可以是一个简单的字符串,让应用能够通过分析它而返回到一个特定的状态。这个记号将会作为一个URL碎片(在位置栏里的“#”号之后)保存在浏览器历史中,当用户在历史里前后查找或是打开一个链接时,这个碎片则被传递回到应用程序。

碎片格式

历史碎片对自带的Shell应用使用以下句法:历史碎片对自带的Shell应用使用以下语法:

#shell:<shellAppName>:<parameter>

对普通的应用使用以下句法:对普通的应用使用以下语法:

#app:<appName>:<subAppId>:<parameter>

井号#是一个标准的分隔符,标志URL的碎片部分开始。井号后的部分则用冒号相互隔开。井号#是一个标准的分隔符,标志URL的碎片部分开始。井号后的部分用冒号相互隔开。

  • 第一部分是类型标识符。它可以是应用或者Shell,取决于该应用是普通的应用,还是三个特殊的Shell应用之一(applaucherpulsefavorite)。对于您自己的应用,这个字符串总是favorite)。对于您自己的应用,这个字符串总是app
  • appName识别应用。三个Shell应用的内部名称为标识应用。三个Shell应用的内部名称为applauncherpulsefavorite。普通应用的命名方式也可以预见:Pages应用为。普通应用的命名方式也可以预见:页面应用为pages,Assets应用则是,数字资产应用则是assets等等。您可以在应用配置里定义您自己的应用名。Magnolia 5使用应用名来在系统里识别应用。等等。您可以在应用配置里定义您自己的应用名称。Magnolia 5使用应用名称来在系统里识别应用。
  • subAppId识别子应用。子应用以选项卡的方式显示给用户。每个应用至少有一个子应用。Magnolia推荐您将您的主要子程序命名为标识子应用。子应用以标签卡的方式显示。每个应用至少有一个子应用。为保持一致性,Magnolia推荐您将您的主要子程序命名为main,为保持一致性。如果应用没有提供其它子应用的话,。如果应用没有提供其它子应用的话,main子应用可以是唯一的选项卡。创建内容应用时,将您的子应用命名为子应用可以是唯一的标签卡。创建内容应用时,可以将您的子应用命名为browserdetail。
  • parameter是碎片当中最后的部分。您可以添加诸如preview这样的参数来指导应用在预览模式显示页面。使用分号来将多个参数分隔开。parameter是碎片当中最后的部分,参数之间使用分号隔开。您可以添加preview这样的参数来指导应用在预览模式显示页面。

碎片样例

  1. Shell的Pulse应用。

    Code Block
    #shell:pulse
  2. Pages应用下的browser子应用。

    页面应用里,打开browser子应用。树型视图中当前选中/demo-project/about

    页面当前在树型视图中被选中。

    页面。

    Code Block
    #app:pages:browser;/demo-project/about:treeview
  3. Pages应用的detail子应用。

    页面应用里,打开detail子应用。当前正在编辑/demo-project/about

    页面当前正被编辑。

    页面。

    Code Block
    #app:pages:detail;/demo-project/about:edit
  4. 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
Title最佳实践
Excerpt

当您在用户界面作出改动时,您最好总是通过移动位置来完成。如果您不这么做的话,用户创建的书签将不再准确,用户就无法回到他们原来的地方。您应该在设计应用时,将位置早些考虑进去。当您在用户界面作出改动时,最好总是通过位置变化来完成。否则,用户创建的书签将不再准确,用户就无法回到他们原来工作的位置。您应该在设计应用时,将位置早些考虑进去。