Example #1
0
function traiter_ressources($r)
{
    $html = null;
    if ($ressource = charger_fonction('ressource', 'inc', true)) {
        $html = $ressource($r[0]);
    }
    if (is_null($html)) {
        include_spip('inc/lien');
        $url = explode(' ', trim($r[0], '<>'));
        $url = $url[0];
        # <http://url/absolue>
        if (preg_match(',^https?://,i', $url)) {
            $html = PtoBR(propre("<span class='ressource spip_out'>&lt;[->" . $url . "]&gt;</span>"));
        } else {
            if (false !== strpos($url, '/')) {
                $html = PtoBR(propre("<span class='ressource spip_in'>&lt;[->" . $url . "]&gt;</span>"));
            } else {
                preg_match(',\\.([^.]+)$,', $url, $regs);
                if (file_exists($f = _DIR_IMG . $regs[1] . '/' . $url)) {
                    $html = PtoBR(propre("<span class='ressource spip_in'>&lt;[" . $url . "->" . $f . "]&gt;</span>"));
                } else {
                    $html = PtoBR(propre("<span class='ressource'>&lt;" . $url . "&gt;</span>"));
                }
            }
        }
    }
    return '<html>' . $html . '</html>';
}
Example #2
0
function cs_introduction($texte, $descriptif, $lgr, $id, $racc, $connect) {
	@define('_INTRODUCTION_LGR', 100);
	// fonction couper_intro
	$couper = $GLOBALS['cs_couper_intro'];
	if (strlen($descriptif))
		# si descriptif contient juste des espaces ca produit une intro vide, 
		# c'est une fonctionnalite, pas un bug
		// ici le descriptif est coupe s'il est trop long
		$texte = $lgr<0?propre($couper($descriptif, -$lgr, _INTRODUCTION_CODE)):propre($descriptif);
	else {
		// pas de maths dans l'intro...
		$texte = preg_replace(',<math>.*</math>,imsU', '', $texte);
		// on coupe proprement...
		$lgr = $lgr>0?round($lgr*_INTRODUCTION_LGR/100):-$lgr;
		$texte = PtoBR(propre(supprimer_tags($couper(cs_introduire($texte), $lgr, _INTRODUCTION_CODE))));
	}
	// si les points de suite ont ete ajoutes
	return remplace_points_de_suite($texte, $id, $racc);
} // introduction()
Example #3
0
function legender_corps($ancre, $flag, $id, $id_document, $script, $type, $document, $label, $taille)
{
	include_spip('inc/editer');

	$contenu = '';
	$descriptif = $document['descriptif'];
	if ($descriptif)
	  $contenu .=  "<p>".PtoBR(lignes_longues(propre($descriptif),25)) . "</p>\n";
	if ($document['largeur'] OR $document['hauteur'])
	  $contenu .= _T('info_largeur_vignette',
		     array('largeur_vignette' => $document['largeur'],
			   'hauteur_vignette' => $document['hauteur']))
			 . ' &mdash; ';

	  $contenu .= taille_en_octets($document['taille']);

	$date = $document['date'];
	if ($date AND ($GLOBALS['meta']["documents_date"] == 'oui'))
		$contenu .= "<br />\n" . affdate($date);

	$corps = (!$contenu ? '' :
		  "<div class='verdana1' style='text-align: center; margin-bottom: 10px;'>$contenu</div>") .
	  "<div class='formulaire_spip formulaire_spip_compact'><ul><li class='editer_titre'><label for='titre_document$id_document'>$label</label>\n" .

	  "<input type='text' name='titre_document' id='titre_document$id_document' class='text' value=\"".entites_html($document['titre']).
	  "\" size='40'	onfocus=\"changeVisible(true, 'valider_doc$id_document', 'block', 'block');\" /></li>\n"
	  . (($GLOBALS['meta']["documents_date"] == 'oui')
	  	? "<li class='editer_date'>".date_formulaire_legender($date, $id_document)."</li>"
	  	:'' )
	  . "<li class='editer_descriptif'><label for='descriptif_document$id_document'>".
	  _T('info_description_2').
	  "</label>\n" .
	  "<textarea name='descriptif_document' id='descriptif_document$id_document' rows='4' class='textarea' cols='*' onfocus=\"changeVisible(true, 'valider_doc$id_document', 'block', 'block');\">" .
	    entites_html($descriptif) .
	  "</textarea></li></ul></div>\n" .
	  $taille
	  
	  .controles_md5($document);

	$att_bouton = "";

	$att_span = " id='valider_doc$id_document' "
	. ($flag == 'ajax' ? '' : "class='display_au_chargement'")
	.  " style='text-align:"
	.  $GLOBALS['spip_lang_right']
	. ($flag == 'ajax' ? ';display:block' : "")
	. "'";

	if (test_espace_prive())
		return ajax_action_post("legender", $id_document, $script, "show_docs=$id_document&id_$type=$id#legender-$id_document", $corps, _T('bouton_enregistrer'), $att_bouton, $att_span, "&id_document=$id_document&id=$id&type=$type&ancre=$ancre")
		  . "<div class='nettoyeur'></div>";
	else {
		$corps = "<div class='boutons'>"
		       . $corps 
		       . "<span"
		       . $att_span
		       . "><input type='submit' value='"
		       . _T('bouton_enregistrer')
		       ."' /></span></div>";
		$redirect = parametre_url($script,'show_docs',$id_document,'&');
		$redirect = parametre_url($redirect,"id_$type",$id,'&');
		$redirect = parametre_url($redirect,"id_$type",$id,'&');
		$redirect = ancre_url($redirect,"legender-$id_document");
		return generer_action_auteur("legender", $id_document, $redirect, $corps, "\nmethod='post'");
	}
}
Example #4
0
/**
 * Retourne un texte HTML présentant les crédits d'un plugin 
 *
 * Des liens vers les crédits sont présents lorsqu'ils sont déclarés
 * dans le paquet.xml.
 * 
 * @param string $balise_serialisee
 *     Informations des crédits (tableau sérialisé) tel que stocké
 *     en base dans la table spip_paquets
 * @param string $sep
 *     Séparateur entre les différents crédits
 * @return string
 *     Texte informant des crédits
**/
function svp_afficher_credits($balise_serialisee, $sep = ', ')
{
    $texte = '';
    $credits = unserialize($balise_serialisee);
    if (is_array($credits)) {
        foreach ($credits as $_credit) {
            if ($texte) {
                $texte .= $sep;
            }
            // Si le credit en cours n'est pas un array c'est donc un copyright
            $texte .= !is_array($_credit) ? PtoBR(propre($_credit)) : ($_credit['url'] ? '<a href="' . $_credit['url'] . '">' : '') . $_credit['nom'] . ($_credit['url'] ? '</a>' : '');
        }
    }
    return $texte;
}
Example #5
0
function formater_credits($infos, $sep = ', ')
{
    $texte = '';
    foreach ($infos as $_credit) {
        if ($texte) {
            $texte .= $sep;
        }
        // Si le credit en cours n'est pas un array c'est donc un copyright
        $texte .= !is_array($_credit) ? PtoBR(propre($_credit)) : ($_credit['url'] ? '<a href="' . $_credit['url'] . '">' : '') . $_credit['nom'] . ($_credit['url'] ? '</a>' : '');
    }
    return $texte;
}
Example #6
0
function http_calendrier_avec_heure($evenement, $amj)
{
	$jour_debut = substr($evenement['DTSTART'], 0,8);
	$jour_fin = substr($evenement['DTEND'], 0, 8);
	if ($jour_fin <= 0) $jour_fin = $jour_debut;
	if (($jour_debut <= 0) OR ($jour_debut > $amj) OR ($jour_fin < $amj))
	  return "";
	
	$desc = PtoBR(propre($evenement['DESCRIPTION']));
	$sum = $evenement['SUMMARY'];
	$u = $GLOBALS['meta']['pcre_u'];
	$sum = typo($sum);
	if (!$sum) $sum = $desc;
	if ($lieu = $evenement['LOCATION'])
	  $sum .= '<br />' . $lieu;
	if ($perso = construire_personne_ics($evenement['ATTENDEE']))
	  $sum .=  '<br />' . $perso;
	if ($evenement['URL'])
	  $sum = http_href(quote_amp($evenement['URL']), $sum, attribut_html($desc), 'border: 0');

	$sum = pipeline('agenda_rendu_evenement',array('args'=>array('evenement'=>$evenement,'type'=>'avec_heure'),'data'=>$sum));
	$deb_h = substr($evenement['DTSTART'],-6,2);
	$deb_m = substr($evenement['DTSTART'],-4,2);
	$fin_h = substr($evenement['DTEND'],-6,2);
	$fin_m = substr($evenement['DTEND'],-4,2);
	$opacity = $evenement['CATEGORIES'];
	
	if ($amj != $jour_debut AND $amj != $jour_fin) {
	    $opacity .= ' calendrier-opacity';
	  } else {
	  if ($deb_h >0 OR $deb_m > 0) {
	    if ((($deb_h > 0) OR ($deb_m > 0)) AND $amj == $jour_debut)
	      { $deb = $deb_h . ':' . $deb_m;}
	    else { 
	      $deb = '...'; 
	    }
	    if ((($fin_h > 0) OR ($fin_m > 0)) AND $amj == $jour_fin)
	      { $fin = $fin_h . ':' . $fin_m;}
	    else { 
	      $fin = '...'; 
	    }
	    $sum = "<div style='font-weight: bold;'>$deb-$fin</div>$sum";
	  }
	}
	return "\n<div class='calendrier-arial10 calendrier-evenement $opacity'>$sum\n</div>\n"; 
}
Example #7
0
/**
 * Compte le nombre de caracteres d'une chaine,
 * mais en supprimant tous les liens 
 * (qu'ils soient ou non ecrits en raccourcis SPIP)
 * ainsi que tous les espaces en trop
 *
 * @param string $texte
 *   texte d'entree
 * @param bool $propre
 *   passer le texte dans propre ou non
 * @return int
 *   compte du texte nettoye
 */
function compter_caracteres_utiles($texte, $propre = true)
{
    include_spip('inc/charsets');
    if ($propre) {
        $texte = propre($texte);
    }
    $u = $GLOBALS['meta']['pcre_u'];
    // regarder si il y a du contenu en dehors des liens !
    $texte = PtoBR($texte);
    $texte = preg_replace(",<a.*</a>,{$u}Uims", '', $texte);
    // \W matche tous les caracteres non ascii apres 0x80
    // et vide donc les chaines constitues de caracteres unicodes uniquement
    // on remplace par un match qui elimine uniquement
    // les non \w  et les non unicodes
    $texte = trim(preg_replace(",[^\\w€-ÿ]+,ims", ' ', $texte));
    // on utilise spip_strlen pour compter la longueur correcte
    // pour les chaines unicodes
    return spip_strlen($texte);
}
Example #8
0
function afficher_liste_listes_plugins() {
	if (!is_array($flux = @unserialize($GLOBALS['meta']['syndic_plug'])))
		return '';

	if (count($flux)){
		$ret = '<h3>'._T('plugin_info_automatique_liste').'</h3><ul class="liste-items">';
			//$ret .= '<li>'._T('plugin_info_automatique_liste_officielle').'</li>';
		foreach ($flux as $url => $c) {
			$a = '<div class="actions">[<a href="'.parametre_url(
				generer_action_auteur('charger_plugin', 'supprimer_flux'),'supprimer_flux', $url).'">'._T('lien_supprimer').'</a>]</div>';
			$time = @filemtime(_DIR_TMP.'syndic_plug_'.md5($url).'.txt');
			$ret .= '<li class="item">'.inserer_attribut(PtoBR(propre("[->$url]")),'title',$url).' ('._T('plugins_compte',array('count' => $c)).') '
							.($time?"<div class='small'>" . _T('info_derniere_syndication').' '.affdate(date('Y-m-d H:i:s',$time)) ."</div>":'')
							. $a .'</li>';
		}
		$ret .= '</ul>';
	
		$ret .= '<div style="text-align:'.$GLOBALS['spip_lang_right'].'"><a href="'.parametre_url(
										  generer_action_auteur('charger_plugin', 'update_flux'),'update_flux', 'oui').'">'._T('plugin_info_automatique_liste_update').'</a></div>';
	}

	return $ret;
}