Die Fehlermeldung sagt, dass die Funktion im View Start nicht verfügbar ist.
Bring es also dort unter. Nicht oxarticleslist erweitern sondern start oder sogar oxubase wenn es in mehreren Views verfügbar sein soll. Aber Vorsicht: Erweiterung von oxubase kann sich nachteilig auf die Performance auswirken.
Noch ne weitere Frage, wie hänge ich das Modul der oxubase an? Wenn ich die Modulzuweisung wieder ändere, is wieder die “Nicht gefunden” Fehlermeldung präsent.
Im Backend unter Grundeinstellungen -> Systemeinstellungen -> Module noch folgendes eintragen:
start -> ownbenefits/ownbenefits
Im Backend im Modul Kundeinformationen eine neue Aktion anlegen und in der
Datenbank entsprechend umbenennen und dann in der jeweiligen loadAktionArticles entsprechend eintragen. Man kann natürlich auch die kryptische ID verwenden.
Natürlich auch noch entsprechende Artikel in der Aktion zuweisen net vergessen!
Hat das mal jemand getestet? Ich erhalte folgende Meldung…
Warning: Cannot modify header information - headers already sent by (output started at /var/www/443/modules/ownbenefits/ownbenefits.php:15) in /var/www/443/core/oxutilsserver.php on line 107
Danke, nun funktioniert es. War ein Schreibfehler im Code. Welche Klasse muss ich nun noch überladen, wenn ich die Produkte auch auf den Kategorienseiten anzeigen will?
Bitte, bitte! Hast Du content => ownbenefits/ownbenefits schon probiert? Ansonsten einfach mal sämtliche Klassen durchprobieren, irgendeine muss ja tun
muss diese Thematik nochmal aufgreifen.
Zwar hätte ich gerne, dass die Funktion loadAktionArticles alles via Zufall wieder gibt.
Wie überlade ich quasi die ursprüngliche Funktion in oxarticlelist mit meiner modifizierten Funktion
um updatesicher zu bleiben?
Möchte also nur das SQL wie folgt ändern:
$sSelect = "select $sArticleFields from oxactions2article
left join $sArticleTable on $sArticleTable.oxid = oxactions2article.oxartid
left join oxactions on oxactions.oxid = oxactions2article.oxactionid
where oxactions2article.oxshopid = '$sShopID' and oxactions2article.oxactionid = $sActionID and $sActiveSql
and $sArticleTable.oxid is not null and " .$oBaseObject->getSqlActiveSnippet(). "
order by rand() LIMIT 15";
Das muss doch irgendwie eleganter gehen, als im Core rumzupfuschen…
<?php // yourclass Als Modul eintragen: oxarticlelist => yourclass
class yourclass extends oxArticleList
{
public function loadAktionArticles( $sActionID )
{
...
}
}