In Veyton eine zusätzliche administrierbare Box einrichten

In diesem kurzen Tutorial wird zum einen beschrieben, wie man in Veyton eine zusätzliche Box mit administrierbarem Inhalt erstellen kann und zum anderen wie man eine zweite Box mit Links ähnlich der “Informations-Box” erstellen kann.

Um im Shopsystem Veyton eine zusätzliche administrierbare Box einzurichten, muss man wie folgt vorgehen:

Zuerst wird im Backend unter “Inhalte –> Content Manager –> Content” ein neuer Content erstellt. Dieser enthält dann den Text, welcher später in unserer Textbox erscheinen soll.

Interessant ist hier nur der Reiter “Standard”. Hier den Titel, Namen und Inhalt des Contents angeben. Die ID des erstellten Contents ist wichtig für uns. Diese bitte merken, sie wird später noch benötigt.

Nun muss die Templatedatei des Shopsystems angepasst werden, damit die Box dann auch auf der Internetseite erscheint. Diese index.html findet man im Templateordner /templates/xt_default/index.html. Hier handelt es sich um das Default-Template von xtCommerce Veyton. Bei der Verwenung eines anderen Templates lautet der Pfad natürlich entsprechend anders.

Folgender Code ist nun für die Box relevant:

{content cont_id=8 is_id=false}
{$_content_8.content_title}
{$_content_8.content_body}

Damit der Content dann auch als Box mit der CSS-Formatierung erscheint muss er mit den entsprechenden CSS-Klassen versehen werden. Dies kann man im Template von anderen Boxen abschauen. Im Standard-Template sieht der Code, welcher einzufügen ist folgendermaßen aus:

<div id="rightcol">{box name=cart}

<!-- NEU eingefuegt -->{content cont_id=8 is_id=false}
<h2 class="boxheader">{$_content_8.content_title}</h2>
<div class="boxbody">{$_content_8.content_body}</div>
<!-- Ende: NEU eingefuegt -->

{box name=loginbox}{box name=xt_bestseller_products type=user}</div>

Im o.a. Beispiel würde die Box in der rechten Spalte zwischen dem Warenkorb und der Login-Box erscheinen. Die administrierbare Box ist nun erstellt und sollte im Shop auch erscheinen.

Wichtiger Hinweis an dieser Stelle: Die Anführungszeichen werden beim Copy & Paste nicht richtig erkannt. Diese müssen dann manuell noch einmal “nachgeschrieben” werden. Ebenso ist darauf zu achten, dass die Kommentare mit zwei (!) Bindestrichen erstellt werden.

Manchmal möchte man jedoch eine Box erstellen, die ähnlich der “Informations-Box” Links zu weiteren Informativen Seiten erhält. So kann man zum Beispiel Informationen der Bestellabwicklung, wie z.B. AGB, Liefer- und Versandkosten, Impressum, Kontakt, Privatsphäre und Datenschutz und dem Widerrufsrecht, von den reinen Fachinformationen zu den Shopartikeln trennen. Um eine solche Box zu erstellen ist es nötig zuerst unter “Inhalte –> Contentmanager –> Content Blöcke” einen neuen Block anzulegen. Diesen nennen wir beispielsweise “innovation”. Die ID des neuen Blocks ist wichtig und in unserem Beispiel die Nummer 11.

Erstellung einer zweiten Informationsbox
Erstellung einer zweiten Informationsbox

An der Stelle an der wir nun diesen Block bzw. diese Box haben möchten ist nun der folgende Code inder index.html einzufügen:

{content block_id=11 levels=true}{if $_content_11|count > 0} 
<h2 class="boxheader">Name der Box</h2>
<div class="infoboxbody"> <ul class="contentlist">
{foreach name=aussen item=box_data from=$_content_11} 
<li class="level{$box_data.level}{if $box_data.active} active{/if}">
<a href="{$box_data.link}">{$box_data.title}</a>
</li> {/foreach} 
</ul> 
</div> {/if}

Die block-id (in unserem Fall die 11) sind entsprechend anzupassen. Selbstverständlich kann der Box-Header auch für die Mehrsprachigkeit vorbereitet werden. Dann ist anstelle vom Text  “Name der Box” der entsprechende Text-Key einzusetzen. z.B.

<h2 class="boxheader">{txt key=TEXT_INNOVATION}</h2>;

Unter “Einstellungen –> Lokalisierung –> Sprachtexte” kann dann ein neuer Sprechtext mit dem Schlüssel “TEXT_INNOVATION” und dem Text “Innovation” angelegt werden. Um nun die Box mit Inhalt zu versehen, wird unter “Inhalte –> Content Manager –> Content” ein neuer Content hinzugefügt. Nachdem dieser durch einen Haken auf “Status” aktiviert wird, kann man nun unter dem Reiter “Anzeige” den Haken beim vorher angelegten Content Block “innovation” anklicken. Somit wird der neue Inhalt dann der Box zugewiesen.

Erstellung einer zusätzlichen Info-Box
Erstellung einer zusätzlichen Info-Box

Nun sollte die entsprechende Box im Shop erscheinen. So sollte es dann auch bei Ihnen aussehen:

Neue Box
Neue Box

Zum Abschluss habe ich noch einen kleinen Tipp, welche nichts mit den Informationsboxen zu tun haben. Nutzt man das Master / Slave System von Veyton, so wird beim Master-Artikel gewöhnlich entweder gar kein Preis oder ein vorher im Masterartikel festgelegter Preis angezeigt. Da die Slave Artikel meist verschiedene Preise haben ist dies für den Kunden eventuell etwas missverständlich. Aus diesem Grund ist es sinnvoll bei der Anzeige des Preises im Masterartikel das Wörtchen “ab” davor zu stellen. Hierzu muss im Masterartikel dann der niedrigste Preis eingegeben werden. Damit dann später etwas in dieser Art erscheint:

Preis eines Masters mit "ab" anzeigen
Preis eines Masterartikels

Hierzu muss in der Datei /templates/templatename/xtCore/pages/product_listing/product_listing_v1.html folgendes geändert werden. Nach dieser Zeile:

{if $smarty.const._CUST_STATUS_SHOW_PRICE eq '1'}

steht

<p class="price">{$module_data.products_price.formated}</p>

Diese Zeile ( in den <p>-Tags) muss ersetzt werden durch folgende:

{if $module_data.products_master_flag eq '1'}<p class="price">ab {$module_data.products_price.formated}</p>
{else} <p class="price">{$module_data.products_price.formated}</p>{/if}

Am Ende muss also dieser komplette Block im Template stehen:

{if $smarty.const._CUST_STATUS_SHOW_PRICE eq '1'}
{if $module_data.products_master_flag eq '1'}<p class="price">ab {$module_data.products_price.formated}</p>
{else} <p class="price">{$module_data.products_price.formated}</p>{/if}

Es wird im IF abgefragt ob es ein Masterprodukt ist und wenn ja schreiben wir ein “ab” davor. Wenn nicht, dann nicht. Selbstverständlich kann auch dieses Wort “ab” für die Mehrsprachigkeit ausgelegt werden.

Anstelle des Wortes “ab” muss dann der Text-Key eingesetzt werden: {txt key=TEXT_AB}

Unter “Einstellungen –> Lokalisierung –> Sprachtexte” kann dann ein neuer Sprechtext mit dem Schlüssel “TEXT_AB” und dem Text “ab” angelegt werden.

Ich hoffe der Beitrag war ein bischen nützlich und ich würde mich über Erfahrungsberichte sehr freuen.

40 Antworten auf „In Veyton eine zusätzliche administrierbare Box einrichten“

  1. Danke für deine Mühe, ist wirklich einfach erklärt und für jeden zu verstehen.

    Tipp: Die Anführungszeichen der CSS-Befehle werden nicht erkannt, also nicht wundern, wenn nach dem kopieren die Box nicht korrekt dargestellt wird.

  2. Hi Baldos,
    bitte überprüfe nach dem Einfügen die Textstelle auf falsche Hochkommata. Am Besten ersetzt Du die Hochkommas komplett im Text. Wenn Du nicht klar kommst, dann sende mir die entsprechende Datei und ich schau mal drüber.

  3. Danke für den Hilfe-Text, er ist klar und ohne Probleme umsetzbar.

    Hast du rein zufällig auch einen Rat, wenn ich in der Box mit Rubriken arbeiten möchte, also z.B.:

    Box Rezepte
    Unterpunkt Vorspeisen
    Unterpunkt Hauptspeisen
    Unterpunkt Desserts

    Und in den Unterpunkten dann diverse Rezepte auf verschiedenen Seiten natürlich.

    Danke für deine Mühe

    Torsten

  4. Hallo Torsten,
    also das mit den Unterpunkten habe ich ja bereits realisiert. (siehe oben: Box “Innovation”)

    Im Backend kannst Du nun einen neuen Content anlegen (z.B. “Vorspeisen”) Dort hinterlegst Du irgendetwas allgemeines.

    Wenn Du nun im Backend wiederrum einen neuen Content (z.B. Quarkspeise) anlegst wählst Du bei “Übergeordneten Content” den Punkt “Vorspeisen” aus. Der Link zu diesem Content erscheint dann automatisch auch auf der Vorspeisen Seite mit dem Link “Quarkspeise”.

  5. Danke für die Anleitung. Leider wird der neue Box bei mir nicht in anderen Sprachen als Deutsch angezeigt – ich kann mir nicht erklären warum. Ich habe “de”, “en”, “fr” und “es” installiert, und selbstverständlich habe ich den neuen content auch in alle vier Sprachen erstellt. Aber nur auf de (Defaultsprache) wird das Ding (ist ein Banner im rechten Spalte, direkt unter dem Warenkorb) auch angezeigt. Hast Du eine Idee, warum? Danke!

  6. Hallo Juan Pablo, also das ist schon sehr suspekt. Normalerweise ist der Code ja im Template (index.html) eingebunden. Da diese nicht Sprachabhängig ist sollte die Box natürlich auch erscheinen. Um Dir zu helfen bräuchte ich einen temporären Shop-Admin und FTP-Zugang, dann würde ich mir das heute abend einmal anschauen.

    Gruß
    Gernot

  7. Ja, mir kommt das ganze genau so komisch vor.

    Zugangsdaten darf ich leider nicht rausgeben; wenn ich nicht weiterkomme werde ich auf meinem Server eine Testumgebung einrichten und dann komme ich auf dein Angebot zurück. Jedenfalls vielen dank, daß Du dir das mal näher anschauen möchtest!

    (Sollte ich das lösen poste ich auf jeden Fall noch bescheid, was das Problem war, so daß andere evtl. auch betroffene die Lösung haben…)

  8. Am Ende war das was ganz banales (die Referenzierung des Banners hatte ich, warum auch immer, nur in der .de-Version absolut; bei den anderen Sprachen relativ zum Backend, deswegen sah ich die Grafik dort erscheinen, aber war verschwunden im Frontend…)

  9. Über die IF Abfrage kann man die Produkte mit Master Slave Inhalten identifizieren und ein ab vor der Preis setzen.

    Kann man das so auch mit Produkten hinbekommen die mit dem Freitext Optionen Plugin arbeiten?

  10. Das “ab” steht nun vor dem Preis, allerdings nur bei der Produktübersicht. In der Produktbeschreibung wird der Masterartikel ohne “ab” angezeigt. Gibts dafür auch ne Lösung? Bzw. eleganter wäre, wenn in der Produktbeschreibung dann gleich der billigste Slaveartikel angezeigt wird und nicht der Masterartikel…

    1. Hi Daniel. Wenn Du in “Artikel bearbeiten” des Masterartikels auf den Reiter “Template” wechselst und dann dort bei “Artikelinfo-Template” das Template product_master.html auswählst verschwinden bei Masterartikeln die Preisinformationen komplett. Oder Du musst die Datei xtCore/pages/product/product.html dann dementsprechend anpassen. Hier musst Du aufpassen, da in der product.html die abzufragende Variable nun $products_master_flag und nicht $module_data.products_master_flag heißt.

  11. Hallo,

    ich möchte das mit dem “ab” in das Template xtCore/pages/price/price.html einbauen. Wenn ich dort allerdings “{if $products_master_flag eq ‘1’}” verwende, wird nichts angezeigt, also kein “ab”. Mein ganz Block sieht so aus:
    {if $products_master_flag eq ‘1’}{txt key=TEXT_AB} {$PRICE.formated}
    {else}test{$PRICE.formated}{/if}
    Natürlich gibt es den Text TEXT_AB. Wie muss man die if Abfrage in diesem Template denn einsetzen?

    Vielen Dank vorab!

  12. Achja, noch etwas. Wir nutzen auch das Options- und Freitextmodul. Wie muss die if Abfrage denn dafür aussehen? Also es soll sowohl nach dem Master dingens abgefragt werden als auch nach dem Optionsmodul.

    Vielen Dank vorab 🙂

  13. Hallo Herbert,

    leider kann ich Dir diesbezüglich nicht weiterhelfen, da in der price.html die entsprechende Variable nicht zur Verfügung steht. Mit {debug} kann man überprüfen welche Variablen zur Verfügung stehen.
    Hinsichtlich des Options- und Freitextmoduls kann ich nur sagen, dass ich dies nicht einsetze. Leider wird dies auch mein letztes Veyton – System sein, da ich alles andere als zufrieden bin.

    Sorry, dass ich nicht weiterhelfen konnte.

  14. Hallo, sehr gutes Beispiel, allerdings leuchtet mir nicht ein, woher du dann die “Innovationen”, also “Biotan”, “Vital-Bratoel” usw. herholst. Ich fummel jetzt schon seit 2 Tagen rum…

  15. Hallo Micha,
    ich zitiere jetzt einfach mal von oben:

    “Um nun die Box mit Inhalt zu versehen, wird unter “Inhalte –> Content Manager –> Content” ein neuer Content hinzugefügt. Nachdem dieser durch einen Haken auf “Status” aktiviert wird, kann man nun unter dem Reiter “Anzeige” den Haken beim vorher angelegten Content Block “innovation” anklicken. Somit wird der neue Inhalt dann der Box zugewiesen.”

    Also einfach da, wo Deine AGBs und die Liefer und Versandkosten als Content angelegt sind einen neuen Content erstellen und im Reiter “Anzeige” die neue Box auswählen.

  16. Hallo Guba, wie ich sehe erscheint der Text mittlerweile rechts. Du musst jedoch auch die Stylesheets der Boxen dementsprechend anpassen.

    class=”boxheader-right” ist für die Boxüberschrift auf der rechten Seite zuständig. In der Angebote Box ist schon (vermutlich fälschlicherweise) die Klasse boxheader-left verwendet worden.

    Gerne kann ich am nächsten WE mal per Fernwartung draufschauen. Bitte sende mir einfach eine Mail.

  17. Super gut erklärt, vielen Dank.

    Gibt es auch irgendeine Möglichkeit oder einen Trick, eine solche Box mit abgerundeten Ecken darzustellen?

    Ganz lieben Gruß
    Sirina

  18. Hallo!

    Danke für die Anleitung! Ich habe es auch geschafft, die administrierbare Box zu erstellen. Allerdings erscheint diese bei mir dann nich so wie die vorhandenen Boxen. Ich würde diese gerne so wie in Box Informationen haben. Wie muss ich dass anstellen, was muss ich machen?

    Gruß, Klaus

  19. Hallo!,

    toll erklärt, aber wie bekomme ich einen zusätzlichen Menüpunkt, z.b. neben Kasse bzw. Anmelden? Kann man das auch über die Ansicht im Adminbereich Steuern?
    Habe mich schon ein wenig versucht, aber ihrendwie bekomme ich das nicht hin.

    Grüße
    Eric

    1. Hallo Eric,
      um neben Kasse einen weiteren Link zu bekommen gehe einfach in die //templates/xt_default/index.html und setze in das

        ein weiteres Listenelement mit Deinem Link. Achte darauf das das li außerhalb der if Schleife ist.

        Gruß
        Gernot

    Schreibe einen Kommentar zu Martin Antworten abbrechen

    Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert