No preview available.
<pre><code class="language-[[+lang]]">[[+value]]</code>[[+label:notempty=`<span class="ui small top right attached label">[[+label]]<i class="copy link icon with tooltip" data-content="[[%romanesco.patterns.copy_tooltip]]"></i></span>`]]</pre>
No preview available.
<[[+divider_level]] class="ui [[+divider_section:is=`1`:then=`section`]] horizontal divider header">
[[+divider_icon_class:notempty=`<i class="muted [[+divider_text:empty=`fitted`]] [[+divider_icon_circular:is=`1`:then=`circular`]] [[+divider_icon_class]]"></i>`]]
[[+divider_text:notempty=`[[+divider_text]]`]]
</[[+divider_level]]>
No preview available.
<div class="ui [[+size]] [[+message_type]] message">
[[+close:is=`1`:then=`<i class="close icon"></i>`:else=``]]
[[+heading:notempty=`<div class="header">[[+heading]]</div>`]]
[[+content]]
</div>
No preview available.
<[[+level]] id="[[+value:stripAsAlias]]" class="ui [[+alignment]] header">
[[+value]]
</[[+level]]>
[[-<a class="anchor" href="[[~[[*id]]]]#[[+value:stripAsAlias:lcase]]"><i class="small linkify icon"></i></a>]]
No preview available.
<[[+level]] class="ui [[+alignment]] header">
[[+value]]
</[[+level]]>
<p class="subtitle">
[[+subtitle]]
</p>
No preview available.
<[[+level]] class="ui [[+alignment]] [[+icon_position]] header">
<i class="[[+icon_circular:is=`1`:then=`circular`]] [[+icon_class]]"></i>
<span class="content">
[[+value]]
[[+subtitle:notempty=`<span class="sub header">[[+subtitle]]</span>`]]
</span>
</[[+level]]>
No preview available.
<[[+level]] class="ui [[+alignment]] [[+icon_position]] header">
<span class="ui svg image">
[[$iconSVG? &classes=`regular` &lazy_load=`0` &uid=`[[+unique_idx]]`]]
</span>
<span class="content">
[[+value]]
[[+subtitle:notempty=`<span class="sub header">[[+subtitle]]</span>`]]
</span>
</[[+level]]>
No preview available.
<[[+level]] class="ui [[+title_classes]] [[+classes]] header">
[[+[[+title_field]]:empty=`[[+pagetitle]]`]]
</[[+level]]>
<p class="subtitle">
[[+overview_subtitle:empty=`[[+longtitle:empty=`[[+pagetitle]]`]]`]]
</p>
No preview available.
<[[+level]] class="ui [[+title_classes]] [[+classes]] header">
<a href="[[~[[+id]]]]">[[+[[+title_field]]:empty=`[[+pagetitle]]`]]</a>
</[[+level]]>
<p class="subtitle">
[[+overview_subtitle:empty=`[[+longtitle:empty=`[[+pagetitle]]`]]`]]
</p>
No preview available.
<a href="[[+link]]" class="ui [[+classes]] content image" [[+attributes]]>
[[$imgResponsive? &uid=`[[+url]]`]]
[[If?
&subject=`[[+credits]][[+caption]]`
&operator=`notempty`
&then=`<div class="caption">[[+caption]][[+credits:stripTags=`<em>,<strong>`:prepend=`<span class="credits meta">© `:append=`</span>`]]</div>`
]]
</a>
No preview available.
[[modifiedIf?
&subject=`[[+extension:lcase]]`
&operator=`EQ`
&operand=`svg`
&then=`imageSVG`
&else=`imageBasic[[+link:notempty=`Link`]]`
&toPlaceholder=`img_tpl`
]]
[[$[[+img_tpl]]?
&url=`[[+crops.default.url:empty=`[[+url]]`]]`
&width=`[[+crops.default.width:empty=`[[+width]]`]]`
&height=`[[+crops.default.height:empty=`[[+height]]`]]`
&classes=`rounded [[+classes:replace=`,== `:empty=`[[+img_size]] [[+options]] [[+position]]`]]`
&attributes=`[[+link_rel:replace=`,== `:prepend=`rel="`:append=`"`]] [[+new_window:eq=`1`:then=`target="_blank"`]]`
&layout_id=`[[+layout_id]]`
&layout_column=`[[+layout_column]]`
&uid=`[[+unique_idx]]`
]]
Wrapper for a Card CB image. Important note: it needs the imgResponsiveGalleryCaption chunk for proper calculation of the sizes values. Don't ask.
No preview available.
[[+url:notempty=`
[[[[modifiedIf?
&subject=`[[+extension:lcase]]`
&operator=`EQ`
&operand=`svg`
&then=`$svg? &classes=`ui svg image` &url=`[[+url]]` &alt=`[[+alt]]` &uid=`[[+unique_idx]]_[[+idx]]``
&else=`$imgResponsiveGalleryCaption? &alt=`[[+alt]]` &uid=`[[+unique_idx]]_[[+idx]]``
]]]]
`]]
Wrapper for a Gallery with captions image. It accepts regular images and SVGs.
No preview available.
[[+url:notempty=`
[[[[modifiedIf?
&subject=`[[+extension:lcase]]`
&operator=`EQ`
&operand=`svg`
&then=`$svg? &classes=`ui svg image` &url=`[[+url]]` &alt=`[[+alt]]` &uid=`[[+unique_idx]]_[[+idx]]``
&else=`$imgResponsiveGalleryCaption? &caption=`[[+caption]]` &alt=`[[+alt]]` &uid=`[[+unique_idx]]_[[+idx]]``
]]]]
`]]
Render Markdown content as HTML, inside a single column container.
No preview available.
<div id="markdown" class="ui vertical stripe segment [[setBackground? &background=`[[+background:empty=`[[++layout_background_default]]`]]`]]">
<div class="ui [[+container_type]] [[+alignment]] container">
[[$contentMarkdown]]
</div>
</div>
[[[[$contentMarkdown:contains=`</table>`:then=`loadAssets? &component=`table``]]]]
No preview available.
<div class="[[+segment_type:notempty=`ui [[+padding]] [[+segment_type]] segment [[+background:setBackground]]`]] [[+title_inflate]] cta" property="significantLink">
[[#[[+cta_id:empty=`0`]].content]]
</div>
No preview available.
[[!Rowboat?
&table=`modx_hits`
&tpl=`hitCount`
&limit=`1`
&columns=`hit_count`
&where=`{"hit_key":"[[+id]]"}`
&cacheResults=`0`
]]
No preview available.
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', '[[getContextSetting:default=`[[++google_analytics_ua]]`? &context=`[[*context_key]]` &setting=`google_analytics_ua`]]', 'auto');
ga('send', 'pageview');
</script>
No preview available.
[[getContextSetting:default=`[[++google_analytics_ua]]`:toPlaceholder=`ua_code`?
&context=`[[*context_key]]`
&setting=`google_analytics_ua`
]]
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=[[+ua_code]]"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', '[[+ua_code]]');
</script>
No preview available.
[[[[modifiedIf?
&subject=`organizationDataTheme`
&operator=`iselement`
&operand=`chunk`
&then=`organizationDataTheme`
&else=`organizationData`
&toPlaceholder=`organization_data`
]]]]
<script type="application/ld+json">
{
"@context" : "https://schema.org",
"@graph" : [
[[[[++client_type:eq=`organization`:then=`$[[+organization_data]]`]]]]
[[[[cbHasFields? &field=`[[++romanesco.cb_field_faq_id]]` &then=`$faqDataWrapper`]]]]
[[pdoCrumbs?
&tpl=`breadcrumbDataRow`
&tplCurrent=`breadcrumbDataCurrent`
&tplWrapper=`breadcrumbDataWrapper`
&outputSeparator=`,`
&where=`[{"alias_visible:!=":"0"}]`
]]
{
"@type" : "WebPage",
"name" : "[[*longtitle:empty=`[[*pagetitle]]`]]",
"description" : "[[*description]]",
"url" : "[[~[[*id]]? &scheme=`full`]]"
}
]
}
</script>
Optionally adds a couple of antispam fields to the form: honeypot, Recaptcha v2 or Recaptcha v3.
No preview available.
[[++formblocks.honeypot_field:notempty=`
[[++formblocks.honeypot_field:fbPrefixOutput:toPlaceholder=`honeypot_name`]]
<div class="sweetened field">
<label for="[[+honeypot_name]]">[[%formblocks.form.honeypot_field]]</label>
<input type="text" name="[[+honeypot_name]]" id="[[+honeypot_name]]" value="[[!+fb[[*id]].[[+honeypot_name]]]]">
</div>
`]]
[[[[modifiedIf?
&subject=`[[++romanesco.dev_mode:empty=`[[++formblocks.antispam_hooks]]`]]`
&operator=`contains`
&operand=`recaptchav2`
&then=`
!recaptchav2_render?
&tpl=`recaptchaOnSubmitV2`
`
]]]]
[[[[modifiedIf?
&subject=`[[++romanesco.dev_mode:empty=`[[++formblocks.antispam_hooks]]`]]`
&operator=`contains`
&operand=`recaptchav3`
&then=`
!recaptchav3_render?
&tpl=`recaptchaOnSubmitV3`
&token_key=`token-[[*id]]`
&action_key=`fb[[*id]]`
`
]]]]
[[!+fb[[*id]].error.recaptchav2_error:replace=`span==div`]]
[[!+fb[[*id]].error.recaptchav3_error:replace=`span==div`]]
Prepare the necessary placeholders for each step of a multi-page form. These placeholders will be forwarded to fbForm.
No preview available.
[[- Split steps into placeholders ]]
[[[[If?
&subject=`[[+multiple_steps]]`
&operator=`notempty`
&then=`splitString? &input=`,[[+multiple_steps]],` &delimiter=`,[[*id]],` &prefix=`section``
]]]]
[[[[If?
&subject=`[[+section.1]]`
&operator=`notempty`
&then=`splitString? &input=`[[+section.1]]` &delimiter=`,` &prefix=`prev_steps``
]]]]
[[[[If?
&subject=`[[+section.2]]`
&operator=`notempty`
&then=`splitString? &input=`[[+section.2]]` &delimiter=`,` &prefix=`next_steps``
]]]]
[[[[If?
&subject=`[[+multiple_steps]]`
&operator=`notempty`
&then=`splitString? &input=`[[+multiple_steps]]` &delimiter=`,` &prefix=`step``
]]]]
[[- Find out which form is used in previous / next steps ]]
[[[[If?
&subject=`[[+section.1]]`
&operator=`notempty`
&then=`pdoResources?
&parents=`-1`
&resources=`[[+section.1]]`
&tpl=`fbGetFormID`
&showHidden=`1`
&limit=`0`
&outputSeparator=`,`
&toPlaceholder=`prev_forms`
`
]]]]
[[[[If?
&subject=`[[+section.2]]`
&operator=`notempty`
&then=`pdoResources?
&parents=`-1`
&resources=`[[+section.2]]`
&tpl=`fbGetFormID`
&showHidden=`1`
&limit=`0`
&outputSeparator=`,`
&toPlaceholder=`next_forms`
`
]]]]
No preview available.
e.preventDefault();
var formData = $(this).serialize();
$.ajax({
type: 'POST',
url: '[[~[[*id]]? &scheme=`full` &mode=`ajax`]]',
data: formData,
dataType: 'json',
encode: true,
})
.done(function(data) {
// If we receive a success message, show an alert.
if (data.success) {
// Forge success message
//let message = '[[$richTextMessage:stripForJS?
// &size=`[[+form_size]]`
// &message_type=`visible success`
// &heading=`[[%formblocks.form.success_heading]]`
// &content=`[[%formblocks.form.success_message]]`
//]]';
let message = '<strong>[[%formblocks.form.success_heading]]<\/strong><br>';
message += data.message;
// Avoid stunning the visitor by delaying the success message and showing a dimmer
$('.ui.form#form-[[*alias]] .dimmer').addClass('active');
setTimeout(function() {
//$('.ui.form#form-[[*alias]] > div').replaceWith(message);
$('.ui.form#form-[[*alias]] .dimmer').removeClass('active');
$('.ui.form#form-[[*alias]]').form('clear');
$('body')
.toast({
message: message,
class: 'success',
//showIcon: 'exclamation circle',
//displayTime: 0,
closeIcon: true
})
;
}, 2000)
}
else {
console.log(data.errors);
let message = '<strong>[[%formblocks.form.validation_error_heading]]<\/strong><br>';
message += '[[%formblocks.form.validation_error_message]]<br>';
// Remove previously set error classes first
$('.ui.form#form-[[*alias]] .field.error').removeClass('error');
$('.ui.form#form-[[*alias]] .grouped.fields.error').removeClass('error');
$.each(data.errors, function(key, item) {
//message += key + '<br>';
$('#' + key + '.field').addClass('error');
$('#' + key + '.grouped.fields').addClass('error');
$('#' + key).parents('.field').addClass('error');
});
$('body')
.toast({
message: message,
class: 'error',
//showIcon: 'exclamation circle',
//displayTime: 0,
closeIcon: true
})
;
}
});
[[loadAssets? &component=`toast`]]
[[loadAssets? &component=`loader`]]
[[loadAssets? &component=`dimmer`]]
Custom tpl chunk for the recaptchav2 extra. This only loads the Recaptcha checkbox after the form becomes active, so it doesn't block rendering of the HTML.
No preview available.
<div class="g-recaptcha" data-sitekey="[[+site_key]]"></div>
<script>
window.addEventListener('DOMContentLoaded', function () {
if (window.grcLoaderAdded) {
return;
}
window.grcLoaderAdded = true;
// Just to make sure (e.g. IE10)
if (window.NodeList && !NodeList.prototype.forEach) {
NodeList.prototype.forEach = function (callback, thisArg) {
thisArg = thisArg || window;
for (var i = 0; i < this.length; i++) {
callback.call(thisArg, this[i], i, this);
}
};
}
var availableInputs = document.querySelectorAll('input, select');
if (!availableInputs || !availableInputs.forEach) {
return;
}
var loadGrcOnInteraction = function (ev) {
// Remove the event listeners; no longer need them after being called once
this.removeEventListener('focus', loadGrcOnInteraction);
this.removeEventListener('input', loadGrcOnInteraction);
this.removeEventListener('change', loadGrcOnInteraction);
// Avoid loading recaptcha more than once globally per page
if (window.grcLoaded) { return; }
window.grcLoaded = true;
// Inject recaptcha into the page head
var head = document.getElementsByTagName('head')[0]
var script = document.createElement('script')
script.src = 'https://www.google.com/recaptcha/api.js?hl=[[++cultureKey]]'
head.appendChild(script)
}
// Listen to a few different events. Focus would be ideal, but that doesn't trigger on custom selects. input/change are fallbacks.
availableInputs.forEach(function (input) {
input.addEventListener('focus', loadGrcOnInteraction);
input.addEventListener('input', loadGrcOnInteraction);
input.addEventListener('change', loadGrcOnInteraction);
});
});
</script>
Custom tpl chunk for the recaptchav2 extra, which also supports Recaptcha V3 now. This verifies the Recaptcha token with the Google API after the submit button is clicked.
No preview available.
<div id="rc-root-[[+action_key]]-[[+form_id]]">
<input type="hidden" name="[[+token_key]]">
<input type="hidden" name="[[+action_key]]" value="[[+form_id]]">
<input type="hidden" name="fb[[*id]]-submit" value="1">
</div>
<p class="recaptcha help">
[[%formblocks.form.recaptchav3_legal_notice]]
</p>
[[++formblocks.frontend_validation:isnot=`1`:then=`
<script>
window.addEventListener('DOMContentLoaded', function() {
var rcr = document.getElementById('rc-root-[[+action_key]]-[[+form_id]]');
if (!rcr) {
console.error('recaptcha root not found');
return;
}
var form = rcr.closest('form');
if (!form) {
console.error('recaptcha root does not appear to be inside a form');
return;
}
form.addEventListener('submit', function(e) {
e.preventDefault();
grecaptcha.ready(function() {
grecaptcha.execute('[[+site_key]]', {action: '[[+form_id]]'}).then(function(token) {
rcr.querySelector('[name="[[+token_key]]"]').value = token;
form.submit();
});
});
});
});
</script>
`]]
The regular JS is not compatible with frontend validation, because they are both triggered on submit. Instead, it's executed inside the onSuccess callback when frontend validation is active.
No preview available.
var rcr = document.getElementById('rc-root-[[+action_key]]-[[+form_id]]');
if (!rcr) {
console.error('recaptcha root not found');
return;
}
var form = rcr.closest('form');
if (!form) {
console.error('recaptcha root does not appear to be inside a form');
return;
}
e.preventDefault();
grecaptcha.ready(function() {
grecaptcha.execute('[[+site_key]]', {action: '[[+form_id]]'}).then(function(token) {
rcr.querySelector('[name="[[+token_key]]"]').value = token;
form.submit();
});
});
Default template for displaying the submitted value of a form field in an email message.
No preview available.
[[+field_name:empty=`[[+field_name_html]]`:stripString=`?`:stripWords=`[[$fbStripWordsLabel]]`:toPlaceholder=`label`]]
[[+fb[[+id]]-[[+field_name_html:empty=`[[+field_name]]`:fbStripAsAlias]]:nl2br:empty=``:toPlaceholder=`value`]]
[[+label:before=`<strong>`:after=`:</strong><br/>`]]
[[+value:replace=`,==<br/>`]][[+value:contains=`[[+option_other_value]]`:then=`, [[%formblocks.email.other_namely]] [[+fb[[+id]]-[[+field_name_html:empty=`[[+field_name]]`:fbStripAsAlias]]-other]]`]]<br/><br/>
Example row, to be copied for each available ContentBlocks form field. The xx should be replaced with the ID of the CB field. Some fields require a different format (see below)
Specfic email row for date range selectors.
No preview available.
<strong>[[+field_name]]:</strong><br/>
<i>[[+label_start]]:</i><br/>
[[+fb[[+id]]-[[+field_name_html:empty=`[[+field_name]]`:fbStripAsAlias]]-start:empty=``]]<br/><br/>
<i>[[+label_end]]</i><br/>
[[+fb[[+id]]-[[+field_name_html:empty=`[[+field_name]]`:fbStripAsAlias]]-end:empty=``]]<br/><br/>
Specific email row for Email field.
No preview available.
<strong>Email:</strong><br>
[[+fb[[+id]]-email:empty=``]]<br><br>
Specific email row for Terms and Conditions checkbox. It is currently empty, as the form cannot be submitted without agreeing to the terms.
No preview available.
<div id="fb[[*id]]-accept-terms" class="required inline field [[!If? &subject=`[[+fb[[*id]].error.fb[[*id]]-accept-terms]]` &operator=`notempty` &then=`error`]]">
<div class="ui field checkbox">
<input type="checkbox"
name="fb[[*id]]-accept-terms[]"
id="fb[[*id]]-accept-terms-1"
value="1"
tabindex="0"
class="hidden"
[[!+fb[[*id]].fb[[*id]]-accept-terms:FormItIsChecked=`1`]]>
<label>[[+field_text:replace=`[[+link]]==<a href="[[~[[+link_id]]]]">[[+link_text]]</a>`]]</label>
</div>
</div>
No preview available.
[[+field_name_html:empty=`[[+field_name]]`:fbStripAsAlias:fbPrefixOutput:toPlaceholder=`name`]]
<div class="[[+field_layout:is=`inherit`:then=`[[+form_layout]]`:else=`[[+field_layout]]`]] field [[!If? &subject=`[[+fb[[*id]].error.[[+name]]]]` &operator=`notempty` &then=`error`]] [[If? &subject=`[[+field_required]]` &operator=`EQ` &operand=`1` &then=`required`]]">
<label for="[[+name]]">[[+field_name:stripWords=`[[$fbStripWordsLabel]]`]]</label>
<textarea rows="[[+field_rows]]" name="[[+name]]" id="[[+name]]" placeholder="[[+field_placeholder]]">[[!+fb[[*id]].[[+name]]]]</textarea>
[[+fb[[*id]].error.[[+name]]]]
[[+field_helptext:notempty=`<span class="help">[[+field_helptext]]</span>`]]
</div>
No preview available.
[[+field_name_html:empty=`[[+field_name]]`:fbStripAsAlias:fbPrefixOutput:toPlaceholder=`name`]]
<div class="[[+field_width:after=` wide `]][[+field_layout:is=`inherit`:then=`[[+form_layout]]`:else=`[[+field_layout]]`]] field [[!If? &subject=`[[+fb[[*id]].error.[[+name]]]]` &operator=`notempty` &then=`error`]] [[If? &subject=`[[+field_required]]` &operator=`EQ` &operand=`1` &then=`required`]]">
<label for="[[+name]]">[[+field_name:stripWords=`[[$fbStripWordsLabel]]`]]</label>
<input type="[[+field_type]]" name="[[+name]]" id="[[+name]]" value="[[!+fb[[*id]].[[+name]]]]" placeholder="[[+field_placeholder]]">
[[+fb[[*id]].error.[[+name]]]]
[[+field_helptext:notempty=`<span class="help">[[+field_helptext]]</span>`]]
</div>
No preview available.
[[!+fb[[*id]].error.fb[[*id]]-math:toPlaceholder=`math_error`]]
<div class="[[+field_layout:is=`inherit`:then=`[[+form_layout]]`:else=`[[+field_layout]]`]] field [[++formblocks.ajax_mode:eq=`1`:then=`hidden`]] [[!+math_error:notempty=`error`]] required">
<label for="fb[[*id]]-math">
<strong>[[!+fb[[*id]].fb[[*id]]-op1]]</strong>
<i class="small fitted [[!+fb[[*id]].fb[[*id]]-operator:is=`-`:then=`minus`:else=`plus`]] icon"></i>
<strong>[[!+fb[[*id]].fb[[*id]]-op2]]</strong>
<i class="small fitted equals icon"></i>
</label>
<input type="text" name="fb[[*id]]-math" id="fb[[*id]]-math" value="[[!+fb[[*id]].fb[[*id]]-math]]" />
<input type="hidden" name="fb[[*id]]-op1" value="[[!+fb[[*id]].fb[[*id]]-op1]]" />
<input type="hidden" name="fb[[*id]]-op2" value="[[!+fb[[*id]].fb[[*id]]-op2]]" />
<input type="hidden" name="fb[[*id]]-operator" value="[[!+fb[[*id]].fb[[*id]]-operator]]" />
[[!+math_error:notempty=`<span class="help error">[[!+math_error]] [[!+math_error:contains=`!`:then=`Grab a calculator and fix yourself.`]]</span>`]]
[[+field_helptext:notempty=`<span class="help">[[+field_helptext]]</span>`]]
</div>
No preview available.
[[+field_name_html:empty=`[[+field_name]]`:fbStripAsAlias:fbPrefixOutput:toPlaceholder=`name`]]
[[+field_type:contains=`multiple`:then=`multiple`:toPlaceholder=`multiple`]]
[[modifiedIf?
&subject=`[[+multiple]][[+option_other]]`
&operator=`eq`
&operand=`1`
&then=`1`
&else=`0`
&toPlaceholder=`show_other`
]]
<div class="[[+field_width:after=` wide `]][[+field_layout:is=`inherit`:then=`[[+form_layout]]`:else=`[[+field_layout]]`]] field [[If? &subject=`[[+field_required]]` &operator=`EQ` &operand=`1` &then=`required`]] [[!If? &subject=`[[+fb[[*id]].error.[[+name]]]]` &operator=`notempty` &then=`error`]]">
<label for="[[+name]]">[[+field_name]]</label>
<select name="[[+name]][[+multiple:notempty=`[]`]]" id="[[+name]]" class="ui [[+field_type:empty=`dropdown`]] [[+option_other:is=`1`:then=`with other`]]" [[+multiple]]>
<option value="">[[+option_placeholder]]</option>
[[+rows]]
[[+show_other:is=`1`:then=`
<option value="[[+option_other_value]]" [[!+fb[[*id]].[[+name]]:FormItIsSelected=`[[+option_other_value]]`]]>
[[+option_other_value]]
</option>
`]]
</select>
[[+show_other:is=`1`:then=`
<div id="[[+name]]-other" class="other [[+check_other:is=``:then=`hidden`]]">
<input type="text" name="[[+name]]-other" value="[[!+fb[[*id]].[[+name]]-other]]" placeholder="[[%formblocks.field.other_namely]]">
</div>
`]]
[[+fb[[*id]].error.[[+name]]]]
[[+field_helptext:notempty=`<span class="help">[[+field_helptext]]</span>`]]
</div>
No preview available.
[[+field_name_html:empty=`[[+field_name]]`:fbStripAsAlias:fbPrefixOutput:toPlaceholder=`name`]]
[[+field_helptext:notempty=`<span class="help">[[+field_helptext]]</span>`:toPlaceholder=`help`]]
[[!+fb[[*id]].[[+name]]:contains=`[[+option_other_value]]`:then=`checked`:toPlaceholder=`check_other`]]
<div id="[[+name]]" class="[[+option_layout:empty=`grouped`]] [[+field_layout:is=`inherit`:then=`[[+form_layout]]`:else=`[[+field_layout]]`]] [[+field_type]] fields [[If? &subject=`[[+field_required]]` &operator=`EQ` &operand=`1` &then=`required`]] [[!If? &subject=`[[+fb[[*id]].error.[[+name]]]]` &operator=`notempty` &then=`error`]]">
<label for="[[+name]]">
[[+field_name]]
</label>
[[+helptext_position:eq=`top`:then=`[[+help]]`]]
[[+rows]]
[[+option_other:is=`1`:then=`
<div class="field">
<div class="ui collapsible [[+checkbox_type:empty=`[[+field_type]]`]] checkbox">
<input type="[[+field_type]]"
name="[[+name]][[+field_type:is=`checkbox`:then=`[]`]]"
id="[[+name]]-last"
class="hidden"
value="[[+option_other_value]]"
tabindex="[[+total:add=`1`]]"
data-group="no-group"
data-target="[[+name]]-other"
[[!+fb[[*id]].[[+name]]:FormItIsChecked=`[[+option_other_value]]`]]
[[+check_other]]>
<label>[[+option_other_value]]</label>
</div>
</div>
<div id="[[+name]]-other" class="field [[+check_other:is=``:then=`hidden`]]">
<input type="text" name="[[+name]]-other" value="[[!+fb[[*id]].[[+name]]-other]]" placeholder="[[+option_placeholder:empty=`[[%formblocks.field.other_namely]]`]]">
</div>
`]]
[[+fb[[*id]].error.[[+name]]]]
[[+helptext_position:eq=`bottom`:then=`[[+help]]`]]
</div>
Default template for displaying the submitted value of a form field through FormItRetriever.
No preview available.
[[+field_name_html:empty=`[[+field_name]]`:fbStripAsAlias:fbPrefixOutput=`fb[[+id]]-`:toPlaceholder=`name`]]
<input id="[[+name]]" type="hidden" name="[[+name]]" value="[[!+[[+name]]]]">
[[+[[+name]]-other:notempty=`<input id="[[+name]]-other" type="hidden" name="[[+name]]-other" value="[[!+[[+name]]-other]]">`]]
Example row, to be copied for each available ContentBlocks form field. The xx should be replaced with the ID of the CB field. Some fields require a different format (see below)
Specific data row for date range selectors.
No preview available.
[[+field_name_html:empty=`[[+field_name]]`:fbStripAsAlias:fbPrefixOutput=`fb[[+id]]-`:toPlaceholder=`name`]]
<input id="[[+name]]-start" type="hidden" name="[[+name]]-start" value="[[!+[[+name]]-start]]">
<input id="[[+name]]-end" type="hidden" name="[[+name]]-end" value="[[!+[[+name]]-end]]">
Specific data row for Email field.
No preview available.
<input id="fb[[+id]]-email" type="hidden" name="fb[[+id]]-email" value="[[!+fb[[+id]]-email]]">
A hidden field for multi-step forms, to indicate that this step is completed.
No preview available.
<input id="step-[[+id]]" type="hidden" name="step-[[+id]]" value="[[!+step-[[+id]]]]">
Specific data row for Terms and Conditions checkbox.
Default template for validating a form field with JS.
No preview available.
[[+field_name_html:empty=`[[+field_name]]`:fbStripAsAlias:fbPrefixOutput:toPlaceholder=`name`]]
[[+field_name_html:empty=`[[+field_name]]`:fbStripAsAlias:replace=`-==`]]: {
identifier: '[[+name]]',
errorLimit: 1,
rules: [
[[+field_type:is=`email`:then=`
{
type : 'email',
prompt : '[[$fbValidationPrompt:stripForJS? &type=`email` &uid=`[[+uid]]`]]'
},
`]]
[[+field_type:is=`url`:then=`
{
type : 'url',
prompt : '[[$fbValidationPrompt:stripForJS? &type=`url` &uid=`[[+uid]]`]]'
},
`]]
[[+field_type:is=`number`:then=`
{
type : 'number',
prompt : '[[$fbValidationPrompt:stripForJS? &type=`number` &uid=`[[+uid]]`]]'
},
`]]
[[+field_type:is=`password`:then=`
{
type : 'minLength[8]',
prompt : '[[$fbValidationPrompt:stripForJS? &type=`password` &uid=`[[+uid]]`]]'
},
`]]
{
type : 'empty',
prompt : '[[$fbValidationPrompt:stripForJS? &uid=`[[+uid]]`]]'
}
]
},
Example row, to be copied for each available ContentBlocks form field. The xx should be replaced with the ID of the CB field. Some fields require a different format (see below)
No preview available.
[[$fbValidationRow? &uid=`[[+uid]]`]]
Specific validation row for date range selectors.
No preview available.
[[+field_name_html:empty=`[[+field_name]]`:fbStripAsAlias:fbPrefixOutput:toPlaceholder=`name`]]
[[+field_name_html:empty=`[[+field_name]]`:fbStripAsAlias:replace=`-==`]]start: {
identifier: '[[+name]]-start',
rules: [{
type : 'empty',
prompt : '[[$fbValidationPrompt:stripForJS? &type=`date_start` &uid=`[[+uid]]`]]'
}]
},
[[+field_name_html:empty=`[[+field_name]]`:fbStripAsAlias:replace=`-==`]]end: {
identifier: '[[+name]]-end',
rules: [{
type : 'empty',
prompt : '[[$fbValidationPrompt:stripForJS? &type=`date_end` &uid=`[[+uid]]`]]'
}]
},
Specific validation row for Email field.
No preview available.
[[+field_name_html:empty=`[[+field_name]]`:fbStripAsAlias:replace=`-==`]]: {
identifier: 'fb[[*id]]-email',
rules: [{
type : 'email',
prompt : '[[$fbValidationPrompt:stripForJS? &name=`fb[[*id]]-email` &type=`email` &uid=`[[+uid]]`]]'
}]
},
Specific validation row for Math question field.
No preview available.
math: {
identifier: 'fb[[*id]]-math',
rules: [
{
type : 'empty',
prompt : '[[$fbValidationPrompt:stripForJS? &name=`fb[[*id]]-math` &type=`math` &uid=`[[+uid]]`]]'
},{
type : 'number',
prompt : '[[$fbValidationPrompt:stripForJS? &name=`fb[[*id]]-math` &type=`number` &uid=`[[+uid]]`]]'
}
]
},
Specific validation row for Terms and Conditions checkbox.
No preview available.
terms: {
identifier: 'fb[[*id]]-accept-terms-1',
rules: [{
type : 'checked',
prompt : '[[$fbValidationPrompt:stripForJS? &name=`fb[[*id]]-accept-terms` &type=`terms` &uid=`[[+uid]]`]]'
}]
},
No preview available.
[[cbGetFieldContent:toPlaceholder=`backgroundJSON`?
&field=`[[++romanesco.cb_field_background_id]]`
&resource=`[[+id]]`
&returnAsJSON=`1`
]]
.background.[[+alias]]:before {
background:
[[jsonGetObject?
&json=`[[+backgroundJSON]]`
&tpl=`globalBackgroundRowCSS@MobilePortraitRegular`
&object=`rows`
&outputSeparator=`,`
]]
!important
;
[[jsonGetObject?
&json=`[[+backgroundJSON]]`
&tpl=`globalBackgroundSettingsCSS`
&object=`settings`
]]
}
.background.[[+alias]]:after {
background: [[jsonGetObject:default=`transparent`? &json=`[[+backgroundJSON]]` &object=`background_color`]] !important;
}
@media
(min-width: 500px) {
.background.[[+alias]]:before {
background:
[[jsonGetObject?
&json=`[[+backgroundJSON]]`
&tpl=`globalBackgroundRowCSS@MobileLandscapeRegular`
&object=`rows`
&outputSeparator=`,`
]]
!important
;
}
}
@media
(min-width: 800px) {
.background.[[+alias]]:before {
background:
[[jsonGetObject?
&json=`[[+backgroundJSON]]`
&tpl=`globalBackgroundRowCSS@TabletRegular`
&object=`rows`
&outputSeparator=`,`
]]
!important
;
}
}
@media
(min-width: 1300px) {
.background.[[+alias]]:before {
background:
[[jsonGetObject?
&json=`[[+backgroundJSON]]`
&tpl=`globalBackgroundRowCSS@DesktopRegular`
&object=`rows`
&outputSeparator=`,`
]]
!important
;
}
}
[[++img_hidpi:eq=`1`:then=`
@media
(-webkit-min-device-pixel-ratio: 2),
(min-resolution: 192dpi) {
.background.[[+alias]]:before {
background:
[[jsonGetObject?
&json=`[[+backgroundJSON]]`
&tpl=`globalBackgroundRowCSS@MobileHiDPI`
&object=`rows`
&outputSeparator=`,`
]]
!important
;
}
}
@media
(-webkit-min-device-pixel-ratio: 2) and (min-width: 500px),
(min-resolution: 192dpi) and (min-width: 500px) {
.background.[[+alias]]:before {
background:
[[jsonGetObject?
&json=`[[+backgroundJSON]]`
&tpl=`globalBackgroundRowCSS@TabletHiDPI`
&object=`rows`
&outputSeparator=`,`
]]
!important
;
}
}
@media
(-webkit-min-device-pixel-ratio: 2) and (min-width: 1300px),
(min-resolution: 192dpi) and (min-width: 1300px) {
.background.[[+alias]]:before {
background:
[[jsonGetObject?
&json=`[[+backgroundJSON]]`
&tpl=`globalBackgroundRowCSS@DesktopHiDPI`
&object=`rows`
&outputSeparator=`,`
]]
!important
;
}
}
`]]
No preview available.
/*******************************
THEME VARIABLES
*******************************/
// DO NOT EDIT DIRECTLY!
// Generated by MODX when saving the Presentation settings under Configuration.
// If you want to tweak these variables manually, add them to site.variables instead.
// Fonts
// ---------------------------------------------------------------------
[[splitString?
&input=`[[+theme_font_header]]`
&delimiter=`:`
&prefix=`font_header`
]]
[[splitString?
&input=`[[+theme_font_page]]`
&delimiter=`:`
&prefix=`font_page`
]]
[[+theme_font_fallback:notempty=`@fontFallback: [[+theme_font_fallback]];`]]
[[+theme_font_header:notempty=`
@headerFont: '[[+font_header.1:replace=`+== `]]', @fontFallback;
`]]
[[+theme_font_page:notempty=`
@pageFont: '[[+font_page.1:replace=`+== `]]', @fontFallback;
`]]
[[If?
&subject=`[[+theme_font_header]][[+theme_font_page]][[+theme_font_fallback:notempty=`1`]]`
&operator=`eq`
&operand=`1`
&then=`
@headerFont: @fontFallback;
@pageFont: @fontFallback;
`
]]
// Base Sizes
// ---------------------------------------------------------------------
[[+theme_scale_ratio:notempty=`@scaleRatio: [[+theme_scale_ratio]];`]]
[[+theme_font_size:notempty=`@fontSize: [[+theme_font_size]]rem;`]]
// Brand Colors
// ---------------------------------------------------------------------
[[+theme_color_primary:notempty=`@primaryColor: #[[+theme_color_primary]];`]]
[[+theme_color_secondary:notempty=`@secondaryColor: #[[+theme_color_secondary]];`]]
[[+theme_color_primary_light:notempty=`@lightPrimaryColor: #[[+theme_color_primary_light]];`]]
[[+theme_color_secondary_light:notempty=`@lightSecondaryColor: #[[+theme_color_secondary_light]];`]]
[[+theme_page_background_color:notempty=`@pageBackground: #[[+theme_page_background_color]];`]]
// Logo
// ---------------------------------------------------------------------
@logoPath: '[[+logo_path]]';
@logoInvertedPath: '[[+logo_inverted_path]]';
@logoBadgePath: '[[+logo_badge_path]]';
@logoBadgeInvertedPath: '[[+logo_badge_inverted_path]]';
[[[[If?
&subject=`logo_path`
&operator=`notempty`
&then=`
getImageDimensions?
&image=`[[++base_path]][[+logo_path:replace=`/assets==assets`]]`
&phWidth=`logo_width`
&phHeight=`logo_height`
`
]]]]
[[+logo_width:notempty=`@logoWidth: [[+logo_width]];`]]
[[+logo_height:notempty=`@logoHeight: [[+logo_height]];`]]
[[+logo_target_width:notempty=`@logoTargetWidth: [[+logo_target_width]];`]]
// Border Radius
// ---------------------------------------------------------------------
[[+theme_border_radius:eq=`0`:then=`
@relativeBorderRadius: 0;
@absoluteBorderRadius: 0;
`]]
[[+theme_border_radius:gt=`0`:then=`
@relativeBorderRadius: @relative[[+theme_border_radius]]px;
@absoluteBorderRadius: @[[+theme_border_radius]]px;
`]]
Display a group of settings, as defined in the Configurations extra.
No preview available.
<h3 id="[[+label]]" class="ui header">
[[+label]]
</h3>
<table class="ui very compact celled table">
<thead>
<tr>
<th class="four wide">Key</th>
<th class="five wide">Label</th>
<th class="seven wide">Description</th>
</tr>
</thead>
<tbody>
[[migxLoopCollection?
&packageName=`clientconfig`
&classname=`cgSetting`
&where=`{"group":"[[+id]]"}`
&tpl=`configSettingsRowTR`
]]
</tbody>
</table>
No preview available.
<a class="item" href="[[+link]]#[[+name:stripAsAlias]]">
<span class="ui circular [[+label_classes]] label">[[+link:setPatternType]]</span>
[[+name]]
</a>
No preview available.
<div class="item">
<span class="ui circular label">[[setPatternType? &input=`pages`]]</span>
<a href="[[~[[+id]]]]">[[+pagetitle]]</a>
([[+id]])
<a href="[[++site_url:stripString=`hub.`]]manager/?a=resource/update&id=[[+id]]" class="ui basic tiny right floated edit label">Edit</a>
</div>
[[+wrapper]]
Default template for showing a list item with a link (if it has one) to the connected pattern. It also displays the pattern type (Atom, Molecule, Organism...) in a small badge.
No preview available.
[[includedPatternsLink:toPlaceholder=`pl_[[+id]]_[[+idx]].link`?
&input=`[[+category]]`
&pattern=`[[+name]]`
&prefix=`pl_[[+id]]_[[+idx]]`
]]
[[If?
&subject=`[[+pl_[[+id]]_[[+idx]].link]]`
&operator=`notempty`
&then=`
<a class="item" href="[[+pl_[[+id]]_[[+idx]].link]]">
<span class="ui circular [[+label_classes]] label">[[+pl_[[+id]]_[[+idx]].link:setPatternType]]</span>
[[+name]]
[[+assigned:eq=`1`:then=`<span class="ui right floated tiny label">[[%romanesco.patterns.assigned_chunk]]</span>`]]
</a>
`
&else=`
<div class="disabled item">
<i class="small circular modx icon"></i>
[[+name]]
</div>
`
&uid=`[[+id]]_[[+idx]]`
]]
Templates can also use the default format inside includedPatternsRow, but referencing that directly causes issues with leaking includedTemplatesRow and placeholders.
No preview available.
[[$includedPatternsRow?
&name=`[[+templatename]]`
&uid=`[[+id]]_[[+idx]]`
]]
No preview available.
<div class="ui fluid card">
<div class="content">
<a class="header" href="[[~[[+id]]]]" target="_blank">
[[+menutitle:empty=`[[+pagetitle]]`]]
</a>
<div class="meta">
[[+planning_date_due:notempty=`
<span class="date">
<i class="small calendar alternate outline icon"></i>
[[+planning_date_due:strtotime:date=`[[++romanesco.date_format_short]]`]]
</span>
`]]
</div>
<div class="description">
[[+longtitle]]
</div>
</div>
<div class="extra content">
[[+content_owner:notempty=`
<span class="left floated author">
<i class="small user icon"></i>
[[+content_owner:userinfo=`username`]]
</span>
`]]
<span class="right floated actions">
<a class="small button" href="[[~[[+id]]]]" target="_blank">
Visit
</a>
•
<a class="small button" href="[[getContextSetting? &context=`web` &setting=`site_url`]]manager/?a=resource/update&id=[[+id]]" target="_blank">
Edit
</a>
</span>
</div>
</div>
No preview available.
<div class="column [[+alias]]">
[[getResources?
&parents=`0`
&tvFilters=`status_progress==[[+alias]],content_priority==[[+priority]]`
&includeTVs=`1`
&tvPrefix=``
&tpl=`kanbanGridCard`
]]
</div>
No preview available.
<div class="row">
<div class="sixteen wide priority column">
<h4 class="ui disabled header">
[[+name]]
</h4>
</div>
</div>
<div class="row">
[[migxLoopCollection?
&packageName=`romanescobackyard`
&classname=`rmOption`
&where=`{"key":"status_progress"}`
&tpl=`kanbanGridColumn`
&addfields=`priority:[[+alias]]`
]]
</div>
No preview available.
<div class="step">
<svg class="icon" viewBox="0 0 100 100">
<use xlink:href="[[~[[*id]]? &scheme=`full`]]#status-[[+alias]]"></use>
</svg>
<div class="content mobile hidden">
<div class="title">[[+name]]</div>
<div class="description">[[+description]]</div>
</div>
</div>
No preview available.
<div class="ui [[+total:textToNumber]] unstackable top attached kanban steps">
[[+output]]
</div>
Display all ContentBlocks elements inside a given category.
No preview available.
[[Switch:toPlaceholder=`element_class`?
&get=`[[+type]]`
&c1=`BosonField` &do1=`cbField`
&c2=`BosonLayout` &do2=`cbLayout`
&c3=`BosonTemplate` &do3=`cbTemplate`
&default=`0`
]]
[[pdoResources?
&class=`[[+element_class]]`
&sortby=`sortorder`
&sortdir=`ASC`
&limit=`0`
&where=`{"category:=":"[[+id]]"}`
&tpl=`patternCategoryBosonRow`
&elementType=`[[+type]]`
&includeContent=`1`
&toPlaceholder=`cb_cat_[[+id]]`
]]
[[+cb_cat_[[+id]]:notempty=`
<[[+level]] [[+level:eq=`h2`:then=`id="[[+name]]"`]] class="ui primary header">
[[+name]]
</[[+level]]>
[[+description:prepend=`<p class="lead">`:append=`</p>`]]
[[+cb_cat_[[+id]]]]
`]]
Row template for each CB element. Displays basic information and included patterns. Status is retrieved from the description and a preview can't be included in this automated representation.
No preview available.
<div id="[[+name:stripAsAlias]]" class="ui pattern segment">
<div class="ui middle aligned equal width grid">
<div class="compact column">
[[+icon_type:is=`custom`:then=`
<img class="ui mini image" src="assets/components/romanescobackyard/icons/cb/[[+icon]]@2x.png" alt="Icon">
`:else=`
<img class="ui mini image" src="assets/components/contentblocks/img/icons/[[+icon]]@2x.png" alt="Icon">
`]]
</div>
<div class="column">
[[$headingBasic?
&level=`h3`
&value=`[[+name]]<span class="ui mini [[%romanesco.patterns.status_[[+pattern_status]]_color]] empty circular label" title="[[%romanesco.patterns.status_[[+pattern_status]]]]"></span>`
&alignment=`middle aligned`
]]
</div>
<div class="compact column">
[[+elementType:is=`BosonField`:then=`
<i class="muted info circle link icon with visibility toggle and tooltip"
data-target="#info-[[+name:stripAsAlias]]"
data-targetState="hidden"
data-content="[[%romanesco.patterns.preview_tooltip]]"
data-position="top center"></i>
`]]
<i class="muted code link icon with visibility toggle and tooltip"
data-target="#code-[[+name:stripAsAlias]]"
data-targetState="hidden"
data-content="[[%romanesco.patterns.code_tooltip]]"
data-position="top center"></i>
<i class="muted random link icon with visibility toggle and tooltip"
data-target="#connections-[[+name:stripAsAlias]]"
data-targetState="hidden"
data-content="[[%romanesco.patterns.connections_tooltip]]"
data-position="top center"></i>
</div>
</div>
[[$dividerBasic]]
<div class="meta">
<p>[[+description:empty=`[[+content_desc:nl2br:empty=`<em>Description not available.</em>`]]`]]</p>
</div>
[[$dividerBasic? ÷r_hidden=`1`]]
[[[[+elementType:is=`BosonField`:then=`setPatternPlaceholders? &cbField=`[[+name]]` &prefix=`cf_[[+id]]`]]]]
[[[[+elementType:is=`BosonLayout`:then=`setPatternPlaceholders? &cbLayout=`[[+name]]` &prefix=`cl_[[+id]]`]]]]
<div class="ui stackable doubling equal width grid">
[[+elementType:is=`BosonField`:then=`
<div id="info-[[+name:stripAsAlias]]" class="five wide column hidden preview element">
<table class="ui compact basic table">
<tr>
<td class="six wide"><strong>Type:</strong></td>
<td>[[+input]]</td>
</tr>
[[+input:is=`chunk`:then=`
<tr>
<td class="six wide"><strong>Chunk:</strong></td>
<td>
[[pdoResources?
&class=`modChunk`
&sortby=`id`
&limit=`1`
&where=`{"id:=":"[[+properties.chunk]]"}`
&tpl=`rawName`
]]
</td>
</tr>
`]]
[[+input:is=`repeater`:then=`
<tr>
<td colspan="2">
<span>Repeater rows:</span>
[[pdoResources:prepend=``?
&class=`[[+element_class]]`
&sortby=`sortorder`
&sortdir=`ASC`
&limit=`0`
&where=`{"parent:=":"[[+id]]"}`
&tpl=`patternBosonInnerRow`
]]
</td>
</tr>
`]]
</table>
</div>
`]]
<div id="code-[[+name:stripAsAlias]]" class="column hidden code element">
<pre class="language-html"><code>[[$displayRawTemplate? &uid=`[[+name]]`]]</code></pre>
[[+[[+cf]].wrapper_template:notempty=`<pre class="language-html"><code>[[+[[+cf]].wrapper_template]]</code></pre>`]]
[[+elementType:is=`BosonLayout`:then=`[[jsonToHTML:nl2br? &json=`[[+[[+cl]].settings_json]]`]]`]]
[[+elementType:is=`BosonField`:then=`[[jsonToHTML:nl2br? &json=`[[+[[+cf]].settings_json]]`]]`]]
</div>
</div>
<div id="connections-[[+name:stripAsAlias]]" class="hidden connections element">
<div class="ui divider"></div>
<div class="ui stackable equal width divided grid">
<div class="row">
<div class="column">
<h4 class="ui disabled header">[[%romanesco.patterns.included_patterns]]</h4>
[[$includedPatternsOuter?
&pattern_template=`patternLayout[[+elementType]]`
&pattern_id=`[[+id]]`
&prefix=`pl[[+id]]`
]]
</div>
<div class="column">
<h4 class="ui disabled header">[[%romanesco.patterns.referring_pages]]</h4>
[[$referringPatternsOuter?
&pattern_template=`patternLayout[[+elementType]]`
&pattern_id=`[[+id]]`
&prefix=`pl[[+id]]`
]]
</div>
</div>
</div>
</div>
</div>
Display all patterns inside a given category. The first level of nested categories is also included.
No preview available.
<[[+level]] [[+level:eq=`h2`:then=`id="[[+category]]"`]] class="ui primary header">
[[+category]]
</[[+level]]>
[[Switch:toPlaceholder=`element_class`?
&get=`[[+type]]`
&c1=`ElectronTV` &do1=`modTemplateVar`
&c2=`ElectronSS` &do2=`modSystemSetting`
&c3=`ElectronCC` &do3=`cgSetting`
&c4=`Atom` &do4=`modChunk`
&c5=`Molecule` &do5=`modChunk`
&c6=`Organism` &do6=`modChunk`
&c7=`Template` &do7=`modTemplate`
&c8=`Formula` &do8=`modSnippet`
&c9=`Computation` &do9=`modPlugin`
&default=`0`
]]
[[pdoResources?
&class=`[[+element_class]]`
&sortby=`[[+type:eq=`Template`:then=`templatename`:else=`name`]]`
&sortdir=`ASC`
&limit=`0`
&where=`{"category:=":"[[+id]]"}`
&tpl=`patternCategoryRow`
&elementType=`[[+type]]`
&includeContent=`1`
]]
[[pdoResources:prepend=`<div class="ui segment">`:append=`</div>`?
&class=`modCategory`
&sortby=`category`
&sortdir=`ASC`
&limit=`0`
&depth=`0`
&where=`[{"parent:=":"[[+id]]"}]`
&tpl=`patternCategoryParent`
&level=`h3`
]]
Row template for each pattern inside the parent category. Contains basic information, source code and a list of connected patterns. Status and preview code can be included via properties.
No preview available.
[[+name:lcase:empty=`[[+templatename:stripAsAlias]]`:toPlaceholder=`pl[[+id]].pattern_name`]]
<div id="[[+pl[[+id]].pattern_name]]" class="ui pattern segment">
[[$toolbarPattern?
&pattern_name=`[[+name]][[+templatename]]`
&pattern_status=`[[getElementDescription? &type=`[[+elementType]]` &name=`[[+name:empty=`[[+templatename]]`]]` &property=`elementStatus`]]`
]]
[[$dividerBasic]]
[[+description:prepend=`<p class="meta">`:append=`</p>`]]
<div class="ui stackable equal width grid">
[[+elementType:isnot=`ElectronTV`:and:isnot=`Computation`:then=`
<div id="preview-[[+pl[[+id]].pattern_name]]" class="six wide column preview element">
[[getElementDescription:empty=`<em class="meta">[[%romanesco.patterns.preview_not_available]].</em>`?
&type=`[[+elementType:lcase]]`
&name=`[[+name:empty=`[[+templatename]]`]]`
&property=`elementPreview`
]]
</div>
`]]
<div id="code-[[+pl[[+id]].pattern_name]]" class="column hidden code element">
[[+elementType:is=`Template`:then=`
<pre class="language-html"><code>[[$displayRawTemplate? &uid=`[[+templatename]]`]]</code></pre>
`]]
[[+elementType:is=`Computation`:then=`
<pre class="language-php"><code>[[$displayRawPlugin? &uid=`[[+name]]`]]</code></pre>
`]]
[[+elementType:is=`Formula`:then=`
<pre class="language-php"><code>[[$displayRawElement? &uid=`[[+name]]`]]</code></pre>
`]]
[[+elementType:in=`Atom,Molecule,Organism`:then=`
<pre class="language-html"><code>[[$displayRawElement? &uid=`[[+name]]`]]</code></pre>
`]]
[[+elementType:is=`ElectronTV`:then=`
[[jsonToHTML? &json=`[[tvToJSON? &tv=`[[+name]]` &showName=`1` &showSource=`0` &optionsDelimiter=`0`]]`]]
`]]
</div>
</div>
<div id="connections-[[+pl[[+id]].pattern_name]]" class="hidden connections element">
[[$dividerBasic]]
<div class="ui stackable equal width divided grid">
<div class="row">
<div class="column">
<h4 class="ui disabled header">
[[%romanesco.patterns.[[+elementType:is=`ElectronTV`:then=`assigned_templates`:else=`included_patterns`]]]]
</h4>
[[[[If?
&subject=`[[+elementType]]`
&operator=`is`
&operand=`ElectronTV`
&then=`
$referringPatternsOuter?
&pattern_list=`assignedTemplates`
&pattern_template=`patternLayout[[+elementType]]`
&pattern_name=`[[+pl[[+id]].pattern_name]]`
&prefix=`pl[[+id]]`
`
&else=`
$includedPatternsOuter?
&pattern_list=`includedPatterns`
&pattern_template=`patternLayout[[+elementType]]`
&pattern_name=`[[+pl[[+id]].pattern_name]]`
&prefix=`pl[[+id]]`
`
&uid=`[[+id]]_[[+idx]]`
]]]]
</div>
<div class="column">
<h4 class="ui disabled header">
[[%romanesco.patterns.[[+elementType:is=`Template`:then=`assigned_tvs`:else=`referring_patterns`]]]]
</h4>
[[[[If?
&subject=`[[+elementType]]`
&operator=`is`
&operand=`Template`
&then=`
$includedPatternsOuter?
&pattern_list=`assignedTVs`
&pattern_template=`patternLayout[[+elementType]]`
&pattern_name=`[[+pl[[+id]].pattern_name]]`
&prefix=`pl[[+id]]`
`
&else=`
$referringPatternsOuter?
&pattern_list=`referringPatterns`
&pattern_template=`patternLayout[[+elementType]]`
&pattern_name=`[[+pl[[+id]].pattern_name]]`
&prefix=`pl[[+id]]`
`
&uid=`[[+id]]_[[+idx]]`
]]]]
</div>
</div>
</div>
</div>
</div>
No preview available.
<div class="[[!If? &subject=`[[+date:strtotime]]` &operator=`GT` &operand=`[[!Time]]` &then=`future` &else=`past`]] event">
<div class="label">
<i class="[[+icon]] icon"></i>
</div>
<div class="content">
[[+date:notempty=`
<div class="date">
[[+date:date=`[[++romanesco.date_format_long]]`]]
</div>
`]]
[[+title:notempty=`
<div class="summary">
[[+title]]
</div>
`]]
[[+description:notempty=`
<div class="expandable extra text">
[[+description]]
</div>
`]]
</div>
</div>
No preview available.
[[Switch:toPlaceholder=`status_priority_[[+idx]]`?
&get=`[[+status_progress:eq=`done`:then=`[[+status_health]]`:else=`[[+status_progress]]`]]`
&c1=`todo` &do1=`4`
&c2=`doing` &do2=`2`
&c3=`review` &do3=`1`
&c4=`stable` &do4=`5`
&c5=`successful` &do5=`6`
&c6=`problematic` &do6=`3`
&c7=`expired` &do7=`7`
&default=`0`
]]
[[Switch:toPlaceholder=`status_class_[[+idx]]`?
&get=`[[+status_progress:eq=`done`:then=`[[+status_health]]`:else=`[[+status_progress]]`]]`
&c1=`stable` &do1=`positive`
&c2=`successful` &do2=`positive`
&c3=`problematic` &do3=`negative`
&c4=`expired` &do4=`warning`
&default=``
]]
[[SeoTabIndexation:toPlaceholder=`status_indexation_[[+idx]]`? &resource=`[[+id]]`]]
[[migxLoopCollection?
&packageName=`romanescobackyard`
&classname=`rmTask`
&where=`{"resource_id":"[[+id]]"}`
&tpl=`tagItemTooltip`
&toPlaceholder=`status_tasks_[[+idx]]`
]]
<tr class="[[+status_class_[[+idx]]]][[+published:eq=`0`:then=` disabled`]]">
<td class="indicator">
<svg class="icon" viewBox="0 0 100 100">
[[+status_progress:eq=`done`:then=`
<use xlink:href="[[~[[*id]]? &scheme=`full`]]#status-[[+status_health:replace=`stable==done`]]"></use>
`:else=`
<use xlink:href="[[~[[*id]]? &scheme=`full`]]#status-[[+status_progress]]"></use>
`]]
</svg>
<span class="hidden priority">
[[+status_priority_[[+idx]]]]
</span>
</td>
<td class="selectable">
<a class="edit" href="[[getContextSetting? &context=`web` &setting=`site_url`]]manager/?a=resource/update&id=[[+id]]" target="_blank">[[+id]]</a>
</td>
<td class="selectable metadata">
<a class="level-[[+level]]" href="[[~[[+id]]]]" target="_blank">[[+pagetitle]]</a>
<a class="ui empty floating [[+description:eq=``:then=`red`:else=`green`]] circular label with tooltip onclick" title="Description" data-title="Description" data-content="[[+description:empty=`This field is still empty.`]]" data-variation="basic"></a>
<a class="ui empty floating [[+longtitle:eq=``:then=`red`:else=`green`]] circular label with tooltip onclick" title="Longtitle" data-title="Longtitle" data-content="[[+longtitle:empty=`This field is still empty.`]]" data-variation="basic"></a>
</td>
<td class="ui blue labels">
[[+status_tasks_[[+idx]]]]
</td>
[[+status_indexation_[[+idx]]:notempty=`
<td class="indexation">
[[+status_indexation_[[+idx]]:contains=`noindex`:or:contains=`nofollow`:then=`<i class="attention icon"></i>`]]
[[+status_indexation_[[+idx]]]]
</td>
`]]
<td class="owner">
[[+content_owner:userinfo=`username`]]
</td>
<td class="due date">
<span class="hidden sort">[[+planning_date_due]]</span>
[[+planning_date_due:strtotime:date=`[[++romanesco.date_format_long]]`]]
</td>
</tr>
[[+wrapper]]
No preview available.
{
"label": "[[+pagetitle]] ([[+id]])",
"url": "[[~[[+id]]? &scheme=`full`]]",
[[*backstop_reference_url:notempty=`
"referenceUrl": "[[*backstop_reference_url]][[+uri]]",
`]]
"delay": [[*backstop_delay]],
"hideSelectors": [[*backstop_hide_selectors:empty=`[]`]],
"removeSelectors": [[*backstop_remove_selectors:empty=`[]`]],
"hoverSelectors": [[*backstop_hover_selectors:empty=`[]`]],
"clickSelectors": [[*backstop_click_selectors:empty=`[]`]],
"keyPressSelectors": [[*backstop_keypress_selectors:empty=`[]`]],
"postInteractionWait": [[*backstop_post_interaction_wait]],
"selectors": [[*backstop_selectors:empty=`[]`]],
"selectorExpansion": [[*backstop_selector_expansion]],
"expect": [[*backstop_selector_expect]],
"misMatchThreshold": [[*backstop_mismatch_threshold]],
"requireSameDimensions": true
}
No preview available.
<[[+level:replace=`span==div`]] class="ui [[+level:is=`span`:then=`tiny`]] [[+alignment]] header">
[[+heading]]
</[[+level:replace=`span==div`]]>
[[+content]]
No preview available.
<div class="ui padded [[+pointer]] pointing segment secondary" property="itemReviewed" typeof="Organization">
<meta property="legalName" content="[[++site_name]]">
<p class="[[+text_size]] quote" property="review">[[+introtext:stripString=`<p>`:stripString=`</p>`]]</p>
</div>
No preview available.
<div class="ticket-file[[+deleted]][[+new]]" data-id="[[+id]]">
<a href="[[+url]]" class="ticket-file-link" title="[[+file]]" target="_blank">
<div class="ticket-file-image-wrapper">
[[+file]]
</div>
</a>
<div class="ticket-file-meta">
<a href="#" class="ticket-file-delete">[[%ticket_file_delete]]</a>
<a href="#" class="ticket-file-restore">[[%ticket_file_restore]]</a>
<br/>
<a href="#" class="ticket-file-insert">[[%ticket_file_insert]]</a>
<br/>
<span class="ticket-file-size">[[+size]] Kb</span>
</div>
<div class="ticket-file-template">
<a href="[[+url]]">
[[+name]]
</a>
</div>
</div>
<!--tickets_thumb <img src="[[+thumb]]" class="ticket-file-image" />-->
<!--tickets_deleted deleted-->
<!--tickets_new new-->
No preview available.
<div id="ticket-files-list" class="ui basic segment white">
<div class="ui four stackable left aligned cards">
[[+files]]
</div>
<div class="ui basic center aligned segment">
<a id="ticket-files-select" class="ui tiny compact basic icon button" href="javascript:;">Select images <i class="plus icon"></i></a>
</div>
</div>
<div id="ticket-files-container" data-action="ticket/file/upload">
<div id="ticket-files-progress">
<span id="ticket-files-progress-count">0/0</span>
<span id="ticket-files-progress-percent">0%</span>
<div id="ticket-files-progress-bar"></div>
</div>
</div>
No preview available.
<div class="ui card ticket-file[[+deleted]][[+new]]" data-id="[[+id]]">
<a href="[[+url]]" class="ticket-file-link image" title="[[+file]]" target="_blank">
<img src="[[+thumb]]" class="ticket-file-image"/>
</a>
<div class="ticket-file-meta">
<a href="#" class="ticket-file-delete">[[%ticket_file_delete]]</a>
<a href="#" class="ticket-file-restore">[[%ticket_file_restore]]</a>
<br/>
<a href="#" class="ticket-file-insert">[[%ticket_file_insert]]</a>
<br/>
<span class="ticket-file-size">[[+size]] Kb</span>
</div>
<div class="ticket-file-template">
<a href="[[+url]]" title="[[+name]]">
<img src="[[+thumb]]"/>
</a>
</div>
</div>
<!--tickets_deleted deleted-->
<!--tickets_new new-->
No preview available.
<div class="ui attached segment">
<h3 class="ui header">[[+pagetitle]]</h3>
<div class="content">[[+content]]</div>
</div>
<h5 class="ui bottom attached secondary segment">[[+modx.user.id:userinfo=`username`]]</h5>
No preview available.
<div class="[[+content_type:eq=`extra`:then=`extra`]] content">
[[If?
&subject=`[[+right]]`
&operator=`notempty`
&then=`
<div class="right floated">
[[+right]]
</div>`
]]
[[If?
&subject=`[[+content_type]]`
&operator=`inarray`
&operand=`header,meta,description`
&then=`
<div class="[[+content_type]]">
[[+main]]
</div>`
&else=`[[+main]]`
]]
</div>
No preview available.
<div class="ui nested four column stackable doubling [[+padding]] [[+alignment]] [[+divider]] grid">
<div class="row">
<div class="column">[[+col_1]]</div>
<div class="column">[[+col_2]]</div>
<div class="column">[[+col_3]]</div>
<div class="column">[[+col_4]]</div>
</div>
</div>
No preview available.
<div class="ui nested stackable doubling equal width grid">
<div class="row">
<div id="preview-[[+unique_idx]]" class="[[+preview:contains=`field`:then=`ui form`]] [[+sidebar_width]] wide preview column">
[[+preview]]
[[-<i class="small circular code link icon with tooltip onclick"
data-html="[[$codeSnippet:htmlent? &value=`[[+code_field_raw]]` &lang=`html` &label=`[[%romanesco.patterns.example_label]]`]]"
data-position="right center">
</i>]]
</div>
<div id="code-[[+unique_idx]]" class="code column hidden element">
[[+code]]
</div>
</div>
</div>
No preview available.
[[If?
&subject=`[[+segment_type]]`
&operator=`notempty`
&then=`
<div class="ui [[+padding]] [[+alignment]] [[+segment_type]] [[+background:setBackground]] segment">
[[+main]]
</div>
`
&else=`[[+main]]`
]]
No preview available.
<div class="ui nested one column stackable doubling [[+padding]] [[+alignment]] grid">
<div class="column">[[+main]]</div>
</div>
No preview available.
<div class="ui nested three column stackable doubling [[+padding]] [[+alignment]] [[+divider]] grid">
<div class="row">
<div class="column">[[+col_1]]</div>
<div class="column">[[+col_2]]</div>
<div class="column">[[+col_3]]</div>
</div>
</div>
No preview available.
<div class="ui nested two column stackable doubling [[+padding]] [[+alignment]] [[+divider]] grid">
<div class="row">
<div class="column">[[+col_1]]</div>
<div class="column">[[+col_2]]</div>
</div>
</div>
No preview available.
<div class="ui [[+classes]] list">
[[migxLoopCollection?
&packageName=`romanescobackyard`
&classname=`rmExternalLink`
&where=`{"resource_id":"[[*id]]"}`
&sortConfig=`[{"sortby":"number","sortdir":"ASC"}]`
&tpl=`externalNavItemList`
]]
</div>
No preview available.
[[pdoCrumbs?
&showHome=`1`
&tplWrapper=`breadcrumbOuter`
&tpl=`breadcrumbRow`
&tplHome=`breadcrumbHome`
&tplCurrent=`breadcrumbCurrent`
&outputSeparator=``
[[+alias_visibility:isnot=`1`:then=`&where=`[{"alias_visible:!=":"0"}]``]]
]]
No preview available.
<nav id="menu" class="ui [[++navbar_size:default=`large`]] secondary [[++navbar_sticky:is=`1`:then=`sticky`]] menu">
<div class="ui container">
<div class="item branding">
[[[[modifiedIf?
&subject=`logoTheme`
&operator=`iselement`
&operand=`chunk`
&then=`$logoTheme`
&else=`$logo`
]]]]
</div>
[[[[If?
&subject=`[[++navbar_level]]`
&operator=`lte`
&operand=`1`
&then=`$mainNavItems? &classes=`right menu``
&else=`$mainNavItemsDropdown? &classes=`right menu``
]]]]
[[$mainNavItemsTheme]]
<div class="item toc">
<button class="ui right labeled icon button">
<i class="sidebar icon"></i>
<span>[[%romanesco.menu.toc]]</span>
</button>
</div>
</div>
</nav>
[[[[If?
&subject=`[[++navbar_level]]`
&operator=`eq`
&operand=`3`
&then=`loadAssets? &component=`popup``
]]]]
[[[[If?
&subject=`[[++navbar_level]]`
&operator=`eq`
&operand=`2`
&then=`loadAssets? &component=`dropdown-css``
]]]]
No preview available.
<div class="[[+classes]]">
[[pdoMenu?
&startId=`0`
&level=`1`
&levelClass=`level-`
&resources=`[[+excluded_resources]]`
&tplOuter=`navWrapper`
&tpl=`navItem`
]]
</div>
No preview available.
<ul id="menu-accordion">
[[!pdoMenu?
&startId=`0`
&level=`[[+level:empty=`[[++navbar_level]]`]]`
&levelClass=`level-`
&selfClass=`current`
&resources=`[[+excluded_resources]]`
&tplOuter=`navWrapper`
&tpl=`navItemAccordionParent`
&tplParentRow=`navItemAccordionParent`
&tplParentRowActive=`navItemAccordionParent@Active`
&tplInnerRow=`navItemAccordion`
&checkPermissions=`list`
&cache=`1`
&cache_key=`[[!+modx.user.id:memberof=`[[++romanesco.member_groups_frontend]]`:then=`nav_[[*context_key]]_member`:else=`nav_[[*context_key]]_anonymous`]]`
]]
</ul>
No preview available.
<ul id="menu-dropdown" class="[[+classes]]">
[[pdoMenu?
&startId=`0`
&level=`[[++navbar_level:default=`2`]]`
&levelClass=`level-`
&selfClass=`current`
&resources=`[[+excluded_resources]]`
&tplOuter=`navWrapper`
&tpl=`navItemDropdownParent`
&tplCategoryFolder=`navItemDropdownCategory`
&tplInner=`navWrapper`
&tplInnerRow=`navItemDropdown`
]]
</ul>
No preview available.
<nav id="menu-vertical" class="ui [[++navbar_size:default=`large`]] secondary vertical [[++navbar_level:lte=`1`:then=`inverted`:else=`accordion`]] menu" role="navigation">
<div class="item branding">
[[[[modifiedIf?
&subject=`logoTheme`
&operator=`iselement`
&operand=`chunk`
&then=`$logoTheme? &classes=`inverted``
&else=`$logo? &classes=`inverted``
]]]]
</div>
[[[[If?
&subject=`[[++navbar_level]]`
&operator=`lte`
&operand=`1`
&then=`$mainNavItems`
&else=`$mainNavItemsAccordion`
]]]]
[[$mainNavItemsTheme]]
<div class="item toc">
<button class="ui right labeled inverted basic icon button">
<i class="sidebar icon"></i>
<span>[[%romanesco.menu.toc]]</span>
</button>
</div>
</nav>
No preview available.
<nav id="off-canvas" class="ui right inverted vertical accordion wide sidebar menu">
<div class="item home">
<a href="[[~[[++site_start]]]]" class="ui image brand badge">
[[%romanesco.menu.brand]]
</a>
<button class="ui basic inverted close icon button" title="[[%romanesco.menu.close_title]]">
<i class="large close icon"></i>
</button>
</div>
[[[[++navbar_level:lte=`1`:then=`$mainNavItemsAccordion? &level=`3``]]]]
[[$offCanvasNavItemsTheme]]
</nav>
No preview available.
<nav id="submenu" class="ui large inverted pointing menu">
<div class="ui container">
[[pdoMenu?
&parents=`[[UltimateParent]]`
&resources=`[[+excluded_resources]]`
&level=`1`
&tplOuter=`navWrapper`
&tpl=`navItem`
&hideSubMenus=`1`
]]
</div>
</nav>
No preview available.
<a id="submenu-header" class="ui tiny header for submenu-[[++submenu_type:stripString=`[[++sidebar_position]] `]]" href="[[~[[UltimateParent]]]]">
[[pdoField?
&id=`[[UltimateParent]]`
&field=`menutitle`
&default=`pagetitle`
]]
</a>
<nav id="submenu" class="ui [[++navbar_size:default=`large`]] [[++submenu_type]] vertical fluid [[+sticky]] menu">
[[pdoMenu?
&parents=`[[UltimateParent]]`
&resources=`[[+excluded_resources]]`
&level=`[[++submenu_level]]`
&tplOuter=`navWrapper`
&tpl=`navItem`
&tplParentRowActive=`navItemInnerWrapper`
&tplInnerRow=`navItemInner`
&hideSubMenus=`1`
&countChildren=`[[++submenu_childcount]]`
]]
</nav>
No preview available.
[[pdoMenu?
&parents=`[[*id]]`
&level=`1`
&tplOuter=`@INLINE [[+wrapper]]`
&tpl=`@INLINE 1`
&hideSubMenus=`1`
&toPlaceholder=`has_children`
]]
[[+has_children:isnot=``:then=`[[*id]]`:else=`[[*parent]]`:toPlaceholder=`back_button_id`]]
[[[[getResourceLevel:gte=`[[++navbar_level]]`:then=`
pdoMenu?
&parents=`[[+has_children:is=``:then=`[[*parent:empty=`-1`]]`:else=`[[*id]]`]]`
&resources=`[[+excluded_resources]]`
&level=`1`
&tplOuter=`subNavVerticalWrapper`
&tpl=`navItem`
&tplParentRowActive=`navItemInnerWrapper`
&tplInner=`navWrapper`
&tplInnerRow=`navItemInner`
&hideSubMenus=`1`
&countChildren=`[[++submenu_childcount]]`
`
]]]]
No preview available.
[[++submenu_locality:eq=`current`:then=`
<div id="submenu-header" class="ui equal width middle aligned grid">
<div class="column">
<div class="ui tiny header">
[[pdoField?
&id=`[[+back_button_id]]`
&field=`menutitle`
&default=`pagetitle`
]]
</div>
</div>
[[If?
&subject=`[[*id:eq=`[[UltimateParent]]`:then=`1`]][[#[[*parent]].hidemenu]]`
&operator=`empty`
&then=`
<div class="compact column">
<a class="ui [[++submenu_type:containsnot=`regular`:and:containsnot=`tabular`:then=`very`]] basic icon button"
title="[[%romanesco.submenu.level_up]]"
href="[[~[[*parent]]]]">
<i class="up arrow icon"></i>
</a>
</div>`
]]
</div>
`]]
<nav id="submenu" class="ui [[++navbar_size:default=`large`]] [[++submenu_type]] vertical fluid [[+sticky]] menu">
[[+wrapper]]
</nav>
If
UltimateParent
pdoField
No preview available.
[[pdoMenu?
&parents=`[[If? &subject=`[[+resources]]` &operator=`notempty` &then=`-1` &else=`[[+parents]]`]]`
&resources=`[[If? &subject=`[[+resources]]` &operator=`notempty` &then=`[[+resources]]` &else=`null`]]`
&level=`1`
&tplOuter=`stepsNavWrapper`
&tpl=`[[+row_tpl:default=`stepsNavItem`]]`
&sortby=`[[If? &subject=`[[+resources]]` &operator=`notempty` &then=`FIELD(modResource.id, [[+resources]])` &else=`menuindex`]]`
&sortdir=`ASC`
&select=`id,pagetitle,menutitle[[+show_subtitle:eq=`1`:then=`,longtitle`]]`
&includeTVs=`[[+icon_type:inarray=`font,svg`:then=`overview_icon_[[+icon_type]]`]]`
&setTotal=`1`
]]
[[loadAssets? &component=`steps`]]
No preview available.
<div class="ui [[+step_options:containsnot=`vertical`:then=`[[+total:textToNumber]]`]] [[+step_size]] [[+step_options:replace=`,== `]] [[+step_attachment]] [[+icon_type]] steps">
[[+wrapper]]
</div>
No preview available.
[[+rows]]
<div class="ui reducible [[+justify_tabs:eq=`1`:then=`[[+tabs_total:textToNumber]] item`]] [[+menu_type_[[+unique_idx]]_[[+idx]]]] menu" role="tablist">
[[+[[+pl]].tabs_menu]]
</div>
No preview available.
<div class="ui stackable equal width grid">
<div class="[[+menu_cols]] wide column">
<div class="ui vertical fluid reducible [[+menu_type_[[+unique_idx]]_[[+idx]]]] menu" role="tablist">
[[+[[+pl]].tabs_menu]]
</div>
</div>
<div class="stretched column">
[[+rows]]
</div>
</div>
No preview available.
<div class="ui stackable equal width grid">
<div class="stretched column">
[[+rows]]
</div>
<div class="[[+menu_cols]] wide column">
<div class="ui vertical fluid reducible [[+menu_type_[[+unique_idx]]_[[+idx]]]] menu" role="tablist">
[[+[[+pl]].tabs_menu]]
</div>
</div>
</div>
No preview available.
<div class="ui reducible [[+justify_tabs:eq=`1`:then=`[[+tabs_total:textToNumber]] item`]] [[+menu_type_[[+unique_idx]]_[[+idx]]]] menu" role="tablist">
[[+[[+pl]].tabs_menu]]
</div>
[[+rows]]
This Table of Contents menu can be placed anywhere inside the content area with a ContentBlock (but will probably end up on top).
No preview available.
[[+toc_type:contains=`dropdown`:then=`
<div id="dropdown-toc" class="[[+toc_type:contains=`list`:then=`mobile only`]]">
[[$tocNavDropdown]]
</div>
`]]
[[+toc_type:contains=`list`:then=`
<div class="[[+toc_type:contains=`dropdown`:then=`mobile hidden`]]">
[[+toc_title:lcase:isnot=`hidden`:then=`<div class="meta">[[+toc_title:empty=`[[%romanesco.toc.menu_title]]`]]</div>`]]
<nav id="content-menu" class="ui [[+toc_size]] [[+toc_options_list:replace=`,== `]] vertical menu toc">
[[- Menu items are generated by the TableOfContents plugin]]
</nav>
</div>
`]]
[[!tableOfContents?
&target=`[[+toc_type:eq=`dropdown`:then=`#dropdown-toc .menu`:else=`#content-menu`]]`
]]
Wrap all ToC items in a dropdown menu, for more compact display (like on mobile / tablet).
No preview available.
<div class="ui [[+toc_size]] very long [[+toc_options_dropdown:replace=`,== `]] selection dropdown">
<i class="dropdown icon"></i>
[[+toc_title:lcase:isnot=`hidden`:then=`<div class="default text">[[+toc_title:empty=`[[%romanesco.toc.menu_title]]`]]</div>`]]
<nav class="toc menu">[[- Menu items are moved here on mobile]]</nav>
</div>
[[loadAssets? &component=`dropdown`]]
Table of Contents in a vertical menu, on the right side of the content. Used in all ToC templates. Can be instructed to stick to the viewport when scrolling through the main article.
No preview available.
<div id="dropdown-toc" class="ui vertical stripe segment mobile only tablet only">
<div class="ui container">
[[$tocNavDropdown?
&toc_size=`[[++navbar_size]]`
&toc_options_dropdown=`fluid`
]]
</div>
</div>
<nav id="submenu" class="ui [[+size]] secondary vertical fluid right pointing [[+sticky:eq=`1`:then=`sticky`]] toc menu tablet or lower hidden">
[[!tableOfContents? &target=`#submenu`]]
</nav>
No preview available.
[[setUserPlaceholders? &userId=`[[+author_id]]` &uid=`[[+unique_idx]]`]]
[[$headingOverviewLink? &uid=`[[+unique_idx]]`]]
[[[[If?
&subject=`[[+show_subtitle]]`
&operator=`EQ`
&operand=`1`
&then=`$infoArticleMeta? &uid=`[[+unique_idx]]``
]]]]
[[[[If?
&subject=`[[+show_tags]]`
&operator=`EQ`
&operand=`1`
&then=`TaggerGetTags?
&resources=`[[+id]]`
&groups=`topic`
&rowTpl=`tagItemBasicLink`
&outTpl=`tagWrapper`
`
]]]]
[[[[If?
&subject=`[[+show_introtext]]`
&operator=`EQ`
&operand=`1`
&then=`$introtextSingleParagraph? &uid=`[[+unique_idx]]``
]]]]
[[[[If?
&subject=`[[+link_text]]`
&operator=`isnot`
&operand=`0`
&then=`$buttonHrefOverview? &uid=`[[+unique_idx]]``
]]]]
No preview available.
[[setUserPlaceholders? &userId=`[[+author_id]]` &uid=`[[+unique_idx]]`]]
<div class="[[+alignment]] content">
[[$headingOverviewLink? &uid=`[[+unique_idx]]`]]
[[[[If?
&subject=`[[+show_subtitle]]`
&operator=`EQ`
&operand=`1`
&then=`$infoArticleMeta? &classes=`subtitle` &uid=`[[+unique_idx]]``
]]]]
[[[[If?
&subject=`[[+show_tags]]`
&operator=`EQ`
&operand=`1`
&then=`TaggerGetTags?
&resources=`[[+id]]`
&groups=`topic`
&rowTpl=`tagItemBasicLink`
&outTpl=`tagWrapper`
`
]]]]
[[[[If?
&subject=`[[+show_introtext]]`
&operator=`EQ`
&operand=`1`
&then=`$introtextDescription? &uid=`[[+unique_idx]]``
]]]]
</div>
[[[[If?
&subject=`[[+link_text]]`
&operator=`isnot`
&operand=`0`
&then=`$buttonHrefOverview? &classes=`bottom attached` &uid=`[[+unique_idx]]``
]]]]
No preview available.
[[setUserPlaceholders? &userId=`[[+author_id]]` &uid=`[[+unique_idx]]`]]
[[[[If?
&subject=`[[+team_member_id]]`
&operator=`notempty`
&then=`$imgOverviewPersonAvatarLink? &id=`[[+team_member_id]]``
]]]]
<div class="content">
<a href="[[~[[+id]]]]" class="header">
[[+[[+title_field]]:empty=`[[+pagetitle]]`]]
</a>
<div class="description">
<span class="meta date">
<i class="icon calendar alternate outline"></i>
[[+publishedon:strtotime:date=`[[++romanesco.date_format_long]]`]]
</span>
</div>
</div>
No preview available.
[[setUserPlaceholders? &userId=`[[+author_id]]` &uid=`[[+unique_idx]]`]]
<div class="sidebar column">
<a class="ui rounded image" href="[[~[[+id]]]]">
[[ImagePlus:empty=`[[$imgOverviewFallback? &img_type=`landscape`]]`?
&tvname=`overview_img_landscape`
&docid=`[[+id]]`
&options=``
&type=`tpl`
&tpl=`imgOverview`
]]
</a>
</div>
<div class="[[+content_width]] wide [[+title_inflate]] main column">
[[$headingOverviewLink? &uid=`[[+unique_idx]]`]]
<p>
[[[[If?
&subject=`[[+team_member_id]]`
&operator=`notempty`
&then=`$imgOverviewPersonAvatarLink? &id=`[[+team_member_id]]``
]]]]
<span class="meta">
<em>
[[%romanesco.article.written_by]]
[[If?
&subject=`[[+author_id]]`
&operator=`notempty`
&then=`<a href="[[~[[+team_member_id:empty=`[[++error_page]]`]]]]">[[+author_id:userinfo=`fullname`:empty=`[[++site_name]]`]]</a>`
&else=`[[+createdby:userinfo=`fullname`:empty=`[[++site_name]]`]]`
]]
[[%romanesco.article.written_on]]
[[+publishedon:strtotime:date=`[[++romanesco.date_format_long]]`]]
</em>
</span>
</p>
[[[[If?
&subject=`[[+show_introtext]]`
&operator=`EQ`
&operand=`1`
&then=`$introtextDescription? &uid=`[[+unique_idx]]``
]]]]
[[If?
&subject=`[[+link_text]]`
&operator=`isnot`
&operand=`0`
&then=`<p>[[$buttonHrefOverview? &uid=`[[+unique_idx]]`]]</p>`
]]
</div>
No preview available.
<figure>
[[$overviewRowImageBasic? &uid=`[[+unique_idx]]`]]
</figure>
[[$overviewRowArticleBasic? &uid=`[[+unique_idx]]`]]
No preview available.
[[setUserPlaceholders? &userId=`[[+author_id]]` &uid=`[[+unique_idx]]`]]
[[$overviewRowImageBasic? &uid=`[[+unique_idx]]`]]
<div class="[[+alignment]] content">
[[$headingOverviewLink? &uid=`[[+unique_idx]]`]]
[[[[If?
&subject=`[[+show_subtitle]]`
&operator=`EQ`
&operand=`1`
&then=`$infoArticleMeta? &classes=`subtitle` &uid=`[[+unique_idx]]``
]]]]
[[[[If?
&subject=`[[+show_tags]]`
&operator=`EQ`
&operand=`1`
&then=`TaggerGetTags?
&resources=`[[+id]]`
&groups=`topic`
&rowTpl=`tagItemBasicLink`
&outTpl=`tagWrapper`
`
]]]]
[[[[If?
&subject=`[[+show_introtext]]`
&operator=`EQ`
&operand=`1`
&then=`$introtextDescription? &uid=`[[+unique_idx]]``
]]]]
</div>
[[[[If?
&subject=`[[+link_text]]`
&operator=`isnot`
&operand=`0`
&then=`$buttonHrefOverview? &classes=`bottom attached` &uid=`[[+unique_idx]]``
]]]]
No preview available.
<article class="item">
<div class="content">
<a class="header" href="[[~[[+id]]]]">[[+menutitle:empty=`[[+pagetitle]]`]]</a>
<div class="meta">
[[+meta_elements:contains=`date`:then=`
<span class="date">
[[+publishedon:strtotime:date=`[[++romanesco.date_format_long]]`]]
</span>
`]]
[[+meta_elements:contains=`views`:then=`
<span class="views">
[[!Rowboat?
&table=`modx_hits`
&tpl=`hitCount`
&limit=`1`
&columns=`hit_count`
&where=`{"hit_key":"[[+id]]"}`
&cacheResults=`0`
]] views
</span>
`]]
</div>
[[If?
&subject=`[[+show_introtext]]`
&operator=`EQ`
&operand=`1`
&then=`<div class="description">[[$introtextSingleParagraph:ellipsis=`140`? &uid=`[[+unique_idx]]`]]</div>`
]]
</div>
</article>
No preview available.
[[setUserPlaceholders? &userId=`[[+author_id]]` &uid=`[[+unique_idx]]`]]
<div class="ui padded down pointing segment secondary">
<[[+level]]>
<a href="[[~[[+id]]]]">[[+[[+title_field]]:empty=`[[+pagetitle]]`]]</a>
</[[+level]]>
<p class="quote">[[+introtext:stripString=`<p>`:stripString=`</p>`]]</p>
</div>
<div class="ui basic segment">
[[[[If?
&subject=`[[+team_member_id]]`
&operator=`notempty`
&then=`$imgOverviewPersonAvatarLink? &id=`[[+team_member_id]]``
]]]]
<span class="meta">
<em>
[[%romanesco.article.written_by]]
[[If?
&subject=`[[+author_id]]`
&operator=`notempty`
&then=`<a href="[[~[[+team_member_id:empty=`[[++error_page]]`]]]]">[[+author_id:userinfo=`fullname`:empty=`[[++site_name]]`]]</a>`
&else=`[[+createdby:userinfo=`fullname`:empty=`[[++site_name]]`]]`
]]
[[%romanesco.article.written_on]]
[[+publishedon:strtotime:date=`[[++romanesco.date_format_long]]`]]
</em>
</span>
[[[[If?
&subject=`[[+link_text]]`
&operator=`isnot`
&operand=`0`
&then=`$buttonHrefOverview? &classes=`right floated` &uid=`[[+unique_idx]]``
]]]]
</div>
No preview available.
[[[[If?
&subject=`[[+show_subtitle]]`
&operator=`EQ`
&operand=`1`
&then=`$headingOverviewSubtitleLink? &uid=`[[+unique_idx]]``
&else=`$headingOverviewLink? &uid=`[[+unique_idx]]``
]]]]
[[[[If?
&subject=`[[+show_introtext]]`
&operator=`EQ`
&operand=`1`
&then=`$introtextDescription? &uid=`[[+unique_idx]]``
]]]]
[[If?
&subject=`[[+link_text]]`
&operator=`isnot`
&operand=`0`
&then=`<p>[[$buttonHrefOverview? &uid=`[[+unique_idx]]`]]</p>`
]]
No preview available.
<div class="[[+alignment]] content">
[[[[If?
&subject=`[[+show_subtitle]]`
&operator=`EQ`
&operand=`1`
&then=`$headingOverviewSubtitleLink? &uid=`[[+unique_idx]]``
&else=`$headingOverviewLink? &uid=`[[+unique_idx]]``
]]]]
[[[[If?
&subject=`[[+show_introtext]]`
&operator=`EQ`
&operand=`1`
&then=`$introtextDescription? &uid=`[[+unique_idx]]``
]]]]
</div>
[[[[If?
&subject=`[[+link_text]]`
&operator=`isnot`
&operand=`0`
&then=`$buttonHrefOverview? &classes=`bottom attached` &uid=`[[+unique_idx]]``
]]]]
No preview available.
[[[[If?
&subject=`[[+show_subtitle]]`
&operator=`EQ`
&operand=`1`
&then=`$headingOverviewSubtitleLink? &uid=`[[+unique_idx]]``
&else=`$headingOverviewLink? &uid=`[[+unique_idx]]``
]]]]
No preview available.
<div class="[[+alignment]] content">
[[[[If?
&subject=`[[+show_subtitle]]`
&operator=`EQ`
&operand=`1`
&then=`$headingOverviewSubtitle? &uid=`[[+unique_idx]]``
&else=`$headingOverview? &uid=`[[+unique_idx]]``
]]]]
</div>
[[If?
&subject=`[[+show_introtext]]`
&operator=`EQ`
&operand=`1`
&then=`<div class="[[+alignment]] content description">[[+introtext]]</div>`
]]
A segment that shows which filters are currently active, plus the option to reset the overview.
No preview available.
[[!TaggerGetCurrentTag:notempty=`
<div id="filter-active" class="ui basic secondary-color segment">
<div class="ui compact middle aligned equal width grid">
<div class="compact column mobile hidden tablet hidden">
<i class="disabled secondary filter icon"></i>
</div>
<div class="column">
<div class="ui large secondary labels">
<span class="meta">[[%romanesco.filter.active]]</span>
[[!TaggerGetCurrentTag?
&tagTpl=`tagItemBasic`
&groupTpl=`@INLINE <span class="meta">[[+alias]]:</span> [[+tags]]`
&outTpl=`@INLINE [[+groups]]`
&tagSeparator=``
&groupSeparator=`<span class="meta">[[%romanesco.filter.and]]</span> `
]]
</div>
</div>
<div class="compact column">
<a href="[[~[[*id]]]]">
<span class="ui secondary text">[[%romanesco.filter.reset]]</span>
<i class="secondary undo alternate icon"></i>
</a>
</div>
</div>
</div>
`]]
No preview available.
<figure class="ui avatar [[+icon_type]] image">
[[[[If?
&subject=`[[+icon_type]]`
&operator=`EQ`
&operand=`svg`
&then=`$iconSVG? &classes=`regular` &url=`[[+overview_icon_svg:empty=`[[++overview_icon_fallback]]`]]``
&else=`$iconFont? &classes=`circular` &icon_class=`[[+overview_icon_font]]``
]]]]
</figure>
<div class="content">
<a href="[[~[[+id]]]]" class="header">[[+[[+title_field]]:empty=`[[+pagetitle]]`]]</a>
[[If?
&subject=`[[+show_subtitle]]`
&operator=`EQ`
&operand=`1`
&then=`<div class="description">[[+overview_subtitle:empty=`[[+longtitle:empty=`[[+pagetitle]]`]]`]]</div>`
]]
</div>
No preview available.
<[[+level]] class="ui [[+title_classes]] horizontal header">
[[[[If?
&subject=`[[+icon_type]]`
&operator=`EQ`
&operand=`svg`
&then=`$iconSVG? &classes=`ui svg image` &url=`[[+overview_icon_svg:empty=`[[++overview_icon_fallback]]`]]``
&else=`$iconFont? &classes=`circular` &icon_class=`[[+overview_icon_font]]``
]]]]
<span class="content">
<a href="[[~[[+id]]]]">[[+[[+title_field]]:empty=`[[+pagetitle]]`]]</a>
[[If?
&subject=`[[+show_subtitle]]`
&operator=`EQ`
&operand=`1`
&then=`<span class="sub header">[[+overview_subtitle:empty=`[[+longtitle:empty=`[[+pagetitle]]`]]`]]</span>`
]]
</span>
</[[+level]]>
[[[[If?
&subject=`[[+show_introtext]]`
&operator=`EQ`
&operand=`1`
&then=`$introtextSingleParagraph? &uid=`[[+unique_idx]]``
]]]]
[[[[If?
&subject=`[[+link_text]]`
&operator=`isnot`
&operand=`0`
&then=`$buttonHrefOverview? &uid=`[[+unique_idx]]``
]]]]
No preview available.
<[[+level]] class="ui [[+title_classes]] icon header">
[[[[If?
&subject=`[[+icon_type]]`
&operator=`EQ`
&operand=`svg`
&then=`$iconSVG? &classes=`ui svg image` &url=`[[+overview_icon_svg:empty=`[[++overview_icon_fallback]]`]]``
&else=`$iconFont? &classes=`circular` &icon_class=`[[+overview_icon_font]]``
]]]]
<span class="content">
<a href="[[~[[+id]]]]">[[+[[+title_field]]:empty=`[[+pagetitle]]`]]</a>
[[If?
&subject=`[[+show_subtitle]]`
&operator=`EQ`
&operand=`1`
&then=`<span class="sub header">[[+overview_subtitle:empty=`[[+longtitle:empty=`[[+pagetitle]]`]]`]]</span>`
]]
</span>
</[[+level]]>
[[[[If?
&subject=`[[+show_introtext]]`
&operator=`EQ`
&operand=`1`
&then=`$introtextSingleParagraph? &uid=`[[+unique_idx]]``
]]]]
[[If?
&subject=`[[+link_text]]`
&operator=`isnot`
&operand=`0`
&then=`<p>[[$buttonHrefOverview? &uid=`[[+unique_idx]]`]]</p>`
]]
No preview available.
<div class="[[+alignment]] content">
<[[+level]] class="ui [[+title_classes]] centered icon header">
[[[[If?
&subject=`[[+icon_type]]`
&operator=`EQ`
&operand=`svg`
&then=`$iconSVG? &classes=`ui svg image` &url=`[[+overview_icon_svg:empty=`[[++overview_icon_fallback]]`]]``
&else=`$iconFont? &classes=`circular` &icon_class=`[[+overview_icon_font]]``
]]]]
<span class="content">
<a href="[[~[[+id]]]]">[[+[[+title_field]]:empty=`[[+pagetitle]]`]]</a>
[[If?
&subject=`[[+show_subtitle]]`
&operator=`EQ`
&operand=`1`
&then=`<span class="sub header">[[+overview_subtitle:empty=`[[+longtitle:empty=`[[+pagetitle]]`]]`]]</span>`
]]
</span>
</[[+level]]>
</div>
[[If?
&subject=`[[+show_introtext]]`
&operator=`EQ`
&operand=`1`
&then=`<div class="[[+alignment]] content">[[$introtextDescription? &uid=`[[+unique_idx]]`]]</div>`
]]
[[[[If?
&subject=`[[+link_text]]`
&operator=`isnot`
&operand=`0`
&then=`$buttonHrefOverview? &classes=`bottom attached` &uid=`[[+unique_idx]]``
]]]]
No preview available.
<div class="[[+alignment]] content">
<[[+level]] class="ui [[+title_classes]] centered icon header">
[[[[If?
&subject=`[[+icon_type]]`
&operator=`EQ`
&operand=`svg`
&then=`$iconSVG? &classes=`ui svg image` &url=`[[+overview_icon_svg:empty=`[[++overview_icon_fallback]]`]]``
&else=`$iconFont? &classes=`circular` &icon_class=`[[+overview_icon_font]]``
]]]]
<span class="content">
[[+[[+title_field]]:empty=`[[+pagetitle]]`]]
[[If?
&subject=`[[+show_subtitle]]`
&operator=`EQ`
&operand=`1`
&then=`<span class="sub header">[[+overview_subtitle:empty=`[[+longtitle:empty=`[[+pagetitle]]`]]`]]</span>`
]]
</span>
</[[+level]]>
</div>
[[If?
&subject=`[[+show_introtext]]`
&operator=`EQ`
&operand=`1`
&then=`<div class="[[+alignment]] content">[[$introtextDescription:stripTags=`<p><div>`? &uid=`[[+unique_idx]]`]]</div>`
]]
No preview available.
<a class="ui rounded image" href="[[~[[+id]]]]">
[[ImagePlus:empty=`[[$imgOverviewFallback]]`?
&tvname=`overview_img_[[+img_type:empty=`landscape`]]`
&docid=`[[+id]]`
&options=`w=[[++max_thumb_width]]&q=[[++romanesco.img_quality]]&zc=1`
&type=`tpl`
&tpl=`imgOverview`
]]
</a>
No preview available.
<figure class="ui rounded dimmable image">
<div class="ui dimmer">
<div class="content">
<div class="center">
[[[[If?
&subject=`[[+show_subtitle]]`
&operator=`EQ`
&operand=`1`
&then=`$headingOverviewSubtitle? &classes=`inverted` &uid=`[[+unique_idx]]``
&else=`$headingOverview? &classes=`inverted` &uid=`[[+unique_idx]]``
]]]]
[[[[If?
&subject=`[[+link_text]]`
&operator=`isnot`
&operand=`0`
&then=`$buttonHrefOverview? &uid=`[[+unique_idx]]``
]]]]
</div>
</div>
</div>
[[ImagePlus:empty=`[[$imgOverviewFallback]]`?
&tvname=`overview_img_[[+img_type:empty=`landscape`]]`
&docid=`[[+id]]`
&options=`w=[[++max_thumb_width]]&q=[[++romanesco.img_quality]]&zc=1`
&type=`tpl`
&tpl=`imgOverview`
]]
</figure>
[[loadAssets? &component=`dimmer`]]
No preview available.
<a class="ui avatar image" href="[[~[[+id]]]]">
[[ImagePlus:empty=`[[$imgOverviewFallback? &mpy=`1`]]`?
&tvname=`overview_img_[[+img_type:empty=`square`]]`
&docid=`[[+id]]`
&options=`w=150&q=[[++romanesco.img_quality]]&zc=1`
&type=`tpl`
&tpl=`imgOverview`
]]
</a>
<div class="content">
<a href="[[~[[+id]]]]" class="header">[[+[[+title_field]]:empty=`[[+pagetitle]]`]]</a>
[[If?
&subject=`[[+show_subtitle]]`
&operator=`EQ`
&operand=`1`
&then=`<div class="description">[[+overview_subtitle:empty=`[[+longtitle:empty=`[[+pagetitle]]`]]`]]</div>`
]]
</div>
No preview available.
<div class="sidebar column">
[[$overviewRowImageBasic?
&cols=`[[+img_snap:eq=`1`:then=`1`:else=`2`]]`
&uid=`[[+unique_idx]]`
]]
</div>
<div class="[[+content_width]] wide [[+title_inflate]] main column">
[[$overviewRowBasic? &uid=`[[+unique_idx]]`]]
</div>
No preview available.
<div class="ui stackable grid">
<figure class="five wide column">
[[$overviewRowImageBasic? &uid=`[[+unique_idx]]`]]
</figure>
<div class="eleven wide [[If? &subject=`[[+show_introtext]]` &operator=`EQ` &operand=`0` &then=`middle aligned`]] column">
[[$overviewRowBasic? &uid=`[[+unique_idx]]`]]
</div>
</div>
No preview available.
<div class="ui stackable content grid">
<figure class="five wide column">
[[$overviewRowImageBasic? &uid=`[[+unique_idx]]`]]
</figure>
<div class="eleven wide column">
[[[[If?
&subject=`[[+show_subtitle]]`
&operator=`EQ`
&operand=`1`
&then=`$headingOverviewSubtitleLink? &uid=`[[+unique_idx]]``
&else=`$headingOverviewLink? &uid=`[[+unique_idx]]``
]]]]
[[[[If?
&subject=`[[+show_introtext]]`
&operator=`EQ`
&operand=`1`
&then=`$introtextDescription? &uid=`[[+unique_idx]]``
]]]]
</div>
</div>
[[If?
&subject=`[[+link_text]]`
&operator=`isnot`
&operand=`0`
&then=`<div class="extra content">[[$buttonHrefOverview? &classes=`right floated` &uid=`[[+unique_idx]]`]]</div>`
]]
No preview available.
[[$overviewRowImageBasic? &uid=`[[+unique_idx]]`]]
[[$overviewRowBasic? &uid=`[[+unique_idx]]`]]
No preview available.
[[$overviewRowImageBasic? &uid=`[[+unique_idx]]`]]
<div class="[[+alignment]] content">
[[[[If?
&subject=`[[+show_subtitle]]`
&operator=`EQ`
&operand=`1`
&then=`$headingOverviewSubtitleLink? &uid=`[[+unique_idx]]``
&else=`$headingOverviewLink? &uid=`[[+unique_idx]]``
]]]]
[[[[If?
&subject=`[[+show_introtext]]`
&operator=`EQ`
&operand=`1`
&then=`$introtextDescription? &uid=`[[+unique_idx]]``
]]]]
</div>
[[[[If?
&subject=`[[+link_text]]`
&operator=`isnot`
&operand=`0`
&then=`$buttonHrefOverview? &classes=`bottom attached` &uid=`[[+unique_idx]]``
]]]]
No preview available.
<figure class="ui rounded image">
[[ImagePlus:empty=`[[$imgOverviewFallback]]`?
&tvname=`overview_img_[[+img_type:empty=`wide`]]`
&docid=`[[+id]]`
&options=`w=[[++max_thumb_width]]&q=[[++romanesco.img_quality]]&zc=1`
&type=`tpl`
&tpl=`imgOverview`
]]
</figure>
<div class="[[+alignment]] content">
[[[[If?
&subject=`[[+show_subtitle]]`
&operator=`EQ`
&operand=`1`
&then=`$headingOverviewSubtitle? &uid=`[[+unique_idx]]``
&else=`$headingOverview? &uid=`[[+unique_idx]]``
]]]]
[[[[If?
&subject=`[[+show_introtext]]`
&operator=`EQ`
&operand=`1`
&then=`$introtextDescription:stripTags=`<p><div><ul><li>`? &uid=`[[+unique_idx]]``
]]]]
</div>
No preview available.
<section class="ui vertical stripe segment white ticket">
<div class="ui container">
<h2 class="title"><a href="[[~[[+id]]]]">[[+pagetitle]]</a></h2>
<div class="content lead">
[[+introtext:ellipsis=`400`]]
</div>
<footer class="ui equal width meta grid ticket-meta" data-id="[[+id]]">
<div class="compact column">
<i class="calendar icon"></i> [[+date_ago]]
</div>
<div class="compact column">
<i class="user icon"></i> [[+fullname]]
</div>
[[+section.id:ne=`[[*id]]`:then=`
<div class="compact column">
<a href="[[~[[+section.id]]]]"><i class="folder open icon"></i> [[+section.pagetitle]]</a>
</div>
`]]
<div class="compact column">
<i class="star icon"></i>
<span class="ticket-star[[+can_star]]">[[+stared]][[+unstared]] <span class="ticket-star-count">[[+stars]]</span></span>
</div>
<div class="compact column">
<i class="eye open icon"></i> [[+views]]
</div>
<div class="compact column">
<i class="comment icon"></i> [[+comments]]
[[+new_comments:ne=`0`:and:ne=``:then=`<span class="ui tiny floating blue label">1[[+new_comments]] new</span>`]]
</div>
<div class="right aligned column ticket-rating[[+active]][[+inactive]]">
<span class="vote plus[[+voted_plus]]" title="[[%ticket_like]]">
<i class="small green circular plus icon"></i>
</span>
[[+can_vote]][[+cant_vote]]
<span class="vote minus[[+voted_minus]]" title="[[%ticket_dislike]]">
<i class="small red circular minus icon"></i>
</span>
</div>
</footer>
</div>
</section>
<!--tickets_can_vote <span class="vote rating" title="[[%ticket_refrain]]"><i class="circular plus icon"></i></span>-->
<!--tickets_cant_vote <span class="rating[[+rating_positive]][[+rating_negative]]" title="[[%ticket_rating_total]] [[+rating_total]]: ↑[[+rating_plus]] [[%ticket_rating_and]] ↓[[+rating_minus]]">[[+rating]]</span>-->
<!--tickets_new_comments <span class="ticket-new-comments">+[[+new_comments]]</span>-->
<!--tickets_active active-->
<!--tickets_inactive inactive-->
<!--tickets_voted_plus voted-->
<!--tickets_voted_minus voted-->
<!--tickets_rating_positive positive-->
<!--tickets_rating_negative negative-->
<!--tickets_can_star active-->
<!--tickets_stared <i class="blue star icon"></i>-->
<!--tickets_unstared <i class="glyphicon glyphicon-star unstared star"></i>-->
No preview available.
<div class="card">
<div class="content">
<h3 class="header"><a href="[[~[[+id]]]]">[[+pagetitle]]</a></h3>
<div class="meta">
<span><i class="ticket icon"></i> [[+tickets]]</span>
<span><i class="eye icon"></i> [[+views]]</span>
<span><i class="comments icon"></i> [[+comments]]</span>
</div>
[[+introtext]]
</div>
</div>
No preview available.
[[$imgOverviewOrganizationLink]]
[[[[If?
&subject=`[[+show_subtitle]]`
&operator=`EQ`
&operand=`1`
&then=`$headingOverviewSubtitleLink? &uid=`[[+unique_idx]]``
&else=`$headingOverviewLink? &uid=`[[+unique_idx]]``
]]]]
[[[[If?
&subject=`[[+show_introtext]]`
&operator=`EQ`
&operand=`1`
&then=`$introtextDescription? &uid=`[[+unique_idx]]``
]]]]
<p>
[[$socialConnectButtonsOrganization? &button_type=`basic` &uid=`[[+unique_idx]]`]]
</p>
[[If?
&subject=`[[+link_text]]`
&operator=`isnot`
&operand=`0`
&then=`<p>[[$buttonHrefOverview? &uid=`[[+unique_idx]]`]]</p>`
]]
No preview available.
<figure class="ui small image">
[[ImagePlus:empty=`[[$imgOverviewFallback]]`?
&tvname=`organization_logo_img`
&docid=`[[+id]]`
&options=`w=600&q=[[++romanesco.img_quality]]&zc=1`
&type=`tpl`
&tpl=`imgOverview`
]]
</figure>
No preview available.
[[$imgOverviewPersonLink? &classes=`circular` &uid=`[[+unique_idx]]`]]
<[[+level]] class="ui [[+title_classes]] header">
<a href="[[~[[+id]]]]">[[+[[+title_field]]:empty=`[[+pagetitle]]`]]</a>
[[If?
&subject=`[[+show_subtitle]]`
&operator=`EQ`
&operand=`1`
&then=`<span class="sub header">[[+person_jobtitle:empty=`[[+longtitle]]`]]</span>`
]]
</[[+level]]>
[[[[If?
&subject=`[[+show_introtext]]`
&operator=`EQ`
&operand=`1`
&then=`$introtextDescription? &uid=`[[+unique_idx]]``
]]]]
<p>
[[$socialConnectButtonsPerson? &button_type=`basic` &uid=`[[+unique_idx]]`]]
</p>
[[If?
&subject=`[[+link_text]]`
&operator=`isnot`
&operand=`0`
&then=`<p>[[$buttonHrefOverview? &uid=`[[+unique_idx]]`]]</p>`
]]
No preview available.
[[$imgOverviewPersonLink? &uid=`[[+unique_idx]]`]]
<div class="[[+alignment]] content">
<a href="[[~[[+id]]]]" class="header">[[+person_firstname]]</a>
[[If?
&subject=`[[+show_subtitle]]`
&operator=`EQ`
&operand=`1`
&then=`<p class="meta">[[+person_jobtitle]]</p>`
]]
[[[[If?
&subject=`[[+show_introtext]]`
&operator=`EQ`
&operand=`1`
&then=`$introtextDescription? &uid=`[[+unique_idx]]``
]]]]
[[$socialConnectButtonsPerson? &button_type=`basic` &uid=`[[+unique_idx]]`]]
</div>
[[[[If?
&subject=`[[+link_text]]`
&operator=`isnot`
&operand=`0`
&then=`$buttonHrefOverview? &classes=`bottom attached` &uid=`[[+unique_idx]]``
]]]]
No preview available.
[[$imgOverviewPersonAvatarLink? &uid=`[[+unique_idx]]`]]
<div class="content">
<a href="[[~[[+id]]]]" class="header">[[+person_firstname:empty=`[[+pagetitle]]`]]</a>
[[If?
&subject=`[[+show_subtitle]]`
&operator=`EQ`
&operand=`1`
&then=`<div class="description">[[+person_jobtitle:empty=`[[+longtitle]]`]]</div>`
]]
</div>
No preview available.
<div class="sidebar column">
[[$imgOverviewPersonLink? &classes=`circular` &uid=`[[+unique_idx]]`]]
</div>
<div class="[[+content_width]] wide [[+title_inflate]] main column">
<[[+level]] class="ui [[+title_classes]] header">
<a href="[[~[[+id]]]]">[[+person_firstname]]</a>
<span class="sub header">[[+person_jobtitle]]</span>
</[[+level]]>
<p>
[[$socialConnectButtonsPerson? &uid=`[[+unique_idx]]`]]
</p>
[[[[If?
&subject=`[[+show_introtext]]`
&operator=`EQ`
&operand=`1`
&then=`$introtextDescription? &uid=`[[+unique_idx]]``
]]]]
[[If?
&subject=`[[+link_text]]`
&operator=`isnot`
&operand=`0`
&then=`<p>[[$buttonHrefOverview? &uid=`[[+unique_idx]]`]]</p>`
]]
</div>
No preview available.
[[-$imgOverviewPersonLink? &uid=`[[+unique_idx]]`]]
<div class="ui overlay">
<[[+level]] class="ui [[+title_classes]] inverted header">
[[+[[+title_field]]:empty=`[[+pagetitle]]`]]
[[If?
&subject=`[[+show_subtitle]]`
&operator=`EQ`
&operand=`1`
&then=`<span class="sub header">[[+person_jobtitle:empty=`[[+longtitle]]`]]</span>`
]]
</[[+level]]>
[[If?
&subject=`[[+link_text]]`
&operator=`isnot`
&operand=`0`
&then=`<p>[[$buttonHrefOverview? &classes=`basic` &uid=`[[+unique_idx]]`]]</p>`
]]
</div>
No preview available.
<figure>
<a class="ui rounded image" href="[[~[[+id]]]]">
[[ImagePlus:empty=`[[$imgOverviewFallback]]`?
&tvname=`overview_img_wide`
&docid=`[[+id]]`
&options=`w=[[++max_thumb_width]]&q=[[++romanesco.img_quality]]&zc=1`
&type=`tpl`
&tpl=`imgOverview`
]]
</a>
</figure>
[[$overviewRowBasic? &uid=`[[+unique_idx]]`]]
No preview available.
<div class="sidebar column">
<a class="ui rounded image" href="[[~[[+id]]]]">
[[ImagePlus:empty=`[[$imgOverviewFallback]]`?
&tvname=`overview_img_landscape`
&docid=`[[+id]]`
&options=``
&type=`tpl`
&tpl=`imgOverview`
]]
</a>
</div>
<div class="[[+content_width]] wide [[+title_inflate]] main column">
<[[+level]] class="ui [[+title_classes]] header">
<a href="[[~[[+id]]]]">[[+[[+title_field]]:empty=`[[+pagetitle]]`]]</a>
</[[+level]]>
[[[[If?
&subject=`[[+show_introtext]]`
&operator=`EQ`
&operand=`1`
&then=`$introtextDescription? &uid=`[[+unique_idx]]``
]]]]
[[If?
&subject=`[[+link_text]]`
&operator=`isnot`
&operand=`0`
&then=`<p>[[$buttonHrefOverview? &uid=`[[+unique_idx]]`]]</p>`
]]
</div>
No preview available.
<div class="ui dimmer">
<div class="content">
<div class="center">
[[If?
&subject=`[[+show_subtitle]]`
&operator=`EQ`
&operand=`1`
&then=`[[$headingOverviewSubtitle? &classes=`inverted` &uid=`[[+unique_idx]]`]]`
&else=`[[$headingOverview? &classes=`inverted` &uid=`[[+unique_idx]]`]]`
]]
[[If?
&subject=`[[+link_text]]`
&operator=`isnot`
&operand=`0`
&then=`[[$buttonHrefOverview? &classes=`basic inverted` &uid=`[[+unique_idx]]`]]`
]]
</div>
</div>
</div>
No preview available.
[[$infoReviewSegment? &pointer=`down` &uid=`[[+unique_idx]]`]]
<div class="ui center aligned basic segment">
[[$imgOverviewPersonLink? &classes=`small circular` &uid=`[[+unique_idx]]`]]
</div>
<div class="ui small center aligned header">
[[$infoNamePerson? &uid=`[[+unique_idx]]`]]
[[[[If?
&subject=`[[+show_subtitle]]`
&operator=`EQ`
&operand=`1`
&then=`$infoNameOrganization? &classes=`sub header` &uid=`[[+unique_idx]]``
]]]]
[[[[If?
&subject=`[[+show_rating]]`
&operator=`EQ`
&operand=`1`
&then=`$infoRatingStars? &uid=`[[+unique_idx]]``
]]]]
</div>
No preview available.
<div class="ui padded down pointing segment secondary">
<p class="quote" property="itemReviewed" typeof="Organization">
<span property="review">[[+longtitle]]</span>
</p>
[[[[If?
&subject=`[[+show_rating]]`
&operator=`EQ`
&operand=`1`
&then=`$infoRatingStars? &uid=`[[+unique_idx]]``
]]]]
</div>
<div class="ui basic segment">
[[$imgOverviewPersonAvatar]]
[[$infoNamePerson]]
[[[[If?
&subject=`[[+show_subtitle]]`
&operator=`EQ`
&operand=`1`
&then=`<span class="meta"><em>[[+organization_name]]</em></span>`
]]]]
</div>
No preview available.
<a class="ui faded image" href="[[~[[+id]]]]" title="[[%romanesco.clients.logo_title]]">
[[ImagePlus:empty=`[[$imgOverviewFallback]]`?
&tvname=`organization_logo_img`
&docid=`[[+organization_id:empty=`[[+id]]`]]`
&options=`w=600&q=[[++romanesco.img_quality]]&zc=1`
&type=`tpl`
&tpl=`imgOverview`
]]
</a>
No preview available.
<div class="ui mobile reversed stackable grid">
<div class="four wide tablet six wide computer five wide large screen five wide widescreen center aligned column">
[[$imgOverviewPersonLink?
&classes=`circular`
&img_scale=`40`
&uid=`[[+unique_idx]]`
]]
<div class="ui small header">
[[$infoNamePerson? &uid=`[[+unique_idx]]`]]
[[[[If?
&subject=`[[+show_subtitle]]`
&operator=`EQ`
&operand=`1`
&then=`$infoNameOrganization? &classes=`sub header` &uid=`[[+unique_idx]]``
]]]]
[[[[If?
&subject=`[[+show_rating]]`
&operator=`EQ`
&operand=`1`
&then=`$infoRatingStars? &uid=`[[+unique_idx]]``
]]]]
</div>
</div>
<div class="twelve wide tablet ten wide computer eleven wide large screen eleven wide widescreen [[+alignment]] column">
[[$infoReviewSegment? &pointer=`left` &uid=`[[+unique_idx]]`]]
</div>
</div>
No preview available.
<section class="[[+column_type]]">
[[$[[+row_tpl]]? &unique_idx=`[[+idx]][[+page]][[+unique_idx]]`]]
</section>
No preview available.
<article class="[[+column_type]] publication">
[[$[[+row_tpl]]? &unique_idx=`[[+idx]][[+page]][[+unique_idx]]`]]
</article>
No preview available.
[[If:toPlaceholder=`background.[[+idx]]`?
&subject=`[[+idx:mod]]`
&operator=`EQ`
&operand=`0`
&then=`[[+background_even]]`
&else=`[[+background_odd]]`
]]
[[If:toPlaceholder=`interchange.[[+idx]]`?
&subject=`[[+cols_interchange]]`
&operator=`EQ`
&operand=`1`
&then=`[[+idx:mod:eq=`0`:then=`computer reversed tablet reversed`]]`
]]
<section class="ui vertical [[+background.[[+idx]]]] [[+img_snap:eq=`1`:then=`snapped`]] [[+img_inflate:eq=`1`:then=`inflated`]] stripe segment">
<div class="ui container">
<div class="ui stackable equal width middle aligned [[+padding]] [[+interchange.[[+idx]]]] grid">
[[$[[+row_tpl]]? &unique_idx=`[[+idx]][[+unique_idx]]`]]
</div>
</div>
</section>
No preview available.
<a class="[[+column_type]]" href="[[~[[+id]]]]">
[[$[[+row_tpl]]? &unique_idx=`[[+idx]][[+page]][[+unique_idx]]`]]
</a>
No preview available.
<div class="[[+column_type]]">
[[$[[+row_tpl]]? &unique_idx=`[[+idx]][[+page]][[+unique_idx]]`]]
</div>
No preview available.
<section class="[[+column_type]] client">
[[$[[+row_tpl]]? &unique_idx=`[[+idx]][[+page]][[+unique_idx]]`]]
</section>
No preview available.
<section class="[[+column_type]] person">
[[$[[+row_tpl]]? &unique_idx=`[[+idx]][[+page]][[+unique_idx]]`]]
</section>
No preview available.
<section class="[[+column_type]] project">
[[$[[+row_tpl]]? &unique_idx=`[[+idx]][[+page]][[+unique_idx]]`]]
</section>
No preview available.
<div class="[[+column_type]] testimonial" [[+row_tpl:containsnot=`logo`:then=`vocab="https://schema.org/" typeof="Review"`]]>
[[$[[+row_tpl]]? &unique_idx=`[[+idx]][[+page]][[+unique_idx]]`]]
</div>
Generic parameters for the getResources call.
No preview available.
&row_tpl=`[[modifiedIf? &subject=`[[+row_tpl]]Theme` &operator=`iselement` &operand=`chunk` &then=`[[+row_tpl]]Theme` &else=`[[+row_tpl]]`]]`
&box_type=`[[+[[+prefix]].box_type]]`
&row_type=`[[+[[+prefix]].row_type]]`
&column_type=`[[+[[+prefix]].column_type]]`
&grid_settings=`[[+[[+prefix]].grid_settings]]`
&cols=`[[+cols:textToNumber]]`
&padding=`[[+padding]]`
&alignment=`[[+alignment]]`
&responsive=`[[+responsive]]`
&prefix=`[[+prefix]]`
&unique_idx=`[[+uid]][[!#GET.q:stripString=`[[*uri]]`:clipString=`-1`:replace=`/==_`]]`
&title_field=`[[+title_field]]`
&level=`[[+title_hierarchy]]`
&title_classes=`[[+title_hierarchy:is=`span`:then=`tiny`]]`
&show_subtitle=`[[+show_subtitle]]`
&show_introtext=`[[+show_introtext]]`
&link_text=`[[If? &subject=`[[+link_text]]` &operator=`isnull` &then=`0` &else=`[[+link_text]]`]]`
&de_emphasize=`[[+de_emphasize]]`
&img_type=`[[+img_type]]`
&icon_type=`[[+icon_type]]`
&lazy_load=`[[+lazy_load]]`
A couple of placeholders need to be set, before the settings are evaluated in the snippet call.
No preview available.
[[Switch:toPlaceholder=`[[+prefix]].sortdir`?
&get=`[[+sortby]]_[[+sortdir]]`
&c1=`menuindex_0` &do1=`ASC`
&c2=`publishedon_0` &do2=`DESC`
&c3=`createdon_0` &do3=`DESC`
&c4=`pagetitle_0` &do4=`ASC`
&c5=`menuindex_1` &do5=`DESC`
&c6=`publishedon_1` &do6=`ASC`
&c7=`createdon_1` &do7=`ASC`
&c8=`pagetitle_1` &do8=`DESC`
&default=`DESC`
]]
[[If? &subject=`[[+prefix]]` &operator=`contains` &operand=`__` &then=`
<div class="ui info message">[[%romanesco.cb_preview.overview_note? &topic=`manager` &namespace=`romanescobackyard`]]</div>
`]]
Outer div for all overviews, containing all the necessary placeholders.
No preview available.
<div class="ui [[+cols:textToNumber]] [[+grid_settings]] [[+responsive:replace=`,== `]] [[+alignment]] [[+padding]] nested overview [[+box_type]]">
[[+output]]
</div>
No preview available.
<[[+level:replace=`span==div`]] class="title">
<i class="dropdown icon"></i>
[[+heading]]
</[[+level:replace=`span==div`]]>
<div class="content">
[[+content]]
</div>
The content inside a flexible Accordion or Tab CB is entered as a nested layout, meaning it's wrapped in columns. To properly display these columns in a grid, an additional wrapper is needed.
No preview available.
<div class="ui stackable doubling [[+alignment]] [[+divider]] equal width grid">
[[+content]]
</div>
No preview available.
[[Switch:toPlaceholder=`menu_attachment_[[+unique_idx]]`?
&get=`[[+menu_position]]`
&c1=`top` &do1=`bottom attached`
&c2=`right` &do2=``
&c3=`bottom` &do3=`top attached`
&c4=`left` &do4=``
&default=`bottom attached`
]]
[[+tab_type:contains=`basic`:then=`basic vertical`:else=`[[+menu_attachment_[[+unique_idx]]]]`:toPlaceholder=`tab_segment`]]
[[+tab_type:contains=`pointing regular`:or:contains=`pointing segments`:then=``:else=`[[+tab_segment]]`:toPlaceholder=`tab_segment`]]
<div class="ui reducible [[+tab_segment]] [[+padding]] [[+idx:eq=`1`:then=`active`]] tab segment"
data-tab="segment-[[+unique_idx]]-[[+idx]]"
data-heading="[[+heading]]"
data-level="[[+level:empty=`h4`]]"
data-subtitle="[[+subtitle:empty=``]]"
data-icon="[[+icon:empty=``]]"
data-menu-position="[[+menu_position]]"
role="tabpanel"
aria-hidden="false">
[[+content]]
</div>
A template for the Cards CB repeater. It uses the common pattern of an image, header, subtitle and link button.
No preview available.
[[+image:notempty=`
<a href="[[+link]]" class="image">
[[+image]]
</a>
`]]
<div class="content">
[[+heading:notempty=`
<[[+level]] class="header">
<a href="[[+link]]">[[+heading]]</a>
</[[+level]]>
`]]
[[+subtitle:notempty=`
<div class="meta">[[+subtitle]]</div>
`]]
[[+content:notempty=`
<div class="description">
[[+content]]
</div>
`]]
</div>
[[+button_text:notempty=`
<a href="[[+link]]" class="ui [[+emphasize:eq=`1`:then=`large primary`]] bottom attached button">[[+button_text]]</a>
`]]
Similar to cardsRowBasic, but lets the parent decide if the card should be a link or not. In other words: it contains NO links itself. Can be (ab)used to create cards without any link at all.
No preview available.
[[+image:notempty=`
<figure class="image">
[[+image]]
</figure>
`]]
<div class="content">
[[+heading:notempty=`
<div class="header">
<[[+level]]>[[+heading]]</[[+level]]>
</div>
`]]
[[+subtitle:notempty=`
<div class="meta">[[+subtitle]]</div>
`]]
[[+content:notempty=`
<div class="description">
[[+content]]
</div>
`]]
</div>
Template for Cards (Flexible) repeater. Instead of a predefined template based on the available input fields, the editor can use a nested layout to add any CB field as content for the card.
No preview available.
[[If?
&subject=`[[+box_type]][[+link:eq=``:then=`break`]]`
&operator=`eq`
&operand=`link`
&then=`
<a href="[[+link]]" class="[[+emphasize:eq=`1`:then=`ui raised`]] [[+box_type]] card">
[[+content]]
</a>`
&else=`
<div class="[[+emphasize:eq=`1`:then=`ui raised`]] card">
[[+content]]
</div>`
]]
The correct card template is selected inside this wrapper. This is to avoid duplicate HTML and to keep the CB field flexible, logical and easy to use.
No preview available.
[[If?
&subject=`[[+box_type]][[+link:eq=``:then=`break`]]`
&operator=`is`
&operand=`link`
&then=`
<a href="[[+link]]" class="[[+emphasize:eq=`1`:then=`ui raised`]] link card">
[[$cardsRowBasicLink? &uid=`[[+unique_idx]]`]]
</a>`
&else=`
<div class="[[+emphasize:eq=`1`:then=`ui raised`]] card">
[[$cardsRowBasic[[+link:eq=``:then=`Link`]]? &uid=`[[+unique_idx]]`]]
</div>`
]]
Basic image pattern, for use in gallery or slider. It can contain a lightbox link, which opens an enlargement of the image in a full-screen overlay window.
No preview available.
<div class="column">
<figure class="ui rounded [[+classes]] [[+extension:lcase]] [[+lightbox:eq=`1`:then=`lightbox`]] image" data-idx="[[+idx]]">
[[[[modifiedIf?
&subject=`[[+extension:lcase]]`
&operator=`EQ`
&operand=`svg`
&then=`$svg? &classes=`regular` &url=`[[+url]]` &alt=`[[+title:empty=`[[%romanesco.gallery.alt_fallback]]`]]` &uid=`[[+unique_idx]]``
&else=`$imgResponsiveGallery? &alt=`[[+title:empty=`[[%romanesco.gallery.alt_fallback]]`]]` &uid=`[[+unique_idx]]``
]]]]
</figure>
</div>
This pattern adds a caption to the image. You can choose to either show the caption in the lightbox enlargement only, or also as a subtitle in the image grid (or slide).
No preview available.
<div class="column">
<figure class="ui [[+column_type]] [[+lightbox:eq=`1`:then=`lightbox`]] image" data-idx="[[+idx]]">
[[+image]]
[[+column_type:isnot=`minimal`:then=`
<figcaption class="content">
[[+caption:nl2br:stripTags=`<br>,<strong>,<em>,<cite>,<a>`]]
</figcaption>
`]]
</figure>
</div>
This pattern evaluates if you should be able to open the image in a lightbox. If so, the required classes and properties are added to the default image.
No preview available.
<figure class="[[+classes]]">
<img class="ui lazy image"
data-src="[[+src]]"
src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 [[+width]] [[+height]]'%3E%3C/svg%3E"
alt="[[+title:htmlent]]"
>
[[+caption:notempty=`
<figcaption>
[[+caption]]
</figcaption>
`]]
</figure>
A basic pattern for displaying a large page header + subtitle. Because the hero unit is mainly there for presentation purposes, the titles contain no specific HTML hierarchy (like H1/H2).
No preview available.
<div class="ui grid container">
<div class="sixteen wide mobile twelve wide tablet ten wide computer column">
<div class="ui large inverted header">[[+header_title]]</div>
<p>[[+header_subtitle]]</p>
</div>
</div>
This hero unit is adapted for use in vertical scenarios, meaning there are no grid classes present. The content is stacked as link items instead.
No preview available.
<div id="hero" class="ui link items">
[[[[[[If?
&subject=`[[getRawTVValue? &tv=`header_cta`]]`
&operator=`EQ`
&operand=`@INHERIT`
&then=`#[[*parent]].header_inheritance:contains=`inherit_cta`:then=`$ctaHeaderVertical`:else=```
&else=`
If?
&subject=`[[getRawTVValue? &tv=`header_cta`]]`
&operator=`isnot`
&operand=`@INHERIT`
&then=`$ctaHeaderVertical`
&else=``
`
]]]]]]
</div>
No preview available.
<script>
window.addEventListener('DOMContentLoaded', function() {
var [[+var]] = new Swiper ('#[[+id]].swiper', {
init: [[+init]],
resizeObserver: true,
slidesPerView: [[+cols]],
slidesPerGroup: [[+slides_to_scroll]],
spaceBetween: [[+spacing]],
watchOverflow: [[+overflow]],
loop: [[+loop]],
freeMode: {
enabled: [[+free]],
minimumVelocity: 0.2,
momentum: true,
sticky: true
},
centeredSlides: [[+center]],
autoHeight: [[+auto_height]],
autoplay: [[+autoplay]],
keyboard: [[+keyboard]],
effect: '[[+transition]]',
navigation: {
nextEl: '.[[+id]].swiper-button-next',
prevEl: '.[[+id]].swiper-button-prev',
},
pagination: {
el: '.[[+id]].swiper-pagination',
type: '[[+pagination]]',
clickable: [[+clickable]],
},
[[+breakpoints]]
[[+effects]]
});
[[+init_lightbox]]
// Update lazy load with each new slide
[[+var]].on('slideChange', function () {
lazyLoadInstance.update();
});
});
</script>
No preview available.
<script>
window.addEventListener('DOMContentLoaded', function() {
// Prepare container for Swiper usage
function create[[+var]](container) {
container.addClass('swiper');
container
.find('.nested.overview')
.addClass('swiper-wrapper')
.removeClass('stackable')
.removeClass('doubling')
;
container
.find('.gallery')
.addClass('swiper-wrapper')
.removeClass('stackable')
.removeClass('doubling')
;
container
.find('.swiper-wrapper-mobile')
.addClass('swiper-wrapper')
;
container
.find('.swiper-wrapper > *')
.addClass('swiper-slide')
;
return new Swiper ('#[[+id]].swiper', {
init: [[+init]],
slidesPerView: 1,
slidesPerGroup: [[+slides_to_scroll]],
spaceBetween: [[+spacing]],
loop: [[+loop]],
freeMode: {
enabled: [[+free]],
minimumVelocity: 0.2,
momentum: true,
sticky: true
},
centeredSlides: [[+center]],
autoHeight: [[+auto_height]],
autoplay: [[+autoplay]],
effect: '[[+transition]]',
navigation: {
nextEl: '.[[+id]].swiper-button-next',
prevEl: '.[[+id]].swiper-button-prev',
},
pagination: {
el: '.[[+id]].swiper-pagination',
type: '[[+pagination]]',
clickable: [[+clickable]],
},
[[+breakpoints]]
[[+effects]]
});
}
// Clone original container
// Life saving SO question: https://stackoverflow.com/questions/921290/
let mobile[[+var]] = document.querySelector('#[[+id]]').cloneNode( true );
let desktop[[+var]] = document.querySelector('#[[+id]]').cloneNode( true );
desktop[[+var]].setAttribute('id','[[+id]]-original');
MQ.addQuery(
{
context: ['mobile'],
match: function() {
// Make sure the original container is in place
$('#[[+id]]-original').replaceWith(mobile[[+var]]);
// Initialize Swiper
let [[+var]] = create[[+var]]($('#[[+id]].swiper-mobile'));
// Update lazy load with each new slide
[[+var]].on('slideChange', function () {
lazyLoadInstance.update();
});
},
unmatch: function() {
// Revert to default layout with cloned container
$('#[[+id]].swiper-mobile').replaceWith(desktop[[+var]]);
}
}
);
});
</script>
No preview available.
[[+cell:toPlaceholder=`head_[[+colIdx]]_[[+idx]]`]]
[[+idx:eq=`1`:then=`
[[+table_head:eq=`1`:then=`
<th>[[+cell]]</th>
`:else=`
<td>[[+cell]]</td>
`]]
`:else=`
[[$tableColumnBasicTD? &uid=`[[+unique_idx]]_[[+idx]]_[[+colIdx]]`]]
`]]
No preview available.
[[+idx:eq=`1`:then=`
[[+table_head:eq=`1`:then=`
<thead>
<tr>[[+row]]</tr>
</thead>
<tbody>
`:else=`
<tbody>
<tr>[[+row]]</tr>
`]]
`:else=`
<tr>[[+row]]</tr>
`]]
No preview available.
<aside id="author-about" class="ui vertical stripe segment [[setBackground? &background=`[[++layout_background_default]]`]]">
<div class="ui container">
<div class="ui segment">
<div class="ui two column equal width grid">
<div class="compact column">
<a class="ui small image" href="[[~[[+id]]]]">
[[ImagePlus:empty=`[[$imgOverviewFallback? &img_type=`square`]]`?
&tvname=`person_image`
&docid=`[[+id]]`
&options=`w=400&h=400&q=[[++romanesco.img_quality]]&zc=1`
&type=`tpl`
&tpl=`imgOverviewFixed`
]]
</a>
<p>[[$socialConnectButtonsPerson? &button_type=`basic`]]</p>
</div>
<div class="column">
<h2>[[%romanesco.article.about_author]], <a href="[[~[[+id]]]]">[[+menutitle:empty=`[[+pagetitle]]`]]</a></h2>
[[+introtext]]
</div>
</div>
</div>
</div>
</aside>
No preview available.
<form id="form-search" action="[[~[[+landing:default=`[[*id]]`]]]]" method="[[+method:default=`get`]]" role="search">
<div class="ui [[+search_field_classes:default=`tiny fluid`]] icon input">
<input type="search" name="[[+searchIndex]]" id="[[+searchIndex]]" value="[[+searchValue]]" placeholder="[[%romanesco.search.field_placeholder]]">
<input type="hidden" name="id" value="[[+landing:default=`[[*id]]`]]">
<i class="search icon link"></i>
</div>
</form>
No preview available.
<div id="search-fullscreen">
<button type="button" class="close">×</button>
<form action="[[~[[+landing:default=`[[*id]]`]]]]" method="[[+method:default=`get`]]" role="search">
<input type="search" name="[[+searchIndex]]" id="[[+searchIndex]]" value="[[+searchValue]]" placeholder="[[%bootquest.form.search_field_placeholder]]" autocomplete="off">
<input type="hidden" name="id" value="[[+landing:default=[[*id]]]]">
<input type="submit" name="submit-search" class="btn btn-primary btn-lg" value="[[%bootquest.form.search_button_value]]">
</form>
</div>
No preview available.
<p class="lead">[[+resultInfo]]</p>
[[+results]]
<div class="ui vertical stripe segment">
<div class="ui pagination menu">
[[+paging]]
</div>
</div>
No preview available.
<section class="ui segment">
<h2>
<span class="idx">[[+idx]].</span>
<a href="[[+link]]" title="[[+longtitle]]">[[+pagetitle]]</a>
</h2>
<p class="meta">
[[#[[+parent]].pagetitle:notempty=`
<span class="ui basic label"><i class="folder open icon"></i>[[#[[+parent]].pagetitle]]</span>
`]]
</p>
<p class="extract"><em>[[[[+extract:contains=`=``:then=`+introtext:stripTags=`span``:else=`+extract`]]]]</em></p>
<a class="primary ui button" href="[[+link]]" title="[[+longtitle]]">
[[%romanesco.search.result_button_text]]
</a>
</section>
commentScriptCommento
Included patterns
Referring patterns