You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

76 lines
2.3 KiB

<?php
// (c) Copyright by authors of the Tiki Wiki CMS Groupware Project
//
// All Rights Reserved. See copyright.txt for details and a complete list of authors.
// Licensed under the GNU LESSER GENERAL PUBLIC LICENSE. See license.txt for details.
// $Id$
function wikiplugin_votings_info()
{
return [
'name' => tra('Votings'),
'documentation' => 'PluginVotings',
'description' => tra('Saves voting information in Smarty variables for display'),
'prefs' => [ 'wikiplugin_votings' ],
'format' => 'html',
'iconname' => 'thumbs-up',
'introduced' => 8,
'params' => [
'objectkey' => [
'required' => true,
'name' => tra('Object Key'),
'description' => tra('Object key that is used to record votes'),
'since' => '8.0',
'filter' => 'text',
'default' => '',
],
'returnval' => [
'required' => false,
'name' => tra('Return value'),
'description' => tra('Value to display as output of plugin'),
'since' => '8.0',
'filter' => 'text',
'default' => '',
],
]
];
}
function wikiplugin_votings($data, $params)
{
global $user;
if (! isset($params['objectkey'])) {
return '';
} else {
$key = $params['objectkey'];
}
$smarty = TikiLib::lib('smarty');
$votings = TikiDb::get()->table('tiki_user_votings');
$data = $votings->fetchRow(['count' => $votings->count(), 'total' => $votings->sum('optionId')], ['id' => $key]);
$result = $votings->fetchAll(['user'], ['id' => $key]);
foreach ($result as $res) {
$field['users'][] = $res['user'];
}
$field['numvotes'] = $data['count'];
$field['total'] = $data['total'];
if ($field['numvotes']) {
$field['voteavg'] = $field['total'] / $field['numvotes'];
} else {
$field['voteavg'] = 0;
}
// be careful optionId is the value - not the optionId
$field['my_rate'] = $votings->fetchOne('optionId', ['id' => $key, 'user' => $user]);
$smarty->assign('wp_votings', $field);
if (! empty($params['returnval']) && isset($field[$params['returnval']])) {
return $field[$params['returnval']];
} else {
return '';
}
}