tra('Category Orphans'),
'documentation' => 'PluginCatOrphans',
'description' => tra('List objects that are not categorized'),
'prefs' => [ 'feature_categories', 'wikiplugin_catorphans' ],
'iconname' => 'structure',
'introduced' => 1,
'params' => [
'objects' => [
'required' => false,
'name' => tra('Object'),
'description' => tr('Determine which type of objects are shown (default is %0)', 'wiki'),
'since' => '1',
'default' => 'wiki',
'filter' => 'text',
'options' => [
['text' => tra('Wiki Pages'), 'value' => 'wiki'],
['text' => tra('File Galleries'), 'value' => 'file gallery'],
['text' => tra('Articles'), 'value' => 'article'],
['text' => tra('Trackers'), 'value' => 'tracker'],
['text' => tra('Blogs'), 'value' => 'blog'],
['text' => tra('Calendars'), 'value' => 'calendar'],
['text' => tra('Forums'), 'value' => 'forum'],
]
],
'max' => [
'required' => false,
'name' => tra('Max'),
'description' => tr('Maximum number of items. Use %0 for unlimited. Default is the site admin setting
for maximum records.', '-1'),
'since' => '1',
'default' => '$prefs[\'maxRecords\']',
'filter' => 'int',
],
'offset' => [
'required' => false,
'name' => tra('Result Offset'),
'description' => tra('Result number at which the listing should start (default is no offset)'),
'since' => '1',
'default' => 0,
'filter' => 'int',
],
],
];
}
function wikiplugin_catorphans($data, $params)
{
global $prefs;
$access = TikiLib::lib('access');
$access->check_feature('feature_categories');
$smarty = TikiLib::lib('smarty');
$tikilib = TikiLib::lib('tiki');
$categlib = TikiLib::lib('categ');
$default = ['offset' => 0, 'max' => $prefs['maxRecords'], 'objects' => 'wiki'];
$params = array_merge($default, $params);
extract($params, EXTR_SKIP);
// check required objects parameter
if ($params['objects'] !== 'wiki' && $params['objects'] !== 'file gallery' && $params['objects'] !== 'article' && $params['objects'] !== 'tracker' && $params['objects'] !== 'blog' && $params['objects'] !== 'calendar' && $params['objects'] !== 'forum') {
return ("Wrong objects parameter - only wiki, file gallery, article, tracker, blog, calendar, and forum allowed at present");
}
if (! empty($_REQUEST['offset'])) {
$offset = $_REQUEST['offset'];
}
// assign the various smarty variables and get the data for the individual object types
$smarty->assign('objecttype', $objects);
if ($objects == 'wiki') {
$listobjects = $categlib->get_catorphan_object_type($offset, $max, 'wiki page', 'pages', 'page_Id');
} elseif ($objects == 'file gallery') {
$listobjects = $categlib->get_catorphan_object_type($offset, $max, 'file gallery', 'file_galleries', 'galleryId');
} elseif ($objects == 'article') {
$listobjects = $categlib->get_catorphan_object_type($offset, $max, 'article', 'articles', 'articleId');
} elseif ($objects == 'tracker') {
$listobjects = $categlib->get_catorphan_object_type($offset, $max, 'tracker', 'trackers', 'trackerId');
} elseif ($objects == 'blog') {
$listobjects = $categlib->get_catorphan_object_type($offset, $max, 'blog', 'blogs', 'blogId');
} elseif ($objects == 'calendar') {
$listobjects = $categlib->get_catorphan_object_type($offset, $max, 'calendar', 'calendars', 'calendarId');
} elseif ($objects == 'forum') {
$listobjects = $categlib->get_catorphan_object_type($offset, $max, 'forum', 'forums', 'forumId');
}
$smarty->assign_by_ref('orphans', $listobjects['data']);
$smarty->assign('pagination', ['cant' => $listobjects['cant'], 'step' => $max, 'offset' => $offset]);
$smarty->assign('totalcount', $listobjects['countall']);
$out = '~np~' . $smarty->fetch('wiki-plugins/wikiplugin_catorphans.tpl') . '~/np~';
$smarty->assign('pagination', null);
return $out;
}