2013-05-10 5 views
0

I запомненные А модуль и подмодуль в расширении Extbase с этим общим кодом и, конечно, это работает:Установка порядка TYPO3 BE Модуль

/** Myext modules group */ 
Tx_Extbase_Utility_Extension::registerModule($_EXTKEY, 'myext', '', '' 
    ,array(), 
    array(
     'icon' => 'EXT:' . $_EXTKEY .'/ext_icon.gif', 
     'access' => 'user,group', 
     'labels' => 'LLL:EXT:' . $_EXTKEY . '/Resources/Private/Language/locallang_myext.xml', 
    ) 
); 

/** Myext items list mod */ 
Tx_Extbase_Utility_Extension::registerModule($_EXTKEY, 'myext', 'itemslist','', 
    array('Item' => 'list',), 
    array(
     'icon' => 'EXT:' . $_EXTKEY . '/Resources/Public/Icons/mod_items.gif', 
     'access' => 'user,group', 
     'labels' => 'LLL:EXT:' . $_EXTKEY . '/Resources/Private/Language/locallang_myext_items.xml', 
    ) 
); 

Моя проблема заключается в том, что я не могу изменить его порядок в во всяком случае, он всегда отображается в конце левого столбца (после Справка раздел). 4-й параметр метода registerModule является положением, по-видимому, он не влияет на основной модуль, только подмодули.

Так как я могу разместить Myext сразу после web? в таком случае?

Я работаю на TYPO3 версии .: 4.7

ответ

1

Извините, я пропустил вас. Вы имеете в виду свою собственную категорию, которую вы хотите установить в указанной позиции.

Там нет официального пути, но вы можете ручной сброс заказа с помощью следующего кода:

// add module before 'File' 
if (!isset($TBE_MODULES['yourExtensionCategory'])) { 
    $temp_TBE_MODULES = array(); 
    foreach($TBE_MODULES as $key => $val) { 
     if ($key == 'file') { 
      $temp_TBE_MODULES['yourExtensionCategory'] = ''; 
      $temp_TBE_MODULES[$key] = $val; 
     } else { 
      $temp_TBE_MODULES[$key] = $val; 
     } 
    } 

    $TBE_MODULES = $temp_TBE_MODULES; 
} 
+0

Это именно то, что я сделал на основе DAM коде :) Во всяком случае, спасибо за подтверждение! – biesior

0

После кода установит связь модуля в указанное положение:

Tx_Extbase_Utility_Extension::registerModule(
    $_EXTKEY, 
    'web', // Make module a submodule of 'web' 
    'yourmodulem1', // Submodule key 
    'before:web_ViewpageView', // Position 
    array(
     'Controller' => 'action1, action2' 
    ), 
    array(
     'access' => 'user,group', 
     'icon' => 'EXT:' . $_EXTKEY . '/Resources/Public/Icons/icon.png', 
     'labels' => 'LLL:EXT:' . $_EXTKEY . '/Resources/Private/Language/locallang_m1.xml', 
    ) 
); 

Вы установили второй аргумент «mainModuleName» неправильно, это категория, к которой принадлежит ваш модуль. Допустимые значения: web, files, user, tools, help. Четвертый аргумент «позиция» может иметь следующие значения: after:module_id, before:module_id или top. Пустое значение bottom и по умолчанию. Чтобы получить идентификатор модуля, просто просмотрите элемент ссылки в меню с помощью вашего любимого инструмента веб-разработчика, атрибут id= описывает модуль_ид.

Heres документация registerModule:

/** 
* Registers an Extbase module (main or sub) to the backend interface. 
* FOR USE IN ext_tables.php FILES 
* 
* @param string $extensionName The extension name (in UpperCamelCase) or the extension key (in lower_underscore) 
* @param string $mainModuleName The main module key, $sub is the submodule key. So $main would be an index in the $TBE_MODULES array and $sub could be an element in the lists there. If $main is not set a blank $extensionName module is created 
* @param string $subModuleName The submodule key. If $sub is not set a blank $main module is created 
* @param string $position This can be used to set the position of the $sub module within the list of existing submodules for the main module. $position has this syntax: [cmd]:[submodule-key]. cmd can be "after", "before" or "top" (or blank which is default). If "after"/"before" then submodule will be inserted after/before the existing submodule with [submodule-key] if found. If not found, the bottom of list. If "top" the module is inserted in the top of the submodule list. 
* @param array $controllerActions is an array of allowed combinations of controller and action stored in an array (controller name as key and a comma separated list of action names as value, the first controller and its first action is chosen as default) 
* @param array $moduleConfiguration The configuration options of the module (icon, locallang.xml file) 
* @return void 
*/ 

Пожалуйста, обратите внимание: если вы TemplaVoila установлен, «страница» -Модуль не имеет Ид «страницы», то есть «web_txtemplavoilaM1», потому что TemplaVoila заменяет весь модуль страницы.

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