/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 |
) |
); |
} |
?> |
/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 /> ][ |
<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> |