Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Eigenes Template <=> hardcoded HTML im Core

    webald

    • modified Team
    • Beiträge: 2.791
    Eigenes Template <=> hardcoded HTML im Core
    am: 02. März 2016, 13:41:47
    Bastel ja gerade an einem Template und da will der Backlink im Footer nur linksbündig. Ist auch klar, da ich die CSS-Klasse "copyright" so (noch) nicht habe. Aber....

    der Backlink und die CSS-Klasse "copyright" wird nach Aufruf der index.html im Template erst im Core erzeugt.
    Ebenfalls danach wird die includes/application_bottom.php aufgerufen und dort auch das HTML-Dokument abgeschlossen (</body></html>).

    Eigentlich fehlt vor dem Abschluss noch die Möglichkeit HTML-Code aus dem Template-Ordner einzubinden (und wenn es nur für ein </div> ist). Andernfalls ist wieder ein Eingriff in den Core notwendig ggf. nur für ein Template.

    Linkback: https://www.modified-shop.org/forum/index.php?topic=34490.0

    Bonsai

    • Viel Schreiber
    • Beiträge: 4.127
    • Geschlecht:
    Re: Eigenes Template <=> hardcoded HTML im Core
    Antwort #1 am: 02. März 2016, 18:33:53
    In anderen Templates wird teilweise einfach ersetzt ....

    so was:
    Code: XML  [Auswählen]
    {$box_data.PRODUCTS_SHIPPING_LINK|regex_replace:'/<a[^>]*href="([^"]*)"[^>]*>(.*)<\/a>/':'<a href="$1" data-type="iframe" class="venobox-modal">$2</a>'}

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.990
    • Geschlecht:
    Re: Eigenes Template <=> hardcoded HTML im Core
    Antwort #2 am: 03. März 2016, 17:53:17
    Vor der div class="copyright" will (sollte man) doch normalerweise nichts mehr einfügen.
    Um noch etwas im Footer-Bereich unterzubringen reicht doch das Ende der index.html des Templates, nicht ?
    Was habe ich nicht verstanden ?

    Gruß,
    noRiddle

    webald

    • modified Team
    • Beiträge: 2.791
    Re: Eigenes Template <=> hardcoded HTML im Core
    Antwort #3 am: 03. März 2016, 18:29:57
    templates/xtc5/index.html:
    Code: PHP  [Auswählen]
      </div>
      <p class="footer">{$smarty.const.TITLE} &copy; {$smarty.now|date_format:"%Y"} | Template &copy; 2009-{$smarty.now|date_format:"%Y"} by <span class="cop_magenta">mod</span><span class="cop_grey">ified eCommerce Shopsoftware</span></p>
    </div>

    Das ist der letzte formatierbare Bereich im Template.
    Der modified-Backlink kommt jedoch danach erst.
    Ebenso kommt das schließende body- und html-tag aus dem Core, aus application_bottom.php.

    Ich habe für ein neues Template alle vorhandenen Styles und CSS-Dateien rausgeworfen und nur das Foundation-Framework bis jetzt eingebunden. Da rutscht dann z. B. das copyright nach links. Das wäre mir sonst nie aufgefallen. Ein Formatierung übers Framework ist nicht möglich, da die das copyright außerhalb vom Template erzeugt und mit einer CSS-Klasse versehen wird, die im Framework nicht vorhanden ist. Bleibt nur Eingriff in den Core oder die Klasse copyright neu ins CSS des Templates.

    cplasa

    • Fördermitglied
    • Beiträge: 200
    • Geschlecht:
    Re: Eigenes Template <=> hardcoded HTML im Core
    Antwort #4 am: 04. März 2016, 09:03:50
    ....wäre es nicht am einfachsten den copyright-Hinweis im Core zu entfernen und in der index.html des Templates dann nachzubauen?

    webald

    • modified Team
    • Beiträge: 2.791
    Re: Eigenes Template <=> hardcoded HTML im Core
    Antwort #5 am: 04. März 2016, 09:20:01
    Nein. Ziel muss es sein den Core unangetastet zu lassen und Templates jederzeit ohne spezifische Codeanpassungen nutzen zu können.

    Wichtig ist dabei aber natürlich, dass auch die Entwichler und Designer versuchen Probleme außerhalb des Cores zu lösen, auch wenn das ggf. aufwändiger ist. Update werden dadurch halt erheblich vereinfacht.

    karsta.de

    • Experte
    • Beiträge: 3.157
    Re: Eigenes Template <=> hardcoded HTML im Core
    Antwort #6 am: 04. März 2016, 09:55:03
    Es beteht die Möglichkeit im CSS mit order (Sortierung der DIVs) zu arbeiten. Da kannst du die Position des div copyright festlegen. so z.B.
    Code: CSS  [Auswählen]
    .copyright{font-size:10px;height:30px;margin:10px auto;order:6;text-align:left;}
     

    hpzeller

    • Experte
    • Beiträge: 4.129
    • Geschlecht:
    Re: Eigenes Template <=> hardcoded HTML im Core
    Antwort #7 am: 04. März 2016, 10:49:50
    Die Eigenschaft 'order' habe ich auch nicht gekannt, 'wiki.selfhtml.org' sagt zu dieser Eigenschaft folgendes, das DIV muss sich in einem Container mit 'display:flex' befinden und wird erst ab IE11 unterstützt.

    https://wiki.selfhtml.org/wiki/Referenz:CSS/Eigenschaften/order

    Grüsse
    Hanspeter

    webald

    • modified Team
    • Beiträge: 2.791
    Re: Eigenes Template <=> hardcoded HTML im Core
    Antwort #8 am: 04. März 2016, 11:06:49
    das DIV muss sich in einem Container mit 'display:flex' befinden und wird erst ab IE11 unterstützt.
    Das ist der Knackpunkt. Diesen Container gibt es in diesem Fall ja nicht.

    Code: CSS  [Auswählen]
    .copyright{font-size:10px;height:30px;margin:10px auto;order:6;text-align:left;}
     
    d.h. aber wieder, dass ich eine CSS-klasse copyright benötige. Möchte man nur mit den vom Framework gegebenen Klassen auskommen, dann steht der Backlink irgendwo, nur nicht da wo man ihn gerne hätte.

    Ich behelf mir jetzt mal mit einem includes('templates/'.CURRENT_TEMPLATE.'/application_bottom_final.php') in der application_bottom.php vor dem schließenden body-tag.

    karsta.de

    • Experte
    • Beiträge: 3.157
    Re: Eigenes Template <=> hardcoded HTML im Core
    Antwort #9 am: 04. März 2016, 11:16:49
    Zitat
    Möchte man nur mit den vom Framework gegebenen Klassen auskommen

    Habe ich etwas falsch verstanden. In der Original modified-shop Datei includes\classes\Smarty_2.6.27\plugins\outputfilter.note.php steht die Klasse doch drin: <div class="copyright">

    Code: PHP  [Auswählen]
      $cop='<div class="copyright">'.((basename($PHP_SELF)=='index.php' && $_SERVER['QUERY_STRING']=='')?'<a href="http://www.modified-shop.org" target="_blank">':'').'<span class="cop_magenta">mod</span><span class="cop_grey">ified eCommerce Shopsoftware &copy; 2009-' . date('Y') . '</span>'.((basename($PHP_SELF)=='index.php' && $_SERVER['QUERY_STRING']=='')?'</a>':'').'</div>';
     

    Ist also nicht neu und kann man dann in der css einfach definieren.

    Zitat
    wird erst ab IE11 unterstützt
    Der Fortschritt ist wohl nicht mehr aufzuhalten. (In allen Bereichen, ob php, css....)
    Außerdem gehe ich davon aus, dass beim Thema Template (NEU) responsive ('display:flex') Standard wird.

    webald

    • modified Team
    • Beiträge: 2.791
    Re: Eigenes Template <=> hardcoded HTML im Core
    Antwort #10 am: 04. März 2016, 13:02:12
    Genau das ist es: die Klasse wird im Core zugewiesen.
    Die Klasse copyright gehört nicht zum (Foundation-)Framework und muss einer CSS-Datei im Template hinzugefügt werden, statt eine vorhanden Klasse des Framworks nutzen zu können.

    Sortieren kannst Du nicht, auch wenn das Template mit Flex aufgebaut ist. das copyright liegt im Standard in keiner Box. Und ohne Box auch keine Sortierung. Richtig? Wenn Du das in eine Box packen möchtest, da muss hinter das copyright-Backlink-Konstrukt noch ein schließendes div. Nur über das Template bekommt man das da aber nicht hin. Daher mein Weg über die Hilfsdatei application_bottom-final.php im Template.

    Theoretisch kann in so etwas dann auch Javascript und ähnliches gepackt werden und steht somit ganz am Ende.

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.990
    • Geschlecht:
    Re: Eigenes Template <=> hardcoded HTML im Core
    Antwort #11 am: 04. März 2016, 22:51:50
    Also manche Probleme kommen mir wirklich konstruiert vor.
    Wo ist das Problem eine weitere Klasse ins Framework oder einer folgenden CSS-Datei aufzunehmen ?
    Wer sagt, daß man, benutzt man ein Framework, nur die Klassen des Frameworks benutzen kann/soll ?

    Verstehe es wer will, ich tu's nicht.

    Da gibt es doch weit wichtigere Dinge was HTML und Klassen anbelangt, nämlich z.B. die seit langem unsägliche Frickelei in der Zusammenstzung der diversen Preisdarstellungen.
    Da kommt man manchmal wirklich nicht ohne Core-Eingriff zum Ziel.
    Aber auch da gibt es Möglichkeiten mittels Smarty-Modifiern.

    Gruß,
    noRiddle

    webald

    • modified Team
    • Beiträge: 2.791
    Re: Eigenes Template <=> hardcoded HTML im Core
    Antwort #12 am: 05. März 2016, 09:11:26
    Ich finde das gar nicht konstruiert.

    kgd weißt darauf hin, dass man DIV's sortieren kann. Das funktioniert aber nur innerhalb einer Box. Wie ich oben geschrieben habe ist besagte Codestelle nicht innerhalb einer Box und man bekommt Sie ohne Core-Eingriff da auch nicht hin.

    Und klar kann ich im Stylesheet eine zusätzliche Klasse anlegen. Nur bedeutet das zusätzliche Pflege, ggf. sogar mehrfach (@media blablabla).

    Es sind doch genau diese Kleingikeiten, die es nicht erlauben eine Template einfach zu tauschen. Meine Vision eine Shops ist halt, dass kein Core-Eingriff mehr nötig ist. Das erlaubt dann auch, Module und Templates mit einem Klick zu installieren. Außerdem sind Updates schneller und einfacher möglich. Wen ich sehe wieviele Shops nicht mit der aktuellen Version betrieben werden, obwohl Lücken bekannt und gefixt sind, dann kann das nur andem Aufwand liegen den Shop technisch aktuell zu halten.

    Sollte es notwendig sein, dass trotz allem CSS-Klassen im Core festgelegt werden müssen, so sollte  man da auf eine andere, einheitliche Namensgebung gehen. "copyright", "logo", "navbar" sind ja durchaus übliche Bezeichungen in diversen Frameworks. In Anlehnung an Typo3 könnten Sachen aus dem Core ein Präfix wie msc_ haben, also "msc_copyright", "msc_logo". Für Erweiterungen verhält es sich bei Typo3 übrigens auch ähnlich: Entwickler regstrieren ein Präfix, womit Namensgleichheiten und die Probleme damit ziemlich ausgeschlossen sind.

    Aber das soll kein Glaubenskrieg werden (und ich habe gelernt, dass man div's sortieren kann).

    @noRiddle
    Das mit der Preisdarstellung verstehe ich nicht. Kannst ja mal ein neues Thema aufmachen.
    Marktplatz - Eine große Auswahl an neuen und hilfreichen Modulen sowie modernen Templates für die modified eCommerce Shopsoftware
    4 Antworten
    4362 Aufrufe
    24. April 2018, 13:08:59 von Yegor
    2 Antworten
    2726 Aufrufe
    04. Oktober 2013, 01:02:51 von kaisa
    2 Antworten
    485 Aufrufe
    05. Juni 2023, 13:59:57 von estrich