2016-06-29 6 views

ответ

4

В TYPO3 версии 7.6 новые мастера не добавляются так:

  1. Внутри вашего расширения создать каталог Configuration/Backend/
  2. В новом каталоге создать файл Routes.php, он будет найден автоматически, не упоминая in ext_localconf.php или ext_tables.php не требуется. Если вам все еще нужен Ajax, вы можете добавить файл AjaxRoutes.php в ту же папку.
  3. Содержание для Routes.php:

    return array(
        'my_wizard_element' => array(
         'path' => '/wizard/tx_geoselecotor/geo_selector_wizard', 
         'target' => \Path\To\your\class\WizardGeoSelector::class . '::WizardAction' 
        ), 
    ); 
    

Содержимое для AjaxRoutes.php

<?php 

/** 
    * Definitions for routes provided by EXT:backend 
    * Contains all AJAX-based routes for entry points 
    * 
    * Currently the "access" property is only used so no token creation + validation is made 
    * but will be extended further. 
    */ 
return array('my_ajax_element' => array(
     'path' => 'tx_geoselecotor/my_ajax_route', 
     'target' => \Path\To\your\class\MyAjaxController::class .'::myAjaxFunction' 
)); 

Если вы не уверены в обозначении можно сравнить с существующими записями в глобальных переменных в Backend:

Перейдите к системе -> Конфигурация -> Backend Маршруты

Маршрут путей обрабатывается различными, Ajax это всегда «Аякса» которые начинаются, так что вы никогда не добавить его в путь, иначе это в два раза в пути. Для общего маршрута изменений относительно определенной строки нет.

  1. Теперь мастер можно использовать, и даже он никогда не должен определяться в ext_tables.PHP это должно быть упомянуто здесь из любой таблицы поля в конфигурационной области (модуль [имя]):

    'table_field_for_wizard' => array(
        'label' => 'LLL:EXT:my_extension/Resources/Private/Language/locallang.xml:table_name.tx_myextension_wizard', 
        'config' => array (
         'type' => 'user', 
         'userFunc' => 'Path/to/class/without/wizard->renderForm', 
         'wizards' => array(
          'my_wizard' => array(
          'type' => 'popup', 
          'title' => 'MyTitle', 
          'JSopenParams' => 'height=700,width=780,status=0,menubar=0,scrollbars=1', 
          'icon' => 'EXT:' . $_EXTKEY . '/Resources/Public/img/link_popup.gif', 
          'module' => array(
           'name' => 'my_wizard_element', 
           'urlParameters' => array(
           'mode' => 'wizard', 
           'ajax' => '0', 
           'any' => '... parameters you need' 
          ), 
          ), 
         ), 
          '_VALIGN' => 'middle', 
          '_PADDING' => '4', 
         ), 
         # Optional 
         #'softref'=>'something', 
        ), 
    ), 
    

В UserFunc Path/to/class/without/wizard->renderForm вы, чтобы создать кнопку, которая линкующая мастер и onClick мастер откроется с маршрутом, определенным вами в Routes.php и дополнительными параметрами urlParameters.

В настоящее время я не нашел весь этот предмет, объясненный в основной документации.

Edit:
Подробная информация о маршрутизации можно найти здесь: Routing

Процесс визуализации можно найти здесь: Rendering/NodeFactory Вы, вероятно, следует прочитать также внешний контекст связанного пункта.

3

В TCA добавить мастера, как следует:

'module' => array(
'name' => 'wizard_geo_selector', 
), 

В ext_tables.php зарегистрировать мастера.

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addModulePath(
     'wizard_geo_selector', 
     \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath($_EXTKEY) . 'Modules/Wizards/Yourwizardname/' 
); 

Имейте в виду, что это не рекомендуется, так как Typo3 7 и удалены в TYPO3 8.So вы можете использовать этот метод Шифрование до Typo3 7.For Typo3 8 действительно используют метод, указанный David ниже.

1

ответ Рики действительно не работает больше, так как addModulePath IST устарела начиная с версии 7.

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

Единственное, что держит мастер идя снова это:

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addModule('wizard','pbsurvey_answers',"",\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath($_EXTKEY).'wizard/'); 

Но когда вы добавляете этот модуль появляется как новая точка в вашем TYPO3 интерфейсе.

+0

дает мне такую ​​же ошибку «Модуль appWizard не настроен». –

+2

Ответ Дэвида работает как шарм, это способ сделать это. – CDRO

+0

вы можете объяснить вам полный код, например, конфигурацию tca. –

 Смежные вопросы

  • Нет связанных вопросов^_^