Subversion Repositories Sites.tela-botanica.org

Compare Revisions

Ignore whitespace Rev 5 → Rev 7

/trunk/actu/formulaires/inc-formulaire_ecrire_auteur.php3
New file
0,0 → 1,85
<?php
 
if (!defined("_ECRIRE_INC_VERSION")) return; #securite
 
 
// On prend l'email dans le contexte de maniere a ne pas avoir a le
// verifier dans la base ni a le devoiler au visiteur
global $balise_FORMULAIRE_ECRIRE_AUTEUR_collecte;
$balise_FORMULAIRE_ECRIRE_AUTEUR_collecte = array('id_auteur', 'id_article', 'email');
 
function balise_FORMULAIRE_ECRIRE_AUTEUR_stat($args, $filtres) {
 
// Pas d'id_auteur ni d'id_article ? Erreur de squelette
if (!$args[0] AND !$args[1])
return erreur_squelette(
_T('zbug_champ_hors_motif',
array ('champ' => '#FORMULAIRE_ECRIRE_AUTEUR',
'motif' => 'AUTEURS/ARTICLES')), '');
 
// Si on est dans un contexte article, sortir tous les mails des auteurs
// de l'article
if (!$args[0] AND $args[1]) {
unset ($args[2]);
$s = spip_query("SELECT auteurs.email AS email
FROM spip_auteurs as auteurs, spip_auteurs_articles as lien
WHERE lien.id_article=".intval($args[1])
. " AND auteurs.id_auteur = lien.id_auteur");
while ($row = spip_fetch_array($s))
if ($row['email'] AND email_valide($row['email']))
$args[2].= ','.$row['email'];
$args[2] = substr($args[2], 1);
}
 
// On ne peut pas ecrire a un auteur dont le mail n'est pas valide
if (!$args[2] OR !email_valide($args[2]))
return '';
 
// OK
return $args;
}
 
function balise_FORMULAIRE_ECRIRE_AUTEUR_dyn($id_auteur, $id_article, $mail) {
include_ecrire('inc_texte.php3');
$puce = $GLOBALS['puce'.$GLOBALS['spip_lang_rtl']];
 
// id du formulaire (pour en avoir plusieurs sur une meme page)
$id = ($id_auteur ? '_'.$id_auteur : '_ar'.$id_article);
#spip_log("id formulaire = $id, "._request("valide".$id));
$sujet = _request('sujet_message_auteur'.$id);
$texte = _request('texte_message_auteur'.$id);
$adres = _request('email_message_auteur'.$id);
 
$mailko = $texte && !email_valide($adres);
 
$validable = $texte && $sujet && (!$mailko);
 
// doit-on envoyer le mail ?
if ($validable
AND $id == _request('num_formulaire_ecrire_auteur')
AND _request('confirmer'.$id)) {
$texte .= "\n\n-- "._T('envoi_via_le_site')." ".supprimer_tags(extraire_multi(lire_meta('nom_site')))." (".lire_meta('adresse_site')."/) --\n";
include_ecrire("inc_mail.php3");
envoyer_mail($mail, $sujet, $texte, $adres,
"X-Originating-IP: ".$GLOBALS['REMOTE_ADDR']);
return _T('form_prop_message_envoye');
}
 
return
array('formulaire_ecrire_auteur', 0,
array(
'id' => $id,
'mailko' => $mailko ? $puce : '',
'mail' => $adres,
'sujetko' => ($texte && !$sujet) ? $puce : '',
'sujet' => $sujet,
'texte' => $texte,
'valide' => ($validable ? $id : ''),
'bouton' => (_T('form_prop_envoyer')),
'boutonconfirmation' => ($validable ?
_T('form_prop_confirmer_envoi') :
'')
)
);
}
?>
/trunk/actu/formulaires/inc-formulaire_site.php3
New file
0,0 → 1,51
<?php
 
if (!defined("_ECRIRE_INC_VERSION")) return; #securite
 
// Le contexte indique dans quelle rubrique le visiteur peut proposer le site
global $balise_FORMULAIRE_SITE_collecte;
$balise_FORMULAIRE_SITE_collecte = array('id_rubrique');
 
function balise_FORMULAIRE_SITE_stat($args, $filtres) {
 
// Pas d'id_rubrique ? Erreur de squelette
if (!$args[0])
return erreur_squelette(
_T('zbug_champ_hors_motif',
array ('champ' => '#FORMULAIRE_SITE',
'motif' => 'RUBRIQUES')), '');
 
// Verifier que les visisteurs sont autorises a proposer un site
return ((lire_meta("proposer_sites") != 2) ? '' : $args);
}
 
function balise_FORMULAIRE_SITE_dyn($id_rubrique) {
 
if (!_request('nom_site'))
return array('formulaire_site', $GLOBALS['delais'],
array('self' => $GLOBALS["clean_link"]->getUrl()
));
 
// Tester le nom du site
if (strlen (_request('nom_site')) < 2){
return _T('form_prop_indiquer_nom_site');
}
 
// Tester l'URL du site
include_ecrire("inc_sites.php3");
if (!recuperer_page(_request('url_site')))
return _T('form_pet_url_invalide');
 
// Integrer a la base de donnees
$nom_site = addslashes(_request('nom_site'));
$url_site = addslashes(_request('url_site'));
$description_site = addslashes(_request('description_site'));
spip_query("INSERT INTO spip_syndic
(nom_site, url_site, id_rubrique, descriptif, date, date_syndic, statut, syndication)
VALUES ('$nom_site', '$url_site', $id_rubrique, '$description_site', NOW(), NOW(), 'prop', 'non')");
 
return _T('form_prop_enregistre');
}
 
?>
/trunk/actu/formulaires/formulaire_ecrire_auteur.html
New file
0,0 → 1,38
[<br />(#ENV*{sujetko})<:form_prop_indiquer_sujet:><br />&nbsp;][
<br />(#ENV*{mailko})<:form_prop_indiquer_email:><br /><br />
]
 
<form action="#SELF" method='post'>
 
[(#REM) Previsualisation ... ]
[<input type="hidden" name="num_formulaire_ecrire_auteur" value="(#ENV{valide})" />]
[<div class='spip_encadrer'>
<i>[(#ENV{mail})]</i> - <strong>[(#ENV{sujet})]</strong>
<div>
[(#ENV{texte}|nl2br)]
</div>
<div style="text-align:#LANG_RIGHT;">
<input type="submit" class="spip_bouton" name="confirmer[(#ENV{id})]"
value="(#ENV{boutonconfirmation})" />
</div>
</div>
]
 
[(#REM) Formulaire normal ]
<p><label><:form_pet_votre_email:><br />
<input type="text" class="forml" name="email_message_auteur[(#ENV{id})]"
value="[(#ENV{mail})]" size="30" />
</label></p>
<p><label><:form_prop_sujet:><br />
<input type="text" class="forml" name="sujet_message_auteur[(#ENV{id})]"
value="[(#ENV{sujet})]" size="30" />
</label></p>
<p>
<textarea name="texte_message_auteur[(#ENV{id})]" rows='10' class='forml' cols='40'>[(#ENV{texte})]</textarea>
</p>
<div style="text-align:#LANG_RIGHT;">
<input type="submit" class="spip_bouton" name="valide"
value="[(#ENV{bouton})]" />
</div>
 
</form>
/trunk/actu/formulaires/formulaires/inc-menu_lang_ecrire.php3
New file
0,0 → 1,63
<?php
 
if (!defined("_ECRIRE_INC_VERSION")) return; #securite
 
// Ce "menu_lang" collecte dans le contexte permet de forcer la langue
// par defaut proposee dans le menu ; mais a quoi ca sert concretement ?
global $balise_MENU_LANG_ECRIRE_collecte;
$balise_MENU_LANG_ECRIRE_collecte = array('menu_lang');
 
// s'il n'y a qu'une langue proposee eviter definitivement la balise ?php
function balise_MENU_LANG_ECRIRE_stat ($args, $filtres) {
global $all_langs;
include_ecrire('inc_lang.php3');
if (!strpos($all_langs,',')) return '';
return $args;
}
 
 
// normalement $opt sera toujours non vide suite au test ci-dessus
function balise_MENU_LANG_ECRIRE_dyn($default) {
return menu_lang_pour_tous('var_lang_ecrire', $opt);
}
 
function menu_lang_pour_tous($nom, $opt) {
include_ecrire("inc_lang.php3");
 
// Voir s'il y a une langue demandee par _request,
// ou une langue par defaut dans le contexte {menu_lang=xx}
$default = _request('lang');
lang_select($default);
if ($GLOBALS['spip_lang'] <> $default) {
$default = $menu_lang;
lang_select($default); # et remplace
if ($GLOBALS['spip_lang'] <> $default)
unset ($default); # annule tout choix par defaut
lang_dselect(); #annule la selection
}
lang_dselect();
 
$opt = liste_options_langues($nom, $default);
if (!$opt)
return '';
 
$site = lire_meta("adresse_site");
$post = ($site ? $site : '..') . "/spip_cookie.php3";
$cible = new Link();
$cible->delVar('lang');
$cible = $cible->getUrl();
$postcomplet = new Link($post);
$postcomplet->addvar('url', $cible);
 
return array('formulaire_menu_lang',
3600,
array('nom' => $nom,
'url' => $post,
'cible' => $cible,
'retour' => $postcomplet->getUrl(),
'langues' => $opt
)
);
}
 
?>
/trunk/actu/formulaires/formulaires/inc-menu_lang.php3
New file
0,0 → 1,23
<?php
 
if (!defined("_ECRIRE_INC_VERSION")) return; #securite
 
// Ce "menu_lang" collecte dans le contexte permet de forcer la langue
// par defaut proposee dans le menu, en faisant une inclusion
// <INCLURE(toto){menu_lang=xxx}> ; mais a quoi ca sert concretement ?
global $balise_MENU_LANG_collecte;
$balise_MENU_LANG_collecte = array('menu_lang');
 
// s'il n'y a qu'une langue eviter definitivement la balise ?php
function balise_MENU_LANG_stat ($args, $filtres) {
if (!strpos(lire_meta('langues_multilingue'),',')) return '';
return $args;
}
 
// normalement $opt sera toujours non vide suite au test ci-dessus
function balise_MENU_LANG_dyn($menu_lang) {
include_local(find_in_path("inc-menu_lang_ecrire.php3"));
return menu_lang_pour_tous('var_lang', $opt);
}
 
?>
/trunk/actu/formulaires/formulaires/inc-formulaire_admin.php3
New file
0,0 → 1,137
<?php
 
if (!defined("_ECRIRE_INC_VERSION")) return; #securite
 
global $balise_FORMULAIRE_ADMIN_collecte ;
$balise_FORMULAIRE_ADMIN_collecte = array();
 
# on ne peut rien dire au moment de l'execution du squelette
 
function balise_FORMULAIRE_ADMIN_stat($args, $filtres) {
return $args;
}
 
# les boutons admin sont mis d'autorite si absents
# donc une variable statique controle si FORMULAIRE_ADMIN a ete vu.
# Toutefois, si c'est le debuger qui appelle,
# il peut avoir recopie le code dans ses donnees et il faut le lui refounir.
# Pas question de recompiler: ca fait boucler !
# Le debuger transmet donc ses donnees, et cette balise y retrouve son petit.
 
function balise_FORMULAIRE_ADMIN_dyn($float='', $debug='') {
global $var_preview, $use_cache, $forcer_debug;
global $id_article, $id_breve, $id_rubrique, $id_mot, $id_auteur;
static $dejafait = false;
 
if (!$GLOBALS['spip_admin'])
return '';
 
if (!is_array($debug)) {
if ($dejafait)
return '';
} else {
if ($dejafait) {
$res = '';
foreach($debug['sourcefile'] as $k => $v) {
if (strpos($v,'formulaire_admin.') !== false)
return $debug['resultat'][$k . 'tout'];
}
return '';
}
}
$dejafait = true;
 
// repartir de zero pour les boutons car clean_link a pu etre utilisee
$link = new Link();
$link->delVar('var_mode');
$link->delVar('var_mode_objet');
$link->delVar('var_mode_affiche');
$action = $link->getUrl();
$action = ($action . ((strpos($action, '?') === false) ? '?' : '&'));
 
// Ne pas afficher le bouton 'Modifier ce...' si l'objet n'existe pas
foreach (array('article', 'breve', 'rubrique', 'mot', 'auteur') as $type) {
$id_type = 'id_'.$type;
if (!($$id_type = intval($$id_type)
AND $s = spip_query(
"SELECT $id_type FROM spip_${type}s WHERE $id_type=".$$id_type)
AND spip_num_rows($s)))
$$id_type=0;
else {
$objet_affiche = $type;
break;
}
}
 
// Bouton statistiques
if (lire_meta("activer_statistiques") != "non"
AND $id_article
AND !$var_preview
AND ($GLOBALS['auteur_session']['statut'] == '0minirezo')) {
if ($s = spip_query("SELECT id_article
FROM spip_articles WHERE statut='publie'
AND id_article = $id_article")
AND spip_fetch_array($s)) {
include_local ("inc-stats.php3");
$r = afficher_raccourci_stats($id_article);
$visites = $r['visites'];
$popularite = $r['popularite'];
$statistiques = 'statistiques_visites.php3?'; # lien si connecte
}
}
 
// Bouton de debug
$debug = (
($forcer_debug
OR $GLOBALS['bouton_admin_debug']
OR ($GLOBALS['var_mode'] == 'debug'
AND $GLOBALS['_COOKIE']['spip_debug']
)) AND ($GLOBALS['code_activation_debug'] == 'oui'
OR $GLOBALS['auteur_session']['statut'] == '0minirezo')
AND !$var_preview
) ? 'debug' : '';
 
// hack - ne pas avoir la rubrique si un autre bouton est deja present
if ($id_article OR $id_breve) unset ($id_rubrique);
 
// Pas de "modifier ce..." ? -> donner "acces a l'espace prive"
if (!($id_article || $id_rubrique || $id_auteur || $id_breve || $id_mot))
$ecrire = 'ecrire';
 
// Bouton "preview" si l'objet demande existe et est previsualisable
if (!$GLOBALS['var_preview'] AND (
((lire_meta('preview')=='1comite'
AND $GLOBALS['auteur_session']['statut'] =='1comite')
OR (lire_meta('preview')<>''
AND $GLOBALS['auteur_session']['statut'] =='0minirezo'))
)) {
if ($objet_affiche == 'article'
OR $objet_affiche == 'breve'
OR $objet_affiche == 'rubrique')
if (spip_num_rows(spip_query(
"SELECT id_$objet_affiche FROM spip_".$objet_affiche."s
WHERE id_$objet_affiche=".${"id_".$objet_affiche}."
AND statut IN ('prop', 'prive')")))
$preview = 'preview';
}
 
return array('formulaire_admin', 0,
array(
'id_article' => $id_article,
'id_rubrique' => $id_rubrique,
'id_auteur' => $id_auteur,
'id_breve' => $id_breve,
'id_mot' => $id_mot,
'ecrire' => $ecrire,
'action' => $action,
'preview' => $preview,
'debug' => $debug,
'popularite' => ceil($popularite),
'statistiques' => $statistiques,
'visites' => intval($visites),
'use_cache' => ($use_cache ? ' *' : ''),
'floatdiv' => $float
)
);
}
?>