Forums : Template et RDF

Aller à la discussion :  Plus récente Plus ancienne

Aller à la page :  1 2 3

# [Résolu] RDF PHP TREE

Envoyé par : trollchichon

Date : 21/04/2006 12:35

Bonjour, c'est avec grand interet que j'ai lu Applis Web/Exemple Php Rdf mais je ne comprend pas d'ou provient le :

http://dummy/rdf#

je suppose qu'il faut le midifier mais que mettre a la place et comment voir le resultat du fichier RDF generé par PHP (on ne le vois pas sur le code source de la page)

D'avance merci

# Re: RDF PHP TREE

Envoyé par : laurentj

Date : 21/04/2006 12:56

c'est un namespace inventé.. tu met ce que tu veux...

# Re: RDF PHP TREE

Envoyé par : trollchichon

Date : 21/04/2006 13:35

puis je le laisser parce que je fait ceci :

<?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
  $result = mysql_query('SELECT * FROM sample_tbl',$cnx);
  $res = $supann_db->Execute("SELECT people.sn, people.givenName FROM people");
  $result = $res->GetArray();
  // on spécifie au navigateur le type mime des données qu'on va lui envoyé. Ici, c'est du RDF, dont text/xml.
  header('Content-type: text/xml');
  // 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://dummy/rdf#" 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>');
      // parseType = indication pour le type des données, utile pour le trie sur la colonne
      echo('<row:nom>'.XML_entities($row['sn']).'</row:nom>');    echo('<row:prenom>'.XML_entities($row['givenName']).'</row:prenom>');
      echo('</RDF:Description>'.EOL);
      echo('</RDF:li>'.EOL);
    }
  // fin du fichier RDF
  echo('</RDF:Bag>'.EOL);
  echo('</RDF:RDF>'.EOL);
  ?>
 <tree id="liste_champs_1" flex="1" flags="dont-build-content" ref="urn:data:row" datasources="create_rdf.php">
     <treecols>
    	<treecol id="nom" label="Nom" primary="true" flex="1"
	class="sortDirectionIndicator" sortActive="false"
	sortDirection="ascending"
	sort="rdf:http://dummy/rdf#nom"/>
	<splitter class="tree-splitter"/>
	<treecol id="prenom" label="Prénom" flex="1"
	class="sortDirectionIndicator" sortActive="true"
	sortDirection="ascending"
	sort="rdf:http://dummy/rdf#prenom"/>
</treecols>
<template>
	<treechildren id="treechildren1">
	<treeitem uri="rdf:*">
		  <treerow>
		  	   <treecell label="rdf:http://dummy/rdf#nom"/>
			   <treecell label="rdf:http://dummy/rdf#prenom"/>
		   </treerow>
	</treeitem>
	</treechildren>
</template>
</tree>

et rien ne s'affiche...

et comment afficher le rdf?

# Re: RDF PHP TREE

Envoyé par : laurentj

Date : 21/04/2006 14:20

si rien ne s'affiche, tu dois avoir un probleme quelque part dans le contenu de ton rdf. afficher createrdf.php directement dans le navigateur, pour voir ce que ça génère réèllement.

# Re: RDF PHP TREE

Envoyé par : trollchichon

Date : 21/04/2006 14:29

Il me retourne ceci :

<RDF:RDF>
   <RDF:Bag about="urn:data:row">
      <RDF:li>
         <RDF:Description>
            <row:nom>unNom</row:nom>
            <row:prenom>UnPrenom</row:prenom>
         </RDF:Description>
      </RDF:li>
   </RDF:Bag>
</RDF:RDF>

mais il ne met pas les elements dans l'arbre. Je pense que le probleme vient de l'espace de nommage mais je ne sais pas quoi mettre dedans...

# Re: RDF PHP TREE

Envoyé par : trollchichon

Date : 21/04/2006 14:35

Ca y est ca marche, j'ai mit l'adresse de mon serveur. Par contre ma méthode javascript me permettant de faire la transfert de l'arbre généré vers un second (en dur ou Rdf je ne sais pas encore) ne marche plus, comment cela se fait? (les id dont on a besoin y sont encore placé)

# Re: RDF PHP TREE

Envoyé par : laurentj

Date : 21/04/2006 16:23

à cause du flags="dont-build-content" qui fait que ça ne génère pas les noeuds dom. Si tu n'a pas beaucoup de données, tu peux l'enlever.

# Re: RDF PHP TREE

Envoyé par : trollchichon

Date : 24/04/2006 14:32

Bonjour, je reprends mon message car il y a un truc que je ne comprend pas : j'ai un tree genere par un RDF avec PHP:

<tree id="liste_champs_1" flex="1" ref="urn:data:row" datasources="create_rdf.php" >
	      <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>...
<?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
(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($_POST['recherche']) && trim($_POST['recherche']) != ''){
$sql = 'SELECT sn, givenName  FROM people WHERE cn LIKE  "'.$_POST['recherche'].'%" ';
if($_POST['affiliation'] != 'Affiliation' &&  $_POST['affiliation'] != '' && 
$_POST['affiliation'] !='------------------------------------------------------------------'){
	$sql.= 'AND eduPersonPrimaryAffiliation="'.$_POST['affiliation'].'"';
}
if($_POST['composante'] != 'Composantes' && $_POST['composante'] != '' && 
$_POST['composante'] !='------------------------------------------------------------------'){
	$sql.= 'AND supannAffectation="'.$_POST['composante'].'"';
}
echo $sql."\n";
$res = $supann_db->Execute($sql);
$result = $res->GetArray();
if($res == false){
	echo mysql_error($cnx);
}
else{
     	echo 'ok';
}
}
// 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>');
  // parseType = indication pour le type des données, utile pour le trie sur la colonne
  echo('<row:nom>'.XML_entities($row['sn']).'</row:nom>');
  echo('<row:prenom>'.XML_entities($row['givenName']).'</row:prenom>');
  echo('</RDF:Description>'.EOL);
  echo('</RDF:li>'.EOL);
}
// fin du fichier RDF
echo('</RDF:Bag>'.EOL);
echo('</RDF:RDF>'.EOL);
?>

et le code javascript lors du clique sur le bouton :

function chargerArbre(tr){
var tree = document.getElementById(tr);
var dsUrl = 'create_rdf.php';
var val1=document.getElementById("recherche2").value;
var val2=document.getElementById("searchtype3").value;
var val3=document.getElementById("searchtype4").value;
var chaine = escape("recherche")+"="+escape(val1)+"&"+escape("affiliation")+"="+escape(val3)+"&"+escape("composante")+"="+escape(val2);
p = new XMLHttpRequest();
p.onload = null;
p.open("POST","create_rdf.php", false);
p.setRequestHeader("Content-type","application/x-www-form-urlencoded");
p.send(chaine);
status = p.status;
if ( status != "200" ) {
	alert("arg ! mauvaise réponse http ("+ status +")");
} else {
       	alert(" effectué");
	document.getElementById("find-text1").value = '';
}
}

voila le tout mais comment mettre l'arbre a jour. Je pense que je me fourvoye quelque part mais je ne sais où...

J'attend vos reponses . D'avance merci.

# Re: RDF PHP TREE

Envoyé par : laurentj

Date : 24/04/2006 16:29

comme je l'ai déja dit 100 fois sur ce forum : voir l'exemple php rdf. il y a TOUT dedans, et toutes les explications sur le wiki.. Et en plus, ton problème est cité dans la FAQ...

# Re: RDF PHP TREE

Envoyé par : trollchichon

Date : 25/04/2006 09:20

bon j'ai lu et relu le wiki et les messages du forum (surtout celui-ci) et je suis arrivé a la solution suivante :

function chargerArbre(tr){
var tree = document.getElementById(tr);
var dsUrl = 'create_rdf.php';
var val1=document.getElementById("recherche2").value;
var val2=document.getElementById("searchtype3").value;
var val3=document.getElementById("searchtype4").value;
var chaine = escape("recherche")+"="+escape(val1)+"&"+escape("affiliation")+"="+escape(val3)+"&"+escape("composante")+"="+escape(val2);
p = new XMLHttpRequest();
p.onload = null;
p.open("POST","create_rdf.php", false);
p.setRequestHeader("Content-type","application/x-www-form-urlencoded");
p.send(chaine);
status = p.status;
if ( status != "200" ) {
	alert("arg ! mauvaise réponse http ("+ status +")");
} else {
       	alert(" effectué");
	document.getElementById("recherche2").value = ' ';
}
alert(p.responseText);
var appendRandom=Math.random();
dsUrl = "create_rdf.php" + "?" + chaine + "&ZZ=" + appendRandom ;
alert(dsUrl);
tree.setAttribute('datasources', '');
tree.setAttribute('datasources', dsUrl);
alert("fini");
}

Alors j'ai bien l'affichage de la requete qui se fait, l'url est bonne , j'ai meme l'affichage de "fini" mais il n'y a pas de refresh sur le tree... Aidez moi svp je ne comprend pas mon erreur...

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.