Browse Source

Déplacement des fichiers de breves dans le plugin.

svn/root/tags/plugins/breves/1.1.0
marcimat@rezo.net 11 years ago
parent
commit
9c6beff057
  1. 15
      .gitattributes
  2. 214
      action/editer_breve.php
  3. 33
      action/instituer_breve.php
  4. 120
      exec/breves_edit.php
  5. 241
      exec/breves_voir.php
  6. 31
      formulaires/configurer_breves.html
  7. 36
      formulaires/configurer_breves.php
  8. 70
      formulaires/editer_breve.html
  9. 62
      formulaires/editer_breve.php
  10. 47
      inc/instituer_breve.php
  11. 18
      prive/contenu/breve.html
  12. 8
      prive/editer/breve.html
  13. 20
      prive/infos/breve.html
  14. 10
      prive/infos/breve_fonctions.php
  15. 38
      prive/listes/breves.html
  16. 24
      prive/squelettes/contenu/page-breves.html

15
.gitattributes

@ -1,7 +1,22 @@
* text=auto !eol
action/editer_breve.php -text
action/instituer_breve.php -text
base/breves.php -text
base/breves_upgrade.php -text
/breves_autoriser.php -text
/breves_pipelines.php -text
exec/breves_edit.php -text
exec/breves_voir.php -text
formulaires/configurer_breves.html -text
formulaires/configurer_breves.php -text
formulaires/editer_breve.html -text
formulaires/editer_breve.php -text
inc/instituer_breve.php -text
/plugin.xml -text
prive/contenu/breve.html -text
prive/editer/breve.html -text
prive/infos/breve.html -text
prive/infos/breve_fonctions.php -text
prive/listes/breves.html -text
prive/squelettes/contenu/page-breves.html -text
public/breves.php -text

214
action/editer_breve.php

@ -0,0 +1,214 @@
<?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/@action_editer_breve_dist
function action_editer_breve_dist($arg=null) {
if (is_null($arg)){
$securiser_action = charger_fonction('securiser_action', 'inc');
$arg = $securiser_action();
}
// Envoi depuis les boutons "publier/supprimer cette breve"
if (preg_match(',^(\d+)\Wstatut\W(\w+)$,', $arg, $r)) {
$id_breve = $r[1];
set_request('statut', $r[2]);
revisions_breves($id_breve);
}
// Envoi depuis le formulaire d'edition pour chgt de langue
else if (preg_match(',^(\d+)\W(\w+)$,', $arg, $r)) {
revisions_breves_langue($id_breve=$r[1], $r[2], _request('changer_lang'));
}
// Envoi depuis le formulaire d'edition d'une breve existante
else if ($id_breve = intval($arg)) {
revisions_breves($id_breve);
}
// Envoi depuis le formulaire de creation d'une breve
else if ($arg == 'oui') {
$id_breve = insert_breve(_request('id_parent'));
if ($id_breve) revisions_breves($id_breve);
}
// Erreur
else{
include_spip('inc/headers');
redirige_url_ecrire();
}
if (_request('redirect')) {
$redirect = parametre_url(urldecode(_request('redirect')),
'id_breve', $id_breve, '&');
include_spip('inc/headers');
redirige_par_entete($redirect);
}
else
return array($id_breve,'');
}
// http://doc.spip.org/@insert_breve
function insert_breve($id_rubrique) {
include_spip('inc/rubriques');
// Si id_rubrique vaut 0 ou n'est pas definie, creer la breve
// dans la premiere rubrique racine
if (!$id_rubrique = intval($id_rubrique)) {
$id_rubrique = sql_getfetsel("id_rubrique", "spip_rubriques", "id_parent=0",'', '0+titre,titre', "1");
}
// La langue a la creation : c'est la langue de la rubrique
$row = sql_fetsel("lang, id_secteur", "spip_rubriques", "id_rubrique=$id_rubrique");
$lang = $row['lang'];
$id_rubrique = $row['id_secteur']; // garantir la racine
$champs = array(
'id_rubrique' => $id_rubrique,
'statut' => 'prop',
'date_heure' => date('Y-m-d H:i:s'),
'lang' => $lang,
'langue_choisie' => 'non');
// Envoyer aux plugins
$champs = pipeline('pre_insertion',
array(
'args' => array(
'table' => 'spip_breves',
),
'data' => $champs
)
);
$id_breve = sql_insertq("spip_breves", $champs);
pipeline('post_insertion',
array(
'args' => array(
'table' => 'spip_breves',
'id_objet' => $id_breve
),
'data' => $champs
)
);
return $id_breve;
}
// Enregistre une revision de breve
// $c est un contenu (par defaut on prend le contenu via _request())
// http://doc.spip.org/@revisions_breves
function revisions_breves ($id_breve, $c=false) {
// champs normaux
if ($c === false) {
$c = array();
foreach (array(
'titre', 'texte', 'lien_titre', 'lien_url',
'id_parent', 'statut'
) as $champ)
if (($a = _request($champ)) !== null)
$c[$champ] = $a;
}
// Si la breve est publiee, invalider les caches et demander sa reindexation
$t = sql_getfetsel("statut", "spip_breves", "id_breve=$id_breve");
if ($t == 'publie') {
$invalideur = "id='breve/$id_breve'";
$indexation = true;
}
include_spip('inc/modifier');
modifier_contenu('breve', $id_breve,
array(
'nonvide' => array('titre' => _T('info_sans_titre')),
'invalideur' => $invalideur,
'indexation' => $indexation
),
$c);
// Changer le statut de la breve ?
$row = sql_fetsel("statut, id_rubrique,lang, langue_choisie", "spip_breves", "id_breve=$id_breve");
$id_rubrique = $row['id_rubrique'];
$statut_ancien = $statut = $row['statut'];
$langue_old = $row['lang'];
$langue_choisie_old = $row['langue_choisie'];
if (_request('statut', $c)
AND _request('statut', $c) != $statut
AND autoriser('publierdans', 'rubrique', $id_rubrique)) {
$statut = $champs['statut'] = _request('statut', $c);
}
// Changer de rubrique ?
// Verifier que la rubrique demandee est a la racine et differente
// de la rubrique actuelle
if ($id_parent = intval(_request('id_parent', $c))
AND $id_parent != $id_rubrique
AND (NULL !== ($lang=sql_getfetsel('lang', 'spip_rubriques', "id_parent=0 AND id_rubrique=$id_parent")))) {
$champs['id_rubrique'] = $id_parent;
// - changer sa langue (si heritee)
if ($langue_choisie_old != "oui") {
if ($lang != $langue_old)
$champs['lang'] = $lang;
}
// si la breve est publiee
// et que le demandeur n'est pas admin de la rubrique
// repasser la breve en statut 'prop'.
if ($statut == 'publie') {
if (!autoriser('publierdans','rubrique',$id_parent))
$champs['statut'] = $statut = 'prop';
}
}
if (!$champs) return;
sql_updateq('spip_breves', $champs, "id_breve=$id_breve");
//
// Post-modifications
//
// Invalider les caches
include_spip('inc/invalideur');
suivre_invalideur("id='breve/$id_breve'");
// Au besoin, changer le statut des rubriques concernees
include_spip('inc/rubriques');
calculer_rubriques_if($id_rubrique, $champs, $statut_ancien);
// Notifications
if ($notifications = charger_fonction('notifications', 'inc')) {
$notifications('instituerbreve', $id_breve,
array('statut' => $statut, 'statut_ancien' => $statut_ancien)
);
}
}
// http://doc.spip.org/@revisions_breves_langue
function revisions_breves_langue($id_breve, $id_rubrique, $changer_lang)
{
if ($changer_lang == "herit") {
$row = sql_fetsel("lang", "spip_rubriques", "id_rubrique=$id_rubrique");
$langue_parent = $row['lang'];
sql_updateq('spip_breves', array('lang'=>$langue_parent, 'langue_choisie'=>'non'), "id_breve=$id_breve");
} else {
sql_updateq('spip_breves', array('lang'=>$changer_lang, 'langue_choisie'=>'oui'), "id_breve=$id_breve");
include_spip('inc/rubriques');
$langues = calculer_langues_utilisees();
ecrire_meta('langues_utilisees', $langues);
}
}
?>

33
action/instituer_breve.php

@ -0,0 +1,33 @@
<?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/@action_instituer_breve_dist
function action_instituer_breve_dist() {
$securiser_action = charger_fonction('securiser_action', 'inc');
$arg = $securiser_action();
list($id_breve, $statut) = preg_split('/\W/', $arg);
if (!$statut) $statut = _request('statut_nouv'); // cas POST
if (!$statut) return; // impossible mais sait-on jamais
$id_breve = intval($id_breve);
include_spip('action/editer_breve');
revisions_breves($id_breve, array('statut' => $statut));
}
?>

120
exec/breves_edit.php

@ -0,0 +1,120 @@
<?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;
include_spip('inc/presentation');
include_spip('inc/documents');
include_spip('inc/barre');
// http://doc.spip.org/@exec_breves_edit_dist
function exec_breves_edit_dist()
{
exec_breves_edit_args(intval(_request('id_breve')),
intval(_request('id_rubrique')),
_request('new'));
}
// http://doc.spip.org/@exec_breves_edit_args
function exec_breves_edit_args($id_breve, $id_rubrique, $new)
{
global $connect_id_rubrique;
// appel du script a la racine, faut choisir
// on prend le dernier secteur cree
// dans une liste restreinte si admin restreint
if ($new === 'oui' AND $id_rubrique)
$id_rubrique = sql_getfetsel('id_secteur', 'spip_rubriques', "id_rubrique=$id_rubrique");
if (!$id_rubrique) {
$in = !count($connect_id_rubrique)
? ''
: (" AND " . sql_in('id_rubrique', $connect_id_rubrique));
$id_rubrique = sql_getfetsel('id_rubrique','spip_rubriques', "id_parent=0$in",'', "id_rubrique DESC", 1);
if (!autoriser('creerbrevedans','rubrique',$id_rubrique )){
// manque de chance, la rubrique n'est pas autorisee, on cherche un des secteurs autorises
$res = sql_select("id_rubrique", "spip_rubriques", "id_parent=0");
while (!autoriser('creerbrevedans','rubrique',$id_rubrique ) && $row_rub = sql_fetch($res)){
$id_rubrique = $row_rub['id_rubrique'];
}
}
}
$row = false;
if (!( ($new!='oui' AND (!autoriser('voir','breve',$id_breve) OR !autoriser('modifier','breve', $id_breve)))
OR ($new=='oui' AND !autoriser('creerbrevedans','rubrique',$id_rubrique)) )) {
if ($new != "oui")
$row = sql_fetsel("*", "spip_breves", "id_breve=$id_breve");
else $row = true;
}
if (!$row) {
include_spip('inc/minipres');
echo minipres();
} else breves_edit_ok($row, $id_breve, $id_rubrique, $new);
}
// http://doc.spip.org/@breves_edit_ok
function breves_edit_ok($row, $id_breve, $id_rubrique, $new)
{
global $connect_statut, $spip_lang_right;
if ($new != 'oui') {
$id_breve=$row['id_breve'];
$titre=$row['titre'];
$statut=$row['statut'];
$id_rubrique=$row['id_rubrique'];
} else {
$titre = filtrer_entites(_T('titre_nouvelle_breve'));
$statut = "prop";
}
$commencer_page = charger_fonction('commencer_page', 'inc');
pipeline('exec_init',array('args'=>array('exec'=>'breves_edit','id_breve'=>$id_breve),'data'=>''));
echo $commencer_page(_T('titre_page_breves_edit', array('titre' => $titre)), "naviguer", "breves", $id_rubrique);
echo debut_grand_cadre(true);
echo afficher_hierarchie($id_rubrique,'',$id_breve,'breve',$row['id_secteur'],($row['statut'] == 'publie'));
echo fin_grand_cadre(true);
echo debut_gauche('', true);
if ($new != 'oui' AND ($connect_statut=="0minirezo" OR $statut=="prop")) {
# affichage sur le cote des images, en reperant les inserees
# note : traiter_modeles($texte, true) repere les doublons
# aussi efficacement que propre(), mais beaucoup plus rapidement
traiter_modeles("$titre$texte", true);
echo afficher_documents_colonne($id_breve, "breve");
}
echo pipeline('affiche_gauche',array('args'=>array('exec'=>'breves_edit','id_breve'=>$id_breve),'data'=>''));
echo creer_colonne_droite('', true);
echo pipeline('affiche_droite',array('args'=>array('exec'=>'breves_edit','id_breve'=>$id_breve),'data'=>''));
echo debut_droite('', true);
$contexte = array(
'icone_retour'=>$new=='oui'?'':icone_inline(_T('icone_retour'), generer_url_ecrire("breves_voir","id_breve=$id_breve"), "breve-24.png", "",$GLOBALS['spip_lang_left']),
'redirect'=>generer_url_ecrire("breves_voir"),
'titre'=>$titre,
'new'=>$new == "oui"?$new:$id_breve,
'id_rubrique'=>$id_rubrique,
'config_fonc'=>'breves_edit_config'
);
echo recuperer_fond("prive/editer/breve", $contexte);
echo fin_gauche(), fin_page();
}
?>

241
exec/breves_voir.php

@ -0,0 +1,241 @@
<?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;
include_spip('inc/presentation');
include_spip('inc/actions');
// http://doc.spip.org/@exec_breves_voir_dist
function exec_breves_voir_dist()
{
$id_breve = intval(_request('id_breve'));
exec_breves_voir_args($id_breve, _request('cherche_mot'), _request('select_groupe'));
}
// http://doc.spip.org/@exec_breves_voir_args
function exec_breves_voir_args($id_breve, $cherche_mot, $select_groupe)
{
$row = sql_fetsel("*", "spip_breves", "id_breve=$id_breve");
if (!$row OR !autoriser('voir','breve',$id_breve)){
include_spip('inc/minipres');
echo minipres();
} else {
$id_breve=$row['id_breve'];
$date_heure=$row['date_heure'];
$titre_breve=$row['titre'];
$titre=$row['titre'];
$texte=$row['texte'];
$extra=$row['extra'];
$lien_titre=$row['lien_titre'];
$lien_url=$row['lien_url'];
$statut=$row['statut'];
$id_rubrique=$row['id_rubrique'];
$commencer_page = charger_fonction('commencer_page', 'inc');
$flag_editable = autoriser('modifier','breve',$id_breve);
// Est-ce que quelqu'un a deja ouvert la breve en edition ?
if ($flag_editable
AND $GLOBALS['meta']['articles_modif'] != 'non') {
include_spip('inc/drapeau_edition');
$modif = mention_qui_edite($id_breve, 'breve');
} else
$modif = array();
pipeline('exec_init',
array(
'args'=>array('exec'=>'breves_voir','id_breve'=>$id_breve),
'data'=>''
)
);
$iconifier = charger_fonction('iconifier', 'inc');
$dater = charger_fonction('dater', 'inc');
$meme_rubrique = charger_fonction('meme_rubrique', 'inc');
echo $commencer_page("&laquo; $titre_breve &raquo;", "naviguer", "breves", $id_rubrique);
echo debut_grand_cadre(true);
echo afficher_hierarchie($id_rubrique,true,$id_breve,'breve',$row['id_secteur'],($row['statut'] == 'publie'));
echo fin_grand_cadre(true);
echo debut_gauche('', true);
echo debut_boite_info(true)
. pipeline ('boite_infos', array('data' => '',
'args' => array(
'type'=>'breve',
'id' => $id_breve,
'row' => $row
)))
. fin_boite_info(true);
echo pipeline('affiche_gauche',
array(
'args'=>array('exec'=>'breves_voir','id_breve'=>$id_breve),
'data'=>''
)
);
echo $iconifier('breve', $id_breve, 'breves_voir', false, autoriser('publierdans','rubrique',$id_rubrique));
echo pipeline('afficher_config_objet',array('args'=>array('type'=>'breve','id'=>$id_breve),'data'=>''));
echo creer_colonne_droite('', true);
echo pipeline('affiche_droite',
array(
'args'=>array('exec'=>'breves_voir','id_breve'=>$id_breve),
'data'=>''
)
);
echo $meme_rubrique($id_rubrique, $id_breve, 'breve', 'date_heure');
/* raccourcis ont disparu */
echo bloc_des_raccourcis(icone_horizontale(_T('icone_nouvelle_breve'), generer_url_ecrire("breves_edit","new=oui&id_rubrique=$id_rubrique"), "breve-24.png","new", 0));
$actions = $flag_editable
? icone_inline(
// TODO -- _L("Fil a travaille sur cette breve il y a x minutes")
!$modif ? _T('icone_modifier_breve')
: _T('texte_travail_article', $modif),
generer_url_ecrire("breves_edit","id_breve=$id_breve&retour=nav"),
!$modif ? "breve-24.png" : "warning-24.png",
!$modif ? "edit" : '',
$GLOBALS['spip_lang_right']
)
: "";
$haut =
"<div class='bandeau_actions'>$actions</div>"
. gros_titre($titre,'', false);
$type = 'breve';
$contexte = array('id'=>$id_breve,'id_rubrique'=>$id_rubrique);
$fond = recuperer_fond("prive/contenu/$type",$contexte);
// permettre aux plugin de faire des modifs ou des ajouts
$fond = pipeline('afficher_contenu_objet',
array(
'args'=>array(
'type'=>$type,
'id_objet'=>$id_breve,
'contexte'=>$contexte),
'data'=> $fond));
$onglet_contenu = "<div id='wysiwyg'>$fond</div>";
$onglet_proprietes =
afficher_breve_rubrique($id_breve, $id_rubrique, $statut)
. ($dater
? $dater($id_breve, $flag_editable, $statut, 'breve', 'breves_voir', $date_heure)
: ''
)
. ((($GLOBALS['meta']['multi_articles'] == 'oui') AND ($flag_editable)) ? langue_breve($id_breve,$row):"")
. pipeline('affiche_milieu',array(
'args'=>array('exec'=>'breves_voir','id_breve'=>$id_breve),
'data'=>''))
;
$onglet_documents = "";
$onglet_interactivite = "";
echo debut_droite('', true)
. pipeline('afficher_fiche_objet',array('args'=>array('type'=>'breve','id'=>$id_breve),'data'=>
"<div class='fiche_objet'>"
. $haut
. afficher_onglets_pages(array(
'voir' => _T('onglet_contenu'),
'props' => _T('onglet_proprietes'),
'docs' => _T('onglet_documents'),
'interactivite' => _T('onglet_interactivite'),
),
_INTERFACE_ONGLETS?
array(
'props'=>$onglet_proprietes,
'voir'=>$onglet_contenu,
'docs'=>$onglet_documents,
'interactivite'=>$onglet_interactivite,
)
:
array(
'props'=>$onglet_proprietes,
'voir'=>$onglet_contenu)
)
. "</div>"))
. fin_gauche()
. fin_page();
}
}
// http://doc.spip.org/@langue_breve
function langue_breve($id_breve, $row){
$id_rubrique = $row['id_rubrique'];
//
// Langue de la breve
//
$row2 = sql_fetsel("lang", "spip_rubriques", "id_rubrique=$id_rubrique");
$langue_parent = $row2['lang'];
$langue_breve = $row['lang'];
$res = "";
#$bouton = bouton_block_depliable(_T('titre_langue_breve')."&nbsp; (".traduire_nom_langue($langue_breve).")",false,'languesbreve');
$res .= debut_cadre_enfonce('langue-24.png',true/*,'',$bouton*/);
#$res .= debut_block_depliable(false,'languesbreve');
$res .= "<div class='langue'>";
if ($menu = liste_options_langues('changer_lang', $langue_breve, $langue_parent)) {
$lien = "\nonchange=\"this.nextSibling.firstChild.style.visibility='visible';\"";
$menu = select_langues('changer_lang', $lien, $menu, _T('titre_langue_breve'))
. "<span><input type='submit' class='visible_au_chargement fondo' value='". _T('bouton_changer')."' /></span>";
}
$res .= redirige_action_auteur('editer_breve', "$id_breve/$id_rubrique", "breves_voir","id_breve=$id_breve", $menu);
$res .= "</div>\n";
#$res .= fin_block();
$res .= fin_cadre_enfonce(true);
return $res;
}
// http://doc.spip.org/@afficher_breve_rubrique
function afficher_breve_rubrique($id_breve, $id_rubrique, $statut)
{
if (!_INTERFACE_ONGLETS) return "";
global $spip_lang_right;
$aider = charger_fonction('aider', 'inc');
$chercher_rubrique = charger_fonction('chercher_rubrique', 'inc');
$form = $chercher_rubrique($id_rubrique, 'breve', ($statut == 'publie'));
if (strpos($form,'<select')!==false) {
$form .= "<div style='text-align: $spip_lang_right;'>"
. '<input class="fondo" type="submit" value="'._T('bouton_choisir').'"/>'
. "</div>";
}
$form = redirige_action_post('editer_breve', $id_breve, 'breves_voir', "id_breve=$id_breve", $form, " class='submit_plongeur'" );
if ($id_rubrique == 0) $logo = "racine-24.png";
else $logo = "secteur-24.png";
return
debut_cadre_couleur($logo, true, "",_T('entree_interieur_rubrique').$aider ("brevesrub"))
. $form
. fin_cadre_couleur(true);
}
?>

31
formulaires/configurer_breves.html

@ -0,0 +1,31 @@
<div class="formulaire_spip formulaire_configurer formulaire_#FORM formulaire_#FORM-#ENV{id,nouveau}">
<h3 class='titrem'><img src="#CHEMIN_IMAGE{breve-24.png}" class="cadre-icone" /><:titre_breves:>#AIDER{confbreves}</h3>
[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
[(#ENV{editable})
<p><:texte_breves:></p>
<form method='post' action='#ENV{action}' enctype='multipart/form-data'><div>
[(#REM) declarer les hidden qui declencheront le service du formulaire
parametre : url d'action ]
#ACTION_FORMULAIRE{#ENV{action}}
<ul>
#SET{name,activer_breves}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
<li class="long_label editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
<label for="#GET{name}"><:info_breves:></label>[
<span class='erreur_message'>(#GET{erreurs})</span>
]<div class="choix">
<input type="radio" name="#GET{name}" id="#GET{name}_oui" value="oui"
[(#ENV{#GET{name}}|=={oui}|oui)checked="checked"] /><label for="#GET{name}_oui"><:item_utiliser_breves:></label>
</div>
<div class="choix">
<input type="radio" name="#GET{name}" id="#GET{name}_non" value="non"
[(#ENV{#GET{name}}|=={oui}|non)checked="checked"] /><label for="#GET{name}_non"><:item_non_utiliser_breves:></label>
</div>
</li>
</ul>
[(#REM) ajouter les saisies supplementaires : extra et autre, a cet endroit ]
<!--extra-->
<p class='boutons'><span class='image_loading'>&nbsp;</span><input type='submit' class='submit' value='<:bouton_enregistrer:>' /></p>
</div></form>
]
</div>

36
formulaires/configurer_breves.php

@ -0,0 +1,36 @@
<?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;
function formulaires_configurer_breves_charger_dist(){
foreach(array(
"activer_breves",
) as $m)
$valeurs[$m] = $GLOBALS['meta'][$m];
return $valeurs;
}
function formulaires_configurer_breves_traiter_dist(){
$res = array('editable'=>true);
foreach(array(
"activer_breves",
) as $m)
if (!is_null($v=_request($m)))
ecrire_meta($m, $v=='oui'?'oui':'non');
$res['message_ok'] = _T('config_info_enregistree');
return $res;
}

70
formulaires/editer_breve.html

@ -0,0 +1,70 @@
<div class='formulaire_spip formulaire_editer formulaire_editer_breve formulaire_editer_breve-#ENV{id_breve,nouveau}'>
<!-- <br class='bugajaxie' /> -->
[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV**{message_ok})</p>]
[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
[(#ENV{editable})
<form method='post' action='#ENV{action}' enctype='multipart/form-data'><div>
[(#REM) declarer les hidden qui declencheront le service du formulaire
parametre : url d'action ]
#ACTION_FORMULAIRE{#ENV{action}}
<input type='hidden' name='id_breve' value='#ENV{id_breve}' />
<ul>
<li class="editer_titre obligatoire[ (#ENV**{erreurs}|table_valeur{titre}|oui)erreur]">
<label for="titre"><:info_titre:></label>[
<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{titre})</span>
]<input type='text' class='text' name='titre' id='titre' value="[(#ENV**{titre,#REM|concat{titre_nouvelle_breve}|_T})]"
[(#ENV{titre,''}|?{'',' '})onfocus="if(!antifocus){this.value='';antifocus=true;}"]/>
</li>
[<li class="editer_parent[ (#ENV**{erreurs}|table_valeur{id_rubrique}|oui)erreur]">
<label for="id_parent"><:entree_interieur_rubrique:><em class='aide'>#AIDER{id_parent}</em></label>
(#VAL|chercher_rubrique{#ENV{id_breve},#ENV{id_rubrique}|sinon{#ENV{id_parent}},'breve',#ENV{id_secteur},#ENV**{config}|table_valeur{restreint},0,form_simple})
</li>]
<li class="editer_texte[ (#ENV**{erreurs}|table_valeur{texte}|oui)erreur]">
<label for="text_area"><:entree_texte_breve:></label>[
<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{texte})</span>
][(#ENV**{_texte_trop_long,''})
]<textarea name='texte' id='text_area' rows='[(#ENV**{config}|table_valeur{lignes}|plus{2})]' cols='40'>[(#ENV**{texte})]</textarea>
</li>
<li class="editer_liens_sites fieldset">
<fieldset>
<h3 class="legend"><:entree_liens_sites:></h3>
<ul>
<li class="editer_lien_titre[ (#ENV**{erreurs}|table_valeur{lien_titre}|oui)erreur]">
<label for="lien_titre"><:info_titre:><em class='aide'>#AIDER{lien_titre}</em></label>[
<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{lien_titre})</span>
]<input type='text' class='text' name='lien_titre' id='lien_titre' value="[(#ENV**{lien_titre})]" />
</li>
<li class="editer_lien_url[ (#ENV**{erreurs}|table_valeur{lien_url}|oui)erreur]">
<label for="lien_url"><:info_url:></label>[
<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{lien_url})</span>
]<input type='text' class='text' name='lien_url' id='lien_url' value="[(#ENV**{lien_url})]" />
</li>
</ul>
</fieldset>
</li>
[(#SESSION{statut}|=={0minirezo}|oui)
<li class="fieldset">
<fieldset>
<ul>
<li class="editer_statut obligatoire">
<label for='statut'><:entree_breve_publiee:><em class='aide'>#AIDER{statut}</em>
</label><select name='statut' id='statut' size='1'>
<option value='prop'[(#ENV**{statut}|=={prop}|?{' selected="selected"'})] style='background-color: white'><:item_breve_proposee:></option>
<option value='refuse'[(#ENV**{statut}|=={refuse}|?{' selected="selected"'})] class='danger'><:item_breve_refusee:></option>
<option value='publie'[(#ENV**{statut}|=={publie}|?{' selected="selected"'})] style='background-color: #B4E8C5'><:item_breve_validee:></option>
</select>
</li>
</ul>
</fieldset>
</li>
]
</ul>
[(#REM) ajouter les saisies supplementaires : extra et autre, a cet endroit ]
<!--extra-->
<p class="boutons"><input type='submit' class='submit' value='<:bouton_enregistrer:>' /></p>
</div></form>
]
</div>

62
formulaires/editer_breve.php

@ -0,0 +1,62 @@
<?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;
include_spip('inc/actions');
include_spip('inc/editer');
function formulaires_editer_breve_charger_dist($id_breve='new', $id_rubrique=0, $retour='', $lier_trad=0, $config_fonc='breves_edit_config', $row=array(), $hidden=''){
$valeurs = formulaires_editer_objet_charger('breve',$id_breve,$id_rubrique,$lier_trad,$retour,$config_fonc,$row,$hidden);
// un bug a permis a un moment que des breves soient dans des sous rubriques
// lorsque ce cas se presente, il faut relocaliser la breve dans son secteur, plutot que n'importe ou
if ($valeurs['id_rubrique'])
$valeurs['id_parent'] = sql_getfetsel('id_secteur','spip_rubriques','id_rubrique='.intval($valeurs['id_rubrique']));
// et on enleve id_rubrique des valeurs saisies (c'est id_parent)
unset($valeurs['id_rubrique']);
return $valeurs;
}
/**
* Identifier le formulaire en faisant abstraction des parametres qui
* ne representent pas l'objet edite
*/
function formulaires_editer_breve_identifier_dist($id_breve='new', $id_rubrique=0, $retour='', $lier_trad=0, $config_fonc='breves_edit_config', $row=array(), $hidden=''){
return serialize(array($id_breve,$lier_trad,$row));
}
// Choix par defaut des options de presentation
function breves_edit_config($row)
{
global $spip_ecran, $spip_lang, $spip_display;
$config = $GLOBALS['meta'];
$config['lignes'] = ($spip_ecran == "large")? 8 : 5;
$config['langue'] = $spip_lang;
$config['restreint'] = ($row['statut'] == 'publie');
return $config;
}
function formulaires_editer_breve_verifier_dist($id_breve='new', $id_rubrique=0, $retour='', $lier_trad=0, $config_fonc='breves_edit_config', $row=array(), $hidden=''){
$erreurs = formulaires_editer_objet_verifier('breve',$id_breve,array('titre'));
return $erreurs;
}
// http://doc.spip.org/@inc_editer_article_dist
function formulaires_editer_breve_traiter_dist($id_breve='new', $id_rubrique=0, $retour='', $lier_trad=0, $config_fonc='breves_edit_config', $row=array(), $hidden=''){
return formulaires_editer_objet_traiter('breve',$id_breve,$id_rubrique,$lier_trad,$retour,$config_fonc,$row,$hidden);
}
?>

47
inc/instituer_breve.php

@ -0,0 +1,47 @@
<?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/@inc_instituer_breve_dist
function inc_instituer_breve_dist($id_breve, $statut=-1)
{
if ($statut == -1) return "";
$liste_statuts = array(
// statut => array(titre,image)
'prop' => array(_T('item_breve_proposee'),''),
'publie' => array(_T('item_breve_validee'),''),
'refuse' => array(_T('item_breve_refusee'),'')
);
if (!in_array($statut, array_keys($liste_statuts)))
$liste_statuts[$statut] = array($statut,'');
$res =
"<ul id='instituer_breve-$id_breve' class='instituer_breve instituer'>"
. "<li>" . _T('entree_breve_publiee')
."<ul>";
$href = redirige_action_auteur('editer_breve',$id_breve,'breves_voir', "id_breve=$id_breve");
foreach($liste_statuts as $s=>$affiche){
$href = parametre_url($href,'statut',$s);
if ($s==$statut)
$res .= "<li class='$s selected'>" . puce_statut($s) . $affiche[0] . '</li>';
else
$res .= "<li class='$s'><a href='$href' onclick='return confirm(confirm_changer_statut);'>" . puce_statut($s) . $affiche[0] . '</a></li>';
}
$res .= "</ul></li></ul>";
return $res;
}
?>

18
prive/contenu/breve.html

@ -0,0 +1,18 @@
<BOUCLE_afficher_contenu(BREVES){id_breve=#ENV{id}}{statut?}>
<div class="champ contenu_titre[ (#TITRE*|strlen|?{'',vide})]">
<div class='label'><:info_titre:></div>
<div dir='#LANG_DIR' class='#EDIT{titre} titre'>#TITRE</div>
</div>
<div class="champ contenu_texte[ (#TEXTE*|strlen|?{'',vide})]">
<div class='label'><:info_texte:></div>
<div dir='#LANG_DIR' class='#EDIT{texte} texte'>#TEXTE</div>
</div>
<div class="champ contenu_lien_titre[ (#LIEN_TITRE*|strlen|?{'',vide})]">
<div class='label'><:lien_voir_en_ligne:></div>
<div dir='#LANG_DIR' class='#EDIT{hyperlien} lien_titre'><a href='#LIEN_URL'>#LIEN_TITRE</a></div>
</div>
[<div class="champ contenu_notes">
<div class='label'><:info_notes:></div>
<div dir='#LANG_DIR' class='#EDIT{notes} notes'>(#NOTES)</div>
</div>]
</BOUCLE_afficher_contenu>

8
prive/editer/breve.html

@ -0,0 +1,8 @@
<div class='cadre-formulaire-editer'>
<div class="entete-formulaire">
#ENV**{icone_retour}
[<:info_modifier_breve:>
<h1>(#ENV{titre})</h1>]
</div>
#FORMULAIRE_EDITER_BREVE{#ENV{new},#ENV{id_rubrique},#ENV{redirect},#ENV{lier_trad},#ENV{config_fonc}}
</div>

20
prive/infos/breve.html

@ -0,0 +1,20 @@
<BOUCLE_breve(BREVES){id_breve=#ENV{id}}{statut?}{!lang_select}>
<div class='infos'>
<div class='numero'><:info_gauche_numero_breve:><p>#ID_BREVE</p></div>
[(#REM)
Bloc de changement de statut
]
[(#ID_BREVE|instituer_breve{#ID_RUBRIQUE,#STATUT})]
[(#REM)
Bouton voir en ligne
][(#VAL{breve}|voir_en_ligne{#ID_BREVE,#STATUT,racine-24.gif,0,0})]
</div>
</BOUCLE_breve>

10
prive/infos/breve_fonctions.php

@ -0,0 +1,10 @@
<?php
function instituer_breve($id_breve, $id_rubrique, $statut=-1){
$statut_rubrique = autoriser('publierdans', 'rubrique', $id_rubrique);
if ($statut_rubrique) {
$instituer_breve = charger_fonction('instituer_breve', 'inc');
return $instituer_breve($id_breve,$statut);
}
return "";
}
?>

38
prive/listes/breves.html

@ -0,0 +1,38 @@
[(#SET{defaut_tri,#ARRAY{
date,#ENV{date_sens,-1},
date_heure,#ENV{date_sens,-1},
titre,1,
id_breve,1
}})
]<B_liste_bre>
#ANCRE_PAGINATION
<div class="liste-objets breves">
<table class='spip liste'>
[<caption><strong class="caption">(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{info_1_breve,info_nb_breves}})</strong></caption>]
<thead>
<tr class='first_row'>
<th class='statut'>[(#TRI{statut,<span title="<:afficher_objets:info_statut|attribut_html:>">#</span>,ajax})]</th>
<th class='titre'>[(#TRI{titre,<:info_titre:>,ajax})]</th>
<th class='date'>[(#TRI{date,<:date:>,ajax})]</th>
<th class='id'>[(#TRI{id_breve,<:info_numero_abbreviation:>,ajax})]</th>
</tr>
</thead>
<tbody>
<BOUCLE_liste_bre(BREVES){id_breve?}{id_secteur?}{id_mot?}{id_rubrique?}{where?}{statut?}{tri #ENV{par,date},#GET{defaut_tri}}{pagination #ENV{nb,10}}>
<tr class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]">
<td class='statut'>[(#ID_BREVE|puce_changement_statut{#STATUT,#ID_RUBRIQUE,breve})]</td>
<td class='titre principale'>[(#LOGO_BREVE|image_reduire{20,26})]<a href="[(#ID_BREVE|generer_url_entite{breve})]">#TITRE</a></td>
<td class='date secondaire'>[(#DATE|affdate_jourcourt)]</td>
<td class='id'>[(#AUTORISER{modifier,breve,#ID_BREVE}|?{
<a href="[(#URL_ECRIRE{breves_edit,id_breve=#ID_BREVE})]">#ID_BREVE</a>,
#ID_BREVE
})]</td>
</tr>
</BOUCLE_liste_bre>
</tbody>
</table>
[<p class='pagination'>(#PAGINATION{prive})</p>]
</div>
</B_liste_bre>[
<div class="liste-objets breves"><strong class="caption">(#ENV*{sinon,''})</strong></div>
]<//B_liste_bre>

24
prive/squelettes/contenu/page-breves.html

@ -0,0 +1,24 @@
[(#REM)
/***************************************************************************\
* 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. *
\***************************************************************************/
]
<h1><:titre_page_breves:></h1>
<BOUCLE_secteurs(RUBRIQUES){statut?}{racine}{par num titre,titre}>
#SET{editable,#AUTORISER{publierdans,rubrique,#ID_RUBRIQUE}}
<INCLURE{fond=listes/breves,titre=#TITRE|concat{#AIDER{breves}},sinon=#TITRE|concat{#AIDER{breves}},status=#ARRAY{0,prop,1,publie,2,#GET{editable}|?{refuse,xx}},id_rubrique,par=date_heure}>
[(#GET{editable})
[(#URL_ECRIRE{breves_edit,new=oui}|parametre_url{id_rubrique,#ID_RUBRIQUE}|icone_verticale{<:icone_nouvelle_breve:>,breve,new,right})]
]
<br class='nettoyeur' />
</BOUCLE_secteurs>
Loading…
Cancel
Save