Zum Inhalt springen

Problem mit Erstellen der Extension. The default controller for extension "..." and plugin "..." can not be determined

Erstellt am 14. Oktober 2015 · 1 Antwort · letzte Antwort am 15. Oktober 2015

Tags: TYPO3 6.x, Frage

muxa92 ·

Übrigens, habe TYPO3 6.2.9, in der Dropdown kann man nur bis 6.2.6 auswählen.

Hallo,

Erstmal das Ziel davon, was ich mache:
Ich habe einen Projekt mit einer sehr großen Datenbank. Dieser Projekt ist eine Selbstentwicklung auf PHP. Daher gibt es fertige Klassen, die sich um die Datenorganisation kümmernund die Darstellung als HTMl-Code generieren.
Dazu soll ich einen kleineren Projekt erstellen, unter TYPO3 gesteuert. TYPO3 soll also die selbstgeschriebene Klasse benutzen, um auf Daten in eine externe Datenbank zuzugreife, die Daten darzustellen und auf bestimmte Seiten des TYPO3 angezeigt werden.
Dafür habe ich mich entschieden, eine Extension zu schreiben.

Ich habe mich schon mit Extbase und Fluid auseinandergesetzt, viele Tutorials gelesen, auch in diesen Forum rumgewummelt, aber ich kriege das nicht zum Laufen.

Ich möchte z.b. bloß einen Hello World schreiben.

Ich habe eine Extension namens "helloworld" erstellt.
Mein typoconf/etx/helloworld sieht so aus:

Classes/Controller/TestController.php
Resources/Private/Templates/Test.html
ext_emconf.php
ext_localconf.php
ext_tables.php

ext_emconf.php:

<?php


$EM_CONF[$_EXTKEY] = array (
	'title' => 'Hello World Extension',
	'description' => 'einfach eine Test Extension',
	'category' => 'be',
	'version' => '0.1',
	'state' => 'beta',
	'uploadfolder' => 0,
	'createDirs' => '',
	'clearcacheonload' => 0,
	'author' => '---',
	'author_email' => '---',
	'author_company' => '',
	'constraints' => 
	array (
		/* Welche komponente werden benötigt? */
		'depends' => 
		array (
		),
		'conflicts' => 
		array (
		),
		'suggests' => 
		array (
		),
	),
);

?>

ext_localconf.php:

<?php 
	if(!defined('TYPO3_MODE')) die ('Access denied.');
	
	\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
		"Jurisafe".$_EXTKEY,
		'testplugin',			
		array('Test' => 'show'),	// showAction des Conntrollers TestController wird aufgerufen
		array()
	);
?>

ext_tables.php:

<?php
	if(!defined('TYPO3_MODE')) die ('Access denied.');
	
	Tx_Extbase_Utility_Extension::registerPlugin($_EXTKEY, 'testplugin', 'Testing');
?>

TestController.php:

<?php

namespace Appname\Helloworld\Controller; 

class TestController extends Tx_Extbase_MVC_Controller_ActionController {
	public function showAction() {
		return "Hello world!";
	}
}

?>

Und schliesslich mein TypoScript:

backend_layout = CASE 
backend_layout {
  key.field = backend_layout
  key.ifEmpty.data = levelfield:-2,backend_layout_next_level,slide
  
  13 = COA
}

newsContent < backend_layout
newsContent {
  13 {
    10 < styles.content.get
    10.select.where = colPos = 2
  } 
}

blogContent < backend_layout
blogContent {
  13 {
    10 < styles.content.get
    10.select.where = colPos = 3
  } 
}

footer1Content < backend_layout
footer1Content {
  13 {
    10 < styles.content.get
    10.select.where = colPos = 4
  } 
}

footer2Content < backend_layout
footer2Content {
  13 {
    10 < styles.content.get
    10.select.where = colPos = 5
  } 
}

footer3Content < backend_layout
footer3Content  {
  13 {
    10 < styles.content.get
    10.select.where = colPos = 6
  } 
}


gb = USER 
gb {
  userFunc = tx_extbase_core_bootstrap->run
  extensionName = Helloworld
  pluginName = testplugin
  vendorName = Appname
  
  controller = Test
  action = show     
  controllerConfiguration.Test=show
}

page = PAGE                                              
page {
  10 = FLUIDTEMPLATE                                         
  10 {
    file = {$layoutpath}/index.html   
    variables {
      news < gb
      blog < blogContent
      footer1 < footer1Content 
      footer2 < footer2Content 
      footer3 < footer3Content 
    }    
  }
  
  # ----------------------------
  # CSS-Dateien werden angehängt
  # ----------------------------
  includeCSS {
    file1 = {$csspath}/style.css
  }
  
  includeJS {
    file7 = {$jspath}/jquery-1.6.4.min.js
  }  
}

TCEMAIN.clearCacheCmd = all 
<INCLUDE_TYPOSCRIPT: source="FILE: fileadmin/configurations/tsconfig_page.ts">

das Objekt "gb" will ich an der Seite sehen, in meinem Vorstellung soll der "Hello World!" enthalten.

Doch wenn ich die seite mit so einem TS aufrufe, kommt die Fehlermeldung:
The default controller for extension "Helloworld" and plugin "testplugin" can not be determined. Please check for TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin() in your ext_localconf.php.

Ich hab schon vieles ausprobiert, aber kriege die nicht weg.
Wer kann mir sagen,wie ich das weg kriege, habe ich vielleicht etwas vergessen, nicht beachtet?

Für jede Hilfe wäre ich dankbar.
Danke im Vorraus!

aemka ·

Mach es mal so:

gb = USER
gb {
   userFunc = tx_extbase_core_bootstrap->run
   pluginName = Testplugin
   extensionName = Helloworld
   vendorName = Appname
   settings =< plugin.tx_helloworld.settings
   persistence =< plugin.tx_helloworld.persistence
   view =< plugin.tx_helloworld.view
   switchableControllerActions {
     Test {
       1 = show
     }
   }
}