Browse Source

Déplacement des brèves (suite)

svn/root/tags/plugins/breves/1.1.0
marcimat@rezo.net 11 years ago
parent
commit
7f74bc142b
  1. 2
      .gitattributes
  2. 73
      breves_pipelines.php
  3. 18
      plugin.xml
  4. 98
      puce_statut/breve.php
  5. 30
      urls/generer_url_ecrire_breve.php

2
.gitattributes

@ -20,3 +20,5 @@ prive/infos/breve_fonctions.php -text
prive/listes/breves.html -text
prive/squelettes/contenu/page-breves.html -text
public/breves.php -text
puce_statut/breve.php -text
urls/generer_url_ecrire_breve.php -text

73
breves_pipelines.php

@ -142,13 +142,82 @@ function breves_accueil_informations($texte){
*/
function breves_objet_compte_enfants($flux){
if ($flux['args']['objet']=='rubrique'
AND $id_rubrique=intval($flux['args']['id_objet']))
$flux['data']['breve'] = sql_countsel('spip_breves', "id_rubrique=".intval($id_rubrique)." AND (statut='publie' OR statut='prop')");
AND $id_rubrique=intval($flux['args']['id_objet'])) {
// juste les publies ?
if (array_key_exists('statut', $flux['args']) and ($flux['args']['statut'] == 'publie')) {
$flux['data']['breve'] = sql_countsel('spip_breves', "id_rubrique=".intval($id_rubrique)." AND (statut='publie')");
} else {
$flux['data']['breve'] = sql_countsel('spip_breves', "id_rubrique=".intval($id_rubrique)." AND (statut='publie' OR statut='prop')");
}
}
return $flux;
}
/**
* Changer la langue des breves si la rubrique change
*
* @param array $flux
* @return array
*/
function breves_trig_calculer_langues_rubriques($flux){
$s = sql_select("A.id_breve AS id_breve, R.lang AS lang", "spip_breves AS A, spip_rubriques AS R", "A.id_rubrique = R.id_rubrique AND A.langue_choisie != 'oui' AND (A.lang='' OR R.lang<>'') AND R.lang<>A.lang");
while ($row = sql_fetch($s)) {
$id_breve = $row['id_breve'];
sql_updateq('spip_breves', array("lang"=>$row['lang'], 'langue_choisie'=>'non'), "id_breve=$id_breve");
}
return $flux;
}
/**
* Publier et dater les rubriques qui ont une breve publie
*
* @param array $flux
* @return array
*/
function breves_calculer_rubriques($flux){
$r = sql_select("R.id_rubrique AS id, max(A.date_heure) AS date_h", "spip_rubriques AS R, spip_breves AS A", "R.id_rubrique = A.id_rubrique AND R.date_tmp <= A.date_heure AND A.statut='publie' ", "R.id_rubrique");
while ($row = sql_fetch($r))
sql_updateq('spip_rubriques', array('statut_tmp'=>'publie', 'date_tmp'=>$row['date_h']), "id_rubrique=".$row['id']);
return $flux;
}
/**
* Liste et ponderation des champs pour la recherche
*
* @param array $tables
* @return int
*/
function breves_rechercher_liste_des_champs($tables){
$tables['breve'] = array(
'titre' => 8, 'texte' => 2, 'lien_titre' => 1, 'lien_url' => 1
);
return $tables;
}
/**
* Liste et ponderation des champs pour la recherche avec jointures
*
* @param array $tables
* @return int
*/
function breves_rechercher_liste_des_jointures($tables){
$tables['breve'] = array(
'document' => array('titre' => 2, 'descriptif' => 1)
);
return $tables;
}
/**
* Ajouter les breves a valider sur la page d'accueil
*

18
plugin.xml

@ -57,10 +57,28 @@
<inclure>breves_pipelines.php</inclure>
</pipeline>
<pipeline>
<nom>trig_calculer_langues_rubriques</nom>
<inclure>breves_pipelines.php</inclure>
</pipeline>
<pipeline>
<nom>calculer_rubriques</nom>
<inclure>breves_pipelines.php</inclure>
</pipeline>
<pipeline>
<nom>optimiser_base_disparus</nom>
<inclure>breves_pipelines.php</inclure>
</pipeline>
<pipeline>
<nom>rechercher_liste_des_champs</nom>
<inclure>breves_pipelines.php</inclure>
</pipeline>
<pipeline>
<nom>rechercher_liste_des_jointures</nom>
<inclure>breves_pipelines.php</inclure>
</pipeline>
<bouton id='breves' parent="bando_edition">
<icone>images/breve-16.png</icone>

98
puce_statut/breve.php

@ -0,0 +1,98 @@
<?php
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-200 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
if (!defined("_ECRIRE_INC_VERSION")) return;
// http://doc.spip.org/@puce_statut_breve_dist
function puce_statut_breve_dist($id, $statut, $id_rubrique, $type, $ajax='') {
global $lang_objet;
static $coord = array('publie' => 1,
'prop' => 0,
'refuse' => 2,
'poubelle' => 3);
$lang_dir = lang_dir($lang_objet);
$puces = array(
0 => 'puce-proposer-8.png',
1 => 'puce-publier-8.png',
2 => 'puce-refuser-8.png',
3 => 'puce-supprimer-8.png');
switch ($statut) {
case 'prop':
$clip = 0;
$puce = $puces[0];
$title = _T('titre_breve_proposee');
break;
case 'publie':
$clip = 1;
$puce = $puces[1];
$title = _T('titre_breve_publiee');
break;
case 'refuse':
$clip = 2;
$puce = $puces[2];
$title = _T('titre_breve_refusee');
break;
default:
$clip = 0;
$puce = $puces[3];
$title = '';
}
$type1 = "statut$type$id";
$inser_puce = http_img_pack($puce, $title, "id='img$type1' style='margin: 1px;'");
if (!autoriser('publierdans','rubrique',$id_rubrique)
OR !_ACTIVER_PUCE_RAPIDE)
return $inser_puce;
$titles = array(
"blanche" => _T('texte_statut_en_cours_redaction'),
"orange" => _T('texte_statut_propose_evaluation'),
"verte" => _T('texte_statut_publie'),
"rouge" => _T('texte_statut_refuse'),
"poubelle" => _T('texte_statut_poubelle'));
$clip = 1+ (11*$coord[$statut]);
if ($ajax){
return "<span class='puce_breve_fixe'>"
. $inser_puce
. "</span>"
. "<span class='puce_breve_popup' id='statutdecal$type$id' style='margin-left: -$clip"."px;'>"
. afficher_script_statut($id, $type, -1, $puces[0], 'prop', $titles['orange'])
. afficher_script_statut($id, $type, -10, $puces[1], 'publie', $titles['verte'])
. afficher_script_statut($id, $type, -19, $puces[2], 'refuse', $titles['rouge'])
. "</span>";
}
$nom = "puce_statut_";
if ((! _SPIP_AJAX) AND $type != 'breve')
$over ='';
else {
$action = generer_url_ecrire('puce_statut',"",true);
$action = "if (!this.puce_loaded) { this.puce_loaded = true; prepare_selec_statut('$nom', '$type', '$id', '$action'); }";
$over = "\nonmouseover=\"$action\"";
}
return "<span class='puce_$type' id='$nom$type$id' dir='$lang_dir'$over>"
. $inser_puce
. '</span>';
}
?>

30
urls/generer_url_ecrire_breve.php

@ -0,0 +1,30 @@
<?php
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2010 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
if (!defined("_ECRIRE_INC_VERSION")) return;
// http://doc.spip.org/@generer_url_ecrire_breve
function urls_generer_url_ecrire_breve($id, $args='', $ancre='', $statut='', $connect='') {
$a = "id_breve=" . intval($id);
if (!$statut) {
$statut = sql_getfetsel('statut', 'spip_breves', $a,'','','','',$connect);
}
$h = ($statut == 'publie' OR $connect)
? generer_url_entite_absolue($id, 'breve', $args, $ancre, $connect)
: (generer_url_ecrire('breves_voir',$a . ($args ? "&$args" : ''))
. ($ancre ? "#$ancre" : ''));
return $h;
}
?>
Loading…
Cancel
Save