Metadata.php - blocks funktioniert nicht richtig

Hallo zusammen,

Ich möchte eine Anpassung an der listitem_line.tpl machen und den block widget_product_listitem_line_price durch einen eigenen ersetzen. Allerdings wird die Änderung trotz aktiviertem Modul im Frontend nicht umgesetzt (tmp-Folder wurde gelöscht und Views neu generiert). Wenn ich die Änderung zum Test in der Original-Datei mache, dann wird es sofort geändert.
Daher die Frage: was mache ich in der metadata.php falsch?

Ich habe folgendes in den block-array in der metadata hinterlegt:

‘blocks’ => array(
array(
‘template’ => ‘widget/product/listitem_line.tpl’,
‘block’ => ‘widget_product_listitem_line_price’,
‘file’ => ‘Application/views/blocks/xyz.tpl’
),
)

Der Pfad ‘Application/views/blocks/xyz.tpl’ ist exakt so im Modulverzeichnis (/source/modules/modulvendor/modulename).

Danke für eure Unterstützung.

‘file’ => ‘modulvendor/modulename/Application/views/blocks/xyz.tpl’

sollte gehen.

Danke @rubbercut für die schnelle Antwort. Das bringt leider aber auch noch keine Änderung.

Modul neu gestartet und Inhalt der Tabelle oxtplblocks kontrolliert? Hin und wieder wird der neue Ort im Feld oxfile nicht eingetragen.

Habe das Modul deaktiviert und wieder aktiviert. Im Feld oxfile steht folgendes: /views/blocks/xyz.tpl.
Selbst wenn ich das Feld manuell überschreibe mit dem Pfad modulvendor/modulename/Application/views/blocks/xyz.tpl wird es nach dem Neustart wieder mit dem alten Pfad überschrieben und es passiert nichts im Frontend.
Woher zieht sich die Tabelle diese Infos?

Die Infos kommen aus der metadata.php. Ich gehe davon aus, dass Du " modulvendor/modulename/" mit den Daten Deines Moduls ersetzt.
Du kannst den Eintrag in oxfile testweise auch nach Aktivierung des Moduls ändern. TMP leeren nicht vergessen.

Die Doku sagt: " The template block file value has to be specified directly from module root.", also ohne vendor/name

Die Doku sagt: " The template block file value has to be specified directly from module root.", also ohne vendor/name

Also so hatte ich es auch verstanden und ursprünglich gemacht, wie im Ausgangs-Post erwähnt.
Allerdings werden jegliche Änderungen im ‘file’ string nicht in der oxtplblocks übernommen.
z.B. in der metadata steht als Pfad 'Application/views/blocks/xyz.tpl' und in oxtplblocks 'views/blocks/xyz.tpl'.
Auch eine manuelle Änderung des Eintrags in oxfile bringt keine Änderung im Frontend.
Was mache ich falsch?

Sorry, Ich war bei Templates. Wohl deswegen wird der Pfad abgeschnitten.

Kein Problem. Danke für die Rückmeldungen. Hat sonst noch jemand eine Idee, woran es liegen kann, dass die blocks nicht funktionieren?

Der fehlende Block müsste ja unter Systemgesundhett zu finden sein und mein Vorschlag wäre dann, den Ordner views im Modul nach vorne zu holen, also quasi neben Application

Hab den code mal so wie er da steht in ein Modul kopiert und die Datei Application/views/blocks/xyz.tpl erstellt, funktioniert, da ist also kein Fehler. Ein anderes Modul vielleicht das den gleichen Block überschreibt?

Also ich bin ein Stück weitergekommen. Dank eurer Hilfe habe die Blocks nun sichtbar bekommen im Frontend. Aber es ist weiterhin ein Phänomen, dass die Pfade der tpl-Blöcke nicht sauber aus der metadata übernommen werden. Ich hatte gestern mehrere Änderungen gemacht, die hier empfohlen wurden. Die sind gestern aber nicht in der oxtplblocks erschienen, sondern ich musste das manuell ändern. Heute sind nun die Änderungen von gestern drin! Aber eben auch wieder nicht die aktuellen Daten aus der metadata… Tmp-Folder wird selbstverständlich jedesmal gelöscht und Views neu generiert. Gibt es da noch eine tempöräre Tabelle, die die Daten zwischengespeichert und die man leeren muss bei Änderungen?

Ist mir nicht bekannt, dass es da Veränderungen gibt. Du kannst Dir ja mal die Einträge der anderen Module anschauen. Bsp: oegdproptin: Application/views/blocks/contact_form_fields.tpl
Hast die Moduleinträge in oxtplblocks mal komplett gelöscht?

Welche Oxid Version hast du denn?

Community Edition 6.2.1

Ja, ich habe sie jetzt mal komplett gelöscht. Wenn ich es dann nach jeder Anpassung nochmal über die oe-console installiere und wieder aktiviere, dann scheint er die Einträge nun sauber zu übernehmen.

Genau, ab der 6.2 ist das notwendig um Änderungen an der metadata.php zu übernehmen.

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.