Zuletzt angesehene Produkte immer sichtbar

[QUOTE=leofonic;23926]Mal gucken, München ist weit weg von Weilburg.
Um den Fehler wegzubekommen musst du einfach aus mylastseen.php alle Leerzeichen und Zeilenumbrüche außerhalb der PHP-Tags (also ganz am Anfang oder ganz am Ende) entfernen.[/QUOTE]

Ja, super, hat funktioniert.

Da ich in den nächsten 2 Jahren alle 3 Monate mal im Süden vom Starnberger See sein werde, klappt es sicher auch mal in München!

Ich komm leider erst jetzt dazu, mich um dieses Thema zu künmmern :frowning:

Kann mir jmd sagen wo’s ne Anleitung gibt, wie man Module erstellt?
Im Wiki hab ich nichts konkretes gefunden.

Wäre ich sehr dankbar.

Gruß

Hi,

[QUOTE=racoon;42950]Kann mir jmd sagen wo’s ne Anleitung gibt, wie man Module erstellt?
Im Wiki hab ich nichts konkretes gefunden.[/QUOTE]

Kennst Du diese Übersichtsseite?

Sowohl im Manual als auch in den Tutorials findest Du Anleitungen und Workshops darüber, wie Module erstellt werden.

Gruß und viel Erfolg!

vielen Dank, Marco!

Werde mich die Tage dran machen.

[QUOTE=leofonic;23866]Ist ein kleines Modul mit dem man last_seen_products.tpl auch in anderen Templates als details.tpl includen kann:
[/QUOTE]

Sorry das Ich denn Beitrag noch mal hochhole, da ich die “zuletzt angesehenen Artikel” auch gern auf jeder Seite “Links” hätte. Hatte ich gesucht und bin hier gelandet. Das Modul habe ich eingebunden allerdings tut sich nichts die “zuletzt angesehenen Artikel” werden nach wie vor nur auf der Detail Seite angezeigt.

[{oxid_include_dynamic file="dyn/last_seen_products.tpl" type="lastproducts" aid=$product->oxarticles__oxid->value aparentid=$product->oxarticles__oxparentid->value testid="LastSeen" }]

ist in der _left.tpl eingebunden.

Gruß

Tante Edit sagt: es ist Version 4.5.2 CE

[QUOTE=leofonic;23866]Ist ein kleines Modul mit dem man last_seen_products.tpl auch in anderen Templates als details.tpl includen kann:
[/QUOTE]

Ich bin gerade dabei, dein Modul zu implementieren, habe jedoch meine liebe Mühe.

Ich sehe letzte Produkte in details.tpl, das funktioniert und ich habe somit zuletzt gesehene Produkte. Aber wenn ich das Ganze in start.tpl einbinden will, sehe ich nichts. $oView->getLastProducts() liefert kein Ergebnis.

Im Admin habe ich oxcmp_utils => mylastseen eingetragen und modules/mylastseen.php gibt es.

Ich würde mich über etwas Hilfe freuen.

Gruß

Die Syntax im Template hat sich geändert, früher wurde gleich $aLastProducts verwendet, jetzt der getter im detail.php. Also mit dem Modul bitte im Template wieder direkt die Variable verwenden:


[{if $aLastProducts && $aLastProducts->count() > 0 }]
  //hier die Überschrift
  [{foreach from=$aLastProducts item=lastproduct}]
    //hier das Produkt
  [{/foreach}]
[{/if}]

Oder fertig für azure, sidebar.tpl:


    [{block name="sidebar_lastproducts"}]
        [{if $aLastProducts && $aLastProducts->count() > 0 }]
            [{include file="widget/product/boxproducts.tpl" _boxId="lastseen" _oBoxProducts=$aLastProducts _sHeaderIdent="LAST_SEEN"}]
        [{/if}]
    [{/block}]

Ich habe das genau so in meinem Template stehen, aber bereits

[{assign var="aLastProducts" value=$oView->getLastProducts() }]

liefert mir kein Array mit den letzten Produkten. Ich bin auf meinen Denkfehler gespannt.

Diese Zeile musst du genau weglassen. $aLastProducts wird bereits im Modul definiert.

Super, da war er, mein Denkfehler.

Vielen Dank!!!

Gruß
Volker

[QUOTE=leofonic;77427]…
Oder fertig für azure, sidebar.tpl:


    [{block name="sidebar_lastproducts"}]
        [{if $aLastProducts && $aLastProducts->count() > 0 }]
            [{include file="widget/product/boxproducts.tpl" _boxId="lastseen" _oBoxProducts=$aLastProducts _sHeaderIdent="LAST_SEEN"}]
        [{/if}]
    [{/block}]

[/QUOTE]

Hi Frank,

muss ich trotzdem das Modul installieren? Bekomme leider nichts angezeigt…

Was habe ich gemacht?

das Modul erstellt, in das Verzeichnis kopiert, in meiner productmain.tpl (azure)

 [{block name="sidebar_lastproducts"}] 
        [{if $aLastProducts && $aLastProducts->count() > 0 }] 
            [{include file="widget/product/boxproducts.tpl" _boxId="lastseen" _oBoxProducts=$aLastProducts _sHeaderIdent="LAST_SEEN"}] 
        [{/if}] 
    [{/block}] 

eingefügt, und im Admin unter Grundeinstellungen/Module oxcmp_utils => mylastseen eingefügt.

Hast Recht Jeannie, ich schau mir das nochmal an.

[QUOTE=leofonic;77653]Hast Recht Jeannie, ich schau mir das nochmal an.[/QUOTE]

supi, im voraus lieben Dank.

Oxid meint es nicht gut mit mir, glaube ich, ich wäre ein Schritt weiter, kommt der nächste Knüppel zwischen die Beine:

In allen Browsern sehe ich ausserhalb von “details” die “last seen”, nur im IE nicht. Hier ist $aLastProducts leer. Da ich mich mit Modulen noch gar nicht auskenne, meine Frage, ob das ein bekanntes Problem ist, oder wo kann ich bei der Suche ansetzen? Das Module browserabhängige Ergebnisse liefern können, ist eine neue Erkenntnis für mich :wink:

Also ich habe mir das nochmal angesehen und ein neues Modul erstellt.

@jeannie: Wenn du die LastSeen nur in der productmain.tpl einbinden willst, brauchst du kein Modul, weil productmain.tpl nur in “details” verwendet wird. Du kannst den Code aus last_seen_products.tpl aus dem Basic-Theme anpassen und verwenden.

@paubolix: Das liegt wahrscheinlich nicht am IE, sondern es wurden einfach keine neuen Produkte aufgenommen, also in einer neuen Session wurden dann auch keine angezeigt.

Hier das neue Modul:

<?php 
/* 
* LASTSEEN PRODUCTS ANYWHERE for OXID 4.3.0 and higher
* Module to include last_seen_products.tpl anywhere 
* Filename: modules/mylastseen.php 
* Add one line to System/Modules for each view where 
* you want to show last seen articles, excluding "details" view, e.g.: 
    alist => mylastseen 
    start => mylastseen
*/ 

class mylastseen extends mylastseen_parent{ 
    public function getLastProducts( $iCnt = 4 )
    {
        $oHistoryArtList = new lastseenoxarticlelist;
        $aHistoryArticles = $oHistoryArtList->getHistoryArticles();
        if (is_array($aHistoryArticles)){
            $aHistoryArticles = array_unique( $aHistoryArticles );
            if ( count( $aHistoryArticles ) > ( $iCnt ) ) {
                array_shift( $aHistoryArticles );
            }
            $aHistoryArticles = array_values( $aHistoryArticles );
            $oHistoryArtList->loadIds( $aHistoryArticles );
            $oHistoryArtList->sortByIds( $aHistoryArticles );
        }
        return $oHistoryArtList;
    }
}
class lastseenoxarticlelist extends oxarticlelist{
    public function sortByIds($aArtIds){
        $this->_sortByIds($aArtIds);
    }
}

und das zugehörige Snippet für die sidebar.tpl von Azure:

    [{block name="sidebar_lastproducts"}]
        [{assign var="aLastProducts" value=$oView->getLastProducts() }]
        [{if $aLastProducts && $aLastProducts->count() > 0 }]
            [{include file="widget/product/boxproducts.tpl" _boxId="lastseen" _oBoxProducts=$aLastProducts _sHeaderIdent="LAST_SEEN"}]
        [{/if}]
    [{/block}]

[QUOTE=leofonic;77748]
@paubolix: Das liegt wahrscheinlich nicht am IE, sondern es wurden einfach keine neuen Produkte aufgenommen, also in einer neuen Session wurden dann auch keine angezeigt.
[/QUOTE]

Liegt tatsächlich nicht am IE, ich klicke mich gerade mit dem FF durch die Artikel, aber “last seen” bleibt beharrlich leer. Da scheint ein wenig Vodoo im Spiel zu sein.

Ich teste jetzt mal deinen neuen Code.

Viele Grüße und guten Übergang!
Volker

Ich habe dein überarbeitetes Modul verwendet und [I]start => mylastseen[/I] eingetragen, weil ich es nur auf der Startseite benötige. Zusätzlich in start.tpl [{assign var=“aLastProducts” value=$oView->getLastProducts() }] ergänzt.

Letzte Produkte gibt es aber keine zu sehen. Und ich war in vielen Produkten in gleicher Session.

[QUOTE=Paubolix;77755] Zusätzlich in start.tpl [{assign var=“aLastProducts” value=$oView->getLastProducts() }] ergänzt. [/QUOTE]
In details muss das auch eingebunden werden also mindestens die Zeile

[{assign var="aLastProducts" value=$oView->getLastProducts() }]

weil damit auch die Produkte zum Array hinzugefügt werden. Wenn das nur in der start.tpl steht wird es in der Detailansicht nicht aufgerufen und somit keine neuen Produkte zu den “zuletzt angesehenen” hinzugefügt.

Das war es, ich habe mal ganz locker alles aus details.tpl raus genommen, weil ich da keine zuletzt gesehenen brauche. Aber eigentlich ja logisch, wo sollen die Daten her kommen? Ich sollte jetzt Feierabend machen, Konzentration lässt doch sehr nach…

Ich trinke gleich einen Sekt auf dich :wink:

Früher ging das automatisch, jetzt muss es im Template aufgerufen werden, aber früher war ja auch alles besser. :smiley:
Schönes neues Jahr!