Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
J'aimerais intégrer dhtmlx scheduler (que je vous conseille au passage) dans mon site web. Pour cela j'ai besoin de creer un flux XML... Rien de bien compliqué normalement. Mais la, si.
Je ne comprends pas pourquoi.
Voici mon action :
public function dataAction() { $this->_helper->layout()->disableLayout(); $this->_helper->viewRenderer->setNoRender(true); header('Content-Type: application/xhtml+xml; charset:utf-8'); $r = "\n"; $xml = '<?xml version="1.0" encoding="utf-8" ?>' . $r; $xml .= '<data>' . $r; $xml .= '<event id="2">' . $r; $xml .= '<start_date>2009-05-24 00:00:00</start_date>' . $r; $xml .= '<end_date>2009-06-08 00:00:00</end_date>' . $r; $xml .= '<text><![CDATA[French Open]]></text>' . $r; $xml .= '<details><![CDATA[Philippe-Chatrier Court Paris, FRA]]></details>' . $r; $xml .= '</event>' . $r; $xml .= '<event id="3">' . $r; $xml .= '<start_date>2009-06-10 00:00:00</start_date>' . $r; $xml .= '<end_date>2009-06-13 00:00:00</end_date>' . $r; $xml .= '<text><![CDATA[Aegon Championship]]></text>' . $r; $xml .= '<details><![CDATA[The Queens Club London, ENG]]></details>' . $r; $xml .= '</event>' . $r; $xml .= '</data>' . $r; $this->getResponse()->setBody($xml); }
J'ai tout essayer....
$this->getResponse()->clearRawHeaders(); $this->getResponse()->setHeader('Content-type', 'application/xhtml+xml; charset: UTF-8', true); //J'ai essayé dans l'action, en pre et post disptach
public function init() { $contextSwitch = $this->_helper->getHelper('contextSwitch'); $contextSwitch->addActionContext('data', 'xml') ->initContext(); } //J'ai essayer dans l'init, et dans l'action
header('Content-Type: application/xhtml+xml; charset:utf-8');
J'ai essayer pour chaque cas : application/xhtml+xml , application/xml, text/xml .....
Rien a faire, ma reponse est toujours de type text/html. après debug, je vois que Zend_Controller_Reponse_Abstract::setHeader('text/html') est appelé après mon postDispatch....
Quelqu'un a une idée ?
Dernière modification par nuranto (26-08-2009 09:51:18)
Hors ligne
Tu as essayé de modifié l'header via le context switch ??
C'est ce que je fais pour générer des images moi et placé des entetes de type images/png
Hors ligne
nuranto a écrit:
Code:
public function init() { $contextSwitch = $this->_helper->getHelper('contextSwitch'); $contextSwitch->addActionContext('data', 'xml') ->initContext(); } //J'ai essayer dans l'init, et dans l'action
Oui, comme cité ci-dessus... Mais peut-etre je m'y prends mal ?
Hors ligne
Hello,
Pour activer le contextswitch, il faut passer le format :
- action normale : http://monsite.fr/module/controller/action
- action xml : http://monsite.fr/module/controller/action/format/xml
A+
Hors ligne
Oui, j'ai bien passé le format, mais rien n'y fait....
Hors ligne
Voila comme je fais pour une image :
$contextSwitch->addContext('png', array( 'suffix' => 'png', 'headers' => array('Content-Type' => 'image/png'), )) ->addActionContext('image', 'png') ->initContext();
Le lien est appelé biensur avec /format/png pour que le context s'active
Hors ligne
<?php class Module_Folder_ControllerController extends Zend_Controller_Action { public function init() { $contextSwitch = $this->_helper->getHelper('contextSwitch'); $contextSwitch->addActionContext('data', 'xml') ->initContext(); } public function dataAction() { $r = "\n"; $xml = '<?xml version="1.0" encoding="UTF-8"?>' . $r; $xml .= '<data></data>'; echo $xml; } }
Je ne pense pas pouvoir faire plus simple...
mais http://localhost:8888/mysite/module/folder_controller/data/format/xml me renvoit toujours une page de type text/html .......
Quelle perte de temps pour un truc de m... :'(
(ZF1.8.4)
Hors ligne
ZF1.9.2 -> idem
Hors ligne
Comme je m'en doutais, une erreur a la c**
J'avais un setHeader dans mon bootstrap, qui ne servait a rien...
Sorry for wasting your time.. ;'(
Le contextswitch marche très bien...
Hors ligne