Dynamic List Content: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
|||
(8 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
<section begin="main content" /> | |||
Container controls (the [[List Container]], [[Fixed List Container]], [[Wrap List Container]], and [[Panel Container]]) can be setup by the skinner with dynamic content from a path or plugin. This is done by including the <content> tag in the control. It saves many lines of code as it's not necessary anymore to use static items for i.e. recently added movies. | |||
=== Examples === | === Examples === | ||
Line 10: | Line 11: | ||
Content filled from a path | Content filled from a path | ||
<syntaxhighlight lang="XML" enclose="div"> | <syntaxhighlight lang="XML" enclose="div"> | ||
<content target="music">musicdb://recentlyaddedalbums/</content> | <content target="music" sortby="artist" sortorder="ascending" limit="10">musicdb://recentlyaddedalbums/</content> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
It's also possible to fill a container with multiple <content> sources. | |||
=== Available attributes === | === Available attributes === | ||
Line 23: | Line 24: | ||
| '''target''' | | '''target''' | ||
| Specifies the context window of the content. This is only necessary for folder items as it defines which window should be activated. For example '''musicdb://albums/''' should have '''target="music"''' but '''musicdb://songs/''' does not need a target because it contains only songs which will be played via '''PlayMedia(...)''' rather than opened via '''ActivateWindow(target,path,return)''' | | Specifies the context window of the content. This is only necessary for folder items as it defines which window should be activated. For example '''musicdb://albums/''' should have '''target="music"''' but '''musicdb://songs/''' does not need a target because it contains only songs which will be played via '''PlayMedia(...)''' rather than opened via '''ActivateWindow(target,path,return)''' | ||
|- | |||
| '''limit''' | |||
| Limits the number of items in the container. | |||
|- | |||
| '''sortby''' | |||
| Sorts the list by the given value. | |||
|- | |||
| '''sortorder''' | |||
| Sort direction of the list: ascending or descending. | |||
|- | |||
| '''browse''' | |||
| Since v21: Control visibility of the "more..." button which can be appended to lists to open the window specified by the '''target''' attribute: | |||
* '''always''' : Add the button, if list contains at least one item. | |||
* '''auto''' : Add the button, if the list as provided by the core actually has more items than specified by the '''limit''' attribute. This is the default value. | |||
* '''never''' : Never add the button. | |||
|} | |} | ||
=== Available item properties (can be filled in plugins) === | === Available item properties (can be filled in plugins) === | ||
Line 37: | Line 52: | ||
|} | |} | ||
=== Override onclick action === | |||
You can define a custom <onclick> action for lists with dynamic content. | |||
<syntaxhighlight lang="XML" enclose="div"> | |||
<control type="list"> | |||
... | |||
<onclick>some_builtin</onclick> | |||
... | |||
<content>...</content> | |||
</control> | |||
</syntaxhighlight> | |||
<section end="main content" /> | |||
== See also == | == See also == | ||
'''Development:''' | '''Development:''' |
Latest revision as of 05:46, 30 September 2023
Container controls (the List Container, Fixed List Container, Wrap List Container, and Panel Container) can be setup by the skinner with dynamic content from a path or plugin. This is done by including the <content> tag in the control. It saves many lines of code as it's not necessary anymore to use static items for i.e. recently added movies.
Examples
Content filled from a plugin
<content>plugin://plugin.test.me?arg1=foo</content>
Content filled from a path
<content target="music" sortby="artist" sortorder="ascending" limit="10">musicdb://recentlyaddedalbums/</content>
It's also possible to fill a container with multiple <content> sources.
Available attributes
The available XML attributes for the content tag are as follows. Note that, as always, they're lower-case only, as XML is case-sensitive.
Attributes | Description |
---|---|
target | Specifies the context window of the content. This is only necessary for folder items as it defines which window should be activated. For example musicdb://albums/ should have target="music" but musicdb://songs/ does not need a target because it contains only songs which will be played via PlayMedia(...) rather than opened via ActivateWindow(target,path,return) |
limit | Limits the number of items in the container. |
sortby | Sorts the list by the given value. |
sortorder | Sort direction of the list: ascending or descending. |
browse | Since v21: Control visibility of the "more..." button which can be appended to lists to open the window specified by the target attribute:
|
Available item properties (can be filled in plugins)
Property | Description |
---|---|
node.target | Specifies the context window of the content. This overwrites the target attribute of the content tag. |
node.target_url | Overwrites the path of an item if it's clicked on. This can be used to show the content of the item's path in another container while entering a different path if the item is clicked on. An example would be Confluence's home screen where Movies shows the items of it's path as a submenu below while clicking the item always takes the user to movie titles. |
Override onclick action
You can define a custom <onclick> action for lists with dynamic content.
<control type="list"> ... <onclick>some_builtin</onclick> ... <content>...</content> </control>
See also
Development: