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.
 
 
 
 
 
 

110 lines
3.6 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_dynamicvariables_info()
{
return [
'name' => tra('List of dynamic variables'),
'documentation' => 'PluginDynamicvariables',
'description' => tra('Show dynamic variables and their values.'),
'prefs' => [ 'wikiplugin_dynamicvariables' ],
'iconname' => 'code',
'introduced' => 15,
'params' => [
'layout' => [
'required' => false,
'name' => tra('Layout'),
'description' => tra('Set to table to show results in a table (not shown in a table by default)'),
'since' => '15.0',
'filter' => 'alpha',
'default' => '',
'options' => [
['text' => '', 'value' => ''],
['text' => tra('Table'), 'value' => 'table']
]
],
'linesep' => [
'required' => false,
'name' => tra('Separator'),
'description' => tra('String to use between elements of the list if table layout is not used'),
'since' => '15.0',
'filter' => 'xss',
'default' => ', ',
],
/*
'sort' => array(
'required' => false,
'name' => tra('Sort order'),
'description' => tra('Set to sort in ascending or descending order (unsorted by default'),
'default' => '',
'options' => array(
array('text' => '', 'value' => ''),
array('text' => tra('Ascending'), 'value' => 'asc'),
array('text' => tra('Descending'), 'value' => 'desc')
)
),
*/
]
];
}
function wikiplugin_dynamicvariables($data, $params)
{
global $prefs;
$tikilib = TikiLib::lib('tiki');
$layout = isset($params['layout']) ? $params['layout'] : '';
$linesep = isset($params['linesep']) ? $params['linesep'] : '';
if (! isset($linesep)) {
$linesep = '<br>';
}
if (! isset($max)) {
$numRows = -1;
} else {
$numRows = (int) $max;
}
$filter = '';
$bindvars = [];
$pre = '';
$post = '';
$oparens = '(';
$cparens = ')';
if (isset($layout) && $layout == 'table') {
$pre = '<table class=\'table table-striped table-hover\' id=\'' . $tikilib->now . '\'><tr>'
. '<th>' . tra('Parsed result') . '</th>'
. '<th>' . tra('Syntax') . '</th>'
. '<th>' . tra('Value per database') . '</th>'
. '</tr><tr><td>';
$linesep = '</td></tr><tr><td>';
$sep = '</td><td>';
$post = '</td></tr></table>';
$oparens = '';
$cparens = '';
}
$query = 'SELECT * FROM `tiki_dynamic_variables` ' . $filter ;
$result = $tikilib->query($query, $bindvars, $numRows);
$ret = [];
$tag = '';
if ($prefs['wiki_dynvar_style'] == 'single') {
$tag = '%';
} elseif ($prefs['wiki_dynvar_style'] == 'double') {
$tag = '%%';
}
while ($row = $result->fetchRow()) {
$res = $tag . $row['name'] . $tag . $sep . ' ' . $oparens . '~np~' . $tag . $row['name'] . $tag . '~/np~'
. $cparens . ' ' . $sep . $row['data'] ;
$ret[] = $res;
}
return $pre . implode($linesep, $ret) . $post;
}