当前位置: 首页>>代码示例>>PHP>>正文


PHP extraire_multi函数代码示例

本文整理汇总了PHP中extraire_multi函数的典型用法代码示例。如果您正苦于以下问题:PHP extraire_multi函数的具体用法?PHP extraire_multi怎么用?PHP extraire_multi使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了extraire_multi函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: spip_avant_typo

function spip_avant_typo($letexte)
{
    $letexte = extraire_multi($letexte);
    if (@function_exists('avant_typo')) {
        return avant_typo($letexte);
    }
    return $letexte;
}
开发者ID:nyimbi,项目名称:legalcase,代码行数:8,代码来源:inc_text.php

示例2: url_nettoyer

function url_nettoyer($titre,$longueur_maxi,$longueur_min=0,$separateur='-',$filtre=''){
	if (!defined('_TRANSLITTERER_URL')) define('_TRANSLITTERER_URL', true);
	
	$titre = supprimer_tags(supprimer_numero(extraire_multi($titre)));
	$url = corriger_caracteres($titre);
	
	
	if (_TRANSLITTERER_URL) $url = translitteration($url);

	if ($filtre)
		$url = $filtre($url);

	// on va convertir tous les caracteres de ponctuation et espaces
	// a l'exception de l'underscore (_), car on veut le conserver dans l'url
	$url = str_replace('_', chr(7), $url);
	$url = @preg_replace(',[[:punct:][:space:]]+,u', ' ', $url);
	$url = str_replace(chr(7), '_', $url);

	// S'il reste trop de caracteres non latins, les gerer comme wikipedia
	// avec rawurlencode :
	if (_TRANSLITTERER_URL && preg_match_all(",[^a-zA-Z0-9 _]+,", $url, $r, PREG_SET_ORDER)) {
		foreach ($r as $regs) {
			$url = substr_replace($url, rawurlencode($regs[0]),
				strpos($url, $regs[0]), strlen($regs[0]));
		}
	}

	// S'il reste trop peu, renvoyer vide
	if (strlen($url) < $longueur_min)
		return '';

	// Sinon couper les mots et les relier par des $separateur
	if (_TRANSLITTERER_URL) $mots = preg_split(",[^a-zA-Z0-9_%]+,", $url); 
	else $mots = preg_split(",[\s]+,", $url);
	$url = '';
	foreach ($mots as $mot) {
		if (!strlen($mot)) continue;
		$url2 = $url.$separateur.$mot;

		// Si on depasse $longueur_maxi caracteres, s'arreter
		// ne pas compter 3 caracteres pour %E9 mais un seul
		$long = preg_replace(',%.,', '', $url2);
		if (strlen($long) > $longueur_maxi) {
			break;
		}

		$url = $url2;
	}
	$url = substr($url, 1);

	// On enregistre en utf-8 dans la base
	$url = rawurldecode($url);

	if (strlen($url) < $longueur_min)
		return '';
	return $url;
}
开发者ID:rhertzog,项目名称:lcs,代码行数:57,代码来源:editer_url.php

示例3: couper_intro3

	function couper_intro3($texte, $long, $suite) {
		$texte = extraire_multi(preg_replace(",(</?)intro>,i", "\\1intro>", $texte)); // minuscules
		$intro = '';
		while ($fin = strpos($texte, "</intro>")) {
			$zone = substr($texte, 0, $fin);
			$texte = substr($texte, $fin + strlen("</intro>"));
			if ($deb = strpos($zone, "<intro>") OR substr($zone, 0, 7) == "<intro>")
				$zone = substr($zone, $deb + 7);
			$intro .= $zone;
		}
		$texte = nettoyer_raccourcis_typo($intro ? $intro : $texte);
		return PtoBR(traiter_raccourcis(preg_replace(',([|]\s*)+,S', '; ', couper($texte, $long, _INTRODUCTION_CODE))));
	}
开发者ID:rhertzog,项目名称:lcs,代码行数:13,代码来源:introduction_fonctions.php

示例4: balise_ECATALOGUE_PRODUCT_CURRENCY_SIGN_dyn

function balise_ECATALOGUE_PRODUCT_CURRENCY_SIGN_dyn($id_article, $sign = 'sign_pre')
{
    require_once _DIR_PLUGIN_ECATALOGUE . 'classes/class.CurrencyModel.php';
    $currency_mdl = new CurrencyModel();
    // If some exceptions are thrown - return empty value
    try {
        $sign = $currency_mdl->GetCurrencySignByIdArticle($id_article, $sign);
    } catch (Exception $e) {
        $sign = '';
    }
    include_spip('inc/filtres');
    $sign = extraire_multi($sign);
    return array('balise/ecatalogue_product_currency_sign', 0, array('sign' => $sign));
}
开发者ID:foobar64,项目名称:spip-ecatalogue,代码行数:14,代码来源:ecatalogue_product_currency_sign.php

示例5: formulaires_ecrire_auteur_traiter_dist

function formulaires_ecrire_auteur_traiter_dist($id_auteur, $id_article, $mail)
{
    $adres = _request('email_message_auteur');
    $sujet = _request('sujet_message_auteur');
    $texte = _request('texte_message_auteur');
    $texte .= "\n\n-- " . _T('envoi_via_le_site') . " " . supprimer_tags(extraire_multi($GLOBALS['meta']['nom_site'])) . " (" . $GLOBALS['meta']['adresse_site'] . "/) --\n";
    $envoyer_mail = charger_fonction('envoyer_mail', 'inc');
    if ($envoyer_mail($mail, $sujet, $texte, $adres, "X-Originating-IP: " . $GLOBALS['ip'])) {
        $message['message_ok'] = _T('form_prop_message_envoye');
    } else {
        $message['message_erreur'] = _T('pass_erreur_probleme_technique');
    }
    return $message;
}
开发者ID:rougerose,项目名称:cfcpi,代码行数:14,代码来源:ecrire_auteur.php

示例6: geol_formulaire_charger

/**
 * Insertion dans le pipeline formulaire_charger (SPIP)
 * 
 * Surcharge du sujet et le texte du message généré par le formulaire_ecrire_auteur
 * Surcharge du formulaire d'inscription pour ne pas afficher l'explication
 * 
 * @param array $flux
 * @return array $flux
 */
function geol_formulaire_charger($flux)
{
    // sujet perso pour formulaire_ecrire_auteur depuis une page article (erreur de localisation)
    if ($flux['args']['form'] == 'ecrire_auteur' and $flux['args']['args'][1] != '') {
        $flux['data']['sujet_message_auteur'] .= supprimer_tags(extraire_multi($GLOBALS['meta']['nom_site'])) . " : " . _T('geol:sujet_erreur_localisation');
        $flux['data']['texte_message_auteur'] .= _T('geol:depuis_page') . " : " . generer_url_entite_absolue($flux['args']['args'][1], 'article') . "\n\nMessage :\n\n";
    }
    // pas d'explicaltion sur le form d'inscription
    if ($flux['args']['form'] == 'inscription' and $flux['args']['args'][0] == '1comite') {
        $flux['data']['_commentaire'] = '';
    }
    // limiter le form de polyhierarchie sur la branche des categories (dans le public)
    // cf http://zone.spip.org/trac/spip-zone/changeset/41280
    if ($flux['args']['form'] == 'editer_polyhierarchie' and !test_espace_prive()) {
        $flux['data']['limite_branche'] = lire_config('geol/secteur_categories', 2);
    }
    return $flux;
}
开发者ID:BenFer,项目名称:geodiversite,代码行数:27,代码来源:geol_pipelines.php

示例7: balise_ECATALOGUE_CURRENCY_SIGN_dyn

function balise_ECATALOGUE_CURRENCY_SIGN_dyn($currency_code = false, $sign = 'sign_pre')
{
    require_once _DIR_PLUGIN_ECATALOGUE . 'classes/class.CurrencyModel.php';
    $currency_mdl = new CurrencyModel();
    // If $currency_code isn't defined, current currency sign will be returned
    if (!$currency_code) {
        $currency = $currency_mdl->GetCurrentCurrency();
    } else {
        $currency = $currency_mdl->SelectByCode($currency_code);
    }
    //$sign = $currency[$sign];
    include_spip('inc/filtres');
    if ($currency) {
        $sign = extraire_multi($currency[$sign]);
    } else {
        $sign = '';
    }
    return array('balise/ecatalogue_currency_sign', 0, array('sign' => $sign));
}
开发者ID:foobar64,项目名称:spip-ecatalogue,代码行数:19,代码来源:ecatalogue_currency_sign.php

示例8: glossaire_verifie

function glossaire_verifie(&$c) {
	include_spip('public/parametrer'); // pour mes_fonctions
	$res = array();
	$c = count($gloss = glossaire_query_tab());
	for($i=0; $i<$c; $i++) for($j=$i+1; $j<$c; $j++) {
		$gi = &$gloss[$i]; $gj = &$gloss[$j];
		if(!isset($gi['mots']))
			list($gi['mots'],$gi['regs'],$gi['titre2']) = glossaire_parse(extraire_multi($gi['titre']));
		if(!isset($gj['mots']))
			list($gj['mots'],$gj['regs'],$gj['titre2']) = glossaire_parse(extraire_multi($gj['titre']));
		$u = false;
		$titre = $gi['mots']?glossaire_gogogo($gj['titre2'], $gi['mots'], -1, $u):'';
		if(count($gi['regs']))
			$titre .= preg_replace_callback($gi['regs'], "glossaire_echappe_mot_callback", $gj[titre], -1);
		if(strpos($titre,'@@GLOSS')!==false) {	
			$a = '['.$gi['titre'].'->mot'.$gi['id_mot'].']';
			$b = '['.$gj['titre'].'->mot'.$gj['id_mot'].']';
			$res[] = "&bull; "._T('couteauprive:glossaire_erreur', array('mot1'=>$a, 'mot2'=>$b))."\n_ ";
		}
	}
	if(count($res)) return propre(join('', $res)._T('couteauprive:glossaire_inverser'));
	return '';
}
开发者ID:rhertzog,项目名称:lcs,代码行数:23,代码来源:glossaire_action_rapide.php

示例9: afficher_forum_auteur

function afficher_forum_auteur($row)
{
	$titre=$row['titre'];
	$id_auteur=$row["id_auteur"];
	$date_heure=$row['date_heure'];
	$email_auteur=$row['email_auteur'];
	$auteur= extraire_multi($row['auteur']);

	if ($id_auteur) {
		$formater_auteur = charger_fonction('formater_auteur', 'inc');
		$res = join(' ',$formater_auteur($id_auteur));
	} else {
		if ($email_auteur) {
			if (email_valide($email_auteur))
				$email_auteur = "<a href='mailto:"
				.htmlspecialchars($email_auteur)
				."?subject=".rawurlencode($titre)."'>".$email_auteur
				."</a>";
			$auteur .= " &mdash; $email_auteur";
		}
		$res = safehtml("<span class='arial2'> / <b>$auteur</b></span>");
	}
	return "<div style='font-weight: normal;'>"
	  . date_interface($date_heure)
	  . "&nbsp;&nbsp;$res</div>";
}
开发者ID:rhertzog,项目名称:lcs,代码行数:26,代码来源:forum.php

示例10: formulaires_forum_charger_dist

function formulaires_forum_charger_dist(
$titre, $table, $type, $script,
$id_rubrique, $id_forum, $id_article, $id_breve, $id_syndic,
$ajouter_mot, $ajouter_groupe, $afficher_texte, $url_param_retour) {

	// exiger l'authentification des posteurs pour les forums sur abo
	if ($type == "abo") {
		if (!$GLOBALS["visiteur_session"]['statut']) {
			return array(
				'action' => '', #ne sert pas dans ce cas, on la vide pour mutualiser le cache
				'editable'=>false,
				'login_forum_abo'=>' ',
				'inscription' => generer_url_public('identifiants', 'lang='.$GLOBALS['spip_lang']),
				'oubli' => generer_url_public('spip_pass','lang='.$GLOBALS['spip_lang'],true),
				);
		}
	}

	// Tableau des valeurs servant au calcul d'une signature de securite.
	// Elles seront placees en Input Hidden pour que inc/forum_insert
	// recalcule la meme chose et verifie l'identite des resultats.
	// Donc ne pas changer la valeur de ce tableau entre le calcul de
	// la signature et la fabrication des Hidden
	// Faire attention aussi a 0 != ''

	// id_rubrique est parfois passee pour les articles, on n'en veut pas
	$ids = array();
	if ($id_rubrique > 0 AND ($id_article OR $id_breve OR $id_syndic))
		$id_rubrique = 0;
	foreach (array('id_article', 'id_breve', 'id_forum', 'id_rubrique', 'id_syndic') as $o) {
		$ids[$o] = ($x = intval($$o)) ? $x : '';
	}


	// ne pas mettre '', sinon le squelette n'affichera rien.
	$previsu = ' ';

	// au premier appel (pas de Post-var nommee "retour_forum")
	// memoriser eventuellement l'URL de retour pour y revenir apres
	// envoi du message ; aux appels suivants, reconduire la valeur.
	// Initialiser aussi l'auteur
	if ($retour_forum = rawurldecode(_request('retour')))
		$retour_forum =  str_replace('&var_mode=recalcul','',$retour_forum);
	else {
		// par defaut, on veut prendre url_forum(), mais elle ne sera connue
		// qu'en sortie, on inscrit donc une valeur absurde ("!")
		$retour_forum = "!";
		// sauf si on a passe un parametre en argument (exemple : {#SELF})
		if ($url_param_retour)
			$retour_forum = str_replace('&amp;', '&', $url_param_retour);
		$retour_forum = rawurlencode($retour_forum);
	}
	if (_request('retour_forum')){
		$arg = forum_fichier_tmp(join('', $ids));
		
		$securiser_action = charger_fonction('securiser_action', 'inc');
		// on sait que cette fonction est dans le fichier associe
		$hash = calculer_action_auteur("ajout_forum-$arg");
	}

	// pour les hidden
	$script_hidden = "";
	foreach ($ids as $id => $v)
		$script_hidden .= "<input type='hidden' name='$id' value='$v' />";
		
	$script_hidden .= "<input type='hidden' name='arg' value='$arg' />";
	$script_hidden .= "<input type='hidden' name='hash' value='$hash' />";
	$script_hidden .= "<input type='hidden' name='verif_".substr($hash,0,32)."' value='ok' />";
	$script_hidden .= "<input type='hidden' name='afficher_texte' value='$afficher_texte' />";
	$script_hidden .= "<input type='hidden' name='retour_forum' value='$retour_forum' />";

	// l'ajout de documents est-il autorise ?
	// cf. verifier.php
	if ($formats = forum_documents_acceptes()) {
		include_spip('inc/securiser_action');
		$cle_ajouter_document = calculer_cle_action('ajouter-document-'.join('-',array_map('intval',$ids)));
	}

	return array(
		'modere' => (($type != 'pri') ? '' : ' '),
		'nom_site' => '',
		'table' => $table,
		'texte' => '',
		'config' => array('afficher_barre' => ($GLOBALS['meta']['forums_afficher_barre']!='non'?' ':'')),
		'titre' => str_replace('~', ' ', extraire_multi($titre)),
		'action' => $script, # ce sur quoi on fait le action='...'
		'_hidden' => $script_hidden, # pour les variables hidden
		'url_site' => "http://",
		'cle_ajouter_document' => $cle_ajouter_document,
		'formats_documents_forum' => $formats,
		'ajouter_document' => $_FILES['ajouter_document']['name'],
		'nobot' => _request('nobot'),
		'ajouter_groupe' => $ajouter_groupe,
		'ajouter_mot' => (is_array($ajouter_mot) ? $ajouter_mot : array($ajouter_mot)),
		'id_forum' => $id_forum, // passer id_forum au formulaire pour lui permettre d'afficher a quoi l'internaute repond
		'_sign'=>implode('_',$ids)
	);
}
开发者ID:rhertzog,项目名称:lcs,代码行数:98,代码来源:forum.php

示例11: cs_rempl_glossaire

function cs_rempl_glossaire($texte, $liste=false) {
	global $gloss_id, $gloss_mots, $gloss_mots_id, $gloss_ech, $gloss_ech_id;
	// si [!glossaire] est trouve on sort
	if(strpos($texte, _CS_SANS_GLOSSAIRE)!==false)
		return $liste?array():str_replace(_CS_SANS_GLOSSAIRE, '', $texte);
	// mise en static de la table des mots pour eviter d'interrroger la base a chaque fois
	// attention aux besoins de memoire...
	static $limit, $glossaire_generer_url, $glossaire_generer_mot, $glossaire_array = NULL;
	if(!isset($glossaire_array)) {
		$glossaire_array = glossaire_query_tab();
		$glossaire_generer_url = function_exists('glossaire_generer_url')?'glossaire_generer_url':'glossaire_generer_url_dist';
		$limit = defined('_GLOSSAIRE_LIMITE')?_GLOSSAIRE_LIMITE:-1;
		$glossaire_generer_mot = function_exists('glossaire_generer_mot')
			?'glossaire_generer_mot(\'\\2\', $GLOBALS[\'gloss_mots\'][\\1])':'$GLOBALS[\'gloss_mots\'][\\1]'; // 'glossaire_generer_mot_dist(\'\\2\', $GLOBALS[\'gloss_mots\'][\\1])';
		$glossaire_generer_mot = '"<a $table1[\\2]_".$GLOBALS["gl_i"]++."\' class=\'cs_glossaire\'><span class=\'gl_mot\'>".'.$glossaire_generer_mot.'."</span>$table2[\\2]</a>"';
	}
	$unicode = false;
	$mem = $GLOBALS['toujours_paragrapher'];
	$GLOBALS['toujours_paragrapher'] = false;
	// initialisation des globales d'echappement
	$gloss_ech = $gloss_mots = array();
	$gloss_ech_id = $gloss_mots_id = 0;
	// prudence 1 : protection des liens SPIP
	if (strpos($texte, '[')!==false) 
		$texte = preg_replace_callback(',\[[^][]*->>?[^]]*\],msS', 'glossaire_echappe_balises_callback', $texte);
	// parcours de tous les mots, sauf celui qui peut faire partie du contexte (par ex : /spip.php?mot5)
	$mot_contexte=$GLOBALS['contexte']['id_mot']?$GLOBALS['contexte']['id_mot']:_request('id_mot');
	foreach ($glossaire_array as $mot) if (($gloss_id = $mot['id_mot']) <> $mot_contexte) {
		// parser le mot-cle du glossaire
		// contexte de langue a prendre en compte ici
		list($les_mots, $les_regexp, $les_titres) = glossaire_parse($titre=extraire_multi($mot['titre']));
		$mot_present = false;
		if(count($les_regexp)) {
			// a chaque expression reconnue, on pose une balise temporaire cryptee
			// ce remplacement est puissant, attention aux balises HTML ; par exemple, eviter : ,div,i
			$texte = preg_replace_callback($les_regexp, "glossaire_echappe_mot_callback", $texte, $limit);
			// TODO 1 : sous PHP 5.0, un parametre &$count permet de savoir si un remplacement a eu lieu
			// et s'il faut construire la fenetre de glossaire.
			// TODO 2 : decrementer le parametre $limit pour $les_mots, si &$count est renseigne.
			// en attendant, constuisons qd meme la fenetre...
			$mot_present = true;
		}
		if($les_mots) {
			if(preg_match(",\W(?:$les_mots)\W,i", " $texte ")) {
				$texte = glossaire_gogogo($texte, $les_mots, $limit, $unicode);
				$mot_present = true;
			}
		}
		// si un mot est trouve, on construit la fenetre de glossaire
		if($mot_present) {
			$lien = $glossaire_generer_url($gloss_id, $titre);
			// $definition =strlen($mot['descriptif'])?$mot['descriptif']:$mot['texte'];
			if($liste)
				$table1[$gloss_id] = array($gloss_id, $lien, $les_titres);
			else {
				$table1[$gloss_id] = "href='$lien' name='mot$gloss_id"; // name est complete plus tard pour eviter les doublons
				$table2[$gloss_id] = recuperer_fond(
					defined('_GLOSSAIRE_JS')?'fonds/glossaire_js':'fonds/glossaire_css', 
					array('id_mot' => $gloss_id, 'titre' => $les_titres, 
						'texte' => glossaire_safe($mot['texte']), 
						'descriptif' => glossaire_safe($mot['descriptif'])));
			}
		}
	}
	$GLOBALS['toujours_paragrapher'] = $mem;
	$GLOBALS['gl_i'] = 0;
	if($liste) $texte = (preg_match_all(',@@M(\d+)#(\d+)@@,', $texte, $reg, PREG_SET_ORDER) 
			&& array_walk($reg,
		create_function('&$v,$k,&$t1', '$v=array_merge(array($GLOBALS[\'gloss_mots\'][$v[1]]),$t1[$v[2]]);'), $table1)
		)?$reg:array();
	else {
		// remplacement des echappements
		$texte = preg_replace(',@@E(\d+)@@,e', '$GLOBALS[\'gloss_ech\'][\\1]', $texte);
		// remplacement final des balises posees ci-dessus
		$texte = preg_replace(',@@M(\d+)#(\d+)@@,e', $glossaire_generer_mot, $texte);
	}
	// nettoyage
	unset($gloss_id, $gloss_mots, $gloss_mots_id, $gloss_ech, $gloss_ech_id);
	return $texte;
}
开发者ID:rhertzog,项目名称:lcs,代码行数:80,代码来源:glossaire_fonctions.php

示例12: infos_courtes

 /**
  * Récupérer les infos utiles des paquet
  *
  * Crée un tableau de description pour chaque paquet dans une
  * écriture courte comme index ('i' pour identifiant) tel que :
  * - i = identifiant
  * - p = prefixe (en majuscule)
  * - n = nom du plugin
  * - v = version
  * - e = etat
  * - a = actif
  * - du = dépendances utilise
  * - dn = dépendances nécessite
  * - dl = dépendances librairie
  * - procure = prefixes procurés
  * - maj = mise à jour
  *
  *
  * On passe un where ($condition) et on crée deux tableaux, l'un des paquets
  * triés par identifiant, l'autre par prefixe.
  *
  * @param array|string $condition
  *     Condition where
  * @param bool $multiple
  *     Si multiple, le tableau par préfixe est un sous-tableau (il peut alors
  *     y avoir plusieurs paquets pour un même prefixe, classés par états décroissants)
  * @return array
  *     Index 'i' : plugins triés par identifiant en base [i][32] = tableau de description
  *     Index 'p' : plugins triés par prefixe de plugin [p][MOTS] = tableau de description
  *                 ou, avec $multiple=true : [p][MOTS][] = tableau de description
  */
 public function infos_courtes($condition, $multiple = false)
 {
     $plugs = array('i' => array(), 'p' => array());
     $from = array('spip_paquets AS pa', 'spip_plugins AS pl');
     $orderby = $multiple ? 'pa.etatnum DESC' : '';
     $where = array('pa.id_plugin = pl.id_plugin');
     if (is_array($condition)) {
         $where = array_merge($where, $condition);
     } else {
         $where[] = $condition;
     }
     include_spip('inc/filtres');
     // extraire_multi()
     $res = sql_allfetsel(array('pa.id_paquet AS i', 'pl.nom AS n', 'pl.prefixe AS p', 'pa.version AS v', 'pa.etatnum AS e', 'pa.compatibilite_spip', 'pa.dependances', 'pa.procure', 'pa.id_depot', 'pa.maj_version AS maj', 'pa.actif AS a'), $from, $where, '', $orderby);
     foreach ($res as $r) {
         $r['p'] = strtoupper($r['p']);
         // on s'assure du prefixe en majuscule.
         // savoir si un paquet est en local ou non...
         $r['local'] = $r['id_depot'] == 0 ? true : false;
         unset($r['id_depot']);
         $d = unserialize($r['dependances']);
         // voir pour enregistrer en bdd simplement 'n' et 'u' (pas la peine d'encombrer)...
         $deps = array('necessite' => array(array()), 'utilise' => array(array()), 'librairie' => array(array()));
         if (!$d) {
             $d = $deps;
         }
         unset($r['dependances']);
         if (!$r['procure'] or !($proc = unserialize($r['procure']))) {
             $proc = array();
         }
         $r['procure'] = $proc;
         /*
          * On extrait les multi sur le nom du plugin
          */
         $r['n'] = extraire_multi($r['n']);
         $plugs['i'][$r['i']] = $r;
         // pour chaque type de dependences... (necessite, utilise, librairie)
         // on cree un tableau unique [$dependence] = array()
         // au lieu de plusieurs tableaux par version de spip
         // en ne mettant dans 0 que ce qui concerne notre spip local
         foreach ($deps as $cle => $defaut) {
             if (!isset($d[$cle])) {
                 $d[$cle] = $defaut;
             }
             // gerer les dependences autres que dans 0 (communs ou local) !!!!
             // il peut exister des cles info[dn]["[version_spip_min;version_spip_max]"] de dependences
             if (!isset($d[$cle][0]) or count($d[$cle]) > 1) {
                 $dep = array();
                 $dep[0] = isset($d[$cle][0]) ? $d[$cle][0] : array();
                 unset($d[$cle][0]);
                 foreach ($d[$cle] as $version => $dependences) {
                     if (svp_verifier_compatibilite_spip($version)) {
                         $dep = array_merge($dep[0], $dependences);
                     }
                 }
                 $d[$cle] = $dep;
             }
         }
         // passer les prefixes en majuscule
         foreach ($d['necessite'][0] as $i => $n) {
             $d['necessite'][0][$i]['nom'] = strtoupper($n['nom']);
         }
         $plugs['i'][$r['i']]['dn'] = $d['necessite'][0];
         $plugs['i'][$r['i']]['du'] = $d['utilise'][0];
         $plugs['i'][$r['i']]['dl'] = $d['librairie'][0];
         if ($multiple) {
             $plugs['p'][$r['p']][] =& $plugs['i'][$r['i']];
             // alias
         } else {
//.........这里部分代码省略.........
开发者ID:xablen,项目名称:Semaine14_SPIP_test,代码行数:101,代码来源:svp_decider.php

示例13: controle_forum_boucle

function controle_forum_boucle($row, $args) {

	$id_forum = $row['id_forum'];
	$forum_id_parent = $row['id_parent'];
	$forum_id_rubrique = $row['id_rubrique'];
	$forum_id_article = $row['id_article'];
	$forum_id_breve = $row['id_breve'];
	$forum_date_heure = $row['date_heure'];
	$forum_titre = echapper_tags($row['titre']);
	$forum_texte = $row['texte'];
	$forum_auteur = echapper_tags(extraire_multi($row['auteur']));
	$forum_email_auteur = echapper_tags($row['email_auteur']);
	$forum_nom_site = echapper_tags($row['nom_site']);
	$forum_url_site = echapper_tags($row['url_site']);
	$forum_stat = $row['statut'];
	$forum_ip = $row['ip'];
	$forum_id_auteur = $row["id_auteur"];

	$r = forum_parent($id_forum);
	$avant = $r['avant'];
	$url = $r['url'];
	$titre = $r['titre'];
	$type = $r['type'];
	$valeur = $r['valeur'];
	$pref = $r['pref'];

	if ($documents = sql_allfetsel('doc.id_document, doc.fichier AS fichier', 'spip_documents AS doc LEFT JOIN spip_documents_liens AS lien ON doc.id_document=lien.id_document', 'lien.id_objet='.intval($id_forum)." AND objet='forum'")) {
		include_spip('inc/documents');
		foreach ($documents as $k => $t) {
			$h = generer_url_entite($t['id_document'], 'document');
			$documents[$k] = "<a href='".$h."'>".basename($t['fichier'])."</a>";
		}
	}

	switch($forum_stat) {
		case 'off':
		case 'privoff':
			$style = " style='border: 2px #ff0000 dashed;'";
			break;
		case 'prop':
			$style = " style='border: 2px yellow solid; background-color: white;'";
			break;
		case 'spam':
			$style = " style='border: 2px black dotted;'";
			break;
		default:
			$style = "";
			break;
	}

	if ($forum_email_auteur) {
		if (email_valide($forum_email_auteur))
			$forum_email_auteur = "<a href='mailto:"
			.htmlspecialchars($forum_email_auteur)
			."?subject=".rawurlencode($forum_titre)."'>".$forum_email_auteur
			."</a>";
		$forum_auteur .= " &mdash; $forum_email_auteur";
	}

	$suite = "\n<br />$avant<b>$pref\n<a href='$url' class='controle'>$titre</a></b>"  
	. "<div class='controle'>".justifier(propre($forum_texte))."</div>";
	include_spip('public/composer');
	if ($forum_notes = safehtml(calculer_notes()))
		$suite .= "<div class='notes controle'>".justifier(safehtml($forum_notes))."</div>";

	if (strlen($forum_url_site) > 10 AND strlen($forum_nom_site) >= 3)
		$suite .= "\n<div style='text-align: left' class='serif'><b><a href='$forum_url_site'>$forum_nom_site</a></b></div>";

	return 	"\n<div><br /><a id='forum$id_forum'></a></div>" .
	  debut_cadre_forum("", true, "", typo($forum_titre)) .
	  "<div$style>" .
	  date_interface($forum_date_heure) .
	  safehtml("<span class='arial2'> / <b>$forum_auteur</b></span>") .
	  boutons_controle_forum($id_forum, $forum_stat, $forum_id_auteur, "$type=$valeur", $forum_ip, 'controle_forum', $args) .
	  safehtml(lignes_longues($suite)) .
	  afficher_forum_mots($id_forum) .
	  join(', ', $documents) .
	  "<div class='nettoyeur'></div></div>".
	  fin_cadre_forum(true);
}
开发者ID:rhertzog,项目名称:lcs,代码行数:80,代码来源:controle_forum.php

示例14: corriger_typo

/**
 * http://code.spip.net/@corriger_typo
 *
 * @param string $t
 * @param string $lang
 * @return string
 */
function corriger_typo($t, $lang = '')
{
    static $typographie = array();
    // Plus vite !
    if (!$t) {
        return $t;
    }
    $t = pipeline('pre_typo', $t);
    // Caracteres de controle "illegaux"
    $t = corriger_caracteres($t);
    // Proteger les caracteres typographiques a l'interieur des tags html
    if (preg_match_all(_TYPO_BALISE, $t, $regs, PREG_SET_ORDER)) {
        foreach ($regs as $reg) {
            $insert = $reg[0];
            // hack: on transforme les caracteres a proteger en les remplacant
            // par des caracteres "illegaux". (cf corriger_caracteres())
            $insert = strtr($insert, _TYPO_PROTEGER, _TYPO_PROTECTEUR);
            $t = str_replace($reg[0], $insert, $t);
        }
    }
    // trouver les blocs multi et les traiter a part
    $t = extraire_multi($e = $t, $lang, true);
    $e = $e === $t;
    // Charger & appliquer les fonctions de typographie
    $idxl = "{$lang}:" . (isset($GLOBALS['lang_objet']) ? $GLOBALS['lang_objet'] : $GLOBALS['spip_lang']);
    if (!isset($typographie[$idxl])) {
        $typographie[$idxl] = charger_fonction(lang_typo($lang), 'typographie');
    }
    $t = $typographie[$idxl]($t);
    // Les citations en une autre langue, s'il y a lieu
    if (!$e) {
        $t = echappe_retour($t, 'multi');
    }
    // Retablir les caracteres proteges
    $t = strtr($t, _TYPO_PROTECTEUR, _TYPO_PROTEGER);
    // pipeline
    $t = pipeline('post_typo', $t);
    # un message pour abs_url - on est passe en mode texte
    $GLOBALS['mode_abs_url'] = 'texte';
    return $t;
}
开发者ID:genma,项目名称:spip_ynh,代码行数:48,代码来源:texte.php

示例15: spiplistes_meleuse


//.........这里部分代码省略.........
		
		// prendre la premiere etiquette sur le tas et traiter son courrier
		$sql_courrier_select = array(
			'titre', 'texte', 'message_texte', 'type'
			, 'id_courrier', 'id_liste', 'email_test', 'total_abonnes', 'date_debut_envoi'
			);
		if($id_courrier = 
			intval(spiplistes_courriers_en_queue_premier('id_courrier', 'etat='.$sql_vide))
		) {
			$sql_courrier_a_traiter = spiplistes_courriers_casier_premier(
				  $sql_courrier_select
				, 'id_courrier='.sql_quote($id_courrier)
			);
			spiplistes_debug_log ($prefix_log.'etiquette en cours pour id_courrier #'.$id_courrier);
		} else {
			// un vieux bug dans une ancienne version, eradique depuis (j'espere ;-)
			//spiplistes_log($prefix_log."premiere etiquette en erreur. id_courier = 0. Supprimer cette etiquette manuellement !");
			spiplistes_log(_T('spiplistes:erreur_queue_supprimer_courrier'
							  , array('s' => $prefix_log))
						   );
		}
		
		// boucle (sur LIMIT 1) pour pouvoir sortir par break si erreur
		while($row = sql_fetch($sql_courrier_a_traiter)) {
		
			foreach($sql_courrier_select as $key) {
				$$key = $row[$key];
			}
			foreach(array('id_courrier','id_liste','total_abonnes') as $key) {
				$$key = intval($$key);
			}
			// objet (subject) ne peut pas être en html ?!
			// sauf pour le webmail (et encore)
			$objet_html = filtrer_entites(typo(spiplistes_calculer_balise_titre(extraire_multi($titre))));
			$page_html = stripslashes($texte);
			$message_texte = stripslashes($message_texte);
			
			$nb_emails = array();
			
			// compteur pour la session uniquement
			// le total de chaque sera ajoute en fin de session
			$nb_emails_envoyes =
				$nb_emails_echec = 
				$nb_emails_non_envoyes = 
				$nb_emails['texte'] = 
				$nb_emails['html'] = 0
				;
			
			$str_log = 'id_courrier #'.$id_courrier;
			
			//////////////////////////
			// Determiner email de l emetteur
			if($is_a_test = email_valide($email_test)) {
				// courrier a destination adresse email de test
				$str_log .= ' TO: '.$email_test.' (TEST)';
			} 
			else if($id_liste > 0) {
				// courrier a destination des abonnes d'une liste
				$total_abonnes = spiplistes_listes_nb_abonnes_compter($id_liste);
				$str_log .= ' TO id_liste #'.$id_liste.' ('.$total_abonnes.' users)';
	
				$lang = spiplistes_listes_langue($id_liste);

				if($lang != '') {
					$GLOBALS['spip_lang'] = $lang;
				}
开发者ID:rhertzog,项目名称:lcs,代码行数:67,代码来源:spiplistes_meleuse.php


注:本文中的extraire_multi函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。