Commit 4ba1709c authored by Chris's avatar Chris

Travail d'Aurélie

parent 423210f5
......@@ -2,7 +2,7 @@
@import url("../squelettes/css/abomailmans_style.css");
body {
font-size: 14px;
font-size: 15px;
/*font-family: verdana,sans-serif,arial,helvetica; */
font-family: Cantarell,'Droid Sans',Ubuntu,'DejaVu Sans',Arial,sans-serif;
color: #404040;
......@@ -72,9 +72,8 @@ a.spip_out {font-weight: normal;}
/* box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5); */
}
#headerLogo {padding-left: 37px; font-size: 18px;} /* text-transform: uppercase */
#headerLogo a {color: #404E5B; } /* CE5C00; #336699 */
#headerLogo a:hover {color: #003366;}
#headerLogo {padding-left: 37px; font-size: 19px;} /* text-transform: uppercase */
#headerLogo a {color: #555; } /* CE5C00; #336699 */
#headerOverlap {}
/* Titres */
......@@ -97,7 +96,7 @@ h1,h2,h3 {
}
h1 {
font-size:16px;
font-size:20px;
}
h2 {
......@@ -138,8 +137,8 @@ h3.spip { /* Intertitres des articles */
/* Contenu */
#Main {clear:left; float:left; width:68%; max-width: 800px; background-color: #fff; border: 1px solid #eee; border-radius: 5px;}
#Content {padding-top: 2px; padding-right: 20px; padding-bottom: 0px; padding-left: 45px}
#Main {clear:left; float:left; width:70%; max-width: 780px; background-color: #fff; border: 1px solid #eee; border-radius: 5px;}
#Content {padding-top: 1px; padding-right: 35px; padding-bottom: 0px; padding-left: 40px}
#Content p {}
#Content blockquote p {line-height:1.5;}
......@@ -171,7 +170,7 @@ h3.spip { /* Intertitres des articles */
}
.extrait, .extrait p.spip {
font-size: 15px;
font-size: 16px;
text-align: justify;
margin: 0px;
margin-bottom: 5px;
......@@ -272,8 +271,8 @@ hr, hr.spip {
#Menu {
float: left;
width: 28%;
padding: 15px 3% 40px 1%;
width: 26%;
padding: 15px 1% 40px 1%;
height: auto;
background-color: #f3f3f3;
}
......
<?php
/**
* Plugin Agenda 4 pour Spip 3.0
* Licence GPL 3
*
* 2006-2011
* Auteurs : cf paquet.xml
*/
if (!defined("_ECRIRE_INC_VERSION")) return;
function action_activer_agenda_rubrique_dist()
{
$securiser_action = charger_fonction('securiser_action', 'inc');
$arg = $securiser_action();
if (intval($arg)!=0) {
if (intval($arg)>0)
sql_updateq('spip_rubriques',array('agenda'=>1),'id_rubrique='.intval($arg));
else
sql_updateq('spip_rubriques',array('agenda'=>0),'id_rubrique='.(-intval($arg)));
}
}
?>
\ No newline at end of file
<?php
/**
* Plugin Agenda 4 pour Spip 3.0
* Licence GPL 3
*
* 2006-2011
* Auteurs : cf paquet.xml
*/
/**
* Edition d'un evenement
* @param string $arg
* @return array
*/
function action_editer_evenement_dist($arg=null){
if (is_null($arg)){
$securiser_action = charger_fonction('securiser_action', 'inc');
$arg = $securiser_action();
}
// si id_evenement n'est pas un nombre, c'est une creation
// mais on verifie qu'on a toutes les donnees qu'il faut.
if (!$id_evenement = intval($arg)) {
$id_parent = _request('id_parent');
if (!$id_evenement = agenda_action_insert_evenement($id_parent))
return array(false,_L('echec'));
}
$err = action_evenement_set($id_evenement);
return array($id_evenement,$err);
}
/**
* Creer un nouvel evenement
*
* @param int $id_article
* @param int $id_evenement_source
* @return int
*/
function evenement_inserer($id_article,$id_evenement_source = 0){
include_spip('inc/autoriser');
if (!autoriser('creerevenementdans','article',$id_article)){
spip_log("agenda action formulaire article : auteur ".$GLOBALS['visiteur_session']['id_auteur']." n'a pas le droit de creer un evenement dans article $id_article",'agenda');
return false;
}
$champs = array(
"id_evenement_source"=>intval($id_evenement_source),
'id_article'=>intval($id_article),
'statut' => 'prop',
);
// Envoyer aux plugins
$champs = pipeline('pre_insertion',
array(
'args' => array(
'table' => 'spip_evenements',
),
'data' => $champs
)
);
// nouvel evenement
$id_evenement = sql_insertq("spip_evenements", $champs);
pipeline('post_insertion',
array(
'args' => array(
'table' => 'spip_evenements',
'id_objet' => $id_evenement
),
'data' => $champs
)
);
if (!$id_evenement){
spip_log("agenda action formulaire evenement : impossible d'ajouter un evenement",'agenda');
return false;
}
return $id_evenement;
}
/**
* Modifier un evenement existant
*
* @param int $id_evenement
* @param array $set
* @return bool|string
*/
function evenement_modifier($id_evenement, $set=null){
include_spip('inc/modifier');
include_spip('inc/filtres');
$c = collecter_requests(
// white list
objet_info('evenement','champs_editables'),
// black list
array('statut','id_article'),
// donnees eventuellement fournies
$set
);
// Si l'evenement est publie, invalider les caches et demander sa reindexation
$t = sql_getfetsel("statut", "spip_evenements", "id_evenement=".intval($id_evenement));
$invalideur = $indexation = false;
if ($t == 'publie') {
$invalideur = "id='evenement/$id_evenement'";
$indexation = true;
}
if ($err = objet_modifier_champs('evenement', $id_evenement,
array(
'nonvide' => array('titre' => _T('info_nouvel_evenement')." "._T('info_numero_abbreviation').$id_evenement),
'invalideur' => $invalideur,
'indexation' => $indexation,
),
$c))
return $err;
if (!is_null($mots = _request('mots',$set)))
evenement_associer_mots($id_evenement,$mots);
if (!is_null($repetitions = _request('repetitions',$set)))
agenda_action_revision_evenement_repetitions($id_evenement,$repetitions);
// Modification de statut, changement de parent ?
$c = collecter_requests(array('statut', 'id_parent'),array(),$set);
$err = evenement_instituer($id_evenement, $c);
return $err;
}
function agenda_action_revision_evenement_repetitions($id_evenement,$repetitions="",$liste_mots=array()){
include_spip('inc/filtres');
$repetitions = preg_split(",[^0-9\-\/],",$repetitions);
// gestion des repetitions
$rep = array();
foreach($repetitions as $date){
if (strlen($date)){
$date = recup_date($date);
if ($date=mktime(0,0,0,$date[1],$date[2],$date[0]))
$rep[] = $date;
}
}
agenda_action_update_repetitions($id_evenement, $rep, $liste_mots);
}
function agenda_action_update_repetitions($id_evenement,$repetitions){
// evenement source
if ($row = sql_fetsel("*", "spip_evenements","id_evenement=".intval($id_evenement))){
$titre = $row['titre'];
$descriptif = $row['descriptif'];
$horaire = $row['horaire'];
$lieu = $row['lieu'];
$adresse = $row['adresse'];
$date_debut = strtotime($row['date_debut']);
$date_fin = strtotime($row['date_fin']);
$duree = $date_fin - $date_debut;
$id_evenement_source = $row['id_evenement_source'];
$id_article = $row['id_article'];
$inscription = $row['inscription'];
$places = $row['places'];
if ($id_evenement_source!=0)
return; // pas un evenement source donc rien a faire ici
include_spip('action/editer_liens');
$liens = objet_trouver_liens(array('mot'=>'*'),array('evenement'=>$id_evenement));
$mots = array();
foreach($liens as $l)
$mots[] = $l['mot'];
$repetitions_updated = array();
// mettre a jour toutes les repetitions deja existantes ou les supprimer si plus lieu
$res = sql_select("id_evenement,date_debut","spip_evenements","id_evenement_source=".sql_quote($id_evenement));
while ($row = sql_fetch($res)){
$date = strtotime(date('Y-m-d',strtotime($row['date_debut'])));
if (in_array($date,$repetitions)){
// il est maintenu, on l'update
$repetitions_updated[] = $date;
$update_date_debut = date('Y-m-d',$date)." ".date('H:i:s',$date_debut);
$update_date_fin = date('Y-m-d H:i:s',strtotime($update_date_debut)+$duree);
// TODO : prendre en charge la mise a jour uniquement si conforme a l'original
$update_titre = $titre;
$update_descriptif = $descriptif;
$update_lieu = $lieu;
$update_adresse = $adresse;
$update_inscription = $inscription;
$update_places = $places;
// mettre a jour l'evenement
sql_updateq('spip_evenements',
array(
"titre" => $update_titre,
"descriptif" => $update_descriptif,
"lieu" => $update_lieu,
"adresse" => $update_adresse,
"horaire" => $horaire,
"date_debut" => $update_date_debut,
"date_fin" => $update_date_fin,
"inscription" => $update_inscription,
"places" => $update_places,
"id_article" => $id_article),"id_evenement=".intval($row['id_evenement']));
evenement_associer_mots($row['id_evenement'], $mots);
}
else {
// il est supprime
sql_delete("spip_mots_liens","objet='evenement' AND id_objet=".$row['id_evenement']);
sql_delete("spip_evenements","id_evenement=".$row['id_evenement']);
}
}
// regarder les repetitions a ajouter
foreach($repetitions as $date){
if (!in_array($date,$repetitions_updated)){
$update_date_debut = date('Y-m-d',$date)." ".date('H:i:s',$date_debut);
$update_date_fin = date('Y-m-d H:i:s',strtotime($update_date_debut)+$duree);
$update_titre = $titre;
$update_descriptif = $descriptif;
$update_lieu = $lieu;
$update_adresse = $adresse;
$update_inscription = $inscription;
$update_places = $places;
if ($id_evenement_new = agenda_action_insert_evenement($id_article,$id_evenement)) {
// mettre a jour l'evenement
sql_updateq('spip_evenements',
array(
"titre" => $update_titre,
"descriptif" => $update_descriptif,
"lieu" => $update_lieu,
"adresse" => $update_adresse,
"horaire" => $horaire,
"date_debut" => $update_date_debut,
"date_fin" => $update_date_fin,
"inscription" => $update_inscription,
"places" => $update_places,
"id_article" => $id_article),"id_evenement=".intval($id_evenement_new));
agenda_action_revision_evenement_mots($id_evenement_new, $liste_mots);
}
}
}
}
}
/**
* Associer une liste de mots a un evenement
* Modifie la liste des mots lies pour qu'elle corresponde exactement a $mots
*
* @param int $id_evenement
* @param array $mots
* @return void
*/
function evenement_associer_mots($id_evenement,$mots){
include_spip('action/editer_liens');
// associer les mots fournis
objet_associer(array('mot'=>$mots),array('evenement'=>$id_evenement));
// enlever les autres
objet_dissocier(array('mot'=>array('NOT',$mots)),array('evenement'=>$id_evenement));
}
/**
* Instituer un evenement
*
* @param int $id_evenement
* @param array $c
* @return bool|string
*/
function evenement_instituer($id_evenement, $c) {
include_spip('inc/autoriser');
include_spip('inc/modifier');
$row = sql_fetsel("id_article, statut", "spip_evenements", "id_evenement=".intval($id_evenement));
$id_parent = $id_parent_ancien = $row['id_article'];
$statut = $statut_ancien = $row['statut'];
$champs = array();
if (!autoriser('modifier', 'article', $id_parent)
OR (isset($c['id_parent']) AND !autoriser('modifier', 'article', $c['id_parent']))){
spip_log("editer_evenement $id_evenement refus " . join(' ', $c));
return false;
}
// Verifier que l'article demande existe et est different
// de l'article actuel
if ($c['id_parent']
AND $c['id_parent'] != $id_parent
AND (sql_countsel("spip_articles", "id_article=".intval($c['id_parent'])))) {
$id_parent = $champs['id_article'] = $c['id_parent'];
}
$sa = sql_getfetsel('statut','spip_articles','id_article='.intval($id_parent));
if ($id_parent
AND (
$id_parent!==$id_parent_ancien OR $statut=='0'
)){
switch($sa){
case 'publie':
// statut par defaut si besoin
if ($statut=='0')
$champs['statut'] = $statut = 'publie';
break;
case 'poubelle':