/** * Calculer la taille du cache ou du cache image pour l'afficher en ajax sur la page d'admin de SPIP * * @param string|null $arg */ function action_calculer_taille_cache_dist($arg = null) { if (is_null($arg)) { $securiser_action = charger_fonction('securiser_action', 'inc'); $arg = $securiser_action(); } include_spip('inc/filtres'); if ($arg == 'images') { $taille = calculer_taille_dossier(_DIR_VAR); $res = _T('ecrire:taille_cache_image', array('dir' => joli_repertoire(_DIR_VAR), 'taille' => "<b>" . (taille_en_octets($taille) > 0 ? taille_en_octets($taille) : "0 octet") . "</b>")); } else { include_spip('inc/invalideur'); $taille = calculer_taille_dossier(_DIR_CACHE_XML) + calculer_taille_dossier(_DIR_CACHE . 'skel/') + calculer_taille_dossier(_DIR_CACHE . 'wheels/') + calculer_taille_dossier(_DIR_CACHE . 'contextes/'); $taille += intval(taille_du_cache()); if ($taille <= 150000) { $res = _T('taille_cache_vide'); } elseif ($taille <= 1024 * 1024) { $res = _T('taille_cache_moins_de', array('octets' => taille_en_octets(1024 * 1024))); } else { $res = _T('taille_cache_octets', array('octets' => taille_en_octets($taille))); } $res = "<b>{$res}</b>"; } $res = "<p>{$res}</p>"; ajax_retour($res); }
/** * Traite l'erreur d'un upload trop gros * * L'erreur est appelée depuis public.php et medias_detecter_fond_par_defaut * et affiche un minipres avec la taille limite de documents possibles * * @see minipres() **/ function erreur_upload_trop_gros() { include_spip('inc/filtres'); $msg = "<p>" . taille_en_octets($_SERVER["CONTENT_LENGTH"]) . '<br />' . _T('medias:upload_limit', array('max' => ini_get('upload_max_filesize'))) . "</p>"; echo minipres(_T('pass_erreur'), "<div class='upload_answer upload_error'>" . $msg . "</div>"); exit; }
function spip_cache_action_rapide() { include_spip('inc/texte'); // pour attribut_html() if ($n = taille_du_cache()) $info = _T('taille_cache_octets', array('octets' => taille_en_octets($n))); else $info = _T('taille_cache_vide'); // <legend> : pour la description de l'outil inactif // syntaxe : ajax_action_auteur($action, $id, $script, $args='', $corps=false, $args_ajax='', $fct_ajax='') // on envoie une action 'action_rapide' car 'purger' n'existe pas (encore?) en exec/ return ajax_action_auteur('action_rapide', 'cache', 'admin_couteau_suisse', "arg=spip_cache|description_outil&cmd=descrip#cs_action_rapide", "\n<fieldset class='cs_hidden'><legend>"._T('bouton_vider_cache')."</legend></fieldset><div style='text-align: center; padding:0.4em;'>$info<br /><input class='fondo' type='submit' value=\"" . attribut_html(_T('bouton_vider_cache')) . '" /></div>') // bouton d'acualisation . ajax_action_auteur('action_rapide', 'actualise', 'admin_couteau_suisse', "arg=spip_cache|description_outil&cmd=descrip#cs_action_rapide", "\n<div class='cs_sobre'><input class='cs_sobre' type='submit' value=\" [" . attribut_html(_T('couteauprive:rss_actualiser')).']" /></div>'); /* // appel direct vers SPIP, sans ajax : return redirige_action_post('purger', 'cache', 'admin_couteau_suisse', "cmd=descrip&outil=spip_cache#cs_infos", "\n<div style='text-align: center; padding:0.4em;'><input class='fondo' type='submit' value=\"" . attribut_html(_T('bouton_vider_cache')) . "\" /> ($info)</div>"); */ }
/** * Lister les fichiers contenus dans un zip * * @param array $files * La liste des fichiers * @return string $res * La liste HTML des fichiers <li>...</li> */ function joindre_liste_contenu_tailles_archive($files) { include_spip('inc/charsets'); # pour le nom de fichier $res = ''; if (is_array($files)) { foreach ($files as $nom => $file) { $nom = translitteration($nom); $date = date_interface(date("Y-m-d H:i:s", $file['mtime'])); $taille = taille_en_octets($file['size']); $res .= "<li title=\"" . attribut_html($title) . "\"><b>{$nom}</b> – {$taille}<br /> {$date}</li>\n"; } } return $res; }
/** * Verifier si le fichier respecte les contraintes de tailles * * @param array $infos * @return bool|mixed|string */ function verifier_taille_document_acceptable(&$infos) { // si ce n'est pas une image if (!$infos['type_image']) { if (defined('_DOC_MAX_SIZE') and _DOC_MAX_SIZE > 0 and $infos['taille'] > _DOC_MAX_SIZE * 1024) { return _T('medias:info_doc_max_poids', array('maxi' => taille_en_octets(_DOC_MAX_SIZE * 1024), 'actuel' => taille_en_octets($infos['taille']))); } } else { if (defined('_IMG_MAX_WIDTH') and _IMG_MAX_WIDTH and $infos['largeur'] > _IMG_MAX_WIDTH or defined('_IMG_MAX_HEIGHT') and _IMG_MAX_HEIGHT and $infos['hauteur'] > _IMG_MAX_HEIGHT) { $max_width = (defined('_IMG_MAX_WIDTH') and _IMG_MAX_WIDTH) ? _IMG_MAX_WIDTH : '*'; $max_height = (defined('_IMG_MAX_HEIGHT') and _IMG_MAX_HEIGHT) ? _IMG_MAX_HEIGHT : '*'; // pas la peine d'embeter le redacteur avec ca si on a active le calcul des miniatures // on met directement a la taille maxi a la volee if (isset($GLOBALS['meta']['creer_preview']) and $GLOBALS['meta']['creer_preview'] == 'oui') { include_spip('inc/filtres'); $img = filtrer('image_reduire', $infos['fichier'], $max_width, $max_height); $img = extraire_attribut($img, 'src'); $img = supprimer_timestamp($img); if (@file_exists($img) and $img !== $infos['fichier']) { spip_unlink($infos['fichier']); @rename($img, $infos['fichier']); $size = @getimagesize($infos['fichier']); $infos['largeur'] = $size[0]; $infos['hauteur'] = $size[1]; $infos['taille'] = @filesize($infos['fichier']); } } if (defined('_IMG_MAX_WIDTH') and _IMG_MAX_WIDTH and $infos['largeur'] > _IMG_MAX_WIDTH or defined('_IMG_MAX_HEIGHT') and _IMG_MAX_HEIGHT and $infos['hauteur'] > _IMG_MAX_HEIGHT) { return _T('medias:info_image_max_taille', array('maxi' => _T('info_largeur_vignette', array('largeur_vignette' => $max_width, 'hauteur_vignette' => $max_height)), 'actuel' => _T('info_largeur_vignette', array('largeur_vignette' => $infos['largeur'], 'hauteur_vignette' => $infos['hauteur'])))); } } if (defined('_IMG_MAX_SIZE') and _IMG_MAX_SIZE > 0 and $infos['taille'] > _IMG_MAX_SIZE * 1024) { return _T('medias:info_image_max_poids', array('maxi' => taille_en_octets(_IMG_MAX_SIZE * 1024), 'actuel' => taille_en_octets($infos['taille']))); } } // verifier en fonction du mode si une fonction est proposee if ($verifier_document_mode = charger_fonction("verifier_document_mode_" . $infos['mode'], "inc", true)) { return $verifier_document_mode($infos); } return true; }
function affiche_progression_javascript($abs_pos,$size, $table="", $retour='') { include_spip('inc/charsets'); echo "\n<script type='text/javascript'><!--\n"; if ($abs_pos == '100 %') { echo "document.progression.taille.value='$abs_pos';\n"; if ($x = $GLOBALS['erreur_restauration']) { echo "document.progression.recharge.value='".str_replace("'", "\\'", unicode_to_javascript(html2unicode(_T('avis_erreur').": $x")))." ';\n"; } else { if (!$retour) $retour = self(); echo "document.progression.recharge.value='".str_replace("'", "\\'", unicode_to_javascript(html2unicode(_T('info_fini'))))."';\n"; echo "window.setTimeout('location.href=\"$retour\";',0);"; } } else { if (trim($table)) echo "document.progression.recharge.value='$table';\n"; if (!$size) $taille = preg_replace("/ /", " ", taille_en_octets($abs_pos)); else $taille = floor(100 * $abs_pos / $size)." %"; echo "document.progression.taille.value='$taille';\n"; } echo "\n--></script>\n"; if (function_exists('ob_flush')) @ob_flush(); flush(); }
function BOUCLE_documents_jointshtml_4dc0f36e18dd7a26ebc382429cbc9835(&$Cache, &$Pile, &$doublons, &$Numrows, $SP) { static $command = array(); static $connect; $command['connect'] = $connect = ''; $in = array(); $in[] = 'gif'; $in[] = 'jpg'; $in[] = 'png'; if (!isset($command['table'])) { $command['table'] = 'documents'; $command['id'] = '_documents_joints'; $command['from'] = array('documents' => 'spip_documents', 'L1' => 'spip_documents_liens', 'L2' => 'spip_types_documents'); $command['type'] = array(); $command['groupby'] = array(); $command['select'] = array("0+documents.titre AS num", "documents.date", "documents.titre", "documents.id_document", "L2.titre AS type_document", "documents.taille", "documents.descriptif"); $command['orderby'] = array('num', 'documents.date DESC'); $command['join'] = array('L1' => array('documents', 'id_document'), 'L2' => array('documents', 'extension')); $command['limit'] = ''; $command['having'] = array(); } $command['where'] = array(quete_condition_statut('documents.statut', 'publie,prop,prepa', 'publie', ''), array('IN', 'documents.mode', '(\'image\',\'document\')'), array('(documents.taille > 0 OR documents.distant=\'oui\')'), array('=', 'L1.id_objet', sql_quote(@$Pile[0]['id_rubrique'], '', 'bigint(21) NOT NULL DEFAULT \'0\'')), array('=', 'L1.objet', sql_quote('rubrique')), sql_in('documents.extension', sql_quote($in), 'NOT'), array('=', 'L1.vu', "'non'")); if (defined("_BOUCLE_PROFILER")) { $timer = time() + microtime(); } $t0 = ""; // REQUETE $iter = IterFactory::create("SQL", $command, array('squelettes/inc/inc-rub-documents.html', 'html_4dc0f36e18dd7a26ebc382429cbc9835', '_documents_joints', 39, $GLOBALS['spip_lang'])); if (!$iter->err()) { $l1 = _T('spip:info_document'); $SP++; // RESULTATS while ($Pile[$SP] = $iter->fetch()) { $t1 = ' ' . (($t1 = strval(interdire_scripts(supprimer_numero(traiter_doublons_documents($doublons, typo(supprimer_numero($Pile[$SP]['titre']), "TYPO", $connect, $Pile[0])))))) !== '' ? '<h3 class="" style="margin-bottom: .6em;"><a href="' . vider_url(urlencode_1738(generer_url_entite($Pile[$SP]['id_document'], 'document', '', '', true))) . '">' . $t1 . '</a></h3>' : '') . ' ' . (($t1 = strval(filtrer('image_graver', filtrer('image_reduire', ($doublons["documents"] .= "," . $Pile[$SP]['id_document']) ? quete_logo_document(quete_document($Pile[$SP]['id_document'], ''), vider_url(urlencode_1738(generer_url_entite($Pile[$SP]['id_document'], 'document', '', '', true))), '', '', 0, 0, '') : '', '60', '0')))) !== '' ? '<div style="float:left;padding-right: .5em; width:36%;"> <div style="float:left; margin-right: .5em;">' . $t1 . ('</div> <small> ' . (($t2 = strval(interdire_scripts(affdate(normaliser_date($Pile[$SP]['date']))))) !== '' ? $t2 . '<br />' : '') . ' ' . (($t2 = strval(interdire_scripts($Pile[$SP]['type_document']))) !== '' ? $l1 . ' : ' . $t2 . '<br />' : '') . ' ' . interdire_scripts(taille_en_octets($Pile[$SP]['taille'])) . ' </small> </div>') : '') . ' ' . (($t1 = strval(interdire_scripts(traiter_doublons_documents($doublons, propre($Pile[$SP]['descriptif'], $connect, $Pile[0]))))) !== '' ? '<div class="" style="margin: 0 0 0 40%; border-left: 1px gray dotted;padding-left: 1em">' . $t1 . '</div>' : '') . ' '; $t0 .= (strlen($t1) && strlen($t0) ? '<hr style=\'clear:both\' />' : '') . $t1; } $iter->free(); } if (defined("_BOUCLE_PROFILER") and 1000 * ($timer = time() + microtime() - $timer) > _BOUCLE_PROFILER) { spip_log(intval(1000 * $timer) . "ms BOUCLE_documents_joints @ squelettes/inc/inc-rub-documents.html", "profiler" . _LOG_AVERTISSEMENT); } return $t0; }
/** * Ajouter un document (au format $_FILES)<br> * (n'ajoute pas le contenu en base dans spip_documents...) * * @param string $source Le fichier sur le serveur (/var/tmp/xyz34) * @param string $nom_envoye Son nom chez le client (portequoi.pdf) * @param string $nom_dest Le nom sous lequel le sauvegarder * @param string $dans Où l'enregistrer * @return string */ function cfg_ajoute_un_document($source, $nom_envoye, $nom_dest, $dans='config') { include_spip('inc/modifier'); include_spip('inc/ajouter_documents'); $type_image = ''; // au pire // tester le type de document : // - interdit a l'upload ? // - quelle extension dans spip_types_documents ? // - est-ce "inclus" comme une image ? preg_match(",^(.*)\.([^.]+)$,", $nom_envoye, $match); @list(,$titre,$ext) = $match; $ext = corriger_extension(strtolower($ext)); // ajouter l'extension au nom propose... $row = sql_fetsel("inclus", "spip_types_documents", "extension=" . sql_quote($ext) . " AND upload='oui'"); if ($row) { $type_inclus_image = ($row['inclus'] == 'image'); // hum stocke dans IMG/$ext ? $fichier = cfg_copier_document($ext, $nom_dest.'.'.$ext, $source, $dans); } else { /* STOCKER LES DOCUMENTS INCONNUS AU FORMAT .ZIP */ $type_inclus_image = false; if (!sql_countsel("spip_types_documents", "extension='zip' AND upload='oui'")) { spip_log("Extension $ext interdite a l'upload"); return; } $ext = 'zip'; if (!$tmp_dir = tempnam(_DIR_TMP, 'tmp_upload')) return; spip_unlink($tmp_dir); @mkdir($tmp_dir); $tmp = $tmp_dir.'/'.translitteration($nom_envoye); $nom_envoye .= '.zip'; # conserver l'extension dans le nom de fichier, par exemple toto.js => toto.js.zip _COMPAT_CFG_192 ? cfg_deplacer_fichier_upload($source, $tmp) : deplacer_fichier_upload($source, $tmp); include_spip('inc/pclzip'); $source = _DIR_TMP . 'archive.zip'; $archive = new PclZip($source); $v_list = $archive->create($tmp, PCLZIP_OPT_REMOVE_PATH, $tmp_dir, PCLZIP_OPT_ADD_PATH, ''); effacer_repertoire_temporaire($tmp_dir); if (!$v_list) { spip_log("Echec creation du zip "); return; } // hum too ? $fichier = cfg_copier_document($ext, $nom_dest.'.zip', $source, $dans); spip_unlink($source); } if ($ext == "svg") { // supprimer les scripts traite_svg($fichier); } elseif ($ext != "mov") {// image ? // Si c'est une image, recuperer sa taille et son type (detecte aussi swf) $size_image = @getimagesize($fichier); $type_image = decoder_type_image($size_image[2]); } // Quelques infos sur le fichier if (!$fichier OR !@file_exists($fichier) OR !$taille = @intval(filesize($fichier))) { spip_log ("Echec copie du fichier $fichier"); return; } if (!$type_image) { if (_DOC_MAX_SIZE > 0 AND $taille > _DOC_MAX_SIZE*1024) { spip_unlink ($fichier); check_upload_error(6, _T('info_logo_max_poids', array('maxi' => taille_en_octets(_DOC_MAX_SIZE*1024), 'actuel' => taille_en_octets($taille)))); } } else { // image if (_IMG_MAX_SIZE > 0 AND $taille > _IMG_MAX_SIZE*1024) { spip_unlink ($fichier); check_upload_error(6, _T('info_logo_max_poids', array('maxi' => taille_en_octets(_IMG_MAX_SIZE*1024), 'actuel' => taille_en_octets($taille)))); } if (_IMG_MAX_WIDTH * _IMG_MAX_HEIGHT AND ($size_image[0] > _IMG_MAX_WIDTH OR $size_image[1] > _IMG_MAX_HEIGHT)) { spip_unlink ($fichier); check_upload_error(6, _T('info_logo_max_taille', array( 'maxi' => _T('info_largeur_vignette', array('largeur_vignette' => _IMG_MAX_WIDTH, 'hauteur_vignette' => _IMG_MAX_HEIGHT)), 'actuel' => _T('info_largeur_vignette', array('largeur_vignette' => $size_image[0], 'hauteur_vignette' => $size_image[1])) ))); } } return $fichier; }
/** * Verifier si le fichier respecte les contraintes de tailles * * @param array $infos * @return bool|mixed|string */ function verifier_taille_document_acceptable($infos) { // si ce n'est pas une image if (!$infos['type_image']) { if (_DOC_MAX_SIZE > 0 and $infos['taille'] > _DOC_MAX_SIZE * 1024) { return _T('medias:info_doc_max_poids', array('maxi' => taille_en_octets(_DOC_MAX_SIZE * 1024), 'actuel' => taille_en_octets($infos['taille']))); } } else { if (_IMG_MAX_SIZE > 0 and $infos['taille'] > _IMG_MAX_SIZE * 1024) { return _T('medias:info_image_max_poids', array('maxi' => taille_en_octets(_IMG_MAX_SIZE * 1024), 'actuel' => taille_en_octets($infos['taille']))); } if (_IMG_MAX_WIDTH * _IMG_MAX_HEIGHT and ($infos['largeur'] > _IMG_MAX_WIDTH or $infos['hauteur'] > _IMG_MAX_HEIGHT)) { return _T('medias:info_logo_max_taille', array('maxi' => _T('info_largeur_vignette', array('largeur_vignette' => _IMG_MAX_WIDTH, 'hauteur_vignette' => _IMG_MAX_HEIGHT)), 'actuel' => _T('info_largeur_vignette', array('largeur_vignette' => $infos['largeur'], 'hauteur_vignette' => $infos['hauteur'])))); } } // verifier en fonction du mode si une fonction est proposee if ($verifier_document_mode = charger_fonction("verifier_document_mode_" . $infos['mode'], "inc", true)) { return $verifier_document_mode($infos); } return true; }
/** * @param string $objet * @param int $id_objet * @param string $etat * on ou off * @param string|array $source * array : sous tableau de $_FILE issu de l'upload * string : fichier source (chemin complet ou chemin relatif a tmp/upload) * @return string */ function logo_modifier($objet, $id_objet, $etat, $source) { $chercher_logo = charger_fonction('chercher_logo', 'inc'); $objet = objet_type($objet); $primary = id_table_objet($objet); include_spip('inc/chercher_logo'); $type = type_du_logo($primary); // nom du logo $nom = $type . $etat . $id_objet; // supprimer le logo eventueel existant logo_supprimer($objet, $id_objet, $etat); include_spip('inc/documents'); $erreur = ""; if (!$source) { spip_log("spip_image_ajouter : source inconnue"); $erreur = "source inconnue"; return $erreur; } $file_tmp = _DIR_LOGOS . $nom . '.tmp'; $ok = false; // fichier dans upload/ if (is_string($source)) { if (file_exists($source)) { $ok = @copy($source, $file_tmp); } elseif (file_exists($f = determine_upload() . $source)) { $ok = @copy($f, $file_tmp); } } elseif (!($erreur = check_upload_error($source['error'], "", true))) { // analyse le type de l'image (on ne fait pas confiance au nom de // fichier envoye par le browser : pour les Macs c'est plus sur) $ok = deplacer_fichier_upload($source['tmp_name'], $file_tmp); } if ($erreur) { return $erreur; } if (!$ok or !file_exists($file_tmp)) { spip_log($erreur = "probleme de copie pour {$file_tmp} "); return $erreur; } $size = @getimagesize($file_tmp); $type = !$size ? '' : ($size[2] > 3 ? '' : $GLOBALS['formats_logos'][$size[2] - 1]); if ($type) { @rename($file_tmp, $file_tmp . ".{$type}"); $file_tmp = $file_tmp . ".{$type}"; $poids = filesize($file_tmp); if (defined('_LOGO_MAX_WIDTH') or defined('_LOGO_MAX_HEIGHT')) { if (defined('_LOGO_MAX_WIDTH') and _LOGO_MAX_WIDTH and $size[0] > _LOGO_MAX_WIDTH or defined('_LOGO_MAX_HEIGHT') and _LOGO_MAX_HEIGHT and $size[1] > _LOGO_MAX_HEIGHT) { $max_width = (defined('_LOGO_MAX_WIDTH') and _LOGO_MAX_WIDTH) ? _LOGO_MAX_WIDTH : '*'; $max_height = (defined('_LOGO_MAX_HEIGHT') and _LOGO_MAX_HEIGHT) ? _LOGO_MAX_HEIGHT : '*'; // pas la peine d'embeter le redacteur avec ca si on a active le calcul des miniatures // on met directement a la taille maxi a la volee if (isset($GLOBALS['meta']['creer_preview']) and $GLOBALS['meta']['creer_preview'] == 'oui') { include_spip('inc/filtres'); $img = filtrer('image_reduire', $file_tmp, $max_width, $max_height); $img = extraire_attribut($img, 'src'); $img = supprimer_timestamp($img); if (@file_exists($img) and $img !== $file_tmp) { spip_unlink($file_tmp); @rename($img, $file_tmp); $size = @getimagesize($file_tmp); } } // verifier au cas ou image_reduire a echoue if (defined('_LOGO_MAX_WIDTH') and _LOGO_MAX_WIDTH and $size[0] > _LOGO_MAX_WIDTH or defined('_LOGO_MAX_HEIGHT') and _LOGO_MAX_HEIGHT and $size[1] > _LOGO_MAX_HEIGHT) { spip_unlink($file_tmp); $erreur = _T('info_logo_max_poids', array('maxi' => _T('info_largeur_vignette', array('largeur_vignette' => $max_width, 'hauteur_vignette' => $max_height)), 'actuel' => _T('info_largeur_vignette', array('largeur_vignette' => $size[0], 'hauteur_vignette' => $size[1])))); } } } if (!$erreur and defined('_LOGO_MAX_SIZE') and _LOGO_MAX_SIZE and $poids > _LOGO_MAX_SIZE * 1024) { spip_unlink($file_tmp); $erreur = _T('info_logo_max_poids', array('maxi' => taille_en_octets(_LOGO_MAX_SIZE * 1024), 'actuel' => taille_en_octets($poids))); } if (!$erreur) { @rename($file_tmp, _DIR_LOGOS . $nom . ".{$type}"); } } else { spip_unlink($file_tmp); $erreur = _T('info_logo_format_interdit', array('formats' => join(', ', $GLOBALS['formats_logos']))); } return $erreur; }
function exec_spiplistes_voir_journal () { static $eol = PHP_EOL; global $connect_statut , $connect_toutes_rubriques , $connect_id_auteur ; // la configuration est réservée aux admins tt rubriques $autoriser = ($connect_statut == "0minirezo") && $connect_toutes_rubriques; $taille_cache = spip_fetch_array(spip_query("SELECT SUM(taille) AS n FROM spip_caches WHERE type='t'")); $message_gauche = ($taille_cache = $taille_cache['n']) ? _T('taille_cache_octets', array('octets' => taille_en_octets($taille_cache))) : _T('taille_cache_vide') ; $message_gauche = '<p class="verdana2">' . $message_gauche . '</p>' . $eol; //////////////////////////////////// // PAGE CONTENU //////////////////////////////////// $titre_page = spiplistes_journal_titre(); // Permet entre autres d'ajouter les classes a' la page : <body class='$rubrique $sous_rubrique'> $rubrique = _SPIPLISTES_PREFIX; $sous_rubrique = 'voir_journal'; $commencer_page = charger_fonction('commencer_page', 'inc'); echo($commencer_page(_T('spiplistes:spiplistes') . ' - ' . trim($titre_page), $rubrique, $sous_rubrique)); if(!$autoriser) { die (spiplistes_terminer_page_non_autorisee() . fin_page()); } $page_result = '' . '<br style="line-height:3em" />' . $eol . spiplistes_gros_titre($titre_page, '', true) . barre_onglets($rubrique, $sous_rubrique) . debut_gauche($rubrique, true) . spiplistes_boite_meta_info(_SPIPLISTES_PREFIX) . $message_gauche . pipeline('affiche_gauche', array('args'=>array('exec'=>$sous_rubrique),'data'=>'')) //. creer_colonne_droite($rubrique, true) // spiplistes_boite_raccourcis() s'en occupe . spiplistes_boite_raccourcis(true) . spiplistes_boite_autocron() // ne pas gener l'edition . spiplistes_boite_info_spiplistes(true) . pipeline('affiche_droite', array('args'=>array('exec'=>$sous_rubrique),'data'=>'')) . debut_droite($rubrique, true) ; // affiche milieu $page_result .= '' . debut_cadre_trait_couleur("administration-24.gif", true, '', $titre_page) . spiplistes_journal_lire(_SPIPLISTES_PREFIX) . fin_cadre_trait_couleur(true) ; // Fin de la page echo($page_result); echo pipeline('affiche_milieu',array('args'=>array('exec'=>$sous_rubrique),'data'=>'')) , spiplistes_html_signature(_SPIPLISTES_PREFIX) , fin_gauche(), fin_page(); }
function liste_archive_taille($files) { $res = ''; foreach ($files as $nom => $file) { $date = date_interface(date("Y-m-d H:i:s", $file['mtime'])); $taille = taille_en_octets($file['size']); $res .= "<li title=\"".texte_backend($title)."\"><b>$nom</b> – $taille<br /> $date</li>\n"; } return $res; }
function liste_sauvegardes($key, $fichier, $class, $selected, $date, $taille) { return "\n<tr class='$class'><td><input type='radio' name='archive' value='" . $fichier . "' id='dump_$key' " . ($selected?"checked='checked' ":"") . "/></td><td>\n<label for='dump_$key'>" . str_replace('/', ' / ', $fichier) . "</label></td><td style='text-align: right'>" . taille_en_octets($taille) . '</td><td>' . affdate_heure(date('Y-m-d H:i:s',$date)) . '</td></tr>'; }
function action_spip_image_ajouter_dist($arg,$sousaction2,$source) { global $formats_logos; include_spip('inc/getdocument'); if (!$sousaction2) { if (!$_FILES) $_FILES = $GLOBALS['HTTP_POST_FILES']; $source = (is_array($_FILES) ? array_pop($_FILES) : ""); } if ($source) { $f =_DIR_LOGOS . $arg . '.tmp'; if (!is_array($source)) // fichier dans upload/ $source = @copy(determine_upload() . $source, $f); else { // Intercepter une erreur a l'envoi if (check_upload_error($source['error'])) $source =""; else // analyse le type de l'image (on ne fait pas confiance au nom de // fichier envoye par le browser : pour les Macs c'est plus sur) $source = deplacer_fichier_upload($source['tmp_name'], $f); } } if (!$source) spip_log("pb de copie pour $f"); else { $size = @getimagesize($f); $type = !$size ? '': ($size[2] > 3 ? '' : $formats_logos[$size[2]-1]); if ($type) { $poids = filesize($f); if (_LOGO_MAX_SIZE > 0 AND $poids > _LOGO_MAX_SIZE*1024) { spip_unlink ($f); check_upload_error(6, _T('info_logo_max_poids', array('maxi' => taille_en_octets(_LOGO_MAX_SIZE*1024), 'actuel' => taille_en_octets($poids)))); } if (_LOGO_MAX_WIDTH * _LOGO_MAX_HEIGHT AND ($size[0] > _LOGO_MAX_WIDTH OR $size[1] > _LOGO_MAX_HEIGHT)) { spip_unlink ($f); check_upload_error(6, _T('info_logo_max_taille', array( 'maxi' => _T('info_largeur_vignette', array('largeur_vignette' => _LOGO_MAX_WIDTH, 'hauteur_vignette' => _LOGO_MAX_HEIGHT)), 'actuel' => _T('info_largeur_vignette', array('largeur_vignette' => $size[0], 'hauteur_vignette' => $size[1])) ))); } @rename ($f, _DIR_LOGOS . $arg . ".$type"); } else { spip_unlink ($f); check_upload_error(6,_T('info_logo_format_interdit', array('formats' => join(', ', $formats_logos)))); } } }
function liste_fichiers_pclzip($status) { $list = $status['files']; $ret = '<b>'._T('plugin_zip_content',array('taille'=>taille_en_octets($status['size']), 'rep'=>$status['dirname'])).'</b>'; $l .= "<ul style='font-size:x-small;'>\n"; foreach ($list as $f) { if (basename($f) == 'svn.revision') lire_fichier($status['tmpname'].'/'.$f,$svn); if ($joli = preg_replace(',^(.*/)([^/]+/?)$,', '<span style="visibility:hidden">\1</span>\2', $f)) { if (!$vu[dirname($f.'x')]++) $l .= "<li>".$f."</li>\n"; else $l .= "<li>".$joli."</li>\n"; } } $l .= "</ul>\n"; include_spip('inc/filtres'); if (preg_match(',<revision>([^<]+)<,', $svn, $t)) $rev = '<div>revision '.$t[1].'</div>'; if (preg_match(',<commit>([^<]+),', $svn, $t)) $date = '<div>' . affdate($t[1]) .'</div>'; return $ret . $rev . $date . $l; }
function vignette_automatique($img, $doc, $lien, $x = 0, $y = 0, $align = '', $class = 'spip_logos') { include_spip('inc/distant'); include_spip('inc/texte'); include_spip('inc/filtres_images_mini'); $e = $doc['extension']; if (!$img) { if ($img = image_du_document($doc)) { if (!$x and !$y) { // eviter une double reduction $img = image_reduire($img); } } else { $f = charger_fonction('vignette', 'inc'); $img = $f($e, false); $size = @getimagesize($img); $img = "<img src='{$img}' " . $size[3] . " />"; } } else { $size = @getimagesize($img); $img = "<img src='{$img}' " . $size[3] . " />"; } // on appelle image_reduire independamment de la presence ou non // des librairies graphiques // la fonction sait se debrouiller et faire de son mieux dans tous les cas if ($x or $y) { $img = image_reduire($img, $x, $y); } $img = inserer_attribut($img, 'alt', ''); $img = inserer_attribut($img, 'class', $class); if ($align) { $img = inserer_attribut($img, 'align', $align); } if (!$lien) { return $img; } $titre = supprimer_tags(typo($doc['titre'])); $titre = " - " . taille_en_octets($doc['taille']) . ($titre ? " - {$titre}" : ""); $type = sql_fetsel('titre, mime_type', 'spip_types_documents', "extension = " . sql_quote($e)); $mime = $type['mime_type']; $titre = attribut_html(couper($type['titre'] . $titre, 80)); return "<a href='{$lien}' type='{$mime}' title='{$titre}'>{$img}</a>"; }
function exec_admin_vider_dist() { global $quota_cache, $spip_lang; // autorisation a affiner if (!autoriser('configurer', 'admin_vider')){ include_spip('inc/minipres'); echo minipres(); } else { $commencer_page = charger_fonction('commencer_page', 'inc'); echo $commencer_page(_T('onglet_vider_cache'), "configuration", "cache"); echo "<br /><br /><br />"; echo gros_titre(_T('titre_admin_vider'),'', false); // barre_onglets("administration", "vider"); echo debut_gauche("",true); echo debut_boite_info(true); echo _T('info_gauche_admin_vider'); echo fin_boite_info(true); echo debut_droite("",true); echo debut_cadre_trait_couleur("cache-24.gif", true, "", _T('texte_vider_cache')); echo "\n<p style='text-align: justify;'>"._T('texte_suppression_fichiers')."</p>", "<p style='text-align: justify;'>"._T('texte_recalcul_page')."</p>"; echo "\n<div> </div>"; // // Quota et taille du cache // echo debut_cadre_relief("", true, "", _T('taille_repertoire_cache')); include_spip('inc/invalideur'); if (($n = taille_du_cache())>250*1024) $info = _T('taille_cache_octets', array('octets' => taille_en_octets($n))); else $info = _T('taille_cache_vide'); echo "<p style='text-align: justify;'><b>$info</b></p>\n"; echo "\n<p style='text-align: justify;'>"; if ($quota_cache) { echo _T('taille_cache_maxi', array('octets' => taille_en_octets($quota_cache*1024*1024))); } else { echo _T('taille_cache_infinie'); } echo ' (', _T('cache_modifiable_webmestre'),')</p>', redirige_action_post('purger', 'cache', "admin_vider", '', "\n<div style='text-align: right'><input type='submit' value=\"" . str_replace('"', '"', _T('bouton_vider_cache')) . "\" /></div>"); echo fin_cadre_relief(true); echo debut_cadre_relief("image-24.gif", true, "", _T('info_images_auto')); echo afficher_taille_cache_vignettes(); echo redirige_action_post('purger', 'vignettes', "admin_vider",'', "\n<div style='text-align: right'><input type='submit' value=\"" . str_replace('"', '"', _T('bouton_vider_cache')) . "\" /></div>"); echo fin_cadre_relief(true); echo fin_cadre_trait_couleur(true); echo "<br />"; echo fin_gauche(), fin_page(); } }
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'])) . ' — '; $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'"); } }
/** * Afficher le statut d'avancement de la copie des fichiers * * @param array $files * @return string */ function migration_afficher_status_files($files){ include_spip('inc/filtres'); $s = array(); foreach($files as $f=>$size){ if (is_numeric($size)) $s[] = _T('migration:status_nom_fichier',array('fichier'=>$f)).taille_en_octets($size); else $s[] = _T('migration:status_nom_fichier_refuse',array('fichier'=>$f)); } return implode('<br />',$s); }