Vlastní layout pro RDF: zobrazuje se html, body a head
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Blaueminence
- Člen | 31
Ahoj,
pokouším se při requestu application/rdf+xml vrátit přímo stránku v tomto formátu bez čehokoli dalšího. Mám vlastní template
{contentType application/rdf+xml}
<?xml version="1.0" encoding="utf-8"?>
<rdf:RDF
xmlns:foaf="http://xmlns.com/foaf/0.1/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdfsyntax-ns#">
{block content}
</rdf:rdf>
přičemž ten contentType mi hází Overridden block content with content type XML by incompatible type HTML., ale když ho dám pryč a mám šablonu stránky (zatím bude jen jedna taková):
{layout '@rdfLayout.latte'}
{block content}
Kam jsem přesměroval odsud:
namespace App\FrontModule\Presenters;
class BasePresenter extends \App\Presenters\BasePresenter {
/**
* @var \Nette\Http\Request
* @inject
*/
public $request;
public function startup() {
parent::startup();
$accept = $this->request->headers['accept'];
if (strpos($accept, 'rdf')) {
$this->redirect('LinkedData:');
}
}
pak mi stránka vypisuje toto:
<html><head>
...
<body>
<rdf:rdf xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdfsyntax-ns#">
<!-- Tracy Debug Bar -->
...
</rdf:rdf>
</body>
</html>
a já samozřejmě chci vypsat jen to <rdf>. Dá se s tím něco dělat, aniž bych musel vymýšlet různé FileResponse a loadovat to latte manuálně?