Neuen "Reiter" bei produktansicht hinzufügen

liebe community,
ich bräuchte folgende hilfe.
wenn ich auf einer produktseite bin, sehe ich als Reiter zum einen “BESCHREIBUNG” und “PREISALARM”.

ist es möglich, noch einen weiteren reiter hinzuzufügen mit “SPEZIFIKATIONEN”?

was muss gemacht werden?
ich hoffe es ist nicht allzu komplex.

liebe grüße,
micha

/tpl/page/details/inc/tabs.tpl

Kopier Dir so einen Abschnitt zwischen <block> und </block> und pack da den gewünschten Inhalt rein.
Vermutlich würde sich hier anbieten, entweder die Attribute darzustellen, oder eine (neu anzulegende) CMS-Seite einzubinden.

danke dir hebsacker, du bist immer ein echt hilfreicher zeitgenosse :slight_smile: leider muss ich dich enttäuschen, sobald es um einen individuellen quellcode geht, bin ich überfordert.
ich hab in der datei, die du mir gesagt hast folgendes gefunden, wo ich denke, dass das der abschnitt ist für die normale produktbeschreibung:
[{block name=“details_tabs_longdescription”}]
[{oxhasrights ident=“SHOWLONGDESCRIPTION”}]
[{assign var=“oLongdesc” value=$oDetailsProduct->getLongDescription()}]
[{if $oLongdesc->value}]
[{capture append=“tabs”}]<a href="#description">[{oxmultilang ident=“PAGE_DETAILS_TABS_DESCRIPTION”}]</a>[{/capture}]
[{capture append=“tabsContent”}]
<div id=“description” class=“cmsContent”>
[{oxeval var=$oLongdesc}]
[{if $oDetailsProduct->oxarticles__oxexturl->value}]
<a id=“productExturl” class=“js-external” href=“http://[{$oDetailsProduct->oxarticles__oxexturl->value}]”>
[{if $oDetailsProduct->oxarticles__oxurldesc->value }]
[{$oDetailsProduct->oxarticles__oxurldesc->value }]
[{else}]
[{$oDetailsProduct->oxarticles__oxexturl->value }]
[{/if}]
</a>
[{/if}]
</div>
[{/capture}]
[{/if}]
[{/oxhasrights}]
[{/block}]

die produktbeschreibungen habe ich in die oxartextends.csv geschrieben, finde aber keinen verweis auf diese tabelle, sodass ich 1:1 übertragen kann.

ebenso muss ja auch eine tabelle angelegt werden, da ich vorhabe, die spezifikationen (so soll der “reiter” heißen) per csv import zu importieren.

hoffe ich habe mich halbwegs verständlich ausgedrückt.

vielen dank für deine / eure mühen!

lg micha

Moin Micha,

wenn du nicht selbst programmieren willst, schau dir doch mal DASan.

Beste Grüsse

Thomas

würde es ja schon gerne versuchen, habe ja probiert zu erkennen, was in der tabs.tpl zu finden ist, aber z.b. die longdescription habe ich in oxartextends, diesen wert z.b. finde ich gar nicht.

hier ein beispiel für den “Preisalarm”
[{block name=“details_tabs_pricealarm”}]
[{if $oView->isPriceAlarm() && !$oDetailsProduct->isParentNotBuyable()}]
[{capture append=“tabs”}]<a href="#pricealarm">[{oxmultilang ident=“DETAILS_PRICEALARM”}]</a>[{/capture}]
[{capture append=“tabsContent”}]<div id=“pricealarm”>[{include file=“form/pricealarm.tpl”}]</div>[{/capture}]
[{/if}]
[{/block}]

vielleicht ist es ja möglich, mir doch noch zu helfen. z.b. muss die spezifikationen (bei meinen projekt nur text) ja auch irgendwo in einer DB gespeichert werden. wie bekommei ch so einen verknüpfung hin?

beste grüße
micha

Die “longdescription” (also der Artikel-Langtext) wird da standardmäßig bereits eingebunden, das musst Du nicht mehr extra reinbasteln. Schreib mal nen Text rein im Backend bei einem Artikel und schaus Dir im Frontend dann an.

habe im forum noch was brauchbares gefunden von einen anderen user. das habe ich testweise in die tabs.tpl integriert und ich sehe auch jerzt den Tab “Test Daten”.

[{block name=“details_tabs_test”}]
[{capture append=“tabs”}]<a href=“#testdata”>TEST DATEN</a>[{/capture}]
[{capture append=“tabsContent”}]
<div>
testdata
</div>
[{/capture}]
[{/block}]

worauf bezieht sich die <a href>?
auf eine ID einer CMS seite nicht, das habe ich schon getestet. kann ich hier nicht referenzieren auf eine tabelle von oxid?
liebe grüße

habe jetzt bei mir folgendes in der tabs.tpl stehen:

[{block name=“details_tabs_test”}]
[{capture append=“tabs”}]<a href=“”>Spezifikation</a>[{/capture}]
[{capture append=“tabsContent”}]

    &lt;div&gt;[{$oDetails

Product->oxartextends__oxlongdesc_1->value}]
</div>

laut meinen informationen wird ja in den div-block der inhalt geregelt, und der soll auf die tabelle oxartextends_oxlongdesc_1 zugreifen.
ich sehe zwar bei den artikeln den Tab Spezifikationen, jedoch klappt der verweis leidern icht.

vielleicht kann mir ja doch noch einer helfen, lg micha

Die “SPEZIFIKATIONEN” sind doch vom Haus schon da.
Admin-> Artikel verwalten->Artikel -> Auswahl -> Attribute zuordnen

ja ich will aber nicht einzelne attribute sondern einen fließtext integrieren, das ist mein problem
und ich habe es oben nur “spezifikation” genannt, mir ist nur noch nicht klar wie ich oxid dazu bekomme, einen wert aus einer datenbank zu integrieren

musst Du nicht - lass doch den Inhalt einer CMS-Seite via Snippet anzeigen - das lässt sich dann auch einfacher pflegen

Hallo Cracko,

laut meinen informationen wird ja in den div-block der inhalt geregelt, und der soll auf die tabelle oxartextends_oxlongdesc_1 zugreifen.
ich sehe zwar bei den artikeln den Tab Spezifikationen, jedoch klappt der verweis leidern icht.

Hast Recht, der Tab lässt sich nicht umschalten und wenn ich in DIV Text rein schreibe dann wird er in allen Tabs unten ausgegeben. Es wird immer interessanter :).

Also…
Ich habe ein wenig geschummelt aber es funktioniert.

  1. Tabs.tpl anpassen.
    ////
    [{block name=“contact”}]
    [{capture append=“tabs”}]<a href="#contact">[{oxmultilang ident=“QUESTIONS_ABOUT_THIS_PRODUCT_1”}]</a>[{/capture}]
    [{capture append=“tabsContent”}]<div id=“contact”>[{include file=“form/contact2.tpl”}]</div>[{/capture}]
    [{/block}]
    //////

  2. form anpassen.
    Ich habe neues Tamplate erstellt und den Code aus contakt.tpl in contact2.tpl rein kopiert.
    Div mit Firmendaten habe ich entfernt um Platz zu sparen.
    Captcha musste auch weg.

  3. Views anpassen.
    //////
    public function getContactSubject()
    {
    if ( $this->_sContactSubject === null ) {
    $this->_sContactSubject = oxConfig::getParameter( ‘c_subject’ );
    }
    return $this->_sContactSubject;
    }

    public function getContactMessage()
    {
    if ( $this->_sContactMessage === null ) {
    $this->_sContactMessage = oxConfig::getParameter( ‘c_message’ );
    }
    return $this->_sContactMessage;
    }

    public function getUserData()
    {
    if ( $this->_oUserData === null ) {
    $this->_oUserData = oxConfig::getParameter( ‘editval’ );
    }
    return $this->_oUserData;
    }
    /////

in views/details.php hinzufügen.

Ich glaube ich habe nichts vergessen ;).

Allerdings habe ich noch eine Frage:
wenn ich den Link <a href="#pricealarm"> ändere z.B in <a href="#contact">
dann funktioniert das ganze nicht mehr.
Ich kopiere nicht woran das liegt.
Hat jemand eine Idee?

Das ganze sieht dann so aus…

Mit #pricealarm im Link wird die id des DIV´s angegeben, der angezeigt werden soll.
Wenn du das im Link änderst, musst du auch die id des DIV#s was angezeigt wird ändern.

Daran habe ich auch schon gedacht aber ich finde kein div Eintrag in oxid.css zu “pricealarm”.

Ähm, was willst du denn im Stylesheet?

Na wenn DIV eine id hat dann muss es doch in oxid.css stehen?
id “#pricealarm” gibt es da aber nicht. Des wegen verstehe ich nicht wo das her kommt und wo soll ich
#contact erstellen?

[QUOTE=kostavan;96909]Na wenn DIV eine id hat dann muss es doch in oxid.css stehen?[/QUOTE]

Das halte ich für ein Gerücht:-))

Nein, dass muss es natürlich nicht. In dem Fall ist es einfach nur ein Bezeichner, eine eindeutige ID eben. Gerade bei JS werden diese häufig benötigt und sie müssen nicht zwangsläufig im Stylesheet aufgeführt sein, ausser man will sie eben noch formatieren.

Wenn du in deine tabs.tpl mal einen Blick schmeisst, wirst du das DIV mit der id pricealarm direkt unter deinem Link finden.

Ah verdammt, so einfach!
Man muss auch div umbenennen.
Danke für den Tipp! jetzt geht es.

wie binde ich das dann bitte ein?