Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# problème de templates et RDF

Envoyé par : Utilisateur anonyme

Date : 22/11/2005 16:39

Bonjour,

Dans mon cahier du programmeur XUL, j'en suis au chapitre sur les RDF, où l'on explique comment remplir un élément <tree> grâce à RDF. En adaptant un peu mon code, ça donne ceci...

<?xml version="1.0" ?> <overlay xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">

<vbox id="xf-index_vbox_forum">
	<label class="titre" value="La liste des sujets du forum" />
	<tree id="xf-index_arbre" flex="1" datasources="http://thor.benevolat.org:500/xf/creer_rdf.php" ref="http://thor.benevolat.org/sujets">
		<treecols>
			<treecol id="xf-index_arbre_titre" label="Titre du sujet" flex="8" primary="true" />
			<splitter class="tree-splitter" />
			<treecol id="xf-index_arbre_date" label="Dernier message le : " flex="1" />
			<splitter class="tree-splitter" />
			<treecol id="xf-index_arbre_reponses" label="Nombre de réponses" flex="1" />
		</treecols>
		<template>
			<rule>
				<conditions>
					<content uri="?messages" />
					<member container="?messages" child="?message" />
					<triple subject="?message" predicate="http://thor.benevolat.org/rdf#titre" object="?titre" />
					<triple subject="?message" predicate="http://thor.benevolat.org/rdf#auteur" object="?auteur" />
					<triple subject="?message" predicate="http://thor.benevolat.org/rdf#date" object="?date" />
				</conditions>
				<bindings>
                   	<binding subject="?message" predicate="http://thor.benevolat.org/rdf#lu" object="?lu" />
                   </bindings>
                   <action>
                   	<treechildren>
                   		<treeitem uri="?message">
                   			<treerow>
                   				<treecell properties="?lu" label="?titre" />
                   				<treecell label="?auteur" />
                   				<treecell label="?date" />
                   			</treerow>
                   		</treeitem>
                   	</treechildren>
                   </action>
               </rule>
           </template>
		<!--<treechildren>
			<treeitem container="true">
				<treerow>
					<treecell label="Un exemple de titre de sujet" />
					<treecell label="20/20/05 16:30" />
					<treecell label="1" />
				</treerow>
				<treechildren>
					<treeitem>
						<treerow>
                           	<treecell label="Réponse au premier sujet" />
							<treecell label="20/20/05 00:05" />
							<treecell />
						</treerow>
					</treeitem>
				</treechildren>
				<treechildren>
					<treeitem>
						<treerow>
                           	<treecell label="Réponse au premier sujet" />
							<treecell label="20/20/05 00:05" />
							<treecell />
						</treerow>
					</treeitem>
				</treechildren>
				<treechildren>
					<treeitem>
						<treerow>
                           	<treecell label="Réponse au premier sujet" />
							<treecell label="20/20/05 00:05" />
							<treecell />
						</treerow>
					</treeitem>
				</treechildren>
			</treeitem>
		</treechildren> -->
	</tree>
</vbox>

</overlay>

Et mon fichier RDF est créé par PHP via le code suivant:

 <?php
       header("Content-Type: text/xml");
       $d = new DOMDocument('1.0', 'utf-8');
       $r = $d->createElementNS("http://www.w3.org/1999/02/22-rdf-syntax-ns#","RDF:RDF");
       $r->setAttribute("xmlns:XF", "http://thor.benevolat.org/rdf#");
       $d->appendChild($r);
       try {
               $cnn = @mysql_connect("127.0.0.1", "root", "fsaxzese");
               if(!$cnn) {
                       throw new Exception("Impossible de se connecter");
               }
               $rs = @mysql_query("USE xulforum");
               if(!$rs) {
                       throw new Exception("Impossible de sélectionner la base");
               }

               $rs = @mysql_query("SELECT titre, auteur, date, id FROM xf_sujets ORDER BY date DESC;");
               if(!$rs) {
                       throw new Exception("Impossible de chercher");
               }

               $ids_sujets = Array();

               while ($o = mysql_fetch_object($rs)) {
                       $e = $d->createElement("RDF:Description");
                       $e->setAttribute("RDF:about", "http://thor.benevolat.org/sujets/".($o->id));
                       $e->appendChild($d->createElement("XF:titre", utf8_encode($o->titre)));
                       $e->appendChild($d->createElement("XF:date", utf8_encode($o->date)));
                       $e->appendChild($d->createElement("XF:auteur", utf8_encode($o->auteur)));
                       $r->appendChild($e);
                       $ids_sujets[] = $o->id;
               }

               $e = $d->createElement("RDF:Seq");
               $e->setAttribute("RDF:about", "http://thor.benevolat.org/sujets");
               $r->appendChild($e);

               foreach($ids_sujets as $id) {
                       $l = $d->createElement("RDF:li");
                       $l->setAttribute("RDF:Resource", "http://thor.benevolat.org/sujets/$id");
                       $e->appendChild($l);
               }
       } catch(Exception $e) {
               exit($e->getMessage());
       }
       echo($d->saveXML());
?>

Quelque chose a dû m'échapper, parce que l'arbre ne se peuple pas... :-\ Voyez-vous quelle bourde j'ai fait??

Merci d'avance,

Jérémie

# Re: problème de templates et RDF

Envoyé par : Boubousik

Date : 24/11/2005 11:58

C'est bon j'ai trouvé!

Mon fichier PHP/RDF ne se trouvait pas à la base du site... Pourtant en chageant les chemins pour accéder au fichier dans son emplacement, ça ne marche, seul un fichier placé en racine passe...

Bizarre...

Il n'est plus possible de poster des messages dans ce forum.


Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.