2017-11-30 10 views
0

Typo3をバージョン4からバージョン7にアップグレードしました.Ajaxエンドポイントがもう機能していません。文書化されていないtyposcriptでの単純なajaxエンドポイント定義の使用の変更? リクエストURLが今異なっている可能性がありますか?Typo3をバージョン4.xから7.xにアップグレードした後、Ajaxエンドポイントがもう機能しない

元の定義は次のようになります。コントローラは簡易版で、このように見ている

tx_courses_ajax = PAGE 
tx_courses_ajax { 
    typeNum = 1337 
    10 = USER 
    10 { 
     #userFunc = tx_extbase_core_bootstrap->run 
     userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run 
     extensionName = courses 
     pluginName = calendar 
     switchableControllerActions { 
      Seminars { 
       1 = getEvent 
       2 = calendar 
       3 = getEvents 
      } 
     } 
     settings =< plugin.tx_courses.settings 
     persistence =< plugin.tx_courses.persistence 
     view =< plugin.tx_courses.view 
    } 
    config { 
     disableAllHeaderCode = 1 
     xhtml_cleaning = 0 
     admPanel = 0 
     debug = 1 
     no_cache = 1 
     tx_realurl_enable = 0 
     additionalHeaders = Content-type: application/json 
    } 

    10 < tt_content.list.20.tx_courses_ajax 
} 

class Tx_Kurse_Controller_SeminareController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController { 
    public function calendarAction() { 
     $calenderCgf = '...'; 
     file_put_contents($docroot.'uploads/jquery.fullcalendar-mini.js', $calenderCgf); 
    } 

    /** 
    * @return void 
    */ 
    public function getEventAction() { 
     $requestParams = $this->request->getArguments(); 

     print_r($requestParams); 
    } 

    /** 
    * @param string $start Y-M-D H:i:s 
    * @param string $end Y-M-D H:i:s 
    * 
    * @return string $seminarText 
    */ 
    public function getEventsAction($start, $end) { 
     $start = new DateTime($start); 
     $end = new DateTime($end); 
     $seminars = $this->seminarsRepository->findEventsInPeriod($start, $end); 
     $requestParams = $this->request->getArguments(); 

     print_r($requestParams); 
    } 

    /** 
    * @param int $seminar 
    * @return void 
    */ 
    public function bindingAction($seminar) { 
     $seminars = $this->seminareRepository->findByUid($seminar); 
     $this->view->assign('seminars', $seminars); 
    } 
} 

オリジナルの要求URLは次のとおりです。

インデックス。 php?id = 176 & no_cache = 1 & tx_courses_calendar [controller] =セミナー& tx_courses_calendar [作用] = & tx_courses_calendar結合[スタート] = 2017年1月1日%2000:00:00 & tx_courses_calendar [END] = 2017年12月30日%2023:59:59 &タイプ= 1337

Iはデバッグモードで要求結果としてのみを取得する:

<!-- Parsetime: 42ms --> 

だから、TypoScriptの定義が働いているようだが、何かが間違っているようです:(

UPDATE:

:私は解決策を見つけました
10 < tt_content.list.20.tx_courses_ajax 

バージョン4と同じ動作をしていないため削除する必要があります(それはもはや必要ではありません)。その後、エラーメッセージが返されました。メッセージは、このコントローラーでは希望のアクションが利用できないと言っています。 その後、私はもっと深く掘り下げて、Extension-Nameを最初の文字の大文字で構成する必要があります。それ以外の場合は機能しません。

+0

私は自分で解決策を見つけ、私の最初の投稿の最後に解決策を追加しました:) – oVi

答えて

0

ちょうど推測すると、vendorNameが設定に欠落している可能性があります。

+0

私はこの属性を追加しましたが、それは問題ではありません: – oVi

関連する問題