Browse Source

Ajout des données du référentiel v4, et fonctions de mise à jour

master
nicod_ 3 months ago
parent
commit
6ef999dce0
  1. 41
      base/opquast.php
  2. 2162
      data/data-fr-v4.json
  3. 104
      opquast_administrations.php
  4. 4
      paquet.xml

41
base/opquast.php

@ -16,12 +16,16 @@ if (!defined('_ECRIRE_INC_VERSION')) {
* Déclarations d'interface pour le compilateur
**/
function opquast_declarer_tables_interfaces($interfaces) {
$interfaces['table_des_tables']['opquast_criteres'] = 'opquast_criteres';
$interfaces['table_des_tables']['opquast_criteres'] = 'opquast_criteres';
$interfaces['table_des_tables']['opquast_criteres_liens'] = 'opquast_criteres_liens';
$interfaces['table_des_tables']['opquast_tags'] = 'opquast_tags';
$interfaces['table_des_tables']['opquast_tags'] = 'opquast_tags';
$interfaces['table_des_tables']['opquast_themes'] = 'opquast_themes';
$interfaces['table_des_tables']['opquast_etapes'] = 'opquast_etapes';
$interfaces['tables_jointures']['spip_opquast_criteres'][] = 'opquast_criteres_liens';
$interfaces['tables_jointures']['spip_opquast_tags'][] = 'opquast_criteres_liens';
$interfaces['tables_jointures']['spip_opquast_tags'][] = 'opquast_criteres_liens';
$interfaces['tables_jointures']['spip_opquast_themes'][] = 'opquast_criteres_liens';
$interfaces['tables_jointures']['spip_opquast_etapes'][] = 'opquast_criteres_liens';
return $interfaces;
}
@ -45,6 +49,8 @@ function opquast_declarer_tables_objets_sql($tables) {
'table_objet_surnoms' => array('opquast_critere'),
'field' => array(
'id_opquast_critere' => 'BIGINT(21) NOT NULL',
'numero' => 'BIGINT(21) NOT NULL',
'version' => 'VARCHAR(5) NOT NULL DEFAULT ""',
'titre' => "TEXT NOT NULL DEFAULT ''",
'lien' => "TEXT NOT NULL DEFAULT ''",
'texte' => "TEXT NOT NULL DEFAULT ''",
@ -56,7 +62,12 @@ function opquast_declarer_tables_objets_sql($tables) {
'KEY statut' => 'statut',
),
'titre' => 'titre AS titre, "" AS lang',
'champs_editables' => array(),
'champs_editables' => array(
'titre',
'texte',
'numero',
'version',
),
'champs_versionnes' => array(),
'rechercher_champs' => array(
'titre' => 10,
@ -118,6 +129,28 @@ function opquast_declarer_tables_principales($tables) {
),
);
$tables['spip_opquast_themes'] = array(
'field' => array(
'id_opquast_theme' => 'BIGINT(21) NOT NULL',
'titre' => "TEXT NOT NULL DEFAULT ''",
'maj' => 'TIMESTAMP',
),
'key' => array(
'PRIMARY KEY' => 'id_opquast_theme',
),
);
$tables['spip_opquast_etapes'] = array(
'field' => array(
'id_opquast_etape' => 'BIGINT(21) NOT NULL',
'titre' => "TEXT NOT NULL DEFAULT ''",
'maj' => 'TIMESTAMP',
),
'key' => array(
'PRIMARY KEY' => 'id_opquast_etape',
),
);
return $tables;
}

2162
data/data-fr-v4.json
File diff suppressed because it is too large
View File

104
opquast_administrations.php

@ -33,11 +33,30 @@ function opquast_upgrade($nom_meta_base_version, $version_cible) {
'spip_opquast_criteres',
'spip_opquast_criteres_liens',
'spip_opquast_tags',
'spip_opquast_themes',
'spip_opquast_etapes',
),
),
array('populate_opquast_criteres'),
);
$maj['1.1.0'] = array(
array(
'maj_tables',
array(
'spip_opquast_criteres',
'spip_opquast_criteres_liens',
'spip_opquast_tags',
'spip_opquast_themes',
'spip_opquast_etapes',
),
),
);
$maj['2.0.0'] = array(
array('populate_opquast_criteres_v4'),
);
include_spip('base/upgrade');
maj_plugin($nom_meta_base_version, $version_cible, $maj);
}
@ -54,6 +73,8 @@ function opquast_vider_tables($nom_meta_base_version) {
sql_drop_table('spip_opquast_criteres');
sql_drop_table('spip_opquast_criteres_liens');
sql_drop_table('spip_opquast_tags');
sql_drop_table('spip_opquast_themes');
sql_drop_table('spip_opquast_etapes');
effacer_meta($nom_meta_base_version);
}
@ -71,22 +92,81 @@ function populate_opquast_criteres() {
$content = json_decode($content, true);
}
foreach ($data as $row) {
$texte = (isset($content[ $row['id'] ]) ? $content[ $row['id'] ] : '');
$texte = str_replace('<ul>', '<ul class="spip">', $texte);
$texte = (isset($content[$row['id']]) ? $content[$row['id']] : '');
$texte = str_replace('<ul>', '<ul class="spip">', $texte);
$critere = array(
'titre' => $row['title'],
'lien' => $row['link'],
'texte' => $texte,
'statut' => 'non_verifie',
);
$id_opquast_critere = sql_insertq('spip_opquast_criteres', $critere);
$tags = explode(',', $row['tags']);
foreach ($tags as $tag) {
if (!$id_opquast_tag = sql_getfetsel('id_opquast_tag', 'spip_opquast_tags', 'titre = ' . sql_quote($tag))) {
$id_opquast_tag = sql_insertq('spip_opquast_tags', array('titre' => $tag));
}
sql_insertq('spip_opquast_criteres_liens', array('id_opquast_critere' => $id_opquast_critere, 'objet' => 'opquast_tag', 'id_objet' => $id_opquast_tag));
}
}
}
function populate_opquast_criteres_v4() {
include_spip('action/editer_objet');
include_spip('action/editer_liens');
sql_update('spip_opquast_criteres', array('numero' => 'id_opquast_critere', 'version' => sql_quote('v3')));
// utiliser la nouvelle liste par défaut
ecrire_config('opquast/version','v4');
if ($data = file_get_contents(__DIR__ . '/data/data-fr-v4.json')) {
$data = json_decode($data, true);
}
foreach ($data as $key => $row) {
$texte = '<p><strong>' . _T('opquast_critere:champ_objectif_label') . '</strong></p>' . $row['objectif'];
$texte .= '<p><strong>' . _T('opquast_critere:champ_solution_label') . '</strong></p>' . $row['solution'];
$texte .= '<p><strong>' . _T('opquast_critere:champ_controle_label') . '</strong></p>' . $row['controle'];
$texte = str_replace('<ul>', '<ul class="spip">', $texte);
$critere = array(
'titre' => $row['title'],
'lien' => $row['link'],
'texte' => $texte,
'statut' => 'non_verifie'
'titre' => $row['titre'],
'texte' => $texte,
'numero' => $key,
'version' => 'v4',
'statut' => 'non_verifie',
);
$id_opquast_critere = sql_insertq('spip_opquast_criteres',$critere);
$tags = explode(',',$row['tags']);
$id_opquast_critere = objet_inserer('opquast_criteres', null, $critere);
$tags = explode(',', $row['tag']);
foreach ($tags as $tag) {
if(!$id_opquast_tag = sql_getfetsel('id_opquast_tag','spip_opquast_tags','titre = '.sql_quote($tag))) {
$id_opquast_tag = sql_insertq('spip_opquast_tags', array('titre'=> $tag));
if($tag) {
if (!$id_opquast_tag = sql_getfetsel('id_opquast_tag', 'spip_opquast_tags', 'titre = ' . sql_quote($tag))) {
$id_opquast_tag = sql_insertq('spip_opquast_tags', array('titre' => $tag));
}
objet_associer(array('opquast_critere' => $id_opquast_critere), array('opquast_tag' => $id_opquast_tag));
}
}
$etapes = explode(',', $row['etape']);
foreach ($etapes as $etape) {
if($etape) {
if (!$id_opquast_etape = sql_getfetsel('id_opquast_etape', 'spip_opquast_etapes', 'titre = ' . sql_quote($etape))) {
$id_opquast_etape = sql_insertq('spip_opquast_etapes', array('titre' => $etape));
}
objet_associer(array('opquast_critere' => $id_opquast_critere), array('opquast_etape' => $id_opquast_etape));
}
}
$themes = explode(',', $row['theme']);
foreach ($themes as $theme) {
if($theme) {
if (!$id_opquast_theme = sql_getfetsel('id_opquast_theme', 'spip_opquast_themes', 'titre = ' . sql_quote($theme))) {
$id_opquast_theme = sql_insertq('spip_opquast_themes', array('titre' => $theme));
}
objet_associer(array('opquast_critere' => $id_opquast_critere), array('opquast_theme' => $id_opquast_theme));
}
sql_insertq('spip_opquast_criteres_liens', array('id_opquast_critere' => $id_opquast_critere,'objet' => 'opquast_tag', 'id_objet'=> $id_opquast_tag));
}
}
}

4
paquet.xml

@ -1,12 +1,12 @@
<paquet
prefix="opquast"
categorie="outil"
version="1.1.2"
version="2.0.0"
etat="test"
compatibilite="[3.2.0;3.3.*]"
logo="prive/themes/spip/images/opquast-64.png"
documentation=""
schema="1.0.0"
schema="2.0.0"
>
<nom>Check-list Opquast</nom>

Loading…
Cancel
Save