本文整理汇总了PHP中FOFInflector::isSingular方法的典型用法代码示例。如果您正苦于以下问题:PHP FOFInflector::isSingular方法的具体用法?PHP FOFInflector::isSingular怎么用?PHP FOFInflector::isSingular使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类FOFInflector
的用法示例。
在下文中一共展示了FOFInflector::isSingular方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: autoload_fof_helper
/**
* Autoload Helpers
*
* @param string $class_name The name of the class to load
*
* @return void
*/
public function autoload_fof_helper($class_name)
{
JLog::add(__METHOD__ . "() autoloading {$class_name}", JLog::DEBUG, 'fof');
static $isCli = null, $isAdmin = null;
if (is_null($isCli) && is_null($isAdmin)) {
list($isCli, $isAdmin) = FOFDispatcher::isCliAdmin();
}
if (strpos($class_name, 'Helper') === false) {
return;
}
// Change from camel cased into a lowercase array
$class_modified = preg_replace('/(\\s)+/', '_', $class_name);
$class_modified = strtolower(preg_replace('/(?<=\\w)([A-Z])/', '_\\1', $class_modified));
$parts = explode('_', $class_modified);
// We need three parts in the name
if (count($parts) != 3) {
return;
}
// We need the second part to be "model"
if ($parts[1] != 'helper') {
return;
}
// Get the information about this class
$component_raw = $parts[0];
$component = 'com_' . $parts[0];
$view = $parts[2];
// Is this an FOF 2.1 or later component?
if (!$this->isFOFComponent($component)) {
return;
}
// Get the alternate view and class name (opposite singular/plural name)
$alt_view = FOFInflector::isSingular($view) ? FOFInflector::pluralize($view) : FOFInflector::singularize($view);
$alt_class = FOFInflector::camelize($component_raw . '_helper_' . $alt_view);
// Get the proper and alternate paths and file names
$componentPaths = FOFPlatform::getInstance()->getComponentBaseDirs($component);
$file = "/helpers/{$view}.php";
$altFile = "/helpers/{$alt_view}.php";
$path = $componentPaths['main'];
$altPath = $componentPaths['alt'];
// Try to find the proper class in the proper path
if (file_exists($path . $file)) {
@(include_once $path . $file);
}
// Try to find the proper class in the alternate path
if (!class_exists($class_name) && file_exists($altPath . $file)) {
@(include_once $altPath . $file);
}
// Try to find the alternate class in the proper path
if (!class_exists($alt_class) && file_exists($path . $altFile)) {
@(include_once $path . $altFile);
}
// Try to find the alternate class in the alternate path
if (!class_exists($alt_class) && file_exists($altPath . $altFile)) {
@(include_once $altPath . $altFile);
}
// If the alternate class exists just map the class to the alternate
if (!class_exists($class_name) && class_exists($alt_class)) {
$this->class_alias($alt_class, $class_name);
}
}
示例2: __construct
/**
* Public constructor. Instantiates a FOFView object.
*
* @param array $config The configuration data array
*/
public function __construct($config = array())
{
// Make sure $config is an array
if (is_object($config)) {
$config = (array) $config;
} elseif (!is_array($config)) {
$config = array();
}
// Get the input
if (array_key_exists('input', $config)) {
if ($config['input'] instanceof FOFInput) {
$this->input = $config['input'];
} else {
$this->input = new FOFInput($config['input']);
}
} else {
$this->input = new FOFInput();
}
parent::__construct($config);
$component = 'com_foobar';
// Get the component name
if (array_key_exists('input', $config)) {
if ($config['input'] instanceof FOFInput) {
$tmpInput = $config['input'];
} else {
$tmpInput = new FOFInput($config['input']);
}
$component = $tmpInput->getCmd('option', '');
} else {
$tmpInput = $this->input;
}
if (array_key_exists('option', $config)) {
if ($config['option']) {
$component = $config['option'];
}
}
$config['option'] = $component;
// Get the view name
$view = null;
if (array_key_exists('input', $config)) {
$view = $tmpInput->getCmd('view', '');
}
if (array_key_exists('view', $config)) {
if ($config['view']) {
$view = $config['view'];
}
}
$config['view'] = $view;
// Set the component and the view to the input array
if (array_key_exists('input', $config)) {
$tmpInput->set('option', $config['option']);
$tmpInput->set('view', $config['view']);
}
// Set the view name
if (array_key_exists('name', $config)) {
$this->_name = $config['name'];
} else {
$this->_name = $config['view'];
}
$tmpInput->set('view', $this->_name);
$config['input'] = $tmpInput;
$config['name'] = $this->_name;
$config['view'] = $this->_name;
// Get the component directories
$componentPaths = FOFPlatform::getInstance()->getComponentBaseDirs($config['option']);
// Set the charset (used by the variable escaping functions)
if (array_key_exists('charset', $config)) {
FOFPlatform::getInstance()->logDeprecated('Setting a custom charset for escaping in FOFView\'s constructor is deprecated. Override FOFView::escape() instead.');
$this->_charset = $config['charset'];
}
// User-defined escaping callback
if (array_key_exists('escape', $config)) {
$this->setEscape($config['escape']);
}
// Set a base path for use by the view
if (array_key_exists('base_path', $config)) {
$this->_basePath = $config['base_path'];
} else {
$this->_basePath = $componentPaths['main'];
}
// Set the default template search path
if (array_key_exists('template_path', $config)) {
// User-defined dirs
$this->_setPath('template', $config['template_path']);
} else {
$altView = FOFInflector::isSingular($this->getName()) ? FOFInflector::pluralize($this->getName()) : FOFInflector::singularize($this->getName());
$this->_setPath('template', $this->_basePath . '/views/' . $altView . '/tmpl');
$this->_addPath('template', $this->_basePath . '/views/' . $this->getName() . '/tmpl');
}
// Set the default helper search path
if (array_key_exists('helper_path', $config)) {
// User-defined dirs
$this->_setPath('helper', $config['helper_path']);
} else {
$this->_setPath('helper', $this->_basePath . '/helpers');
//.........这里部分代码省略.........
示例3: getPluralization
public static function getPluralization($name, $form = 'singular')
{
static $cache = array();
if (!empty($cache[$name . '.' . $form])) {
return $cache[$name . '.' . $form];
}
//Pluralization
if (JFile::exists(JPATH_LIBRARIES . '/fof/include.php')) {
if (!defined('FOF_INCLUDED')) {
require_once JPATH_LIBRARIES . '/fof/include.php';
}
} else {
if (JFile::exists(JPATH_LIBRARIES . '/fof/inflector/inflector.php')) {
require_once JPATH_LIBRARIES . '/fof/inflector/inflector.php';
} else {
require_once JPATH_COMPONENT . '/helpers/fofinflector.php';
}
}
$plural = null;
//$inflector = new FOFInflector();
//see if name is singular, if so get a plural
if (FOFInflector::isSingular($name)) {
$plural = FOFInflector::pluralize($name);
}
//if still no plural check if name is plural
if (empty($plural)) {
if (FOFInflector::isPlural($name)) {
//if its a plural switch them
$plural = $name;
//and get a singular
$name = FOFInflector::singularize($name);
}
}
//if still no plural just make one anyway
if (empty($plural)) {
$plural = $name . 's';
}
$cache[$name . '.plural'] = $plural;
$cache[$name . '.singular'] = $name;
return $cache[$name . '.' . $form];
}
示例4: getViewTemplatePaths
/**
* Return a list of the view template paths for this component.
*
* @param string $component The name of the component. For Joomla! this
* is something like "com_example"
* @param string $view The name of the view you're looking a
* template for
* @param string $layout The layout name to load, e.g. 'default'
* @param string $tpl The sub-template name to load (null by default)
* @param boolean $strict If true, only the specified layout will be searched for.
* Otherwise we'll fall back to the 'default' layout if the
* specified layout is not found.
*
* @see FOFPlatformInterface::getViewTemplateDirs()
*
* @return array
*/
public function getViewTemplatePaths($component, $view, $layout = 'default', $tpl = null, $strict = false)
{
$isAdmin = $this->isBackend();
$basePath = $isAdmin ? 'admin:' : 'site:';
$basePath .= $component . '/';
$altBasePath = $basePath;
$basePath .= $view . '/';
$altBasePath .= (FOFInflector::isSingular($view) ? FOFInflector::pluralize($view) : FOFInflector::singularize($view)) . '/';
if ($strict) {
$paths = array($basePath . $layout . ($tpl ? "_{$tpl}" : ''), $altBasePath . $layout . ($tpl ? "_{$tpl}" : ''));
} else {
$paths = array($basePath . $layout . ($tpl ? "_{$tpl}" : ''), $basePath . $layout, $basePath . 'default' . ($tpl ? "_{$tpl}" : ''), $basePath . 'default', $altBasePath . $layout . ($tpl ? "_{$tpl}" : ''), $altBasePath . $layout, $altBasePath . 'default' . ($tpl ? "_{$tpl}" : ''), $altBasePath . 'default');
$paths = array_unique($paths);
}
return $paths;
}
示例5: loadTemplate
/**
* Overrides the built-in loadTemplate function with an FOF-specific one.
* Our overriden function uses loadAnyTemplate to provide smarter view
* template loading.
*
* @param string $tpl The name of the template file to parse
* @param boolean $strict Should we use strict naming, i.e. force a non-empty $tpl?
*
* @return mixed A string if successful, otherwise a JError object
*/
public function loadTemplate($tpl = null, $strict = false)
{
list($isCli, $isAdmin) = FOFDispatcher::isCliAdmin();
$basePath = $isAdmin ? 'admin:' : 'site:';
$basePath .= $this->config['option'] . '/';
$altBasePath = $basePath;
$basePath .= $this->config['view'] . '/';
$altBasePath .= (FOFInflector::isSingular($this->config['view']) ? FOFInflector::pluralize($this->config['view']) : FOFInflector::singularize($this->config['view'])) . '/';
if ($strict) {
$paths = array($basePath . $this->getLayout() . ($tpl ? "_{$tpl}" : ''), $altBasePath . $this->getLayout() . ($tpl ? "_{$tpl}" : ''));
} else {
$paths = array($basePath . $this->getLayout() . ($tpl ? "_{$tpl}" : ''), $basePath . $this->getLayout(), $basePath . 'default' . ($tpl ? "_{$tpl}" : ''), $basePath . 'default', $altBasePath . $this->getLayout() . ($tpl ? "_{$tpl}" : ''), $altBasePath . $this->getLayout(), $altBasePath . 'default' . ($tpl ? "_{$tpl}" : ''), $altBasePath . 'default');
}
foreach ($paths as $path) {
$result = $this->loadAnyTemplate($path);
if (!$result instanceof Exception) {
break;
}
}
if (version_compare(JVERSION, '3.0', 'lt') && $result instanceof Exception) {
JError::raiseError($result->getCode(), $result->getMessage());
}
return $result;
}