Modulentwicklung, aber wie?

Hallo zusammen,

als erstes, ich hoffe ich bin hier richtig im Forum.
Zweitens, ich habe leider bisher nichts handfestes im Internet und auch hier im Forum nicht gefunden.
Ich bin ein Neuling in Sachen Modulentwicklung für OXID. Nun, ich möchte ein Modul entwickeln und versuche mich als erstes an einfachen Sachen. Jedoch will es nicht so recht klappen.

  1. Ich habe einen Ordner in “modules” erstellt.
  2. Eine “metadata.php” erstellt.
  3. dann einen Ordner “core” mit einer Datei “zs_map.php”

metadata.php sieht wie folgt aus:


/**
 * Metadata version
 */
$sMetadataVersion = '1.1';

/**
 * Module information
 */
$aModule = array(
    'id'          => 'zs_mapper',
    'title'       => 'Map Generator',
    'description' => 'Module generates an Map',
    'thumbnail'   => 'picture.png',
    'version'     => '0.1',
    'author'      => 'zs',
    'extend'      => array(
       
    ),
    'files'       => array(
        'zs_map' => 'zs/core/zs_map.php'
    ),
    'events' => array(
        'onActivate' => '....'
    ),
);

So sieht die Klasse aus:


class zs_map {


    public function __construct(){

    }

    public function start(){
        //do something
        $config = oxRegistry::getConfig();
       // and so on
    }

}

Nun ich möchte meine Klasse wie folgt aufrufen können:
http://shopurl/index.php?cl=zs_map&fnc=start

Ist so etwas überhaupt möglich?

Moin,

nee, die Klassen kannst Du nicht direkt aufrufen. Schau mal hier rein, hier sollte es genug Lesestoff geben:

Unter Umständen findest Du auch auf dem Planet schon gute Anleitungen:

Gruß

Die Klasse kann man schon aufrufen. Ich würds so machen:

<?php
class zs_map extends oxUBase {

    protected $_sThisTemplate = 'zs_map.tpl';

    public function render() 
    { 
        parent::render(); 

        return $this->_sThisTemplate; 
    }

    public function start(){
        //do something
        $config = oxRegistry::getConfig();
		echo 'Funktion: start();';
       // and so on
    }

}  
?>

Zusatz metadata.php:

'templates'   => array(
		'zs_map.tpl' => 'zs/out/templates/zs_map.tpl'
    )

Dann noch das Template in der Form:

[{capture append="oxidBlock_content"}]

    <h1 class="pageHead">zs_map</h1>

	<div style="color:#000000">Aufruf zs_map.tpl</div>
	[{$oView->start()}]
[{/capture}]
[{include file="layout/page.tpl" sidebar="Left"}]

Feddisch :wink:

Baaaah foxido war schneller mit der Antwort. :smiley:

[QUOTE=foxido.de;154118]Die Klasse kann man schon aufrufen. Ich würds so machen:

<?php
class zs_map extends oxUBase {

    protected $_sThisTemplate = 'zs_map.tpl';

    public function render() 
    { 
        parent::render(); 

        return $this->_sThisTemplate; 
    }

    public function start(){
        //do something
        $config = oxRegistry::getConfig();
		echo 'Funktion: start();';
       // and so on
    }

}  
?>

Zusatz metadata.php:

'templates'   => array(
		'zs_map.tpl' => 'zs/out/templates/zs_map.tpl'
    )

Dann noch das Template in der Form:

[{capture append="oxidBlock_content"}]

    <h1 class="pageHead">zs_map</h1>

	<div style="color:#000000">Aufruf zs_map.tpl</div>
	[{$oView->start()}]
[{/capture}]
[{include file="layout/page.tpl" sidebar="Left"}]

Feddisch ;)[/QUOTE]

Danke dir, das klappt wunderbar! :slight_smile:
Den Anderen natürlich auch ein Dankeschön.

Super jetzt klappt es habe es nicht absichtlich gelöscht. Wollte deins eigentlich nur drüber kopieren. DANKESCHÖN


<form action="[{ $oViewConf->getSelfLink() }]" method="post"enctype="multipart/form-data">
    <input type="hidden" name="cl" value="sa_importpdf_to_usergroup">
    <input type="hidden" name="fnc" value="savefile">
    <input type="file" name="userfile">
    <input type="submit" value="Send File" />
</form>