Hallo Zusammen,

Ich bin daran einen Ajax-Handler zu implementieren. Es gibt bekanntlich diverse Wege um mit Ajax Requests umzugehen. Ich habe mich dazu entschieden mit pageTypes zu arbeiten. Ruft man eine Seite im Browser auf wird diese mit PageType 0 geladen. Drückt man einen Link in der Navigation wird die nächste Seite via Ajax mit PageType 1 geladen.
Lädt man eine Seite mit PageType 1 bereitet TYPO3 die Seite für JSON vor.

So weit so gut:
[code]
page = PAGE
page {

        typeNum = 0

10 = FLUIDTEMPLATE 10 { file.cObject = CASE file.cObject {
           key.field = backend_layout
           key.ifEmpty.data = levelfield: -2, backend_layout_next_level, slide
default = TEXT
           default.value = {$filepaths.templates}Basic.html
1 = TEXT
           1.value = {$filepaths.templates}Home.html
2 = TEXT
           2.value = {$filepaths.templates}Basic.html
3 = TEXT
           3.value = {$filepaths.templates}Overlay.html
4 = TEXT
           4.value = {$filepaths.templates}Modal.html
5 = TEXT
           5.value = {$filepaths.templates}Dashboard.html
6 = TEXT
           6.value = {$filepaths.templates}OverlayForm.html


       }
partialRootPath = {$filepaths.partials}Default/
       layoutRootPath = {$filepaths.layouts}Default/
   }
}

// ajax request contact form
ajax = PAGE
ajax {
   typeNum = 1
   config {
       disableAllHeaderCode = 1
       xhtml_cleaning = 0
       admPanel = 0
       additionalHeaders = Content-type: application/json
       no_cache = 1
   }

   10 < page.10
10 { partialRootPath = {$filepaths.partials}Ajax/
       layoutRootPath = {$filepaths.layouts}Ajax/
   }

}

Mittels Viewhelper leite ich den Content durch eine json_encode funktion.

{namespace g=VENDOR\UsermanagerPt\ViewHelpers}
<f:layout name="OverlayForm" />
<f:section name="Main"> <g:jsonResponse>
                <f:cObject typoscriptObjectPath="lib.register" />
        </g:jsonResponse>
</f:section>

/**
         * @param boolean $appendContent append content
         * @param boolean $submitForm submit form
         * @return string
         */
        public function render($appendContent = false, $submitForm = false) {
                $html = $this->renderChildren();

                return json_encode(array(
                'success' => true,
                'content' => $html
            ));

Nun zum Problem. Normale Content Elemente werden sauber mit json_encode 
gerendert. Jedoch wird sämtlicher Content aus einer Extension NICHT verändert. 
Mache ich einen Denkfehler?

[code]


_______________________________________________
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Antwort per Email an