function exec_articles_tous_args($id_rubrique, $aff_art, $sel_lang) { global $browser_layer,$spip_lang_right,$spip_lang_left; changer_typo(); // pour definir la direction de la langue if (!is_array($aff_art)) $aff_art = array('prop','publie'); $enfant = arbo_articles_tous(); $flag_trad = (($GLOBALS['meta']['multi_rubriques'] == 'oui' OR $GLOBALS['meta']['multi_articles'] == 'oui') AND $GLOBALS['meta']['gerer_trad'] == 'oui'); list($article,$text_article,$aff_statut) = texte_articles_tous($sel_lang, $flag_trad, $aff_art, lang_dir()); if (_AJAX AND $id_rubrique) { include_spip('inc/actions'); ajax_retour(afficher_contenu_rubrique($article, $enfant, $text_article, $id_rubrique, $flag_trad, 2)); } else { pipeline('exec_init',array('args'=>array('exec'=>'articles_tous'),'data'=>'')); $commencer_page = charger_fonction('commencer_page', 'inc'); echo $commencer_page(_T('titre_page_articles_tous'), "accueil", "tout-site"); echo http_script('var img_deplierhaut = "'. chemin_image('noeud_plus.gif') .'"; var img_deplierbas = "'. chemin_image('noeud_moins.gif') . '";'); echo http_script('', 'jquery-ui-1.8-drag-drop.min.js'); echo http_script('', 'articles_tous_edite.js'); echo http_script('', 'pause.js'); echo debut_gauche('', true); echo formulaire_affiche_tous($aff_art, $aff_statut, $sel_lang); echo pipeline('affiche_gauche',array('args'=>array('exec'=>'articles_tous'),'data'=>'')); echo creer_colonne_droite('', true); echo pipeline('affiche_droite',array('args'=>array('exec'=>'articles_tous'),'data'=>'')); echo debut_droite('', true); if ($enfant AND $browser_layer) echo couche_formulaire_tous(); $out = "<textarea cols='1' rows='1' id='deplacements' style='display:none;' name='deplacements'></textarea>" . "\n<div id='apply' style='display:none;text-align:$spip_lang_right'><input type='submit' value='"._T('bouton_changer')."' /></div>"; echo "\n<div id='cancel' class='verdana2' style='display:none;text-align:$spip_lang_left;float:$spip_lang_left'>", "<a href='javascript:annuler_deplacement();'>", _T('bouton_annuler'), "</a></div>", redirige_action_post("reorganiser","",'articles_tous', '', $out), "<ul id='articles_tous'><li id='rubrique-0' class='treeItem racine verdana2'>", "<span class='holder icone'> </span>", _T('info_racine_site'), "\n<ul class=''>\n", afficher_contenu_rubrique($article, $enfant, $text_article, 0, $flag_trad, 2), "</ul></li></ul>\n", fin_gauche(), fin_page(); } }
function base_restaurer_dist($titre = '', $reprise = false) { $status_file = _DUMP_STATUS_FILE; $status_file = _DIR_TMP . basename($status_file) . ".txt"; if (!lire_fichier($status_file, $status) or !($status = unserialize($status))) { } else { $redirect = parametre_url(generer_action_auteur('restaurer', _DUMP_STATUS_FILE), "step", intval(_request('step') + 1), '&'); $timeout = ini_get('max_execution_time'); // valeur conservatrice si on a pas reussi a lire le max_execution_time if (!$timeout) { $timeout = 30; } // parions sur une valeur tellement courante ... $max_time = time() + $timeout / 2; include_spip('inc/minipres'); @ini_set("zlib.output_compression", "0"); // pour permettre l'affichage au fur et a mesure $titre = _T('dump:restauration_en_cours') . " (" . count($status['tables']) . ") "; $balise_img = chercher_filtre('balise_img'); $titre .= $balise_img(chemin_image('searching.gif')); echo install_debut_html($titre); // script de rechargement auto sur timeout echo http_script("window.setTimeout('location.href=\"" . $redirect . "\";'," . $timeout * 1000 . ")"); echo "<div style='text-align: left'>\n"; dump_serveur($status['connect']); spip_connect('dump'); // au premier coup on ne fait rien sauf afficher l'ecran de sauvegarde if (_request('step')) { $options = array('callback_progression' => 'dump_afficher_progres', 'max_time' => $max_time, 'no_erase_dest' => lister_tables_noerase(), 'where' => $status['where'] ? $status['where'] : array(), 'desc_tables_dest' => array()); if ($desc = sql_getfetsel('valeur', 'spip_meta', "nom='dump_structure_temp'", '', '', '', '', 'dump') and $desc = unserialize($desc)) { $options['desc_tables_dest'] = $desc; } #var_dump(sql_allfetsel('nom,valeur','spip_meta',"",'','','','','dump')); #die(); $res = base_copier_tables($status_file, $status['tables'], 'dump', '', $options); } else { // mais on en profite pour reparer les version base pour etre sur de ne pas les perdre sql_updateq("spip_meta", array('impt' => 'oui'), "nom='version_installee'", '', 'dump'); sql_updateq("spip_meta", array('impt' => 'oui'), "nom LIKE '%_base_version'", '', 'dump'); } echo "</div>\n"; if (!$res) { echo dump_relance($redirect); } echo install_fin_html(); ob_end_flush(); flush(); if (!$res) { exit; } // quand on sort de $export avec true c'est qu'on a fini dump_end(_DUMP_STATUS_FILE, 'restaurer'); include_spip('inc/headers'); echo redirige_formulaire(generer_url_ecrire("restaurer", 'status=' . _DUMP_STATUS_FILE, '', true, true)); } }
function affiche_stats_lang($critere) { global $spip_lang_right; $taille = 450; // // Statistiques par langue // $out = ""; $r = sql_fetsel("SUM({$critere}) AS total_visites", "spip_articles"); $visites = 1; // attention a '0.0' if ($r and $r['total_visites'] > 0) { $total_visites = $r['total_visites']; } else { $total_visites = 1; } $result = sql_select("lang, SUM(" . $critere . ") AS cnt", "spip_articles", "statut='publie' ", "lang"); $out .= "\n<table cellpadding='2' cellspacing='0' border='0' width='100%' style='border: 1px solid #aaaaaa;'>"; $ifond = 1; $visites_abs = 0; while ($row = sql_fetch($result)) { $lang = $row['lang']; if ($row['cnt']) { $visites = round($row['cnt'] / $total_visites * $taille); $pourcent = round($row['cnt'] / $total_visites * 100); } if ($visites > 0) { if ($ifond == 0) { $ifond = 1; $couleur = "white"; } else { $ifond = 0; $couleur = "eeeeee"; } $out .= "\n<tr style='background-color: {$couleur}'>"; $dir = lang_dir($lang, '', ' dir="rtl"'); $out .= "<td style='width: 100%; border-bottom: 1px solid #cccccc;'><p {$dir}><span style='float: {$spip_lang_right};'>{$pourcent}%</span>" . traduire_nom_langue($lang) . "</p></td>"; $out .= "<td style='border-bottom: 1px solid #cccccc;'>"; $out .= "\n<table cellpadding='0' cellspacing='0' border='0' width='" . ($taille + 5) . "'>"; $out .= "\n<tr><td style='align:{$spip_lang_right}; background-color: #eeeeee; border: 1px solid #999999; white-space: nowrap;'>"; if ($visites_abs > 0) { $out .= "<img src='" . chemin_image('rien.gif') . "' width='{$visites_abs}' height='10' alt=' ' />"; } if ($visites > 0) { $out .= "<img src='" . chemin_image('rien.gif') . "' class='couleur_langue' style='border: 0px;' width='{$visites}' height='8' alt=' ' />"; } $out .= "</td></tr></table>\n"; $out .= "</td>"; $out .= "</tr>"; $visites_abs += $visites; } } $out .= "</table>\n"; return $out; }
function puce_statut_mot($id, $statut, $id_groupe, $type, $ajax='') { static $icones = array(); if (!isset($icones[$id_groupe])) { $t = sql_fetsel('technique', 'spip_groupes_mots', 'id_groupe='.intval($id_groupe)); if ($t['technique'] == 'oui') $icones[$id_groupe] = _DIR_PLUGIN_MOTS_TECHNIQUES.'images/mot-technique-16.png'; else $icones[$id_groupe] = chemin_image('petite-cle.gif'); } return "<img src='" . $icones[$id_groupe] . "' alt='' />"; }
function action_tester_taille_dist() { if (!autoriser('configurer')) { return; } $taille = _request('arg'); $taille = explode('-', $taille); $GLOBALS['taille_max'] = end($taille); $GLOBALS['taille_min'] = 0; if (count($taille) > 1) { $GLOBALS['taille_min'] = reset($taille); } // si l'intervalle est assez petit, on garde la valeur min if ($GLOBALS['taille_max'] * $GLOBALS['taille_max'] - $GLOBALS['taille_min'] * $GLOBALS['taille_min'] < 50000) { ecrire_meta('max_taille_vignettes', $t = $GLOBALS['taille_min'] * $GLOBALS['taille_min'] * 0.9, 'non'); echo round($t / 1000000, 3) . ' Mpx'; die; } $taille = $GLOBALS['taille_test'] = round(($GLOBALS['taille_max'] + $GLOBALS['taille_min']) / 2); include_spip('inc/filtres'); // des inclusions representatives d'un hit prive et/ou public pour la conso memoire include_spip('public/assembler'); include_spip('public/balises'); include_spip('public/boucles'); include_spip('public/cacher'); include_spip('public/compiler'); include_spip('public/composer'); include_spip('public/criteres'); include_spip('public/interfaces'); include_spip('public/parametrer'); include_spip('public/phraser_html'); include_spip('public/references'); include_spip('inc/presentation'); include_spip('inc/charsets'); include_spip('inc/documents'); include_spip('inc/header'); propre("<doc1>"); // charger propre avec le trairement d'un modele $i = _request('i') + 1; $image_source = chemin_image("test.png"); $GLOBALS['redirect'] = generer_url_action("tester_taille", "i={$i}&arg=" . $GLOBALS['taille_min'] . "-" . $GLOBALS['taille_test']); ob_start('action_tester_taille_error_handler'); filtrer('image_recadre', $image_source, $taille, $taille); $GLOBALS['redirect'] = generer_url_action("tester_taille", "i={$i}&arg={$taille}-" . $GLOBALS['taille_max']); // si la valeur intermediaire a reussi, on teste la valeur maxi qui est peut etre sous estimee $taille = $GLOBALS['taille_max']; filtrer('image_recadre', $image_source, $taille, $taille); $GLOBALS['redirect'] = generer_url_action("tester_taille", "i={$i}&arg={$taille}-" . $GLOBALS['taille_max']); ob_end_clean(); // on est ici, donc pas de plantage echo redirige_formulaire($GLOBALS['redirect']); }
/** * Affiche l'étape 0 d'installation : écran d'accueil. * * @uses info_copyright() **/ function install_etape__dist() { utiliser_langue_visiteur(); $menu_langues = menu_langues('var_lang_ecrire'); if (!$menu_langues) { redirige_url_ecrire('install', "etape=chmod"); } else { include_spip('inc/presentation'); // pour info_copyright $res = "<div class='petit-centre'><img alt='SPIP' src='" . chemin_image('logo-spip2.gif') . "' />\n" . "<p class='small'>" . info_copyright() . "</p></div>\n" . "<p>" . _T('install_select_langue') . "</p>" . "<div>" . $menu_langues . "</div>\n" . generer_form_ecrire('install', "<input type='hidden' name='etape' value='chmod' />" . bouton_suivant()); echo minipres('AUTO', $res); } }
function inc_tourner_dist($id_document, $document, $script, $flag, $type) { global $spip_lang_right; if (!$document) { // retour d'Ajax $document = sql_fetsel("*", "spip_documents", "id_document = " . intval($id_document)); } $prim = 'id_' . $type; // si pas de doc le hash sera inutilisable $id = intval(sql_getfetsel('id_objet', 'spip_documents_liens', "objet=".sql_quote($type)." AND id_document = " . intval($id_document))); $titre = $document['titre']; $id_vignette = $document['id_vignette']; $fichier = entites_html($document['fichier']); if (isset($document['url'])) $url = $document['url']; else { $url = generer_url_entite($id_document, 'document'); } $res = ''; // Indiquer les documents manquants avec un panneau de warning if ($document['distant'] != 'oui') { if (!@file_exists(get_spip_doc($document['fichier']))){ $c = _T('fichier_introuvable', array('fichier'=>basename($document['fichier']))); $res = "<img src='" . chemin_image('warning-24.gif') ."'\n\tstyle='float: right;'\n\talt=\"$c\"\n\ttitle=\"$c\" />"; } else { if ($flag AND !$id_vignette) $res = boutons_rotateurs($document, $type, $id, $id_document,$script); } } else { $res = "\n<div class='verdana1' style='float: $spip_lang_right; text-align: $spip_lang_right;'>"; // Signaler les documents distants par une icone de trombone $res .= "<img src='" . chemin_image('attachment.gif') . "'\n\t \n\talt=\"$fichier\"\n\ttitle=\"$fichier\" />\n"; // Bouton permettant de copier en local le fichier $res .= bouton_copier_local($document, $type, $id, $id_document, $script); $res .= "</div>\n"; } return tourner_greffe($id_document, $document, $url, $res); }
function exec_test_ajax_dist() { switch (_request('js')) { // on est appele par <noscript> case -1: spip_setcookie('spip_accepte_ajax', -1); include_spip('inc/headers'); redirige_par_entete(chemin_image('puce-orange-anim.gif')); break; // ou par ajax case 1: default: spip_setcookie('spip_accepte_ajax', 1); break; } }
/** * Afficher l'arborescence du dossier squelette * * @param string $path_base * @param string $current_file * @return string */ function skeleditor_afficher_dir_skel($path_base,$current_file) { include_spip('inc/skeleditor'); include_spip('inc/presentation'); $file_list = skeleditor_files_editables($path_base); $current_file = substr($current_file,strlen($path_base)); $output = "<div id='arbo'><div class='dir'>\n"; $init_dir = $current_dir = ""; foreach($file_list as $file){ $dir = substr(dirname($file),strlen($path_base)); $file = substr($file,strlen($path_base)); if ($dir != $current_dir) $output .= skeleditor_tree_open_close_dir($current_dir,$dir,$current_file); $class="fichier"; $readonly = false; if (!is_writable($path_base.$dir) OR !is_writable($path_base.$file)) { $readonly = true; $class .= " readonly"; } $class .= ($file==$current_file?" on":''); $icon = "file"; if (preg_match(',('._SE_EXTENSIONS_IMG.')$,',$file)) $icon = "image"; include_spip('inc/filtres_images_mini'); $cadenas = ($readonly) ? " ".inserer_attribut(image_reduire(chemin_image('cadenas-16.png'),12),'title',attribut_html(_T('texte_inc_meta_2'))) : ""; $output .= "<a href='".generer_url_ecrire('skeleditor','f='.urlencode($f=$path_base.$file))."' class='$class' onclick=\"jQuery('#contenu > :first').ajaxReload({history:true,args:{f:'$f'}});return false;\">" . "<img src='"._DIR_PLUGIN_SKELEDITOR."images/se-$icon-16.png' alt='$icon' /> " .basename($file) .$cadenas . "</a>" ; } $output .= skeleditor_tree_open_close_dir($current_dir,$init_dir,$current_file); $output .= "</div></div>\n"; return $output; }
function inc_sauvegarder_dist($status_file, $redirect = '') { $status_file = _DIR_TMP . basename($status_file) . ".txt"; if (!lire_fichier($status_file, $status) or !($status = unserialize($status))) { } else { $timeout = ini_get('max_execution_time'); // valeur conservatrice si on a pas reussi a lire le max_execution_time if (!$timeout) { $timeout = 30; } // parions sur une valeur tellement courante ... $max_time = time() + $timeout / 2; include_spip('inc/minipres'); @ini_set("zlib.output_compression", "0"); // pour permettre l'affichage au fur et a mesure $titre = _T('dump:sauvegarde_en_cours') . " (" . count($status['tables']) . ") "; $balise_img = chercher_filtre('balise_img'); $titre .= $balise_img(chemin_image('searching.gif')); echo install_debut_html($titre); // script de rechargement auto sur timeout echo http_script("window.setTimeout('location.href=\"" . $redirect . "\";'," . $timeout * 1000 . ")"); echo "<div style='text-align: left'>\n"; dump_serveur($status['connect']); spip_connect('dump'); // au premier coup on ne fait rien sauf afficher l'ecran de sauvegarde $res = false; if (_request('step')) { $options = array('callback_progression' => 'dump_afficher_progres', 'max_time' => $max_time, 'no_erase_dest' => lister_tables_noerase(), 'where' => $status['where'] ? $status['where'] : array()); $res = base_copier_tables($status_file, $status['tables'], '', 'dump', $options); } echo "</div>\n"; if (!$res and $redirect) { echo dump_relance($redirect); } echo install_fin_html(); ob_end_flush(); flush(); return $res; } }
function html_65c161fa3974dab7ff9b5b08fa07491e($Cache, $Pile, $doublons = array(), $Numrows = array(), $SP = 0) { if (isset($Pile[0]["doublons"]) and is_array($Pile[0]["doublons"])) { $doublons = nettoyer_env_doublons($Pile[0]["doublons"]); } $connect = ''; $page = ($t1 = strval(invalideur_session($Cache, (function_exists("autoriser") || include_spip("inc/autoriser")) && autoriser('configurer', '_admin_vider') ? " " : "" ? ' ' : ''))) !== '' ? $t1 . (' ' . boite_ouvrir(interdire_scripts(wrap(concat(filtre_balise_img_dist(chemin_image('image-24.png'), '', 'cadre-icone'), _T('info_images_auto')), '<h3>')), 'simple', 'titrem') . '<div id="placehoder_taille_cache_images"><p> <br /> <br /> <br /></p></div> <script type="text/javascript"> jQuery(function(){jQuery(\'#placehoder_taille_cache_images\').animateLoading().load(\'' . invalideur_session($Cache, replace(generer_action_auteur('calculer_taille_cache', 'images'), '&', '&')) . '\');}); </script> <noscript> <iframe src="' . invalideur_session($Cache, generer_action_auteur('calculer_taille_cache', 'images')) . '" style="width: 100%;height: 3em;overflow: hidden;"></iframe> </noscript> ' . boite_pied() . ' ' . bouton_action(_T('public|spip|ecrire:bouton_vider_cache'), invalideur_session($Cache, generer_action_auteur('purger', 'vignettes', invalideur_session($Cache, self()))), 'ajax') . ' ' . boite_fermer() . ' ') : ''; return analyse_resultat_skel('html_65c161fa3974dab7ff9b5b08fa07491e', $Cache, $page, '../prive/squelettes/inclure/admin_vider_images.html'); }
/** * Charger les informations contenues dans le xml d'une composition * * @param string $nom * @param string $info * @return array|string */ function compositions_charger_infos($nom,$info=""){ // on peut appeller avec le nom du squelette $nom = preg_replace(',[.]html$,i','',$nom).".xml"; include_spip('inc/xml'); $composition = array(); if ($xml = spip_xml_load($nom,false)){ if (count($xml['composition'])){ $xml = reset($xml['composition']); $composition['nom'] = _T_ou_typo(spip_xml_aplatit($xml['nom'])); $composition['description'] = isset($xml['description'])?_T_ou_typo(spip_xml_aplatit($xml['description'])):''; if (isset($xml['icon'])) { $icon = chemin_image(reset($xml['icon'])); if (!$icon) { $icon = find_in_path(reset($xml['icon'])); } } else { $icon = ''; } $composition['image_exemple'] = isset($xml['image_exemple']) ? find_in_path(reset($xml['image_exemple'])) : ''; $composition['icon'] = $icon; $composition['class'] = isset($xml['class']) ? trim(reset($xml['class'])) : ''; $composition['configuration'] = isset($xml['configuration']) ? spip_xml_aplatit($xml['configuration']) : ''; $composition['branche'] = array(); if (spip_xml_match_nodes(',^branche,', $xml, $branches)){ foreach (array_keys($branches) as $branche){ list($balise, $attributs) = spip_xml_decompose_tag($branche); $composition['branche'][$attributs['type']] = $attributs['composition']; } } } } if (!$info) return $composition; else return isset($composition[$info])?$composition[$info]:""; }
/** * Completer le formulaire de login avec le js ou les saisie specifiques a ce mode d'auth * * @param array $flux * @return array */ function auth_spip_formulaire_login($flux) { // faut il encore envoyer md5 ? // on regarde si il reste des pass md5 en base pour des auteurs en statut pas poubelle // les hash md5 ont une longueur 32, les sha 64 $compat_md5 = sql_countsel("spip_auteurs", "length(pass)=32 AND statut<>'poubelle'"); // javascript qui gere la securite du login en evitant de faire circuler le pass en clair $flux['data'] .= ($compat_md5 ? '<script type="text/javascript" src="' . _DIR_JAVASCRIPT . 'md5.js"></script>' : '') . '<script type="text/javascript" src="' . _DIR_JAVASCRIPT . 'sha256.js"></script>' . '<script type="text/javascript" src="' . _DIR_JAVASCRIPT . 'login.js"></script>' . '<script type="text/javascript">/*<![CDATA[*/' . "var alea_actuel='" . $flux['args']['contexte']['_alea_actuel'] . "';" . "var alea_futur='" . $flux['args']['contexte']['_alea_futur'] . "';" . "var login='******'args']['contexte']['var_login'] . "';" . "var page_auteur = '" . generer_url_public('informer_auteur') . "';" . "var informe_auteur_en_cours = false;" . "var attente_informe = 0;" . "var compat_md5 = " . ($compat_md5 ? "true;" : "false;") . "(function(\$){\n\t\t\$('#password')\n\t\t\t.after(\"<em id='pass_securise'><img src='" . chemin_image('cadenas-16.png') . "' width='16' height='16' alt='" . attribut_html(_T('login_securise')) . "' title='" . attribut_html(_T('login_securise')) . "' \\/><\\/em>\");\n\t\taffiche_login_secure();\n\t\t\$('#var_login').change(actualise_auteur);\n\t\t\$('form#formulaire_login').submit(login_submit);\n\t}(jQuery));" . "/*]]>*/</script>"; return $flux; }
function puce_statut_mot_dist($id, $statut, $id_groupe, $type, $ajax = '', $menu_rapide = _ACTIVER_PUCE_RAPIDE) { return "<img src='" . chemin_image("mot-16.png") . "' width='16' height='16' alt='' />"; }
function inc_migrer_vers_dist($status_file, $redirect='') { if (!$status = migrer_vers_lire_status($status_file)) { // rien a faire ? } else { $status_file = _DIR_TMP.basename($status_file).".txt"; $timeout = ini_get('max_execution_time'); // valeur conservatrice si on a pas reussi a lire le max_execution_time if (!$timeout) $timeout=30; // parions sur une valeur tellement courante ... $timeout = min($timeout,30); // ne prolongeons pas plus que 30s car cela peut produire des erreur 500 et bloque le refresh $max_time = time()+$timeout/2; include_spip('inc/minipres'); //@apache_setenv('no-gzip', 1); // trop agressif, plante sur certains hebergements @ini_set("zlib.output_compression","0"); // pour permettre l'affichage au fur et a mesure @ini_set("output_buffering","off"); @ini_set('implicit_flush', 1); @ob_implicit_flush(1); switch ($status['etape']){ case 'init': $titre = _T('migration:titre_debut_migration'); break; case 'base': case 'basecopie': $titre = _T('migration:titre_migration_en_cours_base') . " (".count($status['tables']).") "; break; case 'fichiers': case 'fichierscopie': $titre = _T('migration:titre_migration_en_cours_fichiers') . " (".count($status['files']).") "; break; case 'squelettes': case 'squelettescopie': $titre = _T('migration:titre_migration_en_cours_squelettes') . " (".array_sum(array_map('count',$status['squelettes'])).") "; break; } $titre .= "<img src=\"".chemin_image('searching.gif')."\" />"; echo ( install_debut_html($titre)); // script de rechargement auto sur timeout echo "<meta http-equiv='Refresh' content='$timeout'>"; @flush(); echo "<div style='text-align: left'>\n"; include_spip('inc/migration'); $s = lire_migration_vers_status(); // au premier coup on ne fait rien sauf afficher l'ecran de sauvegarde switch ($status['etape']){ case 'init': $status['etape'] = migrer_vers_etape_suivante($status['etape'],$s['quoi']); ecrire_fichier($status_file, serialize($status)); break; case 'base': case 'basecopie': $options = array( 'callback_progression' => 'migrer_vers_afficher_progres', 'max_time' => $max_time, 'no_erase_dest' => lister_tables_noerase(), 'where' => $status['where']?$status['where']:array(), 'racine_fonctions_dest' =>'migration/envoi', 'data_pool' => 200*1024, ); $res = base_copier_tables($status_file, $status['tables'], '', '', $options); if ($res) { if ($res==="abort"){ $s = lire_migration_vers_status(); $s['status'] = 'abort'; ecrire_migration_status('vers',$s); } if ($s['status'] != 'abort') { $status['etape'] = migrer_vers_etape_suivante($status['etape'],$s['quoi']); ecrire_fichier($status_file, serialize($status)); } } break; case 'fichiers': case 'fichierscopie': $options = array( 'callback_progression' => 'migrer_vers_afficher_progres', 'max_time' => $max_time, 'racine_fonctions_dest' =>'migration/envoi', 'data_pool' => 200*1024, ); $res = base_copier_files($status_file, $status['files'],_DIR_IMG,_DIR_IMG, $options); if ($res) { $status['etape'] = migrer_vers_etape_suivante($status['etape'],$s['quoi']); ecrire_fichier($status_file, serialize($status)); } break; case 'squelettes': case 'squelettescopie': $options = array( 'callback_progression' => 'migrer_vers_afficher_progres', 'max_time' => $max_time, 'racine_fonctions_dest' =>'migration/envoi', 'data_pool' => 200*1024, 'etape_suivante' => 'squelettescopie', ); $res = true; if ($dir_sources = migration_determiner_dossier_squelette() AND count($dir_sources = explode(':',$dir_sources))){ foreach($dir_sources as $dir_source) $res = base_copier_files($status_file, $status['squelettes'][$dir_source],$dir_source,_DIR_RACINE."squelettes/", $options); } if ($res) { $status['etape'] = migrer_vers_etape_suivante($status['etape'],$s['quoi']); ecrire_fichier($status_file, serialize($status)); } break; } // sortir si on a fini ou abandon demande $res = (in_array($status['etape'],array('fini','finition')) OR $s['status']=='abort'); echo ( "</div>\n"); if (!$res AND $redirect) echo migrer_vers_relance($redirect); echo (install_fin_html()); #while (ob_get_level()) # ob_end_flush(); flush(); return $res; } }
/** * Construit un bloc permettant d'activer le sélecteur de rubrique AJAX * * Construit un bloc comportant une icone clicable avec image animée à côté * pour charger en Ajax du code à mettre sous cette icone. * * @note * Attention: changer le onclick si on change le code Html. * (la fonction JS charger_node ignore l'attribut id qui ne sert en fait pas; * getElement en mode Ajax est trop couteux). * * @param string $url * URL qui retournera le contenu du sélecteur en AJAX * @param string $js * Code javascript ajouté sur onclick * @param string $idom * Identifiant donné à l'image activant l'ajax et au block recevant son contenu * @param string $name * Nom du champ à envoyer par le formulaire * @param string $init * Code HTML à l'intérieur de l'input titreparent * @param int $id * Valeur actuelle du champ * @return string * Code HTML du sélecteur de rubrique AJAX **/ function construire_selecteur($url, $js, $idom, $name, $init = '', $id = 0) { $icone = strpos($idom, 'auteur') !== false ? 'auteur-24.png' : 'rechercher-20.png'; return "<div class='rubrique_actuelle'><a href='#' onclick=\"" . $js . "return charger_node_url_si_vide('" . $url . "', this.parentNode.nextSibling, this.nextSibling,'',event)\" title='" . attribut_html(_T('titre_image_selecteur')) . "'><img src='" . chemin_image($icone) . "'\nstyle='vertical-align: middle;' alt='" . attribut_html(_T('titre_image_selecteur')) . "' /></a><img src='" . chemin_image('searching.gif') . "' id='img_" . $idom . "'\nstyle='visibility: hidden;' alt='*' />" . "<input id='titreparent' name='titreparent'" . $init . " />" . "<input type='hidden' id='{$name}' name='{$name}' value='" . $id . "' /><div class='nettoyeur'></div></div><div id='" . $idom . "'\nstyle='display: none;'></div>"; }
function afficher_tranches_requete($num_rows, $idom, $url='', $nb_aff = 10, $old_arg=NULL) { static $ancre = 0; global $browser_name, $spip_lang_right, $spip_display; if ($old_arg!==NULL){ // eviter de casser la compat des vieux appels $cols_span ayant disparu ... $idom = $url; $url = $nb_aff; $nb_aff=$old_arg; } $ancre++; $self = self(); $ie_style = ($browser_name == "MSIE") ? "height:1%" : ''; $style = "style='visibility: hidden; float: $spip_lang_right'"; $nav= navigation_pagination($num_rows, $nb_aff, $url, _request($idom), $idom, true); $script = parametre_url($self, $idom, -1); $l = htmlentities(_T('lien_tout_afficher')); return http_img_pack("searching.gif", "*", "$style id='img_$idom'") . "\n<div style='$ie_style;' class='arial1 tranches' id='a$ancre'>" . $nav . "<a href='$script#a$ancre' class='plus'" . (!$url ? '' : generer_onclic_ajax($url, $idom,-1)) . "><img title=\"$l\" alt=\"$l\"\nsrc=\"" . chemin_image("plus.gif") . "\" /></a></div>\n"; }
function debusquer_squelette($fonc, $mode, $self) { global $debug_objets; if ($mode !== 'validation') { if (isset($debug_objets['sourcefile']) and $debug_objets['sourcefile']) { $res = "<div id='spip-boucles'>\n" . debusquer_navigation_squelettes($self) . "</div>"; } else { $res = ''; } if ($fonc) { $id = " id='{$fonc}'"; if (!empty($GLOBALS['debug_objets'][$mode][$fonc])) { list($legend, $texte, $res2) = debusquer_source($fonc, $mode); $texte .= $res2; } elseif (!empty($debug_objets[$mode][$fonc . 'tout'])) { $legend = _T('zbug_' . $mode); $texte = $debug_objets[$mode][$fonc . 'tout']; $texte = ancre_texte($texte, array('', '')); } } else { if (strlen(trim($res))) { return "<img src='" . chemin_image('compat-16.png') . "' alt='afficher-masquer le debug' id='spip-debug-toggle' onclick=\"var x = document.getElementById('spip-debug'); (x.style.display == '' ? x.style.display = 'none' : x.style.display = '');\" /><div id='spip-debug'>{$res}</div>"; } else { // cas de l'appel sur erreur: montre la page return isset($GLOBALS['debug_objets']['resultat']['tout']) ? $GLOBALS['debug_objets']['resultat']['tout'] : ''; } } } else { $valider = charger_fonction('valider', 'xml'); $val = $valider($debug_objets['validation'][$fonc . 'tout']); // Si erreur, signaler leur nombre dans le formulaire admin $debug_objets['validation'] = $val->err ? count($val->err) : ''; list($texte, $err) = emboite_texte($val, $fonc, $self); if ($err === false) { $err = _T('impossible'); } elseif ($err === true) { $err = _T('correcte'); } else { $err = ": {$err}"; } $legend = _T('validation') . ' ' . $err; $res = $id = ''; } return !trim($texte) ? '' : "<img src='" . chemin_image('compat-16.png') . "' alt='afficher-masquer le debug' id='spip-debug-toggle' onclick=\"var x = document.getElementById('spip-debug'); (x.style.display == '' ? x.style.display = 'none' : x.style.display = '');\" /><div id='spip-debug'>{$res}" . "<div id='debug_boucle'><fieldset{$id}><legend>" . "<a href='" . $self . "#f_" . substr($fonc, 0, 37) . "'> ↑ " . ($legend ? $legend : $mode) . "</a></legend>" . $texte . "</fieldset></div>" . "</div>"; }
function forum_envoi_entete($parent, $titre_parent, $texte, $titre, $nom_site, $url_site) { global $spip_lang_rtl; return "\n<br /><br /><table width='100%' cellpadding='0' cellspacing='0' border='0'>" . (!$parent ? '' : "<tr><td colspan='2'>$parent</td></tr>") . "<tr>" . (!$parent ? "<td colsan='2'" : (" <td style='width: 10px; background-image: url(" . chemin_image('forum-vert.gif') . ");'>" . http_img_pack('rien.gif', ' ', " style='width: 0px; height: 0px; border: 0px;'") . "</td>\n<td ")) . " style='width: 100%' valign='top' rowspan='2'>" . debut_cadre_thread_forum("", true, "", typo($titre)) . propre($texte) . (!$nom_site ? '' : "<p><a href='$url_site'>$nom_site</a></p>") . "\n<div style='text-align: right'><input type='submit' name='valider_forum' value='" . _T('bouton_envoyer_message') . "'\nonclick='AjaxNamedSubmit(this)' /></div>" . fin_cadre_thread_forum(true) . "</td>" . "</tr>\n" . (!$parent ? '' : ("<tr><td valign='top' style='width: 10px; background-image: url(" . chemin_image('rien.gif') . ");'>" . http_img_pack("forum-droite$spip_lang_rtl.gif", ' ', " style='width: 10px; height: 13px'") . "</td>\n</tr>")) . "</table>"; }
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 = '<input type="text" size="10" value="' . $recherche_aff . '" name="recherche" class="recherche" accesskey="r"' . $onfocus . ' />'; $form .= "<input type='image' src='" . chemin_image('rechercher-20.png') . "' name='submit' class='submit' alt='" . _T('info_rechercher') . "' />"; return "<div class='spip_recherche'>" . generer_form_ecrire($page, $form . $complement, " method='get'") . "</div>"; }
function afficher_forum_4($compteur_forum, $nb_forum, $thread) { global $spip_lang_rtl; $fleche2="forum-droite$spip_lang_rtl.gif"; $fleche='rien.gif'; $vertical = chemin_image('forum-vert.gif'); $rien = chemin_image('rien.gif'); $res = ''; for ($j=2;$j<=$compteur_forum AND $j<20;$j++){ $res .= "<td style='width: 10px; vertical-align: top; background-image: url(" . (($thread[$j]!=$nb_forum[$j]) ? $vertical : $rien) . ");'>" . http_img_pack(($j==$compteur_forum) ? $fleche2 : $fleche, "", "width='10' height='13'") . "</td>\n"; } return $res; }
function statistiques_lang_ok() { global $spip_ecran, $spip_lang_right; $commencer_page = charger_fonction('commencer_page', 'inc'); echo $commencer_page(_T('onglet_repartition_lang'), "statistiques_visites", "repartition-langues"); if ($spip_ecran == "large") { $largeur_table = 974; } else { $largeur_table = 750; } $taille = $largeur_table - 200; echo "<table class='centered' width='$largeur_table'><tr><td style='width: $largeur_table" . "px; text-align:center;' class='verdana2'>"; echo "<br /><br />"; echo gros_titre(_T('onglet_repartition_lang'),'', false); //barre_onglets("repartition", "langues"); if (_request('critere') == "debut") { $critere = "visites"; // echo gros_titre(_T('onglet_repartition_debut','', false)); } else { $critere = "popularite"; // echo gros_titre(_T('onglet_repartition_actuelle','', false)); } echo ($critere == "popularite") ? barre_onglets("rep_depuis", "popularite"): barre_onglets("rep_depuis", "debut"); // // Statistiques par langue // echo debut_cadre_enfonce("langues-24.gif", true); $r = sql_fetsel("SUM($critere) AS total_visites", "spip_articles"); $visites = 1; if ($r) $total_visites = $r['total_visites']; else $total_visites = 1; $result = sql_select("lang, SUM(".$critere.") AS cnt", "spip_articles", "statut='publie' ", "lang"); $ifond = 1; $visites_abs = 0; $res = ''; while ($row = sql_fetch($result)) { $lang = $row['lang']; $visites = round($row['cnt'] / $total_visites * $taille); $pourcent = round($row['cnt'] / $total_visites * 100); if ($visites > 0) { if ($ifond==0){ $ifond=1; $couleur="white"; }else{ $ifond=0; $couleur="eeeeee"; } $res .= "\n<tr style='background-color: $couleur'>"; $dir=lang_dir($lang,'',' dir="rtl"'); $res .= "<td style='width: 100%; border-bottom: 1px solid #cccccc;'><span class='verdana2'$dir><span style='float: $spip_lang_right;'>$pourcent%</span>".traduire_nom_langue($lang)."</span></td>"; $res .= "<td style='border-bottom: 1px solid #cccccc;'>"; $res .= "\n<table cellpadding='0' cellspacing='0' border='0' width='".($taille+5)."'>"; $res .= "\n<tr><td style='align:$spip_lang_right; background-color: #eeeeee; border: 1px solid #999999; white-space: nowrap;'>"; if ($visites_abs > 0) $res .= "<img src='" . chemin_image('rien.gif') . "' width='$visites_abs' height='8' alt=' ' />"; if ($visites>0) $res .= "<img src='" . chemin_image('rien.gif') . "' class='couleur_langue' style='border: 0px;' width='$visites' height='8' alt=' ' />"; $res .= "</td></tr></table>\n"; $res .= "</td>"; $res .= "</tr>"; $visites_abs += $visites; } } if ($res) echo "\n<table cellpadding='2' cellspacing='0' border='0' width='100%' style='border: 1px solid #aaaaaa;'>", $res, "</table>\n"; //echo "<p><span class='verdana1 spip_medium'>"._T('texte_signification')."</span>"; echo fin_cadre_enfonce(true); echo "</td></tr></table>"; echo fin_page(); }
/** * 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'))) : ''; }
function puce_statut_rubrique_dist($id, $statut, $id_rubrique, $type, $ajax='') { return "<img src='" . chemin_image('rubrique-12.gif') . "' alt='' />"; }
function exec_rechercher_args($id, $type, $exclus, $rac, $do) { if (!$do) { $do = 'aff'; } $where = preg_split(",\\s+,", $type); if ($where) { foreach ($where as $k => $v) { $where[$k] = "'%" . substr(str_replace("%", "\\%", sql_quote($v)), 1, -1) . "%'"; } $where_titre = "(titre LIKE " . join(" AND titre LIKE ", $where) . ")"; $where_desc = "(descriptif LIKE " . join(" AND descriptif LIKE ", $where) . ")"; $where_id = "(id_rubrique = " . join(" AND id_rubrique = ", $where) . ")"; } else { $where_titre = " 1=2"; $where_desc = " 1=2"; $where_id = " 1=2"; } if ($exclus) { include_spip('inc/rubriques'); $where_exclus = " AND " . sql_in('id_rubrique', calcul_branche_in($exclus), 'NOT'); } else { $where_exclus = ''; } $res = sql_select("id_rubrique, id_parent, titre", "spip_rubriques", "{$where_id}{$where_exclus}"); $points = $rub = array(); while ($row = sql_fetch($res)) { $id_rubrique = $row["id_rubrique"]; $rub[$id_rubrique]["titre"] = typo($row["titre"]); $rub[$id_rubrique]["id_parent"] = $row["id_parent"]; $points[$id_rubrique] = $points[$id_rubrique] + 3; } $res = sql_select("id_rubrique, id_parent, titre", "spip_rubriques", "{$where_titre}{$where_exclus}"); while ($row = sql_fetch($res)) { $id_rubrique = $row["id_rubrique"]; $rub[$id_rubrique]["titre"] = typo($row["titre"]); $rub[$id_rubrique]["id_parent"] = $row["id_parent"]; if (isset($points[$id_rubrique])) { $points[$id_rubrique] += 2; } else { $points[$id_rubrique] = 0; } } $res = sql_select("id_rubrique, id_parent, titre", "spip_rubriques", "{$where_desc}{$where_exclus}"); while ($row = sql_fetch($res)) { $id_rubrique = $row["id_rubrique"]; $rub[$id_rubrique]["titre"] = typo($row["titre"]); $rub[$id_rubrique]["id_parent"] = $row["id_parent"]; if (isset($points[$id_rubrique])) { $points[$id_rubrique] += 1; } else { $points[$id_rubrique] = 0; } } if ($points) { arsort($points); $style = " style='background-image: url(" . chemin_image('secteur-12.png') . ")'"; foreach ($rub as $k => $v) { $rub[$k]['atts'] = ($v["id_parent"] ? $style : '') . " class='petite-rubrique'"; } } return proposer_item($points, $rub, $rac, $type, $do); }
/** * Completer le formulaire de login avec le js ou les saisie specifiques a ce mode d'auth * * @param array $flux * @return array */ function auth_spip_formulaire_login($flux) { // faut il encore envoyer md5 ? // on regarde si il reste des pass md5 en base pour des auteurs en statut pas poubelle // les hash md5 ont une longueur 32, les sha 64 // en evitant une requete sql a chaque affichage du formulaire login sans session // (perf issue pour les sites qui mettent le formulaire de login sur la home) $compat_md5 = false; if (!isset($GLOBALS['meta']['sha_256_only']) or _request('var_mode')) { $compat_md5 = sql_countsel("spip_auteurs", "length(pass)=32 AND statut<>'poubelle'"); if ($compat_md5 and isset($GLOBALS['meta']['sha_256_only'])) { effacer_meta('sha_256_only'); } if (!$compat_md5) { ecrire_meta('sha_256_only', 'oui'); } } // javascript qui gere la securite du login en evitant de faire circuler le pass en clair $flux['data'] .= ($compat_md5 ? '<script type="text/javascript" src="' . _DIR_JAVASCRIPT . 'md5.js"></script>' : '') . '<script type="text/javascript" src="' . _DIR_JAVASCRIPT . 'login-sha-min.js"></script>' . '<script type="text/javascript">/*<![CDATA[*/' . "var login_info={'alea_actuel':'" . $flux['args']['contexte']['_alea_actuel'] . "'," . "'alea_futur':'" . $flux['args']['contexte']['_alea_futur'] . "'," . "'login':'******'args']['contexte']['var_login'] . "'," . "'page_auteur': '" . generer_url_public('informer_auteur') . "'," . "'informe_auteur_en_cours':false," . "'attente_informe':0," . "'compat_md5':" . ($compat_md5 ? "true" : "false") . "};" . "jQuery(function(){\n\tjQuery('#password').after(\"<em id='pass_securise'><img src='" . chemin_image('cadenas-16.png') . "' width='16' height='16' alt='" . attribut_html(_T('login_securise')) . "' title='" . attribut_html(_T('login_securise')) . "' \\/><\\/em>\");\n\tif (login_info.alea_actuel) jQuery('#pass_securise').show(); else jQuery('#pass_securise').hide();\n\tjQuery('#var_login').change(function(){actualise_auteur();});\n\tjQuery('form#formulaire_login').submit(function(){login_submit();});\n});" . "/*]]>*/</script>"; return $flux; }
function action_tester_dist() { $arg = _request('arg'); $gd_formats = $gd_formats_read_gif = ""; // verifier les formats acceptes par GD if ($arg == "gd1") { // Si GD est installe et php >= 4.0.2 if (function_exists('imagetypes')) { if (imagetypes() & IMG_GIF) { $gd_formats[] = "gif"; } else { # Attention GD sait lire le gif mais pas forcement l'ecrire if (function_exists('ImageCreateFromGIF')) { $srcImage = @ImageCreateFromGIF(_ROOT_IMG_PACK . "test.gif"); if ($srcImage) { $gd_formats_read_gif = ",gif"; ImageDestroy($srcImage); } } } if (imagetypes() & IMG_JPG) { $gd_formats[] = "jpg"; } if (imagetypes() & IMG_PNG) { $gd_formats[] = "png"; } } else { # ancienne methode de detection des formats, qui en plus # est bugguee car elle teste les formats en lecture # alors que la valeur deduite sert a identifier # les formats disponibles en ecriture... (cf. inc_logos) $gd_formats = array(); if (function_exists('ImageCreateFromJPEG')) { $srcImage = @ImageCreateFromJPEG(_ROOT_IMG_PACK . "test.jpg"); if ($srcImage) { $gd_formats[] = "jpg"; ImageDestroy($srcImage); } } if (function_exists('ImageCreateFromGIF')) { $srcImage = @ImageCreateFromGIF(_ROOT_IMG_PACK . "test.gif"); if ($srcImage) { $gd_formats[] = "gif"; ImageDestroy($srcImage); } } if (function_exists('ImageCreateFromPNG')) { $srcImage = @ImageCreateFromPNG(_ROOT_IMG_PACK . "test.png"); if ($srcImage) { $gd_formats[] = "png"; ImageDestroy($srcImage); } } } if ($gd_formats) { $gd_formats = join(",", $gd_formats); } ecrire_meta("gd_formats_read", $gd_formats . $gd_formats_read_gif); ecrire_meta("gd_formats", $gd_formats); } else { if ($arg == "netpbm") { define('_PNMSCALE_COMMAND', 'pnmscale'); // chemin a changer dans mes_options if (_PNMSCALE_COMMAND == '') { return; } $netpbm_formats = array(); $jpegtopnm_command = str_replace("pnmscale", "jpegtopnm", _PNMSCALE_COMMAND); $pnmtojpeg_command = str_replace("pnmscale", "pnmtojpeg", _PNMSCALE_COMMAND); $vignette = _ROOT_IMG_PACK . "test.jpg"; $dest = _DIR_VAR . "test-jpg.jpg"; $commande = "{$jpegtopnm_command} {$vignette} | " . _PNMSCALE_COMMAND . " -width 10 | {$pnmtojpeg_command} > {$dest}"; spip_log($commande); exec($commande); if ($taille = @getimagesize($dest)) { if ($taille[1] == 10) { $netpbm_formats[] = "jpg"; } } $giftopnm_command = str_replace("pnmscale", "giftopnm", _PNMSCALE_COMMAND); $pnmtojpeg_command = str_replace("pnmscale", "pnmtojpeg", _PNMSCALE_COMMAND); $vignette = _ROOT_IMG_PACK . "test.gif"; $dest = _DIR_VAR . "test-gif.jpg"; $commande = "{$giftopnm_command} {$vignette} | " . _PNMSCALE_COMMAND . " -width 10 | {$pnmtojpeg_command} > {$dest}"; spip_log($commande); exec($commande); if ($taille = @getimagesize($dest)) { if ($taille[1] == 10) { $netpbm_formats[] = "gif"; } } $pngtopnm_command = str_replace("pnmscale", "pngtopnm", _PNMSCALE_COMMAND); $vignette = _ROOT_IMG_PACK . "test.png"; $dest = _DIR_VAR . "test-gif.jpg"; $commande = "{$pngtopnm_command} {$vignette} | " . _PNMSCALE_COMMAND . " -width 10 | {$pnmtojpeg_command} > {$dest}"; spip_log($commande); exec($commande); if ($taille = @getimagesize($dest)) { if ($taille[1] == 10) { $netpbm_formats[] = "png"; } } if ($netpbm_formats) { $netpbm_formats = join(",", $netpbm_formats); } else { $netpbm_formats = ''; } ecrire_meta("netpbm_formats", $netpbm_formats); } } // et maintenant envoyer la vignette de tests if (in_array($arg, array("gd1", "gd2", "imagick", "convert", "netpbm"))) { include_spip('inc/filtres'); include_spip('inc/filtres_images_mini'); $taille_preview = 150; $image = _image_valeurs_trans(_DIR_IMG_PACK . 'test_image.jpg', "reduire-{$taille_preview}-{$taille_preview}", 'jpg'); $image['fichier_dest'] = _DIR_VAR . "test_{$arg}"; if ($preview = _image_creer_vignette($image, $taille_preview, $taille_preview, $arg, true) and $preview['width'] * $preview['height'] > 0) { redirige_par_entete($preview['fichier']); } } # image echec redirige_par_entete(chemin_image('puce-rouge-anim.gif')); }
function exec_admin_effacer_dist() { if (!autoriser('detruire')) { include_spip('inc/minipres'); echo minipres(); } else { pipeline('exec_init',array('args'=>array('exec'=>'admin_effacer'),'data'=>'')); $commencer_page = charger_fonction('commencer_page', 'inc'); echo $commencer_page(_T('titre_page_admin_effacer'), "configuration", "base"); echo "\n<br /><br />"; echo gros_titre(_T('titre_admin_effacer'),'',false); echo barre_onglets("administration", "effacer"); echo debut_gauche('',true); echo debut_boite_info(true); echo _T('info_gauche_admin_effacer'); echo fin_boite_info(true); echo pipeline('affiche_gauche',array('args'=>array('exec'=>'admin_effacer'),'data'=>'')); echo creer_colonne_droite('',true); echo pipeline('affiche_droite',array('args'=>array('exec'=>'admin_effacer'),'data'=>'')); echo debut_droite('',true); echo debut_cadre_trait_couleur('',true,'',"<label for='reinstall'>"._T('texte_effacer_base')."</label>"); $res = "\n<input type='hidden' name='reinstall' id='reinstall' value='non' />"; $res = generer_form_ecrire('delete_all', $res, '', _T('bouton_effacer_tout')); echo '<img src="' . chemin_image('warning.gif') . '" alt="', _T('info_avertissement'), "\" style='width: 48px; height: 48px; float: right;margin: 10px;' />", _T('texte_admin_effacer_01'), "<div class='nettoyeur'></div>", "\n<div style='text-align: center'>", debut_boite_alerte(), "\n<div class='serif'>", "\n<b>"._T('avis_suppression_base')." !</b>", $res, "\n</div>", fin_boite_alerte(), "</div>"; echo fin_cadre_relief(true); echo debut_cadre_trait_couleur('',true,'',_T('texte_effacer_statistiques')); $res = generer_form_ecrire('delete_statistiques', "", '', _T('bouton_effacer_statistiques')); echo '<img src="' . chemin_image('warning.gif') . '" alt="', _T('info_avertissement'), "\" style='width: 48px; height: 48px; float: right;margin: 10px;' />", _T('texte_admin_effacer_stats'), "<div class='nettoyeur'></div>", "\n<div style='text-align: center'>", "\n<div class='serif'>", "\n<b>"._T('avis_suppression_base')." !</b>", $res, "\n</div>", "</div>"; echo fin_cadre_relief(true); echo pipeline('affiche_milieu',array('args'=>array('exec'=>'admin_effacer'),'data'=>'')); echo fin_gauche(), fin_page(); } }
function exec_messagerie_dist() { global $connect_id_auteur, $connect_statut, $spip_lang_rtl; $commencer_page = charger_fonction('commencer_page', 'inc'); echo $commencer_page(_T('titre_page_messagerie'), "accueil", "messagerie"); echo debut_gauche("messagerie",true); echo debut_boite_info(true); echo _T('info_gauche_messagerie'); echo "<p>".http_img_pack("m_envoi$spip_lang_rtl.gif", 'V', "style='width: 14px; height: 7px; border: 0px'") .' ' . _T('info_symbole_vert'), '</p>'; echo aide ("messut"); echo "<p>".http_img_pack("m_envoi_bleu$spip_lang_rtl.gif", 'B', "style='width: 14px; height: 7px; border: 0px'") .' ' . _T('info_symbole_bleu'), '</p>'; echo aide ("messpense"); echo "<p>".http_img_pack("m_envoi_jaune$spip_lang_rtl.gif", 'J', "style='width: 14px; height: 7px; border: 0px'") .' ' . _T('info_symbole_jaune'), '</p>'; echo fin_boite_info(true); echo creer_colonne_droite('', true); echo debut_cadre_relief("messagerie-24.gif", true); echo icone_horizontale(_T('lien_nouvea_pense_bete'),generer_action_auteur("editer_message","pb"), "pense-bete.gif", "", false); echo icone_horizontale(_T('lien_nouveau_message'),generer_action_auteur("editer_message","normal"), "message.gif", "", false); if ($connect_statut == "0minirezo") { echo icone_horizontale(_T('lien_nouvelle_annonce'),generer_action_auteur("editer_message","affich"), "annonce.gif", "", false); } echo fin_cadre_relief(true); # Affiche l'encadre "lien iCal" echo debut_cadre_enfonce('',true) . "<div class='verdana1'>"._T("calendrier_synchro") . "<table class='cellule-h-table' cellpadding='0'><tr>\n" . "<td><a href='" . generer_url_ecrire("synchro") . "' class='ical'> </a></td>\n" . "<td class='cellule-h-lien'><br /><a href='" . generer_url_ecrire("synchro") . "' class='cellule-h'>" . _T("icone_suivi_activite") . "</a></td>\n</tr></table>\n" ."</div>" . fin_cadre_enfonce(true); echo debut_droite("messagerie", true); $messages_vus = array(); echo afficher_ses_messages('<b>' . _T('infos_vos_pense_bete') . '</b>', '', "id_auteur=$connect_id_auteur AND statut='publie' AND type='pb' AND (date_fin > DATE_SUB(".sql_quote(date('Y-m-d H:i:s')).", INTERVAL 1 DAY) OR rv != 'oui')", $messages_vus, false, true); echo afficher_ses_messages('<b>' . _T('info_nouveaux_message') . '</b>', ", spip_auteurs_messages AS lien", "lien.id_auteur=$connect_id_auteur AND vu='non' AND statut='publie' AND lien.id_message=messages.id_message", $messages_vus, true, true); echo afficher_ses_messages('<b>' . _T('info_discussion_cours') . '</b>', ", spip_auteurs_messages AS lien", "lien.id_auteur=$connect_id_auteur AND statut='publie' AND type='normal' AND lien.id_message=messages.id_message AND (date_fin > DATE_SUB(".sql_quote(date('Y-m-d H:i:s')).", INTERVAL 1 DAY) OR rv != 'oui')", $messages_vus, true, false); // Afficher le lien RSS echo bouton_spip_rss('messagerie', array('id_auteur' => $connect_id_auteur)); echo afficher_ses_messages('<b>' . _T('info_message_en_redaction') . '</b>', '', "id_auteur=$connect_id_auteur AND statut='redac'", $messages_vus, true, false); $result = sql_select('auteurs.id_auteur, auteurs.nom, COUNT(*) AS total', 'spip_auteurs AS auteurs, spip_auteurs_messages AS lien2, spip_messages AS messages, spip_auteurs_messages AS lien', "(lien.id_auteur = $connect_id_auteur AND lien.id_message = messages.id_message AND messages.statut = 'publie' AND (messages.rv != 'oui' OR messages.date_fin > ".sql_quote(date('Y-m-d H:i:s'))." )) AND (lien2.id_auteur = lien2.id_auteur AND lien2.id_message = messages.id_message AND lien2.id_auteur != $connect_id_auteur AND auteurs.id_auteur = lien2.id_auteur)", "auteurs.id_auteur", 'total DESC', 10); $cor = array(); while($row = sql_fetch($result)) { $id_auteur = $row['id_auteur']; $nom = typo($row["nom"]); $total = $row["total"]; $cor[]= "<div class='tr_liste'\nonmouseover=\"changeclass(this,'tr_liste_over');\"\nonmouseout=\"changeclass(this,'tr_liste');\"\nstyle='padding: 2px; padding-left: 10px; border-bottom: 1px solid #cccccc;'><div class='verdana1'><img src='" . chemin_image('redac-12.gif') . "'\nstyle='border: 0px' alt=' ' /> <a href='" . generer_url_ecrire("auteur_infos","id_auteur=$id_auteur") . "'>$nom,</a> ($total)</div></div>"; } if ($cor) { echo "<div style='height: 12px;'></div>"; $bouton = bouton_block_depliable(_T('info_principaux_correspondants'),true,'principaux'); echo debut_cadre('liste',"redacteurs-24.gif",'',$bouton); echo debut_block_depliable(true,'principaux'); echo "<table width='100%' cellpadding='0' cellspacing='0'>"; echo "<tr><td valign='top' style='width: 50%'>"; $count = ceil(count($cor)/2); echo join("\n",array_slice($cor, 0, $count)); echo "</td><td valign='top' style='width: 50%'>"; echo join("\n",array_slice($cor, $count)); echo "</td></tr></table>"; echo fin_block(); echo fin_cadre('liste'); } echo afficher_ses_messages('<b>' . _T('info_pense_bete_ancien') . '</b>', '', "id_auteur=$connect_id_auteur AND statut='publie' AND type='pb' AND rv!='oui'", $messages_vus, false, false); echo afficher_ses_messages('<b>' . _T('info_tous_redacteurs') . '</b>', '', "statut='publie' AND type='affich' AND (date_fin > DATE_SUB(".sql_quote(date('Y-m-d H:i:s')).", INTERVAL 1 DAY) OR rv != 'oui')", $messages_vus, false, false); echo fin_gauche(), fin_page(); }
/** * Chargement du formulaire d'édition de logo * * @param string $objet Objet SPIP auquel sera lie le document (ex. article) * @param int $id_objet Identifiant de l'objet * @param string $retour Url de redirection apres traitement * @param array $options Tableau d'option (exemple : image_reduire => 50) * @return array Variables d'environnement pour le fond */ function formulaires_editer_logo_charger_dist($objet, $id_objet, $retour = '', $options = array()) { // pas dans une boucle ? formulaire pour le logo du site // dans ce cas, il faut chercher un 'siteon0.ext' if (!$objet) { $objet = 'site'; } $objet = objet_type($objet); $_id_objet = id_table_objet($objet); if (!is_array($options)) { $options = unserialize($options); } if (!isset($options['titre'])) { $balise_img = chercher_filtre('balise_img'); $img = $balise_img(chemin_image('image-24.png'), "", 'cadre-icone'); $libelles = pipeline('libeller_logo', $GLOBALS['logo_libelles']); $libelle = ($id_objet or $objet != 'rubrique') ? $objet : 'racine'; if (isset($libelles[$libelle])) { $libelle = $libelles[$libelle]; } elseif ($libelle = objet_info($objet, 'texte_logo_objet')) { $libelle = _T($libelle); } else { $libelle = _L('Logo'); } switch ($objet) { case 'article': $libelle .= " " . aide("logoart"); break; case 'breve': $libelle .= " " . aide("breveslogo"); break; case 'rubrique': $libelle .= " " . aide("rublogo"); break; default: break; } $options['titre'] = $img . $libelle; } if (!isset($options['editable'])) { include_spip('inc/autoriser'); $options['editable'] = autoriser('iconifier', $objet, $id_objet); } $res = array('editable' => ($GLOBALS['meta']['activer_logos'] == 'oui' ? ' ' : '') && (!isset($options['editable']) or $options['editable']), 'logo_survol' => $GLOBALS['meta']['activer_logos_survol'] == 'oui' ? ' ' : '', 'objet' => $objet, 'id_objet' => $id_objet, '_options' => $options, '_show_upload_off' => ''); // rechercher le logo de l'objet // la fonction prend un parametre '_id_objet' etrange : // le nom de la cle primaire (et non le nom de la table) // ou directement le nom du raccourcis a chercher $chercher_logo = charger_fonction('chercher_logo', 'inc'); $etats = $res['logo_survol'] ? array('on', 'off') : array('on'); foreach ($etats as $etat) { $logo = $chercher_logo($id_objet, $_id_objet, $etat); if ($logo) { $res['logo_' . $etat] = $logo[0]; } } // pas de logo_on -> pas de formulaire pour le survol if (!isset($res['logo_on'])) { $res['logo_survol'] = ''; } elseif (!isset($res['logo_off']) and _request('logo_up')) { $res['_show_upload_off'] = ' '; } // si le logo n'est pas editable et qu'il n'y en a pas, on affiche pas du tout le formulaire if (!$res['editable'] and !isset($res['logo_off']) and !isset($res['logo_on'])) { return false; } return $res; }