XML Ausgabe

Hier bekommst Du deutschsprachigen Support. Keine Fehlermeldungen oder Erweiterungswünsche bitte!
Post Reply
thoblerone
Posts: 104
Joined: Fri 27. Jan 2006, 23:34
Location: Essen, Germany
Contact:

XML Ausgabe

Post by thoblerone » Sun 6. Mar 2016, 23:45

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

User avatar
Oliver Georgi
Site Admin
Posts: 9578
Joined: Fri 3. Oct 2003, 22:22
Location: Moscow, Russia
Contact:

Re: XML Ausgabe

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

Oliver Georgi | phpwcms Developer | GitHub | LinkedIn | Систрон

thoblerone
Posts: 104
Joined: Fri 27. Jan 2006, 23:34
Location: Essen, Germany
Contact:

Re: XML Ausgabe

Post by thoblerone » Tue 8. Mar 2016, 16:35

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.

User avatar
juergen
Moderator
Posts: 4553
Joined: Mon 10. Jan 2005, 18:10
Location: Weinheim
Contact:

Re: XML Ausgabe

Post by juergen » Tue 8. Mar 2016, 20:56

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 .. :)

geckse
Posts: 25
Joined: Thu 10. Sep 2015, 18:56

Re: XML Ausgabe

Post by geckse » Tue 8. Mar 2016, 22:32

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.
Last edited by geckse on Wed 9. Mar 2016, 00:19, edited 1 time in total.

thoblerone
Posts: 104
Joined: Fri 27. Jan 2006, 23:34
Location: Essen, Germany
Contact:

Re: XML Ausgabe

Post by thoblerone » Wed 9. Mar 2016, 00:03

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?

geckse
Posts: 25
Joined: Thu 10. Sep 2015, 18:56

Re: XML Ausgabe

Post by geckse » Wed 9. Mar 2016, 00:11

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?

User avatar
Oliver Georgi
Site Admin
Posts: 9578
Joined: Fri 3. Oct 2003, 22:22
Location: Moscow, Russia
Contact:

Re: XML Ausgabe

Post by Oliver Georgi » Wed 9. Mar 2016, 05:55

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.
Oliver Georgi | phpwcms Developer | GitHub | LinkedIn | Систрон

geckse
Posts: 25
Joined: Thu 10. Sep 2015, 18:56

Re: XML Ausgabe

Post by geckse » Wed 9. Mar 2016, 10:57

Hatte zuerst html() verwendet, dann hat mir aber die HTML ententität "&nbsp;" das XML zerbichst..

thoblerone
Posts: 104
Joined: Fri 27. Jan 2006, 23:34
Location: Essen, Germany
Contact:

Re: XML Ausgabe

Post by thoblerone » Thu 10. Mar 2016, 00:08

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.

User avatar
Oliver Georgi
Site Admin
Posts: 9578
Joined: Fri 3. Oct 2003, 22:22
Location: Moscow, Russia
Contact:

Re: XML Ausgabe

Post by Oliver Georgi » Thu 10. Mar 2016, 05:35

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
Oliver Georgi | phpwcms Developer | GitHub | LinkedIn | Систрон

Post Reply