uawdijnntqw1x1x1
IP : 216.73.217.34
Hostname : webm019.cluster129.gra.hosting.ovh.net
Kernel : Linux webm019.cluster129.gra.hosting.ovh.net 6.18.42-ovh-vps-grsec-zfs+ #1 SMP PREEMPT_DYNAMIC Wed Aug 5 15:59:48 CEST 2026 x86_64
Disable Function : _dyuweyrj4,_dyuweyrj4r,dl
OS : Linux
PATH:
/
home
/
checkyd
/
www
/
plugins-dist
/
..
/
squelettes
/
css
/
..
/
..
/
7b5d0
/
action.tar
/
/
effacer_messagerecu.php000064400000002502152525112720011234 0ustar00<?php /***************************************************************************\ * SPIP, Systeme de publication pour l'internet * * * * Copyright (c) 2001-2020 * * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * * * * Ce programme est un logiciel libre distribue sous licence GNU/GPL. * * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * \***************************************************************************/ if (!defined('_ECRIRE_INC_VERSION')) { return; } /** * @param int $id_auteur * @param int $id_message * @return void */ function action_effacer_messagerecu_dist($id_auteur = null, $id_message = null) { if (is_null($id_auteur) or is_null($id_message)) { $securiser_action = charger_fonction('securiser_action', 'inc'); $arg = $securiser_action(); list($id_auteur, $id_message) = explode('-', $arg); } include_spip('inc/autoriser'); if (autoriser('effacer', 'messagerecu', $id_message, null, array('id_auteur' => $id_auteur))) { include_spip('inc/messages'); messagerie_effacer_message_recu($id_auteur, $id_message); } } quete_calendrier_prive.php000064400000012407152525112720012003 0ustar00<?php /***************************************************************************\ * SPIP, Systeme de publication pour l'internet * * * * Copyright (c) 2001-2020 * * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * * * * Ce programme est un logiciel libre distribue sous licence GNU/GPL. * * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * \***************************************************************************/ /** * Gestion de l'action de quête des événements du calendrier * * @package SPIP\Organiseur\Action **/ if (!defined('_ECRIRE_INC_VERSION')) { return; } /** * Fournir une liste d'"evenements" entre deux dates start et end * au format json * * Utilisé pour l'affichage du calendrier privé et public * * @pipeline_appel quete_calendrier_prive * @uses quete_calendrier_interval_rv() * @uses quete_calendrier_interval() * @uses convert_fullcalendar_quete_calendrier_interval_rv() * @uses convert_fullcalendar_quete_calendrier_interval() * * @return void */ function action_quete_calendrier_prive_dist() { $securiser_action = charger_fonction('securiser_action', 'inc'); $securiser_action(); $start = strtotime(_request('start')); $end = strtotime(_request('end')); $quoi = _request('quoi'); include_spip('inc/quete_calendrier'); $evt = array(); // recuperer la liste des evenements au format ics $start = date('Y-m-d H:i:s', $start); $end = date('Y-m-d H:i:s', $end); $limites = array(sql_quote($start), sql_quote($end)); // on fonction de quoi on récupère : tout (rv + publication) ou l'un ou l'autre. $entier = $duree = array(); if (!$quoi or $quoi == 'rv') { $duree = quete_calendrier_interval_rv(reset($limites), end($limites)); $evt = convert_fullcalendar_quete_calendrier_interval_rv($duree, $evt); } if (!$quoi or $quoi == 'publication') { list($entier, ) = quete_calendrier_interval($limites); $evt = convert_fullcalendar_quete_calendrier_interval($entier, $evt); } // permettre aux plugins d'afficher leurs evenements dans ce calendrier $evt = pipeline( 'quete_calendrier_prive', array( 'args' => array('start' => $start, 'end' => $end, 'quoi' => $quoi), 'data' => $evt, ) ); // format json include_spip('inc/json'); echo json_encode($evt); } /** * Convertir une date au format ical renvoyée par quete_calendrier_interval * dans le format attendu par fullcalendar : yyyy-mm-dd H:i:s * * @param $dateical * @return string */ function convert_dateical($dateical) { $d = explode('T', $dateical); $amj = reset($d); $s = substr($amj, 0, 4) . '-' . substr($amj, 4, 2) . '-' . substr($amj, 6, 2); if (count($d) > 1) { $his = end($d); $s .= ' ' . substr($his, 0, 2) . ':' . substr($his, 2, 2) . ':' . substr($his, 4, 2); } return $s; } /** * Convertir une sortie événement de quète calendrier_interval * dans le format attendu par fullcalendar * * @param array $messages * Les événements / messages au format de la quete calendrier_interval * @param array $evt * Les événements au format fullcalendar déjà présents * @return array * Les événements au format fullcalendar **/ function convert_fullcalendar_quete_calendrier_interval($messages, $evt = array()) { if (!$messages) { return $evt; } // la retransformer au format attendu par fullcalendar // facile : chaque evt n'est mentionne qu'une fois, a une date foreach ($messages as $amj => $l) { $date = substr($amj, 0, 4) . '-' . substr($amj, 4, 2) . '-' . substr($amj, 6, 2); foreach ($l as $e) { $evt[] = array( 'id' => 0, 'title' => $e['SUMMARY'], 'allDay' => true, 'start' => $date, 'end' => $date, 'url' => str_replace('&', '&', $e['URL']), 'className' => 'calendrier-event ' . $e['CATEGORIES'], 'description' => $e['DESCRIPTION'], ); } } return $evt; } /** * Convertir une sortie événement de quete calendrier_interval_rv * dans le format attendu par fullcalendar * * @use convert_dateical() * * @param array $messages * Les événements / messages au format issu de la quete calendrier_interval_rv * @param array $evt * Les événements au format fullcalendar déjà présents * @return array * Les événements au format fullcalendar **/ function convert_fullcalendar_quete_calendrier_interval_rv($messages, $evt = array()) { if (!$messages) { return $evt; } // ici il faut faire attention : un evt apparait N fois // mais on a son id $seen = array(); // toutes les messages déjà inscrits qu'on ne remet pas foreach ($evt as $e) { $seen[$e['url']] = true; } foreach ($messages as $l) { foreach ($l as $id => $e) { $url = str_replace('&', '&', $e['URL']); if (!isset($seen[$url])) { $evt[] = array( 'id' => $id, 'title' => $e['SUMMARY'], 'allDay' => false, 'start' => convert_dateical($e['DTSTART']), //Ymd\THis 'end' => convert_dateical($e['DTEND']), // Ymd\THis 'url' => $url, 'className' => 'calendrier-event ' . $e['CATEGORIES'], 'description' => $e['DESCRIPTION'], ); $seen[$url] = true; } } } return $evt; } envoyer_message.php000064400000002453152525112720010456 0ustar00<?php /***************************************************************************\ * SPIP, Systeme de publication pour l'internet * * * * Copyright (c) 2001-2020 * * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * * * * Ce programme est un logiciel libre distribue sous licence GNU/GPL. * * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * \***************************************************************************/ if (!defined('_ECRIRE_INC_VERSION')) { return; } /** * @param int $id_message * @return void */ function action_envoyer_message_dist($id_message = null) { if (is_null($id_message)) { $securiser_action = charger_fonction('securiser_action', 'inc'); $id_message = $securiser_action(); } include_spip('inc/autoriser'); if (intval($id_message) and $type = sql_getfetsel('type', 'spip_messages', 'id_message=' . intval($id_message)) and autoriser('envoyermessage', $type, $id_message) ) { include_spip('action/editer_objet'); objet_modifier('message', $id_message, array('statut' => 'publie')); } } quete_autocomplete.php000064400000002244152525112720011165 0ustar00<?php /***************************************************************************\ * SPIP, Systeme de publication pour l'internet * * * * Copyright (c) 2001-2020 * * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * * * * Ce programme est un logiciel libre distribue sous licence GNU/GPL. * * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * \***************************************************************************/ if (!defined('_ECRIRE_INC_VERSION')) { return; } function action_quete_autocomplete_dist() { $securiser_action = charger_fonction('securiser_action', 'inc'); $arg = $securiser_action(); if ($arg and $arg == $GLOBALS['visiteur_session']['id_auteur'] ) { include_spip('inc/actions'); include_spip('inc/json'); echo ajax_retour( recuperer_fond('prive/squelettes/inclure/organiseur-autocomplete-auteur', array('term' => _request('term'))), 'application/json' ); } } supprimer_message.php000064400000002264152525112720011015 0ustar00<?php /***************************************************************************\ * SPIP, Systeme de publication pour l'internet * * * * Copyright (c) 2001-2020 * * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * * * * Ce programme est un logiciel libre distribue sous licence GNU/GPL. * * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * \***************************************************************************/ if (!defined('_ECRIRE_INC_VERSION')) { return; } /** * @param int $id_message * @return void */ function action_supprimer_message_dist($id_message = null) { if (is_null($id_message)) { $securiser_action = charger_fonction('securiser_action', 'inc'); $id_message = $securiser_action(); } include_spip('inc/autoriser'); if (autoriser('supprimer', 'message', $id_message)) { include_spip('action/editer_objet'); objet_modifier('message', $id_message, array('statut' => 'poub')); } } seo_save_meta.php000064400000001711152525221350010071 0ustar00<?php /** * BouncingOrange SPIP SEO plugin * * @category SEO * @package SPIP_SEO * @author Pierre ROUSSET (p.rousset@gmail.com) * @copyright Copyright (c) 2009 BouncingOrange (http://www.bouncingorange.com) * @license http://opensource.org/licenses/gpl-2.0.php General Public License (GPL 2.0) */ if (!defined("_ECRIRE_INC_VERSION")) return; function action_seo_save_meta_dist() { include_spip('inc/abstract_sql'); $id_object = _request('id_object'); $type_object = _request('type_object'); $meta_tag = is_array(_request('meta_tag')) ? _request('meta_tag') : array(); if(!autoriser('modifier', $type_object, $id_object)) { echo "Error :("; return; } sql_delete("spip_seo", "id_object = $id_object AND type_object = '$type_object'"); foreach ($meta_tag as $name => $content) { sql_insertq('spip_seo', array('id_object' => $id_object, 'type_object' => $type_object, 'meta_name' => $name, 'meta_content' => $content)); } } ?> teleporter.php000064400000006534152525277620007467 0ustar00<?php /** * Gestion de l'action teleporter * * @plugin SVP pour SPIP * @license GPL * @package SPIP\SVP\Actions */ /** * Téléporter et déballer un composant * * @param string $methode * http|git|svn|... * @param string $source * URL source du composant * @param string $dest * Chemin du répertoire où déballer le composant. Inclus le dernier segment * @param array $options * revision => '' * --ignore-externals * @return bool|string * String : texte d'une erreur * true si l'opération est correctement réalisée */ function action_teleporter_composant_dist($methode, $source, $dest, $options = array()) { # Si definie a '', le chargeur est interdit ; mais on n'aurait de toutes # facons jamais pu venir ici avec toutes les securisations faites :^) # sauf si on doit télécharger une lib dans _DIR_LIB if (!preg_match(',' . substr(_DIR_LIB, 0, -1) . ',', $dest) && !_DIR_PLUGINS_AUTO) { die('Vous ne pouvez pas télécharger, absence de _DIR_PLUGINS_AUTO'); } if (!autoriser('ajouter', '_plugins')){ return _T('svp:erreur_teleporter_chargement_source_impossible', ['source' => $source]); } // verifier que la methode est connue if (!$teleporter = charger_fonction($methode, "teleporter", true)) { spip_log("Methode $methode inconnue pour teleporter $source vers $dest", "teleport" . _LOG_ERREUR); return _T('svp:erreur_teleporter_methode_inconue', array('methode' => $methode)); } if (!$dest = teleporter_verifier_destination($d = $dest)) { spip_log("Rerpertoire $d non accessible pour teleporter $source vers $d", "teleport" . _LOG_ERREUR); return _T('svp:erreur_teleporter_destination_erreur', array('dir' => $d)); #$texte = "<p>"._T('plugin_erreur_droit1',array('dest'=>$dest))."</p>" # . "<p>"._T('plugin_erreur_droit2').aider('install0')."</p>"; } # destination temporaire des fichiers si besoin $options['dir_tmp'] = sous_repertoire(_DIR_CACHE, 'chargeur'); return $teleporter($methode, $source, $dest, $options); } /** * Vérifier et préparer l'arborescence jusqu'au répertoire parent * * @param string $dest * @return bool|string * false en cas d'échec * Chemin du répertoire sinon */ function teleporter_verifier_destination($dest) { $dest = rtrim($dest, "/"); $final = basename($dest); $base = dirname($dest); $create = array(); // on cree tout le chemin jusqu'a dest non inclus while (!is_dir($base)) { $create[] = basename($base); $base = dirname($base); } while (count($create)) { if (!is_writable($base)) { return false; } $base = sous_repertoire($base, array_pop($create)); if (!$base) { return false; } } if (!is_writable($base)) { return false; } return $base . "/$final"; } /** * Déplace un répertoire pour libérer l'emplacement. * * Si le répertoire donné existe, le déplace dans un répertoire de backup. * Si ce backup existe déjà, il est supprimé auparavant. * Retourne le nouveau chemin du répertoire. * * @param string $dest * Chemin du répertoire à déplacer * @return string * Nouveau chemin du répertoire s'il existait, * Chaîne vide sinon **/ function teleporter_nettoyer_vieille_version($dest) { $old = ""; if (is_dir($dest)) { $dir = dirname($dest); $base = basename($dest); $old = "$dir/.$base.bck"; if (is_dir($old)) { supprimer_repertoire($old); } rename($dest, $old); } return $old; } actionner.php000064400000010013152525277620007247 0ustar00<?php /** * Gestion de l'action actionner * * @plugin SVP pour SPIP * @license GPL * @package SPIP\SVP\Actions */ if (!defined("_ECRIRE_INC_VERSION")) { return; } /** * Action effectuant 1 action dans la liste des actions à réaliser * sur les plugins. * * Cette action sera relancée tant qu'il reste des actions à faire */ function action_actionner_dist() { // droits include_spip('inc/autoriser'); if (!autoriser('configurer', '_plugins')) { include_spip('inc/minipres'); echo minipres(); exit; } include_spip('inc/svp_actionner'); include_spip('inc/headers'); $actionneur = new Actionneur(); $actionneur->get_actions(); if ($actionneur->one_action()) { // si SVP a été enlevé des actifs, on redirige sur la fin... // sinon cette page d'action/actionner devient introuvable. // dans ce cas précis, les autres actions prévues venant après la desactivation de SVP // ne pourront être traitees... SVP n'étant plus là ! if ($actionneur->tester_si_svp_desactive()) { $url = _request('redirect'); } else { $url = generer_action_auteur('actionner', '', _request('redirect')); } // en mode pas à pas, on affiche un bilan entre chaque action // et on demande a l'utilistateur de cliquer pour realiser // l'action suivante. include_spip('inc/config'); if (lire_config('svp/mode_pas_a_pas') == 'oui') { include_spip('inc/minipres'); include_spip('inc/filtres'); $pres = $actionneur->presenter_actions(); $btn = "<a href='".attribut_html($url)."'>[ Action Suivante ]</a>"; $styles = " <style type='text/css'> #minipres #actionner .fail {color:#c30000;} #minipres #actionner ul {margin-left: 0.5em;} #minipres #actionner li {list-style-type:square; margin-left: 0.5em;} </style>"; echo minipres(_T('svp:installation_en_cours'), $pres . '<br /><br />' . $btn . $styles); die(); } // s'il n'y avait en tout est pour tout qu'une seule action, rediriger directement if ($actionneur->progression() === 1 and count($actionneur->done) === 1) { redirige_par_entete(str_replace('&', '&', $url)); } // sinon bel affichage de la progression svp_redirige_boucle( str_replace('&', '&', $url), $actionneur->presenter_derniere_action(), $actionneur->progression() ); } foreach ($actionneur->done as $done) { if ($done['todo'] == 'on') { if ($voir = session_get('svp_admin_plugin_voir') and $voir == 'inactif' ) { session_set('svp_admin_plugin_voir', 'actif'); } break; } } include_spip('inc/svp_depoter_local'); svp_actualiser_paquets_locaux(); if (!_request('redirect')) { $GLOBALS['redirect'] = generer_url_ecrire('admin_plugin'); } else { $GLOBALS['redirect'] = str_replace('&', '&', _request('redirect')); } } /** * Redirections par refresh d'une URL afin d'éviter des blocages de redirections par les navigateurs * lorsqu'elles sont trop nombreuses * * @param string $url * @param string $texte Texte de l'action réalisée * @param string $progres */ function svp_redirige_boucle($url, $texte, $progres){ include_spip('inc/minipres'); //@apache_setenv('no-gzip', 1); // provoque page blanche chez certains hebergeurs donc ne pas utiliser @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); $pres = '<meta http-equiv="refresh" content="0;'.$url.'">'; $pres .=" <div class='derniere_action'>$texte</div> <div class='progression'>" . round($progres*100) . "%</div> <div class='bar'><div style='width:".round($progres*100)."%'></div></div> "; $styles = " <style type='text/css'> #minipres .derniere_action { font-weight:bold; } #minipres div { line-height:140%; } #minipres div.progression { margin-top:2em; font-weight:bold; font-size:1.4em; text-align:center; } #minipres .bar {border:1px solid #aaa;} #minipres .bar div {background:#aaa;height:1em;} </style>"; echo minipres(_T('svp:installation_en_cours'), $pres . $styles); exit; } editer_depot.php000064400000005602152525277620007744 0ustar00<?php /***************************************************************************\ * SPIP, Systeme de publication pour l'internet * * * * Copyright (c) 2001-2020 * * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * * * * Ce programme est un logiciel libre distribue sous licence GNU/GPL. * * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * \***************************************************************************/ /** * Gestion de l'action editer_depot * * @plugin SVP pour SPIP * @license GPL * @package SPIP\SVP\Actions */ if (!defined("_ECRIRE_INC_VERSION")) { return; } /** * Action de mise à jour des descriptions d'un dépot * * @return array * Liste identifiant du dépot, texte d'erreur éventuel **/ function action_editer_depot_dist() { $securiser_action = charger_fonction('securiser_action', 'inc'); $arg = $securiser_action(); // Verification des autorisations if (!autoriser('webmestre')) { include_spip('inc/minipres'); echo minipres(); exit(); } // Le depot n'est jamais cree par une edition mais via le formulaire ajouter_depot // On est toujours en presence d'une mise a jour pour cette action, l'id_depot // doit donc etre renseigne sinon c'est une erreur if ($id_depot = intval($arg)) { // On teste si l'auteur est connecte. Si non on renvoie sur le formulaire login $id_auteur = $GLOBALS['visiteur_session']['id_auteur']; if (!($id_auteur)) { include_spip('inc/headers'); redirige_url_ecrire(); } // On met a jour le depot avec les saisies if (sql_updateq('spip_depots', array( 'titre' => _request('titre'), 'descriptif' => _request('descriptif'), 'type' => _request('type') ), 'id_depot=' . sql_quote($id_depot))) { ; } // Enregistre l'envoi dans la BD // Dans le cas du depot rien n'est fait actuellement, on garde cette fonction // par souci de coherence avec les autres editions d'objet et pour usage futur $err = depots_set($id_depot); if (!$err) { spip_log("ACTION MODIFIER DEPOT (manuel) : id_depot = " . $id_depot, 'svp_actions.' . _LOG_INFO); } } return array($id_depot, $err); } /** * Appelle toutes les fonctions de modification d'un dépot * $err est de la forme '&trad_err=1' * * @note * Cette fonction ne fait rien actuellement !! * * @param int $id_depot * Identifiant du dépot * @return string * Texte d'une eventuelle erreur **/ function depots_set($id_depot) { $err = ''; // unifier $texte en cas de texte trop long // - non utilisabe sur le descriptif aujourd'huiez // Enregistrer les revisions // - revisions_depot() // Modifier le statut ? // - instituer_depot() return $err; } supprimer_depot.php000064400000001477152525277620010524 0ustar00<?php /** * Gestion de l'action supprimer_depot * * @plugin SVP pour SPIP * @license GPL * @package SPIP\SVP\Actions */ /** * Action de suppression en base de données d'un dépot et de ses plugins * * @uses svp_supprimer_depot() * @return void */ function action_supprimer_depot_dist() { // Securisation: aucun argument attendu $securiser_action = charger_fonction('securiser_action', 'inc'); $arg = $securiser_action(); // Verification des autorisations if (!autoriser('webmestre')) { include_spip('inc/minipres'); echo minipres(); exit(); } // Suppression du depot et de ses plugins if ($id_depot = intval($arg)) { include_spip('inc/svp_depoter_distant'); svp_supprimer_depot($id_depot); spip_log("ACTION SUPPRIMER DEPOT (manuel) : id_depot = " . $id_depot, 'svp_actions.' . _LOG_INFO); } } actualiser_depot.php000064400000002710152525277620010621 0ustar00<?php /** * Gestion de l'action actualiser_depot * * @plugin SVP pour SPIP * @license GPL * @package SPIP\SVP\Actions */ /** * Action de mise à jour en base de données de la liste des plugins * d'un ou de tous les dépots */ function action_actualiser_depot_dist() { // Securisation: aucun argument attendu $securiser_action = charger_fonction('securiser_action', 'inc'); $arg = $securiser_action(); // Verification des autorisations if (!autoriser('webmestre')) { include_spip('inc/minipres'); echo minipres(); exit(); } // Actualisation des plugins du depot ou de tous les plugins suivant l'argument de l'action // Le depot lui-meme n'est mis a jour que partiellement via le fichier XML une fois que // la premiere insertion a ete effectuee. En effet, seules les infos non editables dans le prive // peuvent etre actualisees lors de cette action include_spip('inc/svp_depoter_distant'); if ($arg === 'tout') { if ($ids_depots = sql_allfetsel('id_depot', 'spip_depots')) { $ids_depots = array_map('reset', $ids_depots); foreach ($ids_depots as $_id_depot) { svp_actualiser_depot($_id_depot); } // On consigne l'action spip_log("ACTION ACTUALISER TOUS LES DEPOTS (manuel)", 'svp_actions.' . _LOG_INFO); } } else { if ($id_depot = intval($arg)) { svp_actualiser_depot($id_depot); // On consigne l'action spip_log("ACTION ACTUALISER DEPOT (manuel) : id_depot = " . $id_depot, 'svp_actions.' . _LOG_INFO); } } }
/home/checkyd/www/plugins-dist/../squelettes/css/../../7b5d0/action.tar