Page 1 of 1

XML Ausgabe

Posted: Sun 6. Mar 2016, 23:45
by thoblerone
Hallo,

jetzt wo das Xampp läuft muss ich leider die nächste Frage stellen: ich würde gerne einen Artikelinhalt als strukturiertes XML ausgeben, das im Workflow weiter verarbeitet wird. Lässt sich da phpwcms zu überreden? Ich dachte da an entsprechende Layouts und Templates die im Zusammenspiel alles aufarbeiten. Aber ich glaube da spielt mir das System einen streich, denn den HTML Header vor dem {CONTENT} werde ich nicht los, oder?

LG
Thomas

Re: XML Ausgabe

Posted: Mon 7. Mar 2016, 05:57
by Oliver Georgi

Re: XML Ausgabe

Posted: Tue 8. Mar 2016, 16:35
by thoblerone
Boah ey.

Ein Inhaltsschwerer Verweis, aber ich kann den Weg ziemlich gut sehen. Erst einmal vielen Dank. Wenn ich es stehen habe, gibt es hier bzw. im HowTo etwas zu erzählen.

Re: XML Ausgabe

Posted: Tue 8. Mar 2016, 20:56
by juergen
thoblerone wrote:Boah ey.

Ein Inhaltsschwerer Verweis, aber ich kann den Weg ziemlich gut sehen. Erst einmal vielen Dank. Wenn ich es stehen habe, gibt es hier bzw. im HowTo etwas zu erzählen.
Wo alle nach der Anleitung schreien ... in der Schweiz versteht man eben einfach besser :)

Super Ansage.

Da kann die <--JS Geschichte auch dazu .. :)

Re: XML Ausgabe

Posted: Tue 8. Mar 2016, 22:32
by geckse
Habs mal eben getestet, weil auch mir zmd. "outputaction=F-" neu war.
Fazit: Endgeil.

Hier euer kleines HowTo wie man ein Artikel als XML ausgeben kann.
---
1. /frontend_init/xmloutput.php

Code: Select all

<?php
// ----------------------------------------------------------------
// obligate check for phpwcms constants
if (!defined('PHPWCMS_ROOT')) {
   die("You Cannot Access This Script Directly, Have a Nice Day."); }
// ----------------------------------------------------------------
// Outputaction am besten in kombination mit der ARTICLEXML Sektion, da sonst xml fehler
$phpwcms['output_function_filter'] = array('articlexml');
function articlexml($text='') {
   header('Content-Type: application/xml; charset=utf-8');
   return trim($text);
}
?>
2. Artikeltemplate mit der ARTIKELXML-Sektion.
(Irgendwo im Artikel Template)

Code: Select all

<!--ARTICLEXML_START//--> 
		<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
		<article>
			<id>{ARTICLE_ID}</id>
			<title>{TITLE}</title>
			<subtitle>{SUB}</subtitle>
			<image>{IMAGE_ID}</image>
			<summary>[PHP]echo html_entities('{SUMMARY}');[/PHP]</summary>
		</article>
	<!--ARTICLEXML_END//--> 	
Man beachte nochmal das HTML im XML in reiner Form Fehler auslöst, daher der PHP-Inliner um das HTML los zu werden.

3. /frontend_render/xmloutput_fix.php ---> Wegrendern der ARTICLEXML - Sektion für das normale Frontend.

Code: Select all

<?php
// ----------------------------------------------------------------
// obligate check for phpwcms constants
if (!defined('PHPWCMS_ROOT')) {
   die("You Cannot Access This Script Directly, Have a Nice Day."); }
// ----------------------------------------------------------------

// Keine Output action? Dann XML aus Quelltext entfernen. 
if(!$phpwcms['output_action']){
	$content['all'] = replace_tmpl_section('ARTICLEXML',$content['all'],'');
}
?>
Genau damit ist alles möglich, was man brauch um den Artikel als XML auszugeben.
Usage: Folgende Linkaction(geht natürlich auch mit index.php?alias&...) index.php?id=1&phpwcms_output_action=F-articlexml--S-ARTICLEXML

Da hat og echt was feines ermöglicht. Damit könnte man fast wie eine API zB. Content für eine App verwalten: Und zwar mit phpwcms.
Immer wieder schön wie sehr phpwcms durch solche Möglichkeiten besticht.

Re: XML Ausgabe

Posted: Wed 9. Mar 2016, 00:03
by thoblerone
Endgeil ist die richtige Bezeichnung.

Copy & Paste in mein Installation hat mich dem Ziel sehr viel näher gebracht. Ich strebe hier tatsächlich die Contentverwaltung einer App zur Website an. Gut geraten :)

Leider bekomme ich deine PHP Einschübe nicht ans laufen, das war doch was sooo einfaches. In meiner config habe ich bereits:

Code: Select all

$phpwcms['allow_ext_init'] = 1;
$phpwcms['allow_cntPHP_rt'] = 1;
Was fehlt denn noch?

Re: XML Ausgabe

Posted: Wed 9. Mar 2016, 00:11
by geckse
include/config/conf.inc.php
$phpwcms['enable_inline_php'] = true; // disable [PHP] {PHP…} … by default

Könnte OT werden, aber es interessiert mich dennoch: Welches Framework für die App benutzt du? oder schreibst du Nativ?

Re: XML Ausgabe

Posted: Wed 9. Mar 2016, 05:55
by Oliver Georgi
Eigentlich sollte auch <![CDATA[ … ]]> gehen

Code: Select all

<!--ARTICLEXML_START//-->
      <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
      <article>
         <id>{ARTICLE_ID}</id>
         <title>{TITLE}</title>
         <subtitle>{SUB}</subtitle>
         <image>{IMAGE_ID}</image>
         <summary><![CDATA[{SUMMARY}]]></summary>
      </article>
<!--ARTICLEXML_END//-->
Und da es möglich ist, auch den zurückgelieferten Inhalt noch mal über eine Funktion zu schleusen, ließe sich auch inline PHP vermeiden. Ansonsten ruhig auf die interne Funktion html() (quasi phpwcms htmlspecialchars()) anstatt html_entities() setzen, das reicht.

Re: XML Ausgabe

Posted: Wed 9. Mar 2016, 10:57
by geckse
Hatte zuerst html() verwendet, dann hat mir aber die HTML ententität "&nbsp;" das XML zerbichst..

Re: XML Ausgabe

Posted: Thu 10. Mar 2016, 00:08
by thoblerone
Hallo Geckse,

zu meiner Schande muss ich gestehen, vom App Framework habe ich keine Kenntnisse; das geschieht in Kooperation mit jemanden, der sich besser auskennt. Ich hab bisher nur kapiert, das im Prinzip ein App-Baukasten zum Einsatz kommt.

Mein Part ist es einen Weg zu finden, mit dem man einfach innerhalb von phpwcms inhalt verwalten kann, der dann für die App tauglich ist. Weil ich u.a. zu jeder Meldung einen Sichtbarkeitszeitraum und ein Sortierdatum habe, war ganz logisch das ich auf der Backend-Seite im News-Modul unterwegs bin.

Das Gesamtkonzept ist bestimmt für Andere auch spannend aber im Moment tatsächlich ein wenig Offtopic. Lass uns das ggf. per PN/Offline weiter diskutieren. Wenn die Geschichte vorzeigbar ist, stelle ich das System im Showcase vor.

Re: XML Ausgabe

Posted: Thu 10. Mar 2016, 05:35
by Oliver Georgi
geckse wrote:Hatte zuerst html() verwendet, dann hat mir aber die HTML ententität "&nbsp;" das XML zerbichst..
muss ich noch mal anschauen, denke hat damit zu tun, dass ich an der Stelle doppeltes encodieren verbiete