Пример #1
0
/**
 * Filtre pour afficher l'img icone d'un objet
 *
 * @param string $objet
 * @param int $taille
 * @return string
 */
function objet_icone($objet, $taille = 24)
{
    $icone = objet_info($objet, 'icone_objet') . "-" . $taille . ".png";
    $icone = chemin_image($icone);
    $balise_img = charger_filtre('balise_img');
    return $icone ? $balise_img($icone, _T(objet_info($objet, 'texte_objet'))) : '';
}
/**
 * Calcule la vignette d'une extension (l'image du type de fichier)
 *
 * Utile dans une boucle DOCUMENTS pour afficher une vignette du type
 * du document (balise `#EXTENSION`) alors que ce document a déjà une vignette
 * personnalisée (affichable par `#LOGO_DOCUMENT`).
 *
 * @example
 *     `[(#EXTENSION|vignette)]` produit une balise `<img ... />`
 *     `[(#EXTENSION|vignette{true})]` retourne le chemin de l'image
 *
 * @param string $extension
 *     L'extension du fichier, exemple : png ou pdf
 * @param bool $get_chemin
 *     false pour obtenir une balise img de l'image,
 *     true pour obtenir seulement le chemin du fichier
 * @return string
 *     Balise HTML <img...> ou chemin du fichier
 **/
function filtre_vignette_dist($extension = 'defaut', $get_chemin = false)
{
    static $vignette = false;
    static $balise_img = false;
    if (!$vignette) {
        $vignette = charger_fonction('vignette', 'inc');
        $balise_img = charger_filtre('balise_img');
    }
    $fichier = $vignette($extension, false);
    // retourne simplement le chemin du fichier
    if ($get_chemin) {
        return $fichier;
    }
    // retourne une balise <img ... />
    return $balise_img($fichier);
}
/**
 * Massicoter un logo
 *
 * Traitement automatique sur les balises #LOGO_*
 *
 * @param string $fichier : Le logo
 *
 * @return string : Un logo massicoté
 */
function massicoter_logo($logo, $objet_type = null, $id_objet = null, $role = null, $env = null)
{
    include_spip('inc/filtres');
    if (!$logo) {
        return $logo;
    }
    $src = extraire_attribut($logo, 'src');
    $alt = extraire_attribut($logo, 'alt');
    $classes = extraire_attribut($logo, 'class');
    $onmouseover = extraire_attribut($logo, 'onmouseover');
    $onmouseout = extraire_attribut($logo, 'onmouseout');
    /* S'il n'y a pas d'id_objet, on essaie de le deviner avec le nom du
       fichier, c'est toujours mieux que rien. Sinon on abandonne… */
    if (is_null($id_objet)) {
        $objet = massicot_trouver_objet_logo($src);
        /* Si le plugin roles_documents est activé, l'objet n'est pas forcément
         * devinable via le nom de fichier (notamment avec la balise
         * LOGO_ARTICLE_RUBRIQUE). Dans ce cas on essaie de bidouiller un truc
         * avec l'environnement. */
        if (test_plugin_actif('roles_documents') and $env) {
            if (isset($env['id_article'])) {
                $objet = array('objet' => 'article', 'id_objet' => $env['id_article']);
            } elseif (isset($env['id_rubrique'])) {
                $objet = array('objet' => 'rubrique', 'id_objet' => $env['id_rubrique']);
            }
        }
        if (is_null($objet)) {
            return $logo;
        }
        $objet_type = $objet['objet'];
        $id_objet = $objet['id_objet'];
    }
    $parametres = massicot_get_parametres($objet_type, $id_objet, $role);
    $fichier = massicoter_fichier($src, $parametres);
    if ($onmouseout) {
        $onmouseout = str_replace($src, $fichier, $onmouseout);
    }
    if ($onmouseover) {
        $src_off = preg_replace('/^.*[\']([^\']+)[\']/', '$1', $onmouseover);
        $parametres_off = massicot_get_parametres($objet_type, $id_objet, 'logo_survol');
        $fichier_off = massicoter_fichier($src_off, $parametres_off);
        $onmouseover = str_replace($src_off, $fichier_off, $onmouseover);
    }
    $balise_img = charger_filtre('balise_img');
    $balise = $balise_img($fichier, $alt, $classes);
    $balise = inserer_attribut($balise, 'onmouseover', $onmouseover);
    $balise = inserer_attribut($balise, 'onmouseout', $onmouseout);
    return $balise;
}
Пример #4
0
/**
 * Initialiser la page pour l'affichage des progres de l'upgrade
 * uniquement si la page n'a pas deja ete initilalisee
 * 
 * @param string $installee
 * @param string $meta
 * @param string $table
 * @return
 */
function maj_debut_page($installee, $meta, $table)
{
    static $done = false;
    if ($done) {
        return;
    }
    include_spip('inc/minipres');
    @ini_set("zlib.output_compression", "0");
    // pour permettre l'affichage au fur et a mesure
    $timeout = _UPGRADE_TIME_OUT * 2;
    $titre = _T('titre_page_upgrade');
    $balise_img = charger_filtre('balise_img');
    $titre .= $balise_img(chemin_image('searching.gif'));
    echo install_debut_html($titre);
    // script de rechargement auto sur timeout
    $redirect = generer_url_ecrire('upgrade', "reinstall={$installee}&meta={$meta}&table={$table}", true);
    echo http_script("window.setTimeout('location.href=\"" . $redirect . "\";'," . $timeout * 1000 . ")");
    echo "<div style='text-align: left'>\n";
    ob_flush();
    flush();
    $done = true;
}