2016-09-19 8 views
0

Я попытался создать несколько Viewhelpers в расширении Typo3.Typo3 8.2 Пространство имен ViewHelper

<?php 
namespace PdvPolymer\ViewHelpers; 
use TYPO3\CMS\Fluid\Core\ViewHelper\AbstractTagBasedViewHelper; 

class ButtonUpViewHelper extends \TYPO3\CMS\Fluid\Core\ViewHelper\AbstractTagBasedViewHelper 
{... 

ViewHelper находится в удлинительных каталоге \ Classes \ ViewHelpers

Это прекрасно работает, когда я называю его

<div xmlns:f="http://typo3.org/ns/TYPO3/Fluid/ViewHelpers" xmlns:p="http://typo3.org/ns/Extension/ViewHelpers"> 
<p:buttonUp></p:buttonUp> 
</div> 

Но теперь я пытался поставить ViewHelper в Sub -Directory как extension \ Classes \ ViewHelpers \ Custom

Новое пространство имен ViewHelper теперь

namespace Extension\ViewHelpers\Custom; 

Теперь я называю ViewHelper с

<p:custom.buttonUp></p:custom.buttonUp> 

Но теперь я получаю ошибку, как:

Oops, an error occurred! Code: 2016091908135339232bbd 

мой вопрос, что же я не так? Внутренняя Fluid-Extension в Typo3 делает все это как я. Я проверил его!

У кого-то есть идея?

ответ

3

Есть 2 разных вопроса.

Во-первых, я предлагаю избежать подкаталогов в объявлении пространства имен и просто использовать xmlns:p="http://typo3.org/ns/Extension/ViewHelpers". Всегда добавляйте путь подкаталога при вызове ViewHelper, затем в шаблоне, например.

<p:custom.buttonUp></p:custom.buttonUp> 

Вам не нужно декларировать дважды.

второй) О обработки

Используйте TypoScript config.contentObjectExceptionHandler = 0, чтобы отключить его для развития системы, и вы увидите более полезное сообщение об ошибке. Вы можете найти больше информации в docs.

+0

Первая часть на самом деле не является ответом, потому что я сделал это таким образом. Вторая часть - действительно приятное спасибо. Я ошибался: у меня есть два расширения с Viewhelper, а второй - с шаблоном, который использует Viewhelper. Только тогда, когда расширение с помощью viewhelper было удалено и установлено снова, typo3 очистит кеш-память. –