Typo3 Extensions entwickeln: Unterschied zwischen den Versionen

Aus Vosp.info
Wechseln zu:Navigation, Suche
(extension_builder)
Zeile 3: Zeile 3:
  
 
= extension_builder =
 
= extension_builder =
[[Typo3_Extensions#extension_builder|extension_builder]]
+
[[Typo3_Extensions#extension_builder|extension_builder]] installieren und nutzen ;) kann viel Schreibarbeit und Flüchtigkeitsfehler tilgen
 +
 
 +
'''lose Notizen'''
 +
* Vererbung innerhalb des Projekts geht nur in dem mensch die noch nicht fertige Extension abspeichert und installiert, danach wieder das Projekt laden und nun vererben. ... Aber aufpassen mit dem richtigen Klassennamen
  
 
= Hello world Extensions mit extbase und fluid =
 
= Hello world Extensions mit extbase und fluid =

Version vom 5. März 2013, 19:06 Uhr

typo3

extension_builder

extension_builder installieren und nutzen ;) kann viel Schreibarbeit und Flüchtigkeitsfehler tilgen

lose Notizen

  • Vererbung innerhalb des Projekts geht nur in dem mensch die noch nicht fertige Extension abspeichert und installiert, danach wieder das Projekt laden und nun vererben. ... Aber aufpassen mit dem richtigen Klassennamen

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