Reference - Data types - range


App: regression/framework - Page: data/a_letter_range_named_by_the_type_option
PHP
HTML
data/a_letter_range_named_by_the_type_option.pad
Result
{data 'dl', type='range'}a..e{/data}
{dl}
{$dl},
{/dl}


App: regression/framework - Page: data/a_range_is_recognised_on_sight
PHP
HTML
data/a_range_is_recognised_on_sight.pad
Result
{data 'dr'}2..6{/data}
{dr}
{$dr},
{/dr}


App: regression/framework - Page: data/a_range_with_a_negative_or_decimal_end_counts_its_members
PHP
HTML
data/a_range_with_a_negative_or_decimal_end_counts_its_members.pad
Result
{data 'r5'}-3..3{/data}[{r5}{$r5},@else@empty{/r5}]
{data 'r6'}-5..-1{/data}[{r6}{$r6},{/r6}]
{data 'r9'}1.5..3{/data}[{r9}{$r9},{/r9}]
[{pad data='0..-2', name='v'}{$v},@else@empty{/pad}]


App: regression/pages - Page: misc/datatypes
PHP
misc/datatypes.php
HTML
misc/datatypes.pad
Result
<?php

// The two data types nothing else parses. The html type runs the input through tidy into
// well-formed XML and then the XML parser; the tree nests by element, so the PHP half
// walks to the values and the template prints them. The range type is template-side.

$tree = padData ( '<html><head><title>T</title></head><body><p>alpha</p><p>beta</p></body></html>', 'html' );

$title = $tree ['head'] [0] ['title'] ?? '?';
$paras = implode ( ',', $tree ['body'] [0] ['p'] ?? [] );

?>
html title: {$title}
html paragraphs: {$paras}
range: {data 'dr'}5..9{/data}{dr}{$dr} {/dr}
range letters: {data 'dl', type='range'}p..t{/data}{dl}{$dl}{/dl}


App: tags - Page: examples/data/3-list
PHP
HTML
examples/data/3-list.pad
Result
{meta title='Ranges, lists and a source parameter', about='A range, an evaluated list, and data given as the second parameter instead of content.'}
{data 'dataLetters'}a..f{/data}
{data 'dataSums'}(1 + 1, 2 * 3, 10 - 7){/data}
{data 'dataSteps', '1..4'}
<p>{dataLetters}{$dataLetters} {/dataLetters}</p>
<p>{dataSums}{$dataSums} {/dataSums}</p>
<p>{dataSteps}step {$dataSteps}{notLast@dataSteps}, {/notLast@dataSteps}{/dataSteps}</p>