Вход Регистрация
Файл: Form Generator/Project Files/system/helpers/inflector_helper.php
Строк: 122
<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/**
 * CodeIgniter
 *
 * An open source application development framework for PHP 5.1.6 or newer
 *
 * @package        CodeIgniter
 * @author        ExpressionEngine Dev Team
 * @copyright    Copyright (c) 2008 - 2011, EllisLab, Inc.
 * @license        http://codeigniter.com/user_guide/license.html
 * @link        http://codeigniter.com
 * @since        Version 1.0
 * @filesource
 */

// ------------------------------------------------------------------------

/**
 * CodeIgniter Inflector Helpers
 *
 * @package        CodeIgniter
 * @subpackage    Helpers
 * @category    Helpers
 * @author        ExpressionEngine Dev Team
 * @link        http://codeigniter.com/user_guide/helpers/directory_helper.html
 */


// --------------------------------------------------------------------

/**
 * Singular
 *
 * Takes a plural word and makes it singular
 *
 * @access    public
 * @param    string
 * @return    str
 */
if ( ! function_exists('singular'))
{
    function 
singular($str)
    {
        
$result strval($str);

        
$singular_rules = array(
            
'/(matr)ices$/'         => '1ix',
            
'/(vert|ind)ices$/'     => '1ex',
            
'/^(ox)en/'             => '1',
            
'/(alias)es$/'          => '1',
            
'/([octop|vir])i$/'     => '1us',
            
'/(cris|ax|test)es$/'   => '1is',
            
'/(shoe)s$/'            => '1',
            
'/(o)es$/'              => '1',
            
'/(bus|campus)es$/'     => '1',
            
'/([m|l])ice$/'         => '1ouse',
            
'/(x|ch|ss|sh)es$/'     => '1',
            
'/(m)ovies$/'           => '12ovie',
            
'/(s)eries$/'           => '12eries',
            
'/([^aeiouy]|qu)ies$/'  => '1y',
            
'/([lr])ves$/'          => '1f',
            
'/(tive)s$/'            => '1',
            
'/(hive)s$/'            => '1',
            
'/([^f])ves$/'          => '1fe',
            
'/(^analy)ses$/'        => '1sis',
            
'/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/' => '12sis',
            
'/([ti])a$/'            => '1um',
            
'/(p)eople$/'           => '12erson',
            
'/(m)en$/'              => '1an',
            
'/(s)tatuses$/'         => '12tatus',
            
'/(c)hildren$/'         => '12hild',
            
'/(n)ews$/'             => '12ews',
            
'/([^u])s$/'            => '1',
        );
        
        foreach (
$singular_rules as $rule => $replacement)
        {
            if (
preg_match($rule$result))
            {
                
$result preg_replace($rule$replacement$result);
                break;
            }
        }

        return 
$result;
    }
}

// --------------------------------------------------------------------

/**
 * Plural
 *
 * Takes a singular word and makes it plural
 *
 * @access    public
 * @param    string
 * @param    bool
 * @return    str
 */
if ( ! function_exists('plural'))
{
    function 
plural($str$force FALSE)
    {
        
$result strval($str);
    
        
$plural_rules = array(
            
'/^(ox)$/'                 => '12en',     // ox
            
'/([m|l])ouse$/'           => '1ice',      // mouse, louse
            
'/(matr|vert|ind)ix|ex$/'  => '1ices',     // matrix, vertex, index
            
'/(x|ch|ss|sh)$/'          => '1es',       // search, switch, fix, box, process, address
            
'/([^aeiouy]|qu)y$/'       => '1ies',      // query, ability, agency
            
'/(hive)$/'                => '1s',        // archive, hive
            
'/(?:([^f])fe|([lr])f)$/'  => '12ves',    // half, safe, wife
            
'/sis$/'                   => 'ses',        // basis, diagnosis
            
'/([ti])um$/'              => '1a',        // datum, medium
            
'/(p)erson$/'              => '1eople',    // person, salesperson
            
'/(m)an$/'                 => '1en',       // man, woman, spokesman
            
'/(c)hild$/'               => '1hildren',  // child
            
'/(buffal|tomat)o$/'       => '12oes',    // buffalo, tomato
            
'/(bu|campu)s$/'           => '12ses',    // bus, campus
            
'/(alias|status|virus)/'   => '1es',       // alias
            
'/(octop)us$/'             => '1i',        // octopus
            
'/(ax|cris|test)is$/'      => '1es',       // axis, crisis
            
'/s$/'                     => 's',          // no change (compatibility)
            
'/$/'                      => 's',
        );

        foreach (
$plural_rules as $rule => $replacement)
        {
            if (
preg_match($rule$result))
            {
                
$result preg_replace($rule$replacement$result);
                break;
            }
        }

        return 
$result;
    }
}

// --------------------------------------------------------------------

/**
 * Camelize
 *
 * Takes multiple words separated by spaces or underscores and camelizes them
 *
 * @access    public
 * @param    string
 * @return    str
 */
if ( ! function_exists('camelize'))
{
    function 
camelize($str)
    {
        
$str 'x'.strtolower(trim($str));
        
$str ucwords(preg_replace('/[s_]+/'' '$str));
        return 
substr(str_replace(' '''$str), 1);
    }
}

// --------------------------------------------------------------------

/**
 * Underscore
 *
 * Takes multiple words separated by spaces and underscores them
 *
 * @access    public
 * @param    string
 * @return    str
 */
if ( ! function_exists('underscore'))
{
    function 
underscore($str)
    {
        return 
preg_replace('/[s]+/''_'strtolower(trim($str)));
    }
}

// --------------------------------------------------------------------

/**
 * Humanize
 *
 * Takes multiple words separated by underscores and changes them to spaces
 *
 * @access    public
 * @param    string
 * @return    str
 */
if ( ! function_exists('humanize'))
{
    function 
humanize($str)
    {
        return 
ucwords(preg_replace('/[_]+/'' 'strtolower(trim($str))));
    }
}


/* End of file inflector_helper.php */
/* Location: ./system/helpers/inflector_helper.php */
Онлайн: 0
Реклама