Überlagern des order_overview.tpl funktioniert nicht

Hallo,

ich brauch für mein Modul als letztes noch eine Erweiterung im Adminbereich für die order_overview.tpl

Dazu erbe ich vom admin Controller order_overview, der wird auch erkannt und ausgeführt.

Dann gebe ich in der Konfiguration noch an das Template ordeR_overview.tpl zu überschreiben und genau das klappt nicht, ich kann da einfügen was ich will, wenn in der Bestellübersichtsliste eine Bestellung anklicke es bleibt immer das selbe.

Hier die metadata.php


'extend' => array(
		'order_overview' => 'mycompany/controllers/admin/mycompanyAdminOrderOverview'
	),
'templates' => array(
		'order_overview.tpl' => 'mycompany/views/admin/order_overview.tpl'
	)

Ich habe das Modul im Backend deaktiviert und neu aktiviert, habe den tmp Ordner geleert und trotzdeme s wird nicht das Template genutzt welches ich in meinem Modul liegen habe.

Woran liegt das? Übersehe ich ein kleines wichtiges Detail wenn es um den Adminbereich geht?

Danke für Rat und Tat Gruß Daniel

Hallo Daniel,

das winzige Detail heisst, dass es im Admin-Bereich kein Template-Override gibt :frowning:

Gruß

[QUOTE=Marco Steinhaeuser;121396]Hallo Daniel,

das winzige Detail heisst, dass es im Admin-Bereich kein Template-Override gibt :frowning:

Gruß[/QUOTE]

OK soviel dazu und wie kann ich das order_overview.tpl überschreiben bzw. mit meinen Daten erweitern? Das wäre wichtig zu wissen. Denn direkt im Core das zu machen kanns ja auch nicht sein.

verwende einen Template Block

und schau mal diesen Thread hier durch:
http://forum.oxid-esales.com/showthread.php?t=15534

Ok, diesen Tamplate Block muss ich dann aber trotzdem in die Core order_overview.tpl rein schreiben oder irre ich?

Bin grad bisschen durcheinander.

Gibt es denn keine Möglichkeit Admin Templates zu erweitern ohne diese Erweiterung in den Core Templates rein schreiben zu müssen?

Mir kommt das irgendwie falsch vor.

Gruß Daniel

Doch, mit blocks

[QUOTE=vanilla thunder;121481]Doch, mit blocks[/QUOTE]

Ok ich bitte um Entschuldigung, aber soll ich das mit Blocks realisieren? Das meine Daten im Template angezeigt werden ohne ins bestehende zu einzugrefien.

Kann ich das an einem nachvollziehbaren Beispiel hier nachlesen wie ich mit Blocks in ebstehende Templates eingreifen kann?

So mein Versuch mit einem Block scheiterte grad.

Also ich habe meine Bloak Datei in modules/mycompany/out/blocks gespeichert.

Dann habe ich in der metadata.php folgendes angelegt.


'blocks' => array(
		array('template' => 'order_overview.tpl', 'block' => 'order_prices', 'file' => 'order_prices.tpl')
	),

Meine Blockdatei sieht folgendermaßen aus.


[{capture append="admin_order_overview_total"}]
	[{$smarty.block.parent}]
	<tr>
		<td class="edittext" height="15">
			test 1
		</td>
		<td class="edittext" align="right">
			test 1
		</td>
		<td class="edittext">
			test 1
		</td>
	</tr>
	<tr>
		<td class="edittext" height="15">
			test 2
		</td>
		<td class="edittext" align="right">
			test 2
		</td>
		<td class="edittext">
			test 2
		</td>
	</tr>
[{/capture}]

Und um den Block in der order_overview.tpl geht es, da sollen meine Daten eingehangen werden.


[{block name="admin_order_overview_total"}]

Aber meine Daten werden nicht eingehangen, warum? Danke für eure Hilfe.

https://github.com/vanilla-thunder/demo_ato

schau mal da rein

[QUOTE=Hebsacker;121496]https://github.com/vanilla-thunder/demo_ato

schau mal da rein[/QUOTE]

Naja das bringt mir nicht viel, weil da nichts mit Blocks drin gemacht wird.

Ich hatte mir das aber angesehen https://github.com/vanilla-thunder/vt-cmsstructure aber es funktioniert einfach nicht.

Und mein erweiterter order_overview Controller sieht erst mal nur so aus.


class mycompanyAdminOrderOverview extends mycompanyAdminOrderOverview_parent
{
	public function render()
	{
		return parent::render();
	}
}

Der ist auch aktiv und wird geladen.

Der Block den du in metadata angibst existiert nicht, da muss der Name des Blocks stehen den du erweitern willst. Das kannst du im Admin unter Systemgesundheit sehen wenn das Modul aktiviert ist. Außerdem sollte bei file der Pfad vom Modulverzeichnis aus verwendet werden.


    'blocks' => array( 
        array('template' => 'order_overview.tpl', 'block' => 'admin_order_overview_total', 'file' => 'out/blocks/order_prices.tpl') 
    ),  

In deinem Templatefile benutzt du ein Capture das nirgends ausgegeben wird. Einfach weglassen.

	[{$smarty.block.parent}]
	<tr>
		<td class="edittext" height="15">
			test 1
		</td>
		<td class="edittext" align="right">
			test 1
		</td>
		<td class="edittext">
			test 1
		</td>
	</tr>
	<tr>
		<td class="edittext" height="15">
			test 2
		</td>
		<td class="edittext" align="right">
			test 2
		</td>
		<td class="edittext">
			test 2
		</td>
	</tr>

Wenn du an den Blocks was änderst musst du den Eintrag in oxtplblocks vor dem Aktivieren entfernen (https://bugs.oxid-esales.com/view.php?id=4025) oder z.B. das verwenden: https://github.com/vanilla-thunder/vt-devutils

Vielen Dank, genau diese Antwort hat mir geholfen und jetzt konnte ich das Modul fertig stellen.

Gruß Daniel