Forums : Template et RDF

Aller à la discussion :  Plus récente Plus ancienne

Aller à la page :  1 2 3

# Re: RDF PHP TREE

Envoyé par : alexp

Date : 25/04/2006 13:36

Mais non tu n'es pas stupide ;)
En revanche ça commence à sentir la petite erreur cachée quelque part.
Je ne suis pas un pro des templates, mais tu as placé : value="rdf:http://172.25.25.105/supann#tooltip". Et je ne sais pas comment réagit le template en règles simplifiées lorsqu'un prédicat n'existe pas (car d'après le php que tu nous as donné, tu ne génère pas la donnée tooltip). Il se pourrais qu'il n'affiche pas à cause de ça ...

Sinon, une solution serait de faire une pause sur ce problème, et tu verras peut être l'erreur au retour :) Si le problème persiste, il nous faudrait le code actuel.

# Re: RDF PHP TREE

Envoyé par : trollchichon

Date : 25/04/2006 13:47

Ok alors voila le php :

<?php
define('EOL', "\r\n");
require_once("supann_group.php");
function XML_entities($str){
	 return preg_replace(array("'&'", "'\"'", "'<'"), array('&#38;', '&#34;','&lt;'), $str);
	}
// Connexion à l'annuaire
$supann_db =& NewADOConnection(DSN_SUPANN_DB) or die("Connexion impossible à la base supann");
$res = $supann_db->Execute("SET NAMES 'utf8'");
// execution de la requète SQL
$supann_db =& NewADOConnection(DSN_SUPANN_DB) or die("Connexion impossible à la base supann");
if(isset($_GET['recherche']) && trim($_GET['recherche']) != ''){
	if($_GET['composante'] != ''){
		$sql = 'SELECT sn, givenName  FROM people, composantes_services WHERE cn LIKE "'.$_GET['recherche'].'%" ';
		$sql.= 'AND composantes_services.ref = "'.$_GET['composante'].'"';
	} else{
		$sql = 'SELECT sn, givenName  FROM people WHERE cn LIKE "'.$_GET['recherche'].'%" ';
	}
	if($_GET['affiliation'] != ''){
		$sql.= 'AND eduPersonPrimaryAffiliation LIKE "'.$_GET['affiliation'].'"';
	}
	echo $sql ."\n";
	$res = $supann_db->Execute($sql);
	$result = $res->GetArray();

	if($res == false){
		echo mysql_error($cnx);
	}
	else{
	     // on commence à lui envoyer le début du fichier RDF
	     echo('<?xml version="1.0" encoding="ISO-8859-1"?>'.EOL);
	     echo('<RDF:RDF xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"'.EOL);
	     echo('  xmlns:row="http://172.25.25.105/supann#" xmlns:NC="http://home.netscape.com/NC-rdf#">'.EOL);
	     echo('<RDF:Bag about="urn:data:row">'.EOL);
	     // boucle de récupération des enregistrements de la requête et génération du contenu RDF
	     foreach($result as $row){
	          echo('<RDF:li>'.EOL);
	     	  echo('<RDF:Description>'.EOL);
	     	  // parseType = indication pour le type des données, utile pour le trie sur la colonne
	     	  echo('<row:nom>'.XML_entities($row['sn']).'</row:nom>'.EOL);
	     	  echo('<row:prenom>'.XML_entities($row['givenName']).'</row:prenom>'.EOL);
	     	  echo('</RDF:Description>'.EOL);
	     	  echo('</RDF:li>'.EOL);
	     }
	     // fin du fichier RDF
	     echo('</RDF:Bag>'.EOL);
	     echo('</RDF:RDF>'.EOL);
	}
}
?>

le javascript :

function chargerArbre(tr){
var mytree = document.getElementById(tr);
var val1=document.getElementById("recherche2").value;
var val2=document.getElementById("searchtype3").value;
if(val2!=""){
	val2 = val2.substring(0,val2.indexOf(' ',0));
}
var val3=document.getElementById("searchtype4").value;
var chaine = escape("recherche")+"="+escape(val1)+"&"+escape("affiliation")+"="+escape(val3)+"&"+escape("composante")+"="+escape(val2);
var appendRandom=Math.random();
dsUrl = "create_rdf.php" + "?" + chaine + "&ZZ=" + appendRandom ;
mytree.setAttribute('datasources', '');
mytree.setAttribute('datasources', dsUrl);
document.getElementById('recherche2').value='';
}

et le petit bout de Xul:

<tree id="liste_champs_1" flex="1" ref="urn:data:row" datasources="rdf:null" >
	      <treecols>
	      		<treecol id="nom" label="Nom" primary="true" flex="1"
			class="sortDirectionIndicator" sortActive="false"
			sortDirection="ascending"
			sort="rdf:http://172.25.25.105/supann#nom"/>
			<splitter class="tree-splitter"/>
			<treecol id="prenom" label="Prénom" flex="1"
			class="sortDirectionIndicator" sortActive="true"
			sortDirection="ascending"
			sort="rdf:http://172.25.25.105/supann#prenom"/>
		</treecols>
		<template>
			<treechildren id="treechildren1">
			<treeitem uri="rdf:*">
				  <treerow tooltip="moretip">
				  	   <treecell label="rdf:http://172.25.25.105/supann#nom" value="rdf:http://172.25.25.105/supann#tooltip"/>
					   <treecell label="rdf:http://172.25.25.105/supann#prenom"/>
				   </treerow>
			</treeitem>
			</treechildren>
		</template>
	</tree>

Je vous remercie pour l'aide que vous m'apporter. A première vue la requete est bonne mais comme je le disais precedemment, on ne voie pas une structure drf a l'ecran mais une suite de nom?? De plus, la question va paraitre stupide mais pour composante je passe un entier et lors d'un echo $sql, je me suis rendu compte que ca donnait composante="7" (par exemple ^_^ ) est ce normale, est ce que ca ne va pas penalisé ma requete?

D'avance je vous remercie pour vos reponses.

# Re: RDF PHP TREE

Envoyé par : alexp

Date : 25/04/2006 14:26

trollchichon a écrit:

A première vue la requete est bonne mais comme je
le disais precedemment, on ne voie pas une
structure drf a l'ecran mais une suite de nom??

à l'écran quand tu le regardes manuellement dans ton navigateur ?
Je ne sais pas si c'est obligatoire mais il manque : header('Content-type: text/xml'); // à faire avant tout echo.
Et attention à bien retirer le echo $sql."\n"; lors des tests dans XUL.
Tu as testé en retirant du template : value="rdf:http://172.25.25.105/supann#tooltip" ?

# Re: RDF PHP TREE

Envoyé par : trollchichon

Date : 25/04/2006 14:28

oui j'ai essayé mais ca ne marche pas je vais essayé le header('Content-type: text/xml'); Merci

# Re: RDF PHP TREE

Envoyé par : trollchichon

Date : 25/04/2006 14:33

Ca y est ca marche, c'etait le header('Content-type: text/xml'); qui manquait... Je vous remercie tous pour ce coup de main...

Je pense que je vais encore vous mettre a contribution avec les bulles d'informations...

Aller à la page :  1 2 3

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.