Typo3 Extensions entwickeln
Aus Vosp.info
Version vom 26. Februar 2013, 18:16 Uhr von F (Diskussion | Beiträge)
- Typo3 Extensions entwickeln @deprecated mit der alten pibase-Klasse
Inhaltsverzeichnis
Hello world Extensions mit extbase und fluid
- Grundlagen: Typo3 Flow
- Vorraussetzung: Installation der Extension: extbase und fluid
- Extensionname des Beispiels: nctestitflow
ext_emconf.php
Die grundsätzlichen Informationen für die Extension --- wichtig wären hier die Abhängigkeiten zu den extension extbase und fluid!!
ext_emconf.php
<?php
$EM_CONF[$_EXTKEY] = array(
'title' => 'nc testit flow',
'description' => 'nc test it flow description',
'category' => 'fe',
'author' => 'frederick',
'author_email' => 'frederik [at] netz [dot] coop',
'shy' => '',
'dependencies' => '',
'conflicts' => '',
'priority' => '',
'module' => '',
'state' => 'alpha',
'internal' => '',
'uploadfolder' => 0,
'createDirs' => '',
'modify_tables' => '',
'clearCacheOnLoad' => 1,
'lockType' => '',
'author_company' => '',
'version' => '0.0.0',
'constraints' => array(
'depends' => array(
/**
* wichtig da die extbase und fluid extension unbedingt vorhanden sein müssen!
*/
'php' => '5.2.0-0.0.0',
'typo3' => '4.3.dev-0.0.0',
'extbase'=> '1.0.1-0.0.0',
'fluid' => '1.0.1-0.0.0'
),
'conflicts' => array(
),
'suggests' => array(
),
),
);
?>
ext_localconf.php
Sagen welche Klasse und welche Funktion aufgerufen werden soll!!!!
ext_localconf.php
<?php
if (!defined ('TYPO3_MODE')) die ('Access denied.');
Tx_Extbase_Utility_Extension::configurePlugin(
$_EXTKEY,
'Pi1',
array(
'HelloWorldClass' => 'helloWorldFnc',
)
);
?>
Achtung:
- Schlüssel: HelloWorldClass führt zur folgenden Namensgebung
- Datei in der die Klasse zu finden sein muß: Classes/Controller/HelloWorldClassController.php
- die Klasse muss folgenden Namen besitzen: Tx_Nctestitflow_Controller_HelloWorldClassController
- Wert: helloWorldFnc führt zur folgenden Namensgebung
- die Klasse muss folgende Funktion besitzen: public function helloWorldFncAction()
- Schlüssel und Wert führt zur folgenden Namensgebung
- Templatedatei muss folgenden Namen besitzen: Resources/Private/Templates/HelloWorldClass/HelloWorldFnc.html
Classes/Controller/HelloWorldClassController.php
Achtung: Ordner-, Datei-, Klassen- und Funktionsnamen sind durch #ext_localconf.php vorgeschrieben!!!
Classes/Controller/HelloWorldClassController.php
<?php
class Tx_Nctestitflow_Controller_HelloWorldClassController extends Tx_Extbase_MVC_Controller_ActionController {
public function helloWorldFncAction() {
$this->view->assign('name', 'Vorname Nachname');
}
}
?>
Resources/Private/Language/locallang.xml
Resources/Private/Language/locallang.xml
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<T3locallang>
<meta type="array">
<type>module</type>
<description>Language labels for Hello World</description>
</meta>
<data type="array">
<!-- ENGLISH LANGUAGE DATA -->
<languageKey index="default" type="array">
<label index="helloworld">hello world!!!</label>
</languageKey>
<!-- GERMAN LANGUAGE DATA -->
<languageKey index="de" type="array">
<label index="helloworld">Hallo Welt!!!</label>
</languageKey>
</data>
</T3locallang>
Resources/Private/Templates/HelloWorldClass/HelloWorldFnc.html
Achtung: Ordner- und Dateinamen sind durch #ext_localconf.php vorgeschrieben!!!
Resources/Private/Templates/HelloWorldClass/HelloWorldFnc.html
<p>
<f:translate key="helloworld" /></br>
{name}
</p>
ext_tables.php
hier mit wird die Extension im Backend zur Auswahl eingebunden .... das Plugin registriert!
<?php
Tx_Extbase_Utility_Extension::registerPlugin(
$_EXTKEY,
'Pi1',
'meine hello world fluid extbase extension'
);
?>
Probleme
Could not analyse class:Tx_ _Controller_ Controller maybe not loaded or no autoloader? (More information)
peinlichst genau darauf achten das die Namen (Klassen-, Dateinamen) richtig sind