Hallo,
ich versuche, ein simples Test-Modul in c4.4 (lokales Bundle in /src) zum Laufen zu bringen und habe mich dabei hieran gehalten:
https://community.contao.org/de/show...l=1#post455715
Nun kann ich zwar das Modul im Backend anlegen, aber es wird nicht geparst. Ich gehe davon aus, dass mein Modul (Pfad) nicht gefunden wird.
Struktur:
/src/MeinName/Test/Resources
darin der Ordner /contao mit der bekannten Struktur, also
/config
/dca
/languages
/modules
/templates
und meine Bundle-Datei TestBundle.php
außerdem gibt es unter /src noch den Ordner ContaoManager mit der ContaoManagerPlugin.phpPHP-Code:
namespace MeinName\Test;
use Symfony\Component\HttpKernel\Bundle\Bundle;
class TestBundle extends Bundle
{
}
die Anpassung der composer.json im root:PHP-Code:
use Contao\ManagerPlugin\Bundle\Config\BundleConfig;
use Contao\ManagerPlugin\Bundle\BundlePluginInterface;
use Contao\ManagerPlugin\Bundle\Parser\ParserInterface;
use Contao\CoreBundle\ContaoCoreBundle;
use MeinName\Test\TestBundle;
class ContaoManagerPlugin implements BundlePluginInterface
{
public function getBundles(ParserInterface $parser)
{
return [
BundleConfig::create(TestBundle::class)->setLoadAfter([ContaoCoreBundle::class])
];
}
}
wie muss ich nun den Pfad zu meiner Modul-Datei in meiner Config.php angeben?PHP-Code:
"autoload": {
"classmap": [
"src/ContaoManager/ContaoManagerPlugin.php",
"src/MeinName/Test/Resources/contao"
],
"psr-4" : { "": "src/" },
"exclude-from-classmap": [
"src/MeinName/Test/Resources/contao/config/",
"src/MeinName/Test/Resources/contao/dca/",
"src/MeinName/Test/Resources/contao/languages/",
"src/MeinName/Test/Resources/contao/templates/"
]
}
aktuell steht dort:
$GLOBALS['FE_MOD']['meinName']['test_module'] = '\MeinName\Test\Resources\Contao\modules\ModuleTes t';
aber ich hatte auch schon
$GLOBALS['FE_MOD']['meinName']['test_module'] = '\MeinName\Test\modules\ModuleTest';
und anderes..
Und in der ModuleTest.php:
Mir ist nicht klar, wie genau der Namespace lauten muss (und so einiges anderes leider auch noch nicht..).PHP-Code:
namespace MeinName\Test;
class ModuleTest extends \Module
{
/**
* Template
* @var string
*/
protected $strTemplate = 'mod_test';
/**
* Do not display the module if there are no menu items
* @return string
*/
public function generate()
{
if (TL_MODE == 'BE')
{
$objTemplate = new \BackendTemplate('be_wildcard');
$objTemplate->wildcard = '### TEST ###';
$objTemplate->title = $this->headline;
$objTemplate->id = $this->id;
$objTemplate->link = $this->name;
$objTemplate->href = 'contao/main.php?do=themes&table=tl_module&act=edit&id=' . $this->id;
return $objTemplate->parse();
}
return parent::generate();
}
/**
* Generate the module
*/
protected function compile()
{
$this->Template->message = 'TEST';
}
}
Irgendwie steht gefühlt überall was anderes und ich habe wirklich schon einige Anläufe unternommen und Tutorials gelesen, aber vieles passt eben scheinbar auch nicht mehr.
Wäre sehr dankbar über Eure Tipps!
Lesezeichen