Browse Source

Un include mal écrit.

Ajout d'un champ couleur à la rubrique mais en commentaire pour l'instant à cause de MySQL5.7.
Les items de langue des catégories sont dans SVP Typologie maintenant.
master
Eric Lupinacci 4 years ago
parent
commit
2a2fb93b79
  1. 2
      action/rubrique_prefixe_generer.php
  2. 21
      base/contrib_declarations.php
  3. 462
      inc/contrib_rubrique.php
  4. 2
      inc/presenter_enfants.php
  5. 4
      paquet.xml
  6. 2
      prive/objets/infos/rubrique.html

2
action/rubrique_prefixe_generer.php

@ -29,7 +29,7 @@ function action_rubrique_prefixe_generer_dist(){
// Actualisation des rubriques-plugin :
// Un rubrique-plugin a une profondeur de 2 et est incluse dans un secteur-plugin.
// -- on récupère les secteurs-plugin
include_spip('inc:contrib_rubrique');
include_spip('inc/contrib_rubrique');
$secteurs_plugin = rubrique_lister_secteur_plugin();
// Pour limiter le nombre de rubriques récupérées, on boucle par secteur.

21
base/contrib_declarations.php

@ -24,7 +24,7 @@ function contrib_declarer_champs_extras($champs = array()) {
'saisie' => 'rubrique_categorie',
'options' => array(
'nom' => 'categorie',
'label' => '<:svp:label_categorie:>',
'label' => '<:svptype:categorie_identifiant_label:>',
'option_intro' => '<:contrib:categorie_vide_label:>',
'env' => true,
'restrictions' => array(
@ -61,6 +61,25 @@ function contrib_declarer_champs_extras($champs = array()) {
),
);
/* $champs['spip_rubriques']['couleur'] = array(
'saisie' => 'couleur',
'options' => array(
'nom' => 'couleur',
'label' => '<:contrib:rubrique_couleur_label:>',
'env' => true,
'restrictions' => array(
'modifier' => array(
'auteur' => 'webmestre',
),
'voir' => false,
),
'sql' => "varchar(7) DEFAULT '' NOT NULL",
),
'versionner' => false,
'verifier' => array(
),
);*/
// Table : spip_rubriques, on initialise les champs extras de la table.
// Ajout de la catégorie de plugin. La saisie est une sélection particulière.
$champs['spip_articles']['type_article'] = array(

462
inc/contrib_rubrique.php

@ -1,239 +1,223 @@
<?php
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
function rubrique_lire_profondeur($id_rubrique) {
static $profondeurs = array();
if (!isset($profondeurs[$id_rubrique])) {
$from = 'spip_rubriques';
$where = array('id_rubrique=' . intval($id_rubrique));
$profondeurs[$id_rubrique] = sql_getfetsel('profondeur', $from, $where);
}
return $profondeurs[$id_rubrique];
}
function rubrique_lire_parent($id_rubrique) {
static $ids_parent = array();
if (!isset($ids_parent[$id_rubrique])) {
$ids_parent[$id_rubrique] = 0;
$from = 'spip_rubriques';
$where = array('id_rubrique=' . intval($id_rubrique));
$id = sql_getfetsel('id_parent', $from, $where);
if ($id !== null) {
$ids_parent[$id_rubrique] = $id;
}
}
return $ids_parent[$id_rubrique];
}
function rubrique_lire_secteur($id_rubrique) {
static $ids_secteur = array();
if (!isset($ids_secteur[$id_rubrique])) {
$ids_secteur[$id_rubrique] = 0;
$from = 'spip_rubriques';
$where = array('id_rubrique=' . intval($id_rubrique));
$id = sql_getfetsel('id_secteur', $from, $where);
if ($id !== null) {
$ids_secteur[$id_rubrique] = $id;
}
}
return $ids_secteur[$id_rubrique];
}
function rubrique_lire_categorie($id_rubrique) {
static $categories = array();
if (!isset($categories[$id_rubrique])) {
$categories[$id_rubrique] = '';
$from = 'spip_rubriques';
$where = array('id_rubrique=' . intval($id_rubrique));
$categorie = sql_getfetsel('categorie', $from, $where);
if ($categorie !== null) {
$categories[$id_rubrique] = $categorie;
}
}
return $categories[$id_rubrique];
}
function rubrique_determiner_type($id_rubrique) {
static $types = array();
if (!isset($types[$id_rubrique])) {
if (rubrique_dans_secteur_plugin($id_rubrique)) {
$types[$id_rubrique] = 'plugin';
} elseif (rubrique_dans_secteur_apropos($id_rubrique)) {
$types[$id_rubrique] = 'apropos';
} elseif (rubrique_dans_secteur_carnet($id_rubrique)) {
$types[$id_rubrique] = 'carnet';
} elseif (rubrique_dans_secteur_galaxie($id_rubrique)) {
$types[$id_rubrique] = 'galaxie';
} else {
$types[$id_rubrique] = '';
}
}
return $types[$id_rubrique];
}
function rubrique_determiner_couleur($categorie) {
static $couleurs = array(
'auteur' => '1310b2',
'communication' => 'acbd70',
'date' => '471bb2',
'interactivite' => '50699b',
'contenu' => 'b22ba4',
'administration' => '09b2a3',
'multimedia' => 'de175f',
'navigation' => 'b26714',
'developpement' => 'dfb811',
'multilinguisme' => '11b23c',
'activite' => 'bd87c0',
'interface-publique' => '40dd5d',
);
$couleur = (!$categorie or empty($couleurs[$categorie])) ? 'b9274d' : $couleurs[$categorie];
return $couleur;
}
/**
* Vérifie que la rubrique concernée fait bien partie du secteur-apropos.
* Le secteur-apropos est déterminé par la configuration du secteur exclus dans
* le plugin Exclure Secteur.
*
* @param int $id
* Id de la rubrique concernée.
*
* @return bool
* True si la rubrique fait partie du secteur-apropos, false sinon.
*/
function rubrique_dans_secteur_apropos($id_rubrique) {
$est_apropos = false;
include_spip('inc/config');
$apropos = lire_config('secteur/exclure_sect', array());
if ($apropos and in_array(rubrique_lire_secteur($id_rubrique), $apropos)) {
$est_apropos = true;
}
return $est_apropos;
}
/**
* Vérifie que la rubrique concernée fait bien partie du secteur-carnet.
* Le secteur-carnet est déterminé par la configuration de l'espace wiki dans le plugin
* Autorité.
*
* @param int $id
* Id de la rubrique concernée.
*
* @return bool
* True si la rubrique fait partie du secteur-carnet, false sinon.
*/
function rubrique_dans_secteur_carnet($id_rubrique) {
$est_carnet = false;
include_spip('inc/config');
$carnet = lire_config('autorite/espace_wiki', array());
if ($carnet and in_array(rubrique_lire_secteur($id_rubrique), $carnet)) {
$est_carnet = true;
}
return $est_carnet;
}
/**
* Vérifie que la rubrique concernée fait bien partie du secteur-carnet.
* Le secteur-carnet est déterminé par la configuration de l'espace wiki dans le plugin
* Autorité.
*
* @param int $id
* Id de la rubrique concernée.
*
* @return bool
* True si la rubrique fait partie du secteur-carnet, false sinon.
*/
function rubrique_dans_secteur_galaxie($id_rubrique) {
$est_galaxie = false;
include_spip('inc/config');
$galaxie = lire_config('contrib/secteurs', array());
if ($galaxie and in_array(rubrique_lire_secteur($id_rubrique), $galaxie)) {
$est_galaxie = true;
}
return $est_galaxie;
}
/**
* Vérifie que la rubrique concernée fait bien partie d'un secteur-plugin.
* Il suffit de vérifier que le secteur a bien une catégorie non vide.
*
* @param int $id
* Id de la rubrique concernée.
*
* @return bool
* True si la rubrique fait partie d'un secteur-plugin, false sinon.
*/
function rubrique_dans_secteur_plugin($id_rubrique) {
static $est_plugin = array();
if (!isset($est_plugin[$id_rubrique])) {
$est_plugin[$id_rubrique] = false;
if (rubrique_lire_categorie(rubrique_lire_secteur($id_rubrique))) {
$est_plugin[$id_rubrique] = true;
}
}
return $est_plugin[$id_rubrique];
}
/**
* Récupère les id de tous les secteurs-plugin.
*
* @return array
* Liste des id des secteurs-pllugin ou tableau vide.
*/
function rubrique_lister_secteur_plugin() {
$from = 'spip_rubriques';
$where = array('profondeur=0', 'categorie!=' . sql_quote(''));
if ($secteurs = sql_allfetsel('id_rubrique', $from, $where)) {
$secteurs = array_map('reset', $secteurs);
}
return $secteurs;
}
<?php
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
function rubrique_lire_profondeur($id_rubrique) {
static $profondeurs = array();
if (!isset($profondeurs[$id_rubrique])) {
$from = 'spip_rubriques';
$where = array('id_rubrique=' . intval($id_rubrique));
$profondeurs[$id_rubrique] = sql_getfetsel('profondeur', $from, $where);
}
return $profondeurs[$id_rubrique];
}
function rubrique_lire_parent($id_rubrique) {
static $ids_parent = array();
if (!isset($ids_parent[$id_rubrique])) {
$ids_parent[$id_rubrique] = 0;
$from = 'spip_rubriques';
$where = array('id_rubrique=' . intval($id_rubrique));
$id = sql_getfetsel('id_parent', $from, $where);
if ($id !== null) {
$ids_parent[$id_rubrique] = $id;
}
}
return $ids_parent[$id_rubrique];
}
function rubrique_lire_secteur($id_rubrique) {
static $ids_secteur = array();
if (!isset($ids_secteur[$id_rubrique])) {
$ids_secteur[$id_rubrique] = 0;
$from = 'spip_rubriques';
$where = array('id_rubrique=' . intval($id_rubrique));
$id = sql_getfetsel('id_secteur', $from, $where);
if ($id !== null) {
$ids_secteur[$id_rubrique] = $id;
}
}
return $ids_secteur[$id_rubrique];
}
function rubrique_lire_categorie($id_rubrique) {
static $categories = array();
if (!isset($categories[$id_rubrique])) {
$categories[$id_rubrique] = '';
$from = 'spip_rubriques';
$where = array('id_rubrique=' . intval($id_rubrique));
$categorie = sql_getfetsel('categorie', $from, $where);
if ($categorie !== null) {
$categories[$id_rubrique] = $categorie;
}
}
return $categories[$id_rubrique];
}
function rubrique_determiner_type($id_rubrique) {
static $types = array();
if (!isset($types[$id_rubrique])) {
if (rubrique_dans_secteur_plugin($id_rubrique)) {
$types[$id_rubrique] = 'plugin';
} elseif (rubrique_dans_secteur_apropos($id_rubrique)) {
$types[$id_rubrique] = 'apropos';
} elseif (rubrique_dans_secteur_carnet($id_rubrique)) {
$types[$id_rubrique] = 'carnet';
} elseif (rubrique_dans_secteur_galaxie($id_rubrique)) {
$types[$id_rubrique] = 'galaxie';
} else {
$types[$id_rubrique] = '';
}
}
return $types[$id_rubrique];
}
function rubrique_determiner_couleur($categorie) {
static $couleurs = array(
'activite' => 'bd87c0',
'administration' => '09b2a3',
'auteur' => '1310b2',
'communication' => 'acbd70',
'contenu' => 'b22ba4',
'date' => '471bb2',
'developpement' => 'dfb811',
'interactivite' => '50699b',
'interface-publique' => '40dd5d',
'media' => 'de175f',
'navigation' => 'b26714'
);
$couleur = (!$categorie or empty($couleurs[$categorie])) ? 'b9274d' : $couleurs[$categorie];
return $couleur;
}
/**
* Vérifie que la rubrique concernée fait bien partie du secteur-apropos.
* Le secteur-apropos est déterminé par la configuration du secteur exclus dans
* le plugin Exclure Secteur.
*
* @param int $id
* Id de la rubrique concernée.
* @param mixed $id_rubrique
*
* @return bool
* True si la rubrique fait partie du secteur-apropos, false sinon.
*/
function rubrique_dans_secteur_apropos($id_rubrique) {
$est_apropos = false;
include_spip('inc/config');
$apropos = lire_config('secteur/exclure_sect', array());
if ($apropos and in_array(rubrique_lire_secteur($id_rubrique), $apropos)) {
$est_apropos = true;
}
return $est_apropos;
}
/**
* Vérifie que la rubrique concernée fait bien partie du secteur-carnet.
* Le secteur-carnet est déterminé par la configuration de l'espace wiki dans le plugin
* Autorité.
*
* @param int $id
* Id de la rubrique concernée.
* @param mixed $id_rubrique
*
* @return bool
* True si la rubrique fait partie du secteur-carnet, false sinon.
*/
function rubrique_dans_secteur_carnet($id_rubrique) {
$est_carnet = false;
include_spip('inc/config');
$carnet = lire_config('autorite/espace_wiki', array());
if ($carnet and in_array(rubrique_lire_secteur($id_rubrique), $carnet)) {
$est_carnet = true;
}
return $est_carnet;
}
/**
* Vérifie que la rubrique concernée fait bien partie du secteur-carnet.
* Le secteur-carnet est déterminé par la configuration de l'espace wiki dans le plugin
* Autorité.
*
* @param int $id
* Id de la rubrique concernée.
* @param mixed $id_rubrique
*
* @return bool
* True si la rubrique fait partie du secteur-carnet, false sinon.
*/
function rubrique_dans_secteur_galaxie($id_rubrique) {
$est_galaxie = false;
include_spip('inc/config');
$galaxie = lire_config('contrib/secteurs', array());
if ($galaxie and in_array(rubrique_lire_secteur($id_rubrique), $galaxie)) {
$est_galaxie = true;
}
return $est_galaxie;
}
/**
* Vérifie que la rubrique concernée fait bien partie d'un secteur-plugin.
* Il suffit de vérifier que le secteur a bien une catégorie non vide.
*
* @param int $id
* Id de la rubrique concernée.
* @param mixed $id_rubrique
*
* @return bool
* True si la rubrique fait partie d'un secteur-plugin, false sinon.
*/
function rubrique_dans_secteur_plugin($id_rubrique) {
static $est_plugin = array();
if (!isset($est_plugin[$id_rubrique])) {
$est_plugin[$id_rubrique] = false;
if (rubrique_lire_categorie(rubrique_lire_secteur($id_rubrique))) {
$est_plugin[$id_rubrique] = true;
}
}
return $est_plugin[$id_rubrique];
}
/**
* Récupère les id de tous les secteurs-plugin.
*
* @return array
* Liste des id des secteurs-pllugin ou tableau vide.
*/
function rubrique_lister_secteur_plugin() {
$from = 'spip_rubriques';
$where = array('profondeur=0', 'categorie!=' . sql_quote(''));
if ($secteurs = sql_allfetsel('id_rubrique', $from, $where)) {
$secteurs = array_map('reset', $secteurs);
}
return $secteurs;
}

2
inc/presenter_enfants.php

@ -107,7 +107,7 @@ function enfant_rub($collection, $debut = 0, $limite = 500) {
if ($categorie or $prefixe) {
include_spip('inc/contrib_rubrique');
$classe = 'couleur_' . rubrique_lire_categorie(rubrique_lire_secteur($id_rubrique));
$complement = _T('svp:label_' . ($categorie ? 'categorie' : 'prefixe'))
$complement = ($categorie ? _T('svptype:categorie_identifiant_label') : _T('svp:label_prefixe'))
. "&nbsp;:&nbsp;<span class='plugin ${classe}'>"
. ($categorie ? $categorie : $prefixe)
. "</span></p>";

4
paquet.xml

@ -3,7 +3,7 @@
categorie="outil"
version="0.1.0"
etat="dev"
compatibilite="[3.2.0;3.2.*]"
compatibilite="[3.3.0-dev;3.3.*]"
logo="contrib_logo-64.png"
schema="1"
>
@ -18,7 +18,7 @@
<necessite nom="article_accueil" compatibilite="[1.1.6;]" />
<necessite nom="cextras" compatibilite="[3.11.8;]" />
<necessite nom="autorite" compatibilite="[0.10.23;]" />
<necessite nom="svptype" compatibilite="[0.1.0;]" />
<necessite nom="svptype" compatibilite="[0.2.0;]" />
<pipeline nom="declarer_champs_extras" inclure="base/contrib_declarations.php" />
<pipeline nom="autoriser" inclure="contrib_autorisations.php" />

2
prive/objets/infos/rubrique.html

@ -9,7 +9,7 @@
[(#ID_RUBRIQUE|rubrique_dans_secteur_plugin|oui)
[(#SET{categorie_secteur, #ID_RUBRIQUE|rubrique_lire_secteur|rubrique_lire_categorie})]
<div class="numero">
[(#PREFIXE|?{<:svp:label_prefixe:>, <:svp:label_categorie:>})&nbsp;:]
[(#PREFIXE|?{<:svp:label_prefixe:>, <:svptype:categorie_identifiant_label:>})&nbsp;:]
<p class="plugin">[<span class="[couleur_(#GET{categorie_secteur})]">(#PREFIXE|sinon{#CATEGORIE})</span>]</p>
</div>
]

Loading…
Cancel
Save