After some effort and endless searching for articles to lead me in the right direction, I'm stumped. I'm using Twig and have the following installed:
ProcessWire 3.0.98
Template Engine Factory 1.1.3
Template Engine Twig 1.1.0
In ready.php, I've added the following code (which works wonderful without Twig)
$wire->addHookProperty('Page::summarize', function($event) {
$fieldName = $event->arguments(0);
if(!$fieldName) throw new WireException("No field provided");
// get max length or use 300 as default if none provided
$maxLength = (int) $event->arguments(1);
if(!$maxLength) $maxLength = 300;
$page = $event->object;
$value = $page->get($fieldName);
if(!strlen($value)) {
// requested value is blank, nothing more to do
$event->return = '';
return;
}
// get beginning of value, without any HTML in it (if any)
$value = mb_substr(strip_tags($value), 0, $maxLength);
// if output formatting on, make sure value is entity encoded
if($page->of()) $value = $event->sanitizer->entities1($value);
if(strlen($value) >= $maxLength) {
// limit length of returned value between words
// by truncating to the last space character
$value = substr($value, 0, strrpos($value, ' '));
// append an ellipsis to indicate there is more
$value .= '…';
}
$event->return = $value;
});
In my news.php template file, I have the following:
<?php
namespace ProcessWire;
$results = $page->children("template=news, limit=10, sort=-created");
$view->set("results",$results);
And in news.html.twig I use something like this:
{{ summarize('result.body', 500) }}
Exception: Unknown "summarize" function. (in twig\site\assets\cache\FileCompiler\site\modules\TemplateEngineTwig\TemplateEngineTwig.module line 94)
So far Processwire is awesome, I'm loving it!