Source for file overrides.php
Documentation is available at overrides.php
* @package Joomla.Administrator
* @subpackage com_languages
* @copyright Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
* Languages Overrides Model
* @package Joomla.Administrator
* @subpackage com_languages
* @param array An optional associative array of configuration settings
* Retrieves the overrides data
* @param boolean $all True if all overrides shall be returned without considering pagination, defaults to false
* @return array Array of objects containing the overrides of the override.ini file
// Try to load the data from internal storage
if (!empty($this->cache[$store]))
return $this->cache[$store];
// Parse the override.ini file in order to get the keys and strings
$filename =
constant('JPATH_' .
$client) .
'/language/overrides/' .
$this->getState('filter.language') .
'.override.ini';
// Filter the loaded strings according to the search box
$search =
$this->getState('filter.search');
$matchvals =
preg_grep('~' .
$search .
'~i', $strings);
if ($this->getState('list.ordering') ==
'text')
// Consider the pagination
// Add the items to the internal cache
$this->cache[$store] =
$strings;
return $this->cache[$store];
* Method to get the total number of overrides
* @return int The total number of overrides
// Try to load the data from internal storage
if (!empty($this->cache[$store]))
return $this->cache[$store];
// Add the total to the internal cache
return $this->cache[$store];
* Method to auto-populate the model state.
* Note. Calling getState in this method will result in recursion.
* @param string $ordering An optional ordering field.
* @param string $direction An optional direction (asc|desc).
protected function populateState($ordering =
null, $direction =
null)
// Use default language of frontend for default filter
$old_language_client =
$app->getUserState('com_languages.overrides.filter.language_client', '');
$language_client =
$this->getUserStateFromRequest('com_languages.overrides.filter.language_client', 'filter_language_client', $default, 'cmd');
if ($old_language_client !=
$language_client)
$client =
substr($language_client, -
1);
$language =
substr($language_client, 0, -
1);
$client =
$app->getUserState('com_languages.overrides.filter.client', 0);
$language =
$app->getUserState('com_languages.overrides.filter.language', 'en-GB');
// Sets the search filter
$this->setState('filter.search', $search);
$this->setState('filter.language_client', $language.
$client);
$this->setState('filter.client', $client ?
'administrator' :
'site');
$this->setState('filter.language', $language);
// Add filters to the session because they won't be stored there by 'getUserStateFromRequest' if they aren't in the current request
$app->setUserState('com_languages.overrides.filter.client', $client);
$app->setUserState('com_languages.overrides.filter.language', $language);
// List state information
* Method to get all found languages of frontend and backend.
* The resulting array has entries of the following style:
* <Language Tag>0|1 => <Language Name> - <Client Name>
* @return array Sorted associative array of languages
// Try to load the data from internal storage
if (!empty($this->cache['languages']))
return $this->cache['languages'];
// Get all languages of frontend and backend
// Create a single array of them
foreach ($site_languages as $tag =>
$language)
$languages[$tag.
'0'] =
JText::sprintf('COM_LANGUAGES_VIEW_OVERRIDES_LANGUAGES_BOX_ITEM', $language['name'], JText::_('JSITE'));
foreach ($admin_languages as $tag =>
$language)
$languages[$tag.
'1'] =
JText::sprintf('COM_LANGUAGES_VIEW_OVERRIDES_LANGUAGES_BOX_ITEM', $language['name'], JText::_('JADMINISTRATOR'));
// Sort it by language tag and by client after that
// Add the languages to the internal cache
$this->cache['languages'] =
$languages;
return $this->cache['languages'];
* Method to delete one or more overrides
* @param array Array of keys to delete
* @return integer Number of successfully deleted overrides, boolean false if an error occured
// Check permissions first
$this->setError(JText::_('JLIB_APPLICATION_ERROR_DELETE_NOT_PERMITTED'));
require_once JPATH_COMPONENT.
'/helpers/languages.php';
// Parse the override.ini file in oder to get the keys and strings
$filename =
constant('JPATH_' .
$client) .
'/language/overrides/' .
$this->getState('filter.language') .
'.override.ini';
// Unset strings that shall be deleted
if (isset
($strings[$key]))
foreach ($strings as $key =>
$string)
// Write override.ini file with the left strings
$registry->loadObject($strings);
$reg =
$registry->toString('INI');
$filename =
constant('JPATH_' .
$client) .
'/language/overrides/' .
$this->getState('filter.language') .
'.override.ini';
Documentation generated on Tue, 19 Nov 2013 15:09:58 +0100 by phpDocumentor 1.4.3