Ein Modul einbinden

Guten Tag,
Ich versuche mich momentan ein wenig an der Erstellung eines Moduls und probiere da erstmal einiges aus :slight_smile:

Zunächst einmal habe ich die Datei oxid\views\alist.php ein wenig abgeändert. Das ganze geht auch soweit.

Nun wollte ich dies als erstes kleines Modul realisieren.
Ich habe jetzt einen neuen Ordner im Modules Ordner angelegt namens test.
Darin befindet sich die modifizierte Datei welche ich test_alist.php genannt habe.

Nun kommt aber mein Problem:
Ich habe versucht das Modul wie folgt im Shop einzubinden:
alist => test/test_alist
Soweit geht das ganze noch, ich kann das Modul auch aktivieren.
Jedoch erhalte ich wenn ich im Shop zu dem Punkt gehe in dem die Veränderung wirksam werden sollte bekomme ich folgende Fehlermeldung:

Fatal error: Cannot redeclare class aList in C:\xampp\htdocs\oxid\modules est est_alist.php on line 1026

Ist sicher irgend ein dummer, einfach zu lösender Fehler :slight_smile:

poste mal die ersten 3 Zeilen Code aus deiner test_alist.php

class aList extends oxUBase
{
/**

Benenne mal

class aList 

in

class test_alist

um

und ändere oxUBase in test_alist_parent

Vielen Dank schonmal für die schnellen Antworten!

Leider klappt es immernoch nicht. Mein Code sieht momentan so aus:


class alist extends test_alist_parent
{
    
    public function getArticleList()
    {
        if ( $this->_aArticleList === null ) {
            if ( /*$this->_isActCategory() &&*/ ( $oCategory = $this->getActCategory() ) ) {
                $aArticleList = $this->_loadArticles( $oCategory );
                if ( count( $aArticleList ) ) {
                    $this->_aArticleList = $aArticleList;
                }
            }
        }
        if($oxcmp_user && $oxcmp_user->inGroup('Testgruppe'))
        {
        }
        else
        {
            return $this->_aArticleList;
        }   
    }
}

eingebunden habe ich das ganze mit alist => test/test_alist

Wenn ich das Modul aktiviere und die entspechende Shopseite ansteuer erhalte ich folgenden Error:
Fatal error: Cannot redeclare class alist in C:\xampp\htdocs\oxid\modules est est_alist.php on line 52

Mal abgesehen davon scheint der Code aber ohnehin noch nicht so richtig zu funktionieren. Ziel war es eigentl., dass für Benutzer die der Gruppe “Testgruppe” angehören keine Artikel in den jeweiligen Kategorien geladen werden.
Ich weiß, das macht so relativ wenig Sinn, aber es dient mir auch lediglich zur Übung :slight_smile:
Also falls man mir hier oder aber bei meinem eigentl. Problem (dem Einbinden) helfen könnte wäre ich sehr dankbar!
(Bin sowieso positiv überrascht, wie schnell einem hier geantwortet wird.)

Den Beitrag von rubbercut hast du gesehen?
Schau dir doch mal bitte das Modul tutorial genauer an.

Gesendet von meinem Stream mit Tapatalk 2

Ja, den hatte ich gelesen und auch umgesetzt. Ist nur scheinbar irgendwie beim rumprobieren untergegangen…
Das Einbinden klappt jetzt wunderbar, Danke euch dafür :slight_smile:

Jetzt muss ich mich nurnoch darum kümmern wieso das ganze mit der Gruppenüberprüfung noch nicht so will wie ich.
Aber das find ich schon noch raus.

Edit:
Scheinbar finde ich es doch nicht raus…

if($oxcmp_user && $oxcmp_user->inGroup('Testgruppe'))
        {
        }
        else
        {
            return $this->_aArticleList;
        }  

Aus irgendeinem Grund wird der if-Fall nie aktiv. Habs auch schon in etwas anders verschachtelter Form getestet -> es liegt am $oxcmp_user
$oxcmp_user sollte doch eigentl. prüfen, ob der derzeitige Benutzer eingeloggt ist und falls er eingeloggt ist wäre $oxcmp_user == true, oder habe ich da irgendeinen Denkfehler?

edit:
Da sich meine weiteren Fragen wohl nicht mehr auf das Einbinden eines Moduls beziehen, mache ich wohl besser einen neuen Thread auf für andere fragen. Danke nochmal an euch alle, ihr habt mir bisher sehr geholfen :slight_smile: