Ejemplo n.º 1
0
function  configuration_bloc_votre_site()
{
	$adresse_site = entites_html($GLOBALS['meta']["adresse_site"]);
	$nom_site = entites_html($GLOBALS['meta']["nom_site"]);
	$email_webmaster = entites_html($GLOBALS['meta']["email_webmaster"]);
	$descriptif_site = entites_html($GLOBALS['meta']["descriptif_site"]);

	return debut_cadre_relief("", true, "", "<label for='nom_site'>"._T('info_nom_site')."</label>".aide ("confnom"))
	. "<input type='text' name='nom_site' id='nom_site' value=\"$nom_site\" size='40' class='forml' />"
	. fin_cadre_relief(true)

	. debut_cadre_relief("", true, "", "<label for='adresse_site'>"._T('info_adresse_url')."</label>")
	. "<input type='text' name='adresse_site' id='adresse_site' value=\"$adresse_site/\" size='40' class='forml' />"
	. fin_cadre_relief(true)

	. debut_cadre_relief("", true, "","<label for='descriptif_site'>". _T('entree_description_site')."</label>")
	. "<textarea name='descriptif_site' id='descriptif_site' class='forml' rows='4' cols='40'>$descriptif_site</textarea>"
	. fin_cadre_relief(true)

	. "<div>&nbsp;</div>"
	
	. debut_cadre_relief("", true, "", "<label for='email_webmaster'>"._T('info_email_webmestre')."</label>")
	. "<input type='text' name='email_webmaster' id='email_webmaster' value=\"$email_webmaster\" size='40' class='formo' />"
	. fin_cadre_relief(true);
}
Ejemplo n.º 2
0
function action_rapide_tri_auteurs($id_article=0) {
spip_log("action_rapide_tri_auteurs : $id_article, $id_auteur, $monter");
	$id = $id_article?$id_article:_request('id_article');
	include_spip('public/assembler'); // pour recuperer_fond(), SPIP < 2.0
	$texte = trim(recuperer_fond('fonds/tri_auteurs', array('id_article'=>$id)));
	// syntaxe : ajax_action_auteur($action, $id, $script, $args='', $corps=false, $args_ajax='', $fct_ajax='')
	if(strlen($texte))
		// un clic sur 'monter' ou 'descendre' va permettre une redirection vers
		// les fonctions : boites_privees_URL_objet_exec(), puis action_rapide_tri_auteurs()
		$texte = ajax_action_auteur('action_rapide', 'tri_auteurs', 'articles', "arg=boites_privees|URL_objet&fct=tri_auteurs&id_article=$id#bp_tri_auteurs_corps", $texte);
	// si appel exec, l'id article est nul...
	if(!$id_article) return $texte;
	// ici, 1er affichage !
	if(!strlen($texte)) return '';
	// SPIP < 2.0
	if(!defined('_SPIP19300')) return debut_cadre_relief(find_in_path('img/couteau-24.gif'), true)
		. cs_div_configuration()
		. "<div class='verdana1' style='text-align: left;'>"
		. block_parfois_visible('bp_ta', '<b>'._T('couteau:tri_auteurs').'</b>', "<div id='bp_tri_auteurs_corps'>$texte</div>", 'text-align: center;')
		. "</div>"
		. fin_cadre_relief(true);
	// SPIP >= 2.0
	return cadre_depliable(find_in_path('img/couteau-24.gif'),
		cs_div_configuration().'<b>'._T('couteau:tri_auteurs').'</b>',
		false,	// true = deplie
		"<div id='bp_tri_auteurs_corps'>$texte</div>",
		'bp_tri_auteurs');
}
Ejemplo n.º 3
0
function exec_documents_liste_dist()
{

//
// Recupere les donnees
//

$commencer_page = charger_fonction('commencer_page', 'inc');
echo $commencer_page(_T('titre_page_documents_liste'), "naviguer", "documents");
echo debut_gauche('', true);


//////////////////////////////////////////////////////
// Boite "voir en ligne"
//

echo debut_boite_info(true);

echo propre(_T('texte_recapitiule_liste_documents'));

echo fin_boite_info(true);



echo debut_droite('', true);

	// recupere les titres des types
	$res = sql_select('extension, titre', "spip_types_documents");
	while ($row = sql_fetch($res))
		$types[$row['extension']] = $row;

	$result = sql_select("docs.id_document AS id_doc, docs.extension AS extension, docs.fichier AS fichier, docs.date AS date, docs.titre AS titre, docs.descriptif AS descriptif, R.id_rubrique AS id_rub, R.titre AS titre_rub", "spip_documents AS docs, spip_documents_liens AS lien, spip_rubriques AS R", "docs.id_document = lien.id_document AND R.id_rubrique = lien.id_objet AND lien.objet='rubrique' AND docs.mode = 'document'", "", "docs.date DESC");

	while ($row=sql_fetch($result)){
		$titre=$row['titre'];
		$descriptif=$row['descriptif'];
		$date=$row['date'];
		$id_document=$row['id_doc'];
		$id_rubrique=$row['id_rub'];
		$titre_rub = typo($row['titre_rub']);
		$fichier = $row['fichier'];

		if (!$titre) $titre = _T('info_document').' '.$id_document;

		debut_cadre_relief("doc-24.gif");
		echo "<b>$titre</b> (" . $types[$row['extension']]['titre'] . ', ' . affdate($date) . ")";
		if ($descriptif)
			echo propre($descriptif);
		else
			echo "<p><tt>$fichier</tt>" . '</p>';

		echo "<p>"._T('info_dans_rubrique')." <a href='" . generer_url_ecrire("naviguer","id_rubrique=$id_rubrique") . "'>$titre_rub</a></p>";
		echo fin_cadre_relief(true);
	}

	echo fin_gauche(), fin_page();
}
Ejemplo n.º 4
0
function cs_description_pack() {
	if(!isset($GLOBALS['cs_pack_actuel'])) return '';
	return debut_cadre_relief('', true)
		. "<h3 class='titrem'><img src='"._DIR_IMG_PACK."puce-verte.gif' width='9' height='9' alt='-' />&nbsp;" . _T('couteauprive:pack_titre') . '</h3>'
		. ((strlen($temp = cs_action_rapide('pack')))?"<div class='cs_action_rapide' id='cs_action_rapide'>$temp</div>":'')
		. propre(_T('couteauprive:pack_descrip', array('pack'=> _T('couteauprive:pack_actuel', array('date'=>cs_date()))))
		. "\n\n" . _T('couteauprive:contrib', array('url'=>'[->'._URL_CONTRIB.'2552]')))
		. '<br/><textarea rows=40 cols=500 style="width:100%; font-size:90%;">'.htmlentities($GLOBALS[cs_pack_actuel], ENT_QUOTES, $GLOBALS['meta']['charset']).'</textarea>'
		. fin_cadre_relief(true);
}
Ejemplo n.º 5
0
function configuration_redirection_dist()
{
	global $spip_lang_left;

	$res = "<table border='0' cellspacing='1' cellpadding='3' width=\"100%\">"
	. "<tr><td class='verdana2'>"
	. _T('config_info_redirection')
	. "</td></tr>"

	. "<tr><td align='$spip_lang_left' class='verdana2'>"
	. afficher_choix('articles_redirection', $GLOBALS['meta']["articles_redirection"],
		array('oui' => _T('item_oui'),
			'non' => _T('item_non')))
	. "</td></tr>\n"
	. "</table>\n";

	$res = debut_cadre_relief("", true, "", _T('config_redirection').aide ("artvirt"))
	. ajax_action_post('configurer', 'redirection', 'configuration','',$res)
 	. fin_cadre_relief(true);

	return ajax_action_greffe('configurer-redirection', '', $res);
}
Ejemplo n.º 6
0
function configuration_futurs_dist()
{
	global $spip_lang_left;

	$res = "<table border='0' cellspacing='1' cellpadding='3' width=\"100%\">"
	. "<tr><td class='verdana2'>"
	. _T('texte_publication_articles_post_dates')
	. "</td></tr>"

	. "<tr><td align='$spip_lang_left' class='verdana2'>"
	. afficher_choix('post_dates', $GLOBALS['meta']["post_dates"],
		array('oui' => _T('item_publier_articles'),
			'non' => _T('item_non_publier_articles')))
	. "</td></tr>\n"
	. "</table>\n";

	$res = debut_cadre_relief("", true, "", _T('titre_publication_articles_post_dates').aide ("confdates"))
	. ajax_action_post('configurer', 'futurs', 'configuration','',$res)
 	. fin_cadre_relief(true);

	return ajax_action_greffe('configurer-futurs', '', $res);
}
function spiplistes_auteur_abonnement () {

	$id_auteur = intval(_request('id_auteur'));
	if($id_auteur > 0) {
		
		//if($row = sql_fetsel("email,statut", "spip_auteurs", "id_auteur=".sql_quote($id_auteur)." LIMIT 1")) {
		if ($row = spiplistes_auteurs_auteur_select ('email,statut'
													 , 'id_auteur='.sql_quote($id_auteur)
													 )
			) {
			
			if($row['statut'] == '5poubelle')
			{
				// le compte est supprime'. Desabonner de tout
				spiplistes_abonnements_auteur_desabonner($id_auteur);
			}
			else
			{
				if(strlen($auteur_email = $row['email']) > 3) {
					$result = spiplistes_auteur_abonnement_details($id_auteur, $row['statut'], $auteur_email);
				}
				else {
					$result =	''
						. debut_cadre_relief(_DIR_PLUGIN_SPIPLISTES_IMG_PACK.'courriers_listes-24.png'
											 , true
											 , ''
											 , _T('spiplistes:abonnements_aux_courriers')
											 )
						. '<p class="verdana2">'
						. _T('spiplistes:Adresse_email_obligatoire')
						. '</p>'
						. fin_cadre_relief(true)
						;
				}
			}
		}
	}
	return($result);
}
Ejemplo n.º 8
0
function configuration_transcodeur_dist()
{
	$charset = $GLOBALS['meta']["charset"];

	$res =  _T('texte_jeu_caractere') .
	  "<blockquote class='spip'>\n<p>"
	  . _T('texte_jeu_caractere_3') .
	  "</p>\n<div style='text-align: center'><b><tt>"
	  .entites_html($charset)
	  ."</tt></b></div><p>" 
	  ."<label for='charset'>" 
	  ._T('texte_jeu_caractere_4') 
	  ."</label>"
	  ." &nbsp; <input type='text' name='charset' id='charset'
			value=\"".entites_html($charset)."\" />" .
	  "<br />\n(".
	  _T('texte_jeu_caractere_2').")" .
		"</p></blockquote>\n";

	// faudrait dire si le charset est inconnu
	// ca eviterait l'erreur sur array_flip dans inc/charsets
	if ($charset != 'utf-8' AND load_charset($charset))
		$res .= _T('texte_jeu_caractere_conversion',
			array('url' => generer_url_ecrire('convert_utf8'))
		);

	$res = ajax_action_post('configurer',
				'transcodeur',
				'config_lang',
				'',
				$res);

	$res = debut_cadre_relief("breve-24.gif", true, "", _T('info_jeu_caractere')) .
	  $res .
	  fin_cadre_relief(true);

	return ajax_action_greffe("configurer-transcodeur", '', $res);
}
Ejemplo n.º 9
0
function action_spiplistes_lire_console_dist () {
	global $auteur_session;

	if($auteur_session['statut'] != "0minirezo") {
		include_spip('inc/spiplistes_api');
		die (spiplistes_terminer_page_non_autorisee());
		return(false);
	}

	include_spip('inc/spiplistes_api_presentation');
	
	$result = ""
		. "<div style='margin-top:0.5em;'>"
		. debut_cadre_relief("", true, "", "Logs")
		. "<pre style='width:98%;overflow:auto'>".spiplistes_console_lit_log("spiplistes")."</pre>\n"
		. fin_cadre_relief(true)
		. "</div>\n"
		;
		
	echo($result);
	return(true);

}
Ejemplo n.º 10
0
function spiplistes_boite_agenda ($periode = false) {

	$result = ''
		. '<!-- boite agenda spiplistes -->' . PHP_EOL
		. debut_cadre_relief('statistiques-24.gif', true)
		. '<span class="verdana2 titre-petite-boite">'
		. _T('spiplistes:boite_agenda_titre_').':'
		. '</span><br />'
		. '<div style="width:'._SPIPLISTES_AGENDA_CADRE_WIDTH.'px;height:'
			. (_SPIPLISTES_AGENDA_LOUPE_HEIGHT 
				+ _SPIPLISTES_AGENDA_CAPTION_HEIGHT
				+ _SPIPLISTES_AGENDA_TABLE_HEIGHT
				+ (_SPIPLISTES_AGENDA_CADRE_PADDING * 4)
				)
			. 'px">' . PHP_EOL
		. '<div id="spiplistes_boite_agenda" style="padding:'._SPIPLISTES_AGENDA_CADRE_PADDING.'px 0">' . PHP_EOL
		. spiplistes_boite_agenda_contenu($periode, self(), _DIR_IMG_PACK)
		. '</div>' . PHP_EOL
		. '</div>' . PHP_EOL
		. fin_cadre_relief(true)
		. '<!-- fin boite agenda spiplistes -->' . PHP_EOL
		;
	return($result);
}
Ejemplo n.º 11
0
function configuration_locuteur_dist()
{
	global $spip_lang_right;

	include_spip('inc/lang_liste');
	$langues = $GLOBALS['codes_langues'];
	$cesure = floor((count($langues) + 1) / 2);

	$langues_installees = explode(',', $GLOBALS['meta']['langues_proposees']);
	$langues_autorisees = explode(',', $GLOBALS['meta']['langues_multilingue']);

	while (list(,$l) = each ($langues_installees)) {
		$langues_trad[$l] = true;
	}

	while (list(,$l) = each ($langues_autorisees)) {
		$langues_auth[$l] = true;
	}

	$l_bloquees_tmp = explode(',',$GLOBALS['meta']['langues_utilisees']);
	while (list(,$l) = each($l_bloquees_tmp)) {
		$langues_bloquees[$l] = true;
	}

	$res = "<p class='verdana2'>"
	. _T('info_multi_langues_choisies')
	. '</p>'
	. "\n<table width='100%' cellspacing='10'><tr><td style='width: 50%'  class='verdana1'>";
	
	$i=0;
	while (list($code_langue) = each($langues_bloquees)) {
		$i++;
		$nom_langue = $langues[$code_langue];
		if ($langues_trad[$code_langue]) $nom_langue = "<span style='text-decoration: underline'>$nom_langue</span>";

		$res .= "\n<div class='langues_bloquees'>";
		$res .= "\n<input type='hidden' name='langues_auth[]' id='langue_auth_$code_langue' value='$code_langue' />";
		$res .= "\n<input type='checkbox' checked='checked' disabled='disabled' />";
		$res .= "<label for='langue_auth_$code_langue'>" . $nom_langue ."\n&nbsp; &nbsp;<span style='color: #777777'>[$code_langue]</span></label>";
		$res .= "</div>";

		if ($i == $cesure) $res .= "\n</td><td style='width: 50%' class='verdana1'>";
	}

	$res .= "\n<div>&nbsp;</div>";

	while (list($code_langue, $nom_langue) = each($langues)) {
		if ($langues_bloquees[$code_langue]) continue;
		$i++;
		$res .= "\n<div>";
		if ($langues_trad[$code_langue]) $nom_langue = "<span style='text-decoration: underline'>$nom_langue</span>";

		if ($langues_auth[$code_langue]) {
			$res .= "<input type='checkbox' name='langues_auth[]' id='langue_auth_$code_langue' value='$code_langue' checked='checked' />";
			$nom_langue = "<b>$nom_langue</b>";
		}
		else {
			$res .= "<input type='checkbox' name='langues_auth[]' id='langue_auth_$code_langue' value='$code_langue' />";
		}
		$res .=  "\n<label for='langue_auth_$code_langue'>$nom_langue &nbsp; &nbsp;<span style='color: #777777'>[$code_langue]</span></label>";

		$res .= "</div>";

		if ($i == $cesure) $res .= "</td><td style='width: 50%' class='verdana1'>";
	}

	$res .= "</td></tr></table>"
	  . "<div class='verdana1'>"._T("info_multi_langues_soulignees")."</div>";

	$res = debut_cadre_relief("langues-24.gif", true)
	. ajax_action_post('configurer', 'locuteur', 'config_multilang', '', $res)
	. fin_cadre_relief(true);

	return ajax_action_greffe("configurer-locuteur", '', $res);
}
Ejemplo n.º 12
0
function player_petite_boite_info () {
	include_spip('inc/plugin');
	if ($GLOBALS['spip_version_code']>=15133)
		include_spip('plugins/afficher_plugin');
	$get_infos = ($GLOBALS['spip_version_code']>=15133)?charger_fonction('get_infos','plugins'):'plugin_get_infos'; // Compatibilite SPIP 2.1
	$info = $get_infos(_DIR_PLUGIN_PLAYER);
	$titre = _T(_PLAYER_LANG.'player_nom');
	$result = ""
		. debut_cadre_relief('plugin-24.gif', true, '', $titre)
		. affiche_bloc_plugin(_DIR_PLUGIN_PLAYER, $info)
		. fin_cadre_relief(true)
		;
	return($result);
}
Ejemplo n.º 13
0
function exec_accueil_dist()
{
  global $id_rubrique, $connect_statut, $connect_id_auteur, $spip_display, $connect_id_rubrique;

	$id_rubrique =  intval($id_rubrique);
 	pipeline('exec_init',array('args'=>array('exec'=>'accueil','id_rubrique'=>$id_rubrique),'data'=>''));

	$commencer_page = charger_fonction('commencer_page', 'inc');
	echo $commencer_page(_T('titre_page_index'), "accueil", "accueil");

	echo debut_gauche("",true);

	if ($spip_display != 4) {
		echo personnel_accueil(@$_COOKIE['spip_admin']);
		echo pipeline('affiche_gauche',array('args'=>array('exec'=>'accueil','id_rubrique'=>$id_rubrique),'data'=>''));

		$nom = typo($GLOBALS['meta']["nom_site"]);
		if (!$nom) $nom=  _T('info_mon_site_spip');
		echo debut_cadre_relief("racine-site-24.gif", true, "", $nom),
		  etat_base_accueil(),
		  fin_cadre_relief(true);
	}

	echo creer_colonne_droite("", true);
	list($evtm, $evtt, $evtr) = http_calendrier_messages(date("Y"), date("m"), date("d")," 23:59:59");

	echo $evtt, $evtm, $evtr;

	echo pipeline('affiche_droite',array('args'=>array('exec'=>'accueil','id_rubrique'=>$id_rubrique),'data'=>''));

	echo debut_droite("", true);

	if ($GLOBALS['meta']["post_dates"] == "non"
	AND $connect_statut == '0minirezo')
		echo afficher_objets('article',_T('info_article_a_paraitre'), array("WHERE" => "statut='publie' AND date>".sql_quote(date('Y-m-d H:i:s')), 'ORDER BY' => "date"));


	// Les articles recents
	//
	echo afficher_objets('article',
	#afficher_plus(generer_url_ecrire('articles_page')) .
	_T('articles_recents'), array("WHERE" => "statut='publie'" .($GLOBALS['meta']["post_dates"] == "non"
		? " AND date<=".sql_quote(date('Y-m-d H:i:s')) : ''),
		'ORDER BY' => "date DESC", 'LIMIT' => '0,4'));

//
// Vos articles en cours 
//

	echo afficher_objets('article',afficher_plus(generer_url_ecrire('articles_page'))._T('info_en_cours_validation'),	array('FROM' => "spip_articles AS articles, spip_auteurs_articles AS lien", "WHERE" => "articles.id_article=lien.id_article AND lien.id_auteur=$connect_id_auteur AND articles.statut='prepa'", "ORDER BY" => "articles.date DESC"));

	if ($spip_display == 4)
	  echo colonne_droite_eq4($id_rubrique,
			 $GLOBALS['meta']["activer_breves"],
			 $GLOBALS['meta']["activer_sites"],
			 $GLOBALS['meta']['articles_mots']);
	else {
	  echo colonne_droite_neq4($id_rubrique,
			 $GLOBALS['meta']["activer_breves"],
			 $GLOBALS['meta']["activer_sites"],
			 $GLOBALS['meta']['articles_mots']);

	  echo encours_accueil();
	}

	include_spip('inc/presenter_enfants');
	if (!$connect_id_rubrique)
		echo afficher_enfant_rub(0, false, true) . "<div class='nettoyeur'></div>";

 	echo pipeline('affiche_milieu',array('args'=>array('exec'=>'accueil'),'data'=>''));

	// Dernieres modifications d'articles
	if (($GLOBALS['meta']['articles_versions'] == 'oui')) {
		include_spip('inc/suivi_versions');
		echo afficher_suivi_versions (0, 0, false, "", true);
	}

	echo fin_gauche(), fin_page();
}
Ejemplo n.º 14
0
function spiplistes_boite_patron ($flag_editable, $id_liste
	, $exec_retour, $nom_bouton_valider, $chemin_patrons, $titre_boite = ""
	, $msg_patron = false, $patron = "") {
	// bloc selection patron
	$result = ""
		. debut_cadre_relief(_DIR_PLUGIN_SPIPLISTES_IMG_PACK."patron-24.png", true)
		. "<div class='verdana1' style='text-align: center;'>\n"
		;
	$titre_boite = "<strong>$titre_boite</strong>\n";
	
	if($flag_editable) {
	// inclusion du script de gestion des layers de SPIP
		if(($patron === true) || (is_string($patron) && empty($patron))) {
			$result  .= ""
				. spiplistes_bouton_block_depliable ($titre_boite, true, md5($nom_bouton_valider))
				. (spiplistes_spip_est_inferieur_193() ? $titre_boite : "")
				. spiplistes_debut_block_visible(md5($nom_bouton_valider))
				;
		}
		else {
			$result  .= ""
				. spiplistes_bouton_block_depliable ($titre_boite, false, md5($nom_bouton_valider))
				. (spiplistes_spip_est_inferieur_193() ? $titre_boite : "")
				. spiplistes_debut_block_invisible(md5($nom_bouton_valider))
				;
		}
	}
	else {
		$result  .= $titre_boite;
	}
	if($flag_editable) {
		$result .= "\n"
			. "<form action='".generer_url_ecrire($exec_retour, "id_liste=$id_liste")."' method='post' style='margin:1ex;'>\n"
			. spiplistes_boite_selection_patrons ($patron, true, $chemin_patrons)
			. "<div style='margin-top:1em;text-align:right;'><input type='submit' name='$nom_bouton_valider' value='"._T('bouton_valider')."' class='fondo' /></div>\n"
			. "</form>\n"
			. fin_block()
			;
	}
	else {
	}
	$result .= "\n"
		. "<div style='text-align:center'>\n"
		. ($msg_patron ? $msg_patron : "<span style='color:gray;'>&lt;"._T('spiplistes:aucun')."&gt;</span>\n")
		. "</div>\n"
		. "</div>\n"
		. fin_cadre_relief(true);
		;

	return($result);
}
Ejemplo n.º 15
0
function exec_spiplistes_abonnes_tous () {

	include_spip('inc/presentation');
	include_spip('inc/mots');
	include_spip('inc/spiplistes_api');
	include_spip('inc/spiplistes_api_presentation');

	global $connect_statut
		, $connect_toutes_rubriques
		, $connect_id_auteur
		;

	$flag_autorise = ($connect_statut == '0minirezo');
	
	if($flag_autorise) {
	
		$total_auteurs_elligibles = spiplistes_auteurs_elligibles_compter();
		
		//Total des auteurs qui ne sont pas abonnes a une liste
		$nb_abonnes_a_rien = spiplistes_auteurs_non_abonnes_compter();

		//evaluer les formats de tous les auteurs + compter tous les auteurs
		$sql_result = sql_select(
			"`spip_listes_format` AS format, COUNT(`spip_listes_format`) AS nb"
			, 'spip_auteurs_elargis', '', "`spip_listes_format`"
		);
		//repartition des formats
		$total_abonnes_format = 0;
		$nb_abonnes_par_format = array(
			'texte' => 0	// abonnés au format texte
			, 'html' => 0	// au format html
			, 'non' => 0	// qui a été désabonné
			);
		while($row = sql_fetch($sql_result)) {
			$nb_abonnes_par_format[$row['format']] = $row['nb'];
			$total_abonnes_format += $row['nb'];
		}
	
		//Compter tous les abonnes a des listes 
		$sql_result = sql_select(
			"listes.statut AS statut, COUNT(abonnements.id_auteur) AS nb"
			, "spip_listes AS listes LEFT JOIN spip_auteurs_listes AS abonnements USING (id_liste)"
			, "", "listes.statut"
		);
		// etablit l'inventaire des listes
		// tries pas statut de la liste
		$nb_abonnes_listes = array();
		while ($row = sql_fetch($sql_result)) {
			$nb_abonnes_listes[$row['statut']] = intval($row['nb']);
		}
	}
	
////////////////////////////////////
// PAGE CONTENU
////////////////////////////////////

	$titre_page = _T('spiplistes:suivi');
	// Permet entre autres d'ajouter les classes a' la page : <body class='$rubrique $sous_rubrique'>
	$rubrique = _SPIPLISTES_PREFIX;
	$sous_rubrique = 'abonnes_tous';

	$commencer_page = charger_fonction('commencer_page', 'inc');
	echo($commencer_page( _T('spiplistes:spiplistes') . " - " . $titre_page, $rubrique, $sous_rubrique));
	
	// la gestion des abonnés est réservée aux admins 
	if(!$flag_autorise) {
		die (spiplistes_terminer_page_non_autorisee() . fin_page());
	}
	
	$page_result = ''
		. '<br /><br /><br />' . PHP_EOL
		. spiplistes_gros_titre($titre_page, '', true)
		. barre_onglets($rubrique, $sous_rubrique)
		. debut_gauche($rubrique, true)
		;

	// formulaire de recherche 
	if ($total_auteurs_elligibles > 1) {
		$page_result .= ""
			. debut_cadre_relief(_DIR_PLUGIN_SPIPLISTES_IMG_PACK."contact_loupe-24.png", true, "", _T('spiplistes:chercher_un_auteur'))
			. "<form action='".generer_url_ecrire(_SPIPLISTES_EXEC_ABONNES_LISTE)."' method='post' class='verdana2'>"
			. "<div style='text-align:center'>\n"
			. "<input type='text' name='cherche_auteur' class='fondl' value='' size='20' />"
			. "<div style='text-align:right;margin-top:0.5em;'><input type='submit' name='Chercher' value='"._T('bouton_chercher')."' class='fondo' /></div>"
			. "</div></form>"
			. fin_cadre_relief(true)
			;
	}

	$page_result .= ""
		. pipeline('affiche_gauche', array('args'=>array('exec'=>$sous_rubrique),'data'=>''))
		//. creer_colonne_droite($rubrique, true)  // spiplistes_boite_raccourcis() s'en occupe
		. spiplistes_boite_raccourcis(true)
		. spiplistes_boite_autocron()
		. spiplistes_boite_info_spiplistes(true)
		. pipeline('affiche_droite', array('args'=>array('exec'=>$sous_rubrique),'data'=>''))
		. debut_droite($rubrique, true)
		// boite résultat Recherche d'auteur
		. spiplistes_cherche_auteur()
		;
	
	// première boite des stats
	$page_result .= ''
		. debut_cadre_trait_couleur('forum-interne-24.gif', true)
		. spiplistes_titre_boite_info(_T('spiplistes:abonnes_titre'))
		. '<div class="verdana2" style="position:relative;margin:1ex;height:14em">'
		// bloc de gauche. Répartition des abonnés.
		. '<div style="position:absolute;top:0;left:0;width:250px" id="info_abo">'
		. PHP_EOL
		. '<p style="margin:0;">'._T('spiplistes:repartition_abonnes').' : </p>'
		. PHP_EOL
		. '<ul style="margin:0;padding:0 1ex;list-style:none">' . PHP_EOL

		// Total des abonnés listes privées (internes)
		. '<li>- '._T('spiplistes:Listes_diffusion_prive') . ': '
			. (0 + $nb_abonnes_listes[_SPIPLISTES_LIST_PRIVATE])
			. '</li>' . PHP_EOL
		// Total des abonnés listes périodiques (hebdomadaires)
	 	. '<li>- '. _T('spiplistes:Listes_diffusion_hebdo') . ': '
			. (0 + $nb_abonnes_listes[_SPIPLISTES_LIST_PUB_HEBDO] 
				+ $nb_abonnes_listes[_SPIPLISTES_LIST_PUB_WEEKLY])
			. '</li>' . PHP_EOL
		// privees hebdo
	 	. '<li>- '. _T('spiplistes:listes_privees_hebdo') . ': '
			. (0 + $nb_abonnes_listes[_SPIPLISTES_LIST_PRIV_HEBDO] 
				+ $nb_abonnes_listes[_SPIPLISTES_LIST_PRIV_WEEKLY])
			. '</li>' . PHP_EOL
		// Total des abonnés listes périodiques (mensuels)
	 	. '<li>- '. _T('spiplistes:Listes_diffusion_mensuelle') . ': '
			. (0 + $nb_abonnes_listes[_SPIPLISTES_LIST_PUB_MENSUEL] 
				+ $nb_abonnes_listes[_SPIPLISTES_LIST_PUB_MONTHLY])
			. '</li>' . PHP_EOL
		// privees mensuelles
	 	. '<li>- '. _T('spiplistes:listes_privees_mensuelle') . ': '
			. (0 + $nb_abonnes_listes[_SPIPLISTES_LIST_PRIV_MENSUEL] 
				+ $nb_abonnes_listes[_SPIPLISTES_LIST_PRIV_MONTHLY])
			. '</li>' . PHP_EOL
		// Total des abonnés listes périodiques (annuelles)
	 	. '<li>- '. _T('spiplistes:Listes_diffusion_annuelle') . ': '
			. (0 + $nb_abonnes_listes[_SPIPLISTES_LIST_PUB_YEARLY])
			. '</li>' . PHP_EOL
		// privees annuelles
	 	. '<li>- '. _T('spiplistes:listes_privees_annuelle') . ': '
			. (0 + $nb_abonnes_listes[_SPIPLISTES_LIST_PRIV_YEARLY])
			. '</li>' . PHP_EOL
		// Total des abonnés listes périodiques (periode ou envoi manuel)
	 	. '<li>- '. _T('spiplistes:Listes_autre_periode') . ': '
			. (0 + $nb_abonnes_listes[_SPIPLISTES_LIST_PUBLIC] 
				+ $nb_abonnes_listes[_SPIPLISTES_LIST_PUB_DAILY])
			. '</li>' . PHP_EOL
		// privees quotidiennes
	 	. '<li>- '. _T('spiplistes:listes_privees_autre_periode') . ': '
			. (0 + $nb_abonnes_listes[_SPIPLISTES_LIST_PRIVATE] 
				+ $nb_abonnes_listes[_SPIPLISTES_LIST_PRIV_DAILY])
			. '</li>' . PHP_EOL
		// Total des non abonnés
	 	. '<li>- '. _T('spiplistes:abonne_aucune_liste') . ': '.$nb_abonnes_a_rien
			. '</li>' . PHP_EOL
		. '</ul>' . PHP_EOL
		. '</div>' . PHP_EOL

		// bloc de droite. Répartition des formats.
		. "<div style='position:absolute;top:0;right:0;width:180px;' id='info_fmt'>\n"
		. "<p style='margin:0;'>"._T('spiplistes:repartition_formats')." : </p>\n"
		. "<ul style='margin:0;padding:0 1ex;list-style: none;'>"
		. "<li>- "._T('spiplistes:html')." : {$nb_abonnes_par_format['html']}</li>"
		. "<li>- "._T('spiplistes:texte')." : {$nb_abonnes_par_format['texte']}</li>"
		. "<li>- "._T('spiplistes:format_aucun')." : {$nb_abonnes_par_format['non']}</li>"
		. "</ul>"
		. "</div>\n"
		// fin des infos
		. "</div>\n"
		;


	$page_result .= ""
		. fin_cadre_trait_couleur(true)
		;
		
	////////////////////////////
	// Liste des auteurs
	
	$tri = _request('tri') ? _request('tri') : 'nom';

	$id_boite_dest_ajax = 'auteurs';
	
	$page_result .= 
		debut_cadre_relief('redacteurs-24.gif', true)
		. "<div id='$id_boite_dest_ajax'>\n"
		//. spiplistes_listes_boite_abonnes(0, $tri, $debut, _SPIPLISTES_EXEC_ABONNES_LISTE, $id_boite_dest_ajax)
		. spiplistes_listes_boite_abonnements(
			0, false, $tri, $debut, _SPIPLISTES_EXEC_ABONNES_LISTE
			)
		. "</div>\n"
		. fin_cadre_relief(true)
		;
	echo($page_result);

	echo pipeline('affiche_milieu',array('args'=>array('exec'=>$sous_rubrique),'data'=>''))
		, spiplistes_html_signature(_SPIPLISTES_PREFIX)
		, fin_gauche(), fin_page();
}
Ejemplo n.º 16
0
function bouton_proposer_article($id_article,$statut_article){
	$ret = "";

	if ($statut_article=='prepa'
		AND $id_auteur = $GLOBALS["visiteur_session"]["id_auteur"]
		AND $GLOBALS["visiteur_session"]["statut"] == "1comite"
		AND autoriser('modifier', 'article', $id_article)
		AND sql_fetsel("id_article", "spip_auteurs_articles", "id_article=".intval($id_article)." AND id_auteur=".intval($id_auteur))) {
			$ret .= debut_cadre_relief("", true);
			$ret .= "<div class='verdana3' style='text-align: center;'>";
			$ret .= "<div>"._T("texte_proposer_publication")."</div>";

			$ret .= bouton_action(_T("bouton_demande_publication"),
							generer_action_auteur('instituer_article', "$id_article-prop", self()), '', _T('confirm_changer_statut'));

			$ret .= "</div>";
			$ret .= fin_cadre_relief(true);

	}
	return $ret;
}
Ejemplo n.º 17
0
function afficher_raccourcis($module = "public") {
	global $spip_lang;
	
	charger_langue($spip_lang, $module);

	$tableau = $GLOBALS['i18n_' . $module . '_' . $spip_lang];
	ksort($tableau);

	$aff_nom_module= "";
	if ($module != "public" AND $module != "local")
		$aff_nom_module = "$module:";

	echo "<div class='arial2'>"._T('module_texte_explicatif')."</div>";
	echo "<div>&nbsp;</div>";

	foreach (preg_files(repertoire_lang().$module.'_[a-z_]+\.php[3]?$') as $f)
		if (preg_match(",^".$module."\_([a-z_]+)\.php[3]?$,", $f, $regs))
				$langue_module[$regs[1]] = traduire_nom_langue($regs[1]);

	if (isset($langue_module) && ($langue_module)) {
		ksort($langue_module);
		echo "<div class='arial2'>"._T('module_texte_traduction',
			array('module' => $module));
		echo " ".join(", ", $langue_module).".";
		echo "</div><div>&nbsp;</div>";
	}

	echo debut_cadre_relief('',true,'','','raccourcis');
	echo "\n<table class='spip' style='border:0;'>";
	echo "\n<tr class='titrem'><th class='verdana1'>"._T('module_raccourci')."</th>\n<th class='verdana2'>"._T('module_texte_affiche')."</th></tr>\n";

	$i = 0;
	foreach ($tableau as $raccourci => $val) {
		$bgcolor = alterner(++$i, 'row_even','row_odd');
		echo "\n<tr class='$bgcolor'><td class='verdana2'><b>&lt;:$aff_nom_module$raccourci:&gt;</b></td>\n<td class='arial2'>".$val."</td></tr>";
	}

	echo "</table>",fin_cadre_relief(true);
}
Ejemplo n.º 18
0
function cadre_stat($stats, $table, $id_article)
{
	if (!$stats) return '';
	return debut_cadre_relief("statistiques-24.gif", true)
	. join('', $stats)
	. fin_cadre_relief(true)
	. statistiques_mode($table, $id_article);
}
Ejemplo n.º 19
0
function auteur_infos_ok($auteur, $id_auteur, $echec, $new, $redirect)
{
	$auteur_infos = charger_fonction('auteur_infos', 'inc');
	$fiche = $auteur_infos($auteur, $new, $echec, _request('edit'), intval(_request('lier_id_article')), $redirect, 'infos');
	if ($fiche) 
		$form_auteur = $auteur_infos($auteur, $new, $echec, _request('edit'), intval(_request('lier_id_article')), $redirect, 'edit');
	else $form_auteur = '';

	echo cadre_auteur_infos($id_auteur, $auteur);

	// Interface de logo
	$iconifier = charger_fonction('iconifier', 'inc');

	if ($id_auteur > 0)
		echo $iconifier('id_auteur', $id_auteur, 'auteur_infos', false, autoriser('modifier', 'auteur', $id_auteur));
		// nouvel auteur : le hack classique
	else if ($fiche)
		echo $iconifier('id_auteur',
			0 - $GLOBALS['visiteur_session']['id_auteur'],
			'auteur_infos');

	echo pipeline('affiche_gauche',
			array('args' => array (
				'exec'=>'auteur_infos',
				'id_auteur'=>$id_auteur),
			'data'=>'')
		      );

	echo creer_colonne_droite('', true);
	echo pipeline('affiche_droite',
			      array('args' => array(
						    'exec'=>'auteur_infos',
						    'id_auteur'=>$id_auteur),
				    'data'=>'')
			      );
	echo debut_droite('', true);

	echo debut_cadre_relief("redacteurs-24.gif", true,'','','auteur-voir');

	// $fiche est vide si on demande par exemple
	// a creer un auteur alors que c'est interdit
	if ($fiche) {
		echo $fiche;
	} else {
		echo gros_titre(_T('info_acces_interdit'),'', false);
	}
	echo pipeline('affiche_milieu',
			      array('args' => array(
						    'exec'=>'auteur_infos',
						    'id_auteur'=>$id_auteur),
				    'data'=>''));
		
	echo fin_cadre_relief(true);

	// afficher le formulaire d'edition apres le cadre d'info
	// pour pouvoir afficher soit les infos, 
	//  soit ce formulaire (qui a deja son cadre)
	echo $form_auteur;
}
Ejemplo n.º 20
0
function http_affiche_message($id_message, $expediteur, $statut, $type, $texte, $titre, $rv, $date_heure, $date_fin, $cherche_auteur, $forcer_dest)
{
  global $connect_id_auteur,$connect_statut, $les_notes; 

	if ($type == 'normal') {
		$le_type = _T('info_message_2').aide ("messut");
		$la_couleur = "#02531b";
		$fond = "#cffede";
	}
	else if ($type == 'pb') {
		$le_type = _T('info_pense_bete').aide ("messpense");
		$la_couleur = "#3874b0";
		$fond = "#edf3fe";
	}
	else if ($type == 'affich') {
		$le_type = _T('info_annonce');
		$la_couleur = "#ccaa00";
		$fond = "#ffffee";
	}
	
	// affichage des caracteristiques du message

	echo "<div style='border: 1px solid $la_couleur; background-color: $fond; padding: 5px;'>"; // debut cadre de couleur
	//echo debut_cadre_relief("messagerie-24.gif", true);
	echo "\n<table width='100%' cellpadding='0' cellspacing='0' border='0'>";
	echo "<tr><td>"; # uniques

	echo "<span style='color: $la_couleur' class='verdana1 spip_small'><b>$le_type</b></span><br />";
	echo "<span class='verdana1 spip_large'><b>$titre</b></span>";
	if ($statut == 'redac') {
		echo "<br /><span style='color: red;' class='verdana1 spip_small'><b>"._T('info_redaction_en_cours')."</b></span>";
	}
	else if ($rv == 'non') {
		echo "<br /><span style='color: #666666;' class='verdana1 spip_small'><b>".nom_jour($date_heure).' '.affdate_heure($date_heure)."</b></span>";
	}


	//////////////////////////////////////////////////////
	// Message avec participants
	//
	
	if ($type == 'normal')
	  $total_dest = http_message_avec_participants($id_message, $statut, $forcer_dest, $cherche_auteur, $expediteur);

	if ($rv != "non") http_afficher_rendez_vous($date_heure, $date_fin);


	//////////////////////////////////////////////////////
	// Le message lui-meme
	//

	echo "\n<br />"
	  . "<div class='serif'>$texte</div>";

	if ($les_notes) {
		echo debut_cadre_relief('', true);
		echo "<div dir=" . lang_dir() ."' class='arial11'>";
		echo justifier("<b>"._T('info_notes')."&nbsp;:</b> ".$les_notes);
		echo "</div>";
		echo fin_cadre_relief(true);
	}

	if ($expediteur == $connect_id_auteur AND $statut == 'redac') {
	  if ($type == 'normal' AND $total_dest < 2) {
	    echo "<p style='color: #666666; text-align: right;' class='verdana1 spip_small'><b>"._T('avis_destinataire_obligatoire')."</b></p>";
	  } else {
	    echo "\n<div class='centered'>";
	    echo icone_inline(_T('icone_envoyer_message'), redirige_action_auteur('editer_message', "$id_message/publie", "message","id_message=$id_message"), "messagerie-24.gif", "creer.gif");
	    echo "</div>";
	  }
	}
	echo "</td></tr></table>\n";

	//	echo "</td></tr></table>\n"; //echo fin_cadre_relief(true);
	echo "</div>";			// fin du cadre de couleur
	
	// Les boutons

	$aut = ($expediteur == $connect_id_auteur);
	$aff = ($type == 'affich' AND $connect_statut == '0minirezo');

	echo "\n<table width='100%'><tr><td>";

	// bouton de suppression

	if ($aut AND ($statut == 'redac' OR $type == 'pb') OR $aff) {
	  echo icone_inline(_T('icone_supprimer_message'), redirige_action_auteur("editer_message","-$id_message", 'messagerie'), "messagerie-24.gif", "supprimer.gif", 'left');
	}

	// bouton retrait de la discussion

	if ($statut == 'publie' AND $type == 'normal') {
	  echo icone_inline(_T('icone_arret_discussion'), redirige_action_auteur("editer_message","$id_message/-$connect_id_auteur", 'messagerie', "id_message=$id_message"), "messagerie-24.gif", "supprimer.gif", 'left');
	}

	// bouton modifier ce message

	if ($aut OR $aff) {
	  echo icone_inline(_T('icone_modifier_message'), (generer_url_ecrire("message_edit","id_message=$id_message")), "messagerie-24.gif", "edit.gif", 'right');
	}
	echo "</td></tr></table>";
}
Ejemplo n.º 21
0
function choix_feed($id_syndic, $id_rubrique, $nom_site, $row) {

	global $spip_lang_left, $spip_lang_right;

	if (!preg_match(',^\s*select: (.*),', $row['url_syndic'], $regs))
		return '';

	$res = "";

	foreach (array('id_rubrique', 'nom_site', 'url_site', 'descriptif', 'statut')	as $var) {
			$res .= "<input type='hidden' name='$var' value=\"".entites_html($$var)."\" />\n";
	}
	$res .= "<div style='text-align: $spip_lang_left'>\n";
	$res .= "<div><input type='radio' name='syndication' value='non' id='syndication_non' checked='checked' />";
	$res .= " <b><label for='syndication_non'>"._T('bouton_radio_non_syndication')."</label></b></div>\n";
	$res .= "<div><input type='radio' name='syndication' value='oui' id='syndication_oui' />";
	$res .= " <label for='syndication_oui'>"._T('bouton_radio_syndication')."</label></div>\n";

	$res .= "<select name='url_syndic' id='url_syndic'>\n";
	foreach (explode(' ',$regs[1]) as $feed) {
			$res .= '<option value="'.entites_html($feed).'">'.$feed."</option>\n";
	}
	$res .= "</select>\n";
	$res .= aide("rubsyn");
	$res .= "<div style='text-align: $spip_lang_right'><input type='submit' value='"._T('bouton_valider')."' /></div>\n";
	$res .= "</div>\n";

	$res = redirige_action_post('editer_site', $id_syndic, 'sites','', $res);
		
	return debut_cadre_relief('', true) . $res . fin_cadre_relief(true);
}
Ejemplo n.º 22
0
function galettonuts_formulaire_synchro()
{
    global $spip_lang_left, $spip_lang_right;
    include_spip('inc/config');
    // Détermine si on dépli le cadre
    if ('oui' == _request('galettonuts_synchro_ok')) {
        $visibilite = 'visible';
    } else {
        $visibilite = 'invisible';
    }
    $return = debut_cadre_couleur('synchro-24.gif', true, '', call_user_func('bouton_block_' . $visibilite, 'galettonuts_synchro') . _T('galettonuts:titre_formulaire_synchro'));
    $return .= call_user_func('debut_block_' . $visibilite, 'galettonuts_synchro');
    // Le plugin n'a pas encore été configuré
    if (!class_exists('L2_Spip_Plugin_Metas')) {
        include_spip('lib/L2/Spip/Plugin/Metas.class');
    }
    $config = new L2_Spip_Plugin_Metas('galettonuts_config');
    if (!$config || !$config->lire('db_ok')) {
        $return .= debut_cadre_relief('', true);
        $return .= http_img_pack('warning.gif', _T('info_avertissement'), 'style="width:48px;height:48px;float:right;margin:5px;"');
        $return .= '<p class="verdana2"><strong>';
        $return .= _T('galettonuts:configuration_manquante');
        $return .= '</strong><br />';
        $return .= _T('galettonuts:configuration_lien', array('url' => generer_url_ecrire('admin_galettonuts')));
        $return .= '</p>';
        $return .= fin_cadre_relief(true);
        $return .= fin_block();
        $return .= fin_cadre_couleur(true);
        return $return;
    }
    unset($config);
    // Affichage des erreurs
    if ($statut = (int) _request('code_retour')) {
        switch ($statut) {
            // Une erreur inconnue est survenue.
            case 0:
                $msg = '<p class="verdana2"><strong>' . _T('info_avertissement') . '</strong><br />';
                $msg .= _T('galettonuts:etat_synchro_erreur') . '</p>';
                $alt = _T('info_avertissement');
                $img = _DIR_PLUGIN_GALETTONUTS . 'img_pack/error-48.png';
                break;
                // Des erreurs sont survenues lors de la connexion à la BDD.
            // Des erreurs sont survenues lors de la connexion à la BDD.
            case -2:
                $msg = '<p class="verdana2"><strong>' . _T('info_avertissement') . '</strong><br />';
                $msg .= _T('galettonuts:etat_synchro_erreur_bdd') . '</p>';
                $alt = _T('info_avertissement');
                $img = _DIR_PLUGIN_GALETTONUTS . 'img_pack/error-48.png';
                break;
                // La synchronisation a échouée.
            // La synchronisation a échouée.
            case -1:
                $msg = '<p class="verdana2"><strong>' . _T('info_avertissement') . '</strong><br />';
                $msg .= _T('galettonuts:etat_synchro_echec') . '</p>';
                $alt = _T('info_avertissement');
                $img = _DIR_PLUGIN_GALETTONUTS . 'img_pack/error-48.png';
                break;
                // La synchronisation est inutile.
            // La synchronisation est inutile.
            case -10:
                $msg = '<p class="verdana2"><strong>' . _T('galettonuts:info_information') . '</strong><br />';
                $msg .= _T('galettonuts:etat_synchro_inutile') . '</p>';
                $alt = _T('galettonuts:info_information');
                $img = _DIR_PLUGIN_GALETTONUTS . 'img_pack/information-48.png';
                break;
                // La synchronisation s'est déroulée correctement
            // La synchronisation s'est déroulée correctement
            default:
                $msg = '<p class="verdana2"><strong>' . _T('galettonuts:info_information') . '</strong><br />';
                $msg .= _T('galettonuts:etat_synchro_ok', array('nb' => $statut)) . '</p>';
                $alt = _T('galettonuts:info_information');
                $img = _DIR_PLUGIN_GALETTONUTS . 'img_pack/information-48.png';
                break;
        }
        $return .= debut_cadre_relief('', true);
        $return .= http_img_pack($img, $alt, 'style="width:48px;height:48px;float:right;margin:5px;"');
        $return .= $msg;
        $return .= fin_cadre_relief(true);
    }
    $voir_statut = _request('statut');
    if ($voir_statut) {
        $voir_statut = '&statut=' . $voir_statut;
    }
    $action = generer_action_auteur('galettonuts_cron_manuel', 'galettonuts-0.1&' . $voir_statut, 'auteurs');
    $return .= '<p class="verdana2">' . _T('galettonuts:texte_synchro_manuelle') . '</p>';
    $return .= '<form action="' . $action . '" method="post>"';
    $return .= form_hidden($action);
    // Dernière mise à jour
    $synchro = new L2_Spip_Plugin_Metas('galettonuts_synchro');
    if ('' != ($maj = $synchro->lire('maj'))) {
        $return .= '<p class="verdana2">' . _T('galettonuts:derniere_maj', array('annee' => date('Y', $maj), 'mois' => date('m', $maj), 'jour' => date('d', $maj), 'heures' => date('G', $maj), 'minutes' => date('i', $maj), 'secondes' => date('s', $maj)));
        $return .= '</p>';
    }
    // Bouton de validation
    $return .= '<div style="text-align:right;padding:0 2px;margin-top:.5em" id="buttons">';
    $return .= '<input type="submit" name="_galettonuts_ok" value="' . _T('galettonuts:entree_synchroniser') . '" class="fondo" style="cursor:pointer"/></div>';
    $return .= '</form>';
    $return .= fin_block();
    $return .= fin_cadre_couleur(true);
    return $return;
}
Ejemplo n.º 23
0
function exec_admin_galettonuts()
{
    // Seuls les super-admins sont authorisés réaliser des synchros,
    // et par conséquent de configurer le plugin
    if (!('0minirezo' === $GLOBALS['auteur_session']['statut'] && $GLOBALS['connect_toutes_rubriques'])) {
        echo minipres(_T('avis_non_acces_page'));
        exit;
    }
    $erreurs = array();
    $icone_base = _DIR_PLUGIN_GALETTONUTS . 'img_pack/galettonuts-sql_status-';
    $icone_src = 'config-168.png';
    $icone_title = _T('galettonuts:icone_db_config');
    include_spip('inc/galettonuts_fonctions');
    // Lecture de la configuration
    if (!class_exists('L2_Spip_Plugin_Metas')) {
        include_spip('lib/L2/Spip/Plugin/Metas.class');
    }
    $config = new L2_Spip_Plugin_Metas('galettonuts_config');
    $contexte = $config->lire();
    $activer_cron = array_key_exists('activer_cron', $contexte) ? $contexte['activer_cron'] : true;
    // {{{ Traitement des données reçues
    if (_request('_galettonuts_ok')) {
        $champs = array('adresse_db' => _request('adresse_db'), 'login_db' => _request('login_db'), 'pass_db' => _request('pass_db'), 'prefix_db' => _request('prefix_db'), 'choix_db' => _request('choix_db'));
        // Des champs sont-ils vides ?
        $champs = array_map('trim', $champs);
        if (false === (!in_array(null, $champs) || !in_array('', $champs))) {
            $erreurs[] = _T('galettonuts:texte_erreur_1');
        }
        // Activer la synchronisation automatique ?
        if ('oui' == _request('activer_cron')) {
            $activer_cron = true;
        } else {
            $activer_cron = false;
        }
        if ($activer_cron) {
            $champs['heures'] = intval(_request('heures'));
            $champs['minutes'] = intval(_request('minutes'));
            $synchro = new L2_Spip_Plugin_Metas('galettonuts_synchro');
            $frequence = 3600 * $champs['heures'] + 60 * $champs['minutes'];
            if ($frequence !== $synchro->lire('frequence')) {
                $synchro->ajouter(array('frequence' => $frequence), true);
                $fichier = '<?php define(\'_GALETTONUTS_DELAIS_CRON\', ' . $frequence . '); ?>';
                ecrire_fichier(_DIR_TMP . 'galettonuts_cron.php', $fichier, true);
                unset($fichier);
            }
        } else {
            // On s'assure de bien supprimer le fichier de vérouillage
            // pour forcer la resynchronisation tenant compte de la nouvelle
            // configuration.
            if (file_exists(_DIR_TMP . 'galettonuts_cron.lock')) {
                unlink(_DIR_TMP . 'galettonuts_cron.lock');
            }
            if (file_exists(_DIR_TMP . 'galettonuts_cron.php')) {
                unlink(_DIR_TMP . 'galettonuts_cron.php');
            }
        }
        $contexte['activer_cron'] = $activer_cron;
        // Prise en compte dans le contexte
        $contexte = array_merge($contexte, $champs);
        unset($champs);
        // Test de connexion à la BDD Galette
        if (!count($erreurs)) {
            $link = galettonuts_galette_db($contexte['adresse_db'], $contexte['login_db'], $contexte['pass_db']);
            if (-1 === $link) {
                $erreurs[] = _T('galettonuts:avis_connexion_echec_1');
                $icone_src = 'error-168.png';
                $icone_title = _T('galettonuts:icone_db_erreur');
            } else {
                if (-2 === galettonuts_galette_db($contexte['choix_db'], $link)) {
                    $erreurs[] = _T('galettonuts:avis_connexion_echec_2');
                    $icone_src = 'error-168.png';
                    $icone_title = _T('galettonuts:icone_db_erreur');
                } else {
                    $icone_src = 'ok-168.png';
                    $icone_title = _T('galettonuts:icone_db_ok');
                    $contexte['db_ok'] = true;
                }
            }
            if (0 < $link) {
                mysql_close($link);
            }
            unset($link);
        }
        // Interraction avec Accès Restreint
        if (defined('_DIR_PLUGIN_ACCESRESTREINT')) {
            if ($config->existe('zones')) {
                galettonuts_dissocier_zones($config->lire('zones'));
            }
            $zones = _request('zones');
            if (is_array($zones) && 0 < count($zones)) {
                $contexte['zones'] = $zones;
            } else {
                $config->supprimer(array('zones' => null));
                unset($contexte['zones']);
            }
            unset($zones);
        }
        // Mémorisation de la configuration à la base de données Galette
        if (!count($erreurs)) {
            $config->ajouter($contexte, true);
        }
        // Lancer une synchronisation
        if (0 == count($erreurs)) {
            galettonuts_synchroniser(true);
        }
    } else {
        if (!empty($contexte['adresse_db']) && !empty($contexte['login_db']) && !empty($contexte['pass_db'])) {
            $link = galettonuts_galette_db($contexte['adresse_db'], $contexte['login_db'], $contexte['pass_db']);
            if (0 > $link) {
                $icone_src = 'error-168.png';
                $icone_title = _T('galettonuts:icone_db_erreur');
                $config->ajouter(array('db_ok' => false));
            } else {
                $icone_src = 'ok-168.png';
                $icone_title = _T('galettonuts:icone_db_ok');
                $config->ajouter(array('db_ok' => true));
                mysql_close($link);
                unset($link);
            }
        }
    }
    // }}}
    // {{{ Affichage
    // Haut de page
    $commencer_page = charger_fonction('commencer_page', 'inc');
    echo $commencer_page(_T('galettonuts:titre_page_admin'), '', 'galettonuts'), '<br/><br/><br/>';
    gros_titre(_T('galettonuts:titre_admin'));
    // Boîte d'informations
    debut_gauche();
    debut_boite_info();
    echo _T('galettonuts:texte_info_admin');
    fin_boite_info();
    // Message(s) d'erreur(s)
    debut_droite();
    if ($c = count($erreurs)) {
        if (1 == $c) {
            $erreur_titre = _T('galettonuts:texte_erreur');
            $erreur_texte = (string) $erreurs[0];
        } else {
            $erreur_titre = _T('galettonuts:texte_erreurs');
            $erreur_texte = '<ul>';
            for ($i = 0; $c < $i; ++$i) {
                $erreur_texte .= '<li>' . $erreurs[$i] . '</li>';
            }
            $erreur_texte .= '</ul>';
        }
        echo '<div style="background-color:#fee;color:red;border:1px solid red;padding:.5em;margin-bottom:25px" class="verdana2"><strong>', $erreur_titre, '</strong>&nbsp;:<br />', $erreur_texte, '</div>';
    }
    echo generer_url_post_ecrire('admin_galettonuts');
    // Accès à la BDD
    debut_cadre_trait_couleur('base-24.gif', false, '', _T('galettonuts:info_bdd'));
    echo '<div style="float:right;width:175px" class="verdana2">', _T('galettonuts:texte_info_bdd'), '<div>', '<div style="position:absolute;bottom:35px;width:168px;height:168px">', '<img src="', $icone_base, $icone_src, '" width="168" height="168" alt="" title="', $icone_title, '" />', '</div>', '</div>', '</div>';
    echo '<div style="width:298px">';
    debut_cadre_couleur();
    echo '<p><label for="adresse_db" style="font-weight:bold;cursor:pointer">', _T('galettonuts:entree_db_adresse'), '</label><br/>', '<input type="text" name="adresse_db" value="', $contexte['adresse_db'], '" id="adresse_db" class="fondl" style="width:278px" tabindex="504"/>', '</p>';
    echo '<p><label for="login_db" style="font-weight:bold;cursor:pointer">', _T('galettonuts:entree_db_login'), '</label><br/>', '<input type="text" name="login_db" value="', $contexte['login_db'], '" id="login_db" class="fondl" style="width:278px" tabindex="508"/>', '</p>';
    echo '<p><label for="pass_db" style="font-weight:bold;cursor:pointer">', _T('galettonuts:entree_db_mdp'), '</label><br/>', '<input type="password" name="pass_db" value="', $contexte['pass_db'], '" id="pass_db" class="fondl" style="width:278px" tabindex="512"/>', '</p>';
    echo '<p><label for="prefix_db" style="font-weight:bold;cursor:pointer">', _T('galettonuts:entree_db_prefix'), '</label><br/>', '<input type="text" name="prefix_db" value="', $contexte['prefix_db'], '" id="prefix_db" class="fondl" style="width:278px" tabindex="516"/>', '</p>';
    echo '<p><label for="choix_db" style="font-weight:bold;cursor:pointer">', _T('galettonuts:entree_db_choix'), '</label><br/>', '<input type="text" name="choix_db" value="', $contexte['choix_db'], '" id="choix_db" class="fondl" style="width:278px" tabindex="520"/>', '</p>';
    fin_cadre_couleur();
    echo '</div>';
    echo '<div style="text-align:right;padding:0 2px;margin-top:.5em" id="buttons">', '<input type="submit" name="_galettonuts_ok" value="', _T('bouton_valider'), '" class="fondo" style="cursor:pointer" tabindex="560"/></div>';
    fin_cadre_trait_couleur();
    // Synchronisation automatique
    echo '<br />';
    debut_cadre_relief('synchro-24.gif', false, '', _T('galettonuts:info_cron'));
    echo '<p class="verdana2">', _T('galettonuts:texte_info_cron'), '</p>';
    echo '<p class="verdana2">', '<label', $activer_cron ? ' style="font-weight:bold"' : '', '>', '<input type="radio" name="activer_cron" value="oui" id="activer_cron_oui" tabindex="602" ', $activer_cron ? ' checked="checked" ' : '', 'onclick="changeVisible(this.checked, \'config-cron\', \'block\', \'none\');"', '/>', _T('galettonuts:entree_cron_utiliser'), '</label><br />', '<label', !$activer_cron ? ' style="font-weight:bold"' : '', '>', '<input type="radio" name="activer_cron" value="non" id="activer_cron_non" tabindex="604" ', !$activer_cron ? ' checked="checked" ' : '', 'onclick="changeVisible(this.checked, \'config-cron\', \'none\', \'block\');"', '/>', _T('galettonuts:entree_cron_utiliser_non'), '</label>', '</p>';
    echo '<div id="config-cron"', !$activer_cron ? ' style="display:none"' : '', '><hr />';
    echo '<p class="verdana2">', _T('galettonuts:frequence'), '</p>';
    echo '<p class="verdana2" style="text-align:center">', '<input type="text" name="heures" value="', $contexte['heures'], '" id="cron_heures" size="2" maxlength="2" tabindex="606" class="fondl" style="text-align:right"/>', '<label for="cron_heures" style="font-weight:bold;cursor:pointer">', _T('galettonuts:heures'), '</label>', '<input type="text" name="minutes" value="', $contexte['minutes'], '" id="cron_minutes" size="2" maxlength="2" tabindex="606" class="fondl" style="text-align:right"/>', '<label for="cron_minutes" style="font-weight:bold;cursor:pointer">', _T('galettonuts:minutes'), '</label>', '</p>';
    echo '</div>';
    echo '<div style="text-align:right;padding:0 2px;margin-top:.5em" id="buttons">', '<input type="submit" name="_galettonuts_ok" value="', _T('bouton_valider'), '" class="fondo" style="cursor:pointer" tabindex="660"/></div>';
    fin_cadre_relief();
    // Liaison avec le plugin Accès restreint
    if (defined('_DIR_PLUGIN_ACCESRESTREINT')) {
        $zones = spip_query("SELECT `id_zone`, `titre`, `descriptif` FROM `spip_zones` WHERE 1;");
        if (spip_num_rows($zones)) {
            global $couleur_foncee;
            $i = 0;
            $zone['num'] = _T('accesrestreint:colonne_id');
            $zone['titre'] = _T('accesrestreint:titre');
            $zone['descriptif'] = _T('accesrestreint:descriptif');
            $tabindex = 700;
            $tab_zones = <<<HTML
<table class="arial2" border="0" cellpadding="2" cellspacing="0" style="width:100%;border:1px solid #AAA;">
    <thead>
        <tr style="background-color:{$couleur_foncee};color:#fff;font-weight=bold">
            <th scope="col" style="text-align:left;padding-left:5px;padding-right:5px" width="40">{$zone['num']}</th>
            <th scope="col" style="text-align:left;border-left:1px inset #fff;padding-left:5px;padding-right:5px">{$zone['titre']}</th>
            <th scope="col" style="text-align:left;border-left:1px inset #fff;padding-left:5px;padding-right:5px">{$zone['descriptif']}</th>
            <th scope="col" style="text-align:center;border-left:1px inset #fff;padding-left:5px;padding-right:5px" width="16">&nbsp;</th>
        </tr>
    </thead>
    <tbody>
HTML;
            while ($zone = spip_fetch_array($zones)) {
                ++$tabindex;
                $bgcolor = alterner(++$i, '#FEFEFE', '#EEE');
                if (array_key_exists('zones', $contexte)) {
                    $checked = in_array($zone['id_zone'], $contexte['zones']) ? ' checked="checked"' : '';
                } else {
                    $checked = '';
                }
                $tab_zones .= <<<HTML
        <tr style="background-color:{$bgcolor}">
            <td style="text-align:left;padding-left:5px;padding-right:5px">{$zone['id_zone']}</td>
            <td style="text-align:left;padding-left:5px;padding-right:5px">{$zone['titre']}</td>
            <td style="text-align:left;padding-left:5px;padding-right:5px">{$zone['descriptif']}</td>
            <td style="text-align:center">
                <input type="checkbox" name="zones[]" value="{$zone['id_zone']}" class="fondl" tabindex="{$tabindex}"{$checked} />
            </td>
        </tr>
HTML;
            }
            $tab_zones .= '</tbody></table>';
            echo '<br />';
            debut_cadre_relief(_DIR_PLUGIN_ACCESRESTREINT . 'img_pack/zones-acces-24.gif', false, '', _T('galettonuts:info_liaison_access_restreint'));
            echo '<p class="verdana2">', _T('galettonuts:texte_liaison_access_restreint_1'), '</p>';
            echo '<p class="verdana2">', _T('galettonuts:texte_liaison_access_restreint_2'), '</p>';
            echo $tab_zones;
            echo '<div style="text-align:right;padding:0 2px;margin-top:.5em" id="buttons">', '<input type="submit" name="_galettonuts_ok" value="', _T('bouton_valider'), '" class="fondo" style="cursor:pointer" tabindex="760"/></div>';
            fin_cadre_relief();
        }
    }
    echo '</form>';
    // Fin de page
    echo fin_gauche() . fin_page();
    // }}}
}
Ejemplo n.º 24
0
function exec_spiplistes_maintenance () {

	include_spip('inc/distant');
	include_spip('inc/meta');
	include_spip('inc/config');
	include_spip('inc/spiplistes_api');
	include_spip('inc/spiplistes_api_presentation');

	global $connect_statut
		, $connect_toutes_rubriques
		, $connect_id_auteur
		, $couleur_foncee
		, $spip_lang_right
		;
	// la globale de connect_id_auteur est string
	// c'est un entier qu'il faut envoyer a autoriser()
	$connect_id_auteur = intval($GLOBALS['connect_id_auteur']);
	
	// initialise les variables postees par le formulaire
	foreach(array_merge(
		array(
			'btn_supprimer_courriers', 'btn_reset_listes', 'btn_supprimer_listes'
			, 'btn_modifier_formats', 'confirmer_modifier_formats'
			, 'btn_supprimer_formats', 'confirmer_supprimer_formats'
			, 'btn_nettoyer_abos', 'confirmer_nettoyer_abos'
		)) as $key) {
		$$key = _request($key);
	}
	
	// la maintenance spiplistes est reservee a l'admin principal 
	$flag_autorise = autoriser('webmestre','','',$connect_id_auteur);
	
	$tous_les_statuts_courriers = array(_SPIPLISTES_COURRIER_STATUT_REDAC, _SPIPLISTES_COURRIER_STATUT_READY
			, _SPIPLISTES_COURRIER_STATUT_ENCOURS
			, _SPIPLISTES_COURRIER_STATUT_AUTO, _SPIPLISTES_COURRIER_STATUT_PUBLIE
			, _SPIPLISTES_COURRIER_STATUT_VIDE, _SPIPLISTES_COURRIER_STATUT_IGNORE
			, _SPIPLISTES_COURRIER_STATUT_STOPE, _SPIPLISTES_COURRIER_STATUT_ERREUR
			);

	$msg_maintenance = array();
	
	$sql_formats_where = spiplistes_formats_autorises('sql_where');

	/////////////////
	// Faire ce qui est demande par le formulaire
	if($flag_autorise) {
	
		$msg_ok = "<span style='color:green;'>"._T('pass_ok');
		$msg_bad = "<span style='font-weight:bold;color:red;'>"._T('pass_erreur');
		$msg_end = "</span>\n";
		
		// les courriers
		if($btn_supprimer_courriers) {
			foreach($tous_les_statuts_courriers as $statut) {
				if(_request("supprimer_courriers_$statut")) {
					if($statut == _SPIPLISTES_COURRIER_STATUT_ENCOURS) {
						// supprime d'abord de la queue d'envoi
						spiplistes_courrier_supprimer_queue_envois('statut', $statut);
						spiplistes_log("RESET spool ID_COURRIER #$id_courrier by ID_AUTEUR #$connect_id_auteur");
					}
					// supprime le courrier
					$msg = 
						(
							spiplistes_courrier_supprimer('statut', $statut)
						) 
						? $msg_ok 
						: $msg_bad
						;
					$msg_maintenance[] = _T('spiplistes:Suppression_de__s',
						array('s' => spiplistes_items_get_item('tab_t', $statut)."... : ".$msg.$msg_end)
						);
					spiplistes_log("DELETE courrier ID_COURRIER #$id_courrier by ID_AUTEUR #$connect_id_auteur");
				}
			}
		}
		
		// les listes en chronos a repasser en non-chrono
		// en realite', conserve le statut mais supprime la date d'envoi
		// ainsi, la trieuse ne preparera pas le courrier
		if($btn_reset_listes) {
			foreach(spiplistes_listes_select("id_liste", "message_auto='oui'") as $row) {
				$id_liste = intval($row['id_liste']);
				$sql_table = "spip_listes";
				$sql_champs = array('message_auto' => 'non', 'date' => '');
				$sql_where = "id_liste=$id_liste";
				if(_request("reset_liste_$id_liste")) {
					$msg =
						(
						// reset liste 
							sql_updateq($sql_table, $sql_champs, $sql_where)
						)
						?	$msg_ok
						:	$msg_bad
						;
					$msg_maintenance[] = _T('spiplistes:annulation_chrono_')." : ID_LISTE #$id_liste : ".$msg.$msg_end;
					spiplistes_log("RESET liste ID_LISTE #$id_liste by ID_AUTEUR #$connect_id_auteur");
				}
			}
		}
		
		// les listes (global)
		if($btn_supprimer_listes) {
			foreach(spiplistes_listes_select("id_liste,titre") as $row) {
				$titre = $row['titre'];
				$id_liste = intval($row['id_liste']);
				if(_request("supprimer_liste_$id_liste")) {
					$sql_where = "id_liste=".sql_quote($id_liste);
					$msg =
						spiplistes_listes_liste_supprimer($id_liste)
						?	$msg_ok
						:	$msg_bad
						;
					$msg_maintenance[] = _T('spiplistes:Suppression_de')." : ".$titre."... : ".$msg.$msg_end;
					spiplistes_log("DELETE liste ID_LISTE #$id_liste by ID_AUTEUR #$connect_id_auteur");
				}
			}
		}
		
		// les formats
		if($btn_modifier_formats || $btn_supprimer_formats) {
			
			$objet = array('objet' => _T('spiplistes:des_formats'));
			
			if($confirmer_modifier_formats && ($format = spiplistes_format_valide(_request('sl-le-format')))) {
				
				$msg =
					(
						spiplistes_format_abo_modifier('tous', $format)
					)
					?	$msg_ok
					:	$msg_bad
					;
				$msg_maintenance[] = _T('spiplistes:modification_objet', $objet)." : ".$msg.$msg_end;
				spiplistes_log("UPDATE ALL format $format by ID_AUTEUR #$connect_id_auteur");
				
			}
			if($confirmer_supprimer_formats) {
				$msg =
					(
						// vider la table des formats connus de spiplistes
						sql_delete("spip_auteurs_elargis", $sql_formats_where)
					)
					?	$msg_ok
					:	$msg_bad
					;
				$msg_maintenance[] = _T('spiplistes:suppression_', $objet)." : ".$msg.$msg_end;
				spiplistes_log("DELETE formats "._SPIPLISTES_FORMATS_ALLOWED." by ID_AUTEUR #$connect_id_auteur");
			}
		}
		
		// les abonnements
		if($btn_nettoyer_abos && $confirmer_nettoyer_abos) {
			if($ii = spiplistes_abonnements_zombies()) {
				sort($ii);
				$ii = array_unique($ii);
				$msg =
					(spiplistes_abonnements_auteur_desabonner($ii))
					?	$msg_ok
					:	$msg_bad
					;
				$objet = array('objet' => _T('spiplistes:des_abonnements'));
				$msg_maintenance[] = _T('spiplistes:nettoyage_', $objet)." : ".$msg.$msg_end;
			}
		}

		// compter les listes
		$nb_listes = spiplistes_listes_compter();
		$nb_listes_desc = spiplistes_nb_listes_str_get ($nb_listes);
		$listes_array = spiplistes_listes_select("id_liste,statut,titre,message_auto");
		// listes auto (crhono) compte'es a part
		$nb_listes_auto = 0;
		foreach($listes_array as $row) {
			if($row['message_auto']=='oui') {
				$nb_listes_auto++;
			}
		}
		
		// compter les formats (les abonnes ayant de'fini un format)
		$nb_abonnes_formats = sql_fetsel("COUNT(id_auteur) as n", "spip_auteurs_elargis", $sql_formats_where);
		$nb_abonnes_formats = $nb_abonnes_formats['n'];
		$nb_abonnes_formats_desc = 
						($nb_abonnes_formats==1)
						? _T('spiplistes:1_abonne')
						: "$nb_abonnes_formats "._T('spiplistes:abonnes')
						;
	
		$maintenance_url_action = generer_url_ecrire(_SPIPLISTES_EXEC_MAINTENANCE);
		
	}
	
////////////////////////////////////
// PAGE CONTENU
////////////////////////////////////

	$titre_page = _T('titre_admin_tech');
	// Permet entre autres d'ajouter les classes a' la page : <body class='$rubrique $sous_rubrique'>
	$rubrique = _SPIPLISTES_PREFIX;
	$sous_rubrique = "maintenance";

	$commencer_page = charger_fonction('commencer_page', 'inc');
	echo($commencer_page(_T('spiplistes:spiplistes') . " - " . trim($titre_page), $rubrique, $sous_rubrique));

	if(!$flag_autorise) {
		die (spiplistes_terminer_page_non_autorisee() . fin_page());
	}

	$page_result = ""
		. "<br /><br /><br />\n"
		. spiplistes_gros_titre($titre_page, '', true)
		. barre_onglets($rubrique, $sous_rubrique)
		. debut_gauche($rubrique, true)
		. spiplistes_boite_meta_info(_SPIPLISTES_PREFIX)
		. pipeline('affiche_gauche', array('args'=>array('exec'=>$sous_rubrique),'data'=>''))
		//. creer_colonne_droite($rubrique, true)  // spiplistes_boite_raccourcis() s'en occupe
		. spiplistes_boite_raccourcis(true)
		. spiplistes_boite_autocron() 
		. spiplistes_boite_info_spiplistes(true)
		. pipeline('affiche_droite', array('args'=>array('exec'=>$sous_rubrique),'data'=>''))
		. debut_droite($rubrique, true)
		;
	
	if(count($msg_maintenance)) {
		$page_result .= "<ul style='padding-left:2ex;margin-bottom:2em;'>";
		foreach($msg_maintenance as $texte) {
			$page_result .= "<li>$texte</li>\n";
		}
		$page_result .= "</ul>\n";
	}

	//////////////////////////////////////////////////////
	// Boite de maintenance du casier a courriers
	$objet = array('objet' => _T('spiplistes:des_courriers'));
	$page_result .= ""
		. debut_cadre_trait_couleur("administration-24.gif", true, "", _T('spiplistes:maintenance_objet', $objet))
		. spiplistes_form_debut ($maintenance_url_action, true)
		. spiplistes_form_description(_T('spiplistes:conseil_sauvegarder_avant', $objet), true)
		;
	if(spiplistes_courriers_statut_compter()) {
		$page_result .= spiplistes_form_fieldset_debut(_T('spiplistes:suppression_', $objet), true);
		foreach($tous_les_statuts_courriers as $statut) {
			if(spiplistes_courriers_statut_compter($statut)) {
				$titre = spiplistes_items_get_item('tab_t', $statut);
				$page_result .= spiplistes_form_input_checkbox ('supprimer_courriers_'.$statut, $statut, $titre, false, true);
			}
		}
		$page_result .= spiplistes_form_fieldset_fin(true);
	}
	else {
		$page_result .= spiplistes_form_message(_T('spiplistes:Casier_vide'), true);
	}
	$page_result .= ""
		. spiplistes_form_bouton_valider ('btn_supprimer_courriers')
		. spiplistes_form_fin(true)
		. fin_cadre_trait_couleur(true)
		;

	/////////////////////////////////////////
	// boite de maintenance des listes : la date des listes sont remises a zero (supprimer les chronos)
	$objet = array('objet' => _T('spiplistes:des_listes'));
	$page_result .= ""
		. debut_cadre_trait_couleur("administration-24.gif", true, "", _T('spiplistes:maintenance_objet', $objet))
		. debut_cadre_relief("", true, "", _T('spiplistes:Supprimer_les_chronos'))
		;
	if($nb_listes_auto) {
		$page_result .= ""
			. spiplistes_form_debut ($maintenance_url_action, true)
			. "<p class='verdana2'>"._T('spiplistes:suppression_chronos_desc')."</p>\n"
			. spiplistes_form_description(_T('spiplistes:conseil_sauvegarder_avant', $objet), true)
			. spiplistes_form_fieldset_debut (
				_T('spiplistes:suppression_chronos_', $objet).spiplistes_fieldset_legend_detail(_T('spiplistes:total').": $nb_listes_auto / $nb_listes_desc", true)
				, true)
		;
		foreach($listes_array as $row) {
			if($row['message_auto']=='oui') {
				$titre = $row['titre'];
				$statut = "";
				$id_liste = intval($row['id_liste']);
				$page_result .= spiplistes_form_input_checkbox ('reset_liste_'.$id_liste, $id_liste, $statut.$titre, false, true);
			}
		}
		$page_result .= ""
			. spiplistes_form_fieldset_fin(true)
			. spiplistes_form_bouton_valider('btn_reset_listes')
			. spiplistes_form_fin(true)
			;
	}
	else {
		$page_result .= spiplistes_form_message(_T('spiplistes:pas_de_liste_en_auto'), true);
	}
	$page_result .= ""
		. fin_cadre_relief(true)
		;
		/////////////////////////////////////////
		// supprimer les listes
	$page_result .= ""
		. debut_cadre_relief("", true, "", _T('spiplistes:Supprimer_les_listes'))
		;
	if($nb_listes) {
		$page_result .= ""
			. spiplistes_form_debut ($maintenance_url_action, true)
			. spiplistes_form_description(_T('spiplistes:conseil_sauvegarder_avant', $objet), true)
			. spiplistes_form_fieldset_debut (
				_T('spiplistes:suppression_', $objet).spiplistes_fieldset_legend_detail(_T('spiplistes:total').": $nb_listes_desc", true)
				, true)
			;
		foreach($listes_array as $row) {
			$id_liste = intval($row['id_liste']);
			$titre = $row['titre'];
			$statut = "<img src='".spiplistes_items_get_item("puce", $row['statut'])."' alt='".spiplistes_items_get_item("alt", $row['statut'])."' width='9' height='9' style='margin: 0 0.25ex' />";
			$page_result .= spiplistes_form_input_checkbox ('supprimer_liste_'.$id_liste, $id_liste, $statut.$titre, false, true);
		}
		$page_result .= ""
			. spiplistes_form_fieldset_fin(true)
			. spiplistes_form_bouton_valider ('btn_supprimer_listes')
			. spiplistes_form_fin(true)
			;
	}
	else {
		$page_result .= spiplistes_form_message(_T('spiplistes:pas_de_liste'), true);
	}
	$page_result .= ""
		. fin_cadre_relief(true)
		. fin_cadre_trait_couleur(true)
		;

	//////////////////////////////////////////////////////
	// Boite maintenance des formats
	$objet = array('objet' => _T('spiplistes:des_formats'));
	$page_result .= ""
		. debut_cadre_trait_couleur("administration-24.gif", true, "", _T('spiplistes:maintenance_objet', $objet))
		;
	if($nb_abonnes_formats > 0) {
		$page_result .= ""
			// forcer les formats de reception
			. spiplistes_form_debut ($maintenance_url_action, true)
			. spiplistes_form_description(_T('spiplistes:conseil_sauvegarder_avant', $objet), true)
			. spiplistes_form_fieldset_debut (
				_T('spiplistes:forcer_formats_', $objet)
					. spiplistes_fieldset_legend_detail(_T('spiplistes:total').": $nb_abonnes_formats_desc", true)
				, true) 
			. spiplistes_form_input_checkbox ('confirmer_modifier_formats', 'oui'
											  , _T('spiplistes:forcer_formats_desc'), false, true)
			. "<div id='sl-modif-fmt'>\n"
				. spiplistes_form_input_radio ($name = "sl-le-format", "html", _T('spiplistes:html'), true, true)
				. spiplistes_form_input_radio ($name, "texte", _T('spiplistes:texte'), false, true)
				. spiplistes_form_input_radio ($name, "non", _T('spiplistes:aucun'), false, true)
			. "</div>\n"
			. spiplistes_form_fieldset_fin(true)
			. spiplistes_form_bouton_valider('btn_modifier_formats')
			. spiplistes_form_fin(true)
			
			. "<hr />\n"
			// supprimer les formats
			. spiplistes_form_debut ($maintenance_url_action, true)
			. spiplistes_form_description(_T('spiplistes:conseil_sauvegarder_avant', $objet), true)
			. spiplistes_form_fieldset_debut (
				_T('spiplistes:suppression_', $objet)
					. spiplistes_fieldset_legend_detail(_T('spiplistes:total').": $nb_abonnes_formats_desc", true)
				, true) 
			. spiplistes_form_input_checkbox ('confirmer_supprimer_formats', 'oui', _T('spiplistes:confirmer_supprimer_formats'), false, true)
			. spiplistes_form_fieldset_fin(true)
			. spiplistes_form_bouton_valider('btn_supprimer_formats')
			. spiplistes_form_fin(true)
			;
	} else {
		$page_result .= spiplistes_form_message(_T('spiplistes:pas_de_format'), true);
	}
	$page_result .= ""
		. fin_cadre_trait_couleur(true)
		;

	//////////////////////////////////////////////////////
	// Boite maintenance des abonnements
	$objet = array('objet' => _T('spiplistes:des_abonnements'));
	$page_result .= ""
		. debut_cadre_trait_couleur('administration-24.gif', true, '', _T('spiplistes:maintenance_objet', $objet))
		;
	$ii = spiplistes_abonnements_zombies();
	if(($nb_abos = count($ii)) > 0) {
		$nb_auteurs = $ii;
		sort($nb_auteurs);
		$nb_auteurs = count(array_unique($nb_auteurs));
		$nb_abos = spiplistes_str_abonnes($nb_abos);
		$nb_auteurs = spiplistes_str_auteurs($nb_auteurs);
		$page_result .= ""
			. spiplistes_form_debut ($maintenance_url_action, true)
			. spiplistes_form_description(_T('spiplistes:conseil_sauvegarder_avant', $objet), true)
			. spiplistes_form_fieldset_debut(
								_T('spiplistes:nettoyage_', $objet)
								 . spiplistes_fieldset_legend_detail(_T('spiplistes:total').": $nb_abos, $nb_auteurs", true)
							   , true)
			. spiplistes_form_input_checkbox ('confirmer_nettoyer_abos', 'oui'
											  , _T('spiplistes:confirmer_nettoyer_abos'), false, true)
			. spiplistes_form_fieldset_fin(true)
			. spiplistes_form_bouton_valider('btn_nettoyer_abos')
			. spiplistes_form_fin(true)
			;
	} else {
		$page_result .= spiplistes_form_message(_T('spiplistes:pas_de_pb_abonnements'), true);
	}
	$page_result .= ""
		. fin_cadre_trait_couleur(true)
		;
	
	

	// Fin de la page
	echo($page_result);

	echo pipeline('affiche_milieu',array('args'=>array('exec'=>$sous_rubrique),'data'=>''))
		, spiplistes_html_signature(_SPIPLISTES_PREFIX)
		, fin_gauche(), fin_page();
	
} // exec_spiplistes_maintenance()
Ejemplo n.º 25
0
function exec_rec_mc_dist(){
// elements spip
global 	$connect_statut,
		$connect_toutes_rubriques,
		$connect_id_auteur,
		$couleur_claire, $couleur_foncee;

//#plug(11-07) : fonctions requises...(construction de la liste des rubriques, ...)
	include_spip("inc/rec_mc_inc_fonct");

//#plug(11-07) : Initialisation de l'id rubrique . Mis a -1 pour le premier affichage
	$rub = -1;
//#plug(11-07) : Recupération de l'id rubrique si $_post
	if (isset($_POST['rub'])) 
		$rub = $_POST['rub'];
	elseif (isset($_GET['rub'])) 
		$rub = $_GET['rub'];
		
	$Refresh  = "";		
	if (isset($_POST['refresh'])) {
		$Refresh = $_POST['refresh'];
	}
	elseif (isset($_GET['refresh'])) {
		$Refresh = $_GET['refresh'];
	}

//#plug(11-07) : construction des "blocs"	
include_spip("inc/rec_mc_inc_pres");

$commencer_page = charger_fonction('commencer_page', 'inc');
echo $commencer_page(_T('rmc:titre_page_admin'), "suivi", "rec_mc");
		echo "<a name='haut_page'></a><br />";
		echo gros_titre(_T('rmc:titre_page_admin'),'',false);


echo debut_gauche('', true);	

	//#plug(11-07) :  TODO : Etat des lieux...
		menu_admin() ;

	creer_colonne_droite();

	//#plug(11-07) :  vers popup aide 
	bloc_ico_aide_ligne();

	//#plug(11-07) :  signature
	echo "<br />";
	echo debut_boite_info(true);
		echo _T('rmc:signature');
	echo fin_boite_info(true);
	echo "<br />";

echo debut_droite('', true);

	echo debut_cadre_relief( _DIR_IMG_REC_MC."rec_mc-24.png");

		echo gros_titre(_T('rmc:titre_config'),'',false);

		echo _T('rmc:info_config');
		echo "<br />";

		//#plug(11-07) :  verif de l'existence d'au moins une rubrique
		$r=mysql_query("SELECT * FROM spip_rubriques");
		$nb_r=mysql_num_rows($r);		
		//#plug(11-07) : verif de l'existence d'au moins un groupe de mots
		$g=mysql_query("SELECT * FROM spip_groupes_mots");
		$nb_g=mysql_num_rows($g);		
		if($nb_r==0){
		echo	debut_boite_erreur(_T('rmc:erreur_rubrique')) ;

		}else if($nb_g==0){
		echo	debut_boite_erreur(_T('rmc:erreur_groupes_mots')) ;

		}else{
			//#plug(11-07) : Selectionner une rubrique
			echo debut_cadre_trait_couleur('',true, '', _T('rmc:rubriques'));
			echo _T('rmc:text_select_rubrique')." <br /><br />";

			echo "<form action=\" ".$PHP_SELF." \" method=\"POST\">";
			//#plug(11-07) :  Commentaire Dom : ma ligne qui merde !!!! ne merde plus!!!!!!!!!!!!!!
			echo "<select style=\"width:100%;\" name=\"rub\" onchange=\"window.location=('".generer_url_ecrire("rec_mc","rub='+this.options[this.selectedIndex].value").")\">";	
			if ($rub == -1) echo "<option value=\"-1\" selected><b>"._T('rmc:select_rubrique')."</b>";
			else echo "<option value=\"-1\"><b>"._T('rmc:select_rubrique')."</b>";

	
			if ($rub == 0) echo "<option value=\"0\" selected style=\"font-weight:bold\">"._T('rmc:select_ttes_rubriques');
			else echo "<option value=\"0\" style=\"font-weight:bold\">"._T('rmc:select_ttes_rubriques');
	
			$query = "SELECT id_parent FROM spip_rubriques order by titre";
			$result=spip_query($query);

			while($row=spip_fetch_array($result)){
				$parent_parent=$row['id_parent'];
			}
		getenfant(0,$rub);
		echo "</select><BR>\n";
		echo "</form>";
		echo fin_cadre_trait_couleur(true);
		}


		$idgroupeprec = 0;
		
		if ($rub != -1) {

		echo debut_cadre_trait_couleur ('', true, '', _T('rmc:groupes_mots'));

//#plug(11-07) :  formulaire - envoi du traitement vers action/rec_mc_ajoutgroupes
			echo '<form action="'.generer_url_action('rec_mc_ajoutgroupes').'" method="post">';
			echo "<input type='hidden' name='redirect' value='".generer_url_ecrire("rec_mc", "rub=".$rub)."' />\n";
			echo "<input type='hidden' name='hash' value='".calculer_action_auteur("ajoutgroupes-rien")."' />\n";
			echo "<input type='hidden' name='id_auteur' value='".$connect_id_auteur."' />\n";
			echo "<input type='hidden' name='rub' value='$rub'>";
	
		
			if ($rub > -1) {
				$sql = "SELECT spip_groupes_mots.titre, spip_groupes_mots.id_groupe, spip_mots.titre AS titremot, spip_mots.id_mot as id_mot, spip_rmc_rubs_groupes.id_rubrique AS idrub FROM spip_groupes_mots 
								INNER JOIN spip_mots ON spip_mots.id_groupe = spip_groupes_mots.id_groupe 
								INNER JOIN spip_rmc_rubs_groupes ON spip_rmc_rubs_groupes.id_groupe = spip_groupes_mots.id_groupe 
								WHERE id_rubrique = $rub GROUP BY spip_groupes_mots.titre, spip_groupes_mots.id_groupe, spip_mots.titre 
								ORDER BY spip_groupes_mots.id_groupe";
			}
		
			$result = spip_query($sql);

		
			$aff_groupes_select="";
			$listidgrp = "";
			$compt = 0;
			$nbr = 0;
			if ($result) {
				while ($row = mysql_fetch_assoc($result)) {
					extract($row);
				
					if ($idgroupeprec != $id_groupe) {
							$aff_groupes_select.=" <br /><div style=\"background-color:#ccc; border:1px solid ".$couleur_foncee."; font-size:1.2em; font-weight:bold\"><input type=checkbox name=\"idgrp[]\" value=\"$id_groupe\" checked />$titre</div>";
							$nbr = ++$nbr;
						if ($compt == 0) {
							$listidgrp .= "$id_groupe";
							$compt = 1;
							$nb_groupes = ++$ng;
						}
						else $listidgrp .= ",$id_groupe";
					}
					$s="SELECT id_mot_exclu FROM spip_rmc_mots_exclus WHERE id_mot_exclu=$id_mot AND id_rubrique=$rub";
					$r=spip_query($s);
					$rw=spip_fetch_array($r);
					if($rw['id_mot_exclu']==$id_mot){
					$aff_groupes_select.= "<div style=\"border:1px solid ".$couleur_foncee."; background-color:#eee; font-size:.9em;height:18px;\"  ><span style='float:right;color:red;font-weight:bold;'>"._T('rmc:mot_exclu')."<input type=checkbox name='motsexclus[]' value='$id_mot' style='margin:0 2px;padding:0;' checked='checked' /></span> $titremot</div>";
					}else{
					$aff_groupes_select.= "<div style=\"border:1px solid ".$couleur_foncee."; background-color:#eee; font-size:.9em;height:18px;\"  ><span style='float:right;color:red;'>"._T('rmc:mot_exclure')."<input type=checkbox name='motsexclus[]' value='$id_mot' style='margin:0 2px;padding:0;'/></span> $titremot</div>";
					}
					$idgroupeprec = $id_groupe;

				}
				mysql_free_result($result);
			}
			if ($rub > -1) {
				if ($listidgrp != "") 
					$sql = "SELECT spip_groupes_mots.titre, spip_groupes_mots.id_groupe, spip_mots.titre 
								AS titremot 
								FROM spip_groupes_mots 
								INNER JOIN spip_mots ON spip_mots.id_groupe = spip_groupes_mots.id_groupe 
								WHERE spip_groupes_mots.id_groupe not IN ($listidgrp) 
								GROUP BY spip_groupes_mots.titre, spip_groupes_mots.id_groupe, spip_mots.titre 
								ORDER BY spip_groupes_mots.id_groupe";
				else 
					$sql = "SELECT spip_groupes_mots.titre, spip_groupes_mots.id_groupe, spip_mots.titre 
								AS titremot 
								FROM spip_groupes_mots 
								INNER JOIN spip_mots ON spip_mots.id_groupe = spip_groupes_mots.id_groupe 
								GROUP BY spip_groupes_mots.titre, spip_groupes_mots.id_groupe, spip_mots.titre 
								ORDER BY spip_groupes_mots.id_groupe";
			}
			$result = spip_query($sql);

			$idgroupeprc = 0;	
			$aff_groupes_noselected = "";
			$j=0;
			if ($result) {
				while ($row = mysql_fetch_assoc($result)) {
					extract($row);
				
					if ($idgroupeprec != $id_groupe) {
						$aff_groupes_noselected.=" <br /><div style=\"background-color:#ccc; border:1px solid ".$couleur_foncee."; font-size:1.2em; font-weight:bold\"><input type=checkbox name=\"idgrp[]\" value=\"$id_groupe\">$titre</div>";
						$nb_groupes_at = ++$j;
					}
					$aff_groupes_noselected.= "<div style=\"border:1px solid ".$couleur_foncee."; background-color:#eee; font-size:.9em\"  > $titremot</div>";
					$idgroupeprec = $id_groupe;
			
				}
				mysql_free_result($result);
			}

//#plug(11-07) : Affichage
			//#plug(11-07) : Affichage des groupes attribues (deja selectionnes)

			if($nbr >0){
				echo debut_cadre_relief(_DIR_IMG_PACK."groupe-mot-24.gif");
				debut_band_titre($couleur_foncee, "verdana3", "bold");
						if($idrub==0 ){
				echo _T('rmc:groupes_toutes_rubriques');
				}else{
				echo _T('rmc:groupes_mots_attribues');
				}
				echo fin_bloc();
				echo "$aff_groupes_select";
				echo fin_cadre_relief();
			}
				
			//#plug(11-07) : Affichage des groupes non attribues
			debut_cadre_relief(_DIR_IMG_PACK."groupe-mot-24.gif");
			if($nb_groupes_at >0){
				debut_band_titre($couleur_foncee, "verdana3", "bold");
				echo _T('rmc:groupes_mots_non_attribues');
				echo fin_bloc();
			}else{
				echo _T('rmc:groupes_mots_tous_attribues');
			} 
			echo $aff_groupes_noselected;
			echo fin_cadre_relief();
		echo "<input type=\"submit\" name=\"refresh\" value=\"Valider\">";
		echo "</form>";
		echo fin_cadre_trait_couleur(true);
		}
	echo fin_cadre_relief();
echo fin_gauche().fin_page();//fin page
}//finexec
Ejemplo n.º 26
0
function exec_spiplistes_courrier_edit(){

	include_spip('inc/barre');
	include_spip('inc/documents');
	include_spip('base/spiplistes_tables');
	include_spip('inc/spiplistes_api');
	include_spip('inc/spiplistes_api_presentation');
	include_spip('inc/spiplistes_dater_envoi');
	include_spip('inc/spiplistes_api_courrier');
	include_spip('public/assembler');
	include_spip('inc/spiplistes_naviguer_paniers');

	global $connect_statut
		, $connect_toutes_rubriques
		, $connect_id_auteur
		, $spip_ecran
		, $compteur_block
		;
	
	$eol = "\n";
	$id_temp = false;
	
	$type = _request('type');
	$id_courrier = intval(_request('id_courrier'));

	foreach(array('btn_courrier_apercu') as $key) {
		$$key = _request($key);
	}

	if($id_courrier > 0) {
	///////////////////////////
	// Edition /modification d'un courrier
		$sql_select_array = array('titre','texte','message_texte','type','statut','id_auteur');
		if($row = spiplistes_courriers_premier($id_courrier, $sql_select_array)) {
			foreach($sql_select_array as $key) {
				$$key = $row[$key];
			}
			$titre = entites_html($titre);
			$texte = entites_html($texte);
		}
		else {
			$id_courrier = false;
		}
	}
	// n'existe pas encore ?
	// placer un marqueur pour les documents joints
	else {
		$id_temp = 0-intval(substr(creer_uniqid(),0,5));
	}

	// l'edition du courrier est reservee aux super-admins 
	// ou aux admin createur du courrier
	$flag_editable = (($connect_statut == "0minirezo") 
		&& ($connect_toutes_rubriques || ($connect_id_auteur == $id_auteur) || !$id_courrier));

	if($flag_editable) {
		if(!$id_courrier) {
		// si pas de ID courrier, c'est une creation
			$statut = _SPIPLISTES_COURRIER_STATUT_REDAC; 
			$type = _SPIPLISTES_COURRIER_TYPE_NEWSLETTER;
			$new = 'oui';
			$titre = _T('spiplistes:Nouveau_courrier');
			$clearonfocus = " onfocus=\"if(!antifocus){this.value='';antifocus=true;}\"";
		}
		else {
			$clearonfocus = "";
		}
	
		$gros_bouton_retour =
			($id_courrier)
			? icone(
				_T('spiplistes:retour_link')
				, generer_url_ecrire(_SPIPLISTES_EXEC_COURRIER_GERER, "id_courrier=$id_courrier")
				, spiplistes_items_get_item('icon', $statut)
				, "rien.gif"
				, ""
				, false
				)
			: ""
			;
		$boite_documents = afficher_documents_colonne(
							  ($id_courrier ? $id_courrier : $id_temp )
							  , 'courrier');
	}
	
////////////////////////////////////
// PAGE CONTENU
////////////////////////////////////

	$titre_page = _T('spiplistes:edition_du_courrier');
	// Permet entre autres d'ajouter les classes a' la page : <body class='$rubrique $sous_rubrique'>
	$rubrique = _SPIPLISTES_PREFIX;
	$sous_rubrique = "courrier_edit";

	$commencer_page = charger_fonction('commencer_page', 'inc');
	echo($commencer_page(_T('spiplistes:spiplistes') . " - " . $titre_page, $rubrique, $sous_rubrique));

	if(!$flag_editable) {
		die (spiplistes_terminer_page_non_autorisee() . fin_page());
	}
	
	$page_result = ""
		. "<br /><br /><br />\n"
		. spiplistes_gros_titre($titre_page, '', true)
		. barre_onglets($rubrique, $sous_rubrique)
		. debut_gauche($rubrique, true)
		. spiplistes_boite_info_id(_T('spiplistes:Courrier_numero_'), $id_courrier, true)
		. spiplistes_naviguer_paniers_courriers(_T('spiplistes:aller_au_panier_'), true)
		. $boite_documents
		. pipeline('affiche_gauche', array('args'=>array('exec'=>$sous_rubrique),'data'=>''))
		//. creer_colonne_droite($rubrique, true)  // spiplistes_boite_raccourcis() s'en occupe
		. spiplistes_boite_raccourcis(true)
		//. spiplistes_boite_autocron() // ne pas gener l'edition
		. pipeline('affiche_droite', array('args'=>array('exec'=>$sous_rubrique),'data'=>''))
		. debut_droite($rubrique, true)
		;

	$page_result .= ""
		// le bloc pour apercu (retour ajax)
		. "<div id='apercu-courrier' style='clear:both;tex-align:center'></div>\n"
		//
		. debut_cadre_formulaire('', true)
		. "<a name='haut-block' id='haut-block'></a>\n"
		// 
		//
		// bloc titre
		. "\n<table cellpadding='0' cellspacing='0' border='0' width='100%'>\n"
		. "<tr width='100%'>"
		. "<td>"
		. $gros_bouton_retour
		. "</td>"
		. "<td><img src='"._DIR_IMG_PACK."/rien.gif' width='10'></td>\n"
		. "<td width='100%'>"
		. ($id_courrier ? _T('spiplistes:Modifier_un_courrier__') : _T('spiplistes:Creer_un_courrier_') )."<br />\n"
		. spiplistes_gros_titre($titre, '', true)
		. "</td>\n"
		. "</tr></table>\n"
		. "<hr />\n"
		;
		//
		// debut formulaire
	
	$page_result .= ""
		. "<form action='".generer_url_ecrire(_SPIPLISTES_EXEC_COURRIER_GERER
											  , ($id_courrier ? "id_courrier=$id_courrier" : "")
											  )
			."' method='post' name='formulaire_courrier_edit' id='formulaire_courrier_edit'>\n"
		. "<input type='hidden' name='modifier_message' value=\"oui\" />\n"
		. "<input type='hidden' name='id_courrier' value='$id_courrier' />\n"
		//
		// bloc sujet du courrier
		. "<label for='sujet_courrier'>"._T('spiplistes:sujet_courrier').":</label>\n"
		. "<input id='sujet_courrier' type='text' class='formo' name='titre' value=\"$titre\" size='40' $clearonfocus />\n"
		. "<p style='margin-bottom:1.75em;'>"._T('spiplistes:Courrier_edit_desc')."</p>\n"
		;
		
	$titre_block_depliable = _T('spiplistes:Generer_le_contenu');
	$page_result .= ''
		//
		// generer le contenu
		// Reprise du Formulaire adapte de abomailman () // MaZiaR - NetAktiv	// tech@netaktiv.com
		. debut_cadre_relief(_DIR_PLUGIN_SPIPLISTES_IMG_PACK.'stock_insert-slide.gif', true)
		//. bouton_block_invisible(md5(_T('spiplistes:charger_patron')))
		. spiplistes_bouton_block_depliable($titre_block_depliable, false, md5(_T('spiplistes:charger_patron')))
		. "<span class='verdana2 triangle_label' onclick=\"javascript:$('#triangle".$compteur_block."').click();\">"
			. (spiplistes_spip_est_inferieur_193() ? $titre_block_depliable : "")
			. "</span>\n"
		. spiplistes_debut_block_invisible(md5(_T('spiplistes:charger_patron')))
		// 
		. '<div id="ajax-loader" align="right">'
			. '<script type="text/javascript">'.$eol
			. 'document.write(\'<img src="' . _DIR_PLUGIN_SPIPLISTES_IMG_PACK . 'ajax_indicator.gif" alt="" />\');'	
			. '</script>'.$eol
			. '<noscript>'.$eol
			. spiplistes_boite_alerte (_T('spiplistes:javascript_inactif'), true)
			. $eol
			. '</noscript>'.$eol
			//. '<img src="' . _DIR_PLUGIN_SPIPLISTES_IMG_PACK . 'ajax_indicator.gif" alt="" />'
			. '</div>'.$eol
		;
	
	if(strpos($GLOBALS['meta']['langues_multilingue'], ",") !== false) {
		$page_result .= "" 
			// selecteur de langues
			. "<div class='boite-generer-option'>\n"
			. "<label class='verdana2'>"._T('spiplistes:Langue_du_courrier_')
			. "<select name='lang' class='fondo'>\n"
			. liste_options_langues('changer_lang')
			. "</select></label>\n"
			. "</div>\n"
			;
	}
	
	$page_result .= ""
		// Prendre en compte a partir de quelle date ?
		. spiplistes_dater_envoi(
			'courrier', $id_courrier, $statut
			, $flag_editable
			, _T('spiplistes:Contenu_a_partir_de_date_')
			, normaliser_date(time()), 'btn_changer_date'
			, false
			)
		;
		
	$page_result .= ""
		// texte introduction a placer avant le patron et sommaire 
		. '<div class="boite-generer-option">'.$eol
		. '<label class="verdana2">'
		. '<input type="checkbox" id="avec_intro" name="avec_intro" value="non" />'
		. _T('spiplistes:avec_introduction')
		. '</label>'.$eol
		. '<div id="choisir_intro" class="option">'.$eol
		. '<label class="verdana2" style="display:block;" for="message_intro">'
		. _T('spiplistes:introduction_du_courrier_').':</label>'.$eol
		. afficher_barre('document.formulaire_courrier_edit.message_intro')
		. '<textarea id="message_intro" name="message_intro" '.$GLOBALS['browser_caret'].' rows="5" cols="40" wrap="soft" style="width:100%">'.$eol
		. '</textarea>'
		. '</div>'.$eol
		. '</div>'.$eol
		;
		
	// selection du patron
	$page_result .= ''
		. "<div class='boite-generer-option'>\n"
		. "<label class='verdana2'>"
		. "<input type='checkbox' id='avec_patron' name='avec_patron' value='non' />"
		. _T('spiplistes:a_partir_de_patron')
		. "</label>\n"
		. "<div id='choisir_patron' class='option'>"
		. "<label class='verdana2'>"
		. _T('spiplistes:choisir_un_patron_').":</label>\n"
		. spiplistes_boite_selection_patrons ("", true, _SPIPLISTES_PATRONS_DIR, "patron", 1)
		. "<div id='patron_pos' style='display:none'>\n"
		. "<span class='verdana2'>" . _T('spiplistes:generer_patron_'). "</span>\n"
		. spiplistes_form_input_radio ('patron_pos', 'avant', _T('spiplistes:generer_patron_avant'), true, true, false)
		. spiplistes_form_input_radio ('patron_pos', 'apres', _T('spiplistes:generer_patron_apres'), false, true, false)
		. "</div>\n"
		. "</div>\n"
		. "</div>\n"
		;
	
	// Generer un sommaire
	$page_result .= ""
		. "<div class='boite-generer-option'>\n"
		. "<label class='verdana2'>"
		. "<input type='checkbox' id='avec_sommaire' name='avec_sommaire' value='non' />"
		. _T('spiplistes:generer_un_sommaire')
		. "</label>\n"
		. "<div id='choisir_sommaire' class='option'>";		
	$page_result .= ""
		//
		// selecteur de rubriques
		. "<label class='verdana2' for='ajouter_rubrique'>"._T('spiplistes:Lister_articles_de_rubrique').":</label>\n"
		. "<select name='id_rubrique' id='ajouter_rubrique' class='formo'>\n"
		. "<option value=''></option>\n"
		. spiplistes_arbo_rubriques()
		. "</select>\n"
		. "<br />\n"
		//
		// selecteur des mots-cles
		. "<label class='verdana2' for='ajouter_motcle'>"._T('spiplistes:Lister_articles_mot_cle').":</label>\n"
		. "<select name='id_mot' id='ajouter_motcle' class='formo'>\n"
		. "<option value=''></option>\n"
		;
	
	if (version_compare($GLOBALS['spip_version_code'], '1.9300', '<')){
		$rqt_gmc = sql_select (array('id_groupe','titre'), 'spip_groupes_mots', "articles=".sql_quote('oui'));
	}else{
		$rqt_gmc = sql_select (array('id_groupe','titre'), 'spip_groupes_mots', "tables_liees LIKE '%articles%'");		
	}
	
	while ($row = sql_fetch($rqt_gmc)) {
		$id_groupe = intval($row['id_groupe']);
		$titre = $row['titre'];
		$page_result .= "<option value='' disabled='disabled'>". supprimer_numero (typo($titre)) . "</option>\n";
		$rqt_mc = sql_select (array('id_mot','titre'), 'spip_mots', "id_groupe=".sql_quote($id_groupe));
		while ($row = sql_fetch($rqt_mc)) {
			$id_mot = intval($row['id_mot']);
			$titre = supprimer_numero (typo($row['titre']));
			$page_result .= "<option value='$id_mot'>--&nbsp;$titre</option>\n";
		}
	}
	$page_result .= ""
		. "</select><br />\n"
		//
		// a partir de la date selectionnee plus haut
		. spiplistes_form_input_item ('checkbox', 'date_sommaire', 'oui'
			, _T('spiplistes:sommaire_date_debut'), $sommaire_date == 'oui', true, false)
		. "</div>\n"
		. "</div>\n"
		; // fin generer le sommaire
		
		// choisir son patron de pied
	$page_result .= ""
		. "<div class='boite-generer-option'>\n"
			. "<label class='verdana2'>"
		. _T('spiplistes:avec_patron_pied__')
		. spiplistes_boite_selection_patrons (_SPIPLISTES_PATRONS_PIED_DEFAUT, true, _SPIPLISTES_PATRONS_PIED_DIR, "pied_patron", 1)
		. "</label>\n"
		. "</div>\n"
		; 
		
	$page_result .= ""
		. "<p class='verdana2'>\n"
			. _T('spiplistes:Cliquez_Generer_desc'
				, array('titre_bouton'=>_T('spiplistes:generer_Apercu'), 'titre_champ_texte'=>_T('spiplistes:texte_courrier'))
				)
			. "</p>\n"
		. "<p class='verdana2'>\n" ._T('spiplistes:calcul_patron_attention') .  "</p>\n"
		. spiplistes_form_bouton_valider ('Valider', _T('spiplistes:generer_Apercu'))
		. fin_block() // fin_block_invisible
		. fin_cadre_relief(true)
		. "<br />\n"
		;
		
	//
	// bloc du courrier (titre, texte), toujours visible
	$page_result .= ''
		. '<label for="texte_courrier">'._T('spiplistes:texte_courrier').'</label>'
		. afficher_barre('document.formulaire_courrier_edit.message')
		. '<textarea id="texte_courrier" name="message" '.$GLOBALS['browser_caret'].' class="porte_plume_partout barre_inserer formo" rows="20" cols="40" wrap=soft>'.$eol
		. $texte
		. '</textarea>'.$eol
		. (!$id_courrier ? '<input type="hidden" name="new" value="oui" />'.$eol : '')
		//
		. '<p style="text-align:right;">'.$eol
		. '<input type="submit" onclick="this.value=\'oui\';" id="btn_courrier_edit" '
			. ' name="btn_courrier_valider" value="'._T('bouton_valider').'" class="fondo" /></p>'.$eol
		// le marqueur pour les documents joints
		. (($id_temp!==false) ? '<input type="hidden" name="id_temp" value="' . $id_temp . '" />'.$eol : '')
		//
		// fin formulaire
		. '</form>'.$eol
		. fin_cadre_formulaire(true)
		;
	
	echo($page_result);

	// COURRIER EDIT FIN ---------------------------------------------------------------

	echo pipeline('affiche_milieu',array('args'=>array('exec'=>$sous_rubrique),'data'=>''))
		, spiplistes_html_signature(_SPIPLISTES_PREFIX)
		, fin_gauche(), fin_page();
	
}
Ejemplo n.º 27
0
function exec_articles_versions_args($id_article, $id_version, $id_diff)
{
	global $spip_lang_left, $spip_lang_right;

	if (!autoriser('voirrevisions', 'article', $id_article) 
	OR !$row = sql_fetsel("*", "spip_articles", "id_article=".sql_quote($id_article))){
		include_spip('inc/minipres');
		echo minipres();
		return;
	}

	include_spip('inc/suivi_versions');
	include_spip('inc/presentation');
	include_spip('inc/revisions');

	// recuperer les donnees actuelles de l'article
	$id_article = $row["id_article"];
	$id_rubrique = $row["id_rubrique"];
	$titre = $row["titre"];
	$statut_article = $row["statut"];
	$lang = $row["lang"];

	// Afficher le debut de la page (y compris rubrique)
	$commencer_page = charger_fonction('commencer_page', 'inc');
	echo $commencer_page(_T('info_historique')." &laquo; $titre &raquo;", "naviguer", "articles", $id_rubrique);

	echo debut_grand_cadre(true);

	echo afficher_hierarchie($id_rubrique);

	echo fin_grand_cadre(true);


//////////////////////////////////////////////////////
// Affichage de la colonne de gauche
//

	echo debut_gauche('', true);

	echo bloc_des_raccourcis(icone_horizontale(_T('icone_retour_article'), generer_url_ecrire("articles","id_article=$id_article"), "article-24.gif","rien.gif", false) .
				 icone_horizontale(_T('icone_suivi_revisions'), generer_url_ecrire("suivi_revisions",""), "historique-24.gif","rien.gif", false));



//////////////////////////////////////////////////////
// Affichage de la colonne de droite
//

	echo debut_droite('', true);

	$lang_dir = lang_dir(changer_typo($lang));



//
// recuperer les donnees versionnees
//
	$last_version = false;
	if (!$id_version) {
		$id_version = $row['id_version'];
		$last_version = true;
	}
	$textes = revision_comparee($id_article, $id_version, 'complet', $id_diff);

	unset($id_rubrique); # on n'en n'aura besoin que si on affiche un diff


//
// Titre, surtitre, sous-titre
//

	$debut = $corps = '';

	if (is_array($textes))
	foreach ($textes as $var => $t) {
		switch ($var) {
			case 'id_rubrique':
				$debut .= "<div dir='$lang_dir' class='arial1 spip_x-small'>"
					. $t
					. "</div>\n";
				break;

			case 'surtitre':
			case 'soustitre':
				$debut .= "<div  dir='$lang_dir' class='arial1 spip_medium'><b>" . propre_diff($t) . "</b></div>\n";
				break;

			case 'titre':
				$debut .= gros_titre(propre_diff($t),
					puce_statut($statut_article, " style='vertical-align: center'"), false);
				break;

			// trois champs a affichage combine
			case 'descriptif':
			case 'url_site':
			case 'nom_site':
				if (!$vudesc++) {
					$debut .= "<div style='text-align: $spip_lang_left; padding: 5px; border: 1px dashed #aaaaaa; background-color: #e4e4e4;'  dir='$lang_dir'>";
					$texte_case = ($textes['descriptif']) ? "{{"._T('info_descriptif')."}} ".$textes['descriptif']."\n\n" : '';
					$texte_case .= ($textes['nom_site'].$textes['url_site']) ? "{{"._T('info_urlref')."}} [".$textes['nom_site']."->".$textes['url_site']."]" : '';
					$debut .= "<span class='verdana1 spip_small'>"
					. propre($texte_case). "</span>";
					$debut .= "</div>";
				}
				break;

			default:
				$corps .= "<div dir='$lang_dir' class='champ contenu_$var'>"
					. "<div class='label'>$var</div>"
					. "<div class='$var'>"
					. propre_diff($t)
					. "</div></div>\n";
				break;
		}
	}

	echo '<div id="contenu">';

	echo debut_cadre_relief('', true);

	echo "\n<table id='diff' cellpadding='0' cellspacing='0' border='0' width='100%'>";
	echo "<tr><td style='width: 100%' valign='top'>";
	echo $debut;
	echo "</td><td>";

// Icone de modification
	if (autoriser('modifier', 'article', $id_article))
		echo icone_inline(
		_T('icone_modifier_article').'<br />('._T('version')." $id_version)",
		generer_url_ecrire("articles_edit",
			"id_article=$id_article".((!$last_version)?"&id_version=$id_version":"")),
		"article-24.gif",
		"edit.gif",
		$spip_lang_right
		);

	echo "</td>";

	echo "</tr></table>";

	echo fin_cadre_relief(true);


	//////////////////////////////////////////////////////
	// Affichage des versions
	//
	$result = sql_select("id_version, titre_version, date, id_auteur",
		"spip_versions",
		"id_article=".sql_quote($id_article)." AND  id_version>0",
		"", "id_version DESC");

	echo debut_cadre_relief('', true);

	$zapn = 0;
	$lignes = array();
	$points = '...';
	$tranches = 10;
	while ($row = sql_fetch($result)) {

		$res = '';
		// s'il y en a trop on zappe a partir de la 10e
		// et on s'arrete juste apres celle cherchee
		if ($zapn++ > $tranches
		AND abs($id_version - $row['id_version']) > $tranches<<1) {
			if ($points) {
				$lignes[]= $points;
				$points = '';
			}
			if ($id_version > $row['id_version']) break;
			continue;
		}

		$date = affdate_heure($row['date']);
		$version_aff = $row['id_version'];
		$titre_version = typo($row['titre_version']);
		$titre_aff = $titre_version ? $titre_version : $date;
		if ($version_aff != $id_version) {
			$lien = parametre_url(self(), 'id_version', $version_aff);
			$lien = parametre_url($lien, 'id_diff', '');
			$res .= "<a href='".($lien.'#diff')."' title=\""._T('info_historique_affiche')."\">$titre_aff</a>";
		} else {
			$res .= "<b>$titre_aff</b>";
		}

		if (is_numeric($row['id_auteur'])
		AND $t = sql_getfetsel('nom', 'spip_auteurs', "id_auteur=" . intval($row['id_auteur']))) {
				$res .= " (".typo($t).")";
			} else {
				$res .= " (".$row['id_auteur'].")"; #IP edition anonyme
		}
		
		if ($version_aff != $id_version) {
		  $res .= " <span class='verdana2'>";
		  if ($version_aff == $id_diff) {
			$res .= "<b>("._T('info_historique_comparaison').")</b>";
		  } else {
			$lien = parametre_url(self(), 'id_version', $id_version);
			$lien = parametre_url($lien, 'id_diff', $version_aff);
			$res .= "(<a href='".($lien.'#diff').
			"'>"._T('info_historique_comparaison')."</a>)";
		  }
		$res .= "</span>";
		}
		$lignes[]= $res;
	}
	if ($lignes) {
		echo "<ul class='verdana3'><li>\n";
		echo join("\n</li><li>\n", $lignes);
		echo "</li></ul>\n";
	}

	//////////////////////////////////////////////////////
	// Corps de la version affichee
	//
	echo "\n\n<div id='wysiwyg' style='text-align: justify;'>$corps";

	// notes de bas de page
	if (strlen($GLOBALS['les_notes']))
		echo "<div class='champ contenu_notes'>
			<div class='label'>"._T('info_notes')."</div>
			<div class='notes' dir='$lang_dir'>"
			.$GLOBALS['les_notes']
			."</div></div>\n";

	echo "</div>\n";

	echo fin_cadre_relief(true);

	echo '</div>'; // /#contenu


	echo  fin_gauche(), fin_page();

}
Ejemplo n.º 28
0
function configuration_articles_dist(){
	global $spip_lang_left;

	$articles_surtitre = $GLOBALS['meta']["articles_surtitre"];
	$articles_soustitre = $GLOBALS['meta']["articles_soustitre"];
	$articles_descriptif = $GLOBALS['meta']["articles_descriptif"];
	$articles_chapeau = $GLOBALS['meta']["articles_chapeau"];
	$articles_texte = $GLOBALS['meta']["articles_texte"];
	$articles_ps = $GLOBALS['meta']["articles_ps"];
	$articles_redac = $GLOBALS['meta']["articles_redac"];
	$articles_urlref = $GLOBALS['meta']["articles_urlref"];

	$res = "<table border='0' cellspacing='1' cellpadding='3' width=\"100%\">"

	. "<tr><td colspan='2' class='verdana2'>"
	. _T('texte_contenu_articles')
	. "</td></tr>"

	. "<tr>"
	. "<td align='$spip_lang_left' class='verdana2'>"
	. _T('info_surtitre')
	. "</td>"
	. "<td align='$spip_lang_left' class='verdana2'>"
	. afficher_choix('articles_surtitre', $articles_surtitre,
		array('oui' => _T('item_oui'), 'non' => _T('item_non')), " &nbsp; ")
	. "</td></tr>\n"

	. "<tr>"
	. "<td align='$spip_lang_left' class='verdana2'>"
	. _T('info_sous_titre')
	. "</td>"
	. "<td align='$spip_lang_left' class='verdana2'>"
	. afficher_choix('articles_soustitre', $articles_soustitre,
		array('oui' => _T('item_oui'), 'non' => _T('item_non')), " &nbsp; ")
	. "</td></tr>\n"

	. "<tr>"
	. "<td align='$spip_lang_left' class='verdana2'>"
	. _T('info_descriptif')
	. "</td>"
	. "<td align='$spip_lang_left' class='verdana2'>"
	. afficher_choix('articles_descriptif', $articles_descriptif,
		array('oui' => _T('item_oui'), 'non' => _T('item_non')), " &nbsp; ")
	. "</td></tr>\n"

	. "<tr>"
	. "<td align='$spip_lang_left' class='verdana2'>"
	. _T('info_chapeau_2')
	. "</td>"
	. "<td align='$spip_lang_left' class='verdana2'>"
	. afficher_choix('articles_chapeau', $articles_chapeau,
		array('oui' => _T('item_oui'), 'non' => _T('item_non')), " &nbsp; ")
	. "</td></tr>\n"

	. "<tr>"
	. "<td align='$spip_lang_left' class='verdana2'>"
	. typo(_T('info_texte').':')
	. "</td>"
	. "<td align='$spip_lang_left' class='verdana2'>"
	. afficher_choix('articles_texte', $articles_texte,
		array('oui' => _T('item_oui'), 'non' => _T('item_non')), " &nbsp; ")
	. "</td></tr>\n"

	. "<tr>"
	. "<td align='$spip_lang_left' class='verdana2'>"
	. _T('info_post_scriptum_2')
	. "</td>"
	. "<td align='$spip_lang_left' class='verdana2'>"
	. afficher_choix('articles_ps', $articles_ps,
		array('oui' => _T('item_oui'), 'non' => _T('item_non')), " &nbsp; ")
	. "</td></tr>\n"

	. "<tr>"
	. "<td align='$spip_lang_left' class='verdana2'>"
	. _T('info_date_publication_anterieure')
	. "</td>"
	. "<td align='$spip_lang_left' class='verdana2'>"
	. afficher_choix('articles_redac', $articles_redac,
		array('oui' => _T('item_oui'), 'non' => _T('item_non')), " &nbsp; ")
	. "</td></tr>\n"

	. "<tr>"
	. "<td align='$spip_lang_left' class='verdana2'>"
	. _T('info_urlref')
	. "</td>"
	. "<td align='$spip_lang_left' class='verdana2'>"
	. afficher_choix('articles_urlref', $articles_urlref,
		array('oui' => _T('item_oui'), 'non' => _T('item_non')), " &nbsp; ")
	. "</td></tr>\n"


	. "</table>";

	$res = debut_cadre_relief("", true, "", _T('info_contenu_articles').aide ("confart"))
	. ajax_action_post('configurer', 'articles', 'configuration','',$res)
	. fin_cadre_relief(true);

	return ajax_action_greffe('configurer-articles', '', $res);

}
Ejemplo n.º 29
0
function exec_messagerie_dist()
{

global $connect_id_auteur, $connect_statut, $spip_lang_rtl;


$commencer_page = charger_fonction('commencer_page', 'inc');
echo $commencer_page(_T('titre_page_messagerie'), "accueil", "messagerie");

echo debut_gauche("messagerie",true);


echo debut_boite_info(true);

echo _T('info_gauche_messagerie');

echo "<p>".http_img_pack("m_envoi$spip_lang_rtl.gif", 'V', "style='width: 14px; height: 7px; border: 0px'") .' ' . _T('info_symbole_vert'), '</p>';

 echo aide ("messut");

echo "<p>".http_img_pack("m_envoi_bleu$spip_lang_rtl.gif", 'B', "style='width: 14px; height: 7px; border: 0px'") .' ' . _T('info_symbole_bleu'), '</p>';

echo aide ("messpense");

echo "<p>".http_img_pack("m_envoi_jaune$spip_lang_rtl.gif", 'J', "style='width: 14px; height: 7px; border: 0px'") .' ' . _T('info_symbole_jaune'), '</p>';

echo fin_boite_info(true);

echo creer_colonne_droite('', true);

echo debut_cadre_relief("messagerie-24.gif", true);
echo icone_horizontale(_T('lien_nouvea_pense_bete'),generer_action_auteur("editer_message","pb"), "pense-bete.gif", "", false);
echo icone_horizontale(_T('lien_nouveau_message'),generer_action_auteur("editer_message","normal"), "message.gif", "", false);
		
		if ($connect_statut == "0minirezo") {
			echo icone_horizontale(_T('lien_nouvelle_annonce'),generer_action_auteur("editer_message","affich"), "annonce.gif", "", false);
		}
echo fin_cadre_relief(true);


# Affiche l'encadre "lien iCal"

 echo
    debut_cadre_enfonce('',true) .
    "<div class='verdana1'>"._T("calendrier_synchro") .
    "<table  class='cellule-h-table' cellpadding='0'><tr>\n" .
    "<td><a href='" . generer_url_ecrire("synchro") . "' class='ical'>&nbsp;</a></td>\n"
    . "<td class='cellule-h-lien'><br /><a href='" . generer_url_ecrire("synchro") . "' class='cellule-h'>" 
    . _T("icone_suivi_activite")
    . "</a></td>\n</tr></table>\n" ."</div>" .
    fin_cadre_enfonce(true);


 echo debut_droite("messagerie", true);

 $messages_vus = array();

 echo afficher_ses_messages('<b>' . _T('infos_vos_pense_bete') . '</b>', '', "id_auteur=$connect_id_auteur AND statut='publie' AND type='pb' AND (date_fin > DATE_SUB(".sql_quote(date('Y-m-d H:i:s')).", INTERVAL 1 DAY) OR rv != 'oui')", $messages_vus, false, true);


 echo afficher_ses_messages('<b>' . _T('info_nouveaux_message') . '</b>', ", spip_auteurs_messages AS lien", "lien.id_auteur=$connect_id_auteur AND vu='non' AND statut='publie' AND lien.id_message=messages.id_message", $messages_vus,  true, true);


 echo afficher_ses_messages('<b>' . _T('info_discussion_cours') . '</b>', ", spip_auteurs_messages AS lien", "lien.id_auteur=$connect_id_auteur AND statut='publie' AND type='normal' AND lien.id_message=messages.id_message AND (date_fin > DATE_SUB(".sql_quote(date('Y-m-d H:i:s')).", INTERVAL 1 DAY) OR rv != 'oui')",  $messages_vus, true, false);


// Afficher le lien RSS

echo bouton_spip_rss('messagerie', array('id_auteur' => $connect_id_auteur));



 echo afficher_ses_messages('<b>' . _T('info_message_en_redaction') . '</b>', '', "id_auteur=$connect_id_auteur AND statut='redac'",  $messages_vus, true, false);


 $result = sql_select('auteurs.id_auteur, auteurs.nom, COUNT(*) AS total', 'spip_auteurs AS auteurs,  spip_auteurs_messages AS lien2, spip_messages AS messages, spip_auteurs_messages AS lien', "(lien.id_auteur = $connect_id_auteur AND lien.id_message = messages.id_message AND messages.statut = 'publie' AND (messages.rv != 'oui' OR messages.date_fin > ".sql_quote(date('Y-m-d H:i:s'))." )) AND (lien2.id_auteur = lien2.id_auteur AND lien2.id_message = messages.id_message AND lien2.id_auteur != $connect_id_auteur AND auteurs.id_auteur = lien2.id_auteur)", "auteurs.id_auteur", 'total DESC', 10);

 $cor = array();
 while($row = sql_fetch($result)) {
		$id_auteur = $row['id_auteur'];
		$nom = typo($row["nom"]);
		$total = $row["total"];
		$cor[]= "<div class='tr_liste'\nonmouseover=\"changeclass(this,'tr_liste_over');\"\nonmouseout=\"changeclass(this,'tr_liste');\"\nstyle='padding: 2px; padding-left: 10px; border-bottom: 1px solid #cccccc;'><div class='verdana1'><img src='" . chemin_image('redac-12.gif') . "'\nstyle='border: 0px' alt=' ' /> <a href='" . generer_url_ecrire("auteur_infos","id_auteur=$id_auteur") . "'>$nom,</a> ($total)</div></div>";
 }

 if ($cor) {

	echo "<div style='height: 12px;'></div>";
	$bouton = bouton_block_depliable(_T('info_principaux_correspondants'),true,'principaux');
	echo debut_cadre('liste',"redacteurs-24.gif",'',$bouton);
	echo debut_block_depliable(true,'principaux');
	echo "<table width='100%' cellpadding='0' cellspacing='0'>";
	echo "<tr><td valign='top' style='width: 50%'>";
	$count = ceil(count($cor)/2);
	echo join("\n",array_slice($cor, 0, $count));
	echo "</td><td valign='top' style='width: 50%'>";
	echo join("\n",array_slice($cor, $count));
	echo "</td></tr></table>";
	echo fin_block();
	echo fin_cadre('liste');
 }

 echo afficher_ses_messages('<b>' . _T('info_pense_bete_ancien') . '</b>', '', "id_auteur=$connect_id_auteur AND statut='publie' AND type='pb' AND rv!='oui'",  $messages_vus, false, false);

 echo afficher_ses_messages('<b>' . _T('info_tous_redacteurs') . '</b>', '', "statut='publie' AND type='affich' AND (date_fin > DATE_SUB(".sql_quote(date('Y-m-d H:i:s')).", INTERVAL 1 DAY) OR rv != 'oui')",  $messages_vus, false, false);

echo fin_gauche(), fin_page();

}
Ejemplo n.º 30
0
function exec_mots_edit_args($id_mot, $id_groupe, $new, $table='', $table_id='', $titre='', $redirect='', $ajouter_id_article='')
{
	global $spip_lang_right, $connect_statut, $les_notes;

	$autoriser_editer = $editer = false;
	if ($new=='oui')
		$autoriser_editer = true;
	if (($new=='oui') OR $autoriser_editer)
		$editer = true;
	$ok = false;
	
	$row = sql_fetsel("*", "spip_mots", "id_mot=$id_mot");
	if ($row) {
		$id_mot = $row['id_mot'];
		$titre_mot = $row['titre'];
		$descriptif = $row['descriptif'];
		$texte = $row['texte'];
		$extra = $row['extra'];
		$id_groupe = $row['id_groupe'];
		$onfocus ='';
		$autoriser_editer = autoriser('modifier', 'mot', $id_mot, null, array('id_groupe' => $id_groupe));
		if (!_request('edit'))
			$editer = false;
		else
			$editer = $autoriser_editer;
		$ok = true;
	}
	else {
		$row = sql_countsel('spip_groupes_mots', 
			($table ? "tables_liees REGEXP '(^|,)$table($|,)'" : '')
			//($table ? "$table='oui'" : '')
				    );

		if (!$new OR !autoriser('modifier', 'mot', $id_mot, null, array('id_groupe' => $id_groupe)) OR (!$row AND !$table)) {
			include_spip('inc/minipres');
			echo minipres(_T('info_mot_sans_groupe'));
		} else {
			$id_mot = 0;
			$descriptif = $texte = '';
			if (!$row) {
		  // cas pathologique: 
		  // creation d'un mot sans groupe de mots cree auparavant
		  // (ne devrait arriver qu'en cas d'appel explicite ou
		  // destruction concomittante des groupes de mots idoines)
				if ($redirect)
					$redirect = '&redirect=' . $redirect;
				if ($titre)
					$titre = "&titre=".rawurlencode($titre);
				include_spip('inc/headers');
				redirige_par_entete(redirige_action_auteur('instituer_groupe_mots', $table, 'mots_edit', "new=$new&table=$table&table_id=$table_id&ajouter_id_article=$ajouter_id_article$titre$redirect", true));
			}
			$ok = true;
		}
	}
	if ($ok) {
		pipeline('exec_init',array('args'=>array('exec'=>'mots_edit','id_mot'=>$id_mot),'data'=>''));
		
		$commencer_page = charger_fonction('commencer_page', 'inc');
		$out = $commencer_page("&laquo; ".sinon($titre_mot,_T('texte_nouveau_mot'))." &raquo;", "naviguer", "mots") . debut_gauche('',true);


		//////////////////////////////////////////////////////
		// Boite "voir en ligne"
		//

		if ($id_mot) {
			$out .= debut_boite_info(true);
			$out .= "\n<div style='font-weight: bold; text-align: center' class='verdana1 spip_xx-small'>" 
			.  _T('titre_gauche_mots_edit')
			.  "<br /><span class='spip_xx-large'>"
			.  $id_mot
			.  '</span></div>';
			$out .= voir_en_ligne ('mot', $id_mot, false, 'racine-24.gif', false, false);
			$out .= fin_boite_info(true);
			
			// Logos du mot-clef
			$flag_editable = autoriser('modifier', 'mot', $id_mot, null, array('id_groupe' => $id_groupe));
			$iconifier = charger_fonction('iconifier', 'inc');
			$out .= $iconifier('id_mot', $id_mot, 'mots_edit', false, $flag_editable);
		} else $flag_editable = false;

		//
		// Afficher les boutons de creation 
		//

		$res ='';
		
		if ($id_groupe AND autoriser('modifier','groupemots',$id_groupe)) {
			$res = icone_horizontale(_T('icone_modif_groupe_mots'), generer_url_ecrire("mots_type","id_groupe=$id_groupe"), "groupe-mot-24.gif", "edit.gif", false)
			  . icone_horizontale(_T('icone_creation_mots_cles'), generer_url_ecrire("mots_edit", "new=oui&id_groupe=$id_groupe&redirect=" . generer_url_retour('mots_tous')),  "mot-cle-24.gif",  "creer.gif", false);
		}

	$out .= pipeline('affiche_gauche',array('args'=>array('exec'=>'mots_edit','id_mot'=>$id_mot),'data'=>''))
	.  bloc_des_raccourcis($res . icone_horizontale(_T('icone_voir_tous_mots_cles'), generer_url_ecrire("mots_tous",""), "mot-cle-24.gif", "rien.gif", false))
	.  creer_colonne_droite('',true)
	.  pipeline('affiche_droite',array('args'=>array('exec'=>'mots_edit','id_mot'=>$id_mot),'data'=>''))
	.  debut_droite('',true);

	
	// --- Voir le mot ----
	
	$out .= debut_cadre_relief("mot-cle-24.gif",true,'','','mot-voir',$editer?'none':'');
	if ($flag_editable)
		$out .= icone_inline(_T('icone_modifier_mot'), generer_url_ecrire('mots_edit',"id_mot=$id_mot&edit=oui"), "mot-cle-24.gif", "rien.gif",$spip_lang_right,false," onclick=\"$('#mot-editer').show();$('#mot-voir').hide();return false;\"");
	$out .= gros_titre(sinon($titre_mot,_T('texte_nouveau_mot')),'',false);
	$out .= "<div class='nettoyeur'></div>";
	
	$contenu_mot = "";

	if ($descriptif) {
		$contenu_mot .= "<div style='border: 1px dashed #aaaaaa; ' class='verdana1 spip_small'>"
		. "<b>" . _T('info_descriptif') . "</b> "
		. propre($descriptif)
		. "&nbsp; "
		. "</div>";
	}

	if (strlen($texte)>0){
		$contenu_mot .= "<p class='verdana1 spip_small'>"
		. propre($texte)
		. "</p>";
	}

	if ($les_notes) {
		$contenu_mot .= debut_cadre_relief('',true)
		. "<div dir='" . lang_dir() ."' class='arial11'>"
		. justifier("<b>"._T('info_notes')."&nbsp;:</b> ".$les_notes)
		. "</div>"
		. fin_cadre_relief(true);
	}
	
	$contexte = array('id'=>$id_mot);
	// permettre aux plugin de faire des modifs ou des ajouts
	$contenu_mot = pipeline('afficher_contenu_objet',
		array(
			'args'=>array(
				'type'=>'mot',
				'id_objet'=>$id_mot,
				'contexte'=>$contexte
			),
			'data'=> $contenu_mot
		)
	);
	$out .= $contenu_mot;

	if ($id_mot) {

		if ($connect_statut == "0minirezo")
			$aff_articles = "'prepa','prop','publie','refuse'";
		else
			$aff_articles = "'prop','publie'";

		$out .= afficher_objets('rubrique','<b>' . _T('info_rubriques_liees_mot') . '</b>', array("FROM" => 'spip_rubriques AS rubrique LEFT JOIN spip_mots_rubriques AS lien ON lien.id_rubrique=rubrique.id_rubrique', 'WHERE' => "lien.id_mot=$id_mot", 'ORDER BY' => "rubrique.titre"));

		$out .= afficher_objets('article',_T('info_articles_lies_mot'), array('FROM' => "spip_articles AS articles LEFT JOIN spip_mots_articles AS lien ON lien.id_article=articles.id_article", 'WHERE' => "lien.id_mot=$id_mot AND articles.statut IN ($aff_articles)", 'ORDER BY' => "articles.date DESC"));

		$out .= afficher_objets('breve','<b>' . _T('info_breves_liees_mot') . '</b>', array("FROM" => 'spip_breves AS breves LEFT JOIN spip_mots_breves AS lien ON lien.id_breve=breves.id_breve', 'WHERE' => "lien.id_mot=$id_mot", 'ORDER BY' => "breves.date_heure DESC"));

		$out .= afficher_objets('site','<b>' . _T('info_sites_lies_mot') . '</b>', array("FROM" => 'spip_syndic AS syndic LEFT JOIN spip_mots_syndic AS lien ON lien.id_syndic=syndic.id_syndic', 'WHERE' => "lien.id_mot=$id_mot", 'ORDER BY' => "syndic.nom_site DESC"));
		
	}

	$out .= pipeline('affiche_milieu',array('args'=>array('exec'=>'mots_edit','id_mot'=>$id_mot),'data'=>''))
	. fin_cadre_relief(true);

	// --- Editer le mot ----

	if ($autoriser_editer){
		$out .= "<div id='mot-editer'".($editer?"":" class='none'").'>';
		$contexte = array(
			'icone_retour'=>icone_inline(_T('icone_retour'),($editer AND $redirect)?rawurldecode($redirect): generer_url_ecrire('mots_edit','id_mot='.$id_mot,false,true), "mot-cle-24.gif", "rien.gif",$GLOBALS['spip_lang_left'],false,($editer AND $redirect)?"":" onclick=\"$('#mot-editer').hide();$('#mot-voir').show();return false;\""),
			'redirect'=>$redirect?rawurldecode($redirect):generer_url_ecrire('mots_edit','id_mot='.$id_mot,'&',true),
			'titre'=>sinon($titre_mot,$titre),
			'new'=>$new == "oui"?$new:$id_mot,
			'id_groupe'=>$id_groupe,
			'config_fonc'=>'mots_edit_config',
			'ajouter_id_article' => $ajouter_id_article,
			'table'=>$table,
			'table_id'=>$table_id
		);

		$out .= recuperer_fond("prive/editer/mot", $contexte);
		$out .= '</div>';

	}

	echo $out, fin_gauche(), fin_page();
	}
}