Zufälliges "Angebot der Woche" / Cache Problem

Hallo,
ich möchten die Liste der “Angebot der Woche” Artikel zufällig auf der Startseite durchrotieren lassen. Ich habe hierfür die Methode getBargainArticleList() in der Start Klasse in einem Modul überschrieben und die Artikelliste mit der php Funktion shuffle zufällig sortieren lassen. Dies funktioniert auch schon wunderbar, wäre da nicht der Smarty Cache, der im /tmp/ gespeichert wird. Wie kann ich dieses Szenario auf der Startseite realisieren? Leider funkioniert das Smarty Tag nocache nicht in der bargainitems.tpl. Hat irgendjemand eine Idee?

Hier der Code:


<?php
class SpecialArticleList extends SpecialArticleList_parent
{
	public function getBargainArticleList()
	{
		if ( $this->_blBargainAction ) {
			if ( $this->_aBargainArticleList === null ) {
				$this->_aBargainArticleList = array();
				if ( $this->getConfig()->getConfigParam( 'bl_perfLoadAktion' ) ) {
					$oArtList = oxNew( 'oxarticlelist' );
					$oArtList->loadActionArticles( 'OXBARGAIN' );
					$array = $oArtList->getArray();
					shuffle($array);
					$oArtList->clear();
					$oArtList->assign($array);
					if ( $oArtList->count() ) {
						$this->_aBargainArticleList = $oArtList;
					}
				}
			}
		}
		return $this->_aBargainArticleList;
	}
}
?>

Guten Morgen exithh,

es gibt im Core Verzeichnis die Klasse oxcache.php ich würde mir diese an deiner Stelle anschauen. Selbst kann ich damit keine Erfahrungen vorweisen, aber das wäre die Stelle im Framework wo ich zuerst gucken würde :slight_smile:

Viele Grüße aus Berlin
indianer3c

nocache gibt es leider erst ab Smarty 3. Schau dir stattdessen mal das Smarty-Plugin ‘oxid_include_dynamic’ an

das Modul hier rotiert die Artikel der Aktion “frisch Eingetroffen”

Funktioniert das auch mit der neuesten Version?

Wenn man Link von GitHub aufruft, dann kann man lesen Modul wurde für Shopversion 4.7.x geschrieben. Guckt man sich Quellcode an, dann ist es nur eine Datei. Dieses Modul könnte man für die aktuelle Shopversion 6 umschreiben.