Neu io.php - Response Header ändern

  • Wichtiger Hinweis Liebe Kunden, solltet Ihr den DATEV Rechnungsdatenservice 2.0 nutzen, dann müsst Ihr bis zum 30.06.2024 JTL-Wawi 1.9 installieren. Danach wird die Schnittstelle für ältere Versionen nicht mehr unterstützt.

Kreidetafel.de

Aktives Mitglied
21. Januar 2013
78
0
Hallo !

Ich nutze den Hook 213 [HOOK_IO_HANDLE_REQUEST] um Daten dynamisch nachzuladen.

Das klappt soweit auch alles, ich habe es allerdings nicht geschafft den response Header zu setzen. Ich vermute mal die kommen aus der class.JTL- Shop.IO.php.
Dadurch kann ich die Daten bisher nicht cachen oder den MIME-Type beeinflussen.
Kann ich die Header über Plugin steuern, z.B. über IOResponse Objekt bzw. welche Möglichkeiten habe ich, ausser den Shop-Core uzu ändern?

PHP
PHP:
$io = $args_arr['io'];
$rq = $args_arr['request'];

$io->register("test");

function test($test) {   

    global $smarty;   
    
    $pluginPath = $smarty->getTemplateVars('somePlugin')->cFrontendPfad;
    
    $bulk .= file_get_contents($pluginPath . '\some.js');   
    $bulk .= ....
    
    return $bulk;
}

class.JTL-Shop.IO.php

PHP:
  header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
  header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
  header('Cache-Control: no-cache, must-revalidate');
  header('Pragma: no-cache');
  header('Content-type: application/json');

Danke im Vorraus für Antworten
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
6.760
1.628
Berlin
Lass mal das register weg.

Code:
if (! isset ( $_REQUEST['io'] ) || $_REQUEST['io'] != 'meinePluginKennung') return;
header('Content-type: application/json');
echo json_encode(array("hans" => "kanns", "klaus" => "nicht"));
exit;
 

Kreidetafel.de

Aktives Mitglied
21. Januar 2013
78
0
Ok Danke !

PHP:
exit();

umgeht den ob_end_clean(); in der io.php, dann geht es tatsächlich auch so.

So siehts jetzt am Ende aus bei mir :
PHP:
$io = $args_arr['io'];
$io->register("test");

function test($test) {  
    global $smarty;   
 
    $pluginPath = $smarty->getTemplateVars('somePlugin')->cFrontendPfad;
  
    $bulk .= file_get_contents($pluginPath . '\some.js');  
    $bulk .= ....
  
    setHeaders();
    echo ($bulk);
    exit();
}
 

Kreidetafel.de

Aktives Mitglied
21. Januar 2013
78
0
Zuletzt bearbeitet: