J'essaie de créer un plugin pour remplacer une classe Joomla, ce qui est impossible autrement. Voici mes codes:
comoverride.xml
<files>
<filename plugin="comoverride">comoverride.php</filename>
<filename>comoverride.xml</filename>
<filename>index.html</filename>
</files>
<config>
</config>
</extension>
(j'ai bien sûr mes informations dans mon tag et les autres informations nécessaires)
comoverride.php
<?php
defined( '_JEXEC' ) or die( 'Restricted access' );
if(!defined('DS')) define('DS', DIRECTORY_SEPARATOR);
jimport('joomla.application.component.helper');
class comcontent extends JPlugin{
public function __construct(&$subject, $config = array()) {
parent::__construct($subject, $config);
}
public function onAfterRoute () {
$app = JFactory::getApplication();
if('com_content' == JRequest::getCMD('option') && !$app->isAdmin()) {
$template = $app->getTemplate();
require_once(JPATH_SITE.'/templates/'.$template.'/code/com_content/models/articles.php');
}
}
J'essaie de remplacer le fichier articles.php, où se trouve la classe "ContentModelArticles". mais cela ne semble pas fonctionner du tout malheureusement.
Quelqu'un peut-il s'il vous plaît tester pour moi?
jetez un coup d'oeil dans les prochains extraits. Ça marche clairement
<?xml version="1.0" encoding="utf-8"?>
<extension version="3.4" type="plugin" group="system" method="upgrade">
<name>plg_system_comoverride</name>
<author>JProof</author>
<creationDate>Februar 2009</creationDate>
<copyright>(C) 2010 Romacron. All rights reserved.</copyright>
<license>GNU/GPL</license>
<version>3.0.0</version>
<files>
<filename plugin="comoverride">comoverride.php</filename>
<filename>comoverride.xml</filename>
<filename>index.html</filename>
</files>
<config>
</config>
</extension>
defined('_JEXEC') or die('Restricted access');
if (!defined('DS')) {
define('DS', DIRECTORY_SEPARATOR);
}
jimport('joomla.application.component.helper');
class PlgSystemComOverride extends JPlugin
{
public function __construct(&$subject, $config = array())
{
parent::__construct($subject, $config);
}
public function onAfterRoute()
{
$app = JFactory::getApplication();
if ('com_content' === $app->input->getCmd('option') && !$app->isAdmin()) {
$template = $app->getTemplate();
require_once(JPATH_SITE . '/templates/' . $template . '/code/com_content/models/articles.php');
}
}
}
J'espère que ça vous aide