XML-API

Hier könnt ihr - bevor eine Supportanfrage erstellt werden muss - um Hilfe fragen. Es gibt hier allerdings kaum oder gar kein Support seitens der Administratoren.

XML-API

Beitragvon Gast » 28. Apr 2012, 00:21

Hallo,

da immer wieder Fragen zur XML-API aufkommen, wollte ich hier einfach mal die Erklärung posten:

Die XML-API ist eine Schnittstelle welche es ermöglicht, dynamische User-Banner wie diesen hier zu erstellen:

Bild

Dazu benötigt man jedoch zumindest einen Webspace und den entsprechenden Quellcode. Ich habe mir mal die Mühe gemacht, und einen möglichst einfachen Quellcode geschrieben, der recht leicht verständlich ist. Wenn ihr einen Webspace oder einen Root-Server besitzt, könnt ihr den Code nach euren Wünschen anpassen und auf den Webspace/Root-Server hochladen.

Code: Alles auswählen
<?php

/* 
   PHP-Script für dynamische User-Banner mittels der WHO XML-API
   Die URL zur API findet ihr in WhO unter "Optionen" => "XML-API"
   Bei Fragen wendet euch bitte an hacker07
*/

// Url zur xml-api
// http://[server].world-hack.org/api.who?[xml_key]
$xml_api = "http://s1.world-hack.org/api.who?4d820b9d0f331";

// XML Datei einlesen
$data = simplexml_load_string( file_get_contents( $xml_api ) );

if($data === false)
{
die("Keine Daten Gefunden oder XML error!");
}

// Die einzelnen abrufbaren Parameter
// Unnötige Parameter mit "#" deaktivieren

// Für den Spieler
$user = array(
"Spieler: ",    $data->name[0],
"Punkte: ",    number_format( ( int ) $data->punkte[0], 0, ',', '.' ), // Tausendertrennpunkt hinzufügen
"Platz: ",       number_format( ( int ) $data->platz[0], 0, ',', '.' ), // Tausendertrennpunkt hinzufügen
"Rang: ",       $data->hackerrang[0],
#"Computer: ",   $data->pcs[0]
);

// Für den Cluster
$cluster = array(
"Cluster: ",      $data->name[1]." [ ". $data->code[0] ." ]",
"Punkte: ",         number_format( ( int ) $data->points[0], 0, ',', '.' ), // Tausendertrennpunkt hinzufügen
"Platz: ",         $data->platz[1],
"Member: ",         $data->member[0],
#"PC/Member: ",      $data->av_pcs[0],
#"Erfolg: ",      $data->succes_rate[0]
);

// Bildbreite
$width = 468;
// Bildhöhe
$height = 60;

// Schriftgröße
$font_size = 3;

// Bild generieren
$img = imagecreate( $width, $height );

// Hintergrundfarbe in RGB (Rot Grün Blau)
$background = imagecolorallocate( $img, 25, 25, 25 );

// Schriftfarbe in RGB (Rot Grün Blau)
$color = imagecolorallocate( $img, 255, 255, 255 );

// Linienfarbe in RGB (Rot Grün Blau)
$line = imagecolorallocate( $img, 37, 75, 21 );

// WHO-Icon einlesen
$image = imagecreatefrompng ( 'who.png' );

// WHO-Icon einfuegen
imagecopyresized( $img, $image, 6, 0, 0, 0, 61, 60, 61, 60 );

// Textposition (Höhe)
$ypos = 3;

// Solange noch nicht angezeigte User-Daten vorhanden sind
for ( $i = 0; $i < count ( $user ) * 2; $i++ )
{
   // Die Beschriftung
   imagestring( $img, $font_size, 75, $ypos,  $user[$i], $color );
   $i++;
   // und die Daten einfügen
   imagestring( $img, $font_size, 140, $ypos,  $user[$i], $color );
   $ypos = $ypos + 12;
}

// Linie einfügen
imageline( $img , 219 , 3 , 219 , 57 , $line );
imageline( $img , 220 , 3 , 220 , 57 , $line );

// Textposition (Höhe)
$ypos = 3;

// Solange noch nicht angezeigte Cluster-Daten vorhanden sind
for ( $i = 0; $i < count ( $cluster ) * 2; $i++ )
{
   // Die Beschriftung
   imagestring( $img, $font_size, 225, $ypos, $cluster[$i], $color );
   $i++;
   // und die Daten einfügen
   imagestring( $img, $font_size, 290, $ypos, $cluster[$i], $color );
   $ypos = $ypos + 12;
}

// Bild generieren
header( "Content-Type: image/gif" );
imagegif( $img );

// Speicher freiräumen
imagedestroy( $img );
?>


Für diejenigen die keinen Webspace/Root-Server haben kann ich einen Standard-Banner anbieten.

Um diesen "Standard-Banner" mit euren Daten zu erhalten, fügt an den Link
http://testserver4-you.de/banner.php?api=
eure XML-API Adresse an.

Das sollte dann so aussehen:
http://testserver4-you.de/banner.php?ap ... 20b9d0f331

Fügt diesen Link dann einfach via BBCode wie ein normales Bild in WHO, oder wo auch immer ihr wollt ein.
Gast
 

Re: XML-API

Beitragvon ThaSpeedy » 28. Apr 2012, 00:35

Saubere arbeit, schön auskommentiert :)


minimale Verbesserung!
Code: Alles auswählen
// http://[server].world-hack.org/api.who?[xml_key]
$xml_api = "http://s1.world-hack.org/api.who?4d820b9d0f331";

// XML Datei einlesen
$data = simplexml_load_string( file_get_contents( $xml_api ) );

// <------------ START
if($data === false)
{
die("Keine Daten Gefunden oder XML error!");
}
// <------------ ENDE

// Die einzelnen abrufbaren Parameter
// Unnötige Parameter mit "#" deaktivieren

// Für den Spieler
$user = array(
I never comment my sourcecode. What's HARD to write must be HARD to read!
Bild
ThaSpeedy
Hobby-Bastler
 
Beiträge: 397
Registriert: 1. Aug 2008, 17:19
Hat Gedankt: 0 time
 Danksagungen: 7 times

Re: XML-API

Beitragvon Gast » 28. Apr 2012, 00:40

Danke dir, habs direkt bei mir umgeändert :)
Gast
 

Re: XML-API

Beitragvon ATZENPOWER » 28. Apr 2012, 00:43

danke dir hacker für die mühe...

kleiner hinweis von meiner seite....
manche foren oder seiten usw erlauben keine phpseiten als domainlink...

abhilfe könnt ihr euch dann zb via tiny-url verschaffen.... einfach die url verschleiern und dann die verschleierte url verwenden...
BildBildBildBildBildBildBild

Bild
ATZENPOWER
Geschäftsführung
 
Beiträge: 1759
Registriert: 28. Jun 2008, 20:29
Hat Gedankt: 113 times
 Danksagungen: 176 times


Zurück zu Spieler helfen Spielern



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 33 Gäste