From 2f164f3954406f0e23aafdb6376fdb704449543e Mon Sep 17 00:00:00 2001 From: Matthieu Marcillaud <marcimat@rezo.net> Date: Mon, 25 Feb 2013 18:17:52 +0000 Subject: [PATCH] phpdoc en partie issu de la documentation collaborative de doc.spip.org --- ecrire/action/iconifier.php | 25 ++++++-- ecrire/base/abstract_sql.php | 2 + ecrire/inc/headers.php | 19 +++++- ecrire/inc/plugin.php | 29 +++++++-- ecrire/inc/utils.php | 121 ++++++++++++++++++++++++++++++----- 5 files changed, 166 insertions(+), 30 deletions(-) diff --git a/ecrire/action/iconifier.php b/ecrire/action/iconifier.php index 07de902da3..cee5a161be 100644 --- a/ecrire/action/iconifier.php +++ b/ecrire/action/iconifier.php @@ -14,7 +14,7 @@ if (!defined('_ECRIRE_INC_VERSION')) return; /** * L'entree par l'action ne sert plus qu'a une retro compat eventuelle - * le #FORMULAIRE_EDITER_LOGO utilise action_spip_image_ajouter_dist + * le `#FORMULAIRE_EDITER_LOGO` utilise action_spip_image_ajouter_dist */ function action_iconifier_dist() { @@ -48,9 +48,26 @@ function action_spip_image_effacer_dist($arg) { // Ajouter un logo // -// $source = $_FILES[0] -// $dest = arton12.xxx -// http://doc.spip.org/@action_spip_image_ajouter_dist + +/** + * Permet d'ajouter un logo sur un objet, dont on passe le nom + * + * @example + * ``` + * $logo = &$_FILES['logo_propose']; + * include_spip('action/iconifier'); + * $spip_image_ajouter = charger_fonction('spip_image_ajouter','action'); + * $spip_image_ajouter('arton'.$id_article,true,$logo); + * ``` + * + * @param string $arg + * Nom de l'image pour l'objet tel que `arton4` + * @param bool $sousaction2 + * - false pour prendre automatiquement le logo dans `$_FILES` + * - true pour le passer en 3e paramètre + * @param string $source + * Chemin du logo uploadé sur le serveur en attente d'utilisation +**/ function action_spip_image_ajouter_dist($arg,$sousaction2,$source) { global $formats_logos; diff --git a/ecrire/base/abstract_sql.php b/ecrire/base/abstract_sql.php index af56634b7f..5a76d913d2 100644 --- a/ecrire/base/abstract_sql.php +++ b/ecrire/base/abstract_sql.php @@ -600,6 +600,8 @@ function sql_replace_multi($table, $tab_couples, $desc=array(), $serveur='', $op * Nom de la table * @param string $exist * true pour ajouter un test sur l'existence de la table, false sinon + * @param string $serveur + * Nom du connecteur * @param bool|string $option * Peut avoir 3 valeurs : * diff --git a/ecrire/inc/headers.php b/ecrire/inc/headers.php index 20fc6e7b4e..063d75ed03 100644 --- a/ecrire/inc/headers.php +++ b/ecrire/inc/headers.php @@ -18,10 +18,23 @@ if (!defined('_ECRIRE_INC_VERSION')) return; -// envoyer le navigateur sur une nouvelle adresse -// en evitant les attaques par la redirection (souvent indique par 1 $_GET) -// http://doc.spip.org/@redirige_par_entete +/** + * Envoyer le navigateur sur une nouvelle adresse + * + * Le tout en évitant les attaques par la redirection (souvent indique par un `$_GET`) + * + * @example + * ``` + * $redirect = parametre_url(urldecode(_request('redirect')),'id_article=' . $id_article); + * include_spip('inc/headers'); + * redirige_par_entete($redirect); + * ``` + * + * @param string $url URL de redirection + * @param string $equiv ? + * @param int $status Code de redirection (301 ou 302) +**/ function redirige_par_entete($url, $equiv='', $status = 302) { if (!in_array($status,array(301,302))) $status = 302; diff --git a/ecrire/inc/plugin.php b/ecrire/inc/plugin.php index 532c34e8a3..2324df6a06 100644 --- a/ecrire/inc/plugin.php +++ b/ecrire/inc/plugin.php @@ -260,9 +260,10 @@ function liste_chemin_plugin($liste, $dir_plugins=_DIR_PLUGINS){ * Liste les chemins vers les plugins actifs du dossier fourni en argument * a partir d'une liste d'elelements construits par plugin_valide_resume * + * @param string $dir_plugins + * Chemin du répertoire de plugins * @return array */ -// http://doc.spip.org/@liste_chemin_plugin_actifs function liste_chemin_plugin_actifs($dir_plugins=_DIR_PLUGINS){ include_spip('plugins/installer'); return liste_chemin_plugin(liste_plugin_actifs(), $dir_plugins); @@ -430,12 +431,26 @@ function actualise_plugins_actifs($pipe_recherche = false){ return ecrire_plugin_actifs('', $pipe_recherche, 'force'); } -// mise a jour du meta en fonction de l'etat du repertoire -// Les ecrire_meta() doivent en principe aussi initialiser la valeur a vide -// si elle n'existe pas -// risque de pb en php5 a cause du typage ou de null (verifier dans la doc php) -// @return true/false si il y a du nouveau -// http://doc.spip.org/@ecrire_plugin_actifs + +/** + * Modifie la liste des plugins actifs et recompile les fichiers caches + * qui leurs sont relatifs + * + * @note + * Les ecrire_meta() doivent en principe aussi initialiser la valeur a vide + * si elle n'existe pas risque de pb en php5 a cause du typage ou de null + * (verifier dans la doc php) + * @param string|string[] $plugin + * Plugin ou plugins concernés (leur chemin depuis le répertoire plugins) + * @param bool $pipe_recherche + * ? + * @param string $operation + * - raz : recalcule tout + * - ajoute : ajoute le plugin indiqué à la liste des plugins actifs + * - enleve : enleve le plugin indiqué de la liste des plugins actifs + * @return bool + * true|false si il y a du nouveau +**/ function ecrire_plugin_actifs($plugin,$pipe_recherche=false,$operation='raz') { // creer le repertoire cache/ si necessaire ! (installation notamment) diff --git a/ecrire/inc/utils.php b/ecrire/inc/utils.php index cade4a43b9..93f6fab766 100644 --- a/ecrire/inc/utils.php +++ b/ecrire/inc/utils.php @@ -87,15 +87,46 @@ function include_once_check($file){ return false; } -// -// la fonction cherchant un fichier PHP dans le SPIP_PATH -// -// http://doc.spip.org/@include_spip + +/** + * Inclut un fichier PHP (en le cherchant dans les chemins) + * + * @api + * @uses find_in_path() + * @example + * ``` + * include_spip('inc/texte'); + * ``` + * + * @param string $f + * Nom du fichier (sans l'extension) + * @param bool $include + * - true pour inclure le fichier, + * - false ne fait que le chercher + * @return string|bool + * - false : fichier introuvable + * - string : chemin du fichier trouvé +**/ function include_spip($f, $include = true) { return find_in_path($f . '.php', '', $include); } - +/** + * Requiert un fichier PHP (en le cherchant dans les chemins) + * + * @uses find_in_path() + * @see include_spip() + * @example + * ``` + * require_spip('inc/texte'); + * ``` + * + * @param string $f + * Nom du fichier (sans l'extension) + * @return string|bool + * - false : fichier introuvable + * - string : chemin du fichier trouvé +**/ function require_spip($f) { return find_in_path($f . '.php', '', 'required'); } @@ -864,13 +895,39 @@ function texte_script($texte) { return str_replace('\'', '\\\'', str_replace('\\', '\\\\', $texte)); } -// Chaque appel a cette fonction ajoute un repertoire en tete du chemin courant (path) -// si un repertoire lui est passe en parametre -// retourne le chemin courant sinon, sous forme de array. -// Si l'argument est de la forme dir1:dir2:dir3, ces 3 chemins sont places en tete -// du path, dans cet ordre. -// Exception: si un $dossier_squelette est defini, il reste en tete, pour raison historique -// http://doc.spip.org/@_chemin + +/** + * Gestion des chemins (ou path) de recherche de fichiers par SPIP + * + * Empile de nouveaux chemins (à la suite de ceux déjà présent, mais avant + * le répertoire squelettes ou les dossiers squelettes), si un reéertoire + * (ou liste de répertoires séparés par `:`) lui est passé en paramètre. + * + * Ainsi, si l'argument est de la forme `dir1:dir2:dir3`, ces 3 chemins sont placés + * en tete du path, dans cet ordre (hormis squelettes & la globale + * $dossier_squelette si definie qui resteront devant) + * + * Retourne dans tous les cas la liste des chemins. + * + * @note + * Cette fonction est appelée à plusieurs endroits et crée une liste + * de chemins finale à peu près de la sorte : + * + * - dossiers squelettes (si globale précisée) + * - squelettes/ + * - plugins (en fonction de leurs dépendances) : ceux qui dépendent + * d'un plugin sont devant eux (ils peuvent surcharger leurs fichiers) + * - racine du site + * - squelettes-dist/ + * - prive/ + * - ecrire/ + * + * @param string $dir_path + * - Répertoire(s) à empiler au path + * - '' provoque un recalcul des chemins. + * @return array + * Liste des chemins, par ordre de priorité. +**/ function _chemin($dir_path=NULL){ static $path_base = NULL; static $path_full = NULL; @@ -924,7 +981,15 @@ function _chemin($dir_path=NULL){ return $path_full; } -// http://doc.spip.org/@creer_chemin +/** + * Retourne la liste des chemins connus de SPIP, dans l'ordre de priorité + * + * Recalcule la liste si le nom ou liste de dossier squelettes a changé. + * + * @uses _chemin() + * + * @return array Liste de chemins +**/ function creer_chemin() { $path_a = _chemin(); static $c = ''; @@ -1021,7 +1086,33 @@ function chemin_image($icone){ $GLOBALS['path_sig'] = ''; $GLOBALS['path_files'] = null; -// http://doc.spip.org/@find_in_path +/** + * Recherche un fichier dans les chemins de SPIP (squelettes, plugins, core) + * + * Retournera le premier fichier trouvé (ayant la plus haute priorité donc), + * suivant l'ordre des chemins connus de SPIP. + * + * @api + * @see charger_fonctions() + * @uses creer_chemin() Pour la liste des chemins. + * @example + * ``` + * $f = find_in_path('css/perso.css'); + * $f = find_in_path('perso.css', 'css'); + * ``` + * + * @param string $file + * Fichier recherché + * @param string $dirname + * Répertoire éventuel de recherche (est aussi extrait automatiquement de $file) + * @param bool|string $include + * - false : ne fait rien de plus + * - true : inclut le fichier (include_once) + * - 'require' : idem, mais tue le script avec une erreur si le fichier n'est pas trouvé. + * @return string|bool + * - string : chemin du fichier trouvé + * - false : fichier introuvable +**/ function find_in_path ($file, $dirname='', $include=false) { static $dirs=array(); static $inc = array(); # cf http://trac.rezo.net/trac/spip/changeset/14743 @@ -1396,8 +1487,6 @@ function url_de_($http,$host,$request,$prof=0){ * - false : l’URL sera complète et contiendra l’URL du site * - true : l’URL sera relavive. * - string : on transmet l'url à la fonction - * @param string $action - * - Fichier d'exécution public (spip.php par défaut) * @return string URL **/ function generer_url_ecrire($script='', $args="", $no_entities=false, $rel=false) { -- GitLab