Skip to content
Extraits de code Groupes Projets
Valider 2f164f39 rédigé par marcimat's avatar marcimat
Parcourir les fichiers

phpdoc en partie issu de la documentation collaborative de doc.spip.org

parent b6eedc92
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -14,7 +14,7 @@ if (!defined('_ECRIRE_INC_VERSION')) return; ...@@ -14,7 +14,7 @@ if (!defined('_ECRIRE_INC_VERSION')) return;
/** /**
* L'entree par l'action ne sert plus qu'a une retro compat eventuelle * 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() function action_iconifier_dist()
{ {
...@@ -48,9 +48,26 @@ function action_spip_image_effacer_dist($arg) { ...@@ -48,9 +48,26 @@ function action_spip_image_effacer_dist($arg) {
// Ajouter un logo // 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) { function action_spip_image_ajouter_dist($arg,$sousaction2,$source) {
global $formats_logos; global $formats_logos;
......
...@@ -600,6 +600,8 @@ function sql_replace_multi($table, $tab_couples, $desc=array(), $serveur='', $op ...@@ -600,6 +600,8 @@ function sql_replace_multi($table, $tab_couples, $desc=array(), $serveur='', $op
* Nom de la table * Nom de la table
* @param string $exist * @param string $exist
* true pour ajouter un test sur l'existence de la table, false sinon * true pour ajouter un test sur l'existence de la table, false sinon
* @param string $serveur
* Nom du connecteur
* @param bool|string $option * @param bool|string $option
* Peut avoir 3 valeurs : * Peut avoir 3 valeurs :
* *
......
...@@ -18,10 +18,23 @@ ...@@ -18,10 +18,23 @@
if (!defined('_ECRIRE_INC_VERSION')) return; 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) { function redirige_par_entete($url, $equiv='', $status = 302) {
if (!in_array($status,array(301,302))) if (!in_array($status,array(301,302)))
$status = 302; $status = 302;
......
...@@ -260,9 +260,10 @@ function liste_chemin_plugin($liste, $dir_plugins=_DIR_PLUGINS){ ...@@ -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 * Liste les chemins vers les plugins actifs du dossier fourni en argument
* a partir d'une liste d'elelements construits par plugin_valide_resume * a partir d'une liste d'elelements construits par plugin_valide_resume
* *
* @param string $dir_plugins
* Chemin du répertoire de plugins
* @return array * @return array
*/ */
// http://doc.spip.org/@liste_chemin_plugin_actifs
function liste_chemin_plugin_actifs($dir_plugins=_DIR_PLUGINS){ function liste_chemin_plugin_actifs($dir_plugins=_DIR_PLUGINS){
include_spip('plugins/installer'); include_spip('plugins/installer');
return liste_chemin_plugin(liste_plugin_actifs(), $dir_plugins); return liste_chemin_plugin(liste_plugin_actifs(), $dir_plugins);
...@@ -430,12 +431,26 @@ function actualise_plugins_actifs($pipe_recherche = false){ ...@@ -430,12 +431,26 @@ function actualise_plugins_actifs($pipe_recherche = false){
return ecrire_plugin_actifs('', $pipe_recherche, 'force'); 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 * Modifie la liste des plugins actifs et recompile les fichiers caches
// risque de pb en php5 a cause du typage ou de null (verifier dans la doc php) * qui leurs sont relatifs
// @return true/false si il y a du nouveau *
// http://doc.spip.org/@ecrire_plugin_actifs * @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') { function ecrire_plugin_actifs($plugin,$pipe_recherche=false,$operation='raz') {
// creer le repertoire cache/ si necessaire ! (installation notamment) // creer le repertoire cache/ si necessaire ! (installation notamment)
......
...@@ -87,15 +87,46 @@ function include_once_check($file){ ...@@ -87,15 +87,46 @@ function include_once_check($file){
return false; return false;
} }
//
// la fonction cherchant un fichier PHP dans le SPIP_PATH /**
// * Inclut un fichier PHP (en le cherchant dans les chemins)
// http://doc.spip.org/@include_spip *
* @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) { function include_spip($f, $include = true) {
return find_in_path($f . '.php', '', $include); 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) { function require_spip($f) {
return find_in_path($f . '.php', '', 'required'); return find_in_path($f . '.php', '', 'required');
} }
...@@ -864,13 +895,39 @@ function texte_script($texte) { ...@@ -864,13 +895,39 @@ function texte_script($texte) {
return str_replace('\'', '\\\'', str_replace('\\', '\\\\', $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. * Gestion des chemins (ou path) de recherche de fichiers par SPIP
// Si l'argument est de la forme dir1:dir2:dir3, ces 3 chemins sont places en tete *
// du path, dans cet ordre. * Empile de nouveaux chemins (à la suite de ceux déjà présent, mais avant
// Exception: si un $dossier_squelette est defini, il reste en tete, pour raison historique * le répertoire squelettes ou les dossiers squelettes), si un reéertoire
// http://doc.spip.org/@_chemin * (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){ function _chemin($dir_path=NULL){
static $path_base = NULL; static $path_base = NULL;
static $path_full = NULL; static $path_full = NULL;
...@@ -924,7 +981,15 @@ function _chemin($dir_path=NULL){ ...@@ -924,7 +981,15 @@ function _chemin($dir_path=NULL){
return $path_full; 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() { function creer_chemin() {
$path_a = _chemin(); $path_a = _chemin();
static $c = ''; static $c = '';
...@@ -1021,7 +1086,33 @@ function chemin_image($icone){ ...@@ -1021,7 +1086,33 @@ function chemin_image($icone){
$GLOBALS['path_sig'] = ''; $GLOBALS['path_sig'] = '';
$GLOBALS['path_files'] = null; $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) { function find_in_path ($file, $dirname='', $include=false) {
static $dirs=array(); static $dirs=array();
static $inc = array(); # cf http://trac.rezo.net/trac/spip/changeset/14743 static $inc = array(); # cf http://trac.rezo.net/trac/spip/changeset/14743
...@@ -1396,8 +1487,6 @@ function url_de_($http,$host,$request,$prof=0){ ...@@ -1396,8 +1487,6 @@ function url_de_($http,$host,$request,$prof=0){
* - false : l’URL sera complète et contiendra l’URL du site * - false : l’URL sera complète et contiendra l’URL du site
* - true : l’URL sera relavive. * - true : l’URL sera relavive.
* - string : on transmet l'url à la fonction * - string : on transmet l'url à la fonction
* @param string $action
* - Fichier d'exécution public (spip.php par défaut)
* @return string URL * @return string URL
**/ **/
function generer_url_ecrire($script='', $args="", $no_entities=false, $rel=false) { function generer_url_ecrire($script='', $args="", $no_entities=false, $rel=false) {
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter