Beginner Fragen - Ausgeben von dynamischen Inhalten im JS Bereich

Hallo zusammen,

ich hoffe, dass mein posting im richtigen Forum gelandet ist.
Ich möchte eigentlich ein kleines Modul schreiben, dass dynamisch Daten an den base_js block hinzufügt.
Jedoch scheitert es bei mir an an der Modulerstellung.

Fangen wir aber mal positiv an:
Mein modul wird im Backend erkannt.
Mein Template wird gefunden und genutzt

Jetzt habe ich allerdings probleme, daten aus dem Controller ins template zu übertragen.

ich nutze einen controller, der oxview erweitert.

Hier meine metadata.php


<?php

$aModule = array(
	'id'	=> 'onetag',
	'title'	=> 'OneTag',
	'url'	=> 'http://kaibrockelt.de',
	'lang'	=> 'en',
	'version'	=> '0.1',
	'author'	=> 'Kai Brockelt',
	'settings' => array(
        array('group' => 'main', 'name' => 'criteoPartnerId',    'type' => 'str',      'value' => ''),
        array('group' => 'main', 'name' => 'criteoEnableHome',   'type' => 'bool',     'value' => 'true'),
				array('group' => 'main', 'name' => 'criteoEnableListing',   'type' => 'bool',     'value' => 'true'),
				array('group' => 'main', 'name' => 'criteoEnableproduct',   'type' => 'bool',     'value' => 'true'),
				array('group' => 'main', 'name' => 'criteoEnableBasket',   'type' => 'bool',     'value' => 'true'),
				array('group' => 'main', 'name' => 'criteoEnableConfirmation',   'type' => 'bool',     'value' => 'true'),
    ),
		'extend' => array( // definiert Klassen welche erweitert werden sollen
       'oxview' => 'onetag/application/controllers/onetag_oxview',
    ),

		'blocks' => array(
			array('template' => 'layout/base.tpl',
			'block' => 'base_js',
			'file' => '/application/views/blocks/base_js.tpl'),

		),


hier mein Controller unter /onetag/application/controllers/onetag_oxview.php


<?php
class onetag_oxview extends onetag_oxview_parent {
  public function init()
    {
        parent::init();
    }
    public function render()
      {
          $this->_oParent->addTplParam(
              "onetag", $this->getOneTag()
          );
          parent::render();
          return $this;
      }
  public function getOneTag(){
    return "<h2>whoop deep dark Module invoked</h2>";
  }
}


in dem Template versuche ich nun “onetag” auszugeben, was leider nicht geschieht :frowning:


[{$smarty.block.parent}]
<h2>THERE WE GO</h2>
[{debug}]
[{$onetag}]

<h3>nomoredynamic</h3>

Weder im Debug, noch im Content sind spuren von der Variable zu finden.

Kann mir jemand auf die sprünge helfen? Ich gehe ja davon aus, dass es sich nur um ein kleines Problem handelt, aber eben so klein, dass ich es nicht erkenne.

Vielen Dank und viele Grüße,
Kai

in 99,99999% der Fälle (nur weil mir gerade nichts einfällt, wo es funktionieren würde) man kann nur die “End”-Klasse der Vererbungskette und nicht “zwischen-drin”-Klasse erweitern.
Z.B.oxbase -> oxubase -> oxview -> start (für die Startseite)
Für eigene Anpassungen in der render() Funktion muss man Klasse start erweitern.

Was genau müsste ich dann erben, um auf allen Seiten dynamisch den Block zu befüllen?

Gibt es irgendwo beispiele, die ähnliches tun

Damit sollte es gehen:

 '[B]oxcmp_utils[/B]' => 'onetag/application/controllers/onetag_oxview', 

Ausgezeichnet! Damit kann ich anfangen zu programmieren.
Besten Dank für den ausgzeichneten Support :slight_smile: