wir
8/2/2012 - 2:18 PM

Override Core Joomla! Classes

Override Core Joomla! Classes

<?xml version="1.0" encoding="utf-8"?>
<extension version="2.5" type="plugin" group="system" method="upgrade">
	<name>plg_system_overrides</name>
	<author>Don  Gilbert</author>
	<creationDate>Aug 2012</creationDate>
	<copyright>(C) 2012 Don Gilbert. All rights reserved.</copyright>
	<license>GNU General Public License version 2 or later; see LICENSE.txt</license>
	<authorEmail>don@electriceasel.com</authorEmail>
	<authorUrl>www.electriceasel.com</authorUrl>
	<version>2.5.6</version>
	<description>This plugin will override classes contained in the included config file.</description>
	<files>
		<filename plugin="overrides">overrides.php</filename>
		<filename>config.php</filename>
		<filename>index.html</filename>
		<folder>overrides</folder>
	</files>
</extension>
<?php
/**
 * @package     Joomla.Plugin
 * @subpackage  System.Overrides
 *
 * @copyright   Copyright (C) 2012 Don Gilbert. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE
 */

defined('JPATH_BASE') or die;

/**
 * System plugin to override core classes terms.
 *
 * @package     Joomla.Plugin
 * @subpackage  System.Overrides
 * @since       2.5
 */
class PlgSystemOverrides extends JPlugin
{
	/* We do our thing in the __construct method
	 * so that our overridden classes will be
	 * available everywhere
	 */
	public function __construct(&$subject, $config)
	{
		parent::__construct($subject, $config);
		
		include_once 'config.php';
	}
}
<?php
/**
 * @package     Joomla.Plugin
 * @subpackage  System.Overrides
 *
 * @copyright   Copyright (C) 2012 Don Gilbert. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE
 */
define('OVERRIDES', dirname(__FILE__).'/overrides');

// Use JLoader to register all the classes you want to override
JLoader::register('JClassToOverride', OVERRIDES.'/libraries/joomla/class/to/override.php', true);