You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
109 lines
2.8 KiB
109 lines
2.8 KiB
<?php |
|
if (!defined('_ECRIRE_INC_VERSION')) { |
|
return; |
|
} |
|
|
|
/** |
|
* Renvoie une taille de dossier ou de fichier humainement lisible en ajustant le format et l'unité. |
|
* |
|
* @param int $octets Taille d'un dossier ou fichier en octets |
|
* @param string $systeme Système d'unité dans lequel calculer et afficher la taille lisble. Vaut `BI` (défaut) ou `SI`. |
|
* |
|
* @return string Taille affichée de manière humainement lisible |
|
*/ |
|
function mes_fichiers_afficher_taille($octets, $systeme = 'BI') { |
|
|
|
// Texte à afficher pour la taille |
|
$affichage = ''; |
|
|
|
static $unites = ['octets', 'ko', 'mo', 'go']; |
|
static $precisions = [0, 1, 1, 2]; |
|
|
|
if ($octets >= 1) { |
|
// Déterminer le nombre d'octets représentant le kilo en fonction du système choisi |
|
$systeme = strtolower($systeme); |
|
if ($systeme === 'bi') { |
|
$kilo = 1024; |
|
$suffixe_item = "_$systeme"; |
|
$module = 'mes_fichiers'; |
|
} else { |
|
$kilo = 1000; |
|
$suffixe_item = ''; |
|
$module = 'spip'; |
|
} |
|
|
|
// Identification de la puissance en "kilo" correspondant à l'unité la plus appropriée |
|
$puissance = floor(log($octets, $kilo)); |
|
|
|
// Calcul de la taille et choix de l'unité |
|
$affichage = _T( |
|
$module . ':taille_' . $unites[$puissance] . $suffixe_item, |
|
[ |
|
'taille' => round($octets / pow($kilo, $puissance), $precisions[$puissance]) |
|
] |
|
); |
|
} |
|
|
|
return $affichage; |
|
} |
|
|
|
/** |
|
* Compile la balise `#ARCHIVE_MF_LISTER` qui fournit la liste archives disponibles et accessibles. |
|
* La signature de la balise est : `#ARCHIVE_MF_LISTER`. |
|
* |
|
* @param Champ $p Pile au niveau de la balise. |
|
* |
|
* @return Champ Pile complétée par le code à générer. |
|
**/ |
|
function balise_ARCHIVE_MF_LISTER_dist($p) { |
|
|
|
// Aucun argument à la balise. |
|
$p->code = "calculer_liste_archives_mf()"; |
|
|
|
return $p; |
|
} |
|
|
|
/** |
|
* Permet l'appel de la fonction archive_mf_lister() pour le compte de la balise du même nom. |
|
* |
|
* @internal |
|
* |
|
* @return array |
|
*/ |
|
function calculer_liste_archives_mf() { |
|
|
|
include_spip('inc/mes_fichiers_archive_mf'); |
|
return archive_mf_lister(); |
|
} |
|
|
|
/** |
|
* Compile la balise `#ARCHIVE_MF_AFFICHER_RESUME` qui détaille le contenu d'une archive et le présente sous |
|
* une forme HTML. |
|
* La signature de la balise est : `#ARCHIVE_MF_AFFICHER_RESUME{chemin_archive}`. |
|
* |
|
* @param Champ $p Pile au niveau de la balise. |
|
* |
|
* @return Champ Pile complétée par le code à générer. |
|
**/ |
|
function balise_ARCHIVE_MF_AFFICHER_RESUME_dist($p) { |
|
|
|
$chemin = interprete_argument_balise(1, $p); |
|
$chemin = str_replace('\'', '"', $chemin); |
|
$p->code = "calculer_resume_archive_mf($chemin)"; |
|
|
|
return $p; |
|
} |
|
/** |
|
* Permet l'appel de la fonction archive_mf_lister() pour le compte de la balise du même nom. |
|
* |
|
* @internal |
|
* |
|
* @param string $chemin |
|
* |
|
* @return string |
|
*/ |
|
function calculer_resume_archive_mf($chemin) { |
|
|
|
include_spip('inc/mes_fichiers_archive_mf'); |
|
return archive_mf_informer($chemin); |
|
}
|
|
|