Hallo,
ich hatte eine 6.1.5 Installation auf der ich mit dem Extensionbuilder eine ganz einfache Extension erstellt hatte und die einwandfrei lief. Heute habe ich nun Typo3 auf 6.2.0 upgedatet und nun meldet die Extension mir:
Sorry, the requested view was not found.
The technical reason is: No template was found. View could not be resolved for action "list" in class "HALMA\Heroslider\Controller\SlideController".
Ich habe nie irgdenetwas von Hand an der Extension geändert, sie ist sozusagen jungfäulich vom Extension Builder.
Die Template-Datei existiert, ist lesbar und in UpperCamelCase-Notation benannt
-rw-rw-rw- 1 www-data www-data 521 Apr 15 10:22 typo3conf/ext/heroslider/Resources/Private/Templates/Slide/List.html
Der Controller sieht unauffäliig aus:
/**
*
*
* @package heroslider
* @license http://www.gnu.org/licenses/gpl.html GNU General Public License, version 3 or later
*
*/
class SlideController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController {
/**
* slideRepository
*
* @var \HALMA\Heroslider\Domain\Repository\SlideRepository
* @inject
*/
protected $slideRepository;
/**
* action list
*
* @return void
*/
public function listAction() {
$slides = $this->slideRepository->findAll();
$this->view->assign('slides', $slides);
}
}
?>
Sehr kurios ist auch, dass es noch einige weitere Extensions gibt, die ebenfalls mit dem Builder erstellt wurden, die aber alle einwandfrei das Update überstanden haben 😉 ^^
Vielleicht kann mir jemand sagen, was ich noch checken kann oder ob es ein bekanntes Problem ist. Vielen Dank für Eure Hilfe!
Was ich vergaß zu erwähnen: Die Extension wird per Typoscript eingebunden, und zwar folgendermassen:
lib.heroslider = COA
lib.heroslider {
10 = USER
10 {
userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run
vendorName = HALMA
extensionName = Heroslider
pluginName = Slideshow
controller = Slide
action = list
switchableControllerActions {
Slide {
1 = list
}
}
settings =< plugin.tx_heroslider.settings
persistence =< plugin.tx_heroslider.persistence
persistence.storagePid = 109
view =< plugin.tx_heroslider.view
}
}
Hat sich hier vllt. etwas geändert in 6.2, dass das so nicht geht, oder muss ich das View-File explizit angeben oder so..?
Freue mich über jeden Hinweis und bedanke mich schon mal..
EDIT: Es muss an der Einbindung im Typoscript liegen, denn wenn ich das Plugin "normal" als Seitenelement im Backend einbinde funktioniert es. Ich google mir nun schon einen Wolf, aber alle Beispiele, die man im Web findet zum Thema "Extbase Plugin mit Typoscript einbinden" sind so wie ich es hier gemacht habe. Irgendetwas muss sich in 6.2 geändert haben.
Hier noch meine ext_localconf.php:
<?php
if (!defined('TYPO3_MODE')) {
die ('Access denied.');
}
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
'HALMA.' . $_EXTKEY,
'Slideshow',
array(
'Slide' => 'list',
),
// non-cacheable actions
array(
'Slide' => '',
)
);
?>
Ok, ich habs rausgefunden. Man muss im Template der Seite unter dem Reiter "Enthält" noch bei "Statische Templates einschließen (aus Erweiterungen)" die entsprechende Erweiterung auswählen ("heroslider" in meinem Fall). Kann mich nicht erinnern, das in der alten Version gemacht zu haben, keine Ahnung ob das jetzt in 6.2 neu ist oder ob es einfach beim Upgrade irgendwie verloren gegangen ist. Auf jeden Fall tut es jetzt wieder 🙂