\n"; } /** * Retourne le code HTML d'une fin de cadre pour le centre de page (haut de page) * * @return string Code HTML */ function fin_grand_cadre() { return "\n"; } // Debut de la colonne de gauche // div navigation fermee par creer_colonne_droite qui ouvre // div extra lui-meme ferme par debut_droite qui ouvre // div contenu lui-meme ferme par fin_gauche() ainsi que // div conteneur /** * Retourne le code HTML du début de la colonne gauche * * @return string Code HTML */ function debut_gauche() { return "
\n

"; } /** * Retourne le code HTML du changement de colonne (passer de la gauche à la droite) * * @return string Code HTML */ function creer_colonne_droite() { static $deja_colonne_droite; if ($GLOBALS['spip_ecran'] != 'large' or $deja_colonne_droite) { return ''; } $deja_colonne_droite = true; return "\n" . "\n
"; } /** * Retourne la liste des objets édités récemment (si les drapeaux d'édition sont actifs) * * Si notre page est une page d'édition d'un objet, on déclare au passage l'auteur * comme éditant l'objet * * @uses signale_edition() * @uses liste_drapeau_edition() * * @param string $exec * Nom de la page exec en cours * @param array $contexte * Contexte de la page * @param array|null $auteur * Session de l'auteur. Sera prise sur l'auteur connecté si non indiquée. * @return string * Code HTML **/ function liste_objets_bloques($exec, $contexte = array(), $auteur = null) { $res = ''; if ($GLOBALS['meta']["articles_modif"] != "non") { include_spip('inc/drapeau_edition'); if (is_null($auteur)) { $auteur = $GLOBALS['visiteur_session']; } if ($en_cours = trouver_objet_exec($exec) and $en_cours['edition'] and $type = $en_cours['type'] and ((isset($contexte[$en_cours['id_table_objet']]) and $id = $contexte[$en_cours['id_table_objet']]) or $id = _request($en_cours['id_table_objet'])) ) { // marquer le fait que l'objet est ouvert en edition par toto // a telle date ; une alerte sera donnee aux autres redacteurs signale_edition($id, $auteur, $type); } $objets_ouverts = liste_drapeau_edition($auteur['id_auteur']); if (count($objets_ouverts)) { $res .= recuperer_fond('prive/objets/liste/objets-en-edition', array(), array('ajax' => true)); } } return $res; } /** * Retourne le code HTML de fin de page de l'interface privée. * * Elle génère au passage un appel pour déclencher les tâches cron * * @see f_queue() Pour l'appel au cron * * @return string Code HTML **/ function fin_page() { include_spip('inc/pipelines'); // avec &var_profile=1 on a le tableau de mesures SQL $debug = ((_request('exec') !== 'valider_xml') and ((_request('var_mode') == 'debug') or (isset($GLOBALS['tableau_des_temps']) and $GLOBALS['tableau_des_temps']) and isset($_COOKIE['spip_admin']))); $t = '
' . recuperer_fond('prive/squelettes/inclure/pied') . "
" . "
" // cf. div#page et div.largeur ouvertes dans conmmencer_page() . ($debug ? erreur_squelette() : '') . "\n"; return f_queue($t); } /** * Retourne des tests javascript à exécuter * * - Teste que javascript est actif : si non, un hit sur exec=test_ajax est généré * - Rejoue la session si demandé (par verifier_session() si l'ip a changé) * * @see exec_test_ajax_dist() * @see verifier_session() * * @return string Code HTML **/ function html_tests_js() { if (_SPIP_AJAX and !defined('_TESTER_NOSCRIPT')) { // pour le pied de page (deja defini si on est validation XML) define('_TESTER_NOSCRIPT', "\n"); } $rejouer = ''; if (defined('_SESSION_REJOUER')) { $rejouer = (_SESSION_REJOUER === true) ? rejouer_session() : _SESSION_REJOUER; } return $rejouer . (defined('_TESTER_NOSCRIPT') ? _TESTER_NOSCRIPT : ''); } /** * Retourne la liste des mises à jour de SPIP possibles * * @return string Texte présentant la liste des mises à jour existantes **/ function info_maj_spip() { $maj = isset($GLOBALS['meta']['info_maj_spip']) ? $GLOBALS['meta']['info_maj_spip'] : null; if (!$maj) { return ""; } $maj = explode('|', $maj); // c'est une ancienne notif, on a fait la maj depuis ! if ($GLOBALS['spip_version_branche'] !== reset($maj)) { return ""; } if (!autoriser('webmestre')) { return ""; } array_shift($maj); $maj = implode('|', $maj); return "$maj
"; } /** * Retourne les informations de copyright (version de SPIP, de l'écran de sécurité) * pour le pied de page de l'espace privé * * @return string Code HTML **/ function info_copyright() { $version = $GLOBALS['spip_version_affichee']; // // Mention, le cas echeant, de la revision SVN courante // if ($svn_revision = version_svn_courante(_DIR_RACINE)) { $version .= ' ' . (($svn_revision < 0) ? 'SVN ' : '') . "[" . abs($svn_revision) . "]"; } // et la version de l'ecran de securite $secu = defined('_ECRAN_SECURITE') ? "
" . _T('ecran_securite', array('version' => _ECRAN_SECURITE)) : ''; return _T('info_copyright', array( 'spip' => "SPIP $version ", 'lien_gpl' => "" . _T('info_copyright_gpl') . "" )) . $secu; } /** * Retourne un formulaire de recherche pour l'espace privé * * Préférez l'usage en squelettes via la balise `#FORMULAIRE_RECHERCHE_ECRIRE`. * * @see formulaires_recherche_ecrire_charger_dist() * * @param string $page Nom de la page exec * @param string $complement Code HTML supplémentaire * @return string Code HTML **/ function formulaire_recherche($page, $complement = "") { $recherche = _request('recherche'); $recherche_aff = entites_html($recherche); if (!strlen($recherche)) { $recherche_aff = _T('info_rechercher'); $onfocus = " onfocus=\"this.value='';\""; } else { $onfocus = ''; } $form = ''; $form .= ""; return "
" . generer_form_ecrire($page, $form . $complement, " method='get'") . "
"; }