2013-05-29 6 views
3

У меня возникла странная проблема с расширением extbase/fluid extension. Я использую TYPO3 6.1Модуль внешней защиты TYPO3 Extbase. Проблема с шаблоном шаблона

Я сделал расширение с базовым модулем на своем dev-сервере (та же конфигурация/оборудование, что и prod). Модуль отлично работает с пути к шаблону:

myext/Ресурсы/Private/Backend/Шаблоны
myext/Ресурсы/Private/Backend/Макеты
myext/Ресурсы/Private/Backend/Partials

После этого я загрузил zip-файл моего расширения в диспетчер ext, а затем установщик на prod-сервере. Теперь я не могу использовать мое расширение, потому что модуль не находит шаблоны. Я настроил расширение таким же образом. Шаблоны находятся на правильном пути.

я проверить, чтобы переместить мою папку на уровень родительского:

myext/Ресурсы/Частным лицам/Шаблоны
myext/Ресурсы/Private/Макеты
myext/Ресурсы/Частным лицам/Partials

С этим он работает, но в конфигурации модуля я указываю правильный путь к папке «Backend /».

Я не буду перемещать свою папку в частной папке, я хочу, чтобы она запускалась в папке Private/Backend.

Я включил статический шаблон расширения в шаблон корневого TS сайта.

Вот константы:

module.tx_myext { 
    view { 
     # cat=module.tx_myext/file; type=string; label=Path to template root (BE) 
     templateRootPath = EXT:wng_myext/Resources/Private/Backend/Templates/ 
     # cat=module.tx_myext/file; type=string; label=Path to template partials (BE) 
     partialRootPath = EXT:wng_myext/Resources/Private/Backend/Partials/ 
     # cat=module.tx_myext/file; type=string; label=Path to template layouts (BE) 
     layoutRootPath = EXT:wng_myext/Resources/Private/Backend/Layouts/ 
    } 
    persistence { 
     # cat=module.tx_myext//a; type=string; label=Default storage PID 
     storagePid = 
    } 
} 

А вот установка:

module.tx_myext { 
    persistence { 
     storagePid = {$module.tx_myext.persistence.storagePid} 
    } 
    view { 
     templateRootPath = {$module.tx_myext.view.templateRootPath} 
     partialRootPath = {$module.tx_myext.view.partialRootPath} 
     layoutRootPath = {$module.tx_myext.view.layoutRootPath} 
    } 
} 

ответ

2

Попробуйте очистить все кэши, даже в typo3temp/Ядро/Cache (или что-то в этом роде)

2

Я не знаю, действительно ур установки, но нормально Вы должны установить эти пути в /Configuration/TypoScript/setup.txt например

module.tx_yourext { 
    persistence { 
     storagePid = {$pid} 
    } 
    view { 
     templateRootPath = {$templateRootPath} 
     partialRootPath = {$partialRootPath} 
     layoutRootPath = {$layoutRootPath} 
    } 
} 

Эта конфигурация не используется до тех пор, пока вы не добавите статическую температуру пластину вашего расширения. Кроме того, вы должны добавить эти строки в ext_tables.php

if (TYPO3_MODE === 'BE') { 
    Tx_Extbase_Utility_Extension::registerModule(
     $_EXTKEY, 
     'web',   // Main area 
     'mod1',   // Name of the module 
     '',    // Position of the module 
     array(   // Allowed controller action combinations 
      'Controller' => 'actionName' 
     ), 
     array(   // Additional configuration 
      'access' => 'user,group', 
      'icon'  => 'EXT:my_ext/ext_icon.gif', 
      'labels' => 'LLL:EXT:' . $_EXTKEY . '/Resources/Private/Language/locallang_mod.xml', 
     ) 
    ); 
} 
+0

Я добавил мой статический шаблон для шаблона сайта корневого каталога. Я обновил свой вопрос –

+0

Вы проверили, используются ли настройки TS? Вы можете сделать это, используя браузер объектов TS (в модуле шаблона) – fnagel

+0

Да, это так. Все загрузки отлично ...: s –

6

Основная проблема в том, что конфигурации TypoScript не загружается в папки хранения или страницы без шаблона в корневом пути.

Explaination: конфигурация TypoScript вы установите для расширения кастрированный баран это в ext_typoscript_setup, статический шаблон или с помощью PHP, он всегда будет нужен шаблон системы записи где-то в корне страницы. в противном случае он не будет отображаться - и никакие настройки пути для ваших extbase-расширений не произойдут, поэтому установлен макет по умолчанию, шаблон и частичный путь, и это место, где скрипт будет искать ваши вещи.

По умолчанию:

/Private/Resources/Layout/ 
/Private/Resources/Partials/ 
/Private/Resources/Templates/@Controllername/@Actionname 

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

<?php 
namespace VendorKey\ExtensionName\Controller; 

class SettingsController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController { 

/** 
* Initializes the controller before invoking an action method. 
* @return void 
*/ 
protected function initializeAction() { 
    $this->setBackendModuleTemplates(); 
} 

/** 
* Set Backend Module Templates 
* @return void 
*/ 
private function setBackendModuleTemplates(){ 
    $frameworkConfiguration = $this->configurationManager->getConfiguration(\TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface::CONFIGURATION_TYPE_FRAMEWORK); 
    $viewConfiguration = array(
     'view' => array(
      'templateRootPath' => 'EXT:extension_name/Resources/Private/Templates/Modules/', 
      'partialRootPath' => 'EXT:extension_name/Resources/Private/Partials/Modules/', 
      'layoutRootPath' => 'EXT:extension_name/Resources/Private/Layouts/Modules/', 
     ) 
    ); 
    $this->configurationManager->setConfiguration(array_merge($frameworkConfiguration, $viewConfiguration));   
} 

/** 
* action settings 
* @return void 
*/ 
public function settingsAction(){ 

} 

} 

я надеюсь, что это помогает Greetz Бенджи

4

Как @ Бенджамина-KOTT объясняет, конфигурации Серверные модули TYPO3 в должны быть загружены в первую очередь. К сожалению, файлы typoscript расширения автоматически не загружаются по умолчанию.

Один из способов заставить TYPO3 осознает этого TypoScript файлов создает два файла в корневой папке внутренней линии:

  1. ext_typoscript_constants.txt

    <INCLUDE_TYPOSCRIPT: source="FILE:EXT:myext/Configuration/TypoScript/constants.txt"> 
    
  2. ext_typoscript_setup.txt

    <INCLUDE_TYPOSCRIPT: source="FILE:EXT:myext/Configuration/TypoScript/setup.txt"> 
    

(вроде очевидно, но вы должны заменить этот путь с вашим)

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

2

Хотя эта ветка довольно старая, я хочу показать вам, ребята, мое решение для TYPO3 7.6 LTS.

Сначала вам необходимо включить файлы TypoScript через Template > Edit whole record > Includes.

И в вашем TypoScript вам нужно использовать templateRootPaths.0 вместо templateRootPath:

module.tx_extension { 
    view { 
     templateRootPaths.0 = EXT:extension/Resources/Private/Backend/Templates/ 
     partialRootPaths.0 = EXT:extension/Resources/Private/Backend/Partials/ 
     layoutRootPaths.0 = EXT:extension/Resources/Private/Backend/Layouts/ 
    } 
} 
Смежные вопросы