[TYPO3-mvc] adding / multiplying / math operation view helper
Simon Schaufelberger (Schaufi)
simonschaufi at jesus.de
Tue Feb 8 00:52:45 CET 2011
Hi,
have a look at:
http://forge.typo3.org/projects/package-viewhelperincubator/repository/revisions/master/show/CalculationViewHelper/_Extension/trunk
and by the way, the for viewhelper has another parameter: iteration
which might help you. just check the source code ;)
fluid/Classes/ViewHelpers/ForViewHelper.php
Regards, Schaufi
Am 07.02.2011 23:48, schrieb Tim Schoch | GSTALTIG:
> I made myself a little calc ViewHelper. Maybe it helps you. But as always... provided without warranty
>
> <?php
> /* *
> * COPYRIGHT NOTICE *
> * *
> * (c) 2010 Tim Schoch<tim at gstaltig.ch> *
> * GSTALTIG GMBH *
> * All rights reserved *
> * *
> * This script is part of the TYPO3 project. The TYPO3 project is *
> * free software; you can redistribute it and/or modify *
> * it under the terms of the GNU General Public License as published *
> * by the Free Software Foundation; either version 2 of the License, *
> * or (at your option) any later version. *
> * *
> * The GNU General Public License can be found at *
> * http://www.gnu.org/copyleft/gpl.html. *
> * *
> * This script is distributed in the hope that it will be useful, *
> * but WITHOUT ANY WARRANTY; without even the implied warranty of *
> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
> * GNU General Public License for more details. *
> * *
> * This copyright notice MUST APPEAR in all copies of the script! *
> * */
>
>
>
> /**
> * calculate strings
> *
> * @author Tim Schoch
> * @see http://www.website55.com/php-mysql/2010/04/how-to-calculate-strings-with-php.html
> * @package Gstbase
> * @version $Id$
> * @license GNU Public License, version 2
> * http://opensource.org/licenses/gpl-license.php
> */
> class Tx_Gstbase_ViewHelpers_CalcViewHelper extends Tx_Fluid_Core_ViewHelper_AbstractViewHelper {
>
>
> /**
> * calculate with strings
> * eg: "2 + 4 * 6 / 8" will result in 5
> * @param string the operation
> * @return float the calculated result
> */
> public function render( $value = NULL )
> {
> if ( NULL === $value ) {
> $value = $this->renderChildren();
> }
> // trim white spaces
> $mathString = trim( $value );
> // remove any non-numbers chars; exception for math operators and 'x'
> $mathString = preg_replace( '[^0-9\+-\*x\/\(\) ]', '', $mathString );
> // replace x with *
> $mathString = str_replace( 'x', '*', $mathString );
> // compute
> $compute = create_function("", "return (" . $mathString . ");" );
> return 0 + $compute();
> }
>
> }
> ?>
More information about the TYPO3-project-typo3v4mvc
mailing list