Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# Creér un tree depuis un rdf (un tree pas une liste)

Envoyé par : Gimlith

Date : 28/06/2005 12:22

Bonjour a tous. alors malgrés votre aide de la derniere fois je suis toujours dans la panade ... j'ai réussis grace a vos conseils et la doc du site a crée un flux rdf dynamique. mais voila tous ceci est fait pour une liste ou un tableau et plus je triture le create_rdf.php pour obtenir un tree (une arborécense) et moins cela marche.

quelqu'un a déjas fait cette manip ?

Quoi qu'il en soit merci a

# Re: un script de "http://localhost" c'est vu refuser des privilèges UniversalXPConnect

Envoyé par : Utilisateur anonyme

Date : 30/06/2005 16:14

Bonjour Gimlith,

Je suis aussi un nouveau venu dans le monde du XUL, mais voici l'exemple de code PHP que j'utilise, pour peupler un tree:liste. C'est un exemple tres largement inspire de l'exemple de XULFR.

----------------------------------------------------------------------------------
<?php
// This script does not return any HTML, it returns XML/RDF
require_once ("JBphp/REQconnect.php");
require_once ("JBphp/REQconnexion.php");
require_once ("JBphp/REQexecRequest.php");

error_reporting (E_ALL);

$REQMIN = 16800;
$REQMAX = 17000;

$connexion = Connexion (SERVER,NAME,PASSWD,DBASE);
 
/// here is the SQL quering string to be modified

$SQLreq = "select REQUESTID, SITE, MODULE, REQUESTEDBY,  DATE_REQ,"
         . " STATUS, DESCRIPTION_S, GVRLEVEL, SR, REPLY_S,"
         . " PROCESSED_BY from REQUESTS"
         . " where REQUESTID between $REQMIN and $REQMAX"
         . " order by REQUESTID DESC;";


 $resultat = mysql_query ($SQLreq, $connexion);
///
 
 $compteurlignes = 1;
//  If we want to print all fields and not only the first 8
//  $nbAttr = mysql_num_fields ($resultat);
 $nbAttr = 11;
 $noLigne=0;
 define ('EOL',"\r\n");

  function XML_entities($str)
  {
    return preg_replace(array("'&'", "'\"'"), array('&#38;', '&#34;'), $str);
  }

$tab[0] = "REQid";
$tab[1] = "Site";
$tab[2] = "Program";
$tab[3] = "Requested_by";
$tab[4] = "Date";
$tab[5] = "STA";
$tab[6] = "Problem_Short_Description";
$tab[7] = "Release";
$tab[8] = "SR";
$tab[9] = "Reply_Short_Description";
$tab[10] = "Processed_by";

 header("Content-type: text/xml");

 echo ("<?xml version=\"1.0\" encoding=\"ISO8859-1\"?>".EOL);
 echo ("<RDF:RDF   xmlns:RDF=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\" "
       . "xmlns:REQUESTS=\"chrome://msgtools/content/rdf#\"> ".EOL);

 while ($tabAttr = mysql_fetch_row ($resultat))
   {
          echo ("     <RDF:Description about=\"urn:REQUESTS:data\">".EOL);
          echo ("          <REQUESTS:$tab[0]>$tabAttr[0]</REQUESTS:$tab[0]>".EOL);
          echo ("     </RDF:Description>".EOL);
          echo ("     <RDF:Description    about=\"urn:REQUESTS:$tabAttr[0]\">".EOL);
          for ($i=0; $i < $nbAttr; $i++)
            {
             $StringReplaced = htmlentities( addSlashes($tabAttr[$i]));
             echo ("            <REQUESTS:$tab[$i]>$StringReplaced</REQUESTS:$tab[$i]>".EOL);
           }
          echo ("     </RDF:Description>".EOL);
 
   }
 
 
 
 $SQLreq = "select REQUESTID from REQUESTS"
           . " where REQUESTID between $REQMIN and $REQMAX"
           . " order by REQUESTID DESC;";
  
 $SQLresult = mysql_query ($SQLreq, $connexion);
  
 echo ("<RDF:Seq about=\"urn:REQUESTS:data\">".EOL);
 
 while ( ($DBtest = mysql_fetch_object ($SQLresult)))
 {
 echo ("    <RDF:li    resource=\"urn:REQUESTS:$DBtest->REQUESTID\"/>".EOL);
 }
 echo ("</RDF:Seq>".EOL);
                                                                                                                               
 echo ("</RDF:RDF>".EOL);
 
 ?>
 
 ----------------------------------------------------------------------------------

Voici le code XUL du "tree" correspondant:

<?xml version="1.0"?>

<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>

<!--    onload="init();" -->

<window
   id="msgtools-window"
   orient="horizontal"
   title="MSG tools interface"
   xmlns:html="http://www.w3.org/1999/xhtml"
   xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">

<script src="msgtools.js" type="application/x-javascript"/>
<script type="application/x-javascript"><![CDATA[
                                                                                                                                
var tree;
var REQUESTS;
                                                                                                                                
function init()
 {
  loadTree('REQUESTS', 'http://localhost:81/testsite/requests.php');
 }
                                                                                                                                
function loadTree(treeId, dsURL)
 {
 tree = document.getElementById(treeId);
 tree.setAttribute('datasources', dsURL);
 }
                                                                                                                                
function reloadTree(treeId)
 {
 tree = document.getElementById(treeId);
 var dsURL=tree.getAttribute('datasources');
 tree.setAttribute('datasources', '');
 tree.setAttribute('datasources', dsURL);
 }
                                                                                                                                
]]></script>

 <hbox flex="1">
 <groupbox orient="horizontal" flex="1">
 <caption label=" MSGtools: REQUESTS Tree "/>
 <hbox flex="1">
 <vbox flex="1">
  <hbox align="center">
      <vbox>
       <button id="query-mail" label="initTree"  oncommand="init();" />
       <spacer style="height: 4px"/>
       <button id="close-button" label="close" oncommand="CloseWindow();"/>
       <spacer style="height: 4px"/>
       <button id="refresh-button" label="refresh" oncommand="reloadTree('REQUESTS');"/>
       <spacer style="height: 4px"/>
      </vbox>
  </hbox>
  <hbox flex="1">
    <vbox flex="1">
       <tree id="REQUESTS" flex="1" min-width="1024" min-height="600"
             flags="dont-build-content" ref="urn:REQUESTS:data" datasources="rdf:null">
         <treecols>
           <treecol id="REQid" label="REQid" primary="true" flex="1"/>
             <splitter class="tree-splitter"/>
           <treecol id="Site" label="Site" flex="1"/>
             <splitter class="tree-splitter"/>
           <treecol id="Program" label="Program" flex="1"/>
             <splitter class="tree-splitter"/>
           <treecol id="Requested_by" label="Requested_by" flex="1"/>
             <splitter class="tree-splitter"/>
           <treecol id="Date" label="Date" flex="1"/>
             <splitter class="tree-splitter"/>
           <treecol id="STA" label="STA" flex="1"/>
             <splitter class="tree-splitter"/>
           <treecol id="Problem_Short_Description" label="Problem_Short_Description" flex="1"/>
             <splitter class="tree-splitter"/>
           <treecol id="Release" label="Release" flex="1"/>
             <splitter class="tree-splitter"/>
           <treecol id="SR" label="SR" flex="1"/>
             <splitter class="tree-splitter"/>
           <treecol id="Reply_Short_Description" label="Reply_Short_Description" flex="1"/>
             <splitter class="tree-splitter"/>
           <treecol id="Processed_by" label="Processed_by" flex="1"/>
         </treecols>
         <template>
           <rule>
             <treechildren>
              <treeitem uri="rdf:*">
                <treerow>
                  <treecell label="rdf:chrome://msgtools/content/rdf#REQid"/>
                  <treecell label="rdf:chrome://msgtools/content/rdf#Site"/>
                  <treecell label="rdf:chrome://msgtools/content/rdf#Program"/>
                  <treecell label="rdf:chrome://msgtools/content/rdf#Requested_by"/>
                  <treecell label="rdf:chrome://msgtools/content/rdf#Date"/>
                  <treecell label="rdf:chrome://msgtools/content/rdf#STA"/>
                  <treecell label="rdf:chrome://msgtools/content/rdf#Problem_Short_Description"/>
                  <treecell label="rdf:chrome://msgtools/content/rdf#Release"/>
                  <treecell label="rdf:chrome://msgtools/content/rdf#SR"/>
                  <treecell label="rdf:chrome://msgtools/content/rdf#Reply_Short_Description"/>
                  <treecell label="rdf:chrome://msgtools/content/rdf#Processed_by"/>
                </treerow>
              </treeitem>
             </treechildren>
           </rule>
         </template>
       </tree>
    </vbox>
  </hbox>
 </vbox>
</hbox>
</groupbox>
</hbox>
</window>

Mais maintenant j'ai le meme probleme que toi dans le forum: "un script de http://localhost c'est vu refuser les privileges UniversalXPConnect. Est-ce que toute l'aide que tu as recu ce trouve dans ce forum, ou bien est-ce qu'il en a aussi dans un autre forum ? En fait quant je remplace l'URL qui appel le script PHP par le chemin jusqu'au fichier RDF cree par le script cela fonctionne bien, lorsque j'appelle l'URL dans le navigateur j'obtiens bien le RDF souhaite, mais lorsque le XUL appelle le script PHP, rien ne se passe.

Peux-tu essayer de resumer ce que tu as change pour faire fonctionner ton flux dynamique correctement ?

merci

# Re: Creér un tree depuis un rdf (un tree pas une liste)

Envoyé par : Gimlith

Date : 01/07/2005 08:38

je ne comprend pas ta question ... la solution de mon pb se trouvait dans la page d'exemple en affichant le source de cette page (ctrl+j) : exemplephprdf2 mais c'est normalement mis a jour sur la page de tut et le téléchargement du fichier d'exemple est normalement complet et dispo l'exemple

Ecrit par : laurentj

Date : le 10/06/2005 à 14h42

Ca y est, j'ai mis à jour les exemples et la page. Tout semble fonctionner correctement.
Dans l'exemple avançé, j'ai rajouté un bouton "supprimer".
Le tout est dans un zip téléchargeable.

revoir donc la page /wiki/SourceDeDonneesRdf

a+

mais mon pb n'était du qu'a l'utilisation d'un code dédié a FF<0.8 avec FF>1.0 ... si besoin je te colle les sources de mon appli mais cela doit normalement être dans l'exemple du zip.

:)

# Re: Creér un tree depuis un rdf (un tree pas une liste)

Envoyé par : Utilisateur anonyme

Date : 01/07/2005 16:54

Oui, en plus de mon exemple, j'essaie aussi de faire fonctionner l'exemple de la page du tutorial (exemple_php_rdf). Mais cela ne fonctionne pas tel que non plus, j'ai deja decouvert que la syntaxe PHP du script create_rdf.php n'est pas comprise par mon serveur PHP 4.3.8 livre et compile pour une installation de TYPO3 , je pense que si j'arrive a faire fonctionner localement l'exemple du tutorial avec une syntaxe adequate, je trouverai aussi pourquoi mon exemple ne fonctionne pas.

merci a+

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.