Skip to content
Extraits de code Groupes Projets
Valider e7e19c49 rédigé par Fil's avatar Fil
Parcourir les fichiers

Reprise de #LOGO_DOCUMENT, qui avait tendance à flancher dans des écritures...

Reprise de #LOGO_DOCUMENT, qui avait tendance à flancher dans des écritures compliquées [(#LOGO_DOCUMENT{30}|#URL_DOCUMENT)]
parent 68600ffd
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -762,8 +762,18 @@ function copie_locale($source, $mode='auto') { ...@@ -762,8 +762,18 @@ function copie_locale($source, $mode='auto') {
OR $mode=='force') { OR $mode=='force') {
include_ecrire('inc_sites.php3'); include_ecrire('inc_sites.php3');
$contenu = recuperer_page($source); $contenu = recuperer_page($source);
if ($contenu) if ($contenu) {
ecrire_fichier($local, $contenu); ecrire_fichier($local, $contenu);
// signaler au moteur de recherche qu'il peut reindexer ce doc
$a = spip_query("SELECT id_document FROM spip_documents
WHERE fichier='".addslashes($source)."'");
list($id_document) = spip_fetch_array($a);
if ($id_document) {
include_ecrire('inc_index.php3');
marquer_indexer('document', $id_document);
}
}
else else
return false; return false;
} }
...@@ -931,11 +941,19 @@ function inserer_attribut($balise, $attribut, $val, $texte_backend=true) { ...@@ -931,11 +941,19 @@ function inserer_attribut($balise, $attribut, $val, $texte_backend=true) {
$insert = " $attribut=\"".entites_html(texte_backend($val))."\" "; $insert = " $attribut=\"".entites_html(texte_backend($val))."\" ";
list($old,$r) = extraire_attribut($balise, $attribut, true); list($old,$r) = extraire_attribut($balise, $attribut, true);
if ($old !== NULL) { if ($old !== NULL) {
// Remplacer l'ancien attribut du meme nom
$balise = $r[1].$insert.$r[5]; $balise = $r[1].$insert.$r[5];
} }
else else {
$balise = preg_replace(",([[:space:]]/)?".">,", $insert."/>", $balise); // preferer une balise " />" (comme <img />)
if (preg_match(',[[:space:]]/>,', $balise))
$balise = preg_replace(",[[:space:]]/>,", $insert."/>", $balise, 1);
// sinon une balise <a ...> ... </a>
else
$balise = preg_replace(",>,", $insert.">", $balise, 1);
}
return $balise; return $balise;
} }
......
...@@ -542,25 +542,31 @@ function calculer_balise_logo ($p) { ...@@ -542,25 +542,31 @@ function calculer_balise_logo ($p) {
$filtres = ''; $filtres = '';
if (is_array($p->fonctions)) { if (is_array($p->fonctions)) {
foreach($p->fonctions as $couple) { foreach($p->fonctions as $couple) {
// eliminer les faux filtres // eliminer les faux filtres
if (!$flag_stop) array_shift($p->filtres); if (!$flag_stop) {
$nom = $couple[0]; array_shift($p->filtres);
if (ereg('^(left|right|center|top|bottom)$', $nom)) $nom = $couple[0];
$align = $nom; if (ereg('^(left|right|center|top|bottom)$', $nom))
else if ($nom == 'lien') { $align = $nom;
$flag_lien_auto = 'oui'; else if ($nom == 'lien') {
$flag_stop = true; $flag_lien_auto = 'oui';
} $flag_stop = true;
else if ($nom == 'fichier') { }
$flag_fichier = 1; else if ($nom == 'fichier') {
$flag_stop = true; $flag_fichier = 1;
} $flag_stop = true;
// double || signifie "on passe aux filtres" }
else if ($nom == '') // double || signifie "on passe aux filtres"
$flag_stop = true; else if ($nom == '') {
else if (!$flag_stop) { if (!$params = $couple[1])
$lien = $nom; $flag_stop = true;
$flag_stop = true; }
else if ($nom) {
$lien = $nom;
$flag_stop = true;
} else {
}
} }
// apres un URL ou || ou |fichier ce sont // apres un URL ou || ou |fichier ce sont
// des filtres (sauf left...lien...fichier) // des filtres (sauf left...lien...fichier)
...@@ -590,7 +596,7 @@ function calculer_balise_logo ($p) { ...@@ -590,7 +596,7 @@ function calculer_balise_logo ($p) {
} }
if ($flag_fichier) if ($flag_fichier)
$code_lien = "'',''" ; $code_lien = "'',''" ;
else { else {
if (!$code_lien) if (!$code_lien)
$code_lien = "''"; $code_lien = "''";
...@@ -603,7 +609,7 @@ function calculer_balise_logo ($p) { ...@@ -603,7 +609,7 @@ function calculer_balise_logo ($p) {
$p->descr['documents'] . $p->descr['documents'] .
'\', $doublons, '. intval($flag_fichier).", $code_lien, '". '\', $doublons, '. intval($flag_fichier).", $code_lien, '".
// #LOGO_DOCUMENT{x,y} donne la taille maxi // #LOGO_DOCUMENT{x,y} donne la taille maxi
texte_script(param_balise($p)) texte_script($params)
."')"; ."')";
} }
else { else {
......
...@@ -252,7 +252,7 @@ function calcul_branche ($generation) { ...@@ -252,7 +252,7 @@ function calcul_branche ($generation) {
} }
// fonction appelee par la balise #LOGO_DOCUMENT // fonction appelee par la balise #LOGO_DOCUMENT
function calcule_logo_document($id_document, $doubdoc, &$doublons, $flag_fichier, $params, $lien, $align) { function calcule_logo_document($id_document, $doubdoc, &$doublons, $flag_fichier, $lien, $align, $params) {
if (!$id_document) return ''; if (!$id_document) return '';
if ($doubdoc) $doublons["documents"] .= ','.$id_document; if ($doubdoc) $doublons["documents"] .= ','.$id_document;
...@@ -276,9 +276,23 @@ function calcule_logo_document($id_document, $doubdoc, &$doublons, $flag_fichier ...@@ -276,9 +276,23 @@ function calcule_logo_document($id_document, $doubdoc, &$doublons, $flag_fichier
} }
} else if ($mode == 'vignette') { } else if ($mode == 'vignette') {
$logo = generer_url_document($id_document); $logo = generer_url_document($id_document);
if (!@file_exists($logo))
$logo = '';
} }
if (!$logo) { // taille maximum [(#LOGO_DOCUMENT{300,52})]
list($x,$y) = split(',', ereg_replace("[\{\}]", "", $params));
if ($logo AND @file_exists($logo)) {
if ($x OR $y)
$logo = reduire_image($logo, $x, $y);
else {
$size = @getimagesize($logo);
$logo = "<img src='$logo' ".$size[3]." />";
}
}
else {
// Retrouver l'extension // Retrouver l'extension
list($extension) = list($extension) =
spip_abstract_fetch(spip_abstract_select(array('extension'), spip_abstract_fetch(spip_abstract_select(array('extension'),
...@@ -287,32 +301,47 @@ function calcule_logo_document($id_document, $doubdoc, &$doublons, $flag_fichier ...@@ -287,32 +301,47 @@ function calcule_logo_document($id_document, $doubdoc, &$doublons, $flag_fichier
if (!$extension) $extension = 'txt'; if (!$extension) $extension = 'txt';
// Pas de vignette, mais un fichier image -- creer la vignette // Pas de vignette, mais un fichier image -- creer la vignette
if (strstr(lire_meta('formats_graphiques'), $extension) if (strstr(lire_meta('formats_graphiques'), $extension)) {
AND lire_meta('creer_preview') == 'oui') { if ($img = copie_locale($fichier)
if ($img = copie_locale($fichier)) { AND @file_exists($img)) {
// taille maximum [(#LOGO_DOCUMENT{300,52})] if (!$x AND !$y) {
list($x,$y) = split(',', ereg_replace("[\{\}]", "", $params)); $logo = reduire_image($img);
$lien_logo = reduire_image($img, $x, $y); } else {
$logo = extraire_attribut($lien_logo, 'src'); # eviter une double reduction
if ($lien) $size = @getimagesize($img);
$lien_logo = "<a href=\"$lien\">$lien_logo</a>"; $logo = "<img src='$img' ".$size[3]." />";
}
} }
} }
// Document sans vignette ni image : vignette par defaut // Document sans vignette ni image : vignette par defaut
if (!$logo) if (!$logo) {
$logo = vignette_par_defaut($extension, false); $img = vignette_par_defaut($extension, false);
$size = @getimagesize($img);
$logo = "<img src='$img' ".$size[3]." />";
}
} }
// Reduire si une taille precise est demandee
if ($x OR $y)
$logo = reduire_image($logo, $x, $y);
// flag_fichier : seul le fichier est demande // flag_fichier : seul le fichier est demande
if ($flag_fichier) if ($flag_fichier)
return calcule_fichier_logo($logo); # supprimer le IMG/ # supprimer le IMG/
return calcule_fichier_logo(extraire_attribut($lien_logo, 'src'));
// Calculer le code html complet (cf. calcule_logo)
$logo = inserer_attribut($logo, 'alt', '');
$logo = inserer_attribut($logo, 'style', 'border-width: 0px;');
$logo = inserer_attribut($logo, 'class', 'spip_logos');
if ($align)
$logo = inserer_attribut($logo, 'align', $align);
// sinon calculer le code html de l'image, sauf si reduire_image le donne if ($lien)
if (!$lien_logo) $logo = "<a href='$lien'>$logo</a>";
$lien_logo = affiche_logos(array($logo), $lien, $align);
return $lien_logo; return $logo;
} }
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter