function genie_ajouter_date_redac_articles_dist($t)
{
    //spip_log("Mon travail c est juste une ligne de log....",_LOG_INFO_IMPORTANTE);
    // echo "1";
    if ($resultats = sql_select("*", "spip_articles", "id_secteur=115 AND statut='publie' AND date_redac=0000-00-00")) {
        // boucler sur les resultats
        while ($res = sql_fetch($resultats)) {
            // utiliser les resultats
            // hierarchie des rubriques de l'article via la fonction de spip
            include_spip("inc/rubriques");
            $hierarchie = calcul_hierarchie_in($res['id_rubrique'], true);
            // la date_numero et l'id_rubrique de la rubrique Numéro.
            $numero = sql_fetsel("date_numero,id_rubrique", "spip_rubriques", array(sql_in('id_rubrique', $hierarchie), 'profondeur=1'));
            // la date du numéro est à 0. On ne vérifie que l'année (?)
            if (substr($numero['date_numero'], 0, 4) == '0000') {
                spip_log("Article #" . $res['id_article'] . " : la date_redac n'a pas pu être modifiée. La rubrique #" . $numero['id_rubrique'] . " correspondant au numéro n'a pas de date valide.", 'vacarme_cron' . _LOG_INFO_IMPORTANTE);
                // return 1; // 0 ou 1 ?
            } else {
                spip_log("Mise à jour de l'article #" . $res['id_article'], 'vacarme_cron' . _LOG_INFO_IMPORTANTE);
                sql_updateq("spip_articles", array('date_redac' => $numero['date_numero']), "id_article=" . intval($res['id_article']));
                // return 1;
            }
        }
    }
    return 1;
}
/**
 * Autorisation d'ajout d'un evenement a un article
 *
 * @param string $faire
 * @param string $quoi
 * @param int $id
 * @param int $qui
 * @param array $options
 * @return bool
 */
function autoriser_article_creerevenementdans_dist($faire, $quoi, $id, $qui, $options)
{
    if (!$id) {
        return false;
        // interdit de creer un evenement sur un article vide !
    }
    // si on a le droit de modifier l'article alors on a peut-etre le droit d'y creer un evenement
    $afficher = false;
    if (autoriser('modifier', 'article', $id, $qui)) {
        $afficher = true;
        // un article avec des evenements a toujours le droit
        if (!sql_countsel('spip_evenements', array('id_article=' . intval($id)), sql_in('statut', array('prop', 'publie')))) {
            // si au moins une rubrique a le flag agenda
            if (sql_countsel('spip_rubriques', 'agenda=1')) {
                // alors il faut le flag agenda dans cette branche !
                $afficher = false;
                include_spip('inc/rubriques');
                $id_rubrique = sql_getfetsel('id_rubrique', 'spip_articles', 'id_article=' . intval($id));
                if ($id_rubrique > 0) {
                    // Rubriques classiques de SPIP
                    $in = calcul_hierarchie_in($id_rubrique);
                    $afficher = sql_countsel('spip_rubriques', sql_in('id_rubrique', $in) . ' AND agenda=1');
                } else {
                    // Rubrique négative utilisee dans le plugin Page unique
                    $afficher = true;
                }
            }
        }
    }
    return $afficher;
}
示例#3
0
/**
 * Inserer les infos d'agenda sur les articles et rubriques
 *
 * @param array $flux
 * @return array
 */
function agenda_affiche_milieu($flux)
{
    $e = trouver_objet_exec($flux['args']['exec']);
    $out = "";
    if ($e['type'] == 'rubrique' and autoriser('configurer') and $e['edition'] == false and $id_rubrique = intval($flux['args']['id_rubrique']) and autoriser('modifier', 'rubrique', $id_rubrique)) {
        $activer = true;
        $res = "";
        $actif = sql_getfetsel('agenda', 'spip_rubriques', 'id_rubrique=' . intval($id_rubrique));
        $statut = "-32";
        $alt = "";
        $voir = "";
        if (!sql_countsel('spip_rubriques', 'agenda=1')) {
            $res .= "<span class='small'>" . _T('agenda:aucune_rubrique_mode_agenda') . "</span><br />";
        } else {
            include_spip('inc/rubriques');
            if (sql_countsel('spip_rubriques', sql_in('id_rubrique', calcul_hierarchie_in($id_rubrique)) . " AND agenda=1 AND id_rubrique<>" . intval($id_rubrique))) {
                $alt = _T('agenda:rubrique_dans_une_rubrique_mode_agenda');
                $activer = false;
                $statut = "-ok-32";
                $voir = _T('agenda:voir_evenements_rubrique');
            } elseif (!$actif) {
                $alt = _T('agenda:rubrique_sans_gestion_evenement') . '<br />';
                $statut = "-non-32";
            }
            if ($actif) {
                $alt = _T('agenda:rubrique_mode_agenda') . '<br />';
                $statut = "-ok-32";
                $voir = _T('agenda:voir_evenements_rubrique');
            }
        }
        if (!$actif) {
            if ($activer) {
                $res .= bouton_action(_T('agenda:rubrique_activer_agenda'), generer_action_auteur('activer_agenda_rubrique', $id_rubrique, self()), 'ajax');
            }
        } else {
            $res .= bouton_action(_T('agenda:rubrique_desactiver_agenda'), generer_action_auteur('activer_agenda_rubrique', "-{$id_rubrique}", self()), 'ajax');
        }
        if ($voir) {
            $res .= " | <a href='" . generer_url_ecrire('evenements', "id_rubrique={$id_rubrique}") . "'>{$voir}</a>";
        }
        if ($res) {
            $out .= boite_ouvrir(_T('agenda:agenda') . http_img_pack("agenda{$statut}.png", $alt, "class='statut'", $alt), 'simple agenda-statut') . $res . boite_fermer();
        }
    } elseif ($e['type'] == 'article' and $e['edition'] == false) {
        $id_article = $flux['args']['id_article'];
        $out .= recuperer_fond('prive/objets/contenu/article-evenements', $flux['args']);
    }
    if ($out) {
        if ($p = strpos($flux['data'], '<!--affiche_milieu-->')) {
            $flux['data'] = substr_replace($flux['data'], $out, $p, 0);
        } else {
            $flux['data'] .= $out;
        }
    }
    return $flux;
}
function BOUCLE_rubriques_cheminhtml_0caead67327defaf94febb642f511490(&$Cache, &$Pile, &$doublons, &$Numrows, $SP)
{
    static $command = array();
    static $connect;
    $command['connect'] = $connect = '';
    if (!($id_rubrique = intval($Pile[$SP]['id_rubrique']))) {
        return '';
    }
    include_spip('inc/rubriques');
    $hierarchie = calcul_hierarchie_in($id_rubrique, true);
    if (!$hierarchie) {
        return "";
    }
    if (!isset($command['table'])) {
        $command['table'] = 'rubriques';
        $command['id'] = '_rubriques_chemin';
        $command['from'] = array('rubriques' => 'spip_rubriques');
        $command['type'] = array();
        $command['groupby'] = array();
        $command['select'] = array("rubriques.id_rubrique", "rubriques.titre", "rubriques.lang");
        $command['join'] = array();
        $command['limit'] = '';
        $command['having'] = array();
    }
    $command['orderby'] = array("FIELD(rubriques.id_rubrique, {$hierarchie})");
    $command['where'] = array(array('IN', 'rubriques.id_rubrique', "({$hierarchie})"));
    if (defined("_BOUCLE_PROFILER")) {
        $timer = time() + microtime();
    }
    $t0 = "";
    // REQUETE
    $iter = IterFactory::create("SQL", $command, array('squelettes/rubrique.html', 'html_0caead67327defaf94febb642f511490', '_rubriques_chemin', 29, $GLOBALS['spip_lang']));
    if (!$iter->err()) {
        lang_select($GLOBALS['spip_lang']);
        $SP++;
        // RESULTATS
        while ($Pile[$SP] = $iter->fetch()) {
            lang_select_public($Pile[$SP]['lang'], '', $Pile[$SP]['titre']);
            $t0 .= '
		<b class=\'separateur\'>&gt;</b> 
		<a href="' . spip_htmlspecialchars(sinon($GLOBALS['meta']['adresse_site'], '.')) . '/' . vider_url(urlencode_1738(generer_url_entite($Pile[$SP]['id_rubrique'], 'rubrique', '', '', true))) . '">' . interdire_scripts(couper(supprimer_numero(typo(supprimer_numero($Pile[$SP]['titre']), "TYPO", $connect, $Pile[0])), '60')) . '</a>
	';
            lang_select();
        }
        lang_select();
        $iter->free();
    }
    if (defined("_BOUCLE_PROFILER") and 1000 * ($timer = time() + microtime() - $timer) > _BOUCLE_PROFILER) {
        spip_log(intval(1000 * $timer) . "ms BOUCLE_rubriques_chemin @ squelettes/rubrique.html", "profiler" . _LOG_AVERTISSEMENT);
    }
    return $t0;
}
function BOUCLE_rubriques_cheminhtml_2ac554317f8f8f8aa21871c007ab234d(&$Cache, &$Pile, &$doublons, &$Numrows, $SP)
{
    static $command = array();
    static $connect;
    $command['connect'] = $connect = '';
    if (!($id_rubrique = intval(@$Pile[0]['id_rubrique']))) {
        return '';
    }
    include_spip('inc/rubriques');
    $hierarchie = calcul_hierarchie_in($id_rubrique, false);
    if (!$hierarchie) {
        return "";
    }
    if (!isset($command['table'])) {
        $command['table'] = 'rubriques';
        $command['id'] = '_rubriques_chemin';
        $command['from'] = array('rubriques' => 'spip_rubriques');
        $command['type'] = array();
        $command['groupby'] = array();
        $command['select'] = array("rubriques.id_rubrique", "rubriques.titre", "rubriques.lang");
        $command['join'] = array();
        $command['limit'] = '';
        $command['having'] = array();
    }
    $command['orderby'] = array("FIELD(rubriques.id_rubrique, {$hierarchie})");
    $command['where'] = array(quete_condition_statut('rubriques.statut', '!', 'publie', ''), array('IN', 'rubriques.id_rubrique', "({$hierarchie})"));
    if (defined("_BOUCLE_PROFILER")) {
        $timer = time() + microtime();
    }
    $t0 = "";
    // REQUETE
    $iter = IterFactory::create("SQL", $command, array('squelettes/inc/inc-bas.html', 'html_2ac554317f8f8f8aa21871c007ab234d', '_rubriques_chemin', 18, $GLOBALS['spip_lang']));
    if (!$iter->err()) {
        lang_select($GLOBALS['spip_lang']);
        $SP++;
        // RESULTATS
        while ($Pile[$SP] = $iter->fetch()) {
            lang_select_public($Pile[$SP]['lang'], '', $Pile[$SP]['titre']);
            $t1 = '
		<a href="' . interdire_scripts(generer_url_public('backend', 'id_rubrique=' . $Pile[$SP]['id_rubrique'])) . '" rel="nofollow" title="' . _T('public|spip|ecrire:syndiquer_rubrique') . '"><img src="' . find_in_path('styles/img/rss.png') . '" alt="' . _T('public|spip|ecrire:icone_suivi_activite') . '" style="position:relative;bottom:-0.3em;" width="16" height="16" class="format_png" /><span>&nbsp;' . interdire_scripts(couper(supprimer_numero(typo(supprimer_numero($Pile[$SP]['titre']), "TYPO", $connect, $Pile[0])), '60')) . '&nbsp;</span></a>
';
            $t0 .= (strlen($t1) && strlen($t0) ? ' ' : '') . $t1;
            lang_select();
        }
        lang_select();
        $iter->free();
    }
    if (defined("_BOUCLE_PROFILER") and 1000 * ($timer = time() + microtime() - $timer) > _BOUCLE_PROFILER) {
        spip_log(intval(1000 * $timer) . "ms BOUCLE_rubriques_chemin @ squelettes/inc/inc-bas.html", "profiler" . _LOG_AVERTISSEMENT);
    }
    return $t0;
}
示例#6
0
/**
 * Autorisation d'ajout d'un evenement a un article
 *
 * @param string $faire
 * @param string $quoi
 * @param int $id
 * @param int $qui
 * @param array $options
 * @return bool
 */
function autoriser_article_creerevenementdans_dist($faire,$quoi,$id,$qui,$options){
	if (!$id) return false; // interdit de creer un evenement sur un article vide !
	// si on a le droit de modifier l'article alors on a peut-etre le droit d'y creer un evenement
	$afficher = false;
	if (autoriser('modifier','article',$id,$qui)) {
		$afficher = true;
		// un article avec des evenements a toujours le droit
		if (!sql_countsel('spip_evenements','id_article='.intval($id))){
			// si au moins une rubrique a le flag agenda
			if (sql_countsel('spip_rubriques','agenda=1')){
				// alors il faut le flag agenda dans cette branche !
				$afficher = false;
				include_spip('inc/agenda_gestion');
				$in = calcul_hierarchie_in(sql_getfetsel('id_rubrique','spip_articles','id_article='.intval($id)));
				$afficher = sql_countsel('spip_rubriques',sql_in('id_rubrique',$in)." AND agenda=1");
			}
		}
	}
	return $afficher;
}
示例#7
0
function agenda_affiche_milieu($flux) {
	$exec =  $flux['args']['exec'];
	
	if ($exec=='naviguer'
	  AND $id_rubrique = intval($flux['args']['id_rubrique'])){
		$activer = true;
		$res = "";
		$actif = sql_getfetsel('agenda','spip_rubriques','id_rubrique='.intval($id_rubrique));
		$statut="-48";
		$voir = "";
		if (!sql_countsel('spip_rubriques','agenda=1'))
			$res .= _T('agenda:aucune_rubrique_mode_agenda').'<br />';
		else {
			include_spip('inc/agenda_gestion');
			if (sql_countsel('spip_rubriques',sql_in('id_rubrique',calcul_hierarchie_in($id_rubrique))." AND agenda=1 AND id_rubrique<>".intval($id_rubrique))){
				$res .= _T('agenda:rubrique_dans_une_rubrique_mode_agenda').'<br />';
				$activer = false;
				$statut="-ok-48";
				$voir = _T('agenda:voir_evenements_rubrique');
			}
			elseif(!$actif) {
				$res .= _T('agenda:rubrique_sans_gestion_evenement').'<br />';
				$statut="-non-24";
			}
			if ($actif){
				$res .= _T('agenda:rubrique_mode_agenda').'<br />';
				$statut="-ok-48";
				$voir = _T('agenda:voir_evenements_rubrique');
			}
		}

		if (!$actif){
			if($activer){
				$res .= "<a href='".generer_action_auteur('rubrique_activer_agenda',$id_rubrique,self())."'>"._T('agenda:rubrique_activer_agenda').'</a>';
			}
		}
		else
			$res .= "<a href='".generer_action_auteur('rubrique_activer_agenda',"-$id_rubrique",self())."'>"._T('agenda:rubrique_desactiver_agenda').'</a>';
		if ($voir)
			$res .= "<p><a href='".generer_url_ecrire('calendrier',"id_rubrique=$id_rubrique")."'>$voir</a></p>";
		if ($res)
			$flux['data'] .= "<div class='verdana2'><img src='".find_in_path("img_pack/agenda$statut.png")."' class='agenda-statut' alt='' />$res<div class='nettoyeur'></div></div>";
	}
	elseif ($exec=='articles'){
		$id_article = $flux['args']['id_article'];
		$afficher = autoriser('creerevenementdans','article',$id_article);
		if ($afficher) {
			$contexte = array();
			foreach($_GET as $key=>$val)
				$contexte[$key] = $val;
			 $evenements = recuperer_fond('prive/contenu/evenements_article',$contexte);
			 $flux['data'] .= $evenements;
		}
	}
	elseif ($exec=='mots_edit'){
		$id_mot = $flux['args']['id_mot'];
		foreach($_GET as $key=>$val)
			$contexte[$key] = $val;
	 $evenements = recuperer_fond('prive/contenu/agenda_evenements',$contexte);
	 $flux['data'] .= $evenements;
	}
	return $flux;
}
function BOUCLE_hierarchie_courantehtml_45166f6eb7325e525d28cc393d05e614(&$Cache, &$Pile, &$doublons, &$Numrows, $SP)
{
    static $command = array();
    static $connect;
    $command['connect'] = $connect = '';
    if (!($id_rubrique = intval($Pile[$SP]['id_rubrique']))) {
        return '';
    }
    include_spip('inc/rubriques');
    $hierarchie = calcul_hierarchie_in($id_rubrique, true);
    if (!$hierarchie) {
        return "";
    }
    if (!isset($command['table'])) {
        $command['table'] = 'rubriques';
        $command['id'] = '_hierarchie_courante';
        $command['from'] = array('rubriques' => 'spip_rubriques');
        $command['type'] = array();
        $command['groupby'] = array();
        $command['select'] = array("rubriques.id_parent", "rubriques.lang", "rubriques.titre");
        $command['join'] = array();
        $command['limit'] = '';
        $command['having'] = array();
    }
    $command['orderby'] = array("FIELD(rubriques.id_rubrique, {$hierarchie})");
    $command['where'] = array(array('IN', 'rubriques.id_rubrique', "({$hierarchie})"));
    if (defined("_BOUCLE_PROFILER")) {
        $timer = time() + microtime();
    }
    $t0 = "";
    // REQUETE
    $iter = IterFactory::create("SQL", $command, array('squelettes/inc/inc-menu.html', 'html_45166f6eb7325e525d28cc393d05e614', '_hierarchie_courante', 21, $GLOBALS['spip_lang']));
    if (!$iter->err()) {
        lang_select($GLOBALS['spip_lang']);
        $SP++;
        // RESULTATS
        while ($Pile[$SP] = $iter->fetch()) {
            lang_select_public($Pile[$SP]['lang'], '', $Pile[$SP]['titre']);
            $t0 .= '
        ' . BOUCLE_parentshtml_45166f6eb7325e525d28cc393d05e614($Cache, $Pile, $doublons, $Numrows, $SP) . '
   ';
            lang_select();
        }
        lang_select();
        $iter->free();
    }
    if (defined("_BOUCLE_PROFILER") and 1000 * ($timer = time() + microtime() - $timer) > _BOUCLE_PROFILER) {
        spip_log(intval(1000 * $timer) . "ms BOUCLE_hierarchie_courante @ squelettes/inc/inc-menu.html", "profiler" . _LOG_AVERTISSEMENT);
    }
    return $t0;
}