2017-09-28 7 views
-1

조치를 구현 : 내 ext_localconf.php에서TYPO3 추가하고 뉴스 확장 내 구성 TCA 오버라이드 (override) 나는이 같은 필드를 선택하는 옵션을 추가 tx_news_domain_model.php에서

$GLOBALS['TYPO3_CONF_VARS']['EXT']['news']['switchableControllerActions']['newItems']['News->gallery'] = 'Gallery view'; 

$GLOBALS['TYPO3_CONF_VARS']['EXT']['news']['classes']['Controller/NewsController'][] = 'news_extender'; 

을 내 확장에

namespace Vendor\NewsExtender\Controller\NewsController; 

class NewsController extends \GeorgRinger\News\Controller\NewsContoller { 

    public function galleryAction() 
    { 
    ... 
    } 
} 

는 오류가 발생합니다 : 액션 "갤러리 액션 "컨트롤러에 존재하지 않습니다"GeorgRinger \ News \ Controller \ NewsController " 그래서 내 추측은 실제 NewsController 무시 무시합니다. 내가하는 것처럼 컨트롤러에 새로운 동작을 추가 할 수 있다면 내 질문에 (['Controller/NewsController'][])? 그렇지 않은 경우, 다른 방법으로 달성 할 수 있습니까? 그렇다면 예제를 제공하십시오.

답변

0

정확하게 수정했는지 모르겠지만 연구 결과에 따르면 컨트롤러에 대한 내 경로 잘못해서, 그것을 바꾼 후에 나는 BE에서 캐시를 비우고 아무런 결과없이 확장 프로그램을 재설치하는 데 더 많은 시간을 소비합니다. 내 NewsController에 라인 function listAction() {}을 추가 한 후 나는 결국 오류가 발생했습니다 Fatal error: Cannot redeclare GeorgRinger\News\Controller\NewsController::listAction() in D:\live_system\typo3\typo3_src\typo3temp\Cache\Code\news\tx_news_controller_newscontroller.php on line 618. Typo3temp/Cache을 수동으로 삭제하고 내 컨트롤러에서 listAction을 삭제하면 정상적으로 작동합니다.

0

첫 번째 코드는 ext_localconf 파일로 이동해야합니다. 예를 들어 github.com에 전체 코드를 올리면 일반적으로 모양이 좋아 보입니다.

+0

답변 해 주셔서 감사합니다. ** ext_emconf.php ** 파일과'if (! defined ('TYPO3_MODE')) die ('Access denied.') '부분을 제외하고 더 이상의 코드는 없습니다. 첫 번째 부분의 위치를 ​​ext_localconf로 바꿨습니다. 네임 스페이스를 'Vendor \ NewsExtender \ Controller \ NewsController'에서'Vendor \ NewsExtender \ Controller'로 변경하고 확장 키를 'newsextender'로 변경했습니다. –