patrice puault | 19 Mar 20:24

Creation de nouvelles balises spip 1.8.2.g

Bonsoir,

Pour ceux qui seraient interressés de créer leurs propres balises, méthode
qui fonctionne après de nombreux tests.

Merci à Marc VALLETEAU de MOULLIAC qui m'a aiguillé.

1) Ajouter à la base de données une table spip_nom de votre table avec une
commande SQL Create ou en utilisant phpmyadmin (j'ai utilisé la seconde
méthode).

2)  Créer un fichier mes_fonctions .php3 à la racine de votre site

3) Insérer les commandes suivantes

<?php
include ('ecrire/inc_serialbase.php3');

global $tables_principales;
global $table_primary;                                // A rajouter,
provient de inc-compilo_api.php3
global $table_des_tables;                           // A rajouter, provient
de inc-compilo_api.php3
$table_primary['qcm']="id_qcm";               //provient des modèles de
inc-compilo_api.php3
$table_des_tables['qcm']='qcm';                //provient des modèles de
inc-compilo_api.php3

// Si les lignes ci-dessus ne sont pas rajoutées, erreur Mysql SELECT qcm.
FROM spip_qcm AS qcm
// You have an error in your SQL syntax ; ...

$tables_principales['spip_qcm']= array(
'field'=>array(
   "id_qcm" => "BIGINT( 21 ) NOT NULL AUTO_INCREMENT ",
   "question" => "TEXT CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL
DEFAULT NULL" ,
   "reponse1" => "TEXT CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL
DEFAULT NULL" ,
   "reponse2" => "TEXT CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL
DEFAULT NULL" ,
   "reponse3" => "TEXT CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL
DEFAULT NULL" ,
   "reponse4" => "TEXT CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL
DEFAULT NULL" ,
   "etat1"    => "TINYINT( 1 ) NOT NULL DEFAULT '1'",
   "etat2"    => "TINYINT( 1 ) NOT NULL DEFAULT '0'",
   "etat3"    => "TINYINT( 1 ) NOT NULL DEFAULT '0'",
   "etat4"    => "TINYINT( 1 ) NOT NULL DEFAULT '0'",
   "image1"   => "BINARY( 1 ) NULL DEFAULT '0'",
   "image2"   => "BINARY( 1 ) NULL DEFAULT '0'",
   "image3"   => "BINARY( 1 ) NULL DEFAULT '0'",
   "image4"   => "BINARY( 1 ) NULL DEFAULT '0'",
   "imagequest"   => "BINARY( 1 ) NULL DEFAULT '0'",
   "commentaire1" => "TEXT CHARACTER SET latin1 COLLATE latin1_swedish_ci
NULL DEFAULT NULL" ,
   "commentaire2" => "TEXT CHARACTER SET latin1 COLLATE latin1_swedish_ci
NULL DEFAULT NULL" ,
   "commentaire3" => "TEXT CHARACTER SET latin1 COLLATE latin1_swedish_ci
NULL DEFAULT NULL" ,
   "commentaire4" => "TEXT CHARACTER SET latin1 COLLATE latin1_swedish_ci
NULL DEFAULT NULL" ,
   "centre"    => "ENUM( 'CSM', 'JPT', 'Vouzeron', 'autre' ) CHARACTER SET
latin1 COLLATE latin1_swedish_ci NOT NULL DEFAULT 'CSM'"
   ),
'key' => array("PRIMARY KEY" => "id_qcm")
  );

//---------------- Requête de base pour cette
table -----------------------------

function boucle_QCM($id_boucle, &$boucles) {
 $boucle = &$boucles[$id_boucle];
 $id_table = $boucle->id_table;
 $boucle->from[] = "spip_qcm AS $id_table";
 return calculer_boucle($id_boucle, $boucles);
}
?>
) Vous pouvez alors créer des boucles du style :

<BOUCLE_TEST(QCM)>
    Question : #QUESTION
        Item1 : #REPONSE1
        Item2 : #REPONSE2
        Item3 : #REPONSE3
        Item4 : #REPONSE4
</BOUCLE_TEST>

Cordialement à tous les SPIPEUR(EUSE)s

Bonsoir,

Pour ceux qui seraient interressés de créer leurs propres balises, méthode
qui fonctionne après de nombreux tests.

Merci à Marc VALLETEAU de MOULLIAC qui m'a aiguillé.

1) Ajouter à la base de données une table spip_nom de votre table avec une
commande SQL Create ou en utilisant phpmyadmin (j'ai utilisé la seconde
méthode).

2)  Créer un fichier mes_fonctions .php3 à la racine de votre site

3) Insérer les commandes suivantes

<?php
include ('ecrire/inc_serialbase.php3');

global $tables_principales;
global $table_primary;                                // A rajouter,
provient de inc-compilo_api.php3
global $table_des_tables;                           // A rajouter, provient
de inc-compilo_api.php3
$table_primary['qcm']="id_qcm";               //provient des modèles de
inc-compilo_api.php3
$table_des_tables['qcm']='qcm';                //provient des modèles de
inc-compilo_api.php3

// Si les lignes ci-dessus ne sont pas rajoutées, erreur Mysql SELECT qcm.
FROM spip_qcm AS qcm
// You have an error in your SQL syntax ; ...

$tables_principales['spip_qcm']= array(
'field'=>array(
   "id_qcm" => "BIGINT( 21 ) NOT NULL AUTO_INCREMENT ",
   "question" => "TEXT CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL
DEFAULT NULL" ,
   "reponse1" => "TEXT CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL
DEFAULT NULL" ,
   "reponse2" => "TEXT CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL
DEFAULT NULL" ,
   "reponse3" => "TEXT CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL
DEFAULT NULL" ,
   "reponse4" => "TEXT CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL
DEFAULT NULL" ,
   "etat1"    => "TINYINT( 1 ) NOT NULL DEFAULT '1'",
   "etat2"    => "TINYINT( 1 ) NOT NULL DEFAULT '0'",
   "etat3"    => "TINYINT( 1 ) NOT NULL DEFAULT '0'",
   "etat4"    => "TINYINT( 1 ) NOT NULL DEFAULT '0'",
   "image1"   => "BINARY( 1 ) NULL DEFAULT '0'",
   "image2"   => "BINARY( 1 ) NULL DEFAULT '0'",
   "image3"   => "BINARY( 1 ) NULL DEFAULT '0'",
   "image4"   => "BINARY( 1 ) NULL DEFAULT '0'",
   "imagequest"   => "BINARY( 1 ) NULL DEFAULT '0'",
   "commentaire1" => "TEXT CHARACTER SET latin1 COLLATE latin1_swedish_ci
NULL DEFAULT NULL" ,
   "commentaire2" => "TEXT CHARACTER SET latin1 COLLATE latin1_swedish_ci
NULL DEFAULT NULL" ,
   "commentaire3" => "TEXT CHARACTER SET latin1 COLLATE latin1_swedish_ci
NULL DEFAULT NULL" ,
   "commentaire4" => "TEXT CHARACTER SET latin1 COLLATE latin1_swedish_ci
NULL DEFAULT NULL" ,
   "centre"    => "ENUM( 'CSM', 'JPT', 'Vouzeron', 'autre' ) CHARACTER SET
latin1 COLLATE latin1_swedish_ci NOT NULL DEFAULT 'CSM'"
   ),
'key' => array("PRIMARY KEY" => "id_qcm")
  );

//---------------- Requête de base pour cette
table -----------------------------

function boucle_QCM($id_boucle, &$boucles) {
 $boucle = &$boucles[$id_boucle];
 $id_table = $boucle->id_table;
 $boucle->from[] = "spip_qcm AS $id_table";
 return calculer_boucle($id_boucle, $boucles);
}
?>
) Vous pouvez alors créer des boucles du style :

<BOUCLE_TEST(QCM)>
    Question : #QUESTION
        Item1 : #REPONSE1
        Item2 : #REPONSE2
        Item3 : #REPONSE3
        Item4 : #REPONSE4
</BOUCLE_TEST>

Cordialement à tous les SPIPEUR(EUSE)s


Gmane