Acme-CPANModulesBundle-Import-PerlDancerAdvent-2018
view release on metacpan or search on metacpan
devdata/http_advent.perldancer.org_2018_15 view on Meta::CPAN
template 'books' => _paginator($books, $curr);
};
sub _paginator {
my ($books, $curr) = @_;
my $items = scalar(@$books);
my $paginator = paginator(
curr => $curr,
items => $items,
base_url => '/books',
mode => 'path'
);
my $page_size = $paginator->page_size;
my $i = ($curr - 1) * $page_size;
my $j = ($i + $page_size) - 1;
my $results = [ @$books[$i..$j] ];
return {
results => $results,
paginator => $paginator,
prev_l => $paginator->prev,
next_l => $paginator->next,
};
}</pre>
<h3><a name="template"></a>Template</h3>
<pre class="prettyprint"><% IF results.size %>
<ul>
<% FOREACH book IN results %>
<% IF book.name %>
<li><b><% book.name %></b> &nbsp; <a href="/edit/book/<% book.id %>">Edit</a></li>
<% END %>
<% END %>
</ul>
<br/>
<hr/>
<a href="/books/<% prev_l %>">[prev]</a>...<a href="/books/<% next_l %>">[next]</a>
<hr/>
<% ELSE %>
<ul><li><b>No book found.</b></li></ul>
<% END %></pre>
<h2><a name="conclusion"></a>CONCLUSION</h2>
<p>This is all you need to get started. If you feel lucky, you can take a look at <a href="https://metacpan.org/pod/Paginator::Lite">Paginator::Lite</a> for more insights. Any questions/suggestions, feel free to get in touch mohammad.anwar@yahoo.com....
<h2><a name="author"></a>AUTHOR</h2>
<p>This article has been written by Mohammad S Anwar for the Perl Dancer Advent Calendar 2018.</p>
<h2><a name="copyright"></a>COPYRIGHT</h2>
<p>No copyright retained. Enjoy.</p>
<p>Mohammad S Anwar</p>
</div>
<div id="disqus_thread"></div>
<script type="text/javascript">
/* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
var disqus_shortname = 'danceradvent'; // required: replace example with your forum shortname
/* * * DON'T EDIT BELOW THIS LINE * * */
(function() {
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
</script>
<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
</div>
<div id="footer">
Powered by the
<a href="http://perldancer.org/" title="Perl Dancer - Perl web framework">
Dancer Perl web framework</a>
</div>
</div>
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-25174467-2']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
</body>
</html>
( run in 0.537 second using v1.01-cache-2.11-cpan-39bf76dae61 )