heyday/silverstripe-composeparser

Adds new syntax to SilverStripe's template engine

Installs: 5 195

Dependents: 1

Suggesters: 0

Security: 0

Stars: 6

Watchers: 29

Forks: 1

Type:silverstripe-module

0.1.1 2014-06-22 21:39 UTC

This package is auto-updated.

Last update: 2024-10-29 04:03:56 UTC


README

Allows the use of an html-like syntax for template includes, and new composition functionality for more reusable templates.

Installation (with composer)

composer require heyday/silverstripe-composeparser

Examples

A reusable button

button.ss

<% if $href %>
	<a class="btn<% if $type %> btn-$type<% end_if %><% if $size %> btn-$size<% end_if %> $classes" href="$href"><% composed %></a>
<% else %>
	<button class="btn<% if $type %> btn-$type<% end_if %><% if $size %> btn-$size<% end_if %> $classes"><% composed %></button>
<% end_if %>

Using the button in a template

<:button type="default">A regular button</:button>

<:button type="default" href="http://heyday.co.nz">A link to heyday</:button>

The resulting html

<button class="btn btn-default">A regular button</button>

<a class="btn btn-default" href="http://heyday.co.nz/">A link to heyday</a>

A reusable Nav

nav.ss

<ul class="nav <% if $classes %> $classes<% end_if %>"><% composed %></ul>

navitem.ss

<li class="nav-item<% if $FirstLast %> nav-$FirstLast<% end_if %><% if $classes %> $classes<% end_if %>">
	<% if $Composed %>
		<% composed %>
	<% else %>
		<:navlink href=$href />
	<% end_if %>
</li>

navlink.ss

<a href="$href" class="$LinkingMode"><% if $Composed %><% composed %><% else %>$MenuTitle<% end_if %></a>

Using the nav

Simple usage:
<:nav>
	<% loop $SomeSet %>
		<:navitem href=$Link />
	<% end_loop %>
</:nav>

Customised usage:
<:nav>
	<% loop $SomeSet %>
		<:navitem>
			<% if $SomeCondition %><span class="i-special-icon"></span><% end_if %>
			<navlink href=$Link/>
		</:navitem>
	<% end_loop %>
</:nav>