|
Server : Apache/2.2.22 (Unix) mod_ssl/2.2.22 OpenSSL/1.0.0-fips mod_auth_passthrough/2.1 mod_bwlimited/1.4 System : Linux server.jackjohnson.com 2.6.32-279.5.2.el6.x86_64 #1 SMP Fri Aug 24 01:07:11 UTC 2012 x86_64 User : jackjohn ( 502) PHP Version : 5.3.17 Disable Function : NONE Directory : /home/jackjohn/www/imagemanager/classes/Savant2/ |
Upload File : |
<?php
/**
* Base plugin class.
*/
require_once 'Savant2/Plugin.php';
/**
*
* Cycles through a series of values.
*
* $Id: Savant2_Plugin_cycle.php,v 1.1 2004/10/04 01:52:23 pmjones Exp $
*
* @author Paul M. Jones <pmjones@ciaweb.net>
*
* @package Savant2
*
* @license http://www.gnu.org/copyleft/lesser.html LGPL
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2.1 of the
* License, or (at your option) any later version.
*
* This program 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
* Lesser General Public License for more details.
*
*/
class Savant2_Plugin_cycle extends Savant2_Plugin {
/**
*
* An associative array of predefined cycle value sets.
*
* You can preset cycle values via Savant::loadPlugin().
*
* $conf = array(
* 'values' => array(
* 'lightdark' => array('light', 'dark'),
* 'threesome' => array('one', 'two', 'three')
* )
* );
*
* $Savant->loadPlugin('cycle', $conf);
*
* ... and in your template you can call:
*
* $this->plugin('cycle', 'lightdark', $iteration);
*
* @access public
*
* @var array
*
*/
var $values = array();
/**
*
* Cycles through a series of values.
*
* @access public
*
* @param string|array $cycle If a string, the preset cycle value key to use
* from $this->cycles; if an array, use the array as the cycle values.
*
* @param int $iteration The iteration number for the cycle.
*
* @param int $repeat The number of times to repeat each cycle value.
*
* @return mixed The value of the cycle iteration.
*
*/
function plugin($cycle, $iteration, $repeat = 1)
{
// get the proper value set as an array
if (is_string($cycle) && isset($this->values[$cycle])) {
$values = (array) $this->values[$cycle];
} else {
$values = (array) $cycle;
}
// prevent divide-by-zero errors
if ($repeat == 0) {
$repeat = 1;
}
// return the perper value for iteration and repetition
return $values[($iteration / $repeat) % count($values)];
}
}
?>