- Joomla Version
- 4.2.9
- PHP Version
- PHP 8.1.x
- Hoster
- Lokal
Hallo liebe Joomlaner,
ich habe folgendes Problem, und hoffe auf Hilfe.
Im Rahmen einer Template-Entwicklung für Joomla 4 möchte ich in einem mod_menu Override dort Parameter ausgeben, die innerhalb des Templates vergeben werden können, z.B. eine Telefonnummer, Logo etc. Um die gewünschte Form/ Funktion des Menüs zu erhalten ist dieser Override nötig.
Dafür habe ich den Standard-Kopf des collapse-default.php Templates:
use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\Language\Text;
HTMLHelper::_('bootstrap.collapse');
im Override erweitert auf:
use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Application\CMSApplication;
use Joomla\CMS\Factory;
HTMLHelper::_('bootstrap.collapse');
$app = Factory::getApplication();
$template = $app->getTemplate(true);
$params = $template->params;
$sitePhoneNumber = $params->get('sitePhoneNumber');
Alles anzeigen
um dann mit
<?php if ($this->params->get('sitePhoneNumber')) : ?>
<?php echo htmlspecialchars($this->params->get('sitePhoneNumber')); ?>
<?php endif; ?>
z.B. die Telefonnummer auszugeben.
Leider bekomme ich nur die Fehlermeldung Using $this when not in object context.
Die Template-Parameter und deren Ausgabe im Frontend über die index.php der Seite funktionieren einwandfrei, daher vermute ich hier einen Fehler in der Bezugnahme auf die Template-Parameter, die ich nicht sehe. Was lade oder referenziere ich hier falsch oder nicht?
Ich freue mich auf Tipps
Tim