TOUT sur les XML, C'est par ici !

Répondre
Partager Rechercher
il me semble pas qu'il y ait de pb sur les mise à jour des pages (puisque c'est daté et cette nuit ma mise à jour a été faite sans pb)

Par contre le contenu est bourré d'erreur et d'oublis, m'enfin je pense pas que c'était le but de la question
Citation :
Provient du message de Glenfiddich
le mot GOA me fait penser a France Telecom, ce qui induit un style de hallebarde bien senti
Toi v finir par descendre 2 de tes soeurs de 75 cl

Apres o moins le php et le xml me paraitront surement beaucoup plus clair...

Sinon, non mon php ne passe pas derriere un proxi ou alors c'est un pti C**, qui fait des trucs derriere mon dos

mais y'a un vrai bleme parce que tt les artisants de ma guilde sont en anonymes alors que sur le site de goa ils sont reconnus (c'est goa qui nous fait du partage d'info a la billou????)

Please, si kelkun a un script qui fonctionne ce serait super mega cool
hum déjà avec l'artisanat Goa a fais de drôle de truc...
ceux qui veulent apparaître ne le sont que dans le Top 5, et s'ils n'ont pas le niveau du Top 5, et ben n'apparaissent nulle part...
Et ceux qui veulent être anonymes apparaissent malgré tout, avec les autres infos de leurs persos...

donc la dessus l'artisanat n'est pas au point...
Code PHP:

<?php
$file
="http://www.camelot-europe.com/herald/servers.xml";
include 
"daoc.inc.php";
$couleur["Hibernia"]="#0C8911";
$couleur["Albion"]="#D40203";
$couleur["Midgard"]="#007A82";

?>
<style type="text/css">
BODY {color : #F0FFFF;}
</style>
<body bgcolor="#000000">

<table width="100%" height="100%">
<tr>
    <td align="right" width="50%"><img src="daoc.gif" height="139" width="162" alt="" border="0" />&nbsp;</td>
    <td align="left" width="50%"><h1>Broceliande</h1></td>
</tr>
<tr>
    <td colspan=2 valign="top">
    <table border=0 width="100%">
    <tr valign="top">
        <td width="57" align="center"><img src="logohibernia.jpg" height="57" width="57" alt="" border="0" /></td><td valign="middle"><h2>Hibernia</h2></td>
        <td width="57" align="center"><img src="logoalbion.jpg" height="57" width="57" alt="" border="0" /></td><td valign="middle"><h2>Albion</h2></td>
        <td width="57" align="center"><img src="logomidgard.jpg" height="57" width="57" alt="" border="0" /></td><td valign="middle"><h2>Midgard</h2></td>
    </tr>
    <tr>
        <td colspan="2" align="center"><strong>Reliques</strong></td>
        <td colspan="2" align="center"><strong>Reliques</strong></td>
        <td colspan="2" align="center"><strong>Reliques</strong></td>
    </tr>
<?php
    
if(isset($daoc->Serveur["Broceliande"]))
    {
        
$countsizeof($daoc->Serveur["Broceliande"]->relic);
        
$relic_number=0;
        
        while(
$relic_number<$count)
        {
            foreach( array(
"hibernia","albion","midgard") as $region)
            {
                
$i=0;
                print 
"<td colspan=\"2\">";
                foreach(
$daoc->Serveur["Broceliande"]->relic as $RELIQ)
                {
                    if(
strcasecmp($RELIQ->origine,$region)==0)
                    {
                        if(
$i==0)
                            print 
"<table border=\"0\" width=\"100%\">";
                        print 
"<tr><td>".$RELIQ->name."&nbsp;</td><td width=\"130\" bgcolor=\"".$couleur[$RELIQ->proprietaire]."\" align=\"center\">".$RELIQ->proprietaire."&nbsp;</td></tr>";
                        
$i++;
                        
$relic_number++;
                    }
                }
                if(
$i!=0)            
                    print
"</table>";
                print 
"&nbsp;</td>";
            }
        }
    }
?>


    <tr>
        <td colspan="2" align="center"><strong>Forts</strong></td>
        <td colspan="2" align="center"><strong>Forts</strong></td>
        <td colspan="2" align="center"><strong>Forts</strong></td>
    </tr>

<?php
    
if(isset($daoc->Serveur["Broceliande"]))
    {
        
$countsizeof($daoc->Serveur["Broceliande"]->fort);
        
$fort_number=0;
        
        while(
$fort_number<$count)
        {
            foreach( array(
"hibernia","albion","midgard") as $region)
            {
                
$i=0;
                print 
"<td colspan=\"2\">";
                foreach(
$daoc->Serveur["Broceliande"]->fort as $FORT)
                {
                    if(
strcasecmp($FORT->origine,$region)==0)
                    {
                        if(
$i==0)
                            print 
"<table border=\"0\" width=\"100%\">";
                        print 
"<tr><td>".$FORT->name."&nbsp;</td><td width=\"130\" bgcolor=\"".$couleur[$FORT->proprietaire]."\" align=\"center\">".$FORT->proprietaire."&nbsp;</td></tr>";
                        
$i++;
                        
$fort_number++;
                    }
                }
                if(
$i!=0)            
                    print
"</table>";
                print 
"&nbsp;</td>";
            }
        }
    }
?>

    <tr><td colspan="6" align="right">Derniere maj : <?php print $daoc->Serveur["Broceliande"]->maj;?></td></tr>
    </table>
</body>
<?php
?>
daoc.inc.php qui va avec :
Code PHP:

<?php
/*    La class DAOC et composer de 3 class
*     Class DAOC =>
*         -------------------------------------------------------------
*         Serveur    -> tableau (array) sur serveur avec comme cle le nom du serveur
*         ServeurActuel -> valriable 'local' pour implementation interne
*         tag -> valriable 'local' pour implementation interne
*         -------------------------------------------------------------
*        daoc() -> creation de la class
*        GetNumServeur() -> retourne le nombre de serveur
*        GetEnumServeur() -> retour un tableau contenant
*                             le nom de serveur avec comme cle un numero
*        GetEnumLangue() -> retour un tableau contenant
*                             le language du serveur
*        GetNumLangue() -> retourne le nombre de langue disponible
*        startElement ($parser, $name, $attrs) -> fonction de parse pour le XML
*        endElement($parser, $name) -> fonction de parse pour le XML
*        characterData($parser, $name) -> fonction de parse pour le XML

*  
*     Class Serveur =>
*         -------------------------------------------------------------
*        name;
*        langue;
*        maj;    
*        population;
*        status;
*        relic;
*        fort;
*         -------------------------------------------------------------
*         Serveur()
*         Add_Relic($name)
*         Add_Fort($name)
*         serveur_attribut($attrs)



*     Class relic => class contenant les informations sur les relic!
*         -------------------------------------------------------------
*         name =>
*         type =>
*         origine =>
*         $proprietaire =>
*         -------------------------------------------------------------




*     Class fort => class contenant les informations sur les forts!
*         -------------------------------------------------------------
*         name =>
*         type =>
*         origine =>
*         $proprietaire =>
*         -------------------------------------------------------------



*    
*    Add_Relic($name)
*    Add_Fort($name)
*    serveur_attribut($attrs)
*
**********************************************************************/


Class relic{
    var 
$name;
    var 
$type;
    var 
$origine//nom a qui appartient a l'origine la relic
    
var $proprietaire//nom du proprio actuel

    
function relic_attribut($attrs){
        for(
$i=0;$i<count($attrs);$i++){
            switch(
key($attrs)){
            case 
"NAME":
                
$this->name=$attrs["NAME"];
                break;
            case 
"TYPE":
                
$this->type=$attrs["TYPE"];
                break;
            case 
"REALM":
                
$this->origine=$attrs["REALM"];
                break;
            }
            
next($attrs);
        }
    }
}


Class 
fort{
    var 
$name;
    var 
$type;
    var 
$origine//nom a qui appartient a l'origine la relic
    
var $proprietaire//nom du proprio actuel

    
function fort_attribut($attrs){
        for(
$i=0;$i<count($attrs);$i++){
            switch(
key($attrs)){
            case 
"NAME":
                
$this->name=$attrs["NAME"];
                break;
            case 
"TYPE":
                
$this->type=$attrs["TYPE"];
                break;
            case 
"REALM":
                
$this->origine=$attrs["REALM"];
                break;
            }
            
next($attrs);
        }
    }

}

Class 
Serveur{
    var 
$name;
    var 
$langue;
    var 
$maj;    
    var 
$population;
    var 
$status;
    var 
$relic;
    var 
$fort;
    
    function 
Serveur(){
        
$this->relic = array();
        
$this->fort = array();
    
    }
    
    function 
Add_Relic($name){
        
$this->relic[$name] =new relic();
    }
    function 
Add_Fort($name){
        
$this->fort[$name] =new fort();
    }
    
    function 
serveur_attribut($attrs){
        for(
$i=0;$i<count($attrs);$i++){
            switch(
key($attrs)){
            case 
"NAME":
                
$this->name=$attrs["NAME"];
                break;
            case 
"TYPE":
                
$this->langue=$attrs["TYPE"];
                break;
            case 
"UPDATED":
                
$this->maj=$attrs["UPDATED"];
                break;
            }
            
next($attrs);
        }
    }

    
}

Class 
daoc{
    var 
$Serveur;
    var 
$ServeurActuel;
    var 
$ObjetActuel;
    var 
$tag;
    
    function 
daoc(){
        
$this->Serveur= array();
        
$this->tag "VIDE";
        
$this->ServeurActuel "VIDE";
        
$this->ObjetActuel "VIDE";
    }    

    function 
GetNumServeur(){
        return 
count($this->Serveur);
    }

    function 
GetEnumServeur(){
        
$serv=array();

        
$nb_serv $this->GetNumServeur();
        
reset($this->Serveur);
        for(
$i=0;$i<$nb_serv;$i++)
        {
            
$serv[$i]=key($this->Serveur);
            
next($this->Serveur);
        }
        return 
$serv;
    }    
    
    function 
GetEnumLangue(){
        
$lang=array();
        
$nb_serv $this->GetNumServeur();    
        
$list_serv $this->GetEnumServeur();
        
        for(
$i=0;$i<$nb_serv;$i++){
            if(
$i==0)
                
$lang[$i]= $this->Serveur[$list_serv[$i]]->langue;
            else{
                
$trouve false;
                for(
$j=0;$j<count($lang);$j++){
                    if(
strcmp($lang[$j],$this->Serveur[$list_serv[$i]]->langue)==0)            
                        
$trouve true;
                }
                if(
$trouve==false)
                    
$lang[$i]= $this->Serveur[$list_serv[$i]]->langue;
            }
        }
        return 
$lang;    
    
    }

    function 
GetNumLangue(){
        return 
count($this->GetEnumLangue());    
    }
    
    function 
startElement ($parser$name$attrs) {
        global 
$depth;
        global 
$Broceliande;
        
        switch(
$name){
        case 
"SERVER":
            if(
strcmp(key($attrs),"NAME")==0){
                
$this->Serveur[$attrs["NAME"]] = new Serveur();
                
$this->ServeurActuel=$attrs["NAME"];
                
$this->tag $name;
                
$this->Serveur[$attrs["NAME"]]->serveur_attribut($attrs);    
            }
            break;
        case 
"RELIC":
            if(
strcmp(key($attrs),"NAME")==0){
                
$this->Serveur[$this->ServeurActuel]->Add_Relic($attrs["NAME"]);
                
$this->ObjetActuel=$attrs["NAME"];
                
$this->tag $name;                                                                
                
$this->Serveur[$this->ServeurActuel]->relic[$attrs["NAME"]]->relic_attribut($attrs);
            }
            break;
        case 
"KEEP":
            if(
strcmp(key($attrs),"NAME")==0){
                
$this->Serveur[$this->ServeurActuel]->Add_Fort($attrs["NAME"]);
                
$this->tag $name;
                
$this->ObjetActuel=$attrs["NAME"];
                
$this->Serveur[$this->ServeurActuel]->fort[$attrs["NAME"]]->fort_attribut($attrs);
            }
            break;
        case 
"OWNER":
            if( 
strcasecmp($this->tag,"KEEP")==OR strcasecmp($this->tag,"RELIC")==){
                
$this->tag $this->tag "_".$name;
            }
            break;
        case 
"POPULATION":
            
$this->tag $name;
            break;
        default:
            break;
        }
        @
$depth[$parser]++;
    }


    function 
endElement($parser$name) {
        global 
$depth;
        
$this->tag "";
        
$depth[$parser]--;
    }
    
    function 
characterData($parser$name) {
        global 
$depth;
        global 
$Broceliande;

        switch(
$this->tag){
        case 
"POPULATION":
            
$this->Serveur[$this->ServeurActuel]->population=$name;
            break;
        case 
"RELIC_OWNER":
            
$this->Serveur[$this->ServeurActuel]->relic[$this->ObjetActuel]->proprietaire =$name;
            break;
        case 
"KEEP_OWNER":
            
$this->Serveur[$this->ServeurActuel]->fort[$this->ObjetActuel]->proprietaire=$name;
            break;
        default : 
            break;
        }

    }
}

$xml_parser xml_parser_create();
$daoc = new DAOC();
xml_set_object($xml_parser,$daoc);
xml_set_element_handler($xml_parser"startElement""endElement");
xml_set_character_data_handler($xml_parser"characterData");
$fp fopen($file,"r")  or die("Error reading $file.");
while (
$data fread($fp4096))    
    
xml_parse($xml_parser$datafeof($fp)) or die(sprintf("XML error: %s at line %d",xml_error_string(xml_get_error_code($xml_parser)),xml_get_current_line_number($xml_parser)));
fclose($fp);
xml_parser_free($xml_parser);

?>
Qqun a-t-il réusi à faire un script pour phpBB2 car moi je m'y casse les dents et ça m'énerve !

Merci d'avance
__________________
Sacri Retraitée DAOC - Chaman - rr10 - Brocéliande
Sacri
WAR - Chaman - Clan Edge - lvl22 - rr20 - Couronne
Pour un module pour phpBB, essaye d'aller sur ce site et demande à l'admin...

sinon j'ai une question... comment faire pour afficher l'emblème d'une guilde avec la librairie GD comme le fait JoL sur les signatures qui sont proposées ?
J'ai ce qu'il faut pour les infos textes, mais pas pour l'embleme...
Code PHP:

$fondembleme=imagecreatefrompng(urldufond) or die ("Erreur lors de la création de l'image fond embleme");
imagecopy ($signature$fondembleme00x1y180100) ; imagedestroy($fondembleme);
$ecussonembleme=imagecreatefromgif(urldelecusson) or die ("Erreur lors de la création de l'image ecusson embleme");
imagecopy ($signature$fondembleme00x2y26464) ; imagedestroy($ecussonembleme); 
il faut paramétrer x1 et y1 pour l'emplacement de l'emblème et x2 et y2 pour que l'écusson y soit au milieu

J'espere que ça t'aidera
comme par rapport à d'autre essais, voici ce que j'obtiens :

Warning: imagecreatefrompng: Unable to open 'http://www.camelot-europe.com/herald/img/shields/4-3-0-full.png' for reading in ...
alors voila, j'ai réalisé un truc légèrement different pour ma guilde. Ce que je voulais, c'était des chroniques, ca c'est facile mais aussi des signatures dynamiques.
Comme j'aime pas les xml de goa (c'est ptet ces trois lettre qui me gênent ), j'ai réalisé un script qui va récupérer les infos du xml et les stocke dans une base sql.
Les problèmes : il faut le lancer a la main, et si votre hébergeur n'accepte pas les appels aux fichiers extérieurs, vous aurez une belle erreur 500. Il faudra donc télécharger le fichier régulièrement mais de tout façon, ca n'aurait rien changé.
Les avantages : ben c'est du php pur après sur une base sql, donc nettement plus facile a gérer.

la demo ici :http://www.angusdraconis.net/chroniquestest/affiche.php

si ca vous intéresse ou pour des questions MP

je précise que c'est en ligne depuis ce matin et que c'est pas encore paufiné graphiquement.
Citation :
Provient du message de apophyss
Bon pour les chroniques citées plus haut ok c'est très bien (j'ai d'ailleur essayer de rentrer en contact avec le créateur sans succés)
moi j'ai une question , si tu peux me dire par mp qui etais le créateur ? ou sont adresse mail. merci
en fait nymfe, le programme ne tournait qu'avec du PNG

le problème c'est que l'embleme est en gif, l'image des couleurs est en png

or créer une image en collant du gif sur du png c'est pas possible je crois

le plus simple à mon avis est de télécharger tous les emblemes en gif (doit y en avoir une 30aine), les reconvertir en png et les stocker sur son serveur

puis continuer à travailler en png sur l'image de signature

le programme ira chercher l'embleme sur ton serveur, et les couleurs ainsi que le reste chez goa

sinon pour le warning que tu as, moi j'avais résolu le problème en ouvrant les fichiers de chez goa en mode binaire

exemple :
Code:
function webcopy($src, $dest) {

$fp = @fopen($scr,"rb"); 
//ouverture d'un flux en lecture et en binaire sur le serveur source
$fp2= @fopen($dest, "wb"); 
//ouverture d'un flux en écriture et en binaire sur le serveur destination
 
 if ($fp&&$fp2) {
   while (!feof($fp) ) {
   fputs($fp2, fgets($fp,1024) );
   //copie  
   }
 }
fclose($fp2);
fclose($fp);
}
donc avant de faire l'imagecreatefrompng il faut le copier sur ton serveur et ensuite faire l'imagecreatefrompng sur ton serveur

non non, afficher l'emblème d'une guilde sur des chroniques, il n'y a pas de problème... (voici ce que j'ai réussi a faire avec les scripts trouvés ici )
mais pour la signature... :/

donc héberger les emblèmes sur mon compte c'est la seule solution ? erf c chiant mais bon, ça va c pas énorme

bon vais voir cette histoire d'emblème...
et tant qu'on y est, comment fait-on pour utiliser une autre écriture que celle par défaut, parce qu'elle est archi nulle et surtout incomplète, elle ne supporte pas certains accents...
pour les accents, c'est le protocole UTF8 qui permet d'enlever les signe bizarres et de mettre les lettres à accent

exemple utf8_decode($race) permet de mieux afficher les nécrites

pour les emblèmes, je peux t'envoyer le pack complet en png si tu veux, suffit de m'envoyer ton mail en MP :P

edit>> tiens regarde
http://www.hellangels.net/signature/signature-Nymfe-Broceliande-1071.sign
ouah c très jolie

je sais pour le utf8 mais le prob c'est qu'avec la police par défaut, ça met des caractère bizarre, et si je met pas utf8, ben ça en met d'autre... enfin bref, le site osdr.de qui propose des signature a le même problème... on le vois très bien par exemple si on regarde pour la guilde La Lame de Gaïa ... le ï appairait comme une sorte de d avec une apostrophe collée a droite. Et sans le utf8 c'est remplacé par un AZ bizarre

je pense que cela vient de la police d'écriture utilisée, car avec ou sans utf8 ça ne marche pas correctement... le problème c'est que je ne connais pas du tout le code a mettre pour indiquer au script d'utiliser une autre police d'écriture (et après plutard faire de zolie chose comme toi :P )

et pour les emblème en pnj c'est bon je les ai merci beaucoup
bizarre je viens de voir ça lol, je vais regarder plus en détail
Code PHP:

imagettftext (resource imageint sizeint angleint x ,int yint colorstring fontfilestring text
ça te permet d'utiliser une police de caractère qui sera uploadée chez ton hébergeur, a condition qu'il ait la librairie GD version 2

source: Nexen.net
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés