Server : Apache System : Linux webd348.cluster026.gra.hosting.ovh.net 5.15.148-ovh-vps-grsec-zfs-classid #1 SMP Thu Feb 8 09:41:04 UTC 2024 x86_64 User : hednacluml ( 122243) PHP Version : 8.3.9 Disable Function : _dyuweyrj4,_dyuweyrj4r,dl Directory : /home/hednacluml/jobs/ecrire/inc/ |
<?php /***************************************************************************\ * SPIP, Système de publication pour l'internet * * * * Copyright © avec tendresse depuis 2001 * * Arnaud Martin, Antoine Pitrou, Philippe Rivière, Emmanuel Saint-James * * * * Ce programme est un logiciel libre distribué sous licence GNU/GPL. * \***************************************************************************/ /** * Fonctions pour l'affichage privé des pages exec PHP * * @package SPIP\Core\Presentation **/ if (!defined('_ECRIRE_INC_VERSION')) { return; } include_spip('inc/presentation_mini'); include_spip('inc/layer'); include_spip('inc/texte'); include_spip('inc/filtres'); include_spip('inc/boutons'); include_spip('inc/actions'); include_spip('inc/puce_statut'); include_spip('inc/filtres_ecrire'); include_spip('inc/filtres_boites'); include_spip('inc/filtres_alertes'); function debut_cadre($style, $icone = '', $fonction = '', $titre = '', $id = '', $class = '', $padding = true) { $fond = null; $style_mapping = [ 'r' => 'simple', 'e' => 'raccourcis', 'couleur' => 'basic highlight', 'couleur-foncee' => 'basic highlight', 'trait-couleur' => 'important', 'alerte' => 'notice', 'info' => 'info', 'sous_rub' => 'simple sous-rub' ]; $style_titre_mapping = ['couleur' => 'topper', 'trait-couleur' => 'section']; $c = $style_mapping[$style] ?? 'simple'; $class = $c . ($class ? " $class" : ''); if (!$padding) { $class .= ($class ? ' ' : '') . 'no-padding'; } //($id?"id='$id' ":"") if (strlen($icone) > 1) { if ($icone_renommer = charger_fonction('icone_renommer', 'inc', true)) { [$fond, $fonction] = $icone_renommer($icone, $fonction); } $size = 24; if (preg_match('/-([0-9]{1,3})[.](gif|png)$/i', $fond, $match)) { $size = $match[1]; } if ($fonction) { // 2 images pour composer l'icone : le fond (article) en background, // la fonction (new) en image $icone = http_img_pack($fonction, '', "class='cadre-icone' width='$size' height='$size'\n" . http_style_background($fond, 'no-repeat center center', $size)); } else { $icone = http_img_pack($fond, '', "class='cadre-icone' width='$size' height='$size'"); } $titre = $icone . $titre; } return boite_ouvrir($titre, $class, $style_titre_mapping[$style] ?? '', $id); } function fin_cadre() { return boite_fermer(); } function debut_cadre_relief( $icone = '', $dummy = '', $fonction = '', $titre = '', $id = '', $class = '' ) { return debut_cadre('r', $icone, $fonction, $titre, $id, $class); } function fin_cadre_relief() { return fin_cadre(); } function debut_cadre_enfonce( $icone = '', $dummy = '', $fonction = '', $titre = '', $id = '', $class = '' ) { return debut_cadre('e', $icone, $fonction, $titre, $id, $class); } function fin_cadre_enfonce() { return fin_cadre(); } function debut_cadre_sous_rub( $icone = '', $dummy = '', $fonction = '', $titre = '', $id = '', $class = '' ) { return debut_cadre('sous_rub', $icone, $fonction, $titre, $id, $class); } function fin_cadre_sous_rub() { return fin_cadre(); } function debut_cadre_couleur( $icone = '', $dummy = '', $fonction = '', $titre = '', $id = '', $class = '' ) { return debut_cadre('couleur', $icone, $fonction, $titre, $id, $class); } function fin_cadre_couleur() { return fin_cadre(); } function debut_cadre_trait_couleur( $icone = '', $dummy = '', $fonction = '', $titre = '', $id = '', $class = '' ) { return debut_cadre('trait-couleur', $icone, $fonction, $titre, $id, $class); } function fin_cadre_trait_couleur() { return fin_cadre(); } function debut_boite_alerte() { return debut_cadre('alerte', '', '', '', '', ''); } function fin_boite_alerte() { return fin_cadre(); } function debut_boite_info() { return debut_cadre('info', '', '', '', '', ''); } function fin_boite_info() { return fin_cadre(); } /** * Affiche le titre d’une page de l’interface privée. Utilisée par la plupart des fichiers `exec/xx.php`. * * @param string $titre Le titre en question * @param string $ze_logo Une image de logo * @return string Code PHP. **/ function gros_titre( $titre, $ze_logo = '' ) { return "<h1 class = 'grostitre'>" . $ze_logo . ' ' . typo($titre) . "</h1>\n"; } // La boite des raccourcis // Se place a droite si l'ecran est en mode panoramique. function bloc_des_raccourcis($bloc) { return creer_colonne_droite() . boite_ouvrir(_T('titre_cadre_raccourcis'), 'raccourcis') . $bloc . boite_fermer(); } // // Fonctions d'affichage // // Fonctions onglets // @param string $sous_classe prend la valeur second pour definir les onglet de deuxieme niveau function debut_onglet($classe = 'barre_onglet') { return "<div class = '$classe clearfix'><ul>\n"; } function fin_onglet() { return "</ul></div>\n"; } function onglet($texte, $lien, $onglet_ref, $onglet, $icone = '') { return '<li>' . ($icone ? http_img_pack($icone, '', " class='cadre-icone'") : '') . lien_ou_expose($lien, $texte, $onglet == $onglet_ref) . '</li>'; } /** * Crée un lien précédé d'une icone au dessus du texte * * @uses icone_base() * @see filtre_icone_verticale_dist() Pour l'usage en tant que filtre * * @example * ``` * $icone = icone_verticale(_T('sites:info_sites_referencer'), * generer_url_ecrire('site_edit', "id_rubrique=$id_rubrique"), * "site-24.png", "new", 'right') * ``` * * @param string $texte * texte du lien * @param string $lien * URL du lien * @param string $fond * Objet avec ou sans son extension et sa taille (article, article-24, article-24.png) * @param string $fonction * Fonction du lien (`edit`, `new`, `del`) * @param string $align * Classe CSS, tel que `left`, `right` pour définir un alignement * @param string $javascript * Javascript ajouté sur le lien * @return string * Code HTML du lien **/ function icone_verticale($texte, $lien, $fond, $fonction = '', $align = '', $javascript = '') { // cas d'ajax_action_auteur: faut defaire le boulot // (il faudrait fusionner avec le cas $javascript) if (preg_match(",^<a\shref='([^']*)'([^>]*)>(.*)</a>$,i", $lien, $r)) { [$x, $lien, $atts, $texte] = $r; $javascript .= $atts; } return icone_base($lien, $texte, $fond, $fonction, "verticale $align", $javascript); } /** * Crée un lien précédé d'une icone horizontale * * @uses icone_base() * @see filtre_icone_horizontale_dist() Pour l'usage en tant que filtre * * @param string $texte * texte du lien * @param string $lien * URL du lien * @param string $fond * Objet avec ou sans son extension et sa taille (article, article-24, article-24.png) * @param string $fonction * Fonction du lien (`edit`, `new`, `del`) * @param string $dummy * Inutilisé * @param string $javascript * Javascript ajouté sur le lien * @return string * Code HTML du lien **/ function icone_horizontale($texte, $lien, $fond, $fonction = '', $dummy = '', $javascript = '') { $retour = ''; // cas d'ajax_action_auteur: faut defaire le boulot // (il faudrait fusionner avec le cas $javascript) if (preg_match(",^<a\shref='([^']*)'([^>]*)>(.*)</a>$,i", $lien, $r)) { [$x, $lien, $atts, $texte] = $r; $javascript .= $atts; } $retour = icone_base($lien, $texte, $fond, $fonction, 'horizontale', $javascript); return $retour; }