Modul erstellen unter Oxid 4 mit php function

Ich habe frisch angefangen mit Oxid 4. Ich habe ein Modul erstellt welches einen block eines templates überschreibt. Nun möchte ich dort eine php function einfügen.Etwas sehr einfaches wie diese hier:

function test123() {
echo “test12334445556”;
}

Wie bekomme ich diese Funktion in meine tpl datei die dann das parent template überschreibt. Es wäre auch super eine Dokumentation über ein basic Modul zu lesen. Finde aber keine passende für Oxid 4.
Über schnelle Hilfe wäre ich sehr dankbar.

Eine PHP-Funktion sollte entweder im Controller stehen (oView im Template) oder wenn sie auf allen Seiten erforderlich ist in ViewConfig (oViewConf im Template). Und dann eben nicht echo test sondern return test. Anleitung für Modulerstellung in Oxid 4 gibt’s einige, z.B. hier: https://blog.php-dev.info/2014/08/oxid-modulentwicklung-teil-1/

Danke für die schnelle Antwort. Wie würde der erforderliche code aussehen?

Ich habe es jetzt so in meine child.tpl geschrieben:

[{$oView->test123()}]

so passiert aber nichts andere änderungen werden super übernommen.

und wie sieht das dazugehörige Modul aus?

was von dem modul ? die metadata.php oder was?

Ja sicher. Wie soll man Dir sonst helfen? Du musst die Klasse (Controller) erweitern, die zum Template gehört, welches den Block beinhaltet. Wie in obigem Verweis zu einem Modul.

$sMetadataVersion = '1.1';

$aModule = array(
    'id'                          => 'test1',
    'title'                       => 'test',
    'thumbnail'                   => '',
    'url'                         => 'https://.de/',
    'email'	                      => '[email protected]',
    'version'                     => '1',
    'author'                      => 'Hendrik',
    'files' => array(
            'test1_events' => 'test1/core/test1_events.php',
            'test' => 'test1/core/test.php'
    ),
    'extend' => array(

    ),
    'blocks' => array (
            array (
                'template' => 'article_main.tpl', 
                'block' => 'admin_article_main_form', 
                'file' => '/application/views/admin_article_main_form.tpl'
            ),

            array (
                'template' => 'page/details/inc/productmain.tpl',
                'block' => 'test_feld',
                'file' => '/application/views/blocks/test_feld.tpl'
            ),
    ),
    'events' => array(
            'onActivate'   => 'test1_events::onActivate',
            'onDeactivate' => 'test1_events::onDeactivate',
        ),
);

in der test.php liegt die funktion

Ich würde das so machen:
metadata:

‘extend’ => array(
‘oxwarticledetails’ => ‘test1/core/test’,
),

[{$oView->test123()}]

class test extends test_parent {
	
    public function test123() {
		echo “test12334445556”;
	}
}

Ich habe ein modul erstellt. Funktioniert super. Nun möchte ich eine php Funktion im Frontend ausgeben (was sehr einfaches, weil ich keine Ahnung von php habe… sowas wie :slight_smile:

class toid8_test extends toid8_test_parent {

public function test123() {
$test123 = [
];
echo “test12334445556”;
}
}

diese Datei ist auch mit der metadata verknüpft. Nun habe ich was davon gelesen, dass ich eine Oxid klasse erweitern muss um die Funktion im Frontend zu benutzen. Durch die EXPECTION_Log.txt habe ich herrausgefunden, dass die klasse wmdk_article heißt. Ich habe es auch hinbekommen die Datei richtig zu verlinken um die Oxid klasse zu erweitern. Mein Problem ist ich habe absolut keine Ahnung was ich jetzt in die Datei schreiben soll. Die Datei heißt bei mir toid8_wmdk_article.php.

Wäre super wenn mir jemand schreiben kann was in die Datei nun drinnen stehen muss und ob ich sonst noch etwas beachten muss.

Deine Frage klingt etwa so:

ich will etwas leckeres kochen, soll irgendwas einfaches sein, da ich keine Ahnung vom Kochen habe… sowas wie eine Suppe.
Nun habe ich was davon gelesen, dass ich einen Topf brauche. Mein Problem ist ich habe absolut keine Ahnung was ich jetzt in den Topf werfen soll. Der Topf ist von Tefal.
Wäre super wenn mir jemand schreiben kann was in die Pfanne rein kommt und ob ich sonst noch etwas beachten muss.

Du musst als erstes überlegen, was dein Modul machen soll.
Davon hängt nämlich ab, was in die PHP Datei rein kommt.

Und man muss auch jede Menge Sachen beachten… Schon irgendwelche Tutorials angeschaut?
z.B. https://www.youtube.com/watch?v=0YMdqvGO8Uw&list=PLyrxtI-PbhJwDWljUJz6b_gPBUpoQdS-R

Sag mal, in Deinem Account gibst Dich als Entwickler aus. Da muss man von ausgehen, dass Du etwas davon verstehst, was wir hier schreiben.

Was Du brauchst, steht auch schon in Deinem anderen Beitrag.

ich habe mal beide Topics zusammengeführt, da es sich um das selbe Thema handelt.

bin in der Ausbildung in der 2ten woche

Na gut :wink: