Légende
|
Ok je decortique
![]() Ingredients : - 2 script php - 1 base de donnée Mysql (ou postgres me demander dans ce cas la) - L'url de ton fichier xml de vgplayer - Du temps et un peu de patience ![]() Recette : Tous d'abord creer toi la table avec cette requete SQL (pour mysql) : Code:
CREATE TABLE `listmember` ( `lm_key` VARCHAR( 32 ) NOT NULL , `lm_rank` VARCHAR( 20 ) NOT NULL , `lm_adclass` VARCHAR( 20 ) NOT NULL , `lm_adlvl` INT( 8 ) NOT NULL , `lm_crclass` VARCHAR( 20 ) NOT NULL , `lm_crlvl` INT( 20 ) NOT NULL , `lm_name` VARCHAR( 50 ) NOT NULL ) ENGINE = MYISAM ; Change les donnée en rouge Citation :
Change les donnée en rouge Citation :
Important, il faut lancer si possible automatiquement le premier script PHP (toutes les 2H c'est pas mal) comme ca la base de donnée ce met a jour automatiquement ! Voila j'ai simplifié au max (en enlevant toute reference a ma guilde et la mise en page) si vous avez des questions posez les ! resultat visible ici : http://www.guilde-nomades.org/portal.php
__________________
http://www.canardpc.com |
![]() |
|
Aller à la page... |
Utiliter des flux XML des guildes, cas pratique
Suivre Répondre |
|
Partager | Rechercher |
|
merci pour le code
![]() [edit] je n'avais pas vu le message de [HellR] donc je suprime la suite de mon post qui est devenu sans interêt ...[/edit] |
![]() |
|
|
Bien qu'il ne s'agisse pas d'un "problème technique" ce fil à plus sa place sur ce forum
![]() --Déplacement-- |
![]() |
|
Légende
|
Merci pour les coquilles kalanye c'est corriger,
en faite j'ai adapté mon script pour le portail phpbb en une version plus light ^^ |
![]() |
|
Légende
|
mwarf, ce ne serai que moi je le ferai en python ou en perl, bien plus puissant !!! mais l'aventage du php c'est que beaucoup d'hebrergeur le propose et que beaucoup le pratique ! Et tous le monde n'as pas de serveur dedié pour sa guilde
![]()
__________________
http://www.canardpc.com |
![]() |
|
|
J'ai juste ca "Nom Aventurier Artisant" qui s'affichent sur la page
|
![]() |
|
Légende
|
mmm oki tu prend quelle fichier XML ?
|
![]() |
|
|
Je prend le fichier XML de ma guilde sur le site VgPlayers...: http://www.legende-celte-vanguard.be/lcxml.xml ou via la ligne: $xml = "http://vgplayers.station.sony.com/in...d=111669149730"; dans la page php (comme dit, plus haut)... J ai testé les 2... Mais fonctionne pas
![]() |
![]() |
|
Légende
|
Pour ceux qui se le demande, tout les fichiers XML de vg players sont publiques visiblement, et donc accessible.
Ma petite pierre à l'édifice, l'utilisation du framework rico pour avoir un tableau dynamique assez pratique d'emploi dans le cadre d'un roster. Je me suis basé sur le boulot d'oze, et considère que tout le monde à bidouiller son bousin pour copier le contenu du xml de vgplayers dans une base mysql, attention tout de même pour mes propres besoin j'ai modifié quelque peut cette dernière. A vous de tripatouiller ce qui est nécessaire par la suite. D'abord le code de la page qui affichera le roster Code:
<?php include("common/config.php"); ?> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Document sans titre</title> <style> .fixedTable { table-layout : fixed; } td.cell { padding : 2px 0px 2px 3px; margin : 0px; border-bottom : 1px solid #b8b8b8; border-right : 1px solid #b8b8b8; height : 22px; overflow : hidden; font-size : 11px; font-family: verdana, arial, helvetica, sans-serif; line-height: 12px; background-color : white; } .first { border-left : 1px solid #b8b8b8; } .tableCellHeader { padding : 2px 0px 2px 3px; text-align : left; font-size : 11px; border-top : 1px solid #b8b8b8; border-right : 1px solid #b8b8b8; background-color : #cedebd; } </style> //Les trois balises script indispensable <script src="framework/prototype.js"></script> <script src="framework/rico.js"></script> <script language="javascript"> function bodyOnLoad() { var opts = { prefetchBuffer: true, onscroll : updateHeader, sortAscendImg: 'img/sort_asc.gif', sortDescendImg: 'img/sort_desc.gif' }; new Rico.LiveGrid("data_grid",10,21, "xml_maker.php", opts); } function updateHeader( liveGrid, offset ) { $('bookmark').innerHTML = "Listing records " + (offset+1) + " - " + (offset+liveGrid.metaData.getPageSize()) + " of " + liveGrid.metaData.getTotalRows(); var sortInfo = ""; if (liveGrid.sortCol) { sortInfo = "&data_grid_sort_col=" + liveGrid.sortCol + "&data_grid_sort_dir=" + liveGrid.sortDir; } $('bookmark').href="http://monsite/index.php" + "?data_grid_index=" + offset + sortInfo; } </script> </head> //on oublie pas le onload ici <body onload="javascript:bodyOnLoad()"> <a id="bookmark">Listing records</a> <table id="data_grid_header" class="fixedTable" cellpadding="0" cellspacing="0" border="0" width="560"> <tr> <th class="first_tableCellHeader">Rank</th> <th class="tableCellHeader">Name</th> <th class="tableCellHeader">Class</th> <th class="tableCellHeader">Adventure level</th> <th class="tableCellHeader">Craft</th> <th class="tableCellHeader">Craft level</th> </tr> </table> <div id="viewPort" style="float:left"> <table id="data_grid" class="fixedTable" cellpadding="0" cellspacing="0" border="0" style="float:left" width="560"> <?php //les variables de connections sont dans le fichier config.php inclue au tout debut de ce script. $link = mysql_connect($db_server, $db_login, $db_pass)or die("Impossible de se connecter"); mysql_select_db($db_database) or die("Table inexistante"); $query = "SELECT * FROM roster LIMIT 0,20"; $result = mysql_query($query) or die(mysql_error()); $nb_record = mysql_num_rows($result); while ($data = mysql_fetch_array($result)){ echo "<tr>"; echo "<td class=\"cell\">".$data['r_rank']."</td>"; echo "<td class=\"cell\">".$data['r_name']."</td>"; echo "<td class=\"cell\">".$data['r_adclass']."</td>"; echo "<td class=\"cell\">".$data['r_adlvl']."</td>"; echo "<td class=\"cell\">".$data['r_crclass']."</td>"; echo "<td class=\"cell\">".$data['r_crlvl']."</td>"; echo "</tr>"; } mysql_close(); ?> </table> </div> </body> </html> Code:
<?php //Fix pour IE header("Content-Type: text/xml"); header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); header("Cache-Control: no-store, no-cache, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); header("Pragma: no-cache"); include("common/config.php"); $link = mysql_connect($db_server, $db_login, $db_pass)or die("Impossible de se connecter"); mysql_select_db($db_database) or die("Table inexistante"); $pagesize = ($_GET['pagesize']) ? $_GET['pagesize'] :20; //a modifier, le nombre d'enregistrement à afficher par page $offset = ($_GET['offset']) ? $_GET['offset'] : 0; $sort_col = ($_GET['sort_col']) ? $_GET['sort_col'] : 'r_rank'; //ATTENTION : les conditions (case), sont les nom de colone sans majuscule, avec un _ à la place des espaces. switch($sort_col){ case("name"): $sort_col="r_name"; break; case("rank"): $sort_col="r_rank"; break; case("class"): $sort_col="r_adclass"; break; case("adventure_level"): $sort_col="r_adlvl"; break; case("craft"): $sort_col="r_crclass"; break; case("craft_level"): $sort_col="r_crlvl"; break; default: $sort_col="r_rank"; } $sort_dir = ($_GET['sort_dir']) ? $_GET['sort_dir'] : 'DESC'; $lp_sql = "select * from roster order by ".$sort_col." ".$sort_dir." limit ".$offset.",".$pagesize; $result = mysql_query($lp_sql) or die(mysql_error()); // on commence à écrire au format xml $xml = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>"; $xml = "<ajax-response><response type=\"object\" id=\"data_grid_updater\"><rows update_ui=\"true\">"; while ($data = mysql_fetch_array($result)){ $xml .="<tr>"; $xml .="<td>".$data['r_rank']."</td>"; $xml .="<td convert_spaces=\"true\">".$data['r_name']."</td>"; $xml .="<td>".$data['r_adclass']."</td>"; $xml .="<td>".$data['r_adlvl']."</td>"; $xml .="<td>".$data['r_crclass']."</td>"; $xml .="<td>".$data['r_crlvl']."</td>"; $xml .="</tr>"; } mysql_close(); $xml .='</rows></response></ajax-response>'; echo $xml; ?> Edit : j'allais oublié, les fichiers prototype.js et rico.js sont disponible ici : http://openrico.org/ . |
![]() |
|
|
Merci Fake
tu pourrais nous montrer le résultat ? (qu'on puisse avoir un petit aperçu ![]() |
![]() |
|
Légende
|
http://anathemaguild.free.fr/show_roster.php
Voila une démonstration du truc. J'ai pas particulièrement bosser sur la gueule du machin, mais c'est fonctionnel. ya juste à cliquer sur le label d'un colonne pour modifier l'ordre du tableau. Tout est en ajax, donc asynchrone. Note : Dans le premier fichier il ya une variable opts à définir, que j'ai oublié d'annoter, en javascript, une des valeurs de cette variable détermines aussi le nombre de ligne visible du tableau, à expérimenter donc, sachant qu'openrico n'est que très peu documenté. |
![]() |
|
|
Marrant, on en voit de plus en plus des sites qui exploitent ces XML.
Encore un que j'ai découvert récemment : http://vanguard.steel-titans.net Une vrai mode ^^ Par contre, il semble gèrer plusieurs guildes à la fois et intégre un système d'historiques, de stats, de regroupements... |
![]() |
|
Suivre Répondre |
Connectés sur ce fil1 connecté (0 membre et 1 invité)
Afficher la liste détaillée des connectés
|