2016-09-19 2 views
0

J'ai essayé de créer plusieurs Viewhelpers dans une extension Typo3.Typo3 8.2 Espace de noms ViewHelper

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

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

Le ViewHelper est situé dans l'extension du répertoire \ Classes \ aides de vue

Cela fonctionne très bien quand je l'appelle avec

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

Mais maintenant, je l'ai essayé de mettre le ViewHelper dans un sous -directory comme Classes \ 'extension de \ aides de vue \ Custom

le nouvel espace de noms de l'ViewHelper est maintenant

namespace Extension\ViewHelpers\Custom; 

Maintenant j'appelle le ViewHelper avec

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

Mais maintenant, je reçois une erreur comme:

Oops, an error occurred! Code: 2016091908135339232bbd 

Ma question est, qu'est-ce que je tort? L'interne Fluid-Extension dans Typo3 le fait tout de même comme moi. Je l'ai vérifié!

Quelqu'un a une idée?

Répondre

3

Il existe 2 problèmes différents. Tout d'abord, je suggère d'éviter les sous-répertoires dans la déclaration de l'espace de noms et il suffit d'utiliser xmlns:p="http://typo3.org/ns/Extension/ViewHelpers". Ajoutez toujours le chemin du sous-répertoire lors de l'appel de ViewHelper, puis dans le modèle, par ex.

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

Vous n'avez pas besoin de la déclaration deux fois.

2) A propos de la gestion des erreurs

Utilisez le TypoScript config.contentObjectExceptionHandler = 0 pour la désactiver pour votre système de développement et vous verrez un message plus utile. Vous pouvez trouver plus d'informations dans le docs.

+0

La première partie n'est pas vraiment une réponse, parce que je l'ai fait de cette façon. La deuxième partie est vraiment belle merci. Mon erreur était: j'ai deux extensions avec Viewhelper et une seconde avec un template qui utilise Viewhelper. Ce n'est que lorsque l'extension avec viewhelper a été désinstallée et réinstallée, que typo3 efface les caches viewhelper. –