Flow Theme: 2 Bugs?

Hallo liebe Forengemeinde,

ich habe zwei kleine Probleme mit dem schicken Flow Theme.

Bei mehreren Bildern für einen Artikel, wird in der Detailansicht eine Fehlermeldung ausgegeben:

Warning: getimagesize(http://root.mtl-brock.de/keramik_47/out/pictures/master/product/1/001 231 100.jpg): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /www/htdocs/w00860e1/keramik_47/tmp/smarty/42407288c6ada472b927f0895d1c624a^%%DA^DA8^DA80D1BB%%morepics.tpl.php on line 25

Zu sehen hier: http://root.mtl-brock.de/keramik_47/Brennoefen-oxid/Nabertherm/Nabertherm-Kammerofen-N-100-H-5seitig-100-Liter-1340-C.html

Der 404 irritiert mich. Denn das Bild ist vorhanden (angegebene URL funktioniert). Ich habe mittlerweile das Problem auf Bilder mit Leerzeichen eingrenzen können. Laut php.net müssen Leerzeichen für getimagesize auch entsprechend codiert werden (rawurlencode?). Da die Oxid Bildfunktion eigentlich Leerzeichen löscht, vermute ich mal, dass es nicht für nötig gehalten wurde, da noch einmal den sicheren Weg zu gehen?

Allerdings laden wir unsere Artikel über einen Connector hoch und leider wurde vor Jahrzehnten mal bei uns im Haus Artikelnummern mit Leerzeichen vergeben.

Kann man irgendwo diese

 [{assign var="aPictureInfo" value=$oPictureProduct->getMasterZoomPictureUrl($iPicNr)|@getimagesize}]

aus der morepics.tpl [Zeile 14] ändern, dass getimagesize auch mit Leerzeichen zurecht kommt?

Wir haben in den Einstellungen “Vaterartikel bei Varianten kaufbar” aktiviert. Leider zeigt Flow immer beim Vaterartikel “Variante wählen” an. Hätte da gerne auch den “oxvarselect” Wert stehen. Leider bekomme ich den nicht rein. Folgende Werte habe ich in selectbox.tpl angegeben:

[{$product->oxarticles__oxvarselect->value}][{$oDetailsProduct->oxarticles__oxvarselect->value}]

Funktioniert bei aktiviertem Artikel auch prima. Aber wenn ich eine Variante aufrufe, steht leider nur “Variante wählen:” ohne oxvarselect Wert. Über [{debug}] habe ich mir die selectlist angeguckt und da taucht der oxvarselect vom Vaterartikelwert auch nicht auf. Gibt es dafür eine Lösung?

Vielen Dank für eure Hilfe.

Grüße

Clemens

p.s. Shopversion:
Community Edition 4.10.2

[Edit:] Ärgerlich, kann den Titel nicht mehr editieren. Sollte natürlich Flow Theme heißen

Aus php.net: “Hinweis:
Falls Sie einen URI mit speziellen Zeichen, wie z.B. Leerzeichen, öffnen, müssen Sie den URI mittels urlencode() enkodieren.”

Statt den Vaterartikel kaufbar zu machen würde ich versuchen dass die erste Variante direkt ausgewählt erscheint.

[QUOTE=leofonic;185506]Aus php.net: “Hinweis:
Falls Sie einen URI mit speziellen Zeichen, wie z.B. Leerzeichen, öffnen, müssen Sie den URI mittels urlencode() enkodieren.”[/QUOTE]

Hallo Frank, vielen Dank für deine Antwort. Das habe ich auch gelesen. Wenn ich das allerdings im Template (bzw. zu Testzwecken in der tmp Datei) mache, kommt das dabei raus:

http%3A%2F%2Froot.mtl-brock.de%2Fkeramik_47%2Fout%2Fpictures%2Fmaster%2Fproduct%2F1%2F001+231+100.jpg

Es müsste also schon bei getMasterZoomPictureUrl passieren, wenn ich das richtig verstehe. Weiß einer wo die Funktion ist?

[QUOTE=leofonic;185506]Statt den Vaterartikel kaufbar zu machen würde ich versuchen dass die erste Variante direkt ausgewählt erscheint.[/QUOTE]

Dann würde unser Connector zur WaWi nicht mehr funktionieren…

[QUOTE=lemibo;185512]Es müsste also schon bei getMasterZoomPictureUrl passieren, wenn ich das richtig verstehe. Weiß einer wo die Funktion ist?[/QUOTE]

Nein, weil Du eigentlich nur die Info willst und nicht die URL ändern möchtest. urlencode dürfte hier scheitern, auch rawurlencode. Ich würde einfach in Smarty, also in morepics.tpl, folgendes ändern:

[{assign var="aPictureInfo" value=$oPictureProduct->getMasterZoomPictureUrl($iPicNr)|@getimagesize}]

=>

[{assign var="aPictureInfo" value=$oPictureProduct->getMasterZoomPictureUrl($iPicNr)[B]|replace:" ":"%20"[/B]|@getimagesize}]

Sollte gehen…

[QUOTE=foxido.de;185514]

[{assign var="aPictureInfo" value=$oPictureProduct->getMasterZoomPictureUrl($iPicNr)[B]|replace:" ":"%20"[/B]|@getimagesize}]

Sollte gehen…[/QUOTE]

ohhh… mein Held. :slight_smile: Funktioniert! Super, vielen vielen Dank… Stunden saß ich an diesem blöden Problem :o Vielen Vielen Dank.

Jemand noch eine Idee zu dem Variantenproblem? Warum lädt Oxid nicht alle Informationen für den Vaterartikel?

[QUOTE=lemibo;185516]Jemand noch eine Idee zu dem Variantenproblem? Warum lädt Oxid nicht alle Informationen für den Vaterartikel?[/QUOTE]

Da es sich hier bei “kaufbar” um den Basisartikel handelt, musst eigentlich nur in selectbox.tpl folgendes ändern:

<div class="dropdown-wrapper">
            <button type="button" class="btn btn-default btn-sm dropdown-toggle" data-toggle="dropdown">
                [{assign var="oActiveSelection" value=$oSelectionList->getActiveSelection()}]
                [{if $oActiveSelection}]
                    <span class="pull-left">[{$oActiveSelection->getName()}]</span>
                [{elseif !$blHideDefault}]
                    <span class="pull-left">
                        [{if $sFieldName == "sel"}]
                            [{oxmultilang ident="PLEASE_CHOOSE"}]
                        [{else}]
                           [B] [{$oSelectionList->getLabel()}] [{oxmultilang ident="CHOOSE_VARIANT"}][/B]
                        [{/if}]
                    </span>
                [{/if}]

                <i class="fa fa-angle-down pull-right"></i>
 <div class="dropdown-wrapper">
            <button type="button" class="btn btn-default btn-sm dropdown-toggle" data-toggle="dropdown">
                [{assign var="oActiveSelection" value=$oSelectionList->getActiveSelection()}]
                [{if $oActiveSelection}]
                    <span class="pull-left">[{$oActiveSelection->getName()}]</span>
                [{elseif !$blHideDefault}]
                    <span class="pull-left">
                        [{if $sFieldName == "sel"}]
                            [{oxmultilang ident="PLEASE_CHOOSE"}]
                        [{else}]
                            [B][{$oDetailsProduct->oxarticles__oxvarselect->value}][/B]
                        [{/if}]
                    </span>
                [{/if}]

                <i class="fa fa-angle-down pull-right"></i>

Prinzipiell ja, habe ich in meinem Template auch. Funktioniert auch, wenn man sich den Vaterartikel anschaut:

Wähle ich aus den Dropdown allerdings eine Variante und OXID läd die dafür benötigten Informationen, sieht es so aus:

Die Informationen über [{deburg}]:

Für mich sieht es so aus, als ob die Vaterinformationen nicht geladen werden…?

Danke für diese Lösung!!!

Wo und wie muss ich was abändern, damit auch dann noch die im Auswahlfeld vom Vater hinterlegte Grösse angezeigt wird, wenn man eine Variante ausgewählt hatte und sich anschließend noch mal die Varianten anzeigen läßt?

Besten Dank im Voraus!

Bei der Auswahl wird ja was ersetzt (s. vardrop). Entsprechend müsste das wohl so sein:

<div class="dropdown-wrapper">
            <button type="button" class="btn btn-default btn-sm dropdown-toggle" data-toggle="dropdown">
                [{assign var="oActiveSelection" value=$oSelectionList->getActiveSelection()}]
                [{if $oActiveSelection}]
                    <span class="pull-left">[{$oActiveSelection->getName()}]</span>
                [{elseif !$blHideDefault}]
                    <span class="pull-left">
                        [{if $sFieldName == "sel"}]
                            [{oxmultilang ident="PLEASE_CHOOSE"}]
                        [{else}]
                            [{$oDetailsProduct->oxarticles__oxvarselect->value}]
                        [{/if}]
                    </span>
                [{/if}]

                <i class="fa fa-angle-down pull-right"></i>
            </button>
            [{if $editable !== false}]
                <input type="hidden" name="[{$sFieldName|default:"varselid"}][[{$iKey}]]" value="[{if $oActiveSelection}][{$oActiveSelection->getValue()}][{/if}]">
                <ul class="dropdown-menu [{$sJsAction}][{if $sFieldName != "sel"}] vardrop[{/if}]" role="menu">
                    [{if $oActiveSelection && !$blHideDefault}]
                        <li>
                            <a href="#" rel="">
                                [{if $sFieldName == "sel"}]
                                    [{oxmultilang ident="PLEASE_CHOOSE"}]
                                [{else}]
                                    [{$oDetailsProduct->oxarticles__oxvarselect->value}]
                                [{/if}]
                            </a>
                        </li>
                    [{/if}]

Vielen Dank für die schnelle Rückmeldung!
Leider funktioniert das nicht so, wie erwartet:
Ruft man bei der ausgewählten Variante noch mal die Variantenauswahl auf, so wird der Auswahl-Link zum Vater-Artikel mit der Grösse der zuvor ausgewählten Variante betitelt.

Danke & Gruß

Dann musst Du das, wie hier: http://forum.oxid-esales.com/showthread.php?p=185906#post185906, ändern:

       <div class="dropdown-wrapper">
            <button type="button" class="btn btn-default btn-sm dropdown-toggle" data-toggle="dropdown">
                [{assign var="oActiveSelection" value=$oSelectionList->getActiveSelection()}]
                [{if $oActiveSelection}]
                    <span class="pull-left">[{$oActiveSelection->getName()}]</span>
                [{elseif !$blHideDefault}]
                    <span class="pull-left">
                        [{if $sFieldName == "sel"}]
                            [{oxmultilang ident="PLEASE_CHOOSE"}]
                        [{else}]
                            [{$oDetailsProduct->oxarticles__oxvarselect->value}]
                        [{/if}]
                    </span>
                [{/if}]

                <i class="fa fa-angle-down pull-right"></i>
            </button>
            [{if $editable !== false}]
                <input type="hidden" name="[{$sFieldName|default:"varselid"}][[{$iKey}]]" value="[{if $oActiveSelection}][{$oActiveSelection->getValue()}][{/if}]">
                <ul class="dropdown-menu [{$sJsAction}][{if $sFieldName != "sel"}] vardrop[{/if}]" role="menu">
                    [{if $oActiveSelection && !$blHideDefault}]
                        <li>
                            <a href="#" rel="">
                                [{if $sFieldName == "sel"}]
                                    [{oxmultilang ident="PLEASE_CHOOSE"}]
                                [{else}]

									[{assign var="loadingart" value="$oDetailsProduct->oxarticles__oxparentid->value}]
									[{assign var="oProduct" value="oxArticle"|@oxNew}]
									[{if $oProduct->load($loadingart)}]
                                    [{$oProduct->oxarticles__oxvarselect->value}]
									[{else}]
                                     [{$oDetailsProduct->oxarticles__oxvarselect->value}]
									[{/if}]
                                [{/if}]
                            </a>
                        </li>
                    [{/if}]

Es funktioniert!!!

You just made my day!

[QUOTE=Forellenteichangler;185938]Es funktioniert!!!
…![/QUOTE]

“Endlich hab’ ich was erfunden, was funktioniert!” :smiley:

(http://www.filmzitate.de/zitat/1b6d5d927747d3b64)