Typo3 Extensions entwickeln

Aus Vosp.info
Wechseln zu:Navigation, Suche

typo3

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

Quellen