Hallo, ich möchte im header ganz oben als erstes eine kleine js Animation ausführen und darunter mein shoplogo. Kann mir jemand sagen, welche Datei für diese gewünschte Änderung infrage käme? Edit:
Hm, ein Top <div> in den Header, also ein div-container als erste Zeile. Man könnte den Block {block name="first_block"}<div></div>{/block} in der ..../custom/index.html oder in der ..../custom/layout_header.html einfügen. Bringt aber nichts, da beide Dateien in der html/custom von Malibu liegen, also sie Childs von Honeygrid sind. Das Einfügen eines Blocks würde sowohl in Malibu als auch im meinChild ignoriert. Eine der beiden Dateien von "/Malibu/html/custom" in das Verzeichnis "/meinChild/html/system" legen bringt auch nichts, da die Datei dann die Datei in Honeygrid ersetzt, und nur die Änderungen wirksam würden. Eine Lösung wäre, einen leeren Block {block name="first_block"}{/block} in eine der beiden zur Auswahl stehenden Dateien, die in Honeygrid/html/system/ liegen, einzufügen, und den Quellcode dann in diesem Block, zum Beispiel in der Datei "meinchild/html/custom/index.html", mit Code füllen, das ginge, ist aber nicht updatesicher. Auch könnte man den Inhalt von eine der beiden Dateien (es gibt ja zwei Kanditaten /custom/index.html oder /custom/layout_header.html) aus der Honeygrid/html/system/ kopieren, und die Änderungen aus der meinChild/html/custom/ dann einpflegen, und dann wieder in die meinChild/html/custom/ ablegen. Meine Frage, gibt es einen gaaaanz einfachen Weg, den ich derzeit nicht sehe? Kann man einen solchen Conteiner nicht im backend irgendwie in den Header einfügen?
Du gehst das falsch an. du kannst nciht einfach die Datei nehmen und sagen "ich packe da einen Block dazu" - wo soll der da hin? Du nimmst einen bestehenden Block z.B. {block name="index_outer_wrapper_header_top_navigation"} aus der layout_header.html und hängst Deins da an - entweder davor, oder danach Vor dem Block: {block name="index_outer_wrapper_header_top_navigation" prepend} das was da erscheinen soll {/block} oder nach dem Block {block name="index_outer_wrapper_header_top_navigation" append} das was da erscheinen soll {/block} Und das schreibst Du in Deine eigene Datei, die in Deinem Child - Theme in html/custom/ liegt Für Dein Vorhaben musst Du nur den richtigen Block finden.
Danke Barbara. Doch doch, prinzipiell geht das <Das ist nur ein Beispiel> in: \themes\Honeygrid\html\system\index.html block name="index_head"}{$HEAD}{/block} {if $smarty.const.SHOP_OFFLINE} {block name="index_shop_offline"}{html_shop_offline}{/block} {else} {block name="index_popup_notification"}{$POPUP_NOTIFICATION}{/block} {block name="first_block"}{/block} {block name="index_outer_wrapper"} <div id="outer-wrapper" {if $TOPBAR && $TOPBAR !=''}class="topbar-active"{/if}> {block name ------------------------------------------------------------------------------------------------- Dann den Block gefüllt in: <Das ist nur ein Beispiel> \themes\Malibu\html\custom\index.html {* ========================================================================== index.html - append overlay menu (TODO) - add categories and secondary-navigation to inside area of header (TODO) ========================================================================== *} {block name="first_block"} <div>das ist sehr wenig text</div> {/block} {block name="index_outer_wrapper_header"} {$smarty.block.parent} <button id="meco-overlay-menu-toggle" data-toggle="menu" class="c-hamburger c-hamburger--htx visible-xs-block"> <span></span> Menü </button> Ich werde wohl Deinen Vorschlag aufnehmen, und einen bestehenden Block erweitern.
Wenn du das in die originale Datei schreibst, kann es beim nächsten Update wieder weg sein. Deshalb macht man das mit den Blocks. Das bleibt nach einem Update erhalten - es sei denn, dass der Name des ursprünglichen blocks geändert wird.
Ja genau, das hatte ich ja auch oben geschrieben, dass meine Lösungen nicht updatesicher sind. Deshalb werde ich es wohl so machen, wie Du es sagtest, die Änderungen in einen bestehenden Block einpflegen. Es sei denn, man kann das wirklich übers Dashboard machen, an oberster Stelle im header einen Container einfügen. Habe das bisher nur im Content machen können, aber ganz oben habe ich das nicht gesehen, dass das geht. Gruß Bernd
Falls sich jemand für meine Lösung interessiert: in: \gambio\themes\malibu_test\html\custom\index.html Da ich das meiste auf C:/ mache, ist das natürlich erstmal nur mein individueller Pfad. In der Datei /uhr.html kann ich rumwurschteln Datei aus \gambio\themes\malibu\html\custom\index.html kopiert und dann in \gambio\themes\malibu_test\html\custom\index.html eingefügt und wie folgt geändert: _________________________________________________________________________________ <header id="header" class="navbar"> {include file="C:/xampp/htdocs/gambio/themes/malibu_test/html/uhr/uhr.html"} {include file="get_usermod:{$tpl_path}layout_header.html"} </header> <button id="meco-overlay-menu-toggle" data-toggle="menu" class="c-hamburger c-hamburger--htx visible-xs-block"> <span></span> Menü </button> <div id="meco-overlay-menu"> {block name="index_outer_wrapper_header_inside_top_search_if"} {assign var="showSearchTopNav" value={template_setting name="gx-show-search-top-nav"}} {assign var="hideSearch" value={template_setting name="gx-hide-search-col"}} {if (!$hideSearch || $showSearchTopNav)} <div class="meco-overlay-menu-search"> {block name="index_outer_wrapper_header_inside_top_search"}{$TOP_SEARCH|replace:"navbar-search":""|replace:"input-group":""}{/block} </div> {/if} {/block} </div> {/block} {assign var="HIDE_MENUBOXES" value={template_setting name="gx-product-listing-full-width"}} {if $HIDE_MENUBOXES} {block name="index_inner_wrapper_left"}{/block} {/if} ____________________________________________________________________________________
Du übernimmst da zu viel. Wenn sich die originale Datei, die du kopiert hast, ändert musst du deine auch immer anpassen.
Ja danke für den Hinweis. Ich bin ja noch am rumexerimentieren, will nur erstmal sehen was geht. Die Optimierungen mache ich etwas später. Allerdings werde ich in diesem Fall nicht viel ändern können. Die letzten 4 Zeilen kann ich rausnehmen, das ist richtig. Ansonsten bewege ich mich im index_outer_wrapper_header Block. Man könnte mit append/extend arbeiten, das ginge auch, macht die Sache, wie Du sagtest, updatesicherer, mach ich vielleicht dann später. Gruß an Dich
Vielleicht wäre die layout_header.html da besser.... Aber egal wie, mit einem {$smarty.block.parent} kannst Du das Blocks, die du nicht änderst übernehmen, ohne den ganzen Code zu schreiben. Deine Datei müsste also auch so gehen: HTML: <header id="header" class="navbar"> {include file="C:/xampp/htdocs/gambio/themes/malibu_test/html/uhr/uhr.html"} {include file="get_usermod:{$tpl_path}layout_header.html"} </header> <button id="meco-overlay-menu-toggle" data-toggle="menu" class="c-hamburger c-hamburger--htx visible-xs-block"> <span></span> Menü </button> <div id="meco-overlay-menu"> {block name="index_outer_wrapper_header_inside_top_search_if"} {$smarty.block.parent} {/block} {assign var="HIDE_MENUBOXES" value={template_setting name="gx-product-listing-full-width"}} {if $HIDE_MENUBOXES} {block name="index_inner_wrapper_left"}{/block} {/if} Das steht in Deiner Datei aber nicht, dass müsste da aber vermutlich rein. Aber, du kannst das auch anders lösen: Du willst etwas über den "layout_header.html anzeigen lassen. Dann nimm von Honeygrid (das vererbt zur Zeit an Malibu) den Block dazu und überlade den: Code: {block name="index_outer_wrapper_header"} <header id="header" class="navbar"> Hier Deine Zeile {include file="get_usermod:{$tpl_path}layout_header.html"} </header> {/block} Das müsste eigentlich reichen
Hallo Barbara, danke für Deine Mühe - ist schon toll wie Du Dich hier engagierst. Ups, copy and paste Fehler von mir - hab ich vergessen mit einzufügen. Klar, kann sonst ja überhaupt nicht funktionieren. {block name="index_outer_wrapper_header"} <header id="header" class="navbar"> {include file="C:/xampp/htdocs/gambio/themes/malibu_test/html/uhr/uhr.html"} {include file="get_usermod:{$tpl_path}layout_header.html"} </header> <button id="meco-overlay-menu-toggle" data-toggle="menu" class="c-hamburger c-hamburger--htx visible-xs-block"> <span></span> Menü </button> bla bla bla ... . Die Lösung von Dir hatte ich mir auch überlegt, funktioniert aber nicht. Malibu (child) holt sich mit {$smarty.block.parent} den Inhalt von Block "index_outer_wrapper_header" von Honeygrid. Malibu überdeckt dann den Block "index_outer_wrapper_header" mit weiteren Code. Wenn man nun mit mychild (mein eigenes abgeleitetes Kind von Malibu) den Block "index_outer_wrapper_header" überschreibt, aber nur die Sequenz <header id="header" class="navbar"> {include file="get_usermod:{$tpl_path}layout_header.html"} </header> dann fällt der weitere Code <button id="meco-overlay-menu-toggle" data-toggle="menu" class="c-hamburger c-hamburger--htx visible-xs-block"> <span></span> Menü </button> <div id="meco-overlay-menu"> bla bla bla ... . unter den Tisch, das heisst, er fehlt dann. Man könnte diesen Teil natürlich in Malibu in einen weiteren Block setzen, und diesen Block dann mit extends in mychild einbinden - ist dann aber nicht mehr updatesicher. Das einzige was ich weglassen kann, ich hatte es glaube ich schonmal geschrieben, sind die letzten vier Zeilen: {assign var="HIDE_MENUBOXES" value={template_setting name="gx-product-listing-full-width"}} {if $HIDE_MENUBOXES} {block name="index_inner_wrapper_left"}{/block} {/if} Mal was anderes: Kann man abschätzen, wann in etwa die Version 4.5 als stable Version erscheinen könnte, nur mal so als Hausnummer aus der Erfahrung aus der Vergangenheit heraus.
Du müsstest aber auch wie oben geschrieben mit {$smarty.block.parent} den Teil aus Malibu übernehmen können Dann brauchst Du nicht den ganzen Rest mit schreiben. übrigens ist es einfacher den Code zu lesen, wenn Du dafür eine Code-Box nutzt (dann muss man auch nicht so viel scrollen). die findest Du hinter dem kleinen "+" in der Leiste über dem Textfeld Es ist zur 4.5 gerade erst die Beta 1 erschienen. Kommt darauf an, was alles gefunden und geändert wird. es kann in 4 Wochen so weit sein es können aber auch 8 Wochen oder mehr werden.