2 Stimmen

Fataler Fehler: Aufruf einer undefinierten Methode JDocumentRaw::addCustomTag() in joomla 2.5

Ich habe einen Beispielcode: in default.php:

<?php
JHTML::_('behavior.mootools'); /* to load mootools */
$ajax = "
/* <![CDATA[ */
window.addEvent('domready', function() {
    $('start_ajax').addEvent('click', function(e) {
        e.stop(); 
        var url = 'index.php?option=com_xxx&controller=xxx&task=updateAjax&format=raw';
        var x = new Request({
            url: url, 
            method: 'post', 
            onSuccess: function(responseText){
                document.getElementById('ajax_container').innerHTML = responseText;
            }
        }).send(); 
    });
})
/* ]]> */
" ;
$doc = &JFactory::getDocument();
$doc->addScriptDeclaration($ajax);
?>

Und Controller von default.php ich mit Code:

function updateAjax() {
   echo date('Y-m-d D H:i:s');
}

Wenn ich den Code ausführe, erscheint der Fehler undefined method JDocumentRaw::addCustomTag() wie kann man das beheben?

3voto

Hai Truong IT Punkte 3975

Ich denke, Sie falsch in Aufruf Jquery mit für Ajax:

$document =& JFactory::getDocument();
$document->addCustomTag("call jquery library or script other");

Und du versuchst es:

if($document->getType() != 'raw'){
   $document->addCustomTag("call jquery library or script other"); 
}

3voto

Das liegt daran, dass Sie den "Format"-Parameter auf "raw" setzen, normalerweise durch Hinzufügen von &format=raw am Ende der URL, die Sie für den Zugriff auf Ihre Komponente verwenden. Dies veranlasst Joomla, den JDocumentRaw-Renderer anstelle des Standard-JDocument-Renderers zu verwenden. Sie können das Problem lösen, indem Sie eine der folgenden Optionen wählen (je nachdem, welche besser geeignet ist):

  • Entfernen Sie das "format=raw" aus der URL der verlinkten Seite und verwenden Sie eine alternative Methode, um Ihre Seite wie erwartet anzuzeigen, z. B. indem Sie tmpl=component oder template=system zur URL hinzufügen

  • Hinzufügen einer Prüfung, ob "Format" auf "raw" eingestellt ist; in diesem Fall werden die Skripte nicht hinzugefügt

  • Erweitern Sie die Klasse JDocumentRaw um Ihre eigene Klasse, die Ihre eigenen Methoden zum Hinzufügen von Skripten implementiert, und verwenden Sie format=yourRendererName anstelle von format=raw

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X