2013-05-06 3 views
0

Я все новичок в Typo3. Я создал расширение под названием myExtension в/typo3conf/вн/myExtensionTypo3 Custom Extensions

Структура папки выглядит следующим образом

-Classes 
--ViewHelpers 
    --myExtensionViewHelper.php 
-Resources 
--Resources 
    --Private 
    --Templates 
    --myExtension 
    --index.html 

myExtensionViewHelper.php имеет следующий код

<?php 

/** 
* This class is a demo view helper for the Fluid templating engine. 
* 
* @package TYPO3 
* @subpackage Fluid 
* @version 
*/ 
class Tx_myExtension_ViewHelpers_myExtensionViewHelper extends Tx_Fluid_Core_ViewHelper_AbstractViewHelper { 

    /** 
    * Renders some classic dummy content: Lorem Ipsum... 
    * 
    * @param int $length The number of characters of the dummy content 
    * @validate $length IntegerValidator 
    * @return string dummy content, cropped after the given number of characters 
    */ 
    public function render($length) { 
     $dummyContent = 'Lorem ipsum dolor sit amet.'; 
     return substr($dummyContent, 0, $length); 
    } 
} 

?> 

Файл index.html содержит

{namespace myExtension=Tx_myExtension_ViewHelpers} 

<f:layout name="Default" /> 
<f:section name="content"> 

<h1> 
    <myExtension:myExtension length="5" /> 
</h1> 

</f:section> 

В моей typo3 бак kend, я создал страницу под названием «Манго» и включил в нее этот плагин.

У меня есть шаблон, макет и template.html для веб-сайта «Манго».

Теперь что мне делать, чтобы получить вывод файла Index.html на эту страницу?

Я делаю это правильно? Я не сделал ничего другого, кроме упомянутого здесь материала.

Я совершенно не знаком с Typo3, и все это немного сложно понять. Пожалуйста, упомяните, даже если что-то тривиально и очевидно.

Спасибо :)

ответ

3

Вам нужен контроллер, который загружает систему шаблонов и отображает шаблон. Определенный вами объект ViewHelper не требуется для получения результата, это только пользовательские классы шаблонов, которые вы можете использовать в своих шаблонах.

контроллер Пример:

Файл: Классы/Controller/TestController.php

class Tx_MyExtension_Controller_TestController extends Tx_Extbase_MVC_Controller_ActionController { 
    /** 
    * action sampleAction 
    * 
    * @return void 
    */ 
    public function sampleAction() { 
     //Add variables to template 
     $this->view->assign("sample_var", "sample value"); 
    } 

} 

Теперь вам нужен файл шаблона, который находится в каталоге на основе контроллера и действия. Поэтому в этом примере вам нужен файл шаблона в my_extension/Resources/Private/Templates/Test/ (где «Test» - это имя контроллера), которое называется действием Sample.html.

Чтобы получить обернуть вокруг расширения вы также понадобится файл макета my_extension/Resources/Private/Layouts/Default.html с содержанием

<div class="tx-my-extension"> 
    <f:render section="main" /> 
</div> 

Этот файл вызывается с <f:layout name="Default" /> в шаблоне и <f:render section="main" /> это место будет отображаться содержимое.

Следующий шаг - разрешить действие в расширении. Перейти к вашей ext_localconf.php в корневом каталоге и добавьте

Tx_Extbase_Utility_Extension::configurePlugin(
    $_EXTKEY, 
    'Myextension', 
    array(
     'Test' => 'sample', // 'ControllerName' => 'ActionName, OtherAction' 
    ), 
    // non-cacheable actions 
    array(
     'Test' => 'sample', // 'ControllerName' => 'ActionName, OtherAction' 
    ) 
); 

Последний шаг заключается в создании файла шаблона my_extension/Resources/Private/Templates/Test/Sample.html с содержанием

<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> 

<f:layout name="Default" /> 

<f:section name="main"> 
    Your sample var: {sample_var} 
</f:section> 

Теперь вы должны увидеть результат после добавления плагина к странице.

+0

Большое вам спасибо. Попробуй это :) – dora

+0

Я сделал это.Я создал новую страницу, а в части содержимого я добавил плагин. Страница> Редактировать> Плагин и выберите Плагин. Нужно ли также создавать шаблон и упоминать его там? – dora

+0

Возможно, это лучше, если вы создаете расширение с помощью «расширителя». Создайте там модель, сохраните и посмотрите на магию. – Merec