From: <li...@us...> - 2010-07-31 23:40:39
|
Revision: 28235 http://tikiwiki.svn.sourceforge.net/tikiwiki/?rev=28235&view=rev Author: lindonb Date: 2010-07-31 23:40:32 +0000 (Sat, 31 Jul 2010) Log Message: ----------- [ENH] Add ability to apply number formatting to numeric tracker fields Modified Paths: -------------- trunk/lib/trackers/trackerlib.php trunk/templates/tiki-view_tracker_item.tpl trunk/templates/tracker_item_field_input.tpl trunk/templates/tracker_item_field_value.tpl Added Paths: ----------- trunk/lib/smarty_tiki/modifier.number_format.php Added: trunk/lib/smarty_tiki/modifier.number_format.php =================================================================== --- trunk/lib/smarty_tiki/modifier.number_format.php (rev 0) +++ trunk/lib/smarty_tiki/modifier.number_format.php 2010-07-31 23:40:32 UTC (rev 28235) @@ -0,0 +1,45 @@ +<?php +// (c) Copyright 2002-2010 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: modifier.number_format.php $ + +/** + * Smarty plugin + * @package Smarty + * @subpackage plugins + */ + +/** + * Smarty substring modifier plugin + * + * Type: modifier<br> + * Name: number_format<br> + * Purpose: Format a number. Same arguments as + * PHP number_format function. + * @link based on number_format(): http://www.php.net/manual/function.number-format.php + * @author lindon + * @param number + * @param decimals: sets the number of decimal places (default=0) + * @param dec_point: sets the separator for the decimal point + * @param thousands: thousands separator + * @return number + */ +function smarty_modifier_number_format($number, $decimals, $dec_point = null, $thousands = null) { + $dec_point = separator($dec_point); + $thousands = separator($thousands); + return number_format($number, $decimals, $dec_point, $thousands); +} + +function separator($sep) { + switch ($sep) { + case 'c': + $sep = ','; + break; + case 's': + $sep = ' '; + break; + } + return $sep; +} Modified: trunk/lib/trackers/trackerlib.php =================================================================== --- trunk/lib/trackers/trackerlib.php 2010-07-31 21:50:39 UTC (rev 28234) +++ trunk/lib/trackers/trackerlib.php 2010-07-31 23:40:32 UTC (rev 28235) @@ -2987,13 +2987,17 @@ 'opt'=>true, 'help'=>tra('<dl> <dt>Function: Provides a one-line field for numeric input only. Prepend or append values may be alphanumeric. - <dt>Usage: <strong>samerow,size,prepend,append</strong> + <dt>Usage: <strong>samerow,size,prepend,append,decimals,dec_point,thousands</strong> <dt>Example: 0,60,,hours <dt>Description: <dd><strong>[samerow]</strong> will display the next field or checkbox in the same row if a 1 is specified; <dd><strong>[size]</strong> is the visible size of the field in characters; <dd><strong>[prepend]</strong> is text that will be displayed before the field; <dd><strong>[append]</strong> is text that will be displayed just after the field; + <dd><strong>[decimals]</strong> sets the number of decimal places; + <dd><strong>[dec_point]</strong> sets the separator for the decimal point (decimals must also be set). Use c for comma and s for space; + <dd><strong>[thousands]</strong> sets the thousands separator. Use c for comma and s for space. Setting only commas will result in no decimals + and commas as the thousands seprator;<br/><br/> <dd>multiple options must appear in the order specified, separated by commas. </dl>')); $type['d'] = array( Modified: trunk/templates/tiki-view_tracker_item.tpl =================================================================== --- trunk/templates/tiki-view_tracker_item.tpl 2010-07-31 21:50:39 UTC (rev 28234) +++ trunk/templates/tiki-view_tracker_item.tpl 2010-07-31 23:40:32 UTC (rev 28235) @@ -390,7 +390,7 @@ {/if} {elseif $cur_field.type eq 'n'} {if $cur_field.options_array[2]}<span class="formunit">{$cur_field.options_array[2]} </span>{/if} -<input type="text" name="ins_{$cur_field.id}" value="{$cur_field.value|escape}" {if $cur_field.options_array[1]}size="{$cur_field.options_array[1]}" maxlength="{$cur_field.options_array[1]}"{/if} /> +<input type="text" class="numeric" name="ins_{$cur_field.id}" value="{$cur_field.value|escape}" {if $cur_field.options_array[1]}size="{$cur_field.options_array[1]}" maxlength="{$cur_field.options_array[1]}"{/if} /> {if $cur_field.options_array[3]}<span class="formunit"> {$cur_field.options_array[3]}</span>{/if} {elseif $cur_field.type eq 'q'} Modified: trunk/templates/tracker_item_field_input.tpl =================================================================== --- trunk/templates/tracker_item_field_input.tpl 2010-07-31 21:50:39 UTC (rev 28234) +++ trunk/templates/tracker_item_field_input.tpl 2010-07-31 23:40:32 UTC (rev 28235) @@ -232,7 +232,8 @@ {* -------------------- numeric field -------------------- *} {elseif $field_value.type eq 'n'} {*prepend*}{if $field_value.options_array[2]}<span class="formunit">{$field_value.options_array[2]} </span>{/if} - <input type="text" name="{$field_value.ins_id}" {if $field_value.options_array[1]}size="{$field_value.options_array[1]}" maxlength="{$field_value.options_array[1]}"{/if} value="{$field_value.value|escape}" /> + <input type="text" class="numeric" name="{$field_value.ins_id}" {if $field_value.options_array[1]}size="{$field_value.options_array[1]}" + maxlength="{$field_value.options_array[1]}"{/if} value="{$field_value.value|escape}" /> {*append*}{if $field_value.options_array[3]}<span class="formunit"> {$field_value.options_array[3]}</span>{/if} {* -------------------- static text -------------------- *} Modified: trunk/templates/tracker_item_field_value.tpl =================================================================== --- trunk/templates/tracker_item_field_value.tpl 2010-07-31 21:50:39 UTC (rev 28234) +++ trunk/templates/tracker_item_field_value.tpl 2010-07-31 23:40:32 UTC (rev 28235) @@ -91,7 +91,8 @@ {/if} {* -------------------- empty field -------------------- *} -{elseif empty($field_value.value) and $field_value.value != '0' and $field_value.type ne 'U' and $field_value.type ne '*' and $field_value.type ne 's' and $field_value.type ne 'q' and $field_value.type ne 'n' and $field_value.type ne 'C'} +{elseif empty($field_value.value) and $field_value.value != '0' and $field_value.type ne 'U' and $field_value.type ne '*' and $field_value.type ne 's' + and $field_value.type ne 'q' and $field_value.type ne 'n' and $field_value.type ne 'C'} {if $list_mode ne 'csv' and $is_link eq 'y'} {/if} {* to have something to click on *} {* -------------------- text field, numeric, drop down, radio,user/group/IP selector, autopincrement, dynamic list *} @@ -101,9 +102,24 @@ {else} {$field_value.value|tr_if} {/if} + +{* -------------------- numeric ------------*} +{elseif $field_value.type eq 'n'} + {if empty($field_value.options_array[4]) and empty($field_value.options_array[5])} + {if empty($field_value.options_array[6])} + {$field_value.value|escape} + {else} + {$field_value.value|number_format} + {/if} + {else} + {$field_value.value|number_format:$field_value.options_array[4]:$field_value.options_array[5]:$field_value.options_array[6]} + {/if} + {* -------------------- text field, numeric, drop down, radio,user/group/IP selector, autopincrement, dynamic list *} -{elseif $field_value.type eq 't' or $field_value.type eq 'n' or $field_value.type eq 'd' or $field_value.type eq 'D' or $field_value.type eq 'R' or $field_value.type eq 'u' or $field_value.type eq 'g' or $field_value.type eq 'I' or $field_value.type eq 'q' or $field_value.type eq 'w' or ($field_value.type eq 'C' and $field_value.computedtype ne 'f' and $field_value.computedtype ne 'duration' )} +{elseif $field_value.type eq 't' or $field_value.type eq 'n' or $field_value.type eq 'd' or $field_value.type eq 'D' or $field_value.type eq 'R' + or $field_value.type eq 'u' or $field_value.type eq 'g' or $field_value.type eq 'I' or $field_value.type eq 'q' or $field_value.type eq 'w' + or ($field_value.type eq 'C' and $field_value.computedtype ne 'f' and $field_value.computedtype ne 'duration' )} {if $list_mode eq 'y'} {if $field_value.type eq 'u' } {$field_value.value|username:true:true:false|truncate:255:"..."|escape|default:" "} @@ -123,7 +139,6 @@ {/if} - {* -------------------- image -------------------- *} {elseif $field_value.type eq 'i'} {if $list_mode eq 'csv'} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |