Phpfaber Tinylink > Tiny Includes / Smarty / Plugins / Function.cycle.php

Questions? Need Help? Want to share? » PHP Forum
Script Name:
Phpfaber Tinylink

Download:
phpfaber-tinylink.zip

Category:
Url Submitters

Archive Content:

Tiny Admin

Tiny Doc

Tiny Images > Admin

Tiny Images

Tiny Includes > Adodb

Tiny Includes > Adodb > Datadict

Tiny Includes > Adodb > Drivers

Tiny Includes > Adodb > Lang

Tiny Includes > Adodb

Tiny Includes

Tiny Includes > Smarty

Tiny Includes > Smarty > Plugins

Tiny Includes > Smarty

Tiny Templates > Admin

Tiny Templates

Content:

Function.cycle.php:


<?php

/*
 * Smarty plugin
 * -------------------------------------------------------------
 * Type:     function
 * Name:     cycle
 * Version:  1.3
 * Date:     May 3,  2002
 * Author:     Monte Ohrt <monte <at> ispi <dot> net>
 * Credits:  Mark Priatel <mpriatel <at> rogers <dot> com>
 *           Gerard <gerard <at> interfold <dot> com>
 *           Jason Sweat <jsweat_php <at> yahoo <dot> com>
 * Purpose:  cycle through given values
 * Input:    name = name of cycle (optional)
 *           values = comma separated list of values to cycle,
 *                    or an array of values to cycle
 *                    (this can be left out for subsequent calls)
 *
 *           reset = boolean - resets given var to true
 *             print = boolean - print var or not. default is true
 *           advance = boolean - whether or not to advance the cycle
 *           delimiter = the value delimiter,  default is ", "
 *           assign = boolean,  assigns to template var instead of
 *                    printed.
 * 
 * Examples: {cycle values="#eeeeee, #d0d0d0d"}
 *           {cycle name=row values="one, two, three" reset=true}
 *           {cycle name=row}
 * -------------------------------------------------------------
 */
function smarty_function_cycle($params,  &$smarty)
{
    static 
$cycle_vars;
    
    
extract($params);

    if (empty(
$name)) {
        
$name 'default';
    }

    if (!isset(
$print)) {
        
$print true;
    }

    if (!isset(
$advance)) {
        
$advance true;        
    }    

    if (!isset(
$reset)) {
        
$reset false;        
    }        
            
    if (!
in_array('values',  array_keys($params))) {
        if(!isset(
$cycle_vars[$name]['values'])) {
            
$smarty->trigger_error("cycle: missing 'values' parameter");
            return;
        }
    } else {
        if(isset(
$cycle_vars[$name]['values'])
            && 
$cycle_vars[$name]['values'] != $values ) {
            
$cycle_vars[$name]['index'] = 0;
        }
        
$cycle_vars[$name]['values'] = $values;
    }

    if (isset(
$delimiter)) {
        
$cycle_vars[$name]['delimiter'] = $delimiter;
    } elseif (!isset(
$cycle_vars[$name]['delimiter'])) {
        
$cycle_vars[$name]['delimiter'] = ', ';        
    }
    
    if(!
is_array($cycle_vars[$name]['values'])) {
        
$cycle_array explode($cycle_vars[$name]['delimiter'], $cycle_vars[$name]['values']);
    } else {
        
$cycle_array $cycle_vars[$name]['values'];    
    }
    
    if(!isset(
$cycle_vars[$name]['index']) || $reset ) {
        
$cycle_vars[$name]['index'] = 0;
    }
    
    if (isset(
$assign)) {
        
$print false;
        
$smarty->assign($assign,  $cycle_array[$cycle_vars[$name]['index']]);
    }
        
    if(
$print) {
        
$retval $cycle_array[$cycle_vars[$name]['index']];
    } else {
        
$retval null;
    }

    if(
$advance) {
        if ( 
$cycle_vars[$name]['index'] >= count($cycle_array) -) {
            
$cycle_vars[$name]['index'] = 0;            
        } else {
            
$cycle_vars[$name]['index']++;
        }
    }
    
    return 
$retval;
}

/* vim: set expandtab: */

?>



Other Url Submitters Scripts:

  • Phpfaber Tinylink
WebMaster Resources Home

©RingsWorld.com