Trade Republic - Provisionsfrei Aktien handeln
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: MODUL: Artikel und Attribut Lagerampel für Shopversion 1.06

    awids

    • Experte
    • Beiträge: 3.803
    • Geschlecht:
    Re: MODUL: Artikel und Attribut Lagerampel für Shopversion 1.06
    Antwort #210 am: 23. Dezember 2016, 21:18:04
    Von meiner Seite aus: Projekt eingestellt!
    Begründung: Bedingungen wurden nicht erfüllt.

    Esox

    • Neu im Forum
    • Beiträge: 9
    • Geschlecht:
    Re: MODUL: Artikel und Attribut Lagerampel für Shopversion 1.06
    Antwort #211 am: 23. Dezember 2016, 21:19:41
    Auch ich interessiere mich für die Ampel!

    P.s: Sehe grad wurde eingestellt, sehr schade....   :?

    awids

    • Experte
    • Beiträge: 3.803
    • Geschlecht:
    Re: MODUL: Artikel und Attribut Lagerampel für Shopversion 1.06
    Antwort #212 am: 23. Dezember 2016, 21:41:41
    Für den Selbsteinbau hatte noRiddle ja mal die notwendigen Codeschnipsel gepostet.

    Vielleicht ringe ich mich dazu durch - weil ja Weihnachten ist - demnächst eine entsprechende (dateibasierte, nicht als Smarty-Plugin) Version bereit zu stellen. Eine Anleitung werde ich aber nicht mehr schreiben. Änderungen ergeben sich dann aus den angehängten "geänderten Dateien". Support ausschließlich über Forum.

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.988
    • Geschlecht:
    Re: MODUL: Artikel und Attribut Lagerampel für Shopversion 1.06
    Antwort #213 am: 27. Dezember 2016, 17:19:11
    Von meiner Seite aus: Projekt eingestellt!
    Begründung: Bedingungen wurden nicht erfüllt.

    Mmh, Schade, wobei ich dich verstehen kann.
    Ich selbst kämpfe nach wie vor dafür, daß diese Community nach wie vor die beste dieser Art in Deutschland bleibt. Es sollte allerdings langsam wirklich mal die Rubrik Module im Forum geben wo jeder Autor die von ihm entwickelten Erweiterungen einstellen und selbst betreuen kann. Dort muß es dann auch die Möglichkeit geben kostenpflichtige Erweiterungen einzustellen und bei solchen wird dem Betreiber des Forums eben ein Obulus gesichert.
    Wenn ein Autor selbst seine eingestellten Erweiterungen betreuen kann, kann er auch leicht die unwürdige Abgreifer-Mentalität bekämpfen.

    Gruß,
    noRiddle

    Esox

    • Neu im Forum
    • Beiträge: 9
    • Geschlecht:
    Re: MODUL: Artikel und Attribut Lagerampel für Shopversion 1.06
    Antwort #214 am: 27. Dezember 2016, 17:38:50
    Ich kann jetzt zwar nicht nachvollziehen wobei es sich um den Bedingungen von Alex handelt, aber bin auch der Meinung von noRiddle, das wo ein Wille auch ein Weg zu finden ist. Man sollte meiner Meinung nach froh sein das es User wie Alex gibt, die sich für andere einen Kopf machen um zu helfen. Ich fände es toll wenn man noch einmal zusammen drüber nachdenkt. Un zum Betreiber: Ich bin auch Berliner (seit 1972) und weiß das die nicht so schnell den Kopf in den Sand stecken. Also, bitte denkt auch ein wenig an die Community, sie wirds Euch danken. In diesem Sinne, schönen Abend noch.... :cheers:

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.988
    • Geschlecht:
    Re: MODUL: Artikel und Attribut Lagerampel für Shopversion 1.06
    Antwort #215 am: 27. Dezember 2016, 17:42:47
    Die "Bedingungen" hat Alex in diesem Thread genau aufgeführt.
    Was eine Lösung betrifft:
    Was spricht gegen meinen Vorschlag das direkt im Template zu machen ?

    Gruß,
    noRiddle

    sandro22

    • Viel Schreiber
    • Beiträge: 589
    • Geschlecht:
    Re: MODUL: Artikel und Attribut Lagerampel für Shopversion 1.06
    Antwort #216 am: 27. Februar 2017, 11:14:33
    Tch zusammen.

    Ich habe die Ampel auch eingefügt bei mir Auf der produktseite Funktioniert es Einwandfrei.

    Ich habe es noch in der tpl_modified/module/includes/product_listing_include.html eingebaut jedoch sind die Ampel nur Rot?

    in der product_listing_include.html steht folgenden:
    Code: PHP  [Auswählen]
    <div class="lb_title"><h2><a href="{$module_data.PRODUCTS_LINK}">{$module_data.PRODUCTS_NAME}</a></h2></div>
          <div class="lb_shipping">{if $module_data.PRODUCTS_SHIPPING_NAME}{#text_shippingtime#} {if $module_data.PRODUCTS_SHIPPING_IMAGE}<span class="lb_shipping_image"><img src="{$module_data.PRODUCTS_SHIPPING_IMAGE}" alt="{$module_data.PRODUCTS_SHIPPING_NAME|onlytext}" /></span>{/if}{$module_data.PRODUCTS_SHIPPING_NAME_LINK}{else}&nbsp;{/if}</div>
    {include file="`$smarty.const.CURRENT_TEMPLATE`/module/includes/info/qty_traffic_lights.html"}
     

    und in der qty_traffic_lights.html folgendes:
    Code: PHP  [Auswählen]
    {*BOC qty traffic light, noRiddle*}
    <div class="lb_shipping">stock:
        {if $PRODUCTS_QUANTITY < #stock_red_yell#}
       <span aria-label="{#qty_red#}"><span class="tl red-tl"></span><span class="tl red-tl"></span><span class="tl red-tl"></span></span>
        {elseif $PRODUCTS_QUANTITY >= #stock_red_yell# && $PRODUCTS_QUANTITY < #stock_green#}
       <span aria-label="{#qty_yell#}"><span class="tl yell-tl"></span><span class="tl yell-tl"></span><span class="tl yell-tl"></span></span>
        {elseif $PRODUCTS_QUANTITY >= #stock_green#}
       <span aria-label="{#qty_green#}"><span class="tl green-tl"></span><span class="tl green-tl"></span><span class="tl green-tl"></span></span>
        {/if}
    </div>
    {*EOC qty traffic light, noRiddle*}

    Kann mir da jemand weiter helfen?

    gruss sandro

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.988
    • Geschlecht:
    Re: MODUL: Artikel und Attribut Lagerampel für Shopversion 1.06
    Antwort #217 am: 27. Februar 2017, 14:52:57
    Lies nochmal alles dazu.
    Im Produkt-Listing mußt du {$module_data.PRODUCTS_QUANTITY} benutzen und das if sollte nicht am folgenden Smarty-Platzhalter kleben (ist in meiner in diesem Thread geposteten Anleitung aus mir unerfindlichen Gründen passiert).

    Gruß,
    noRiddle

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.988
    • Geschlecht:
    Re: MODUL: Artikel und Attribut Lagerampel für Shopversion 1.06
    Antwort #218 am: 13. April 2017, 19:30:25
    Wen's interessiert:
    Ich habe noch ein bisschen mit der in diesem Thread vorgestellten rein template- und css-basierten Ampel gespielt und noch Tooltips eingebaut.
    Kann man sich hier am Beipiel table_listing.html anschauen. (user: demo | pass: testen//)

    Um ein User-Erlebnis zu generieren bedarf es oft nicht viel Aufwand.

    Für ein Touch-Screen-Fallback kann man ein wenig jQuery einsetzen.

    Gruß,
    noRiddle

    Juan Carlos Silverio Gomez

    • Fördermitglied
    • Beiträge: 473
    • Geschlecht:
    Re: MODUL: Artikel und Attribut Lagerampel für Shopversion 1.06
    Antwort #219 am: 13. April 2017, 20:25:29
    Zitat
    user: demo | pass: testen//

    HI noriddle, komme nicht rein...;-(

    gruss
    Carlos

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.988
    • Geschlecht:
    Re: MODUL: Artikel und Attribut Lagerampel für Shopversion 1.06
    Antwort #220 am: 14. April 2017, 02:18:41
    Mmmhhh, probiere bitte nochmal (Browser-Cache löschen ?), habe es gerade in fünf Browsern probiert
    - Firefox, Chrome, Iron, Safari, IE(9) -
    geht.

    Gruß,
    noRiddle

    Juan Carlos Silverio Gomez

    • Fördermitglied
    • Beiträge: 473
    • Geschlecht:
    Re: MODUL: Artikel und Attribut Lagerampel für Shopversion 1.06
    Antwort #221 am: 14. April 2017, 09:53:51
    ja geht, würde es auch gerne einbauen..:-)

    gruss
    carlos

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.988
    • Geschlecht:
    Re: MODUL: Artikel und Attribut Lagerampel für Shopversion 1.06
    Antwort #222 am: 14. April 2017, 16:34:56
    Here you go,
    wie gesagt, am Beispiel /templates/tpl_modified/module/product_options/table_listing.html:
    Code: PHP  [Auswählen]
    {if $options != ''}
    {config_load file="$language/lang_$language.conf" section="product_info"}
    {config_load file="lang_`$language`.custom"}
    {config_load file="lang_`$language`.section" section="product_info"}
    <div class="productoptions">
        {foreach name=outer item=options_data from=$options}
        <div class="options_row_selection">
            <div class="options_name">{$options_data.NAME}</div>
            {foreach key=key_data name=key_data item=item_data from=$options_data.DATA}
            <div class="options_selection {cycle values="option_bg1,option_bg2"}">
                <label for="rdb_{$item_data.ID}"{* title="{$thetitle}"*}>
                    <span class="label_row1 cf">
                        <span class="options_selection_input"><input type="radio" name="id[{$options_data.ID}]" id="rdb_{$item_data.ID}" value="{$item_data.ID}"{if $item_data.CHECKED == '1'} checked="checked"{/if} /></span>
                        <span class="options_selection_text">{$item_data.TEXT}</span>
                        {if $item_data.FULL_PRICE && $options|count == 1}
                        <span class="options_selection_price">{$item_data.FULL_PRICE}</span>{elseif $item_data.PRICE}<span class="options_selection_price">{$item_data.PREFIX}{$item_data.PRICE}</span>
                        {/if}
                    </span>
                    <span class="label_row2 cf">
                        {#model#} {$item_data.MODEL}
                       {*BOC qty traffic light, noRiddle*}
                        <span class="traff-light"><strong>{#nr_stock#}:</strong>
                       {if $item_data.STOCK < #nr_stock_red_yell#}
                       <span aria-label="{#nr_qty_red#} | {$item_data.STOCK}" title="{#nr_qty_red#} | {$item_data.STOCK}"><span class="tl red-tl"></span><span class="tl red-tl"></span><span class="tl red-tl"></span></span>
                        {elseif $item_data.STOCK >= #nr_stock_red_yell# && $item_data.STOCK < #nr_stock_green#}
                       <span aria-label="{#nr_qty_yell#} | {$item_data.STOCK}" title="{#nr_qty_yell#} | {$item_data.STOCK}"><span class="tl yell-tl"></span><span class="tl yell-tl"></span><span class="tl yell-tl"></span></span>
                        {elseif $item_data.STOCK >= #nr_stock_green#}
                       <span aria-label="{#nr_qty_green#} | {$item_data.STOCK}" title="{#nr_qty_green#} | {$item_data.STOCK}"><span class="tl green-tl"></span><span class="tl green-tl"></span><span class="tl green-tl"></span></span>
                        {/if}
                        </span>
                        {*EOC qty traffic light, noRiddle*}
                        <br class="clearfix" />
                    </span>
                    {*BOC tooltip with stock info, noRiddle*}
                    {if $item_data.STOCK < #nr_stock_red_yell#}
                       <span class="nr-tooltip red-tl" aria-label="{#nr_stock#}">{#nr_qty_red#} | {$item_data.STOCK}</span>
                   {elseif $item_data.STOCK >= #nr_stock_red_yell# && $item_data.STOCK < #nr_stock_green#}
                       <span class="nr-tooltip yell-tl" aria-label="{#nr_stock#}">{#nr_qty_yell#} | {$item_data.STOCK}</span>
                   {elseif $item_data.STOCK >= #nr_stock_green#}
                       <span class="nr-tooltip green-tl" aria-label="{#nr_stock#}">{#nr_qty_green#} | {$item_data.STOCK}</span>
                   {/if}
                    {*EOC tooltip with stock info, noRiddle*}
                </label>
            </div>
            {/foreach}
        </div>
        {/foreach}
    </div>
    {/if}

    In /templates/tpl_modified/module/product_options/product_options_selection.html kann es ähnlich gemacht werden (dafür muß das unten angegebene CSS aber leicht angepasst werden):
    Code: PHP  [Auswählen]
    {if $options != ''}
    {config_load file="lang_`$language`.custom"} {*added for stock traffic lights, noRiddle*}
    <div class="productoptions">
        {foreach name=outer item=options_data from=$options}
        <div class="options_row_selection">
            <div class="options_name">{$options_data.NAME}</div>
            {foreach key=key_data name=key_data item=item_data from=$options_data.DATA}
            <div class="options_selection">
                <label for="rdb_{$item_data.ID}">
                    <input type="radio" name="id[{$options_data.ID}]" id="rdb_{$item_data.ID}" value="{$item_data.ID}"{if $item_data.CHECKED == '1'} checked="checked"{/if} />
                    {$item_data.TEXT}
                    {*BOC qty traffic light, noRiddle*}
                    <span class="traff-light"><strong>{#nr_stock#}:</strong>
                   {if $item_data.STOCK < #nr_stock_red_yell#}
                   <span aria-label="{#nr_qty_red#} | {$item_data.STOCK}" title="{#nr_qty_red#} | {$item_data.STOCK}"><span class="tl red-tl"></span><span class="tl red-tl"></span><span class="tl red-tl"></span></span>
                    {elseif $item_data.STOCK >= #nr_stock_red_yell# && $item_data.STOCK < #nr_stock_green#}
                   <span aria-label="{#nr_qty_yell#} | {$item_data.STOCK}" title="{#nr_qty_yell#} | {$item_data.STOCK}"><span class="tl yell-tl"></span><span class="tl yell-tl"></span><span class="tl yell-tl"></span></span>
                    {elseif $item_data.STOCK >= #nr_stock_green#}
                   <span aria-label="{#nr_qty_green#} | {$item_data.STOCK}" title="{#nr_qty_green#} | {$item_data.STOCK}"><span class="tl green-tl"></span><span class="tl green-tl"></span><span class="tl green-tl"></span></span>
                    {/if}
                    </span>
                    {*EOC qty traffic light, noRiddle*}
                    {if $item_data.PRICE != '' }
                    <span class="options_selection_price">{$item_data.PREFIX} {$item_data.PRICE}</span>
                    {/if}
                    {if $item_data.STOCK < #nr_stock_red_yell#}
                       <span class="nr-tooltip red-tl" aria-label="{#nr_stock#}">{#nr_qty_red#} | {$item_data.STOCK}</span>
                   {elseif $item_data.STOCK >= #nr_stock_red_yell# && $item_data.STOCK < #nr_stock_green#}
                       <span class="nr-tooltip yell-tl" aria-label="{#nr_stock#}">{#nr_qty_yell#} | {$item_data.STOCK}</span>
                   {elseif $item_data.STOCK >= #nr_stock_green#}
                       <span class="nr-tooltip green-tl" aria-label="{#nr_stock#}">{#nr_qty_green#} | {$item_data.STOCK}</span>
                   {/if}
                    <br class="clearfix" />
                </label>
            </div>
            {/foreach}
        </div>
        {/foreach}
    </div>
    {/if}

    CSS:
    (in den Kommentaren stehen Hinweise)

    Code: CSS  [Auswählen]
    .options_row_selection .options_selection label {
    ...
    position:relative; /*hinzufügen*/
    }

    .options_row_selection .options_selection label .options_selection_price {
    ...
    /*padding-right:2px;*/ /*ersetzen mit s.u.*/
    padding-right:40px; /*ersetzt, ist für product_options_selection.html*/
    }

    .options_row_selection .options_selection label .label_row2 {
    /*display:inline-block;*/ /*ersetzen mit s.u.*/
    display:block; /*ersetzt*/
    ...
    }

    /*BOC qty traffic lights, noRiddle*/
    .traff-light {float:right;}
    .options_row_selection .options_selection label .label_row2 .traff-light {padding-right:2px; font-style:normal;}
    .options_row_selection .options_selection label .label_row1 .options_selection_price {padding-right:2px;}
    .tl {display:inline-block; margin:0 1px; width:8px; height:8px; border-radius:50%;}
    .red-tl {background:#A20000;}
    .yell-tl {background:#AAA905;}
    .green-tl {background:#116C10;}
    /*BOC tooltip with stock*/
    .options_row_selection .options_selection label .nr-tooltip {
    position:absolute;
    top:45%;
    right:90%;
    visibilty:hidden;
    font-size:12px;
    color:#fff;
    padding:0 5px;
    border-radius:5px;
    white-space:nowrap;
    opacity:0;
    z-index:1;
    transition:right 0.6s ease 0.1s, opacity 1s ease 0.1s;
    }
    html:not(.touch) .options_row_selection .options_selection label:hover .nr-tooltip {
    right:30%;
    visibilty:visible;
    opacity:1;
    }
    /*EOC tooltip with stock*/
    /*EOC qty traffic lights, noRiddle*/
     

    Als Ansatz für Touchgeräte die ja Mouseover bzw. :hover nicht oder nur eingeschränkt kennen:
    In /templates/tpl_modified/javascript/general_bottom.js.php direkt unter dem Anfangskommentar:
    Code: PHP  [Auswählen]
    ?>
    <script>
    /*<![CDATA[*/
    with(document.documentElement){className += 'js'}
    if (('ontouchstart' in document.documentElement)) {document.documentElement.className += ' touch';} else {document.documentElement.className += ' no-touch';}
    /*]]>*/
    </script>
    <?php
    Damit werden dem Root-Elelment des HTML (also <html) bei aktiviertem Javascript die Klassen js und no-touch, bei Touch-Geräten anstelle von no-touch die Klasse touch vergeben.
    Die Klassen kann man auch gut im CSS verwenden um Fallbacks für Touch-Geräte und deaktiviertes Javascript zu definieren.
    (z.B.:
    Code: CSS  [Auswählen]
    html:not(.js) ... {...}
    html:not(.touch) ... {...}
    html.touch ... {...}
    html.no-touch ... {...}
    )
    Nachteil:
    Wenn im Desktop-Browser Javascript deaktiviert ist greift die letzte Angabe nicht,
    die ersten beiden greifen jedoch immer da auf Touch-Geräten Javascript immer aktiviert ist.

    In derselben Datei /templates/tpl_modified/javascript/general_bottom.js.php
    unten innerhalb des Bereiches
    Code: PHP  [Auswählen]
    <?php if (strstr($PHP_SELF, FILENAME_PRODUCT_INFO )) { ?>

    <?php } ?>
     

    so etwas in der Art einfügen:
    Code: XML  [Auswählen]
    <script>
    $(function() {
        var $osl = $('.touch .options_selection label');
        $osl.click(function() {
            var $this = $(this);
            $('.nr-tooltip', this).animate({'right':'30%', 'opacity':1}, 200, function() {
                $this.parent().siblings().find('.nr-tooltip').css({'right':'90%','opacity':'0'});
            });
        });
    });
    </script>
    Die Werte für 'right' und 'opacity' sollten mit den CSS-Angaben übereinstimmen.
    Nachteil, wie auch in der CSS-Variante für Desktop:
    Die bereits ausgewählte Option wird evtl. nicht angeklickt (ge-mouseover-t) wenn man diese Option wählen möchte, sodaß die Info nicht erscheint, aber das kann man vernachlässigen.

    Das Ganze könnte man auch in ein Plugin bauen wie es awids angekündigt und mangels positiver Resonanz nicht zu Ende geführt hatte.

    Gruß,
    noRiddle

    *NACHTRAG*
    Der Vollständigkeit halber:
    Es fehlen noch die Angaben in den /templates/tpl_modified/lang/lang_SPRACHE.custom, hier am Beispiel 'german':
    #BOC new vars for qty traffic lights, noRiddle
    nr_stock = 'Bestand'
    nr_qty_red = 'nicht auf Lager'
    nr_qty_yell = 'wenige auf Lager'
    nr_qty_green = 'auf Lager'
    nr_stock_red_yell = 2
    nr_stock_green = 5
    #EOC new vars for qty traffic lights, noRiddle

    In Englisch dann analog: 'Stock', 'not on stock', 'few on stock', 'on stock'.

    awids

    • Experte
    • Beiträge: 3.803
    • Geschlecht:
    Re: MODUL: Artikel und Attribut Lagerampel für Shopversion 1.06
    Antwort #223 am: 14. April 2017, 16:55:53
    Das Ganze könnte man auch in ein Plugin bauen wie es awids angekündigt und mangels positiver Resonanz nicht zu Ende geführt hatte.

    Bei so vielen händischen Einbauten im Template braucht es eigentlich kein Plugin mehr. Deine - zugegebenermaßen eindrucksvolle - Erweiterung fasst ja doch einiges an Dateien an.

    Da müsste ich eine zusätzliche Function allein für Attribute erstellen, denn das aktuelle Plugin bietet lediglich eine Ampel für alle Bereiche. Und das Tooltip sollte für attributlose Artikel ja nicht in der pd_inforow verwendet werden, wenn ich das richtig sehe?!

    Ich werde das mal ein bisschen durchspielen und gucken, inwieweit sich das in meinem Plugin realisieren lässt.

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.988
    • Geschlecht:
    Re: MODUL: Artikel und Attribut Lagerampel für Shopversion 1.06
    Antwort #224 am: 14. April 2017, 17:41:16
    Viele Dateien anfassen wenn es um das template geht finde ich nicht tragisch, denn jeder hat ein individuelles Template und die Template-Dateien sind ja die die man ohnehin anfsst wenn man individualisiert.

    Bin gespannt auf dein Plugin.
    Man müsste ja im Template mittels {if $smarty.const.WAS_WEISS_ICH === true} immer prüfen können ob das Plugin aktiviert ist.

    Gruß,
    noRiddle
    16 Antworten
    7074 Aufrufe
    15. Februar 2021, 22:56:15 von Tomcraft
    13 Antworten
    10727 Aufrufe
    26. Mai 2011, 08:22:19 von GTB
    2 Antworten
    3723 Aufrufe
    03. September 2012, 20:18:01 von akustik-projekt
               
    anything