Klasse in Contao 3 überschreiben
Hallo,
ich verzweifle gerade etwas am Namespace-System von Contao 3.1. Und zwar möchte ich die FormSubmit.php aus dem core überschreiben. Da dachte ich mir, ich nutze mal die neue Namespace-Funktionalität und habe eine Erweiterung angelegt mit folgenden Dateien:
config/autoload.ini
config/autoload.php
FormSubmit.php
In autload.php gebe ich Contao einfach die andere Klasse mit:
Code:
<?php
ClassLoader::addClasses(array
(
// Forms
'Contao\FormSubmit' => 'system/modules/xmeinmodul/FormSubmit.php',
));
Und FormSubmit.php sieht so aus:
Code:
<?php
namespace MyNamespace;
use \Contao\FormSubmit as FormSubmitOld;
class FormSubmit extends FormSubmitOld {
public function generate()
{
if ($this->imageSubmit)
{
// Check for version 3 format
if ($this->singleSRC != '' && !is_numeric($this->singleSRC))
{
return '<p class="error">'.$GLOBALS['TL_LANG']['ERR']['version2format'].'</p>';
}
$objModel = \FilesModel::findByPk($this->singleSRC);
if ($objModel !== null && is_file(TL_ROOT . '/' . $objModel->path))
{
return sprintf('<input type="image" src="%s" id="ctrl_%s" class="submit%s" title="%s" alt="%s"%s%s',
$objModel->path,
$this->strId,
(($this->strClass != '') ? ' ' . $this->strClass : ''),
specialchars($this->slabel),
specialchars($this->slabel),
$this->getAttributes(),
$this->strTagEnding);
}
}
// Return the regular button
return sprintf('<button type="submit" id="ctrl_%s" class="submit%s"%s>%s</button>',
$this->strId,
(($this->strClass != '') ? ' ' . $this->strClass : ''),
$this->getAttributes(),
specialchars($this->slabel));
}
}
Wenn ich ausführe, bekomme ich einen Fatal error:
Code:
Fatal error: Class 'Contao\FormSubmit' not found in <...>\system\modules\xmeinmodul\FormSubmit.php on line 15
Bin etwas ratlos und hoffe, es kann jemand Licht ins Dunkel bringen ;)
Ciao The_Unknown