InterfaceLawTracks

De La Quadrature du Net
Aller à la navigationAller à la recherche

Il s'agit de faire une page d'accueil navigation pour ce qu'on peut appeler (nom provisoire) "Telecoms Package LawTracks",

Les pages créées sont celles commençant par "Telecoms Package" sur http://www.laquadrature.net/wiki/index.php?title=Special:Contributions&limit=500&target=Gibus. Il s'agit des articles du paquet télécom qui nous intéressent, selon leur différentes versions (commission, parlement, conseil, diverses commissions parlementaires, etc.). Avec également des comparaisons entre deux versions (avec les diffs mis en valeur), voire 3.

Pour naviguer à travers tout ça, il faudrait donc une page avec un formulaire, dans lequel on choisi :

  • la (ou 2 ou 3) version(s), parmi :
    • a. Directives originales (de 2002): Original_Directives
    • b. Proposition initiale Commission (de 2007) : Commission_Initial_Proposal
    • c. Avis JURI : JURI_Opinion
    • d. Avis CULT : CULT_Opinion
    • e. Avis ECON : ECON_Opinion
    • f. Avis LIBE : LIBE_Opinion
    • g. Rapport & Avis ITRE : ITRE_Report & ITRE_Opinion
    • h. Avis & Rapport IMCO : IMCO_Opinion & IMCO_Report
    • i. Première lecture Parlement : Parliament_First_Reading
    • j. Proposition modifiée Commission (de novembre 2008) : Commission_Amended_Proposal
    • k. Accord politique Conseil : Council_Political_Agreement

avec optionnellement un focus sur :

  • la directive "amendante", parmi :
    • 1. COD/2007/0247 (Trautmann) : COD_2007_0247
    • 2. COD/2007/0248 (Harbour) : COD_2007_0248
  • ou la directive amendée (de 2002), parmi :
    • 1. Accès (2002/19/CE) : Access
    • 2. Autorisation (2002/20/CE) : Authorisation
    • 3. Cadre (2002/21/CE) : Framework
    • 4. Service universel (2002/22/CE) : Universal_Services
    • 5. ePrivacy (2002/58/CE) : ePrivacy

On doit pouvoir ne demander aucun focus et se retrouver ainsi avec l'intégralité des 5 directives pour la version choisie.

En réponse à ce qu'on choisi dans ce formulaire, cela redirige vers la page mediawiki adéquate. Éventuellement, à la place d'une redirection, on peut imaginer que la page s'affiche dans un iframe ou un truc du genre, mais ce n'est pas essentiel amha.

J'ai a priori généré toutes les pages cibles en anglais et il manque encore les diffs en français, allemand et espagnol (à venir ces jours-ci).

Pour compliquer un peu, il y a des pièges, car certaines combinaisons n'ont pas de sens :

  • pas de focus possible sur la directive amendante pour les directives

originales

  • pas de diff entre toutes les versions, seulement lorsque cela est

intéressant, par ex. un diff entre la version CULT et la version JURI n'apporte rien, ces deux commissions parlementaires sont consultées pour avis et elles amendent la proposition initiale de la Commission, ce qui a du sens c'est donc le diff entre Commission et CULT et le diff entre Commission et JURI

  • pour le diff entre 3 versions, c'est encore plus restreint, il n'y a

que 2 possibilités : "Proposition initiale Commission (de 2007) / Parlement / Conseil" et "Proposition modifiée Commission (de novembre 2008) / Parlement / Conseil".

Les diffs pertinents sont les suivants :

Original_Directives_Commission_Initial_Proposal || oui || oui Original_Directives_JURI_Opinion || oui || oui Original_Directives_CULT_Opinion || oui || oui Original_Directives_ECON_Opinion || oui || oui Original_Directives_LIBE_Opinion || oui || oui Original_Directives_ITRE_Opinion || oui || oui Original_Directives_IMCO_Report || oui || oui Original_Directives_Parliament_First_Reading || oui || oui Original_Directives_Commission_Amended_Proposal || oui || oui Original_Directives_Council_Political_Agreement || oui || oui Commission_Initial_Proposal_JURI_Opinion || oui || oui Commission_Initial_Proposal_CULT_Opinion || oui || oui Commission_Initial_Proposal_ECON_Opinion || oui || oui Commission_Initial_Proposal_LIBE_Opinion || oui || oui Commission_Initial_Proposal_ITRE_Opinion || oui || oui Commission_Initial_Proposal_IMCO_Report || oui || oui Commission_Initial_Proposal_Parliament_First_Reading || oui || oui Commission_Initial_Proposal_Commission_Amended_Proposal || oui || oui Commission_Initial_Proposal_Council_Political_Agreement || oui || oui JURI_Opinion_ITRE_Report || oui || - JURI_Opinion_IMCO_Report || - || oui CULT_Opinion_ITRE_Report || oui || - CULT_Opinion_IMCO_Report || - || oui ECON_Opinion_ITRE_Report || oui || - ECON_Opinion_IMCO_Report || - || oui LIBE_Opinion_ITRE_Report || oui || - LIBE_Opinion_IMCO_Report || - || oui ITRE_Opinion_IMCO_Report || - || oui ITRE_Report_Parliament_First_Reading || oui || - IMCO_Opinion_ITRE_Report || oui || - IMCO_Report_Parliament_First_Reading || - || oui Parliament_First_Reading_Commission_Amended_Proposal || oui || oui Parliament_First_Reading_Council_Political_Agreement || oui || oui Commission_Amended_Proposal_Parliament_First_Reading || oui || oui Commission_Amended_Proposal_Council_Political_Agreement || oui || oui
Diff Pertinent pour COD/2007/0247 (Acces, Authorisation, Framework) Pertinent pour COD/2007/0248 (Universal Services, ePrivacy)

Pour ces exceptions, il suffirait d'afficher un message ou une page d'erreur, si les choix dans le formulaire conduisent à une page qui n'existe pas.

On pourra aussi si besoin faire un focus encore plus précis sur tel article ou tel considérant de telle directive, mais pour l'instant, je n'ai pas généré les pages correspondantes (à part http://www.laquadrature.net/wiki/Telecoms_Package_Framework_Article_8_4_1_ga_Parliament_First_Reading pour le fun). Ça compliquerait grandement la navigation (par ex. ne pas proposer un focus sur l'article 42 de la directive ePrivacy parce qu'il n'existe pas, etc.), ce genre de page, amha, ça sera juste pour nos besoins internes (par ex. pour un lien dans un communiqué de presse).

Voilà un peu le principe. J'espère que je suis compréhensible, sinon n'hésitez pas à me demander des explications (neurone2 at laquadrature.net).

Prototype de script php

Fait par Patrick (nca) : http://ah.bandas.free.fr/form.php

<?php //trap for url --------------------------- $array=array( "versions", "focus1", "focus2"); foreach($array as $var) if(isset($_POST[$var])) if(!is_array($_POST[$var])) ${$var}=htmlspecialchars($_POST[$var]); else { ${$var}=$_POST[$var];array_filter(${$var},"htmlspecialchars"); }

foreach($array as $var) if(isset(${$var})) if(is_array(${$var})){

print("

@$var=");print_r(${$var});print("

");

   }else{ 

print("

$var=${$var}

");

   }

/* Exemple de query GET $r = new HttpRequest('http://example.com/feed.rss', HttpRequest::METH_GET); $r->setOptions(array('lastmodified' => filemtime('local.rss'))); $r->addQueryData(array('category' => 3)); try {

   $r->send();
   if ($r->getResponseCode() == 200) {
       file_put_contents('local.rss', $r->getResponseBody());
   }

} catch (HttpException $ex) {

   echo $ex;

}

  • /

//if(test url) return404 echo something wrong //else //header redirect

?>

<?php // hello ! -------------------------------

// headers now sent !

print("

formulaire

");

 $timemark0=microtime();

?>

<?php // load datas ---------------------------- $versions=array(array("Original Directives "=>"Original Directives"),

               array("Commission Initial Proposal "=>"Commission Initial Proposal"),
               array("CULT Opinion "=>"CULT Opinion"),
               array("ECON Opinion "=>"ECON Opinion"),
               array("ITRE Opinion "=>"ITRE Opinion"),
               array("JURI Opinion "=>"JURI Opinion"),
               array("LIBE Opinion "=>"LIBE Opinion"),
               array("IMCO Opinion "=>"IMCO Opinion"),
               array("ITRE Report "=>"ITRE Report"),
               array("IMCO Report "=>"IMCO Report"),
               array("Parliament First Reading "=>"Parliament First Reading"),
               array("Commission Amended Proposal "=>"Commission Amended Proposal"),
               array("Council Political Agreement "=>"Council Political Agreement"));

$focus1=array( array("COD 2007 0247 "=>"COD 2007 0247 (Trautmann)"),

               array("COD 2007 0248 "=>"COD 2007 0248 (Harbour)"));

$focus2=array( array("Access "=>"Access"),

               array("Authorisation "=>"Authorisation"));

?>

<?php // form ---------------------------------- function myselect($select_name,$select_type,$array){

print("

<select name=\"$select_name\" $select_type selected=\"none\">\n"); print("<option value=\"\">$select_name</option>\n"); foreach($array as $myarray) foreach($myarray as $this_value=>$this_name){ print(" <option value=\"$this_value\">$this_name</option>\n"); } print("</select>

\n");

} ?>

<?php // construct wiki url -------------------- function myurl(){

 //pass
 $i=NULL;

} ?>


<?php // main ---------------------------------- print("<form action=\"form.php\" method=\"post\">\n");

print("

select your version

<fieldset>");

myselect("versions[]","multiple=\"multiple\"",$versions); myselect("focus1","",$focus1); myselect("focus2","",$focus2); print('<input type="submit"\n'); print("</fieldset></form>\n"); $timemark1=microtime(); printf("time elapsed: %f\n",$timemark1-$timemark0); exit(); ?>