XML Content einbauen?

Hier können Probleme und alles andere in Deutscher Sprache gelöst werden.
MagicV
Regular
Posts: 159
Joined: Wed Apr 11, 2007 8:44 am
Contact:

XML Content einbauen?

Post by MagicV »

Hi Mädels und Jungs!

Gibt es eine Möglichkeit in der Seitenleite XML-Content einzubauen?
Image
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Re: XML Content einbauen?

Post by garvinhicking »

Hi!

Japp, die Möglichkeit gibt es. :)

Viele Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
MagicV
Regular
Posts: 159
Joined: Wed Apr 11, 2007 8:44 am
Contact:

Post by MagicV »

Und welche?
Image
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Hi!

Über den HTML-Klotz kannst Du beliebigen XML-Code einbinden.

HINT: Ist natürlich alles eine Frage WAS DU GENAU MACHEN WILLST. :-)

Viele Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
MagicV
Regular
Posts: 159
Joined: Wed Apr 11, 2007 8:44 am
Contact:

Post by MagicV »

Ich möchte das hier vernünftig Formatiert ausgeben:

Code: Select all

Unter http://magic-volker.myminicity.com/xml kommt dieses Ergebnis:

  <?xml version="1.0" encoding="UTF-8" ?> 
- <city>
  <host>magic-volker.myminicity.com</host> 
  <name>Magic Volker</name> 
  <region code="DE">germany</region> 
  <ranking>4676</ranking> 
  <population>263</population> 
  <incomes>57450</incomes> 
  <unemployment>0</unemployment> 
  <transport>100</transport> 
  <criminality>0</criminality> 
  <pollution>0</pollution> 
  <nextnuke>1</nextnuke> 
  <signatures>0</signatures> 
  <bases com="0" env="0" ind="72" sec="0" tra="33" /> 
  </city>
Image
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Hi!

Dafür müsstest Du dann ein eigenes kleines PHP-Plugin basteln. Für jemanden der mit PHP und XML schonmal was gemacht hat eigentlich nur eine leichte Fingerübung.

Für RSS-Feeds im XML Format hätte man das RemoteRSS-Plugin nutzen können, das kann man auch über eigene Smarty-Templates an andere XML-Formate anpassen. Aber das ist letztlich aufwändiger und komplizierter als ein eigenes Seitenleistenplugin zu schreiben, das sind ur 20 Zeilen Code:

Code: Select all

<?php
class serendipity_plugin_xmlout extends serendipity_plugin {
    var $title = 'XML Output';
    function introspect(&$propbag) {
        global $serendipity;

        $propbag->add('name', 'My Minicity');
        $propbag->add('description', '');
        $propbag->add('author', 'Garvin Hicking');
        $propbag->add('version', '1.0');
    }

    function generate_content(&$title) {
        $title = $this->title;
        $xml = simplexml_load_string(file_get_contents('http://magic-volker.myminicity.com/xml'));
        echo "Meine Stadt hat " . $xml->population . " Einwohner. Tschö!";
    }
}

Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
MagicV
Regular
Posts: 159
Joined: Wed Apr 11, 2007 8:44 am
Contact:

Post by MagicV »

GARVIN!

ICH KÖNNTE DICH KNUUUTSCHEN! :lol:
Image
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Hi!

Mir fällt gerade ein, dass sowas irgendwie doch was inperformant ist, da für jeden blogaufruf dann dein XML-File geladen werden würde.

Nimm daher lieber mal dies hier:

Code: Select all

<?php
class serendipity_plugin_xmlout extends serendipity_plugin {
    var $title = 'XML Output';
    function introspect(&$propbag) {
        global $serendipity;

        $propbag->add('name', 'My Minicity');
        $propbag->add('description', '');
        $propbag->add('author', 'Garvin Hicking');
        $propbag->add('version', '1.0');
    }

    function generate_content(&$title) {
    global $serendipity;
        $title = $this->title;
        $cachefile = $serendipity['serendipityPath'] . PATH_SMARTY_COMPILE . '/xmlout.dat';
        if (!file_exists($cachefile) || filemtime($cachefile) < (time()-1440)) {
        // Cache alle 1440 Sekunden neu schreiben
            $xml = simplexml_load_string(file_get_contents('http://magic-volker.myminicity.com/xml'));
            $out = "Meine Stadt hat " . $xml->population . " Einwohner. Tschö!";
            $fp = fopen($cachefile, 'w');
            fwrite($fp, $out);
            fclose($fp);
        } else {
            $out = file_get_contents($cachefile);
        }
    }
}
Das schreibt einen Cache in dein templates_c verzeichnis, alle 1440 Sekunden wird das aktualisiert.

Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
MagicV
Regular
Posts: 159
Joined: Wed Apr 11, 2007 8:44 am
Contact:

Post by MagicV »

Code: Select all

Fatal error: Call to undefined function: simplexml_load_string() in /var/www/web443/html/inhalte/01-blog/plugins/serendipity_plugin_xmlout/serendipity_plugin_xmlout.php on line 19
Image
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Hi!

Mein Code klappt nur mit PHP5.

Mit PHP4 ist XML parsing auch möglich, aber viel umständlicher. Den Code müsstest du dir dann hier zusammenbauen:

http://de2.php.net/manual/en/function.xml-parse.php

Ich empfehle dir, deinen provider zu bitten auf PHP5 zu upgraden. PHP4 wird nicht mehr weiterentwickelt und supported.

Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
ekn33
Regular
Posts: 91
Joined: Fri Jan 05, 2007 10:02 pm
Contact:

Post by ekn33 »

guten morgen/schoenen (sonn)tag

hallo garvin...
ich interessiere mich auch fuer den einbau von xml datein. mir gehts hierbei um produktlisten verschiedener partnerprogramme..die sind teilweise aber riesengross...
leider habe ich nun damit nochnichtmal irgendwie "gespielt", drum wuesst ich gern was der beste weg waere solche produktlisten einzubinden
ich hoerte mal was von smarty ...kann das sein ?
MagicV
Regular
Posts: 159
Joined: Wed Apr 11, 2007 8:44 am
Contact:

Post by MagicV »

Okayh habe dann auf PHP 5 umgestellt.
Das Ergebnis:

Code: Select all

Warning: file_get_contents() [function.file-get-contents]: URL file-access is disabled in the server configuration in /var/www/web443/html/inhalte/01-blog/plugins/serendipity_plugin_xmlout/serendipity_plugin_xmlout.php on line 19

Warning: file_get_contents(http://magic-volker.myminicity.com/xml) [function.file-get-contents]: failed to open stream: no suitable wrapper could be found in /var/www/web443/html/inhalte/01-blog/plugins/serendipity_plugin_xmlout/serendipity_plugin_xmlout.php on line 19
Image
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Hi!

Kanns tdu deinen Provider bitten die Stream Wrapper einzubinden? Sonst kann dein server so leicht keine fremdne URLs (also die XML-Quelle) öffnen.

Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
MagicV
Regular
Posts: 159
Joined: Wed Apr 11, 2007 8:44 am
Contact:

Post by MagicV »

Bitten kann ich um vieles, er lässt es dann wohl auch (gut) bezahlen...

Was für Stream-Wrapper, kannst Du das etwas detailierter sagen?
Image
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Hi!

PHPStream Wrapper sind dafür da, damit man mit file_get_contents HTTP-Verbindungen aufbauen kann.Mehr dazu siehe php.net -> Suche nach "Stream Wrapper".

Ohne sowas ist es sehr umständlich auf Inhalte von URLs zuzugreifen.

Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Post Reply