Varianten mit externem Link (selectbox.tpl )

Hallo zusammen,

ich benutze das azure-Template mit Oxid CE 4.6.0_44406.
Bisher habe ich auch fast alle meine Fragen mit der Forum-Suche beantworten können.
Mit dem folgenden Problem komme ich aber leider nicht mehr weiter.

Ich möchte gerne in die Varianten-Auswahlliste (Pull-Down) einen externen Link unterbringen.

Die Ein- u. Ausgabe (Front- u. BackEnd) bekomme ich hin.
Ich verstehe das aber noch nicht so richtig mit Smarty und dem JavaScript.

Die “value” mit “google.de” ist nur ein Dummy und soll später aus der DB gelesen werden.

Ich habe die Zeilen die mit [B][{----->}][/B] markiert sind hinzugefügt, ansonsten ist alles vom Original-Template.

Die Darstellung im Varianten-PullDown-Menü funktioniert.
Wenn man unten in der Liste z.B: google.de anklickt soll sich ein externes Fenster öffnen. Das funktioniert auf diese Weise leider nicht.
Kann/würde mir bitte jemand weiterhelfen.

Was muß ich tun damit die externe Verlinkung funktioniert?
Ist dieser Ansatz richtig?

Vielen Dank.

Acanthus


[{oxscript include="js/widgets/oxdropdown.js" priority=10}]
[{oxscript add="$('div.dropDown p').oxDropDown();" }]
[{assign var="oSelections" value=$oSelectionList->getSelections()}]

[{*----->*}]   [{assign var="externLinkSelections" value="http://www.google.de"}]


[{if $oSelections}]
<div class="dropDown [{$sJsAction}]">
    <p class="selectorLabel underlined [{if $editable === false}] js-disabled[{/if}]">
        <label>[{*$oSelectionList->getLabel()*}]:</label>
        [{assign var="oActiveSelection" value=$oSelectionList->getActiveSelection()}]
        [{if $oActiveSelection}]
            <span>[{$oActiveSelection->getName()}]</span>
        [{elseif !$blHideDefault}]
            <span [{if $blInDetails}]class="selectMessage"[{/if}]>
                [{if $sFieldName == "sel" }]
                    [{ oxmultilang ident="WIDGET_PRODUCT_ATTRIBUTES_PLEASECHOOSE" }]
                [{else}]
                    [{ oxmultilang ident="CHOOSE_VARIANT" }]
                [{/if}]
            </span>
        [{/if}]
    </p>
    [{if $editable !== false}]
        <input type="hidden" name="[{$sFieldName|default:"varselid"}][[{$iKey}]]" value="[{if $oActiveSelection }][{$oActiveSelection->getValue()}][{/if}]">
        <ul class="drop [{$sSelType|default:"vardrop"}] FXgradGreyLight shadow">
            [{if $oActiveSelection && !$blHideDefault}]
                <li><a rel="" href="#">
                    [{if $sFieldName == "sel" }]
                        [{ oxmultilang ident="WIDGET_PRODUCT_ATTRIBUTES_PLEASECHOOSE" }]
                    [{else}]
                        [{ oxmultilang ident="CHOOSE_VARIANT" }]
                    [{/if}]
                </a></li>
            [{/if}]
            [{foreach from=$oSelections item=oSelection}]
                <li class="[{if $oSelection->isDisabled()}]js-disabled disabled[{/if}]">
                    <a data-seletion-id="[{$oSelection->getValue()}]" href="[{$oSelection->getLink()}]" class="[{if $oSelection->isActive()}]selected[{/if}]">[{$oSelection->getName()}]</a>
                </li>
            [{/foreach}]
           [{*----->*}]   <li><a href="[{$externLinkSelections}]">google.de</a></li>         
        </ul>        
    [{/if}]
</div>

[{else}]
<a href="[{ $_productLink }]" class="variantMessage">
[{if $sFieldName == "sel" }]
    [{ oxmultilang ident="WIDGET_PRODUCT_ATTRIBUTES_PLEASECHOOSE" }]
[{else}]
    [{ oxmultilang ident="CHOOSE_VARIANT" }]
[{/if}]
</a>
[{/if}]


Guten Morgen,

…schade, immer noch keine Nachricht.
Ich habe kein Empfangskomitee erwartet (bekommt man bei xt-commerce auch nicht :wink: ) aber wenigstens einen kleinen Hinweis oder ähnliches wäre schon ganz nett.

Es ist wirklich wichtig für mich und ich wäre auch bereit für die Lösung etwas zu bezahlen. Hat jemand Interesse? Wenn ja, was würde es mich kosten? Bitte PM an mich. Danke.

VG, Acanthus

ein Forum ist nun mal keine Hotline und auch nur die wenigsten hier sind Entwickler, die sich mit dem Thema auskennen, daher kann es vorkommen, dass man nicht sofort eine Lösung bekommt.

Ich finde den Ansatz falsch: externe Links in der Variantenauswahl sind eine Vergewaltigung des Shops. Genau so wie wenn Enterprise in eine Autowaschanlage reinfliegen würde.

Die Variantenauswahl wird im Azure per Ajax gesteuert und die Links in der Liste sind in dem Sinne keine Links. Man könnte zwar durch irgendwelche Tricks und Scripts den Link einbauen, aber da kann dir niemand garantieren, dass die Autowaschanlage weiterhin richtig funktioniert.

Vielen Dank für die Antwort…

[QUOTE=vanilla thunder;93572]ein Forum ist nun mal keine Hotline und auch nur die wenigsten hier sind Entwickler, die sich mit dem Thema auskennen, daher kann es vorkommen, dass man nicht sofort eine Lösung bekommt.[/QUOTE]
Man sehe es mir nach, ich wollte nicht aufdringlich wirken.
Es kommt einen aber vor wie eine Ewigkeit wenn man nach einer Lösung sucht… :wink:

[QUOTE=vanilla thunder;93572]
Ich finde den Ansatz falsch: externe Links in der Variantenauswahl sind eine Vergewaltigung des Shops. Genau so wie wenn Enterprise in eine Autowaschanlage reinfliegen würde.[/QUOTE]
Den Vergleich finde ich unterhaltsam, aber hilft mir nicht wirklich bei der Lösungssuche.

[QUOTE=vanilla thunder;93572]
Die Variantenauswahl wird im Azure per Ajax gesteuert und die Links in der Liste sind in dem Sinne keine Links. Man könnte zwar durch irgendwelche Tricks und Scripts den Link einbauen, aber da kann dir niemand garantieren, dass die Autowaschanlage weiterhin richtig funktioniert.[/QUOTE]
Ok, ich muß also die “Link”-Steuerung von Ajax umgehen?!
Das bringt mich auf eine Idee.

Wenn ich im BackEnd, im Vater-Artikel, unter Stamm ein weiteres Input-Feld anlege (Bezeichnung: externer-Links), die DB-Tabelle “[B]oxarticles[/B]” ergänzen und das Pulldown-Menü (in selectbox.tpl) für die Varianten in eine Listen-Ansicht umwandeln würde, dann könnte ich doch per CSS wenigstens so tun als ob es zu den Varianten gehört?! Ich brauche den Pulldown-Effekt nicht unbedingt, es gibt nicht so viele Varianten.

Ich müßte dann nur die Werte des Input-Feldes aus dem BackEnd (externer Link) auslesen und es in der Datei “[B]productmain.tpl[/B]”, per CSS, so positionieren, dass es genau unterhalb den Varianten steht.

Zusätzlich müßte ich noch ein paar Templates, für die Darstellung der Artikel-Übersicht, anpassen.

Das ist bestimmt keine elegante Lösung, aber so müßt es doch funktionieren.?!

Oder übersehe ich noch irgendwelche Hindernisse?

VG, acanthus

Wozu benötigst Du denn einen Link dort, was willst Du denn verknüpfen? Ggf. gibts ja andere Möglichkeiten mit weniger Aufwand.

Drück mal im Backend auf Artikel verwalten -> Artikel -> dein Artikel -> Erweitert und da gibts “externe URL”.
Und positionieren kann man es beliebig, schau mal unter /out/dein tpl/tpl/pages/details/inc/tabs.tpl
dort wird die externe URL standardmäßig angezeigt, da kannst du sie rauskopieren und dann in productmain.tpl einfügen.

[QUOTE=Hebsacker;93595]Wozu benötigst Du denn einen Link dort, was willst Du denn verknüpfen? Ggf. gibts ja andere Möglichkeiten mit weniger Aufwand.[/QUOTE]
Wenn man ein digitales Produkt hat, z.B. Filme, dann kann man verschiedene Formate als Varianten anbieten (avi, mpg, dvd… etc.).
Sollte ich ein Format nicht im Angebot haben, möchte ich dem User die Möglichkeit geben sich den Film woanders herunterzuladen. --> externer Link.
Das ist der Grund.

[QUOTE=vanilla thunder;93598]Drück mal im Backend auf Artikel verwalten -> Artikel -> dein Artikel -> Erweitert und da gibts “externe URL”.
Und positionieren kann man es beliebig, schau mal unter /out/dein tpl/tpl/pages/details/inc/tabs.tpl
dort wird die externe URL standardmäßig angezeigt, da kannst du sie rauskopieren und dann in productmain.tpl einfügen.[/QUOTE]
Super, das habe ich gar nicht gesehen, da gibt es ja bereits ein Feld für URL.
Ich werde es nacher gleich mal ausprobieren.
Danke für die detaillierte Info.

@vanilla thunder
Vielen Dank, es klappt. Deine Anleitung hat mir viel Sucherei erspart.

  1. Ich habe aus der …/tabs.tpl folgendes herauskopiert…:

[{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}]

  1. …und in productmain.tpl eingefügt.

  2. Im BackEnd die gewünchte URL eingetragen

Ergebnis --> Es erscheint ein externer Link (in der Nähe der Varianten) …Super!!!

Jetzt “[B]nur noch[/B]” die CSS und Pull-Down anpassen.
Das wird sicherlich wieder ein Such- u. Geduldsspiel, aber machbar… :slight_smile:

Vielen Dank.
VG, acanthus

was genau hast du mit dem “Pull-Down” vor?

Firebug Extension ist bekannt, oder? Hilft beim suchen :slight_smile:

Aus dem Pull-Down werde ich eine einfache Auswahl-Liste erstellen (aufgeklappt).
Den externen Link werde ich dann, optisch identisch formatiert, unterhalb der Liste positionieren. Es wird dann so aussehen als ob es zu den Varianten gehört.
Den externen Link werde ich natürlich zusätzlich als solchen markieren, damit der Kunde nicht irritiert ist.

FireBug für FireFox ist mir bekannt und ist ständig im Einsatz. :wink:

Ich verwende zusätzlich noch CSSViewer:
https://addons.mozilla.org/de/firefox/addon/cssviewer/

Sehr nützlich, nicht nur für “Oxid-Template-Analyse”.
Hier sieht man viele Beispiele für CSSViewer

Falls es Probleme mit der Browserkompatibilität gibt, findet man die Lösung in den Bewertungs-Kommentaren (siehe Link-> Alle Bewertungen ansehen)

Ich muss mich nochmal kurz zurückmelden.
Die Umwandlung des Drop-Down-Menüs hat sich als schwieriger herausgestellt als erwartet.
War nix mit, “mal eben” CSS anpassen und eine Liste daraus machen.

Nachdem ich diesen >> Thread<< gelesen habe, habe ich es erst einmal ganz sein lassen.

[B]Aus dem Thread:[/B]

“[I]Ich möchte gerne die Varianten als Liste stehen haben.[/I]”

[U]Antwort von vanilla thunder:[/U]

[I]Das ist bisschen komplizierter, die Auswahllisten aus dem Template out/azure/tpl/widget/product/selectbox.tpl geladen.
Dann must du die jQuery Scripts anpassen, die für die Variantenauswahl zuständig sind, anpassen. Der Aufwand hierbei ist um einiges höher als man anfangs denkst und hier sind auch Kenntnisse in JavaScript bzw jQuery erforderlich. Möglich ist es, aber sogar ich als Entwickler würde nur ungerne meine Nase in die Variantenauswahl von Oxid reinstecken. [/I]

Nun denn, ich werde einfach mal an einer anderen Baustelle im Oxid-Shop weitermachen.

VG, acanthus