diff --git a/ecrire/base/abstract_sql.php b/ecrire/base/abstract_sql.php index 318ffbc2736b1804116e41a6dce29044c18b5c1d..d65d1376843c4fbb2db14e4631f739a1bf882d80 100644 --- a/ecrire/base/abstract_sql.php +++ b/ecrire/base/abstract_sql.php @@ -256,7 +256,8 @@ function sql_get_select($select = array(), $from = array(), $where = array(), * @param string $serveur * Le serveur sollicite (pour retrouver la connexion) * @param bool|string $option - * Peut avoir 3 valeurs : + * Peut avoir 3 valeurs : + * * - false -> ne pas l'executer mais la retourner, * - continue -> ne pas echouer en cas de serveur sql indisponible, * - true -> executer la requete. @@ -433,17 +434,18 @@ function sql_listdbs($serveur='', $option=true) { * * @api * @param string $nom - * Nom de la base a utiliser + * Nom de la base a utiliser * @param string $serveur - * Nom du connecteur + * Nom du connecteur * @param bool|string $option - * Peut avoir 2 valeurs : - * - true -> executer la requete - * - continue -> ne pas echouer en cas de serveur sql indisponible + * Peut avoir 2 valeurs : + * + * - true -> executer la requete + * - continue -> ne pas echouer en cas de serveur sql indisponible * * @return bool|string - * True ou nom de la base en cas de success. - * False en cas d'erreur. + * - True ou nom de la base en cas de success. + * - False en cas d'erreur. **/ function sql_selectdb($nom, $serveur='', $option=true) { @@ -496,7 +498,37 @@ function sql_insertq($table, $couples=array(), $desc=array(), $serveur='', $opti return $r; } -// http://doc.spip.org/@sql_insertq_multi +/** + * Insère plusieurs lignes d'un coup dans une table + * + * Insère en une opération plusieurs éléments au schéma identique + * dans une table de la base de données. Lorsque les portages le permettent, + * ils utilisent une seule requête SQL pour réaliser l’ajout. + * + * @api + * @see sql_insertq() + * + * @param string $table + * Nom de la table SQL + * @param array $couples + * Tableau de tableaux associatifs (nom => valeur) + * @param array $desc + * Tableau de description des colonnes de la table SQL utilisée + * (il sera calculé si nécessaire s'il n'est pas transmis). + * @param string $serveur + * Nom du connecteur + * @param bool|string $option + * Peut avoir 3 valeurs : + * + * - false : ne pas l'exécuter mais la retourner, + * - true : exécuter la requête + * - 'continue' : ne pas échouer en cas de serveur sql indisponible + * + * @return bool|string + * - True en cas de succès, + * - Texte de la requête si demandé, + * - False en cas d'erreur. +**/ function sql_insertq_multi($table, $couples=array(), $desc=array(), $serveur='', $option=true) { $f = sql_serveur('insertq_multi', $serveur, $option==='continue' OR $option===false); @@ -680,11 +712,30 @@ function sql_create_base($nom, $serveur='', $option=true) return $r; } -// Fonction pour creer une vue -// nom : nom de la vue, -// select_query : une requete select, idealement cree avec $req = sql_select() -// (en mettant $option du sql_select a false pour recuperer la requete) -// http://doc.spip.org/@sql_create_view + +/** + * Crée une vue SQL + * + * @api + * @see sql_get_select() Pour obtenir le texte de la requête SELECT pour créer la vue. + * + * @param string $nom + * Nom de la vue + * @param string $select_query + * Une requête SELECT, idéalement crée avec `sql_get_select(...)` + * @param string $serveur + * Nom du connecteur + * @param bool|string $option + * Peut avoir 3 valeurs : + * + * - false : ne pas l'exécuter mais la retourner, + * - true : exécuter la requête + * - 'continue' : ne pas échouer en cas de serveur sql indisponible + * @return bool|string + * - true si succès, + * - texte de la requête si demandé + * - false en cas d'échec. +**/ function sql_create_view($nom, $select_query, $serveur='', $option=true) { $f = sql_serveur('create_view', $serveur, $option==='continue' OR $option===false); if (!is_string($f) OR !$f) return false; diff --git a/ecrire/inc/charger_php_extension.php b/ecrire/inc/charger_php_extension.php index 35f1722d03c4f652c6780980371f2398ff69c543..8f6b039ba804bf42fc6d9625486dccf8d1fe17aa 100644 --- a/ecrire/inc/charger_php_extension.php +++ b/ecrire/inc/charger_php_extension.php @@ -1,20 +1,34 @@ <?php +/** + * Chargement d'une extension PHP + * + * @package SPIP\Core\Outils +**/ + if (!defined('_ECRIRE_INC_VERSION')) return; -// cette fonction (adaptee de phpMyAdmin) -// permet de charger un module php -// dont le nom est donne en argument (ex: 'mysql') -// retourne true en cas de succes -// -// 3 etapes : -// - 1) si le module est deja charge, on sort vainqueur -// - 2) on teste si l'on a la possibilite de charger un module -// via la meta 'dl_allowed'. Si elle n'est pas renseignee, -// elle sera cree en fonction des parametres de php -// - 3) si l'on peut, on charge le module par la fonction dl() -// -// http://doc.spip.org/@inc_charger_php_extension_dist +/** + * Permet de charger un module PHP dont le nom est donné en argument + * + * Fonction adaptée de phpMyAdmin. + * + * Trois étapes : + * + * 1) si le module est deja charge, on sort vainqueur + * 2) on teste si l'on a la possibilité de charger un module + * via la meta `dl_allowed`. Si elle n'est pas renseignée, + * elle sera crée en fonction des paramètres de php + * 3) si l'on peut, on charge le module par la fonction `dl()` + * + * @note + * La fonction `dl()` n'est plus présente à partir de PHP 5.3. + * + * @param string $module + * Nom du module à charger (tel que 'mysql') + * @return bool + * true en cas de succes +**/ function inc_charger_php_extension_dist($module){ if (extension_loaded($module)) { return true; diff --git a/ecrire/inc/filtres.php b/ecrire/inc/filtres.php index fa05dc7ef5cca445a31cce9b1498f1f5bc3d18ad..ad26a5cf47190c7f2416042287e7d4326c04ba6d 100644 --- a/ecrire/inc/filtres.php +++ b/ecrire/inc/filtres.php @@ -2798,9 +2798,29 @@ function match($texte, $expression, $modif="UimsS",$capte=0) { return false; } -// filtre replace pour faire des operations avec expression reguliere -// [(#TEXTE|replace{^ceci$,cela,UimsS})] -// http://doc.spip.org/@replace + +/** + * Remplacement de texte à base d'expression régulière + * + * @filtre replace + * @link http://www.spip.net/4309 + * @see match() + * @example + * ``` + * [(#TEXTE|replace{^ceci$,cela,UimsS})] + * ``` + * + * @param string $texte + * Texte + * @param string $expression + * Expression régulière + * @param string $replace + * Texte de substitution des éléments trouvés + * @param string $modif + * Modificateurs pour l'expression régulière. + * @return string + * Texte +**/ function replace($texte, $expression, $replace='', $modif="UimsS") { $expression=str_replace("\/","/", $expression); $expression=str_replace("/","\/",$expression); diff --git a/ecrire/inc/headers.php b/ecrire/inc/headers.php index ee167cbd9a20a7ea2cea214c53cdb25a704f1437..20fc6e7b4e1fd1e3cf7dd5b5a5f7029d12ad87e5 100644 --- a/ecrire/inc/headers.php +++ b/ecrire/inc/headers.php @@ -124,7 +124,23 @@ function redirige_formulaire($url, $equiv = '', $format='message') { } } -// http://doc.spip.org/@redirige_url_ecrire +/** + * Effectue une redirection par header PHP vers un script de l’interface privée + * + * @uses redirige_par_entete() Qui tue le script PHP. + * @example + * ``` + * include_spip('inc/headers'); + * redirige_url_ecrire('rubriques','id_rubrique=' . $id_rubrique); + * ``` + * + * @param string $script + * Nom de la page privée (exec) + * @param string args + * Arguments à transmettre. Exemple `etape=1&autre=oui` + * @param string $equiv + * @return void +**/ function redirige_url_ecrire($script='', $args='', $equiv='') { return redirige_par_entete(generer_url_ecrire($script, $args, true), $equiv); } diff --git a/ecrire/inc/meta.php b/ecrire/inc/meta.php index 2b328f2e061ee4ee9660e67e307d7149a9810c66..11d27d2b0c00cb251dc468e9586e49809e1dad1c 100644 --- a/ecrire/inc/meta.php +++ b/ecrire/inc/meta.php @@ -10,6 +10,12 @@ * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * \***************************************************************************/ +/** + * Gestion des meta de configuration + * + * @package SPIP\Core\Configuration +**/ + if (!defined('_ECRIRE_INC_VERSION')) return; // Les parametres generaux du site sont dans une table SQL; @@ -85,9 +91,16 @@ function lire_metas($table='meta') { return $GLOBALS[$table]; } -// Mettre en cache la liste des meta, sauf les valeurs sensibles -// pour qu'elles ne soient pas visibiles dans un fichier.souvent en 777 -// http://doc.spip.org/@touch_meta + +/** + * Mettre en cache la liste des meta, sauf les valeurs sensibles + * pour qu'elles ne soient pas visibiles dans un fichier (souvent en 777) + * + * @param bool|int $antidate + * Date de modification du fichier à appliquer si indiqué (timestamp) + * @param string $table + * Table SQL d'enregistrement des meta. +**/ function touch_meta($antidate= false, $table='meta'){ $file = cache_meta($table); if (!$antidate OR !@touch($file, $antidate)) { @@ -103,7 +116,18 @@ function touch_meta($antidate= false, $table='meta'){ } } -// http://doc.spip.org/@effacer_meta +/** + * Supprime une meta + * + * @see ecrire_config() + * @see effacer_config() + * @see lire_config() + * + * @param string $nom + * Nom de la meta + * @param string $table + * Table SQL d'enregistrement de la meta. +**/ function effacer_meta($nom, $table='meta') { // section critique sur le cache: // l'invalider avant et apres la MAJ de la BD @@ -117,7 +141,22 @@ function effacer_meta($nom, $table='meta') { if (!isset($touch[$table])) {touch_meta($antidate, $table); $touch[$table] = false;} } -// http://doc.spip.org/@ecrire_meta +/** + * Met à jour où crée une meta avec la clé et valeur indiquée + * + * @see ecrire_config() + * @see effacer_config() + * @see lire_config() + * + * @param string $nom + * Nom de la meta + * @param string $valeur + * Valeur à enregistrer + * @param bool|null $importable + * Cette meta s'importe-elle avec une restauration de sauvegarde ? + * @param string $table + * Table SQL d'enregistrement de la meta. +**/ function ecrire_meta($nom, $valeur, $importable = NULL, $table='meta') { static $touch = array(); @@ -151,13 +190,20 @@ function ecrire_meta($nom, $valeur, $importable = NULL, $table='meta') { if (!isset($touch[$table])) {touch_meta($antidate, $table); $touch[$table] = false;} } -function cache_meta($table='meta') -{ +/** + * Retourne le nom du fichier cache d'une table SQL de meta + * + * @param string $table + * Table SQL d'enregistrement des meta. + * @return string + * Nom du fichier cache +**/ +function cache_meta($table='meta') { return ($table=='meta') ? _FILE_META : (_DIR_CACHE . $table . '.php'); } /** - * Une fonction pour installer une table de configuration supplementaire + * Installer une table de configuration supplementaire * @param string $table */ function installer_table_meta($table) { @@ -172,8 +218,9 @@ function installer_table_meta($table) { } /** - * Une fonction pour supprimer une table de configuration supplementaire - * si $force=true, on ne verifie pas qu'elle est bien vide + * Supprimer une table de configuration supplémentaire + * + * Si $force=true, on ne verifie pas qu'elle est bien vide * * @param string $table * @param bool $force diff --git a/ecrire/inc/session.php b/ecrire/inc/session.php index c814a771477dc0c7ab8938f3b14c1be98b305af9..c1a39030d22d7da69b49e0947c2b588b8c3ccdde 100644 --- a/ecrire/inc/session.php +++ b/ecrire/inc/session.php @@ -249,8 +249,6 @@ function verifier_session($change=false) { /** * Lire une valeur dans la session SPIP * - * http://doc.spip.org/@session_get - * * @param string $nom * @return mixed */ @@ -260,8 +258,7 @@ function session_get($nom) { /** - * Ajouter une donnee dans la session SPIP - * http://doc.spip.org/@session_set + * Ajouter une donnée dans la session SPIP * * @param string $nom * @param null $val diff --git a/ecrire/inc/utils.php b/ecrire/inc/utils.php index 2d1cebf70a60ed9fd05e80b418e5604d1b9a8acf..924899891105ad0959ee69b5aae9854786aa9d92 100644 --- a/ecrire/inc/utils.php +++ b/ecrire/inc/utils.php @@ -241,7 +241,7 @@ function journal($phrase, $opt = array()) { * @api * @param string $var * Clé souhaitée - * @param bool|array $var + * @param bool|array $c * Tableau transmis (sinon cherche dans GET ou POST) * @return mixed|null * - null si la clé n'a pas été trouvée @@ -313,19 +313,22 @@ function tester_url_absolue($url){ } /** - * Prend une URL et lui ajoute/retire un parametre. - * Exemples : [(#SELF|parametre_url{suite,18})] (ajout) - * [(#SELF|parametre_url{suite,''})] (supprime) - * [(#SELF|parametre_url{suite})] (prend $suite dans la _request) - * [(#SELF|parametre_url{suite[],1})] (tableaux valeurs multiples) + * Prend une URL et lui ajoute/retire un paramètre * - * http://doc.spip.org/@parametre_url + * @filtre parametre_url + * @link http://www.spip.net/4255 + * @example + * ``` + * [(#SELF|parametre_url{suite,18})] (ajout) + * [(#SELF|parametre_url{suite,''})] (supprime) + * [(#SELF|parametre_url{suite[],1})] (tableaux valeurs multiples) + * ``` * - * @param string $url - * @param string $c - * @param string|array $v - * @param string $sep - * @return string + * @param string $url URL + * @param string $c Nom du paramètre + * @param string|array|null $v Valeur du paramètre + * @param string $sep Séparateur entre les paramètres + * @return string URL */ function parametre_url($url, $c, $v=NULL, $sep='&') { // requete erronnee : plusieurs variable dans $c et aucun $v @@ -496,14 +499,28 @@ function test_plugin_actif($plugin){ /** * Traduction des textes de SPIP - * http://doc.spip.org/@_T * + * Traduit une clé de traduction en l'obtenant dans les fichiers de langues. + * + * @api + * @uses inc_traduire_dist() + * @uses _L() + * @example + * ``` + * _T('bouton_enregistrer') + * _T('medias:image_tourner_droite') + * _T('medias:erreurs', array('nb'=>3) + * ``` + * * @param string $texte + * Clé de traduction * @param array $args + * Couples (variable => valeur) pour passer des variables à la chaîne traduite * @param array $options - * string class : nom d'une classe a ajouter sur un span pour encapsuler la chaine - * bool force : forcer un retour meme si la chaine n'a pas de traduction - * @return mixed|string + * - string class : nom d'une classe a ajouter sur un span pour encapsuler la chaine + * - bool force : forcer un retour meme si la chaine n'a pas de traduction + * @return string + * Texte */ function _T($texte, $args=array(), $options=array()) { static $traduire=false ; @@ -552,9 +569,28 @@ function _T($texte, $args=array(), $options=array()) { } -// Remplacer les variables @....@ par leur valeur dans une chaine de langue. -// Aussi appelee quand une chaine n'est pas encore dans les fichiers de langue -// http://doc.spip.org/@_L + +/** + * Remplace les variables `@...@` par leur valeur dans une chaîne de langue. + * + * Cette fonction est également appelée dans le code source de SPIP quand une + * chaîne n'est pas encore dans les fichiers de langue. + * + * @see _T() + * @example + * ``` + * _L('Texte avec @nb@ ...', array('nb'=>3) + * ``` + * + * @param string $text + * Texte + * @param array $args + * Couples (variable => valeur) à transformer dans le texte + * @param string|null $class + * Encapsule les valeurs dans un span avec cette classe si transmis. + * @return string + * Texte + */ function _L($text, $args=array(), $class=null) { $f = $text; if (is_array($args)) { @@ -1323,7 +1359,30 @@ function url_de_($http,$host,$request,$prof=0){ // Attention, X?y=z et "X/?y=z" sont completement differents! // http://httpd.apache.org/docs/2.0/mod/mod_dir.html -// http://doc.spip.org/@generer_url_ecrire +/** + * Crée une URL vers un script de l'espace privé + * + * @example + * ``` + * generer_url_ecrire('admin_plugin') + * ``` + * + * @param string $script + * Nom de la page privée (xx dans exec=xx) + * @param string $args + * Arguments à transmettre, tel que `arg1=yy&arg2=zz` + * @param bool $no_entities + * Si false : transforme les `&` en `&` + * @param bool|string $rel + * URL relative ? + * + * - 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) { if (!$rel) $rel = url_de_base() . _DIR_RESTREINT_ABS . _SPIP_ECRIRE_SCRIPT; @@ -1350,9 +1409,20 @@ function generer_url_retour($script, $args="") // Adresse des scripts publics (a passer dans inc-urls...) // -// Detecter le fichier de base, a la racine, comme etant spip.php ou '' -// dans le cas de '', un $default = './' peut servir (comme dans urls/page.php) -// http://doc.spip.org/@get_spip_script + +/** + * Retourne le nom du fichier d'exécution de SPIP + * + * @see _SPIP_SCRIPT + * @note + * Detecter le fichier de base, a la racine, comme etant spip.php ou '' + * dans le cas de '', un $default = './' peut servir (comme dans urls/page.php) + * + * @param string $default + * Script par défaut + * @return string + * Nom du fichier (constante _SPIP_SCRIPT), sinon nom par défaut +**/ function get_spip_script($default='') { # cas define('_SPIP_SCRIPT', ''); if (_SPIP_SCRIPT) @@ -1361,7 +1431,29 @@ function get_spip_script($default='') { return $default; } -// http://doc.spip.org/@generer_url_public +/** + * Crée une URL vers une page publique de SPIP + * + * @example + * ``` + * generer_url_public("rubrique","id_rubrique=$id_rubrique") + * ``` + * + * @param string $script + * Nom de la page + * @param string $args + * Arguments à transmettre, tel que `arg1=yy&arg2=zz` + * @param bool $no_entities + * Si false : transforme les `&` en `&` + * @param bool $rel + * URL relative ? + * + * - false : l’URL sera complète et contiendra l’URL du site + * - true : l’URL sera relavive. + * @param string $action + * - Fichier d'exécution public (spip.php par défaut) + * @return string URL +**/ function generer_url_public($script='', $args="", $no_entities=false, $rel=true, $action='') { // si le script est une action (spip_pass, spip_inscription), // standardiser vers la nouvelle API @@ -1768,10 +1860,10 @@ function spip_initialisation_suite() { if (!defined('_DOCTYPE_AIDE')) define('_DOCTYPE_AIDE', "<!DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.01 Frameset//EN' 'http://www.w3.org/TR/1999/REC-html401-19991224/frameset.dtd'>"); - // L'adresse de base du site ; on peut mettre '' si la racine est geree par - // le script de l'espace public, alias index.php + /** L'adresse de base du site ; on peut mettre '' si la racine est gerée par + * le script de l'espace public, alias index.php */ if (!defined('_SPIP_SCRIPT')) define('_SPIP_SCRIPT', 'spip.php'); - // argument page, personalisable en cas de conflit avec un autre script + /** Argument page, personalisable en cas de conflit avec un autre script */ if (!defined('_SPIP_PAGE')) define('_SPIP_PAGE', 'page'); // le script de l'espace prive @@ -2254,8 +2346,19 @@ function tester_url_ecrire($nom){ return $exec[$nom] = ((find_in_path("{$nom}.php",'exec/') OR charger_fonction($nom,'exec',true))?$nom:''); } -// Charger dynamiquement une extension php -// http://doc.spip.org/@charger_php_extension + +/** + * Tente de charger dynamiquement une extension PHP + * + * @example + * ``` + * $ok = charger_php_extension('sqlite'); + * ``` + * @uses inc_charger_php_extension_dist() Si la librairie n'est pas déjà charchée + * + * @param string $module Nom du module à charger + * @return bool true si le module est chargé +**/ function charger_php_extension($module) { if (extension_loaded($module)) { return true; @@ -2265,10 +2368,15 @@ function charger_php_extension($module) { } } -// Renvoie TRUE si et seulement si la configuration autorise -// le code HTML5 sur le site public + +/** + * Indique si le code HTML5 est permis sur le site public + * + * @return bool + * true si et seulement si la configuration autorise le code HTML5 sur le site public +**/ function html5_permis() { - return (isset($GLOBALS['meta']['version_html_max']) + return (isset($GLOBALS['meta']['version_html_max']) AND ('html5' == $GLOBALS['meta']['version_html_max'])); } @@ -2277,18 +2385,34 @@ function html5_permis() { * desormais depreciees ; plutot que d'obliger tout le monde a charger * vieilles_defs, on va assumer l'histoire de ces 3 fonctions ubiquitaires */ -// Fonction depreciee -// http://doc.spip.org/@lire_meta + +/** + * lire_meta : fonction dépréciée + * @deprecated Utiliser `$GLOBALS['meta'][$nom]` ou `lire_config('nom')` + * @see lire_config() + * @param string $nom Clé de meta à lire + * @return mixed Valeur de la meta. +**/ function lire_meta($nom) { return $GLOBALS['meta'][$nom]; } -// Fonction depreciee -// http://doc.spip.org/@ecrire_metas + +/** + * ecrire_metas : fonction dépréciée + * @deprecated +**/ function ecrire_metas() {} -// Fonction depreciee, cf. http://doc.spip.org/@sql_fetch -// http://doc.spip.org/@spip_fetch_array +/** + * Retourne une ligne d'un résultat de requête mysql (déprécié) + * + * @see sql_fetch() + * @deprecated Utiliser sql_fetch() + * @param Ressource $r Ressource mysql + * @param int|null $t Type de retour + * @return array|void|bool Tableau de la ligne SQL +**/ function spip_fetch_array($r, $t=NULL) { if (!isset($t)) { if ($r) return sql_fetch($r); diff --git a/ecrire/public/sandbox.php b/ecrire/public/sandbox.php index 6f7747254ecf6fe951ce6d0a42a2dad0f49e6bf7..e4037fa08b2aa438f58f34597d53835664bfb4b2 100644 --- a/ecrire/public/sandbox.php +++ b/ecrire/public/sandbox.php @@ -125,6 +125,8 @@ function sandbox_composer_interdire_scripts($code, &$p){ * La fonction accèpte plusieurs tableaux de filtres à partir du 3ème argument * qui seront appliqués dans l'ordre * + * @uses echapper_php_callback() + * * @param array $skel * @param string $corps * @param array $filtres @@ -157,17 +159,16 @@ function sandbox_filtrer_squelette($skel, $corps, $filtres){ /** - * Callback pour échapper du code PHP + * Callback pour échapper du code PHP (les séquences `<?php ... ?>`) * * Rappeler la fonction sans paramètre pour obtenir les substitutions réalisées. + * + * @see sandbox_filtrer_squelette() * * @param array|null $r - * * - array : ce sont les captures de la regex à échapper * - NULL : demande à dépiler tous les échappements réalisés - * * @return string|array - * * - string : hash de substitution du code php lorsque `$r` est un array * - array : Liste( liste des codes PHP, liste des substitutions ) **/ diff --git a/ecrire/req/mysql.php b/ecrire/req/mysql.php index a2ef128b4f8809de3ff4d4146c6a336b015c865e..9df0275cf5550470291930071ce4018253db23b5 100644 --- a/ecrire/req/mysql.php +++ b/ecrire/req/mysql.php @@ -547,11 +547,12 @@ function spip_mysql_create_base($nom, $serveur='',$requeter=true) { return spip_mysql_query("CREATE DATABASE `$nom`", $serveur, $requeter); } -// Fonction de creation d'une vue SQL nommee $nom -// http://doc.spip.org/@spip_mysql_create_view + /** - * @param $nom - * @param $query_select + * Fonction de création d'une vue SQL nommée $nom + * + * @param string $nom + * @param string $query_select * @param string $serveur * @param bool $requeter * @return array|bool|null|resource|string