tra('Show Pages'),
'documentation' => 'PluginShowPages',
'description' => tra('Find pages by searching within page names'),
'prefs' => [ 'wikiplugin_showpages' ],
'iconname' => 'search',
'introduced' => 1,
'params' => [
'find' => [
'required' => true,
'name' => tra('Find'),
'description' => tra('Search criteria'),
'since' => '1',
'default' => '',
],
'max' => [
'required' => false,
'name' => tra('Result Count'),
'description' => tra('Maximum amount of results displayed.'),
'since' => '1',
'filter' => 'int',
'default' => '',
],
'display' => [
'required' => false,
'name' => tra('Display'),
'description' => tra('Display page name and/or description. Both displayed by default.'),
'since' => '1',
'filter' => 'text',
'default' => 'name|desc',
'options' => [
['text' => '', 'value' => ''],
['text' => tra('Name'), 'value' => 'name'],
['text' => tra('Description'), 'value' => 'desc'],
['text' => tra('Name & Description'), 'value' => 'name|desc']
]
]
]
];
}
function wikiplugin_showpages($data, $params)
{
global $tikilib, $prefs;
extract($params, EXTR_SKIP);
if (! isset($find)) {
return ("missing find parameter for plugin SHOWPAGES
");
}
if (! isset($max)) {
$max = -1;
}
if (! isset($display) || (strpos($display, 'name') === false && strpos($display, 'desc') === false)) {
$display = 'name|desc';
}
$data = $tikilib->list_pages(0, $max, 'pageName_asc', $find, null, false);
$text = '';
foreach ($data["data"] as $page) {
if (isset($prefs['feature_wiki_description']) && $prefs['feature_wiki_description'] == 'y' && strpos($display, 'desc') !== false) {
$desc = $tikilib->page_exists_desc($page["pageName"]);
} else {
$desc = '';
}
$text .= "";
$text .= (strpos($display, 'name') !== false || strlen($desc) == 0 ? $page["pageName"] : $desc);
$text .= "";
$text .= (strpos($display, 'name') !== false && $desc !== $page["pageName"] && strlen($desc) > 0 ? " - $desc" : "");
$text .= "
";
}
return $text;
}