Top-Zeile in header

Thema wurde von Anonymous, 31. August 2021 erstellt.

  1. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    18. August 2021
    Beiträge:
    583
    Danke erhalten:
    62
    Danke vergeben:
    254
    #1 Anonymous, 31. August 2021
    Zuletzt bearbeitet: 31. August 2021
    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:
     
  2. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    18. August 2021
    Beiträge:
    583
    Danke erhalten:
    62
    Danke vergeben:
    254
    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?
     
  3. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.352
    Danke erhalten:
    11.198
    Danke vergeben:
    1.601
    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.
     
  4. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    18. August 2021
    Beiträge:
    583
    Danke erhalten:
    62
    Danke vergeben:
    254
    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>

    hc_3445.jpg


    Ich werde wohl Deinen Vorschlag aufnehmen, und einen bestehenden Block erweitern.
     
  5. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.352
    Danke erhalten:
    11.198
    Danke vergeben:
    1.601
    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.
     
  6. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    18. August 2021
    Beiträge:
    583
    Danke erhalten:
    62
    Danke vergeben:
    254
    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
     
  7. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    18. August 2021
    Beiträge:
    583
    Danke erhalten:
    62
    Danke vergeben:
    254
    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}
    ____________________________________________________________________________________
     
  8. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.352
    Danke erhalten:
    11.198
    Danke vergeben:
    1.601
    Du übernimmst da zu viel. Wenn sich die originale Datei, die du kopiert hast, ändert musst du deine auch immer anpassen.
     
  9. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    18. August 2021
    Beiträge:
    583
    Danke erhalten:
    62
    Danke vergeben:
    254
    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
     
  10. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.352
    Danke erhalten:
    11.198
    Danke vergeben:
    1.601
    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
     
  11. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    18. August 2021
    Beiträge:
    583
    Danke erhalten:
    62
    Danke vergeben:
    254
    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.
     
  12. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.352
    Danke erhalten:
    11.198
    Danke vergeben:
    1.601
    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.
     
  13. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    18. August 2021
    Beiträge:
    583
    Danke erhalten:
    62
    Danke vergeben:
    254
    OK, danke für die Info.