本文整理汇总了PHP中erreur_squelette函数的典型用法代码示例。如果您正苦于以下问题:PHP erreur_squelette函数的具体用法?PHP erreur_squelette怎么用?PHP erreur_squelette使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了erreur_squelette函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的PHP代码示例。
示例1: balise_FOREACH
function balise_FOREACH($p) {
$_tableau = interprete_argument_balise(1,$p);
$_tableau = str_replace("'", "", strtoupper($_tableau));
$_tableau = sinon($_tableau, 'ENV');
$f = 'balise_'.$_tableau;
$balise = function_exists($f) ? $f : (function_exists($g = $f.'_dist') ? $g : '');
if($balise) {
$_modele = interprete_argument_balise(2,$p);
$_modele = str_replace("'", "", strtolower($_modele));
$__modele = 'foreach_'.strtolower($_tableau);
$_modele = (!$_modele AND find_in_path('modeles/'.$__modele.'.html')) ?
$__modele :
($_modele ? $_modele : 'foreach');
$p->param = @array_shift(@array_shift($p->param));
$p = $balise($p);
$filtre = chercher_filtre('foreach');
$p->code = $filtre . "(unserialize(" . $p->code . "), '" . $_modele . "')";
}
//On a pas trouve la balise correspondant au tableau a traiter
else {
erreur_squelette(
_L(/*zbug*/'erreur #FOREACH: la balise #'.$_tableau.' n\'existe pas'),
$p->id_boucle
);
$p->code = "''";
}
return $p;
}
开发者ID:rhertzog,项目名称:lcs,代码行数:30,代码来源:193_fonctions.php
示例2: balise_FORMULAIRE_SIGNATURE_stat
function balise_FORMULAIRE_SIGNATURE_stat($args, $context_compil) {
// pas d'id_article => erreur de contexte
if (!$args[0]) {
$msg = array('zbug_champ_hors_motif',
array ('champ' => 'FORMULAIRE_SIGNATURE',
'motif' => 'ARTICLES'));
erreur_squelette($msg, $context_compil);
return '';
}
// article sans petition => pas de balise
else if (!$args[1])
return '';
else {
// aller chercher dans la base la petition associee
if ($r = sql_fetsel("texte, site_obli, message", 'spip_petitions', "id_article = ".intval($args[0]))) {
$args[2] = $r['texte'];
// le signataire doit-il donner un site ?
$args[3] = ($r['site_obli'] == 'oui') ? ' ':'';
// le signataire peut-il proposer un commentaire
$args[4] = ($r['message'] == 'oui') ? ' ':'';
}
return $args;
}
}
开发者ID:rhertzog,项目名称:lcs,代码行数:26,代码来源:formulaire_signature.php
示例3: balise_SET__dist
function balise_SET__dist($p) {
$champ = $p->nom_champ;
preg_match(",^SET_([A-Z_]+)?$,i", $champ, $filtre);
$filtre = strtolower($filtre[1]);
$filtre2 = chercher_filtre($filtre);
if (!$filtre2) {
$err_b_s_a = array('zbug_erreur_filtre', array('filtre' => $filtre));
erreur_squelette($err_b_s_a, $p);
} else {
$nom = interprete_argument_balise(1,$p);
if (!$nom) {
$err_b_s_a = array('zbug_balise_sans_argument', array('balise' => $champ));
erreur_squelette($err_b_s_a, $p);
} else {
$i = 1; $args = array();
while(($a = interprete_argument_balise(++$i,$p)) != NULL) $args[] = $a;
$get = function_exists('balise_GET') ? 'balise_GET' : 'balise_GET_dist';
$q = $p; $q->param[0] = array($q->param[0][0], $q->param[0][1]);
$get = $get($q);
$filtre2 .= '('.$get->code.','.join(",", $args).')';
$p->code = "vide(\$Pile['vars'][$nom] = $filtre2)";
}
}
$p->interdire_scripts = false; // la balise ne renvoie rien
return $p;
}
开发者ID:rhertzog,项目名称:lcs,代码行数:26,代码来源:balise_set_fonctions.php
示例4: balise_FORMULAIRE_ECRIRE_AUTEUR_stat
/**
* Calculs de paramètres de contexte automatiques pour la balise FORMULAIRE_ECRIRE_AUTEUR
*
* Retourne le contexte du formulaire uniquement si l'email de l'auteur
* est valide, sinon rien (pas d'exécution/affichage du formulaire)
*
* @param array $args
* Liste des arguments demandés obtenus du contexte (id_auteur, id_article, email)
* @param array $context_compil
* Tableau d'informations sur la compilation
* @return array|string
* - Liste (id_auteur, id_article, email) des paramètres du formulaire CVT
* - chaîne vide sinon (erreur ou non affichage).
*/
function balise_FORMULAIRE_ECRIRE_AUTEUR_stat($args, $context_compil)
{
include_spip('inc/filtres');
// Pas d'id_auteur ni d'id_article ? Erreur de contexte
$id = intval($args[1]);
if (!$args[0] and !$id) {
$msg = array('zbug_champ_hors_motif', array('champ' => 'FORMULAIRE_ECRIRE_AUTEUR', 'motif' => 'AUTEURS/ARTICLES'));
erreur_squelette($msg, $context_compil);
return '';
}
// Si on est dans un contexte article,
// sortir tous les mails des auteurs de l'article
if (!$args[0] and $id) {
$r = '';
$s = sql_allfetsel('email', 'spip_auteurs AS A LEFT JOIN spip_auteurs_liens AS L ON (A.id_auteur=L.id_auteur AND L.objet=\'article\')', "A.email != '' AND L.id_objet={$id}");
foreach ($s as $row) {
if (email_valide($row['email'])) {
$r .= ', ' . $row['email'];
}
}
$args[2] = substr($r, 2);
}
// On ne peut pas ecrire a un auteur dont le mail n'est pas valide
if (!$args[2] or !email_valide($args[2])) {
return '';
}
// OK
return $args;
}
开发者ID:JLuc,项目名称:SPIP,代码行数:43,代码来源:formulaire_ecrire_auteur.php
示例5: trace_query_end
function trace_query_end($query, $start, $result, $erreur, $serveur=''){
if ($start)
trace_query_chrono($start, microtime(), $query, $result, $serveur);
// tracer les erreurs, sauf pour select, c'est fait dans abstract_sql
if ($erreur AND !preg_match('/^select\b/i', $query))
erreur_squelette(array(sql_errno($serveur), $erreur, $query));
return $result;
}
开发者ID:rhertzog,项目名称:lcs,代码行数:8,代码来源:tracer.php
示例6: sandbox_composer_filtre
/**
* Composer le code d'execution d'un filtre
*
* @param string $fonc
* @param string $code
* @param string $arglist
* @param Object $p
* @return string
*/
function sandbox_composer_filtre($fonc, $code, $arglist, &$p)
{
if (isset($GLOBALS['spip_matrice'][$fonc])) {
$code = "filtrer('{$fonc}',{$code}{$arglist})";
} elseif ($f = chercher_filtre($fonc)) {
$code = "{$f}({$code}{$arglist})";
} else {
erreur_squelette(array('zbug_erreur_filtre', array('filtre' => texte_script($fonc))), $p);
}
return $code;
}
开发者ID:nursit,项目名称:SPIP,代码行数:20,代码来源:sandbox.php
示例7: balise_FORMULAIRE_SITE_stat
function balise_FORMULAIRE_SITE_stat($args, $context_compil)
{
// Pas d'id_rubrique ? Erreur de contexte
if (!$args[0]) {
$msg = array('zbug_champ_hors_motif', array('champ' => 'FORMULAIRE_SITE', 'motif' => 'RUBRIQUES'));
erreur_squelette($msg, $context_compil);
return '';
}
// Verifier que les visisteurs sont autorises a proposer un site
return $GLOBALS['meta']["proposer_sites"] != 2 ? '' : $args;
}
开发者ID:loorenzooo,项目名称:aslfc,代码行数:11,代码来源:formulaire_site.php
示例8: balise_AVANCEMENT_CAMPAGNE_dist
function balise_AVANCEMENT_CAMPAGNE_dist($p)
{
if ($p->type_requete != "souscription_campagnes") {
$msg = array('zbug_champ_hors_boucle', array('champ' => '#AVANCEMENT_CAMPAGNE'));
erreur_squelette($msg, $p);
} else {
$_campagne = champ_sql('id_souscription_campagne', $p);
$_type_objectif = champ_sql('type_objectif', $p);
$_objectif_initial = champ_sql('objectif_initial', $p);
$p->code = "calcul_avancement_campagne({$_campagne}, {$_type_objectif}, {$_objectif_initial})";
$p->interdire_scripts = false;
}
return $p;
}
开发者ID:attacfr,项目名称:spip_souscription,代码行数:14,代码来源:souscription_fonctions.php
示例9: balise_FORMULAIRE_SIGNATURE_stat
function balise_FORMULAIRE_SIGNATURE_stat($args, $context_compil)
{
// pas d'id_article => erreur de contexte
if (!$args[0]) {
$msg = array('zbug_champ_hors_motif', array('champ' => 'FORMULAIRE_SIGNATURE', 'motif' => 'ARTICLES'));
erreur_squelette($msg, $context_compil);
return '';
} else {
if (!$args[1]) {
return '';
}
}
// on envoie pas cet argument dans le CVT
unset($args[1]);
return $args;
}
开发者ID:genma,项目名称:spip_ynh,代码行数:16,代码来源:formulaire_signature.php
示例10: balise_INFO__dist
/**
* Generer n'importe quel info pour un objet : #INFO_TITRE{article, #ENV{id_article}}
* Utilise la fonction generer_info_entite() de inc/filtres
* se reporter a sa documentation
*
*/
function balise_INFO__dist($p)
{
$info = $p->nom_champ;
$type_objet = interprete_argument_balise(1, $p);
$id_objet = interprete_argument_balise(2, $p);
if ($info === 'INFO_' or !$type_objet or !$id_objet) {
$msg = _T('zbug_balise_sans_argument', array('balise' => ' INFO_'));
erreur_squelette($msg, $p);
$p->interdire_scripts = true;
return $p;
} else {
$info_sql = strtolower(substr($info, 5));
$code = "generer_info_entite({$id_objet}, {$type_objet}, '{$info_sql}'" . ($p->etoile ? "," . _q($p->etoile) : "") . ")";
$p->code = champ_sql($info, $p, $code);
$p->interdire_scripts = true;
return $p;
}
}
开发者ID:genma,项目名称:spip_ynh,代码行数:24,代码来源:info_.php
示例11: sandbox_composer_filtre
/**
* Composer le code d'execution d'un filtre
*
* @param string $fonc
* @param string $code
* @param string $arglist
* @param Object $p
* @return string
*/
function sandbox_composer_filtre($fonc, $code, $arglist, &$p)
{
if (isset($GLOBALS['spip_matrice'][$fonc])) {
$code = "filtrer('{$fonc}',{$code}{$arglist})";
} elseif ($f = chercher_filtre($fonc)) {
// cas particulier : le filtre |set doit acceder a la $Pile
// proto: filtre_set(&$Pile, $val, $args...)
$refl = new ReflectionFunction($f);
$refs = $refl->getParameters();
if (isset($refs[0]) and $refs[0]->name == 'Pile') {
$code = "{$f}(\$Pile,{$code}{$arglist})";
} else {
$code = "{$f}({$code}{$arglist})";
}
} else {
erreur_squelette(array('zbug_erreur_filtre', array('filtre' => texte_script($fonc))), $p);
}
return $code;
}
开发者ID:jazzman346,项目名称:CAC_Site,代码行数:28,代码来源:sandbox.php
示例12: critere_agendafull_dist
/**
* {agendafull ..} variante etendue du crietre agenda du core
* qui accepte une date de debut et une date de fin
*
* {agendafull date_debut, date_fin, jour, #ENV{annee}, #ENV{mois}, #ENV{jour}}
* {agendafull date_debut, date_fin, semaine, #ENV{annee}, #ENV{mois}, #ENV{jour}}
* {agendafull date_debut, date_fin, mois, #ENV{annee}, #ENV{mois}}
* {agendafull date_debut, date_fin, periode, #ENV{annee}, #ENV{mois}, #ENV{jour},
* #ENV{annee_fin}, #ENV{mois_fin}, #ENV{jour_fin}}
*
* @param string $idb
* @param object $boucles
* @param object $crit
*/
function critere_agendafull_dist($idb, &$boucles, $crit)
{
$params = $crit->param;
if (count($params) < 1) {
erreur_squelette(_T('zbug_info_erreur_squelette'), "{agenda ?} BOUCLE{$idb}");
}
$parent = $boucles[$idb]->id_parent;
// les valeurs $date et $type doivent etre connus a la compilation
// autrement dit ne pas etre des champs
$date_deb = array_shift($params);
$date_deb = $date_deb[0]->texte;
$date_fin = array_shift($params);
$date_fin = $date_fin[0]->texte;
$type = array_shift($params);
$type = $type[0]->texte;
$annee = $params ? array_shift($params) : "";
$annee = "\n" . 'sprintf("%04d", ($x = ' . calculer_liste($annee, array(), $boucles, $parent) . ') ? $x : date("Y"))';
$mois = $params ? array_shift($params) : "";
$mois = "\n" . 'sprintf("%02d", ($x = ' . calculer_liste($mois, array(), $boucles, $parent) . ') ? $x : date("m"))';
$jour = $params ? array_shift($params) : "";
$jour = "\n" . 'sprintf("%02d", ($x = ' . calculer_liste($jour, array(), $boucles, $parent) . ') ? $x : date("d"))';
$annee2 = $params ? array_shift($params) : "";
$annee2 = "\n" . 'sprintf("%04d", ($x = ' . calculer_liste($annee2, array(), $boucles, $parent) . ') ? $x : date("Y"))';
$mois2 = $params ? array_shift($params) : "";
$mois2 = "\n" . 'sprintf("%02d", ($x = ' . calculer_liste($mois2, array(), $boucles, $parent) . ') ? $x : date("m"))';
$jour2 = $params ? array_shift($params) : "";
$jour2 = "\n" . 'sprintf("%02d", ($x = ' . calculer_liste($jour2, array(), $boucles, $parent) . ') ? $x : date("d"))';
$boucle =& $boucles[$idb];
$date = $boucle->id_table . ".{$date}";
$quote_end = ",'" . $boucle->sql_serveur . "','text'";
if ($type == 'jour') {
$boucle->where[] = array("'AND'", array("'<='", "'DATE_FORMAT({$date_deb}, \\'%Y%m%d\\')'", "sql_quote({$annee} . {$mois} . {$jour}{$quote_end})"), array("'>='", "'DATE_FORMAT({$date_fin}, \\'%Y%m%d\\')'", "sql_quote({$annee} . {$mois} . {$jour}{$quote_end})"));
} elseif ($type == 'mois') {
$boucle->where[] = array("'AND'", array("'<='", "'DATE_FORMAT({$date_deb}, \\'%Y%m\\')'", "sql_quote({$annee} . {$mois}{$quote_end})"), array("'>='", "'DATE_FORMAT({$date_fin}, \\'%Y%m\\')'", "sql_quote({$annee} . {$mois}{$quote_end})"));
} elseif ($type == 'semaine') {
$boucle->where[] = array("'AND'", array("'>='", "'DATE_FORMAT({$date_fin}, \\'%Y%m%d\\')'", "date_debut_semaine({$annee}, {$mois}, {$jour})"), array("'<='", "'DATE_FORMAT({$date_deb}, \\'%Y%m%d\\')'", "date_fin_semaine({$annee}, {$mois}, {$jour})"));
} elseif (count($crit->param) > 3) {
$boucle->where[] = array("'AND'", array("'>='", "'DATE_FORMAT({$date_fin}, \\'%Y%m%d\\')'", "sql_quote({$annee} . {$mois} . {$jour}{$quote_end})"), array("'<='", "'DATE_FORMAT({$date_deb}, \\'%Y%m%d\\')'", "sql_quote({$annee2} . {$mois2} . {$jour2}{$quote_end})"));
}
// sinon on prend tout
}
开发者ID:jazzman346,项目名称:CAC_Site,代码行数:55,代码来源:agenda_filtres.php
示例13: balise_URL__dist
function balise_URL__dist($p)
{
$nom = $p->nom_champ;
if ($nom === 'URL_') {
$msg = array('zbug_balise_sans_argument', array('balise' => ' URL_'));
erreur_squelette($msg, $p);
$p->interdire_scripts = false;
return $p;
} elseif ($f = charger_fonction($nom, 'balise', true)) {
return $f($p);
} else {
$nom = strtolower($nom);
$code = generer_generer_url(substr($nom, 4), $p);
$code = champ_sql($nom, $p, $code);
$p->code = $code;
if (!$p->etoile) {
$p->code = "vider_url({$code})";
}
$p->interdire_scripts = false;
return $p;
}
}
开发者ID:nursit,项目名称:SPIP,代码行数:22,代码来源:url_.php
示例14: lesscss_compile
/**
* Compiler des styles inline LESS en CSS
*
* @param string $style
* contenu du .less
* @param array $contexte
* file : chemin du fichier compile
* utilise en cas de message d'erreur, et pour le repertoire de reference des @import
* @return string
*/
function lesscss_compile($style, $contexte = array())
{
static $import_dirs = null;
require_once 'less.php/Less.php';
if (is_null($import_dirs)) {
$path = _chemin();
$import_dirs = array();
foreach ($path as $p) {
$import_dirs[$p] = protocole_implicite(url_absolue($p ? $p : "./"));
}
}
$parser = new Less_Parser();
include_spip('inc/config');
$parser->setOption('sourceMap', lire_config('lesscss/activer_sourcemaps', false) == "on" ? true : false);
$parser->setImportDirs($import_dirs);
$parser->relativeUrls = true;
try {
$url_absolue = $contexte['file'] ? protocole_implicite(url_absolue($contexte['file'])) : null;
$parser->parse($style, $url_absolue);
$out = $parser->getCss();
if ($files = Less_Parser::AllParsedFiles() and count($files)) {
$l = strlen(_DIR_RACINE);
foreach ($files as $k => $file) {
if (strncmp($file, _DIR_RACINE, $l) == 0) {
$files[$k] = substr($file, $l);
}
}
$out = "/*\n#@" . implode("\n#@", $files) . "\n*" . "/\n" . $out;
}
return $out;
} catch (exception $ex) {
spip_log('less.php fatal error:' . $ex->getMessage(), 'less' . _LOG_ERREUR);
erreur_squelette("LESS : Echec compilation" . (isset($contexte['file']) ? " fichier " . $contexte['file'] : "") . "<br />" . $ex->getMessage());
return '';
}
}
开发者ID:RadioCanut,项目名称:site-radiocanut,代码行数:46,代码来源:lesscss_fonctions.php
示例15: ajax_retour
/**
* Fonction de formatage du contenu renvoye en ajax
*
* http://doc.spip.org/@ajax_retour
*
* @param string $corps
* @param string $content_type
* permet de definir le type de contenu renvoye.
* Si rien de précisé, ou si true c'est "text/html" avec un entete xml en plus.
* La valeur speciale false fournit text/html sans entete xml. Elle equivaut a
* passer "text/html" comme $content_type
*/
function ajax_retour($corps, $content_type = null)
{
$xml = false;
if (is_null($content_type) or $content_type === true) {
$xml = true;
$content_type = 'text/html';
} elseif (!$content_type or !is_string($content_type) or strpos($content_type, '/') === false) {
$content_type = 'text/html';
}
$e = "";
if (isset($_COOKIE['spip_admin']) and (_request('var_mode') == 'debug' or !empty($GLOBALS['tableau_des_temps']))) {
$e = erreur_squelette();
}
if (isset($GLOBALS['transformer_xml']) or isset($GLOBALS['exec']) and $GLOBALS['exec'] == 'valider_xml') {
$debut = _DOCTYPE_ECRIRE . "<html><head><title>Debug Spip Ajax</title></head>" . "<body><div>\n\n" . "<!-- %%%%%%%%%%%%%%%%%%% Ajax %%%%%%%%%%%%%%%%%%% -->\n";
$fin = '</div></body></html>';
} else {
$c = $GLOBALS['meta']["charset"];
header('Content-Type: ' . $content_type . '; charset=' . $c);
$debut = ($xml and strlen(trim($corps))) ? '<' . "?xml version='1.0' encoding='" . $c . "'?" . ">\n" : '';
$fin = "";
}
echo $debut, $corps, $fin, $e;
}
开发者ID:genma,项目名称:spip_ynh,代码行数:36,代码来源:actions.php
示例16: filtrer
function filtrer($filtre)
{
if (isset($GLOBALS['spip_matrice'][$filtre]) and is_string($f = $GLOBALS['spip_matrice'][$filtre])) {
find_in_path($f, '', true);
$GLOBALS['spip_matrice'][$filtre] = true;
}
$tous = func_get_args();
if (substr($filtre, 0, 6) == 'image_' && $GLOBALS['spip_matrice'][$filtre]) {
return image_filtrer($tous);
} elseif ($f = chercher_filtre($filtre)) {
array_shift($tous);
return call_user_func_array($f, $tous);
} else {
// le filtre n'existe pas, on provoque une erreur
$msg = array('zbug_erreur_filtre', array('filtre' => texte_script($filtre)));
erreur_squelette($msg);
return '';
}
}
开发者ID:loorenzooo,项目名称:aslfc,代码行数:19,代码来源:filtres.php
示例17: sql_select
/**
* Effectue une requête de selection
*
* Fonction de selection (SELECT), retournant la ressource interrogeable par sql_fetch.
*
* @api
* @see sql_fetch() Pour boucler sur les resultats de cette fonction
*
* @param array|string $select
* Liste des champs a recuperer (Select)
* @param array|string $from
* Tables a consulter (From)
* @param array|string $where
* Conditions a remplir (Where)
* @param array|string $groupby
* Critere de regroupement (Group by)
* @param array|string $orderby
* Tableau de classement (Order By)
* @param string $limit
* Critere de limite (Limit)
* @param array $having
* Tableau des des post-conditions a remplir (Having)
* @param string $serveur
* Le serveur sollicite (pour retrouver la connexion)
* @param bool|string $option
* Peut avoir 3 valeurs :
*
* - false -> ne pas l'exécuter mais la retourner,
* - continue -> ne pas echouer en cas de serveur sql indisponible,
* - true|array -> executer la requête.
* Le cas array est, pour une requete produite par le compilateur,
* un tableau donnnant le contexte afin d'indiquer le lieu de l'erreur au besoin
*
*
* @return mixed
* Ressource SQL
*
* - Ressource SQL pour sql_fetch, si la requete est correcte
* - false en cas d'erreur
* - Chaine contenant la requete avec $option=false
*
* Retourne false en cas d'erreur, apres l'avoir denoncee.
* Les portages doivent retourner la requete elle-meme en cas d'erreur,
* afin de disposer du texte brut.
*
**/
function sql_select($select = array(), $from = array(), $where = array(), $groupby = array(), $orderby = array(), $limit = '', $having = array(), $serveur = '', $option = true)
{
$f = sql_serveur('select', $serveur, $option === 'continue' or $option === false);
if (!is_string($f) or !$f) {
return false;
}
$debug = (defined('_VAR_MODE') and _VAR_MODE == 'debug');
if ($option !== false and !$debug) {
$res = $f($select, $from, $where, $groupby, $orderby, $limit, $having, $serveur, is_array($option) ? true : $option);
} else {
$query = $f($select, $from, $where, $groupby, $orderby, $limit, $having, $serveur, false);
if (!$option) {
return $query;
}
// le debug, c'est pour ce qui a ete produit par le compilateur
if (isset($GLOBALS['debug']['aucasou'])) {
list($table, $id, ) = $GLOBALS['debug']['aucasou'];
$nom = $GLOBALS['debug_objets']['courant'] . $id;
$GLOBALS['debug_objets']['requete'][$nom] = $query;
}
$res = $f($select, $from, $where, $groupby, $orderby, $limit, $having, $serveur, true);
}
// en cas d'erreur
if (!is_string($res)) {
return $res;
}
// denoncer l'erreur SQL dans sa version brute
spip_sql_erreur($serveur);
// idem dans sa version squelette (prefixe des tables non substitue)
$contexte_compil = sql_error_backtrace(true);
erreur_squelette(array(sql_errno($serveur), sql_error($serveur), $res), $contexte_compil);
return false;
}
开发者ID:xablen,项目名称:Semaine14_SPIP_test,代码行数:79,代码来源:abstract_sql.php
示例18: css_resolve_atimport
/**
* Resoudre et inliner les @import
* ceux-ci ne peuvent etre presents qu'en debut de CSS et on ne veut pas changer l'ordre des directives
*
* @param string $contenu
* @param string $url_base
* @return string
*/
function css_resolve_atimport($contenu, $url_base)
{
// vite si rien a faire
if (strpos($contenu, "@import") === false) {
return $contenu;
}
$imports_non_resolvables = array();
preg_match_all(",@import ([^;]*);,UmsS", $contenu, $matches, PREG_SET_ORDER);
if ($matches and count($matches)) {
foreach ($matches as $m) {
$url = $media = $erreur = "";
if (preg_match(",^\\s*url\\s*\\(\\s*['\"]?([^'\"]*)['\"]?\\s*\\),Ums", $m[1], $r)) {
$url = $r[1];
$media = trim(substr($m[1], strlen($r[0])));
} elseif (preg_match(",^\\s*['\"]([^'\"]+)['\"],Ums", $m[1], $r)) {
$url = $r[1];
$media = trim(substr($m[1], strlen($r[0])));
}
if (!$url) {
$erreur = "Compresseur : <tt>" . $m[0] . ";</tt> non resolu dans <tt>{$url_base}</tt>";
} else {
$url = suivre_lien($url_base, $url);
// url relative ?
$root = protocole_implicite($GLOBALS['meta']['adresse_site'] . "/");
if (strncmp($url, $root, strlen($root)) == 0) {
$url = _DIR_RACINE . substr($url, strlen($root));
} else {
// si l'url a un protocole http(s):// on ne considère qu'on ne peut pas
// résoudre le stockage. Par exemple
// @import url(https://fonts.googleapis.com/css?family=Ubuntu);
// retournant un contenu différent en fonction navigateur
// tous les @import restant seront remontes en tete de CSS en fin de concatenation
if (preg_match(',^https?://,', $url)) {
$url = "";
} else {
// protocole implicite //
$url = "http:{$url}";
}
}
if ($url) {
// on renvoit dans la boucle pour que le fichier inclus
// soit aussi processe (@import, url absolue etc...)
$css = compresseur_callback_prepare_css($url);
if ($css == $url or !lire_fichier($css, $contenu_imported)) {
$erreur = "Compresseur : url {$url} de <tt>" . $m[0] . ";</tt> non resolu dans <tt>{$url_base}</tt>";
} else {
if ($media) {
$contenu_imported = "@media {$media}{\n{$contenu_imported}\n}\n";
}
$contenu = str_replace($m[0], $contenu_imported, $contenu);
}
}
}
if ($erreur) {
$contenu = str_replace($m[0], "/* erreur @ import " . $m[1] . "*/", $contenu);
erreur_squelette($erreur);
}
}
}
return $contenu;
}
开发者ID:loorenzooo,项目名称:aslfc,代码行数:69,代码来源:compresseur.php
示例19: balise_INFO__dist
/**
* Generer n'importe quel info pour un objet : #INFO_TITRE{article, #ENV{id_article}}
* Utilise la fonction generer_info_entite(), se reporter a sa documentation
*/
function balise_INFO__dist($p){
$info = $p->nom_champ;
$type_objet = interprete_argument_balise(1,$p);
$id_objet = interprete_argument_balise(2,$p);
if ($info === 'INFO_' or !$type_objet or !$id_objet) {
$msg = _T('zbug_balise_sans_argument', array('balise' => ' INFO_'));
erreur_squelette($msg, $p);
$p->interdire_scripts = false;
return $p;
} elseif ($f = charger_fonction($nom, 'balise', true)) {
return $f($p);
}else {
$p->code = champ_sql($info, $p);
if (strpos($p->code, '@$Pile[0]') !== false) {
$info = strtolower(substr($info,5));
$p->code = "generer_info_entite($id_objet, $type_objet, '$info')";
}
$p->interdire_scripts = false;
return $p;
}
}
开发者ID:rhertzog,项目名称:lcs,代码行数:25,代码来源:spip_bonux_balises.php
示例20: _imagecreatefromgif
/**
* Crée une image depuis un fichier ou une URL (au format gif)
*
* Utilise les fonctions spécifiques GD.
*
* @param string $filename
* Le path vers l'image à traiter (par exemple : IMG/distant/gif/image.gif
* ou local/cache-vignettes/L180xH51/image.gif).
* @return ressource
* Une ressource de type Image GD.
*/
function _imagecreatefromgif($filename)
{
$img = @imagecreatefromgif($filename);
if (!$img) {
spip_log("Erreur lecture imagecreatefromgif {$filename}", _LOG_CRITIQUE);
erreur_squelette("Erreur lecture imagecreatefromgif {$filename}");
$img = imagecreate(10, 10);
}
return $img;
}
开发者ID:xablen,项目名称:Semaine14_SPIP_test,代码行数:21,代码来源:filtres_images_lib_mini.php
注:本文中的erreur_squelette函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论