From: Filipus K. <ch...@gm...> - 2011-08-31 16:13:14
|
Ah, I see. TIA. Le 2011-08-31 12:08, Nelson Ko a écrit : > When used in pretty tracker page, the plugin can be put on top the > pretty tracker template and then the smarty var used within the > template. > > I'll document this more later... > > On Wed, Aug 31, 2011 at 10:54 AM, Filipus Klutiero<ch...@gm...> wrote: >> Hi Nelson, >> are you planning to document this more? I don't understand how to use it >> without the returnval parameter. >> >> Le 2011-08-30 23:46, nk...@us... a écrit : >>> Revision: 36718 >>> http://tikiwiki.svn.sourceforge.net/tikiwiki/?rev=36718&view=rev >>> Author: nkoth >>> Date: 2011-08-31 03:46:44 +0000 (Wed, 31 Aug 2011) >>> Log Message: >>> ----------- >>> [NEW] New way to get voting/rating information >>> >>> Added Paths: >>> ----------- >>> trunk/lib/wiki-plugins/wikiplugin_votings.php >>> >>> Added: trunk/lib/wiki-plugins/wikiplugin_votings.php >>> =================================================================== >>> --- trunk/lib/wiki-plugins/wikiplugin_votings.php (rev 0) >>> +++ trunk/lib/wiki-plugins/wikiplugin_votings.php 2011-08-31 03:46:44 UTC (rev 36718) >>> @@ -0,0 +1,66 @@ >>> +<?php >>> +// (c) Copyright 2002-2011 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. >>> + >>> +function wikiplugin_votings_info() { >>> + return array( >>> + 'name' => tra('Votings'), >>> + 'documentation' => 'PluginVotings', >>> + 'description' => tra('Saves voting information in smarty variables for display'), >>> + 'prefs' => array( 'wikiplugin_votings' ), >>> + 'format' => 'html', >>> + 'params' => array( >>> + 'objectkey' => array( >>> + 'required' => true, >>> + 'name' => tra('Object Key'), >>> + 'description' => tra('Object key that is used to record votes'), >>> + 'filter' => 'text', >>> + 'default' => '', >>> + ), >>> + 'returnval' => array( >>> + 'required' => false, >>> + 'name' => tra('Return value'), >>> + 'description' => tra('Value to display as output of plugin'), >>> + 'filter' => 'text', >>> + 'default' => '', >>> + ), >>> + ) >>> + ); >>> +} >>> +function wikiplugin_votings($data, $params) { >>> + global $smarty, $user; >>> + if (!isset($params['objectkey'])) { >>> + return ''; >>> + } else { >>> + $key = $params['objectkey']; >>> + } >>> + >>> + $votings = TikiDb::get()->table('tiki_user_votings'); >>> + >>> + $data = $votings->fetchRow(array( >>> + 'count' => $votings->count(), >>> + 'total' => $votings->sum('optionId'), >>> + ), array('id' => $key)); >>> + >>> + $result = $votings->fetchAll(array('user'), array('id' => $key)); >>> + >>> + foreach ($result as $res) { >>> + $field['users'][] = $res['user']; >>> + } >>> + >>> + $field['numvotes'] = $data['count']; >>> + $field['total'] = $data['total']; >>> + $field['voteavg'] = $field['total'] / $field['numvotes']; >>> + // be careful optionId is the value - not the optionId >>> + $field['my_rate'] = $votings->fetchOne('optionId', array('id' => $key, 'user' => $user)); >>> + >>> + $smarty->assign('wp_votings', $field); >>> + >>> + if (!empty($params['returnval'])&& isset($field[$params['returnval']])) { >>> + return $field[$params['returnval']]; >>> + } else { >>> + return ''; >>> + } >>> +} >>> |