diff --git a/.gitattributes b/.gitattributes index a79b79126f6fdd75196df52e134d463023b211a9..365ed287160197bece5cad2a33d2cc33b7fa592b 100644 --- a/.gitattributes +++ b/.gitattributes @@ -283,6 +283,7 @@ ecrire/inc/tourner.php -text ecrire/inc/traduire.php -text ecrire/inc/utils.php -text ecrire/inc/vieilles_defs.php -text +ecrire/inc/vignette.php -text ecrire/inc/virtualiser.php -text ecrire/inc/xml.php -text ecrire/install/etape_.php -text diff --git a/ecrire/inc/documents.php b/ecrire/inc/documents.php index 8de210fa5f5fd7a8de9fefb31434b72873699751..8542c36609efae30cfd9b56fd34a7722ac7773fc 100644 --- a/ecrire/inc/documents.php +++ b/ecrire/inc/documents.php @@ -35,7 +35,7 @@ function get_spip_doc($fichier) { // gestion d'erreurs, fichier='' if (!strlen($fichier)) return false; - + $fichier = (strpos($fichier, _DIR_IMG) === false) ? _DIR_IMG . $fichier : $fichier ; @@ -69,7 +69,7 @@ function contenu_document($arg, $charset='') } $r = spip_file_get_contents($f); - + if ($charset) { include_spip('inc/charset'); if ($charset !== 'auto') { @@ -105,7 +105,7 @@ function generer_url_document_dist($id_document, $args='', $ancre='') { include_spip('inc/securiser_action'); // cette action doit etre publique ! - return generer_url_action('acceder_document', + return generer_url_action('acceder_document', $args . ($args ? "&" : '') . 'arg='.$id_document . ($ancre ? "&ancre=$ancre" : '') @@ -114,50 +114,11 @@ function generer_url_document_dist($id_document, $args='', $ancre='') { ,false,true); } -// -// Vignette pour les documents lies -// - -// http://doc.spip.org/@vignette_par_defaut -function vignette_par_defaut($ext, $size=true, $loop = true) { - - if (!$ext) - $ext = 'txt'; - - // Chercher la vignette correspondant a ce type de document - // dans les vignettes persos, ou dans les vignettes standard - if ( - # installation dans un dossier /vignettes personnel, par exemple /squelettes/vignettes - !@file_exists($v = find_in_path("vignettes/".$ext.".png")) - AND !@file_exists($v = find_in_path("vignettes/".$ext.".gif")) - # dans /icones (n'existe plus) - AND !@file_exists($v = _DIR_IMG_ICONES . $ext.'.png') - AND !@file_exists($v = _DIR_IMG_ICONES . $ext.'.gif') - # icones standard - AND !@file_exists($v = _DIR_IMG_ICONES_DIST . $ext.'.png') - # cas d'une install dans un repertoire "applicatif"... - AND !@file_exists(_ROOT_IMG_ICONES_DIST . $v) - ) - if ($loop) - $v = vignette_par_defaut('defaut', false, $loop=false); - else - $v = false; # pas trouve l'icone de base - - if (!$size) return $v; - - if ($size = @getimagesize($v)) { - $largeur = $size[0]; - $hauteur = $size[1]; - } - - return array($v, $largeur, $hauteur); -} - // http://doc.spip.org/@document_et_vignette function document_et_vignette($document, $url, $portfolio=false) { $image = $document['id_vignette']; - if ($image) + if ($image) $image = sql_fetsel("*", "spip_documents", "id_document = ".$image); if ($image) { if (!$portfolio OR !($GLOBALS['meta']['creer_preview'] == 'oui')) { @@ -172,7 +133,7 @@ function document_et_vignette($document, $url, $portfolio=false) { if ($portfolio) { $x = 110; $y = 120; - } else $x = $y =-1; + } else $x = $y =-1; } if (!$url) $url = generer_url_document_dist($document['id_document'], 'document'); return vignette_automatique($image, $document, $url, $x, $y, '', "miniature_document"); @@ -200,7 +161,8 @@ function vignette_automatique($img, $doc, $lien, $x=0, $y=0, $align='', $class=' $img = image_reduire($img); } else{ - $img = vignette_par_defaut($e, false); + $f = charger_fonction('vignette','inc'); + $img = $f($e, false); $size = @getimagesize($img); $img = "<img src='$img' ".$size[3]." />"; } @@ -234,9 +196,9 @@ function vignette_automatique($img, $doc, $lien, $x=0, $y=0, $align='', $class=' } // Trouve une image caracteristique d'un document. -// Si celui-ci est une image et que les outils graphiques sont dispos, +// Si celui-ci est une image et que les outils graphiques sont dispos, // retourner le document (en exploitant sa copie locale s'il est distant). -// Autrement retourner la vignette fournie par SPIP pour ce type MIME +// Autrement retourner la vignette fournie par SPIP pour ce type MIME // Resultat: un fichier local existant function image_du_document($document) @@ -247,7 +209,7 @@ function image_du_document($document) AND $document['fichier']) { if ($document['distant'] == 'oui') { $image = _DIR_RACINE.copie_locale($document['fichier']); - } + } else $image = get_spip_doc($document['fichier']); if (@file_exists($image)) return $image; @@ -262,7 +224,7 @@ function image_du_document($document) // http://doc.spip.org/@afficher_documents_colonne function afficher_documents_colonne($id, $type="article",$script=NULL) { include_spip('inc/autoriser'); - + // il faut avoir les droits de modif sur l'article pour pouvoir uploader ! if (!autoriser('joindredocument',$type,$id)) return ""; @@ -283,7 +245,7 @@ function afficher_documents_colonne($id, $type="article",$script=NULL) { OR $GLOBALS['meta']["documents_$type"]=='non') { // Ajouter nouvelle image - $ret = "<div id='images'>\n" + $ret = "<div id='images'>\n" . $joindre(array( 'cadre' => 'relief', 'icone' => 'image-24.gif', @@ -347,7 +309,7 @@ function afficher_documents_colonne($id, $type="article",$script=NULL) { //// Documents associes $res = sql_select("D.id_document", "spip_documents AS D LEFT JOIN spip_documents_liens AS T ON T.id_document=D.id_document", "T.id_objet=" . intval($id) . " AND T.objet=" . sql_quote($type) . ((!_INTERFACE_DOCUMENTS) - ? " AND D.mode='document'" + ? " AND D.mode='document'" : " AND D.mode IN ('image','document')" ), "", "D.mode, D.id_document"); @@ -359,7 +321,7 @@ function afficher_documents_colonne($id, $type="article",$script=NULL) { $ret .= http_script('', "async_upload.js") . http_script('$("form.form_upload").async_upload(async_upload_article_edit)'); } - + return $ret; } @@ -370,7 +332,7 @@ function afficher_documents_colonne($id, $type="article",$script=NULL) { // http://doc.spip.org/@affiche_raccourci_doc function affiche_raccourci_doc($doc, $id, $align) { static $num = 0; - + if ($align) { $pipe = "|$align"; @@ -379,7 +341,7 @@ function affiche_raccourci_doc($doc, $id, $align) { } else { $align='center'; } - + return ((++$num > 1) ? "" : http_script('', "spip_barre.js")) . "\n<div style='text-align: $align'$onclick><$doc$id$pipe></div>\n"; @@ -394,7 +356,7 @@ function est_inclus($id_document) { } // -// Afficher un document sous forme de bloc depliable +// Afficher un document sous forme de bloc depliable // en donnant un apercu // et en indiquer le raccourci permettant l'incrustation // Pour les distant, donner un bouton pour rappatriement (trombone) @@ -404,7 +366,7 @@ function est_inclus($id_document) { // http://doc.spip.org/@afficher_case_document function afficher_case_document($id_document, $id, $script, $type, $deplier=false) { global $spip_lang_right; - + $document = sql_fetsel("D.id_document, D.id_vignette,D.extension,D.titre,D.descriptif,D.fichier,D.largeur,D.hauteur,D.taille,D.mode,D.distant, D.date, L.vu", "spip_documents AS D INNER JOIN spip_documents_liens AS L ON L.id_document=D.id_document", "L.id_objet=".intval($id)." AND objet=".sql_quote($type)." AND L.id_document=".intval($id_document)); if (!$document) return ""; @@ -448,7 +410,7 @@ function afficher_case_document($id_document, $id, $script, $type, $deplier=fals . affiche_raccourci_doc('doc', $id_document, 'center') . affiche_raccourci_doc('doc', $id_document, 'right') . "</div>\n"; - + if ($vign) { $raccourci .= "<div style='padding:2px; ' class='arial1 spip_xx-small'>"; $raccourci .= "<b>"._T('info_inclusion_directe')."</b><br />"; @@ -491,7 +453,7 @@ function afficher_case_document($id_document, $id, $script, $type, $deplier=fals . document_et_vignette($document, '', true) . '</div>' . "\n<div class='verdana1' style='text-align: center; color: black;'>\n" - . ($type_titre ? $type_titre : + . ($type_titre ? $type_titre : ( _T('info_document').' '.majuscules($extension))) . "</div>")) . $apercu @@ -500,7 +462,7 @@ function afficher_case_document($id_document, $id, $script, $type, $deplier=fals . "</div>\n" . $legender($id_document, $document, $script, $type, $id, "document$id_document", $deplier) . fin_cadre($style) - . '</div>'; + . '</div>'; } // Etablit la liste des documents orphelins, c'est-a-dire qui ne sont lies @@ -529,7 +491,7 @@ function lister_les_documents_orphelins() { return array_keys(array_filter($orphelins)); } -// Supprimer les documents de la table spip_documents, +// Supprimer les documents de la table spip_documents, // ainsi que les fichiers correspondants dans IMG/ // Fonction a n'appeler que sur des documents orphelins // http://doc.spip.org/@supprimer_documents diff --git a/ecrire/inc/vignette.php b/ecrire/inc/vignette.php new file mode 100644 index 0000000000000000000000000000000000000000..53b88ec5aa4794fe0bb627af8f1a1263c81ae469 --- /dev/null +++ b/ecrire/inc/vignette.php @@ -0,0 +1,53 @@ +<?php +/***************************************************************************\ + * SPIP, Systeme de publication pour l'internet * + * * + * Copyright (c) 2001-2010 * + * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * + * * + * Ce programme est un logiciel libre distribue sous licence GNU/GPL. * + * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * +\***************************************************************************/ + +if (!defined("_ECRIRE_INC_VERSION")) return; + +// +// Vignette pour les documents lies +// +function inc_vignette_dist($ext, $size=true, $loop = true) { + + if (!$ext) + $ext = 'txt'; + + // Chercher la vignette correspondant a ce type de document + // dans les vignettes persos, ou dans les vignettes standard + if ( + # installation dans un dossier /vignettes personnel, par exemple /squelettes/vignettes + !@file_exists($v = find_in_path("vignettes/".$ext.".png")) + AND !@file_exists($v = find_in_path("vignettes/".$ext.".gif")) + # dans /icones (n'existe plus) + AND !@file_exists($v = _DIR_IMG_ICONES . $ext.'.png') + AND !@file_exists($v = _DIR_IMG_ICONES . $ext.'.gif') + # icones standard + AND !@file_exists($v = _DIR_IMG_ICONES_DIST . $ext.'.png') + # cas d'une install dans un repertoire "applicatif"... + AND !@file_exists(_ROOT_IMG_ICONES_DIST . $v) + ) + if ($loop){ + $f = charger_fonction('vignette','inc'); + $v = $f('defaut', false, $loop=false); + } + else + $v = false; # pas trouve l'icone de base + + if (!$size) return $v; + + if ($size = @getimagesize($v)) { + $largeur = $size[0]; + $hauteur = $size[1]; + } + + return array($v, $largeur, $hauteur); +} + +?> \ No newline at end of file diff --git a/ecrire/public/quete.php b/ecrire/public/quete.php index 9ca6a4e1fccac3c1513a3f57a87aacc26a33083a..dfa2c4f5ff6b4cd063422760b6f6711ca0afa2f7 100644 --- a/ecrire/public/quete.php +++ b/ecrire/public/quete.php @@ -29,7 +29,7 @@ function quete_chapo($id_article, $connect) { function quete_parent_lang($table,$id,$connect=''){ static $cache_quete = array(); - + if (!isset($cache_quete[$connect][$table][$id]) AND in_array($table,array('spip_rubriques','spip_articles','spip_syndic','spip_breves'))){ $select = ($table=='spip_rubriques'?'id_parent':'id_rubrique'); @@ -76,7 +76,7 @@ function quete_profondeur($id, $connect='') { // http://doc.spip.org/@quete_date_postdates function quete_date_postdates() { return - date('Y-m-d H:i:s', + date('Y-m-d H:i:s', ($GLOBALS['meta']['date_prochain_postdate'] > time()) ? $GLOBALS['meta']['date_prochain_postdate'] : (time()+(3600*24*10000))) ; @@ -146,7 +146,10 @@ function quete_logo_file($row, $connect=NULL) { include_spip('inc/documents'); $logo = vignette_logo_document($row, $connect); if (!$logo) $logo = image_du_document($row); - if (!$logo) $logo = vignette_par_defaut($row['extension'], false); + if (!$logo){ + $f = charger_fonction('vignette','inc'); + $logo = $f($row['extension'], false); + } return get_spip_doc($logo); } @@ -251,7 +254,7 @@ function quete_debut_pagination($primary,$valeur,$pas,$res,$serveur=''){ // si on a pas trouve if ($row[$primary]!=$valeur) return 0; - + // sinon, calculer le bon numero de page return floor($pos/$pas)*$pas; }