Documentation du code de SPIP et de ses plugins

SPIP

Documentation

Table of Contents

Packages

SPIP
Application

Namespaces

Spip

Classes

phpthumb_functions
Produire des fichiers au format .ico
IndenteurXML
DTC
Document Type Compilation
ValidateurXML
Validateur XML en deux passes, fondé sur SAX pour la première

Constants

_ACCESS_FILE_NAME  = '.htaccess'
_ACTIVER_PUCE_RAPIDE  = \true
Activer le changement rapide de statut sur les listes d'objets ?
_AGE_CACHE_ATIME  = 3600
_AJAX  = (isset($_SERVER['HTTP_X_REQUESTED_WITH']) || !empty($_REQUEST['var_ajax_redir']) || !empty($_REQUEST['var_ajaxcharset']) || !empty($_REQUEST['var_ajax'])) && empty($_REQUEST['var_noajax'])
_AJAX  = false
_AUTEURS_DELAI_REJET_NOUVEAU  = 45 * 24 * 3600
_AUTH_USER_FILE  = '.htpasswd'
_AUTO_SELECTION_RUBRIQUE  = \false
_AUTOSAVE_GB_DELAY  = 72 * 3600
_CACHE_CHEMIN  = _DIR_CACHE . 'chemin.txt'
_CACHE_CONTEXTES_AJAX_SUR_LONGUEUR  = 2000
Basculer les contextes ajax en fichier si la longueur d’url est trop grande
_CACHE_PIPELINES  = _DIR_CACHE . 'charger_pipelines.php'
_CACHE_PLUGINS_FCT  = _DIR_CACHE . 'charger_plugins_fonctions.php'
_CACHE_PLUGINS_OPT  = _DIR_CACHE . 'charger_plugins_options.php'
_CACHE_PLUGINS_PATH  = _DIR_CACHE . 'charger_plugins_chemins.php'
_CACHE_RUBRIQUES  = _DIR_TMP . 'menu-rubriques-cache.txt'
Fichier cache pour le navigateur de rubrique du bandeau
_CACHE_RUBRIQUES_MAX  = 500
Nombre maxi de rubriques enfants affichées pour chaque rubrique du navigateur de rubrique du bandeau
_CODE_QUOTE  = ",^(\n//[^\n]*\n)? *'(.*)' *\$,"
Une Regexp repérant une chaine produite par le compilateur, souvent utilisée pour faire de la concaténation lors de la compilation plutôt qu'à l'exécution, i.e. pour remplacer 'x'.'y' par 'xy'
_CONNECT_RETRY_DELAY  = 30
_CONTEXTE_IGNORE_LISTE_VARIABLES  = ['^var_', '^PHPSESSID$', '^fbclid$', '^utm_']
_CONVERT_COMMAND  = 'convert'
_COPIE_LOCALE_MAX_SIZE  = 33554432
_DATA_SOURCE_MAX_SIZE  = 2 * 1048576
_DEBUG_BLOCK_QUEUE  = true
_debut_urls_page  = \get_spip_script('./') . '?'
_DECLARER_ADRESSE_DB  = $adresse_db
_DECLARER_CHOIX_DB  = $choix_db
_DECLARER_LOGIN_DB  = $login_db
_DECLARER_NOM_CONNECT  = $nom_connect
_DECLARER_PASS_DB  = $pass_db
_DECLARER_SERVEUR_DB  = $serveur_db
_DEFAULT_CHARSET  = 'utf-8'
Le charset par défaut lors de l'installation
_DEFAULT_DB  = 'spip'
_DEFAULT_LOCKTIME  = 60
_DELAI_CACHE_resultats  = 600
_DELAI_RECUPERER_URL_CACHE  = 3600
_DIR_AIDE  = _DIR_CACHE . 'aide/'
_DIR_CACHE  = $ti . 'cache/'
_DIR_CACHE_XML  = _DIR_CACHE . 'xml/'
_DIR_CHMOD  = $pi
_DIR_CONNECT  = $pi
_DIR_DB  = _DIR_ETC . 'bases/'
_DIR_DUMP  = $ti . 'dump/'
_DIR_ETC  = $pi
_DIR_IMG  = $pa
_DIR_IMG_ICONES  = _DIR_LOGOS . 'icones/'
_DIR_IMG_PACK  = \_DIR_RACINE . 'prive/' . \_NOM_IMG_PACK
le chemin http (relatif) vers les images standard
_DIR_JAVASCRIPT  = \_DIR_RACINE . 'prive/' . \_JAVASCRIPT
le nom du repertoire des bibliotheques JavaScript du prive
_DIR_LIB  = _DIR_RACINE . 'lib/'
_DIR_LOG  = _DIR_TMP . 'log/'
_DIR_LOGOS  = $pa
_DIR_PLUGINS  = _DIR_RACINE . 'plugins/'
_DIR_PLUGINS_AUTO  = \_DIR_PLUGINS . 'auto/'
_DIR_PLUGINS_DIST  = _DIR_RACINE . 'plugins-dist/'
_DIR_RACINE  = \_DIR_RESTREINT ? '' : '../'
Chemin relatif pour aller à la racine
_DIR_RESTREINT  = \is_dir(\_DIR_RESTREINT_ABS) ? \_DIR_RESTREINT_ABS : ''
Chemin relatif pour aller dans ecrire vide si on est dans ecrire, 'ecrire/' sinon
_DIR_RESTREINT_ABS  = 'ecrire/'
le nom du repertoire ecrire/
_DIR_RESTREINT_ABS  = 'ecrire/'
_DIR_SESSIONS  = $ti . 'sessions/'
_DIR_SKELS  = _DIR_CACHE . 'skel/'
_DIR_TMP  = $ti
_DIR_TRANSFERT  = $ti . 'upload/'
_DIR_VAR  = $ta
_DIR_VENDOR  = _DIR_RACINE . 'vendor/'
_DIRECT_CRON_FORCE  = true
_DIRECT_CRON_FORCE  = true
_DOCTYPE_AIDE  = "<!DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.01 Frameset//EN' 'http://www.w3.org/TR/1999/REC-html401-19991224/frameset.dtd'>"
Définit le doctype de l’aide en ligne
_DOCTYPE_ECRIRE  = "<!DOCTYPE html>\n"
Définit le doctype de l’espace privé
_DOCTYPE_RSS  = 'http://www.rssboard.org/rss-0.91.dtd'
_DUREE_CACHE_DEFAUT  = 24 * 3600
_DUREE_COOKIE_ADMIN  = 14 * 24 * 3600
_ECRIRE_INC_VERSION  = '1'
Indique que SPIP est chargé
_ECRIRE_INSTALL  = '1'
_ECRIRE_INSTALL  = 1
_ESPACE_PRIVE  = \true
Drapeau indiquant que l'on est dans l'espace privé
_EXTENSION_SQUELETTES  = 'html'
_EXTRAIRE_INTERVALLE  = ',^[\\[\\(\\]]([0-9.a-zRC\\s\\-]*)[;]([0-9.a-zRC\\s\\-\\*]*)[\\]\\)\\[]$,'
Regexp d'extraction des informations d'un intervalle de compatibilité
_EXTRAIRE_LIEN  = ',^\\s*(?:' . \_PROTOCOLES_STD . '):?/?/?\\s*$,iS'
_FILE_CHMOD  = @is_readable($f = _DIR_CHMOD . _FILE_CHMOD_INS . '.php') ? $f : false
_FILE_CHMOD_INS  = 'chmod'
_FILE_CHMOD_TMP  = _DIR_CHMOD . _FILE_CHMOD_INS . _FILE_TMP_SUFFIX
_FILE_CONNECT  = @is_readable($f = _DIR_CONNECT . _FILE_CONNECT_INS . '.php') ? $f : false
_FILE_CONNECT_INS  = 'connect'
_FILE_CONNECT_TMP  = _DIR_CONNECT . _FILE_CONNECT_INS . _FILE_TMP_SUFFIX
_FILE_LDAP  = 'ldap.php'
_FILE_LOG  = 'spip'
_FILE_LOG_SUFFIX  = '.log'
_FILE_META  = $ti . 'meta_cache.php'
_FILE_OPTIONS  = ''
_FILE_TMP  = '_install'
_FILE_TMP_SUFFIX  = '.tmp.php'
_HEADER_COMPOSED_BY  = 'Composed-By: SPIP'
_HEADER_VARY  = 'Vary: Cookie, Accept-Encoding'
_IMG_ADMIN_MAX_WIDTH  = 768
_IMG_CONVERT_QUALITE  = _IMG_QUALITE
_IMG_GD_MAX_PIXELS  = isset($GLOBALS['meta']['max_taille_vignettes']) && $GLOBALS['meta']['max_taille_vignettes'] ? $GLOBALS['meta']['max_taille_vignettes'] : 0
_IMG_GD_QUALITE  = _IMG_QUALITE
_IMG_IMAGICK_QUALITE  = 75
_IMG_QUALITE  = 85
_INC_DISTANT_CONNECT_TIMEOUT  = 10
_INC_DISTANT_CONTENT_ENCODING  = 'gzip'
_INC_DISTANT_MAX_SIZE  = 2097152
_INC_DISTANT_USER_AGENT  = 'SPIP-' . $GLOBALS['spip_version_affichee'] . ' (' . $GLOBALS['home_server'] . ')'
_INC_DISTANT_VERSION_HTTP  = 'HTTP/1.0'
_IS_BOT  = isset($_SERVER['HTTP_USER_AGENT']) && \preg_match( // mots generiques ',bot|slurp|crawler|spider|webvac|yandex|' . 'MSIE 6\\.0|' . '80legs|accoona|AltaVista|ASPSeek|Baidu|Charlotte|EC2LinkFinder|eStyle|facebook|flipboard|hootsuite|FunWebProducts|Google|Genieo|INA dlweb|InfegyAtlas|Java VM|LiteFinder|Lycos|MetaURI|Moreover|Rambler|Scooter|ScrubbyBloglines|Yahoo|Yeti' . ',i', (string) $_SERVER['HTTP_USER_AGENT'] )
_IS_CLI  = !isset($_SERVER['HTTP_HOST']) && !\strlen((string) $_SERVER['DOCUMENT_ROOT']) && !empty($_SERVER['argv']) && empty($_SERVER['REQUEST_METHOD'])
_JAVASCRIPT  = 'javascript/'
Nom du repertoire des bibliotheques JavaScript
_JQ_MAX_JOBS_EXECUTE  = 200
_JQ_MAX_JOBS_TIME_TO_EXECUTE  = min($max_time, 15)
_JQ_NEXT_JOB_TIME_FILENAME  = _DIR_TMP . 'job_queue_next.txt'
_JQ_PENDING  = 0
_JQ_SCHEDULED  = 1
_LANGUE_PAR_DEFAUT  = 'fr'
_LOG_ALERTE_ROUGE  = 1
_LOG_AVERTISSEMENT  = 4
_LOG_CRITIQUE  = 2
_LOG_DEBUG  = 7
_LOG_ERREUR  = 3
_LOG_FILTRE_GRAVITE  = \Psr\Log\LogLevel::NOTICE
Niveau maxi d'enregistrement des logs
_LOG_HS  = 0
_LOG_INFO  = 6
_LOG_INFO_IMPORTANTE  = 5
_LOGIN_TROP_COURT  = 4
_LOGIN_TROP_COURT  = 4
_MAX_LOG  = 100
_MESSAGE_DOCTYPE  = '<!-- SPIP CORRIGE -->'
_META_CACHE_TIME  = 1 << 24
_MYSQL_NOPLANES  = \true
_MYSQL_RE_SHOW_TABLE  = '/^[^(),]*\\(((?:[^()]*\\((?:[^()]*\\([^()]*\\))?[^()]*\\)[^()]*)*[^()]*)\\)[^()]*$/'
_NAME_LOCK  = 'spip_nfs_lock'
_NB_SESSIONS_MAX  = 100
_NOM_CONFIG  = 'mes_options'
_NOM_IMG_PACK  = 'images/'
Nom du dossier images
_NOM_PERMANENTS_ACCESSIBLES  = 'IMG/'
Nom du repertoire des fichiers Permanents Accessibles par http://
_NOM_PERMANENTS_INACCESSIBLES  = 'config/'
Nom du repertoire des fichiers Permanents Inaccessibles par http://
_NOM_TEMPORAIRES_ACCESSIBLES  = 'local/'
Nom du repertoire des fichiers Temporaires Accessibles par http://
_NOM_TEMPORAIRES_INACCESSIBLES  = 'tmp/'
Nom du repertoire des fichiers Temporaires Inaccessibles par http://
_OS_SERVEUR  = ''
_OUTILS_DEVELOPPEURS  = \false
Activer des outils pour développeurs ?
_PAGINATION_NOMBRE_LIENS_MAX  = 10
_PAGINATION_NOMBRE_LIENS_MAX_ECRIRE  = 5
_PASS_LONGUEUR_MINI  = 6
_PASS_LONGUEUR_MINI  = 6
_PHP_MAX  = '8.4.99'
_PHP_MIN  = '8.2.0'
version PHP minimum exigee (cf. inc/utils)
_PIPELINE_SUFFIX  = \test_espace_prive() ? '_prive' : ''
_PNMSCALE_COMMAND  = 'pnmscale'
_PNMSCALE_COMMAND  = 'pnmscale'
_PORT_HTTP_STANDARD  = '80'
_PORT_HTTPS_STANDARD  = '443'
_PROTOCOLES_STD  = 'http|https|ftp|mailto|webcal'
_RACCOURCI_CHAPO  = '/^(\\W*)(\\W*)(\\w*\\d+([?#].*)?)$/'
_RACCOURCI_URL  = '/^\\s*(\\w*?)\\s*(\\d+)(\\?(.*?))?(#([^\\s]*))?\\s*$/S'
_REGEXP_CONCAT_NON_VIDE  = "/^(.*)[.]\\s*'[^']+'\\s*\$/"
_REGEXP_COND_NONVIDE_VIDE  = "/^[(](.*)[?]\\s*('[^']+')\\s*:\\s*''\\s*[)]\$/"
_REGEXP_COND_VIDE_NONVIDE  = "/^[(](.*)[?]\\s*''\\s*:\\s*('[^']+')\\s*[)]\$/"
_REGEXP_COPIE_LOCALE  = ',' . \preg_replace('@^https?:@', 'https?:', $GLOBALS['meta']['adresse_site'] ?? '') . '/?spip.php[?]action=acceder_document.*file=(.*)$,'
_REGEXP_DOCTYPE  = '/^((?:<\\001?[?][^>]*>\\s*)*(?:<!--.*?-->\\s*)*)*<!DOCTYPE\\s+(\\w+)\\s+(\\w+)\\s*([^>]*)>\\s*/s'
_REGEXP_ENTITY_DECL  = '/^<!ENTITY\\s+(%?)\\s*(' . \_SUB_REGEXP_SYMBOL . '+;?)\\s+(' . \_REGEXP_TYPE_XML . ')?\\s*(' . "('([^']*)')" . '|("([^"]*)")' . '|\\s*(%' . \_SUB_REGEXP_SYMBOL . '+;)\\s*' . ')\\s*(--.*?--)?("([^"]*)")?\\s*>\\s*(.*)$/s'
_REGEXP_ENTITY_DEF  = '/^%(' . \_SUB_REGEXP_SYMBOL . '+);/'
_REGEXP_ENTITY_USE  = '/%(' . \_SUB_REGEXP_SYMBOL . '+);/'
_REGEXP_ID  = '/^[A-Za-z_:]' . \_SUB_REGEXP_SYMBOL . '*$/'
_REGEXP_INCLUDE_USE  = '/^<!\\[\\s*%\\s*([^;]*);\\s*\\[\\s*(.*)$/s'
_REGEXP_NMTOKEN  = '/^' . \_SUB_REGEXP_SYMBOL . '+$/'
_REGEXP_NMTOKENS  = '/^(' . \_SUB_REGEXP_SYMBOL . '+\\s*)*$/'
_REGEXP_TYPE_XML  = 'PUBLIC|SYSTEM|INCLUDE|IGNORE|CDATA'
_REGEXP_XML  = '/^(\\s*(?:<[?][^x>][^>]*>\\s*)?(?:<[?]xml[^>]*>)?\\s*(?:<!--.*?-->\\s*)*)<(\\w+)/s'
_RENOUVELLE_ALEA  = 12 * 3600
_RESIZE_COMMAND  = _CONVERT_COMMAND . ' -quality ' . _IMG_CONVERT_QUALITE . ' -orient Undefined -resize %xx%y! %src %dest'
_ROOT_CWD  = \getcwd() . \DIRECTORY_SEPARATOR
chemin absolu vers le repertoire de travail
_ROOT_IMG_PACK  = \dirname(__DIR__, 3) . \DIRECTORY_SEPARATOR . 'prive' . \DIRECTORY_SEPARATOR . \_NOM_IMG_PACK
le chemin php (absolu) vers les images standard (pour hebergement centralise)
_ROOT_PLUGINS  = _ROOT_RACINE . 'plugins' . DIRECTORY_SEPARATOR
_ROOT_PLUGINS_DIST  = _ROOT_RACINE . 'plugins-dist' . DIRECTORY_SEPARATOR
_ROOT_PLUGINS_SUPPL  = _ROOT_RACINE . str_replace(_DIR_RACINE, '', _DIR_PLUGINS_SUPPL)
_ROOT_RACINE  = \dirname(__DIR__, 3) . \DIRECTORY_SEPARATOR
chemin absolu vers la racine
_ROOT_RESTREINT  = \_ROOT_CWD . \_DIR_RESTREINT
chemin absolu vers ecrire
_separateur_urls_page  = ''
_SERVEUR_SIGNATURE_ACCEPTE_LOCATION_APRES_COOKIE  = 'Apache|Cherokee|nginx'
_SERVEUR_SOFTWARE_ACCEPTE_LOCATION_APRES_COOKIE  = '^(Apache|Cherokee|nginx)'
_SESSION_REJOUER  = true
_SET_HTML_BASE  = true
_SPIP_AFFICHE_MOT_DE_PASSE_MASQUE_PERCENT  = 20
_SPIP_AJAX  = !isset($_COOKIE['spip_accepte_ajax']) ? 1 : ($_COOKIE['spip_accepte_ajax'] != -1 ? 1 : 0)
_spip_attend_invalidation_opcode_cache  = true
_SPIP_CHMOD  = 0777
_SPIP_DUMP  = 'dump@nom_site@@stamp@.xml'
_SPIP_ECRIRE_SCRIPT  = ''
_SPIP_EXTRA_VERSION  = '-dev'
_SPIP_LOCK_MODE  = 1
_SPIP_PAGE  = 'page'
Argument page, personalisable en cas de conflit avec un autre script
_SPIP_SCRIPT  = 'spip.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
_SPIP_SELECT_RUBRIQUES  = 20
_SPIP_THEME_PRIVE  = 'spip'
_SPIP_VERSION_ID  = 50000
_SPIP_XML_TAG_SPLIT  = '{<([^:>][^>]*?)>}sS'
_SQL_PREFIXE_TABLE_MYSQL  = '/([,\\s])spip_/S'
Changer les noms des tables ($table_prefix)
_SQLITE_CHMOD  = _SPIP_CHMOD
_SQLITE_RE_SHOW_TABLE  = '/^[^(),]*\\(((?:[^()]*\\((?:[^()]*\\([^()]*\\))?[^()]*\\)[^()]*)*[^()]*)\\)[^()]*$/'
_SUB_REGEXP_SYMBOL  = '[\\w_:.-]'
_SVG_SUPPORTED  = \true
_TAGS_NOM_AUTEUR  = ''
_terminaison_urls_page  = ''
_TEST_DIRS  = '1'
_TEST_FILE_EXISTS  = \preg_match(',(online|free)[.]fr$,', $_ENV['HTTP_HOST'] ?? '')
Permettre d'éviter des tests file_exists sur certains hébergeurs
_TESTER_NOSCRIPT  = "<noscript>\n<div style='display:none;'><img src='" . generer_url_ecrire('test_ajax', 'js=-1') . "' width='1' height='1' alt='' /></div></noscript>\n"
_TIME_OUT  = $time + _UPGRADE_TIME_OUT
Définir le timeout qui peut-être utilisé dans les fonctions de mises à jour qui durent trop longtemps
_TRAITEMENT_RACCOURCIS  = 'propre(%s, $connect, $Pile[0])'
_TRAITEMENT_TYPO  = 'typo(%s, "TYPO", $connect, $Pile[0])'
_TRAITEMENT_TYPO_SANS_NUMERO  = 'supprimer_numero(typo(%s, "TYPO", $connect, $Pile[0]))'
_TYPO_BALISE  = ',</?[a-z!][^<>]*[' . \preg_quote(\_TYPO_PROTEGER) . '][^<>]*>,imsS'
_TYPO_PROTECTEUR  = "\x01\x02\x03\x04\x05\x06\x07\x08"
_TYPO_PROTEGER  = "!':;?~%-"
_UPGRADE_TIME_OUT  = 20
Durée en secondes pour relancer les scripts de mises à jour, x secondes avant que la durée d'exécution du script provoque un timeout
_URL_ECRAN_SECURITE  = 'https://git.spip.net/spip-contrib-outils/securite/raw/branch/master/ecran_securite.php'
_VAR_IMAGES  = true
_VAR_INCLURE  = true
_VAR_MODE  = false
Indique le mode de calcul ou d'affichage de la page.
_VAR_NOCACHE  = true
_VAR_PREVIEW  = true
_VAR_URLS  = true
_VAR_URLS  = true
_VERSION_ARCHIVE  = '1.3'
_VERSIONS_LISTE  = 'spip_versions_list.json'
_VERSIONS_SERVEUR  = 'https://www.spip.net/spip_loader.api'
_ZCORE_EXCLURE_PATH  = '\\bprive|\\bsquelettes-dist' . (defined('_DIR_PLUGIN_DIST') ? '|\\b' . rtrim((string) _DIR_PLUGIN_DIST, '/') : '')
AUTEURS_MIN_REDAC  = '0minirezo,1comite,5poubelle'
BALISE_ALT_BOUCLE  = '<//B'
Fin de la partie alternative après d'une boucle
BALISE_BOUCLE  = '<BOUCLE'
Début de la partie principale d'une boucle
BALISE_FIN_BOUCLE  = '</BOUCLE'
Fin de la partie principale d'une boucle
BALISE_IDIOMES  = ',<:(([a-z0-9_]+):)?([a-z0-9_]*)({([^\\|=>]*=[^\\|>]*)})?((\\|[^>]*)?:/?>),iS'
BALISE_IDIOMES_ARGS  = '@^\\s*([^= ]*)\\s*=\\s*((' . \NOM_DE_CHAMP . '[{][^}]*})?[^,]*)\\s*,?\\s*@s'
BALISE_INCLURE  = '/<INCLU[DR]E[[:space:]]*(\\(([^)]*)\\))?/S'
BALISE_POLYGLOTTE  = ',<multi>(.*)</multi>,Uims'
BALISE_POSTAFF_BOUCLE  = '</BB'
Fin de la partie après non optionnelle d'une boucle (toujours affichee)
BALISE_POSTCOND_BOUCLE  = '</B'
Fin de la partie optionnelle après d'une boucle
BALISE_PREAFF_BOUCLE  = '<BB'
Début de la partie avant non optionnelle d'une boucle (toujours affichee)
BALISE_PRECOND_BOUCLE  = '<B'
Début de la partie optionnelle avant d'une boucle
CHAMP_ETENDU  = '/\\[([^\\[]*?)\\(' . \NOM_DE_CHAMP . '([^)]*\\)[^]]*)\\]/S'
Balise complète [...(#TOTO) ... ]
CHAMP_SQL_PLUS_FONC  = '`?([A-Z_\\/][A-Z_\\/0-9.]*)' . \SQL_ARGS . '?`?'
Fonction SQL sur un champ ex: SUM(visites)
CODE_COMMENTE  = \true
Indique s'il faut commenter le code produit
CODE_CORPS_BOUCLE  = '%s if (defined("_BOUCLE_PROFILER")) $timer = time()+(float)microtime(); $t0 = ""; // REQUETE $iter = Spip\\Compilateur\\Iterateur\\Factory::create( "%s", %s, array(%s) ); if (!$iter->err()) { %s%s$SP++; // RESULTATS %s %s$iter->free(); }%s if (defined("_BOUCLE_PROFILER") AND 1000*($timer = (time()+(float)microtime())-$timer) > _BOUCLE_PROFILER) spip_logger("profiler")->warning(intval(1000*$timer)."ms %s"); return $t0;'
Compilation d'une boucle non recursive.
CODE_EXECUTER_BALISE  = "executer_balise_dynamique('%s',\n\tarray(%s%s),\n\tarray(%s%s))"
Code PHP d'exécution d'une balise dynamique
CODE_EXECUTER_BALISE_MODELE  = "executer_balise_dynamique_dans_un_modele('%s',\n\tarray(%s%s),\n\tarray(%s%s))"
CODE_INCLURE_BALISE  = '<' . '?php include_once("%s"); if ($lang_select = "%s") $lang_select = lang_select($lang_select); inserer_balise_dynamique(balise_%s_dyn(%s), array(%s)); if ($lang_select) lang_select(); ?' . '>'
Code PHP pour inclure une balise dynamique à l'exécution d'une page
CODE_INCLURE_SCRIPT  = 'if (!($path = %s) OR !is_readable($path)) erreur_squelette(array("fichier_introuvable", array("fichier" => "%s")), array(%s)); else { $contexte_inclus = %s; include $path; } '
CODE_MONOTONE  = ",^(\n//[^\n]*\n)?\\(?'([^'])*'\\)?\$,"
Repérer un code ne calculant rien, meme avec commentaire
CODE_PAGINATION  = '%s($Numrows["%s"]["grand_total"], %s, isset($Pile[0][%4$s])?$Pile[0][%4$s]:intval(_request(%4$s)), %5$s, %6$s, %7$s, %8$s, array(%9$s))'
Code de compilation pour la balise `#PAGINATION`
CODE_RECUPERER_FOND  = 'recuperer_fond(%s, %s, array(%s), %s)'
Code d'appel à un <INCLURE()>
IMAGETYPE_SVG  = 19
IMG_SVG  = 128
MODULES_IDIOMES  = 'public|spip|ecrire'
Modules par défaut pour la traduction.
NOM_DE_BOUCLE  = '[0-9]+|[-_][-_.a-zA-Z0-9]*'
Expression pour trouver un identifiant de boucle
NOM_DE_CHAMP  = '#((' . \NOM_DE_BOUCLE . "):)?(([A-F]*[G-Z_][A-Z_0-9]*)|[A-Z_]+)\\b(\\*{0,2})"
Nom d'une balise #TOTO
SPEC_BOUCLE  = '/\\s*\\(\\s*([^\\s?)]+)(\\s*[^)?]*)([?]?)\\)/'
Expression pour trouver le type de boucle (TABLE autre_table ?)
SPIP_ERREUR_REPORT  = \E_ALL ^ \E_NOTICE ^ \E_DEPRECATED
Masquer les warning
spip_interdire_cache  = true
SPIP_SQLITE3_ASSOC  = PDO::FETCH_ASSOC
SPIP_SQLITE3_BOTH  = PDO::FETCH_BOTH
SPIP_SQLITE3_NUM  = PDO::FETCH_NUM
SQL_ABSTRACT_VERSION  = 1
Version de l'API SQL
SQL_ARGS  = '(\\([^)]*\\))'
Champ sql dans parenthèse ex: (id_article)
TYPE_RECURSIF  = 'boucle'
Indique un début de boucle récursive

Functions

enregistre_modif_plugin()  : void
Mise à jour des données si envoi via formulaire
action_activer_plugins_dist()  : void
Fonction d'initialisation avant l'activation des plugins
action_ajouter_lien_dist()  : void
Action pour lier 2 objets entre eux
action_annuler_job_dist()  : void
Annuler un travail
action_api_transmettre_dist()  : mixed
action_api_transmettre_fail()  : never
action_auth_dist()  : mixed
Retour d'authentification pour les SSO
action_calculer_taille_cache_dist()  : mixed
Calculer la taille du cache ou du cache image pour l'afficher en ajax sur la page d'admin de SPIP
calculer_taille_dossier()  : int
Calculer la taille d'un dossier, sous dossiers inclus
action_confirmer_email_dist()  : void
Confirmer un changement d'email
action_confirmer_inscription_dist()  : void
Action de confirmation d'une inscription
action_converser_dist()  : void
Point d'entrée pour changer de langue
action_converser_changer_langue()  : string
Cette fonction prépare le travail de changement de langue en récupérant la bonne variable de langue
action_converser_post()  : void
Cette fonction effectue le travail de changement de langue
action_cookie_dist()  : void
Cette fonction traite les cookies posés au moment de l'authentification standard ou vérifie que l'authentification HTTP est correcte
action_debloquer_edition_dist()  : void
Lever les blocages d'édition pour l'utilisateur courant
action_desinstaller_plugin_dist()  : void
Action de désinstallation d'un plugin
action_editer_article_dist()  : array<string|int, mixed>
Action d'édition d'un article dans la base de données dont l'identifiant est donné en paramètre de cette fonction ou en argument de l'action sécurisée
article_modifier()  : string|null
Modifier un article
article_inserer()  : int
Insérer un nouvel article en base de données
article_instituer()  : string
Modification des statuts d'un article
editer_article_heritage()  : void|null
Fabrique la requête de modification de l'article, avec champs hérités
trop_longs_articles()  : void
Réunit les textes decoupés parce que trop longs
action_editer_auteur_dist()  : array<string|int, mixed>
Éditer ou créer un auteur
auteur_inserer()  : int
Insérer un auteur en base
auteur_modifier()  : string|null
Modifier un auteur
auteur_associer()  : string
Associer un auteur à des objets listés
auteur_dissocier()  : string
Dissocier un auteur des objets listés
auteur_qualifier()  : bool|int
Qualifier le lien d'un auteur avec les objets listés
auteur_instituer()  : bool|string
Modifier le statut d'un auteur, ou son login/pass
objet_associable()  : array<string|int, mixed>|bool
Teste l'existence de la table de liaison xxx_liens d'un objet
objet_associer()  : bool|int
Associer un ou des objets à des objets listés
objet_dissocier()  : bool|int
Dissocier un (ou des) objet(s) des objets listés
objet_qualifier_liens()  : bool|int
Qualifier le lien entre un (ou des) objet(s) et des objets listés
objet_trouver_liens()  : array<string|int, mixed>
Trouver les liens entre objets
objet_optimiser_liens()  : int
Nettoyer les liens morts vers des objets qui n'existent plus
objet_dupliquer_liens()  : int
Dupliquer tous les liens entrant ou sortants d'un objet vers un autre (meme type d'objet, mais id different) si $types est fourni, seuls les liens depuis/vers les types listes seront copies si $exclure_types est fourni, les liens depuis/vers les types listes seront ignores
lien_ordonner()  : mixed
Reordonner les liens sur lesquels on est intervenus
lien_triables()  : mixed
Une table de lien est-elle triable ? elle doit disposer d'un champ rang_lien pour cela
lien_rang_where()  : array<string|int, mixed>
Fabriquer la condition where pour compter les rangs
logo_supprimer()  : mixed
Supprimer le logo d'un objet
logo_modifier()  : string
Modifier le logo d'un objet
logo_migrer_en_base()  : mixed
Migration des logos en documents.
type_du_logo()  : string
Retourne le type de logo tel que `art` depuis le nom de clé primaire de l'objet
action_editer_objet_dist()  : array<string|int, mixed>
Point d'entrée d'édition d'un objet
objet_modifier()  : mixed|string
Appelle toutes les fonctions de modification d'un objet
objet_inserer()  : bool|int
Insère en base un objet générique
objet_instituer()  : string
Modifie le statut et/ou la date d'un objet
objet_editer_heritage()  : void
Fabrique la requete d'institution de l'objet, avec champs herites
objet_lire()  : array<string|int, mixed>|string|int|bool
Lit un objet donné connu par son id ou par un identifiant textuel unique et renvoie tout ou partie de sa description.
action_editer_rubrique_dist()  : array<string|int, mixed>
Action d'édition d'une rubrique
rubrique_inserer()  : int
Insérer une rubrique en base
rubrique_modifier()  : bool|string
Modifier une rubrique en base
editer_rubrique_breves()  : bool
Déplace les brèves d'une rubrique dans le secteur d'un nouveau parent
rubrique_instituer()  : string
Instituer une rubrique (changer son parent)
action_etre_webmestre_dist()  : void
Prouver qu'on a les droits de webmestre via un ftp, et devenir webmestre sans refaire l'install
base_etre_webmestre_dist()  : void
Passe l'administrateur connecté en webmestre.
action_forcer_job_dist()  : void
Executer un travaille immediatement
action_inscrire_auteur_dist()  : array<string|int, mixed>|string
Inscrire un nouvel auteur sur la base de son nom et son email
test_inscription_dist()  : array<string|int, mixed>|string
Contrôler que le nom (qui sert à calculer le login) est plausible et que l'adresse courriel est valide.
inscription_nouveau()  : mixed|string
On enregistre le demandeur comme 'nouveau', en memorisant le statut final provisoirement dans le champ prefs, afin de ne pas visualiser les inactifs A sa premiere connexion il obtiendra son statut final.
test_login()  : string
Retourne un login valide à partir du nom et email donné
envoyer_inscription_dist()  : array<string|int, mixed>
Construction du mail envoyant les identifiants
creer_pass_pour_auteur()  : string
Creer un mot de passe initial aleatoire
tester_statut_inscription()  : string
Determine le statut d'inscription : si $statut_tmp fourni, verifie qu'il est autorise sinon determine le meilleur statut possible et le renvoie
confirmer_statut_inscription()  : array<string|int, mixed>
Un nouvel inscrit prend son statut definitif a la 1ere connexion.
auteur_attribuer_jeton()  : string
Attribuer un jeton temporaire pour un auteur en assurant l'unicite du jeton.
auteur_lire_jeton()  : string|null
Lire un jeton temporaire d’un auteur (peut le créer au besoin)
auteur_verifier_jeton()  : array<string|int, mixed>|bool
Retrouver l'auteur par son jeton
auteur_effacer_jeton()  : bool
Effacer le jeton d'un auteur apres utilisation
action_instituer_langue_objet_dist()  : string
Modifier la langue d'un objet
action_instituer_langue_rubrique_dist()  : mixed
Modifie la langue d'une rubrique
action_instituer_objet_dist()  : mixed
Instituer un objet avec les puces rapides
action_logout_dist()  : mixed
Se déloger
generer_jeton_logout()  : string
Generer un jeton de logout personnel et ephemere
verifier_jeton_logout()  : bool
Verifier que le jeton de logout est bon
action_menu_rubriques_dist()  : string
Action d'affichage en ajax du navigateur de rubrique du bandeau
menu_rubriques()  : string
Retourne une liste HTML des rubriques et rubriques enfants
bandeau_rubrique()  : string
Retourne une liste HTML des rubriques enfants d'une rubrique
extraire_article()  : array<string|int, mixed>
Obtient la liste des rubriques enfants d'une rubrique, prise dans le cache du navigateur de rubrique
gen_liste_rubriques()  : bool
Génère le cache de la liste des rubriques pour la navigation du bandeau
action_purger_dist()  : mixed
Action de purge du cache
action_purger_queue_dist()  : void
Purger la liste des travaux en attente
action_redirect_dist()  : mixed
Script utile pour recalculer une URL symbolique dès son changement
calculer_url_redirect_entite()  : string|null
Retourne l’URL de l’objet sur lequel on doit rediriger
action_referencer_traduction_dist()  : bool
Définir le lien de traduction vers un objet de réference
action_relancer_inscription_dist()  : void
Relancer une inscription
action_session_dist()  : mixed
Action pour poser une variable de session SPIP
action_supprimer_lien_dist()  : void
Action pour dissocier 2 objets entre eux
action_supprimer_rubrique_dist()  : void
Effacer une rubrique
action_tester_dist()  : mixed
Tester les capacités du serveur à utiliser une librairie graphique
action_tester_taille_error_handler()  : string
Interception très probable d'une impossibilité de créer l'image demandée dans le buffer de ob_start()
action_tester_taille_dist()  : mixed
Tester nos capacités à redimensionner des images avec GD2 (taille mémoire)
auth_ldap_dist()  : array<string|int, mixed>|bool
Fonction principale d'authentification du module auth/ldap
auth_ldap_connect()  : array<string|int, mixed>
Connexion à l'annuaire LDAP
auth_ldap_search()  : string
Retrouver un login, et vérifier son pass si demandé par `$checkpass`
auth_ldap_retrouver()  : array<string|int, mixed>
Retrouver un DN depuis LDAP
auth_ldap_retrouver_login()  : string
Retrouver le login de quelqu'un qui cherche à se loger
auth_ldap_verifier_pass()  : string
Vérification de la validité d'un mot de passe pour le mode d'auth concerné
auth_ldap_autoriser_modifier_pass()  : bool
Informer du droit de modifier ou non le pass
auth_ldap_modifier_pass()  : bool
Fonction de modification du mot de passe
spip_sha256()  : string
Main routine called from an application using this include.
auth_spip_dist()  : array<string|int, mixed>|bool
Authentifie et si ok retourne le tableau de la ligne SQL de l'utilisateur Si risque de secu repere a l'installation retourne False
auth_spip_initialiser_secret()  : bool
Reinitialiser le secret des auth quand il est perdu si aucun webmestre n'a de backup Si force=true, on va forcer la reinit (si il est perdu) meme si des webmestres ont un backup
auth_spip_formulaire_login()  : array<string|int, mixed>
Completer le formulaire de login avec le js ou les saisie specifiques a ce mode d'auth
auth_spip_autoriser_modifier_login()  : bool
Informer du droit de modifier ou non son login
auth_spip_verifier_login()  : string
Verification de la validite d'un login pour le mode d'auth concerne
auth_spip_modifier_login()  : bool
Modifier le login d'un auteur SPIP
auth_spip_retrouver_login()  : string
Retrouver le login de quelqu'un qui cherche a se loger Reconnaitre aussi ceux qui donnent leur nom ou email au lieu du login
auth_spip_autoriser_modifier_pass()  : bool
Informer du droit de modifier ou non le pass
auth_spip_verifier_pass()  : string
Verification de la validite d'un mot de passe pour le mode d'auth concerne c'est ici que se font eventuellement les verifications de longueur mini/maxi ou de force
auth_spip_modifier_pass()  : bool
Modifier le mot de passe de l'auteur sur le serveur concerne en s'occupant du hash et companie
auth_spip_synchroniser_distant()  : void
Synchroniser les fichiers htpasswd
protege_champ()  : string|array<string|int, mixed>|null
Protéger les saisies d'un champ de formulaire
existe_formulaire()  : string|bool
Teste si un formulaire demandé possède un squelette pour l'afficher
test_formulaire_inclus_par_modele()  : false|array<string|int, mixed>
Tester si un formulaire est appele via un modele type <formulaire|...> et le cas echeant retourne les arguments passes au modele false sinon
balise_FORMULAIRE__dist()  : Champ
Balises Formulaires par défaut.
balise_FORMULAIRE__dyn()  : string|array<string|int, mixed>
Balise dynamiques par défaut des formulaires
balise_FORMULAIRE__contexte()  : array<string|int, mixed>|string
Calcule le contexte à envoyer dans le squelette d'un formulaire
formulaire__charger()  : array<string|int, mixed>
Charger les valeurs de saisie du formulaire
formulaire__identifier()  : bool
Vérifier que le formulaire en cours est celui qui est poste
balise_FORMULAIRE_ADMIN()  : Champ
Compile la balise dynamique `#FORMULAIRE_ADMIN` qui des boutons d'administration dans l'espace public
balise_FORMULAIRE_ADMIN_stat()  : array<string|int, mixed>|string
Calculs de paramètres de contexte automatiques pour la balise FORMULAIRE_ADMIN
balise_FORMULAIRE_ADMIN_dyn()  : array<string|int, mixed>|string
Retourne le squelette d'affichage et le contexte de la balise FORMULAIRE_ADMIN
admin_objet()  : array<string|int, mixed>
Préparer le contexte d'environnement pour les boutons
admin_preview()  : string|array<string|int, mixed>
Détermine si l'élément est previsualisable
admin_lang()  : string
Régler les boutons dans la langue de l'admin (sinon tant pis)
admin_valider()  : string
Retourne une URL vers un validateur
admin_debug()  : string
Retourne une URL vers le mode debug, si l'utilisateur a le droit, et si c'est utile
balise_FORMULAIRE_ECRIRE_AUTEUR()  : Champ
Compile la balise dynamique `#FORMULAIRE_ECRIRE_AUTEUR` qui permet très logiquement d'afficher un formulaire pour écrire à un auteur
balise_FORMULAIRE_ECRIRE_AUTEUR_stat()  : array<string|int, mixed>|string
Calculs de paramètres de contexte automatiques pour la balise FORMULAIRE_ECRIRE_AUTEUR
balise_FORMULAIRE_INSCRIPTION()  : Champ
Compile la balise dynamique `#FORMULAIRE_INSCRIPTION` qui affiche un formulaire d'inscription au site
balise_FORMULAIRE_INSCRIPTION_stat()  : array<string|int, mixed>|string
Calculs de paramètres de contexte automatiques pour la balise FORMULAIRE_INSCRIPTION
balise_ID_LOGO__dist()  : Champ
Compile la balise dynamique `#ID_LOGO_xx` qui retourne l'identifiant du document utilisé comme logo pour un objet éditorial de SPIP.
generer_code_logo()  : string
Calcule le code HTML pour l'image ou l'information sur un logo
balise_INFO__dist()  : Champ
Compile la balise dynamique `#INFO_xx` qui génère n'importe quelle information pour un objet
balise_LOGO__dist()  : Champ
Compile la balise dynamique `#LOGO_xx` qui retourne le code HTML pour afficher l'image de logo d'un objet éditorial de SPIP.
balise_MENU_LANG()  : Champ
Compile la balise dynamique `#MENU_LANG` qui affiche un sélecteur de langue pour l'espace public
balise_MENU_LANG_stat()  : array<string|int, mixed>|string
Calculs de paramètres de contexte automatiques pour la balise MENU_LANG
balise_MENU_LANG_dyn()  : array<string|int, mixed>
Exécution de la balise dynamique `#MENU_LANG`
balise_MENU_LANG_ECRIRE()  : Champ
Compile la balise dynamique `#MENU_LANG_ECRIRE` qui affiche un sélecteur de langue pour l'interface privée
balise_MENU_LANG_ECRIRE_stat()  : array<string|int, mixed>|string
Calculs de paramètres de contexte automatiques pour la balise MENU_LANG_ECRIRE
balise_MENU_LANG_ECRIRE_dyn()  : array<string|int, mixed>
Exécution de la balise dynamique `#MENU_LANG_ECRIRE`
menu_lang_pour_tous()  : array<string|int, mixed>
Calcule l'environnement et le squelette permettant d'afficher le formulaire de sélection de changement de langue
generer_generer_url()  : string
Génère le code compilé des balises d'URL
generer_generer_url_arg()  : string
Génère le code compilé des balises d'URL (en connaissant l'identifiant)
balise_URL__dist()  : Champ
Compile la balise générique `#URL_xxx` qui génère l'URL d'un objet
balise_URL_ARTICLE_dist()  : Champ
Compile la balise `#URL_ARTICLE` qui génère l'URL d'un article
balise_URL_SITE_dist()  : Champ|null
Compile la balise `#URL_SITE` qui génère l'URL d'un site ou de cas spécifiques
balise_URL_SITE_SPIP_dist()  : Champ
Compile la balise `#URL_SITE_SPIP` qui retourne l'URL du site telle que définie dans la configuration
balise_URL_PAGE_dist()  : Champ
Compile la balise `#URL_PAGE` qui retourne une URL de type « page »
balise_URL_ECRIRE_dist()  : Champ
Compile la balise `#URL_ECRIRE` qui retourne une URL d'une page de l'espace privé
balise_URL_ACTION_AUTEUR_dist()  : Champ
Compile la balise `#URL_ACTION_AUTEUR` qui retourne une URL d'action sécurisée pour l'auteur en cours
balise_URL_LOGOUT()  : Champ
Compile la balise dynamique `#URL_LOGOUT` qui génère une URL permettant de déconnecter l'auteur actuellement connecté
balise_URL_LOGOUT_stat()  : array<string|int, mixed>
Calculs de paramètres de contexte automatiques pour la balise URL_LOGOUT
balise_URL_LOGOUT_dyn()  : string
Exécution de la balise dynamique `#URL_LOGOUT`
sql_error_backtrace()  : array<string|int, mixed>|string
Retourne la pile de fonctions utilisée lors de la précence d'une erreur SQL
sql_get_charset()  : string|bool
Demande si un charset est disponible
sql_set_charset()  : bool
Regler le codage de connexion
sql_select()  : mixed
Effectue une requête de selection
sql_get_select()  : mixed
Recupere la syntaxe de la requete select sans l'executer
sql_countsel()  : int|bool
Retourne le nombre de lignes d'une sélection
sql_alter()  : mixed
Modifie la structure de la base de données
sql_fetch()  : array<string|int, mixed>|false
Retourne un enregistrement d'une selection
sql_fetch_all()  : array<string|int, mixed>
Retourne tous les enregistrements d'une selection
sql_seek()  : bool
Déplace le pointeur d'une ressource de sélection
sql_listdbs()  : array<string|int, mixed>|bool
Liste des bases de donnees accessibles
sql_selectdb()  : bool|string
Demande d'utiliser d'une base de donnees
sql_count()  : bool|string
Retourne le nombre de lignes d’une ressource de sélection obtenue avec `sql_select()`
sql_free()  : bool
Libère une ressource de résultat
sql_insert()  : bool|string
Insère une ligne dans une table
sql_insertq()  : int|bool|string
Insère une ligne dans une table
sql_insertq_multi()  : bool|string
Insère plusieurs lignes d'un coup dans une table
sql_update()  : array<string|int, mixed>|bool|string
Met à jour des enregistrements d'une table SQL
sql_updateq()  : bool|string
Met à jour du contenu d’une table SQL
sql_delete()  : bool|string
Supprime des enregistrements d'une table
sql_replace()  : bool|string
Insère où met à jour une entrée d’une table SQL
sql_replace_multi()  : bool|string
Insère où met à jour des entrées d’une table SQL
sql_drop_table()  : bool|string
Supprime une table SQL (structure et données)
sql_drop_view()  : bool|string
Supprime une vue SQL
sql_showbase()  : object|bool|string
Retourne une ressource de la liste des tables de la base de données
sql_alltable()  : array<string|int, mixed>
Retourne la liste des tables SQL
sql_showtable()  : bool|array<string|int, mixed>
Retourne la liste (et description) des colonnes et key d’une table SQL
sql_table_exists()  : bool|string
Teste si une table SQL existe ou non dans la base
sql_create()  : bool
Crée une table dans la base de données
sql_create_base()  : bool
Crée une base de données
sql_create_view()  : bool|string
Crée une vue SQL
sql_multi()  : string
Retourne l'instruction SQL pour obtenir le texte d'un champ contenant une balise `<multi>` dans la langue indiquée
sql_error()  : bool|string
Retourne la dernière erreur connue
sql_errno()  : bool|int
Retourne le numéro de la derniere erreur connue
sql_explain()  : array<string|int, mixed>|false
Retourne une explication de requête (Explain) SQL
sql_optimize()  : bool
Optimise une table SQL
sql_repair()  : bool|string
Répare une table SQL
sql_query()  : array<string|int, mixed>|resource|string|bool
Exécute une requête SQL
sql_fetsel()  : array<string|int, mixed>|string|false
Retourne la première ligne d'une sélection
sql_allfetsel()  : array<string|int, mixed>
Retourne le tableau de toutes les lignes d'une selection
sql_getfetsel()  : mixed
Retourne un unique champ d'une selection
sql_version()  : string
Retourne le numero de version du serveur SQL
sql_preferer_transaction()  : bool
Informe si le moteur SQL prefere utiliser des transactions
sql_demarrer_transaction()  : bool
Démarre une transaction
sql_terminer_transaction()  : bool
Termine une transaction
sql_hex()  : string
Prépare une chaine hexadécimale
sql_quote()  : string
Echapper du contenu
sql_date_proche()  : string|bool
Tester si une date est proche de la valeur d'un champ
sql_in_quote()  : string
Retourne une expression IN pour le gestionnaire de base de données
sql_in()  : mixed
shorthand historique qui ne permet pas de specifier le type et qui accepte une string pour $valeurs
sql_in_select()  : string
Retourne une expression IN pour le gestionnaire de base de données à partir d'une sélection de données
sql_skip()  : int
Implémentation sécurisée du saut en avant.
sql_test_int()  : bool
Teste qu'une description de champ SQL est de type entier
sql_test_date()  : bool
Teste qu'une description de champ SQL est de type entier
sql_format_date()  : string
Formate une date
prefixer_table_spip()  : string
Corrige le nom d’une table SQL en utilisant le bon préfixe
spip_connect()  : bool|array<string|int, mixed>
Connexion à un serveur de base de données
spip_sql_erreur()  : mixed
Log la dernière erreur SQL présente sur la connexion indiquée
spip_connect_sql()  : array<string|int, mixed>|bool|string
Retourne le nom de la fonction adaptée de l'API SQL en fonction du type de serveur
spip_connect_db()  : array<string|int, mixed>|null
Fonction appelée par le fichier connecteur de base de données crée dans `config/` à l'installation.
spip_connect_main()  : string|bool|int
Première connexion au serveur principal de base de données
_q()  : string
Échappement d'une valeur sous forme de chaîne PHP
query_echappe_textes()  : array<string|int, mixed>
Echapper les textes entre ' ' ou " " d'une requête SQL avant son pre-traitement
query_reinjecte_textes()  : string
Réinjecter les textes d'une requete SQL à leur place initiale, après traitement de la requête
spip_query()  : bool|mixed
Exécute une requête sur le serveur SQL
base_determine_autoinc()  : bool
Determiner le flag autoinc pour une table en fonction de si c'est une table principale
creer_ou_upgrader_table()  : void
Créer une table, ou ajouter les champs manquants si elle existe déjà
alterer_base()  : void
Creer ou mettre à jour un ensemble de tables en fonction du flag `$up`
creer_base()  : void
Créer une base de données à partir des tables principales et auxiliaires
maj_tables()  : void
Mettre à jour une liste de tables
base_delete_all_dist()  : mixed
Destruction des tables SQL de SPIP
base_dump_meta_name()  : string
Retourne un nom de meta pour une rubrique et l'auteur connecté.
base_dump_dir()  : string
Crée un répertoire recevant la sauvegarde de la base de données et retourne son chemin.
base_lister_toutes_tables()  : array<string|int, mixed>
Lister toutes les tables d'un serveur en excluant eventuellement une liste fournie
base_prefixe_tables()  : string
Retrouver le prefixe des tables
base_saisie_tables()  : array<string|int, mixed>
Fabrique la liste a cocher des tables a traiter (copie, delete, sauvegarde)
lister_tables_noexport()  : array<string|int, mixed>
Lister les tables non exportables par defaut (liste completable par le pipeline lister_tables_noexport
lister_tables_noimport()  : array<string|int, mixed>
Lister les tables non importables par defaut (liste completable par le pipeline lister_tables_noimport
lister_tables_noerase()  : array<string|int, mixed>
Lister les tables a ne pas effacer (liste completable par le pipeline lister_tables_noerase
base_liste_table_for_dump()  : array<string|int, mixed>
construction de la liste des tables pour le dump : toutes les tables principales + toutes les tables auxiliaires hors relations + les tables relations dont les deux tables liees sont dans la liste
base_vider_tables_destination_copie()  : mixed
Vider les tables de la base de destination pour la copie dans une base
base_conserver_copieur()  : void
Conserver le copieur si besoin
base_detruire_copieur_si_besoin()  : mixed
Effacement de la bidouille ci-dessus Toutefois si la table des auteurs ne contient plus qu'elle c'est que la copie etait incomplete et on restaure le compte pour garder la connection au site
base_preparer_table_dest()  : array<string|int, mixed>
Preparer la table dans la base de destination : la droper si elle existe (sauf si auteurs ou meta sur le serveur principal) la creer si necessaire, ou ajouter simplement les champs manquants
base_copier_tables()  : bool
Copier de base a base
base_inserer_copie()  : int
fonction d'insertion en base lors de la copie de base a base
array_set_merge()  : void
Merge dans un tableau une de ses clés avec une valeur
lister_tables_objets_sql()  : array<string|int, mixed>|string
Lister les infos de toutes les tables sql declarées
base_serial()  : void
Déclare les tables principales du Core
base_auxiliaires()  : void
Déclare les tables auxiliaires du Core
renseigner_table_objet_sql()  : array<string|int, mixed>
Auto remplissage des informations non explicites sur un objet d'une table sql
renseigner_table_objet_interfaces()  : array<string|int, mixed>
Renseigner les infos d'interface compilateur pour les tables objets complete la declaration precedente
lister_tables_principales()  : array<string|int, mixed>
Retourne la liste des tables principales et leurs descriptions
lister_tables_auxiliaires()  : array<string|int, mixed>
Retourne la liste des tables auxiliaires et leurs descriptions
lister_tables_objets_surnoms()  : array<string|int, mixed>
Recenser les surnoms de table_objet
lister_types_surnoms()  : array<string|int, mixed>
Recenser les surnoms de table_objet
lister_tables_spip()  : array<string|int, mixed>
Retourne la liste des tables SQL qui concernent SPIP
lister_toutes_tables()  : array<string|int, mixed>
Retourne la liste des tables SQL, Spip ou autres
table_objet()  : string
Retrouve le nom d'objet à partir de la table
table_objet_sql()  : string
Retrouve la table sql à partir de l'objet ou du type
id_table_objet()  : string|null
Retrouve la clé primaire à partir du nom d'objet ou de table
objet_type()  : string|null
Retrouve le type d'objet à partir du nom d'objet ou de table
objet_test_si_publie()  : bool
Determiner si un objet est publie ou non
objet_lister_parents()  : array<string|int, mixed>
Cherche les contenus parent d'un contenu précis.
objet_lister_parents_par_type()  : array<string|int, mixed>
Fonction helper qui permet de récupérer une liste simplifiée des parents, regroupés par objet [ 'objet1' => [ids...], 'objet2' => [ids...] ]
objet_lister_enfants()  : array<string|int, mixed>
Cherche tous les contenus enfants d'un contenu précis
objet_lister_enfants_par_type()  : array<string|int, mixed>
Fonction helper qui permet de récupérer une liste simplifiée des enfants, regroupés par objet [ 'objet1' => [ids...], 'objet2' => [ids...] ]
objet_type_decrire_infos_parents()  : array<string|int, mixed>|false
Donne les informations de parenté directe d'un type d'objet si on en trouve
objet_type_decrire_infos_enfants()  : array<string|int, mixed>
Donne les informations des enfants directs d'un type d'objet si on en trouve
base_repair_dist()  : mixed
Action de réparation de la base de données
admin_repair_tables()  : string
Exécute une réparation de la base de données
base_trouver_table_dist()  : array<string|int, mixed>|null
Retourne la description d'une table SQL
base_upgrade_dist()  : void
Programme de mise à jour des tables SQL lors d'un changement de version.
maj_base()  : array<string|int, mixed>|bool
Mise à jour de base de SPIP
maj_plugin()  : void
Mise à jour d'un plugin de SPIP
relance_maj()  : void
Relancer le hit de mise à jour avant timeout
maj_debut_page()  : void
Initialiser la page pour l'affichage des progrès de l'upgrade uniquement si la page n'a pas déjà été initilalisée
maj_while()  : array<string|int, mixed>
Gestion des mises à jour de SPIP et des plugins
serie_alter()  : int
Appliquer une serie de changements qui risquent de partir en timeout
upgrade_test()  : bool
Vérifie qu'il est possible d'ajouter une colonne à une table SQL
test_espace_prive()  : bool
Indique si on est dans l'espace prive
autoriser_sans_cookie()  : bool
Prédicat sur les scripts de ecrire qui n'authentifient pas par cookie et beneficient d'une exception
verifier_visiteur()  : string|0|false
Retourne le statut du visiteur s'il s'annonce.
spip_session()  : string
Renvoie une chaîne qui identifie la session courante
generer_form_ecrire()  : string
Retourne un formulaire (POST par défaut) vers un script exec de l’interface privée
generer_form_action()  : string
Générer un formulaire pour lancer une action vers $script
_T()  : string
Traduction des textes de SPIP
_L()  : string
Remplace les variables `@...@` par leur valeur dans une chaîne de langue.
lang_select()  : string
Sélectionne la langue donnée en argument et mémorise la courante
spip_initialisation()  : mixed
Fonction d'initialisation groupée pour compatibilité ascendante
spip_initialisation_core()  : mixed
Fonction d'initialisation, appellée dans inc_version ou mes_options
spip_initialisation_suite()  : mixed
Complements d'initialisation non critiques pouvant etre realises par les plugins
init_var_mode()  : mixed
Repérer les variables d'URL spéciales `var_mode` qui conditionnent la validité du cache ou certains affichages spéciaux.
action_cron()  : mixed
Action qui déclenche une tache de fond
cron()  : bool
Exécution des tâches de fond
job_queue_add()  : int
Ajout d'une tache dans la file d'attente
job_queue_remove()  : bool
Supprimer une tache de la file d'attente
job_queue_link()  : mixed
Associer une tache a un/des objets de SPIP
queue_sleep_time_to_next_job()  : int|null
Renvoyer le temps de repos restant jusqu'au prochain job
charger_fonction()  : string
Cherche une fonction surchargeable et en retourne le nom exact, après avoir chargé le fichier la contenant si nécessaire.
include_once_check()  : bool
Inclusion unique avec verification d'existence du fichier + log en crash sinon
include_spip()  : string|bool
Inclut un fichier PHP (en le cherchant dans les chemins)
require_spip()  : string|bool
Requiert un fichier PHP (en le cherchant dans les chemins)
include_fichiers_fonctions()  : mixed
Raccourci pour inclure mes_fonctions.php et tous les fichiers _fonctions.php des plugin quand on a besoin dans le PHP de filtres/fonctions qui y sont definis
charger_fonction_url()  : string
Charger la fonction de gestion des urls si elle existe
trouve_modele()  : string
Trouve un squelette dans le repertoire modeles/
trouver_fond()  : array<string|int, mixed>|string
Trouver un squelette dans le chemin on peut specifier un sous-dossier dans $dir si $pathinfo est a true, retourne un tableau avec les composantes du fichier trouve + le chemin complet sans son extension dans fond
aider()  : Lien
Retourne un lien vers une aide
tester_url_ecrire()  : string
Teste, pour un nom de page de l'espace privé, s'il est possible de générer son contenu.
spip_logger()  : LoggerInterface
Obtenir un logger compatible Psr\Log
spip_log()  : void
Enregistrement des événements
journal()  : mixed
Enregistrement des journaux
spip_paths()  : AggregatorInterface
Return unique Aggregator class
spip_paths_loader()  : Loader
_chemin()  : array<string|int, mixed>
Gestion des chemins (ou path) de recherche de fichiers par SPIP
creer_chemin()  : array<string|int, mixed>
Retourne la liste des chemins connus de SPIP, dans l'ordre de priorité
lister_themes_prives()  : array<string|int, string>
Retourne la liste des thèmes du privé utilisables pour cette session
find_in_theme()  : mixed
chemin_image()  : string
Cherche une image dans les dossiers d'images
find_in_path()  : string|bool
Recherche un fichier dans les chemins de SPIP (squelettes, plugins, core)
clear_path_cache()  : mixed
load_path_cache()  : mixed
save_path_cache()  : mixed
find_all_in_path()  : array<string|int, mixed>
Trouve tous les fichiers du path correspondants à un pattern
minipipe()  : string|array<string|int, mixed>
Exécute une fonction (appellée par un pipeline) avec la donnée transmise.
pipeline()  : mixed|null
Appel d’un pipeline
_request()  : mixed|null
Renvoie le `$_GET` ou le `$_POST` émis par l'utilisateur ou pioché dans un tableau transmis
set_request()  : array<string|int, mixed>|bool
Affecte une valeur à une clé (pour usage avec `_request()`)
spip_sanitize_from_request()  : array<string|int, mixed>|mixed|string
Sanitizer une valeur *SI* elle provient du GET ou POST Utile dans les squelettes pour les valeurs qu'on attrape dans le env, dont on veut permettre à un squelette de confiance appelant de fournir une valeur complexe mais qui doit etre nettoyee si elle provient de l'URL
spip_desinfecte()  : mixed
Supprimer les éventuels caracteres nuls %00, qui peuvent tromper la commande is_readable('chemin/vers/fichier/interdit%00truc_normal').
spip_sanitize_classname()  : string|array<string|int, string>
Nettoie une chaine pour servir comme classes CSS.
erreur_squelette()  : null|string
Génère une erreur de squelette
recuperer_fond()  : string|array<string|int, mixed>
Calcule un squelette avec un contexte et retourne son contenu
quote_amp()  : string
Transformation XML des `&` en `&amp;`
tester_url_absolue()  : bool
Tester si une URL est absolue
parametre_url()  : string
Prend une URL et lui ajoute/retire un paramètre
ancre_url()  : string
Ajoute (ou retire) une ancre sur une URL
nettoyer_uri()  : string
Pour le nom du cache, les `types_urls` et `self`
nettoyer_uri_var()  : string
Nettoie une URI de certains paramètres (var_xxx, utm_xxx, etc.)
self()  : string
Donner l'URL de base d'un lien vers "soi-meme", modulo les trucs inutiles
generer_objet_url()  : string
Fonction codant les URLs des objets SQL mis en page par SPIP
generer_url_entite()  : mixed
generer_objet_url_ecrire_edit()  : string
Generer l'url vers la page d'edition dans ecrire/
generer_url_ecrire_entite_edit()  : mixed
urls_connect_dist()  : mixed
urlencode_1738()  : string
Transformer les caractères utf8 d'une URL (farsi par exemple) selon la RFC 1738
generer_objet_url_absolue()  : string
Generer l'url absolue vers un objet
generer_url_entite_absolue()  : mixed
url_de_base()  : string|array<string|int, mixed>
Calcule l'url de base du site
url_de_()  : string
fonction testable de construction d'une url appelee par url_de_base()
generer_url_ecrire()  : string
Crée une URL vers un script de l'espace privé
get_spip_script()  : string
Retourne le nom du fichier d'exécution de SPIP
generer_url_public()  : string
Crée une URL vers une page publique de SPIP
generer_url_prive()  : mixed
generer_url_action()  : string
Créer une URL
generer_url_api()  : string
Créer une URL
test_plugin_actif()  : bool
Vérifie la présence d'un plugin actif, identifié par son préfixe
joli_repertoire()  : string
Retourne un joli chemin de répertoire
spip_timer()  : float|int|string|void
Débute ou arrête un chronomètre et retourne sa valeur
spip_touch()  : mixed
http_script()  : string
Produit une balise `<script>` valide
texte_script()  : string
Sécurise du texte à écrire dans du PHP ou du Javascript.
test_valeur_serveur()  : bool
Tester qu'une variable d'environnement est active
exec_info_dist()  : mixed
Page `exec=info` : retourne le contenu de la fonction php `phpinfo()`
html5_permis()  : bool
Indique si le code HTML5 est permis sur le site public
formats_image_acceptables()  : array<string|int, mixed>
Lister les formats image acceptes par les lib et fonctions images
spip_getimagesize()  : array<string|int, mixed>|bool
Extension de la fonction getimagesize pour supporter aussi les images SVG
avertir_auteurs()  : mixed
Poser une alerte qui sera affiche aux auteurs de bon statut ('' = tous) au prochain passage dans l'espace prive chaque alerte doit avoir un nom pour eviter duplication a chaque hit les alertes affichees une fois sont effacees
spip_version_compare()  : int|bool
Compare 2 numéros de version entre elles.
exec_403_dist()  : mixed
Un exec d'acces interdit
exec_404_dist()  : mixed
Un exec d'erreur
exec_admin_plugin_dist()  : mixed
Affichage de la page de gestion des plugins
admin_plug_args()  : mixed
Affichage spécifique de la page de gestion des plugins
affiche_les_plugins_verrouilles()  : string
Crée le code HTML de la liste des plugins verrouillés
afficher_librairies()  : string
Crée le code HTML de la liste des librairies présentes
liste_librairies()  : array<string|int, mixed>
Faire la liste des librairies disponibles
exec_base_delete_all_dist()  : mixed
Exec de la page de destruction des tables de SPIP
exec_base_repair_dist()  : mixed
Réparer la base de données
exec_demande_mise_a_jour_dist()  : mixed
Demander à mettre à jour la base de données
shutdown_error()  : mixed
Fonction appelée en cas d'arrêt de php sur une erreur
exec_fond_dist()  : mixed
Un exec générique qui branche sur un squelette Z pour écrire
exec_info_plugin_dist()  : mixed
Affichage de la description d'un plugin (en ajax)
exec_informer_dist()  : mixed
Affiche en ajax des informations d'une rubrique selectionnée dans le mini navigateur
exec_install_dist()  : mixed
Affiche un des écrans d'installation de SPIP
exec_plonger_dist()  : mixed
Afficher en ajax les sous-rubriques d'une rubrique (composant du mini-navigateur)
exec_puce_statut_dist()  : void
Gestion de l'affichage ajax des puces d'action rapide
exec_puce_statut_args()  : void
Traitement de l'affichage ajax des puces d'action rapide
exec_rechercher_dist()  : mixed
Prépare la fonction de recherche ajax du mini navigateur de rubriques
exec_rechercher_args()  : string
Formate le rendu de la recherche ajax du mini navigateur de rubriques
proposer_item()  : string
Résultat de la recherche intéractive demandée par la fonction JS `onkey_rechercher`
exec_selectionner_dist()  : mixed
Affichage en ajax du sélecteur (mini-navigateur) de rubrique AJAX
exec_upgrade_dist()  : void
Fonction d'installation et de mise à jour du core de SPIP
genie_mail_dist()  : int
Envoi du Mail des nouveautés
genie_maintenance_dist()  : bool
Diverses tâches de maintenance
verifier_crash_tables()  : bool|array<string|int, mixed>
Vérifier si une table a crashé
message_crash_tables()  : string
Vérifier si une table a crashé et crée un message en conséquence.
genie_mise_a_jour_dist()  : int
Verifier si une mise a jour est disponible
mise_a_jour_ecran_securite()  : mixed
Mise a jour automatisee de l'ecran de securite On se base sur le filemtime de l'ecran source avec un en-tete if_modified_since Mais on fournit aussi le md5 de notre ecran actuel et la version branche de SPIP Cela peut permettre de diffuser un ecran different selon la version de SPIP si besoin ou de ne repondre une 304 que si le md5 est bon
info_maj_exists()  : array{mineure: string, majeure: string}
Indique les mises à jour majeures et mineures pour une version de SPIP
info_maj()  : string
Vérifier si une nouvelle version de SPIP est disponible
info_maj_notifier()  : mixed
Notifier les webmestre d’une nouvelle version existante (pour mettre à jour)
genie_optimiser_dist()  : int
Cron d'optimisation de la base de données
optimiser_caches_contextes()  : mixed
Vider les contextes ajax de plus de 48h
optimiser_base()  : void
Optimise la base de données
optimiser_base_une_table()  : mixed
Lance une requête d'optimisation sur une des tables SQL de la base de données.
optimiser_sansref()  : int
Supprime des enregistrements d'une table SQL dont les ids à supprimer se trouvent dans les résultats de ressource SQL transmise, sous la colonne 'id'
optimiser_base_disparus()  : void
Suppression des liens morts entre tables
creer_pass_aleatoire()  : string
Créer un mot de passe
creer_uniqid()  : string
Créer un identifiant aléatoire
charger_aleas()  : string
Charge les aléas ehpémères s'il ne sont pas encore dans la globale
renouvelle_alea()  : mixed
Renouveller l'alea (utilisé pour sécuriser les scripts du répertoire `action/`)
low_sec()  : string
Retourne une clé de sécurité faible (low_sec) pour l'auteur indiqué
securiser_acces_low_sec()  : bool
Vérifie un accès à faible sécurité
generer_url_api_low_sec()  : string
Generer une url xxx.api/$id_auteur/$cle/$format/$fond?$args
afficher_low_sec()  : string
Retourne une clé basée sur le low_sec de l'auteur et l'action demandé
verifier_low_sec()  : bool
Vérifie une clé basée sur le low_sec de l'auteur et l'action demandé
effacer_low_sec()  : mixed
Efface la clé de sécurité faible (low_sec) d'un auteur
ecrire_acces()  : null|void
Créer un fichier htpasswd
generer_htpasswd_files()  : mixed
Generer le fichier de htpasswd contenant les htpass
generer_htpass()  : void|string
Créer un password htaccess
verifier_htaccess()  : bool
Installe ou vérifie un fichier .htaccess, y compris sa prise en compte par Apache
gerer_htaccess()  : string
Créer un fichier .htaccess pour chaque répertoire d'extension dans `_DIR_IMG` si la configuration le demande
generer_action_auteur()  : array<string|int, mixed>|string
Retourne une URL ou un formulaire securisé
redirige_action_auteur()  : string
Génère une URL ou un formulaire dirigé vers un fichier action (action/xx.php)
redirige_action_post()  : array<string|int, mixed>|string
Retourne une URL ou un formulaire sécurisé en méthode POST
ajax_retour()  : void
Fonction de formatage du contenu renvoyé en ajax
inc_admin_dist()  : string
Teste qu'un utilisateur a des droits sur les fichiers du site et exécute l'action (en base) demandée si c'est le cas.
admin_verifie_session()  : string
Gestion dans la meta "admin" du script d'administation demandé, pour éviter des exécutions en parallèle, notamment après Time-Out.
dir_admin()  : string
Retourne l'emplacement du répertoire où sera testé l'accès utilisateur
fichier_admin()  : string
Retourne le nom d'un fichier de teste d'authentification par accès aux fichiers
debut_admin()  : string
Demande la création d'un répertoire (pour tester l'accès de l'utilisateur) et sort ou quitte sans rien faire si le répertoire est déjà là.
fin_admin()  : mixed
Clôture la phase d'administration en supprimant le répertoire testant l'accès au fichiers ainsi que les metas d'exécution
copy_request()  : string
Génère un formulaire avec les données postées
inc_auth_dist()  : array<string|int, mixed>|int|string
Teste l'authentification d'un visiteur
auth_controler_password_auteur_connecte()  : bool
Vérifier qu'un mot de passe saisi pour confirmer une action est bien celui de l'auteur connecté
auth_echec()  : array<string|int, mixed>|string
fonction appliquee par ecrire/index sur le resultat de la precedente en cas de refus de connexion.
auth_mode()  : array<string|int, mixed>|bool|string
Retourne la description d'un authentifie par cookie ou http_auth Et affecte la globale $connect_login
auth_init_droits()  : array<string|int, mixed>|string|bool
Initialisation des globales pour tout l'espace privé si visiteur connu
auth_desensibiliser_session()  : array<string|int, mixed>
Enlever les clés sensibles d'une ligne auteur
auth_a_loger()  : string
Retourne l'url de connexion
auth_trace()  : mixed
Tracer en base la date de dernière connexion de l'auteur
auth_administrer()  : mixed
Fonction privée d'aiguillage des fonctions d'authentification
auth_formulaire_login()  : array<string|int, mixed>
Pipeline pour inserer du contenu dans le formulaire de login
auth_retrouver_login()  : string
Retrouver le login interne lie a une info login saisie la saisie peut correspondre a un login delegue qui sera alors converti en login interne apres verification
auth_informer_login()  : array<string|int, mixed>
informer sur un login Ce dernier transmet le tableau ci-dessous a la fonction JS informer_auteur Il est invoque par la fonction JS actualise_auteur via la globale JS page_auteur=#URL_PAGE{informer_auteur} dans le squelette login N'y aurait-il pas plus simple ?
auth_identifier_login()  : mixed
Essayer les differentes sources d'authenfication dans l'ordre specifie.
auth_url_retour_login()  : string
Fournir une url de retour apres login par un SSO pour finir l'authentification
auth_terminer_identifier_login()  : mixed
Terminer l'action d'authentification d'un auteur
auth_loger()  : bool
Loger un auteur suite a son identification
auth_deloger()  : mixed
Déconnexion de l'auteur
auth_autoriser_modifier_login()  : bool
Tester la possibilité de modifier le login d'authentification pour la méthode donnée
auth_verifier_login()  : string
Verifier la validite d'un nouveau login pour modification pour la methode donnee
auth_modifier_login()  : bool
Modifier le login d'un auteur pour la methode donnee
auth_autoriser_modifier_pass()  : bool
Tester la possibilité de modifier le pass pour la méthode donnée
auth_verifier_pass()  : string
Verifier la validite d'un pass propose pour modification pour la methode donnee
auth_modifier_pass()  : bool
Modifier le mot de passe d'un auteur pour la methode donnee
auth_synchroniser_distant()  : void
Synchroniser un compte sur une base distante pour la methode donnée lorsque des modifications sont faites dans la base auteur
lire_php_auth()  : array<string|int, mixed>|bool
Vérifier si l'auteur est bien authentifié
ask_php_auth()  : mixed
entête php_auth (est-encore utilisé ?)
autoriser()  : bool
Autoriser une action
autoriser_dist()  : bool
Autoriser une action
autoriser_exception()  : bool
Accorder une autorisation exceptionnelle pour le hit en cours, ou la révoquer
autoriser_type()  : string
Adapte un type pour les autorisations
autoriser_defaut_dist()  : bool
Autorisation par defaut
autoriser_loger_dist()  : bool
Autorisation à se loger ?
autoriser_ecrire_dist()  : bool
Autorisation d'accès à l'espace privé ?
autoriser_creer_dist()  : bool
Autorisation de créer un contenu
autoriser_previsualiser_dist()  : bool
Autorisation de prévisualiser un contenu
test_previsualiser_objet_champ()  : bool
Teste qu'un objet éditorial peut être prévisualisé
autoriser_changerlangue_dist()  : bool
Autorisation de changer de langue un contenu
autoriser_changertraduction_dist()  : bool
Autorisation de changer le lien de traduction
autoriser_dater_dist()  : bool
Autorisation de changer la date d'un contenu
autoriser_instituer_dist()  : bool
Autorisation d'instituer un contenu
autoriser_rubrique_publierdans_dist()  : bool
Autorisation de publier dans une rubrique $id
autoriser_rubrique_creer_dist()  : bool
Autorisation de créer une rubrique
autoriser_rubrique_creerrubriquedans_dist()  : bool
Autorisation de créer une sous rubrique dans une rubrique $id
autoriser_rubrique_creerarticledans_dist()  : bool
Autorisation de créer un article dans une rubrique $id
autoriser_rubrique_modifier_dist()  : bool
Autorisation de modifier une rubrique $id
autoriser_rubrique_supprimer_dist()  : bool
Autorisation de supprimer une rubrique $id
autoriser_article_modifier_dist()  : bool
Autorisation de modifier un article $id
autoriser_article_creer_dist()  : bool
Autorisation de créer un article
autoriser_article_voir_dist()  : bool
Autorisation de voir un article
autoriser_voir_dist()  : bool
Autorisation de voir un objet
autoriser_webmestre_dist()  : bool
Autorisation de webmestre
autoriser_configurer_dist()  : bool
Autorisation Configurer le site
autoriser_sauvegarder_dist()  : bool
Autorisation de sauvegarder la base de données
autoriser_detruire_dist()  : bool
Autorisation d'effacer la base de données
autoriser_auteur_previsualiser_dist()  : bool
Autorisation de prévisualiser un auteur
autoriser_auteur_creer_dist()  : bool
Autorisation de créer un auteur
autoriser_auteur_modifier_dist()  : bool
Autorisation de modifier un auteur
autoriser_associerauteurs_dist()  : bool
Autorisation d'associer un auteur sur un objet
autoriser_chargerftp_dist()  : bool
Autorisation d'upload FTP
autoriser_debug_dist()  : bool
Autorisation d'activer le mode debug
liste_rubriques_auteur()  : array<string|int, mixed>
Liste les rubriques d'un auteur
autoriser_rubrique_previsualiser_dist()  : bool
Autorisation de prévisualiser une rubrique
autoriser_rubrique_iconifier_dist()  : bool
Autorisation d'iconifier une rubrique (mettre un logo)
autoriser_auteur_iconifier_dist()  : bool
Autorisation d'iconifier un auteur (mettre un logo)
autoriser_iconifier_dist()  : bool
Autorisation d'iconifier un objet (mettre un logo)
autoriser_ok_dist()  : true
Autorisation OK
autoriser_niet_dist()  : false
Autorisation NIET
autoriser_base_reparer_dist()  : bool
Autorisation de réparer la base de données
autoriser_infosperso_dist()  : true
Autorisation de voir l'onglet infosperso
autoriser_langage_configurer_dist()  : true
Autorisation de voir le formulaire configurer_langage
autoriser_configurerlangage_dist()  : bool
Autorisation de voir l'onglet configurerlangage
autoriser_preferences_configurer_dist()  : true
Autorisation de voir le formulaire configurer_preferences
autoriser_configurerpreferences_dist()  : bool
Autorisation de voir l'onglet configurerpreferences
autoriser_menudeveloppement_menugrandeentree_dist()  : bool
Autorisation d'afficher le menu développement
autoriser_menugrandeentree_dist()  : true
Autorisation d'afficher une grande entrée de menu
autoriser_auteurs_voir_dist()  : true
Autorisation de voir la page auteurs
autoriser_auteurs_menu_dist()  : bool
Autorisation de voir le menu auteurs
autoriser_articles_voir_dist()  : true
Autorisation de voir la page articles
autoriser_articles_menu_dist()  : bool
Autorisation de voir le menu articles
autoriser_rubriques_voir_dist()  : true
Autorisation de voir la page rubriques
autoriser_rubriques_menu_dist()  : bool
Autorisation de voir le menu rubriques
autoriser_articlecreer_menu_dist()  : bool
Autorisation de voir le menu articlecreer
autoriser_auteurcreer_menu_dist()  : bool
Autorisation de voir le menu auteurcreer
autoriser_visiteurs_menu_dist()  : bool
Autorisation de voir le menu "afficher les visiteurs"
autoriser_suiviedito_menu_dist()  : bool
Autorisation de voir le menu suiviedito
autoriser_synchro_menu_dist()  : bool
Autorisation de voir le menu synchro
autoriser_configurerinteractions_menu_dist()  : bool
Autorisation de voir le menu configurer_interactions
autoriser_configurerlangue_menu_dist()  : bool
Autorisation de voir le menu configurer_langue
autoriser_configurermultilinguisme_menu_dist()  : bool
Autorisation de voir le menu configurer_multilinguisme
autoriser_configurercontenu_menu_dist()  : bool
Autorisation de voir le menu configurer_contenu
autoriser_configureravancees_menu_dist()  : bool
Autorisation de voir le menu configurer_avancees
autoriser_adminplugin_menu_dist()  : bool
Autorisation de voir le menu admin_plugin
autoriser_adminbdd_menu_dist()  : bool
Autorisation de voir le menu admin_bdd
autoriser_queue_purger_dist()  : bool
Autorisation de purger la queue de travaux
autoriser_echafauder_dist()  : bool
Autorisation l'échafaudage de squelettes en Z
auteurs_objet()  : array<string|int, int>
Retourne les identifiants d'auteurs liés à un objet
acces_restreint_rubrique()  : bool
Tester si on est admin restreint sur une rubrique donnée
verifier_table_non_vide()  : bool
Verifier qu'il existe au moins un parent
autoriser_inscrireauteur_dist()  : bool
Détermine la possibilité de s'inscire sur le site
autoriser_inscription_relancer_dist()  : bool
Autorisation de relancer une inscription
autoriser_phpinfos_dist()  : bool
Autorisation à voir le phpinfo
definir_barre_contexte()  : array<string|int, mixed>
Calcule le contexte pour le menu du bandeau
definir_barre_boutons()  : array<string|int, mixed>
Définir la liste des boutons du haut et de ses sous-menus
trier_boutons_enfants_par_alpha()  : array<string|int, Bouton>
Trie les entrées des sous menus par ordre alhabétique
trier_boutons_enfants_par_favoris_alpha()  : array<string|int, Bouton>
Trie les entrées des sous menus par favoris (selon leur ordre) puis les autres par ordre alhabétique
bandeau_creer_url()  : string
Créer l'URL à partir de exec et args, sauf si c'est déjà une url formatée
inc_bandeau_dist()  : string
Construire tout le bandeau supérieur de l'espace privé
obtenir_menus_favoris()  : array<string|int, mixed>
Retourne la liste des noms d'entrées de menus favoris de l'auteur connecté
definir_barre_onglets()  : array<string|int, mixed>
Définir la liste des onglets dans une page de l'interface privée.
barre_onglets()  : string
Création de la barre d'onglets
init_charset()  : void
Initialisation
load_charset()  : string|bool
Charge en mémoire la liste des caractères d'un charset
init_mb_string()  : bool
Vérifier qu'on peut utiliser mb_string avec notre charset
test_iconv()  : bool
Test le fonctionnement correct d'iconv
corriger_caracteres_windows()  : string|array<string|int, mixed>
Corriger des caractères non-conformes : 128-159
html2unicode()  : string
Transforme les entités HTML en unicode
mathml2unicode()  : string
Transforme les entités mathématiques (MathML) en unicode
unicode2charset()  : string
Transforme les entites unicode &#129; dans le charset specifie
importer_charset()  : string
Importer un texte depuis un charset externe vers le charset du site
utf_8_to_unicode()  : string
Transforme un texte UTF-8 en unicode
utf_32_to_unicode()  : string
Transforme un texte UTF-32 en unicode
caractere_utf_8()  : string
Transforme un numéro unicode en caractère utf-8
unicode_to_utf_8()  : string
Convertit un texte unicode en utf-8
unicode_to_javascript()  : string
Convertit les unicode &#264; en javascript \u0108
javascript_to_unicode()  : string
Convertit les %uxxxx (envoyés par javascript) en &#yyy unicode
javascript_to_binary()  : string
Convertit les %E9 (envoyés par le browser) en chaîne du charset du site (binaire)
translitteration_rapide()  : string
Substition rapide de chaque graphème selon le charset sélectionné.
translitteration()  : string
Translittération charset => ascii (pour l'indexation)
translitteration_complexe()  : string
Translittération complexe
translitteration_chiffree()  : string
Translittération chiffrée
bom_utf8()  : bool
Reconnaitre le BOM utf-8 (0xEFBBBF)
is_utf8()  : bool
Vérifie qu'une chaîne est en utf-8 valide
is_ascii()  : bool
Vérifie qu'une chaîne est en ascii valide
transcoder_page()  : string
Transcode une page vers le charset du site
spip_substr()  : string
Coupe un texte selon substr()
spip_ucfirst()  : string
Rend majuscule le premier caractère d'une chaîne utf-8
spip_strtolower()  : string
Passe une chaîne utf-8 en minuscules
spip_strlen()  : int
Retourne la longueur d'une chaîne utf-8
utf8_noplanes()  : string
Transforme une chaîne utf-8 en utf-8 sans "planes" ce qui permet de la donner à MySQL "utf8", qui n'est pas un utf-8 complet L'alternative serait d'utiliser utf8mb4
inc_chercher_logo_dist()  : array<string|int, mixed>
Cherche le logo d'un élément d'objet
inc_chercher_rubrique_dist()  : string
Sélecteur de rubriques pour l'espace privé
style_menu_rubriques()  : array<string|int, mixed>
Styles appliqués sur le texte d'une rubrique pour créer visuellement une indentation en fonction de sa profondeur dans le sélecteur
sous_menu_rubriques()  : string
Sélecteur de sous rubriques pour l'espace privé
selecteur_rubrique_html()  : string
Sélecteur de rubriques pour l'espace privé en mode classique (menu)
selecteur_rubrique_ajax()  : string
Sélecteur de rubrique pour l'espace privé, en mode AJAX
construire_selecteur()  : string
Construit un bloc permettant d'activer le sélecteur de rubrique AJAX
inc_commencer_page_dist()  : string
Débute une page HTML pour l'espace privé
init_entete()  : string
Envoi du DOCTYPE et du `<head><title> </head>`
init_head()  : string
Retourne le code HTML du head (intégration des JS et CSS) de l'espace privé
init_body()  : string
Fonction envoyant la double série d'icônes de rédac
init_body_class()  : string
Calcule les classes CSS à intégrer à la balise `<body>` de l'espace privé
auteurs_recemment_connectes()  : string
Afficher la liste des auteurs connectés à l'espace privé
inc_completer_traduction_dist()  : string
Compléter une nouvelle traduction avec des éléments utiles.
inc_config_dist()  : void
Appliquer les valeurs par défaut pour les options non initialisées (pour les langues c'est fait)
expliquer_config()  : array<string|int, mixed>
Expliquer une clé de configuration
lire_config()  : mixed
Lecture de la configuration
lire_config_metapack_dist()  : mixed
metapack est inclue dans lire_config, mais on traite le cas ou il est explicite metapack:: dans le $cfg de lire_config.
ecrire_config()  : bool
Ecrire une configuration
ecrire_config_metapack_dist()  : bool
metapack est inclue dans ecrire_config, mais on traite le cas ou il est explicite metapack:: dans le $cfg de ecrire_config.
effacer_config()  : bool
Effacer une configuration : revient a ecrire une valeur null
liste_metas()  : array<string|int, mixed>
Définir les `meta` de configuration
actualise_metas()  : void
Mets les `meta` à des valeurs conventionnelles quand elles sont vides et recalcule les langues
appliquer_modifs_config()  : void
Appliquer les modifications apportées aux `metas`
appliquer_adresse_site()  : string
Mettre à jour l'adresse du site à partir d'une valeur saisie (ou auto détection si vide)
spip_setcookie()  : bool
Place un cookie (préfixé) sur le poste client
spip_cookie_envoye()  : bool
Teste si un cookie a déjà été envoyé ou pas
recuperer_cookies_spip()  : mixed
Adapte le tableau PHP `$_COOKIE` pour prendre en compte le préfixe des cookies de SPIP
exec_test_ajax_dist()  : mixed
Teste si javascript est supporté par le navigateur et pose un cookie en conséquence
inc_couleurs_dist()  : array<string|int, mixed>|string
Obtenir ou définir les différents jeux de couleurs de l'espace privé
analyse_csv()  : array<string|int, mixed>
Retourne les données d'un texte au format CSV
autosave_clean_value()  : string
Nettoyer les échappements
cvtautosave_formulaire_charger()  : array<string|int, mixed>
Repérer une demande de formulaire autosave et la conditionner
cvtautosave_formulaire_traiter()  : array<string|int, mixed>
Traitement d'un formulaire ayant activé `autosave`
cvtconf_formulaire_charger()  : array<string|int, mixed>|false
Proposer un chargement par defaut pour les #FORMULAIRE_CONFIGURER_XXX
cvtconf_formulaire_traiter()  : array<string|int, mixed>
Proposer un traitement par defaut pour les #FORMULAIRE_CONFIGURER_XXX
cvtconf_formulaires_configurer_enregistre()  : string
Enregistrer les donnees d'un formulaire $form appele avec les arguments $args Cette fonction peut etre appellee manuellement et explicitement depuis la fonction traiter() d'un formulaire configurer_xxx dont on veut personaliser le traitement sans reecrire le stockage des donnees
cvtconf_definir_configurer_conteneur()  : array<string|int, mixed>
Définir la règle de conteneur, en fonction de la présence de certaines données
cvtconf_formulaires_configurer_recense()  : array<string|int, mixed>
Retrouver les champs d'un formulaire en parcourant son squelette et en extrayant les balises input, textarea, select
cvtconf_configurer_stocker()  : string
Stocker les metas
cvtconf_configurer_lire_meta()  : mixed
Lecture en base des metas d'un form
cvtmulti_recuperer_post_precedents()  : array<string|int, mixed>|false
Reinjecter dans _request() les valeurs postees dans les etapes precedentes
cvtmulti_sauver_post()  : array<string|int, mixed>
Sauvegarder les valeurs postees dans une variable encodee pour les recuperer a la prochaine etape
cvtmulti_formulaire_charger_etapes()  : array<string|int, mixed>
Charger une etape du cvt multi
cvtmulti_formulaire_verifier_etapes()  : array<string|int, mixed>
Verifier les etapes de saisie
cvtmulti_styliser()  : array<string|int, mixed>
Selectionner le bon fond en fonction de l'etape L'etape 1 est sur le fond sans suffixe Les autres etapes x sont sur le fond _x
inc_definir_menus_favoris_dist()  : mixed
Retourne la liste des menus favoris par défaut ainsi que leur rang
copie_locale()  : bool|string
Crée au besoin la copie locale d'un fichier distant
valider_url_distante()  : false|string
Valider qu'une URL d'un document distant est bien distante et pas une url localhost qui permet d'avoir des infos sur le serveur inspiree de https://core.trac.wordpress.org/browser/trunk/src/wp-includes/http.php?rev=36435#L500
prepare_donnees_post()  : array{: string, : string}
Preparer les donnes pour un POST si $donnees est une chaine - charge a l'envoyeur de la boundariser, de gerer le Content-Type, de séparer les entetes des données par une ligne vide etc... - on traite les retour ligne pour les mettre au bon format - on decoupe en entete/corps (separes par ligne vide) si $donnees est un tableau - structuration en chaine avec boundary si necessaire ou fournie et bon Content-Type
url_to_ascii()  : array<string|int, mixed>|string
Convertir une URL dont le host est en utf8 en ascii
recuperer_url()  : array<string|int, mixed>|bool
Récupère le contenu d'une URL au besoin encode son contenu dans le charset local
recuperer_url_cache()  : array<string|int, mixed>|bool|mixed
Récuperer une URL si on l'a pas déjà dans un cache fichier
recuperer_body()  : bool|int|string
Recuperer le contenu sur lequel pointe la resource passee en argument $taille_max permet de tronquer de l'url dont on a deja recupere les en-tetes
recuperer_entetes_complets()  : bool|array<string|int, mixed>
Lit les entetes de reponse HTTP sur la socket $handle et retourne false en cas d'echec, un tableau associatif en cas de succes, contenant : - le status - le tableau complet des headers - la date de derniere modif si connue - l'url de redirection si specifiee
nom_fichier_copie_locale()  : string
Calcule le nom canonique d'une copie local d'un fichier distant
fichier_copie_locale()  : string|null
Donne le nom de la copie locale de la source
recuperer_infos_distantes()  : array<string|int, mixed>|false
Récupérer les infos d'un document distant, sans trop le télécharger
distant_trouver_mime_type_selon_headers()  : string
Retrouver un mime type depuis les headers
distant_trouver_extension_selon_headers()  : false|string
Retrouver une extension de fichier depuis les headers
need_proxy()  : string
Tester si un host peut etre recuperer directement ou doit passer par un proxy
init_http()  : array<string|int, mixed>
Initialise une requete HTTP avec entetes
lance_requete()  : bool|resource
Lancer la requete proprement dite
set_spip_doc()  : string
Donne le chemin du fichier relatif à `_DIR_IMG` pour stockage 'tel quel' dans la base de données
get_spip_doc()  : bool|string
Donne le chemin complet du fichier
creer_repertoire_documents()  : string
Créer un sous-répertoire IMG/$ext/ tel que IMG/pdf
effacer_repertoire_temporaire()  : mixed
Efface le répertoire de manière récursive !
copier_document()  : bool|mixed|string
Copier un document `$source` dans un dossier `IMG/$ext/$orig.$ext` ou `IMG/$subdir/$orig.$ext` si `$subdir` est fourni en numérotant éventuellement si un fichier de même nom existe déjà
determine_upload()  : bool|string
Trouver le dossier utilisé pour upload un fichier
deplacer_fichier_upload()  : bool|mixed|string
Déplacer ou copier un fichier
check_upload_error()  : bool|string
Erreurs d'upload
corriger_extension()  : string
Corrige l'extension du fichier dans quelques cas particuliers
lire_tableau_edition()  : array<string|int, mixed>
Retourne le tableau des éléments édités en cours après avoir supprimé les éléments trop vieux (de plus d'une heure) du tableau.
ecrire_tableau_edition()  : mixed
Enregistre la liste des éléments édités
signale_edition()  : mixed
Signale qu'un auteur édite tel objet
qui_edite()  : array<string|int, mixed>
Qui édite mon objet ?
mention_qui_edite()  : array<string, string>
Afficher les auteurs ayant édités récemment l'objet.
liste_drapeau_edition()  : array<string|int, mixed>
Quels sont les objets en cours d'édition par `$id_auteur` ?
debloquer_tous()  : void
Quand l'auteur veut libérer tous ses objets (tous types)
debloquer_edition()  : void
Quand l'auteur libère un objet précis
formulaires_editer_objet_traiter()  : array<string|int, mixed>
Effectue les traitements d'un formulaire d'édition d'objet éditorial
formulaires_editer_objet_verifier()  : array<string|int, mixed>
Teste les erreurs de validation d'un formulaire d'édition d'objet éditorial
formulaires_editer_objet_charger()  : array<string|int, mixed>
Construit les valeurs de chargement d'un formulaire d'édition d'objet éditorial
coupe_trop_long()  : array<string|int, mixed>
Gestion des textes trop longs (limitation brouteurs) utile pour les textes > 32ko
titre_automatique()  : mixed
auto-renseigner le titre si il n'existe pas
inc_titrer_contenu_dist()  : string
Déterminer un titre automatique, à partir des champs textes de contenu
controles_md5()  : string|array<string|int, mixed>
Calcule des clés de contrôles md5 d'un tableau de données.
controler_contenu()  : bool|null|array<string|int, mixed>
Contrôle les contenus postés d'un objet en vérifiant qu'il n'y a pas de conflit d'édition
controler_md5()  : null|array<string|int, mixed>
Contrôle la liste des md5 envoyés, supprime les inchangés, signale les modifiés depuis telle date
display_conflit_champ()  : string
Afficher le contenu d'un champ selon sa longueur soit dans un `textarea`, soit dans un `input`
inc_email_valide_dist()  : bool|string
Vérifier la conformité d'une ou plusieurs adresses email (suivant RFC 822)
nettoyer_titre_email()  : string
Nettoyer le titre d'un email
nettoyer_caracteres_mail()  : string
Utiliser le bon encodage de caractères selon le charset
inc_envoyer_mail_dist()  : bool
Envoi d'un mail
mail_normaliser_headers()  : array<string|int, mixed>
Formater correctement l'entête d'un email
exporter_csv_champ()  : string
Exporter un champ pour un export CSV : pas de retour a la ligne, et echapper les guillements par des doubles guillemets
exporter_csv_ligne_numerotee()  : string
Exporter une ligne complete au format CSV, avec delimiteur fourni
inc_exporter_csv_dist()  : string
Exporte une ressource sous forme de fichier CSV
charger_filtre()  : string
Charger un filtre depuis le php
filtre_identite_dist()  : string
Retourne le texte tel quel
chercher_filtre()  : string
Cherche un filtre
appliquer_filtre()  : string
Applique un filtre s'il existe, sinon retourne une chaîne vide
appliquer_si_filtre()  : string
Applique un filtre s'il existe, sinon retourne le contenu d'origine sans modification
spip_version()  : string
Retourne la version de SPIP
header_silencieux()  : string
Masque la version de SPIP si la globale spip_header_silencieux le demande.
version_vcs_courante()  : mixed
Retourne une courte description d’une révision VCS d’un répertoire
decrire_version_git()  : array<string|int, mixed>|null
Retrouve un numéro de révision Git d'un répertoire
filtrer()  : string
Charge et exécute un filtre (graphique ou non)
trouver_filtre_matrice()  : bool
Cherche un filtre spécial indiqué dans la globale `spip_matrice` et charge le fichier éventuellement associé contenant le filtre.
filtre_set()  : mixed
Filtre `set` qui sauve la valeur en entrée dans une variable
filtre_setenv()  : string|mixed
Filtre `setenv` qui enregistre une valeur dans l'environnement du squelette
filtre_sanitize_env()  : string
filtre_debug()  : mixed
Filtre `debug` qui affiche un debug de la valeur en entrée
image_filtrer()  : string
Exécute un filtre image
infos_image()  : array<string|int, mixed>
Retourne les informations d'une image
poids_image()  : array<string|int, mixed>
Retourne les dimensions d'une image
taille_image()  : mixed
largeur()  : int|null
Retourne la largeur d'une image
hauteur()  : int|null
Retourne la hauteur d'une image
corriger_entites_html()  : string
Échappement des entités HTML avec correction des entités « brutes »
corriger_toutes_entites_html()  : string
Échappement des entités HTML avec correction des entités « brutes » ainsi que les `&amp;eacute;` en `&eacute;`
proteger_amp()  : string
Échappe les `&` en `&amp;`
entites_html()  : mixed|string
Échappe en entités HTML certains caractères d'un texte
filtrer_entites()  : string
Convertit les caractères spéciaux HTML dans le charset du site.
filtre_filtrer_entites_dist()  : string
Version sécurisée de filtrer_entites
supprimer_caracteres_illegaux()  : string|array<string|int, mixed>
Supprime des caractères illégaux
corriger_caracteres()  : string|array<string|int, mixed>
Correction de caractères
texte_backend()  : string
Encode du HTML pour transmission XML notamment dans les flux RSS
texte_backendq()  : string
Encode et quote du HTML pour transmission XML notamment dans les flux RSS
supprimer_numero()  : string
Enlève un numéro préfixant un texte
recuperer_numero()  : string
Récupère un numéro préfixant un texte
supprimer_tags()  : string|array<string|int, mixed>
Suppression basique et brutale de tous les tags
echapper_tags()  : string
Convertit les chevrons de tag en version lisible en HTML
textebrut()  : string
Convertit un texte HTML en texte brut
liens_ouvrants()  : string
Remplace les liens SPIP en liens ouvrant dans une nouvelle fenetre (target=blank)
liens_nofollow()  : string
Ajouter un attribut rel="nofollow" sur tous les liens d'un texte
PtoBR()  : string
Transforme les sauts de paragraphe HTML `p` en simples passages à la ligne `br`
majuscules()  : string
Passe un texte en majuscules, y compris les accents, en HTML
taille_en_octets()  : string
Renvoie une taille de dossier ou de fichier humainement lisible en ajustant le format et l'unité.
attribut_html()  : string
Rend une chaine utilisable sans dommage comme attribut HTML
vider_url()  : string
Vider les URL nulles
antispam()  : string
Maquiller une adresse e-mail
filtre_securiser_acces_dist()  : bool
Vérifie un accès à faible sécurité
sinon()  : mixed
Retourne le second paramètre lorsque le premier est considere vide, sinon retourne le premier paramètre.
choixsivide()  : mixed
Filtre `|choixsivide{vide, pas vide}` alias de `|?{si oui, si non}` avec les arguments inversés
choixsiegal()  : mixed
Filtre `|choixsiegal{valeur, sioui, sinon}`
filtrer_ical()  : string
Adapte un texte pour être inséré dans une valeur d'un export ICAL
post_autobr()  : string
Transforme les sauts de ligne simples en sauts forcés avec `_ `
extraire_idiome()  : string
Extrait une langue des extraits idiomes (`<:module:cle_de_langue:>`)
extraire_multi()  : string
Extrait une langue des extraits polyglottes (`<multi>`)
filtre_initiale()  : string
Calculer l'initiale d'un nom
unique()  : string|int|array<string|int, mixed>|null|void
Retourne la donnée si c'est la première fois qu'il la voit
alterner()  : mixed
Filtre qui alterne des valeurs en fonction d'un compteur
extraire_attribut()  : string|array<string|int, mixed>|null
Récupérer un attribut d'une balise HTML
inserer_attribut()  : string
Insérer (ou modifier) un attribut html dans une balise
vider_attribut()  : string
Supprime un attribut HTML
modifier_class()  : string
Fonction support pour les filtres |ajouter_class |supprimer_class |commuter_class
ajouter_class()  : string
Ajoute une ou plusieurs classes sur une balise (si pas deja presentes)
supprimer_class()  : string
Supprime une ou plusieurs classes sur une balise (si presentes)
commuter_class()  : string
Bascule une ou plusieurs classes sur une balise : ajoutees si absentes, supprimees si presentes
tester_config()  : string
Un filtre pour déterminer le nom du statut des inscrits
floatstr()  : mixed
strize()  : mixed
plus()  : int
Additionne 2 nombres
strplus()  : mixed
moins()  : int
Soustrait 2 nombres
strmoins()  : mixed
mult()  : int
Multiplie 2 nombres
strmult()  : mixed
div()  : int
Divise 2 nombres
strdiv()  : mixed
modulo()  : int
Retourne le modulo 2 nombres
nom_acceptable()  : bool
Vérifie qu'un nom (d'auteur) ne comporte pas d'autres tags que <multi> et ceux volontairement spécifiés dans la constante
email_valide()  : bool|string|array<string|int, mixed>
Vérifier la conformité d'une ou plusieurs adresses email (suivant RFC 822)
afficher_enclosures()  : string
Permet d'afficher un symbole à côté des liens pointant vers les documents attachés d'un article (liens ayant `rel=enclosure`).
afficher_tags()  : string
Filtre des liens HTML `<a>` selon la valeur de leur attribut `rel` et ne retourne que ceux là.
enclosure2microformat()  : string
Convertir les médias fournis par un flux RSS (podcasts) en liens conformes aux microformats
microformat2enclosure()  : string
Convertir les liens conformes aux microformats en médias pour flux RSS, par exemple pour les podcasts
tags2dcsubject()  : string
Créer les éléments ATOM `<dc:subject>` à partir des tags
extraire_balise()  : string|array<string|int, mixed>
Retourne la premiere balise html du type demandé
extraire_balises()  : array<string|int, mixed>
Extrait toutes les balises html du type demandé
in_any()  : string
Indique si le premier argument est contenu dans le second
valeur_numerique()  : int
Retourne le résultat d'une expression mathématique simple
regledetrois()  : int
Retourne un calcul de règle de trois
form_hidden()  : string
Crée des tags HTML input hidden pour chaque paramètre et valeur d'une URL
filtre_reset()  : mixed|null|false
Retourne la première valeur d'un tableau
filtre_end()  : mixed|null|false
Retourne la dernière valeur d'un tableau
filtre_push()  : array<string|int, mixed>|string
Empile une valeur à la fin d'un tableau
filtre_find()  : bool
Indique si une valeur est contenue dans un tableau
urls_absolues_css()  : string
Passer les url relatives à la css d'origine en url absolues
direction_css()  : string
Inverse le code CSS (left <--> right) d'une feuille de style CSS
url_absolue_css()  : string
Transforme les urls relatives d'un fichier CSS en absolues
table_valeur()  : mixed
Récupère la valeur d'une clé donnée dans un tableau (ou un objet).
filtre_match_dist()  : bool|string
Retrouve un motif dans un texte à partir d'une expression régulière
replace()  : string
Remplacement de texte à base d'expression régulière
traiter_doublons_documents()  : string
Cherche les documents numerotés dans un texte traite par `propre()`
vide()  : string
Filtre vide qui ne renvoie rien
env_to_params()  : string
Écrit des balises HTML `<param...>` à partir d'un tableau de données tel que `#ENV`
env_to_attributs()  : string
Écrit des attributs HTML à partir d'un tableau de données tel que `#ENV`
concat()  : string
Concatène des chaînes
charge_scripts()  : string
Retourne le contenu d'un ou plusieurs fichiers
http_img_variante_svg_si_possible()  : string
Trouver la potentielle variante SVG -xx.svg d'une image -xx.png Cette fonction permet le support multi-version SPIP des plugins qui fournissent une icone PNG et sa variante SVG
http_img_pack()  : string
Produit une balise img avec un champ alt d'office si vide
http_style_background()  : string
Générer une directive `style='background:url()'` à partir d'un fichier image
helper_filtre_balise_img_svg_arguments()  : mixed
helper_filtre_balise_img_svg_size()  : mixed
filtre_balise_img_dist()  : string
Générer une balise HTML `img` à partir d'un nom de fichier et/ou renseigne son alt/class/width/height selon les arguments passés
filtre_balise_svg_dist()  : string
Inserer un svg inline http://www.accede-web.com/notices/html-css-javascript/6-images-icones/6-2-svg-images-vectorielles/
filtre_balise_img_svg_dist()  : string
Génère une balise HTML `img` ou un `svg` inline suivant le nom du fichier.
filtre_info_plugin_dist()  : array<string|int, mixed>|string|bool
Obtient des informations sur les plugins actifs
puce_changement_statut()  : string
Affiche la puce statut d'un objet, avec un menu rapide pour changer de statut si possibilité de l'avoir
filtre_puce_statut_dist()  : string
Affiche la puce statut d'un objet, avec un menu rapide pour changer de statut si possibilité de l'avoir
encoder_contexte_ajax()  : string
Encoder un contexte pour l'ajax
decoder_contexte_ajax()  : array<string|int, mixed>|string|bool
Décoder un hash de contexte pour l'ajax
_xor()  : string
Encrypte ou décrypte un message
url_reponse_forum()  : string
Retourne une URL de réponse de forum (aucune action ici)
url_rss_forum()  : string
retourne une URL de suivi rss d'un forum (aucune action ici)
lien_ou_expose()  : string
Génère des menus avec liens ou `<strong class='on'>` non clicable lorsque l'item est sélectionné Le parametre $on peut recevoir un selecteur simplifié de type 'a.active' 'strong.active.expose' pour préciser la balise (a, span ou strong uniquement) et la/les classes à utiliser quand on est expose
singulier_ou_pluriel()  : string
Afficher un message "un truc"/"N trucs" Les items sont à indiquer comme pour la fonction _T() sous la forme : "module:chaine"
prepare_icone_base()  : string
Fonction de base pour une icone dans un squelette.
icone_base()  : string
Crée un lien ayant une icone
filtre_icone_verticale_dist()  : string
Crée un lien précédé d'une icone au dessus du texte
filtre_icone_horizontale_dist()  : string
Crée un lien précédé d'une icone horizontale
filtre_bouton_action_horizontal_dist()  : string
Crée un bouton d'action intégrant une icone horizontale
filtre_explode_dist()  : array<string|int, mixed>
Explose un texte en tableau suivant un séparateur
filtre_implode_dist()  : string
Implose un tableau en chaine en liant avec un séparateur
bando_images_background()  : string
Produire les styles privés qui associent item de menu avec icone en background
bouton_action()  : string
Générer un bouton_action utilisé par #BOUTON_ACTION
generer_objet_info()  : string
Donner n'importe quelle information sur un objet de maniere generique.
generer_objet_introduction()  : string
Fonction privée pour donner l'introduction d'un objet de manière générique.
appliquer_traitement_champ()  : string
Appliquer a un champ SQL le traitement qui est configure pour la balise homonyme dans les squelettes
generer_objet_lien()  : string
Generer un lien (titre clicable vers url) vers un objet
wrap()  : string
Englobe (Wrap) un texte avec des balises
filtre_print_dist()  : array<string|int, mixed>|mixed|string
afficher proprement n'importe quoi On affiche in fine un pseudo-yaml qui premet de lire humainement les tableaux et de s'y reperer
objet_info()  : string|array<string|int, mixed>
Renvoyer l'info d'un objet telles que definies dans declarer_tables_objets_sql
objet_afficher_nb()  : mixed|string
Filtre pour afficher 'Aucun truc' ou '1 truc' ou 'N trucs' avec la bonne chaîne de langue en fonction de l'objet utilisé
objet_icone()  : string
Filtre pour afficher l'img icone d'un objet
objet_T()  : string
Renvoyer une traduction d'une chaine de langue contextuelle à un objet si elle existe, la traduction de la chaine generique
insert_head_css_conditionnel()  : string
Fonction de secours pour inserer le head_css de facon conditionnelle
produire_fond_statique()  : string
Produire un fichier statique à partir d'un squelette dynamique
timestamp()  : string
Ajouter un timestamp a une url de fichier [(#CHEMIN{monfichier}|timestamp)]
supprimer_timestamp()  : string
Supprimer le timestamp d'une url
filtre_nettoyer_titre_email_dist()  : string
Nettoyer le titre d'un email
filtre_chercher_rubrique_dist()  : string
Afficher le sélecteur de rubrique
sinon_interdire_acces()  : string|void
Rediriger une page suivant une autorisation, et ce, n'importe où dans un squelette, même dans les inclusions.
filtre_compacte_dist()  : string
Assurer le fonctionnement de |compacte meme sans l'extension compresseur
spip_affiche_mot_de_passe_masque()  : string
Afficher partiellement un mot de passe que l'on ne veut pas rendre lisible par un champ hidden
identifiant_slug()  : string
Cette fonction permet de transformer un texte clair en nom court pouvant servir d'identifiant, class, id, url... en ne conservant que des caracteres alphanumeriques et un separateur
label_nettoyer()  : string
Prépare un texte pour un affichage en label ou titre
label_ponctuer()  : string
Prépare un texte pour un affichage en label ou titre en ligne, systématiquement avec ' :' à la fin
helper_filtre_objet_lister_enfants_ou_parents()  : array<string|int, mixed>
Helper pour les filtres associés aux fonctions objet_lister_(parents|enfants)(_par_type)?
filtre_objet_lister_parents_dist()  : array<string|int, mixed>
Cherche les contenus parents d'un objet Supporte l'ecriture inverseee sous la forme [(#ID_OBJET|objet_lister_parents{#OBJET})]
filtre_objet_lister_parents_par_type_dist()  : array<string|int, mixed>
Cherche les contenus parents d'un objet Supporte l'ecriture inverseee sous la forme [(#ID_OBJET|objet_lister_parents_par_type{#OBJET})]
filtre_objet_lister_enfants_dist()  : array<string|int, mixed>
Cherche les contenus enfants d'un objet Supporte l'ecriture inverseee sous la forme [(#ID_OBJET|objet_lister_enfants{#OBJET})]
filtre_objet_lister_enfants_par_type_dist()  : array<string|int, mixed>
Cherche les contenus enfants d'un objet Supporte l'ecriture inverseee sous la forme [(#ID_OBJET|objet_lister_enfants_par_type{#OBJET})]
balise_ALERTE_MESSAGE_dist()  : Champ
Compile la balise `#ALERTE_MESSAGE` produisant le HTML d'un message d'alerte complet.
balise_ALERTE_OUVRIR_dist()  : Champ
Compile la balise `#ALERTE_OUVRIR` produisant le HTML ouvrant d'un message d’alerte
balise_ALERTE_FERMER_dist()  : Champ
Compile la balise `#ALERTE_FERMER` produisant le HTML clôturant un message d’alerte
message_alerte()  : string
Générer un message d’alerte
message_alerte_ouvrir()  : string
Ouvrir un message d’alerte
message_alerte_fermer()  : string
Fermer un message d’alerte
balise_BOITE_OUVRIR_dist()  : Champ
Compile la balise `#BOITE_OUVRIR` ouvrant une boîte de contenu
balise_BOITE_PIED_dist()  : Champ
Compile la balise `#BOITE_PIED` cloturant une boîte de contenu
balise_BOITE_FERMER_dist()  : Champ
Compile la balise `#BOITE_FERMER` clôturant une boîte de contenu
boite_ouvrir()  : string
Ouvrir une boîte
boite_pied()  : string
Passer au pied d'une boîte
boite_fermer()  : string
Fermer une boîte
normaliser_date()  : string
Normaliser une date vers le format datetime (Y-m-d H:i:s)
vider_date()  : string
Enlève une date considérée comme vide
recup_heure()  : array<string|int, mixed>
Retrouve à partir d'une chaîne les valeurs heures, minutes, secondes.
heures()  : string
Retourne l'heure d'une date
minutes()  : string
Retourne les minutes d'une date
secondes()  : string
Retourne les secondes d'une date
heures_minutes()  : string
Retourne l'horaire (avec minutes) d'une date, tel que `12h36min`
recup_date()  : array<string|int, mixed>
Retrouve à partir d'une date les valeurs année, mois, jour, heures, minutes, secondes
date_interface()  : string
Retourne une date relative si elle est récente, sinon une date complète
date_relative()  : string
Retourne une date relative (passée ou à venir)
date_relativecourt()  : string
Retourne une date relative courte (passée ou à venir)
affdate_base()  : string
Formatage humain de la date `$numdate` selon le format `$vue`
nom_jour()  : string
Affiche le nom du jour pour une date donnée
jour()  : string
Affiche le numéro du jour (1er à 31) pour une date donnée
journum()  : string
Affiche le numéro du jour (1 à 31) pour une date donnée
mois()  : string
Affiche le numéro du mois (01 à 12) pour une date donnée
nom_mois()  : string
Affiche le nom du mois pour une date donnée
annee()  : string
Affiche l'année sur 4 chiffres d'une date donnée
saison()  : string
Affiche le nom boréal ou austral de la saison
saison_annee()  : string
Affiche le nom boréal ou austral de la saison suivi de l'année en cours
affdate()  : string
Formate une date
affdate_court()  : string
Formate une date, omet l'année si année courante, sinon omet le jour
affdate_jourcourt()  : string
Formate une date, omet l'année si année courante
affdate_mois_annee()  : string
Retourne le mois en toute lettre et l’année d'une date
affdate_heure()  : string
Retourne la date suivie de l'heure
affdate_debut_fin()  : string
Afficher de facon textuelle les dates de début et fin en fonction des cas
date_ical()  : string
Adapte une date pour être insérée dans une valeur de date d'un export ICAL
date_iso()  : string
Retourne une date formattée au format "RFC 3339" ou "ISO 8601"
date_822()  : string
Retourne une date formattée au format "RFC 822"
date_anneemoisjour()  : string
Pour une date commençant par `Y-m-d`, retourne `Ymd`
date_anneemois()  : string
Pour une date commençant par `Y-m`, retourne `Ym`
date_debut_semaine()  : string
Retourne le premier jour (lundi) de la même semaine au format `Ymd`
date_fin_semaine()  : string
Retourne le dernier jour (dimanche) de la même semaine au format `Ymd`
parametres_css_prive()  : string
Retourne les paramètres de personnalisation css de l'espace privé
chercher_rubrique()  : string
Afficher le sélecteur de rubrique
avoir_visiteurs()  : bool
Tester si le site peut avoir des visiteurs
statuts_articles_visibles()  : array<string|int, mixed>
Lister les status d'article visibles dans l'espace prive en fonction du statut de l'auteur
traduire_statut_auteur()  : string
Traduire le statut technique de l'auteur en langage compréhensible
afficher_qui_edite()  : string
Afficher la mention des autres auteurs ayant modifié un objet
auteurs_lister_statuts()  : array<string|int, mixed>
Lister les statuts des auteurs
trouver_rubrique_creer_objet()  : int
Déterminer la rubrique pour la création d'un objet heuristique
lien_article_virtuel()  : string
Afficher le lien de redirection d'un article virtuel si il y a lieu (rien si l'article n'est pas redirige)
bouton_spip_rss()  : string
Filtre pour générer un lien vers un flux RSS privé
alertes_auteur()  : string
Vérifier la présence d'alertes pour les auteur
filtre_afficher_enfant_rub_dist()  : string
Filtre pour afficher les rubriques enfants d'une rubrique
afficher_plus_info()  : string
Afficher un petit "i" pour lien vers autre page
lister_objets_lies()  : array<string|int, mixed>
Lister les id objet_source associés à l'objet id_objet via la table de lien objet_lien
_couleur_dec_to_hex()  : string
Transforme une couleur vectorielle R,G,B en hexa (par exemple pour usage css)
_couleur_hex_to_dec()  : array<string|int, mixed>
Transforme une couleur hexa en vectorielle R,G,B
_couleur_hsl_to_hex()  : string
Transforme une couleur vectorielle H,S,L en hexa (par exemple pour usage css)
_couleur_hex_to_hsl()  : array<string|int, mixed>
Transforme une couleur vectorielle H,S,L en hexa (par exemple pour usage css)
_couleur_rgb_to_hsl()  : array<string|int, mixed>
Transformation d'une couleur RGB en HSL
_couleur_hsl_to_rgb()  : array<string|int, mixed>
Transformation d'une couleur HSL en RGB
statut_effacer_images_temporaires()  : bool|void
Donne un statut au fichier-image intermédiaire servant au traitement d'image selon qu'il doit être gravé (fichier .src) ou pas.
_image_valeurs_trans()  : bool|string|array<string|int, mixed>
Fonctions de preparation aux filtres de traitement d'image les fonctions de lecture et d'ecriture renseignees traitent uniquement le cas GD2 qui est le cas general des filtres images
_image_extensions_acceptees_en_entree()  : array<string|int, mixed>
Extensions d’images acceptées en entrée
_image_extensions_acceptees_en_sortie()  : array<string|int, mixed>
Extensions d’images acceptées en sortie
_image_extension_normalisee()  : mixed
_image_extensions_conservent_transparence()  : mixed
_image_trouver_extension()  : string
Retourne la terminaison d’un fichier image
_image_trouver_extension_pertinente()  : string
Tente de trouver le véritable type d’une image, même si une image est d’extension .jpg alors que son contenu est autre chose (gif ou png)
_image_trouver_extension_depuis_mime()  : string
Retourne une extension d’image depuis un mime-type
_imagecreatefrom_func()  : resource|null
Crée une image depuis un fichier ou une URL (en indiquant la fonction GD à utiliser)
_imagecreatefromjpeg()  : resource|null
Crée une image depuis un fichier ou une URL (au format jpeg)
_imagecreatefrompng()  : resource|null
Crée une image depuis un fichier ou une URL (au format png)
_imagecreatefromgif()  : resource|null
Crée une image depuis un fichier ou une URL (au format gif)
_imagecreatefromwebp()  : resource|null
Crée une image depuis un fichier ou une URL (au format webp)
_image_imagepng()  : bool
Affiche ou sauvegarde une image au format PNG
_image_imagegif()  : bool
Affiche ou sauvegarde une image au format GIF
_image_imagejpg()  : bool
Affiche ou sauvegarde une image au format JPG
_image_imageico()  : bool
Crée un fichier-image au format ICO
_image_imagewebp()  : bool
Affiche ou sauvegarde une image au format WEBP
_image_imagesvg()  : bool
Sauvegarde une image au format SVG
_image_gd_output()  : bool
Finalise le traitement GD
reconstruire_image_intermediaire()  : mixed
Reconstruit une image à partir des sources de contrôle de son ancienne construction
ramasse_miettes()  : mixed
Indique qu'un fichier d'image calculé est à conserver
image_graver()  : string
Clôture une série de filtres d'images
_image_tag_changer_taille()  : string
Applique des attributs de taille (width, height) à une balise HTML
_image_ecrire_tag()  : string
Écriture de la balise img en sortie de filtre image
_image_creer_vignette()  : array<string|int, mixed>|null
Crée si possible une miniature d'une image
_image_ratio()  : array<string|int, mixed>
Réduire des dimensions en respectant un ratio
ratio_passe_partout()  : array<string|int, mixed>
Réduire des dimensions en respectant un ratio sur la plus petite dimension
process_image_svg_identite()  : string
Fonction identite de traitement par defaut des images SVG (quand un filtre n'annonce pas qu'il sait traiter un SVG on applique cette fonction a la place)
process_image_reduire()  : string
Réduit une image
couleur_html_to_hex()  : string
Transforme un code couleur textuel (black, white, green...) et code hexadécimal
couleur_hex_to_hsl()  : string
Retourne une couleur hsl a partir d'une couleur hex
couleur_hex_to_rgb()  : string
Retourne une couleur rgb a partir d'une couleur hex
couleur_foncer()  : string
Rend une couleur (code hexadécimal) plus foncée
couleur_eclaircir()  : string
Eclaircit une couleur (code hexadécimal)
image_select()  : Le
Selectionne les images qui vont subir une transformation sur un critere de taille
image_passe_partout()  : string
Réduit les images à une taille maximale (chevauchant un rectangle)
image_reduire()  : string
Réduit les images à une taille maximale (inscrite dans un rectangle)
image_recadre_avec_fallback()  : mixed
Usage espace privé: recadre une image uniquement si GD2 et image_recadre (plugin activé) existe sinon retourne le image_passe_partout usuel
image_reduire_par()  : string
Réduit les images d'un certain facteur
filtre_couleur_saturation_dist()  : string
Modifie la saturation de la couleur transmise
filtre_couleur_luminance_dist()  : string
Modifie la luminance de la couleur transmise
filtre_image_dist()  : string
Filtre d'incrustation d'un document image
filtre_audio_dist()  : string
Filtre d'incrustation d'un document audio
filtre_video_dist()  : string
Filtre d'incrustation d'un document video
filtre_application_dist()  : string
Filtre d'incrustation d'un document application
filtre_message_dist()  : string
Filtre d'incrustation d'un document message
filtre_multipart_dist()  : string
Filtre d'incrustation d'un document multipart
filtre_text_dist()  : string
Filtre d'incrustation d'un document test
filtre_text_csv_dist()  : string
Filtre d'incrustation d'un document CSV
filtre_text_html_dist()  : string
Filtre d'incrustation d'un document text/html
filtre_audio_x_pn_realaudio()  : string
Filtre d'incrustation d'un document RealAudio
resolve_path()  : string
Nettoyer une URL contenant des `../`
suivre_lien()  : string
Suivre un lien depuis une URL donnée vers une nouvelle URL
url_absolue()  : string
Transforme une URL relative en URL absolue
protocole_implicite()  : string
Supprimer le protocole d'une url absolue pour le rendre implicite (URL commencant par "//")
protocole_verifier()  : bool
Verifier qu'une url est absolue et que son protocole est bien parmi une liste autorisee
liens_absolus()  : string
Transforme les URLs relatives en URLs absolues
abs_url()  : string
Transforme une URL ou des liens en URL ou liens absolus
spip_htmlspecialchars()  : string
htmlspecialchars wrapper (PHP >= 5.4 compat issue)
spip_htmlentities()  : string
htmlentities wrapper (PHP >= 5.4 compat issue)
selecteur_lister_objets()  : array<string|int, mixed>
Fournit la liste des objets ayant un sélecteur
picker_selected()  : array<string|int, mixed>
Extrait des informations d'un tableau d'entrées `array("rubrique|9", "article|8", ...)` ou une chaine brute `rubrique|9,article|8,...`
picker_identifie_id_rapide()  : mixed
Récupère des informations sur un objet pour pouvoir l'ajouter aux éléments sélectionnés
test_enfants_rubrique()  : string
Déterminer si une rubrique a des enfants à afficher ou non
spip_fopen_lock()  : resource|bool
Ouvre un fichier et le vérrouille
spip_fclose_unlock()  : bool
Dévérrouille et ferme un fichier
spip_file_get_contents()  : string
Retourne le contenu d'un fichier, même si celui ci est compréssé avec une extension en `.gz`
lire_fichier()  : bool
Lit un fichier et place son contenu dans le paramètre transmis.
ecrire_fichier()  : bool
Écrit un fichier de manière un peu sûre
ecrire_fichier_securise()  : mixed
Écrire un contenu dans un fichier encapsulé en PHP pour en empêcher l'accès en l'absence de fichier htaccess
ecrire_fichier_calcule_si_modifie()  : bool
lire_fichier_securise()  : bool
Lire un fichier encapsulé en PHP
raler_fichier()  : never
Affiche un message d’erreur bloquant, indiquant qu’il n’est pas possible de créer le fichier à cause des droits sur le répertoire parent au fichier.
jeune_fichier()  : bool
Teste si un fichier est récent (moins de n secondes)
supprimer_fichier()  : bool
Supprimer un fichier de manière sympa (flock)
spip_unlink()  : mixed
Supprimer brutalement un fichier ou un dossier, s'il existe
spip_clear_opcode_cache()  : mixed
Invalidates a PHP file from any active opcode caches.
spip_attend_invalidation_opcode_cache()  : mixed
Attendre l'invalidation de l'opcache
supprimer_repertoire()  : bool
Suppression complete d'un repertoire.
sous_repertoire()  : string
Crée un sous répertoire
preg_files()  : array<string|int, mixed>
Parcourt récursivement le repertoire `$dir`, et renvoie les fichiers dont le chemin vérifie le pattern (preg) donné en argument.
inc_genie_dist()  : mixed
Prévoit l'exécution de la tâche cron la plus urgente
taches_generales()  : mixed
genie_queue_watch_dist()  : int
Une tâche périodique pour surveiller les tâches crons et les relancer si besoin
queue_genie_replan_job()  : void
Replanifier une tache periodique
redirige_par_entete()  : mixed
Envoyer le navigateur sur une nouvelle adresse
redirige_formulaire()  : mixed
redirige_url_ecrire()  : void
Effectue une redirection par header PHP vers un script de l’interface privée
http_no_cache()  : mixed
inc_icone_renommer_dist()  : mixed
inc_iconifier_dist()  : string|array<string|int, mixed>
Retourne le formulaire de gestion de logo sur les objets.
importer_csv_importcharset()  : array<string|int, mixed>
Importer le charset d'une ligne
importer_csv_nettoie_key()  : string
enlever les accents des cles presentes dans le head, sinon ca pose des problemes .
inc_importer_csv_dist()  : false|array<string|int, mixed>
Lit un fichier csv et retourne un tableau si $head est true, la premiere ligne est utilisee en header pour generer un tableau associatif
inc_informer_dist()  : mixed
install_fichier_connexion()  : void
Écrit un fichier PHP nécessitant SPIP
analyse_fichier_connection()  : array<string|int, mixed>
Analyse un fichier de connexion à une base de données
bases_referencees()  : array<string|int, mixed>
Liste les connecteurs aux bases SQL disponibles
install_mode_appel()  : mixed
tester_compatibilite_hebergement()  : mixed
info_etape()  : mixed
bouton_suivant()  : string
Retourne le code HTML d'un bouton `suivant>>` pour les phases d'installation
info_progression_etape()  : mixed
fieldset()  : mixed
fieldset_champs()  : mixed
install_select_serveur()  : mixed
install_connexion_form()  : mixed
predef_ou_cache()  : mixed
install_etape_liste_bases()  : mixed
install_propager()  : mixed
taille_du_cache()  : int
Évalue approximativement la taille du cache
inc_suivre_invalideur_dist()  : mixed
Invalider les caches liés à telle condition
purger_repertoire()  : int
Purge un répertoire de ses fichiers
inc_retire_caches_dist()  : mixed
retire_caches()  : mixed
calcul_invalideurs()  : mixed
supprime_invalideurs()  : mixed
maj_invalideurs()  : mixed
insere_invalideur()  : mixed
applique_invalideur()  : mixed
suivre_invalideur()  : mixed
inc_journal_dist()  : mixed
changer_langue()  : string|bool
Changer la langue courante
choisir_traduction()  : mixed
approcher_langue()  : mixed
traduire_nom_langue()  : string
Traduit un code de langue (fr, en, etc...) vers le nom de la langue en toute lettres dans cette langue (français, English, etc....).
lang_dir()  : mixed
lang_typo()  : mixed
changer_typo()  : mixed
menu_langues()  : mixed
select_langues()  : mixed
liste_options_langues()  : array<string|int, mixed>
Lister les langues disponibles
verifier_lang_url()  : void
Redirige sur la bonne langue lorsque l'option forcer_lang est active
utiliser_langue_site()  : string
Utilise la langue du site
utiliser_langue_visiteur()  : string
Initialise la langue pour un visiteur du site
match_langue()  : int
Verifier qu'une chaine suceptible d'etre un nom de langue a le bon format
init_langues()  : void
Initialisation des listes de langues
html_lang_attributes()  : string
Retourne une balise <html>
aide_lang_dir()  : string
Calcul de la direction du texte et la mise en page selon la langue
cadre_depliable()  : string
Affiche un cadre complet muni d’un bouton pour le déplier.
block_parfois_visible()  : mixed
debut_block_depliable()  : mixed
fin_block()  : mixed
bouton_block_depliable()  : mixed
inc_lien_dist()  : string
Production de la balise a+href à partir des raccourcis `[xxx->url]` etc.
expanser_liens()  : mixed
nettoyer_raccourcis_typo()  : mixed
traiter_raccourci_lien_atts()  : mixed
virtuel_redirige()  : string
Retourne la valeur d'un champ de redirection (articles virtuels)
calculer_url()  : mixed
traiter_lien_explicite()  : mixed
liens_implicite_glose_dist()  : mixed
traiter_lien_implicite()  : array<string|int, mixed>|bool|string
Transformer un lien raccourci art23 en son URL Par defaut la fonction produit une url prive si on est dans le prive ou publique si on est dans le public.
typer_raccourci()  : mixed
traiter_raccourci_titre()  : array<string|int, mixed>
Retourne le titre et la langue d'un objet éditorial
traiter_raccourci_ancre()  : mixed
traiter_raccourci_glossaire()  : mixed
glossaire_std()  : mixed
inc_lien_court()  : mixed
spip_livrer_fichier()  : mixed
Envoyer un fichier dont on fourni le chemin, le mime type, en attachment ou non, avec un expire
spip_livrer_fichier_entetes()  : mixed
Envoyer les entetes du fichier, sauf ce qui est lie au mode d'envoi (entier ou par parties)
spip_livrer_fichier_entier()  : mixed
Envoyer les contenu entier du fichier
spip_livrer_fichier_partie()  : mixed
Envoyer une partie du fichier Prendre en charge l'entete Range:bytes=0-456 utilise par les player medias source : https://github.com/pomle/php-serveFilePartial/blob/master/ServeFilePartial.inc.php
inc_log_dist()  : mixed
produire_image_math()  : mixed
traiter_math()  : string
Active la recherche et l'affichage d'expressions mathématiques dans le texte transmis, dans tous les textes à l'intérieur d'une balise `<math>`.
inc_meta_dist()  : mixed
lire_metas()  : mixed
touch_meta()  : mixed
Mettre en cache la liste des meta, sauf les valeurs sensibles pour qu'elles ne soient pas visibiles dans un fichier (souvent en 777)
effacer_meta()  : mixed
Supprime une meta
ecrire_meta()  : mixed
Met à jour ou crée une meta avec la clé et la valeur indiquée
cache_meta()  : string
Retourne le nom du fichier cache d'une table SQL de meta
installer_table_meta()  : mixed
Installer une table de configuration supplementaire
supprimer_table_meta()  : mixed
Supprimer une table de configuration supplémentaire
install_debut_html()  : string
Retourne le début d'une page HTML minimale (de type installation)
install_fin_html()  : string
Retourne la fin d'une page HTML minimale (de type installation ou erreur)
minipres()  : string
Retourne une page HTML contenant, dans une présentation minimale, le contenu transmis dans `$titre` et `$corps`.
traiter_modeles()  : string
Traiter les modeles d'un texte
collecter_requests()  : array<string|int, mixed>
Collecte des champs postés
objet_modifier_champs()  : bool|string
Modifie le contenu d'un objet
spip_nfslock()  : int|bool
Crée un verrou pour NFS
spip_nfsunlock()  : mixed
Unlock an nfslock()ed file
spip_nfslock_test()  : mixed
Test a lock to see if it's still valid.
inc_notifications_dist()  : mixed
La fonction de notification de base, qui dispatche le travail
notifications_nettoyer_emails()  : mixed
Néttoyage des emails avant un envoi
notifications_envoyer_mails()  : mixed
Envoyer un email de notification
email_notification_objet()  : string
Notifier un événement sur un objet
email_notification_article()  : string
Notifier un événement sur un article
f_tidy()  : string
Indente un code HTML
f_insert_head()  : string
Offre `#INSERT_HEAD` sur tous les squelettes (bourrin)
f_admin()  : string
Insérer au besoin les boutons admins
f_recuperer_fond()  : array<string|int, mixed>
Actions sur chaque inclusion
f_queue()  : string
Gérer le lancement du cron si des tâches sont en attente
f_jQuery_prive()  : string
Inserer jQuery et ses plugins pour l'espace privé
affichage_final_prive_title_auto()  : string
Ajout automatique du title dans les pages du privé en squelette
f_boite_infos()  : mixed
f_afficher_blocs_ecrire()  : array<string|int, mixed>
Utilisation du pipeline recuperer_fond dans le prive
afficher_blocs_ecrire_preparer_marqueur()  : string
Vérifie la présence d'un marqueur dans le HTML et l'ajoute si nécessaire.
f_queue_affiche_milieu()  : string
Afficher les taches en attente liees a un objet
mise_a_jour_affiche_milieu()  : string
Afficher le message de mise à jour dans toutes les pages du privé pour les webmestres
trouver_objet_exec()  : array<string|int, mixed>|bool
Trouver l'objet qui correspond à l'exec de l'espace privé passé en argument
inc_plonger_dist()  : mixed
liste_plugin_files()  : array<string|int, mixed>
Retourne la description de chaque plugin présent dans un répertoire
fast_find_plugin_dirs()  : array<string|int, mixed>
Recherche rapide des répertoires de plugins contenus dans un répertoire
is_plugin_dir()  : string|array<string|int, string>
Indique si un répertoire (ou plusieurs) est la racine d'un plugin SPIP
plugin_version_compatible()  : bool
Teste si le numéro de version d'un plugin est dans un intervalle donné.
liste_plugin_valides()  : array<string|int, mixed>
Construire la liste des infos strictement necessaires aux plugins à activer afin de les mémoriser dans une meta pas trop grosse
plugin_valide_resume()  : string|array<string|int, mixed>
Ne retenir un plugin que s'il est valide et dans leur plus recente version compatible avec la version presente de SPIP
plugin_fixer_procure()  : mixed
Compléter la liste des plugins avec les éventuels procure
liste_chemin_plugin()  : array<string|int, mixed>
Extrait les chemins d'une liste de plugin
liste_chemin_plugin_actifs()  : array<string|int, mixed>
Liste les chemins vers les plugins actifs du dossier fourni en argument a partir d'une liste d'elelements construits par plugin_valide_resume
plugin_trier()  : array<string|int, mixed>
Trier les plugins en vériant leur dépendances (qui doivent être présentes)
plugins_erreurs()  : mixed
Collecte les erreurs de dépendances des plugins dans la meta `plugin_erreur_activation`
plugin_donne_erreurs()  : string|array<string|int, mixed>
Retourne les erreurs d'activation des plugins, au format html ou brut
plugin_necessite()  : array<string|int, mixed>
Teste des dépendances
plugin_controler_necessite()  : string
Vérifie qu'une dépendance (plugin) est bien présente.
plugin_message_incompatibilite()  : string
plugin_controler_lib()  : mixed
actualise_plugins_actifs()  : bool
Calcule la liste des plugins actifs et recompile les fichiers caches qui leurs sont relatifs
ecrire_plugin_actifs()  : bool
Calcule ou modifie la liste des plugins actifs et recompile les fichiers caches qui leurs sont relatifs
plugins_precompile_chemin()  : mixed
Écrit le fichier de déclaration des chemins (path) des plugins actifs
plugins_precompile_xxxtions()  : mixed
Écrit les fichiers de chargement des fichiers d'options et de fonctions des plugins
plugin_ongletbouton()  : string
Compile les entrées d'un menu et retourne le code php d'exécution
plugins_amorcer_plugins_actifs()  : mixed
Chargement des plugins actifs dans le path de SPIP et exécution de fichiers d'options des plugins
pipeline_matrice_precompile()  : array<string|int, mixed>
Crée la liste des filtres à traverser pour chaque pipeline
pipeline_precompile()  : mixed
Précompilation des pipelines
plugin_est_installe()  : bool
Indique si un chemin de plugin fait parti des plugins activés sur le site
plugin_installes_meta()  : mixed
Parcours les plugins activés et appelle leurs fonctions d'installation si elles existent.
ecrire_fichier_php()  : mixed
Écrit un fichier PHP
inc_precharger_article_dist()  : array<string|int, mixed>
Retourne les valeurs à charger pour un formulaire d'édition d'un article
inc_precharger_traduction_article_dist()  : array<string|int, mixed>
Récupère les valeurs d'une traduction de référence pour la création d'un article (préremplissage du formulaire).
precharger_objet()  : array<string|int, mixed>
Retourne les valeurs à charger pour un formulaire d'édition d'un objet
precharger_traduction_objet()  : array<string|int, mixed>
Récupère les valeurs d'une traduction de référence pour la création d'un objet (préremplissage du formulaire).
inc_prepare_recherche_dist()  : array<string|int, mixed>
Préparer les listes `id_article IN (...)` pour les parties WHERE et calcul des `points` pour la partie SELECT des requêtes du moteur de recherche
generer_select_where_explicites()  : array<string|int, mixed>
Generer le select et where qui contiennent explicitement les id et points (ie comme dans SPIP 1.9.x) quand on fait une recherche sur une table externe
inc_preselectionner_parent_nouvel_objet_dist()  : string
Preselectionner la rubrique lors de la creation desactive par defaut suite a remontee utilisateur mais activable par define ou surchargeable
debut_cadre()  : mixed
fin_cadre()  : mixed
debut_cadre_relief()  : mixed
fin_cadre_relief()  : mixed
debut_cadre_enfonce()  : mixed
fin_cadre_enfonce()  : mixed
debut_cadre_sous_rub()  : mixed
fin_cadre_sous_rub()  : mixed
debut_cadre_couleur()  : mixed
fin_cadre_couleur()  : mixed
debut_cadre_trait_couleur()  : mixed
fin_cadre_trait_couleur()  : mixed
debut_boite_alerte()  : mixed
fin_boite_alerte()  : mixed
debut_boite_info()  : mixed
fin_boite_info()  : mixed
gros_titre()  : string
Affiche le titre d’une page de l’interface privée. Utilisée par la plupart des fichiers `exec/xx.php`.
bloc_des_raccourcis()  : mixed
debut_onglet()  : mixed
fin_onglet()  : mixed
onglet()  : mixed
icone_verticale()  : string
Crée un lien précédé d'une icone au dessus du texte
icone_horizontale()  : string
Crée un lien précédé d'une icone horizontale
debut_grand_cadre()  : string
Retourne le code HTML d'un début de cadre pour le centre de page (haut de page)
fin_grand_cadre()  : string
Retourne le code HTML d'une fin de cadre pour le centre de page (haut de page)
debut_gauche()  : string
Retourne le code HTML du début de la colonne gauche
fin_gauche()  : string
Retourne le code HTML de la fin de la colonne
creer_colonne_droite()  : string
Retourne le code HTML du changement de colonne (passer de la gauche à la droite)
debut_droite()  : string
Retourne le code HTML de la colonne droite et du centre de page
liste_objets_bloques()  : string
Retourne la liste des objets édités récemment (si les drapeaux d'édition sont actifs)
fin_page()  : string
Retourne le code HTML de fin de page de l'interface privée.
html_tests_js()  : string
Retourne des tests javascript à exécuter
info_maj_spip()  : string
Retourne la liste des mises à jour de SPIP possibles
info_copyright()  : string
Retourne les informations de copyright (version de SPIP, de l'écran de sécurité) pour le pied de page de l'espace privé
enfant_rub()  : array<string|int, mixed>
Crée l'affichage des listes de rubriques dans le privé
sous_enfant_rub()  : string
Affiche les enfants d'une sous rubrique dans un bloc dépliable (Utilisé dans les pages du privé)
afficher_enfant_rub()  : string
Affiche la liste des rubriques enfants d'une rubrique (Utilisé dans les pages du privé notamment ?exec=rubriques)
inc_puce_statut_dist()  : string
Afficher la puce statut d'un objet
statut_image()  : string|null
Récuperer l'image correspondant au statut pour un objet éditorial indiqué
statut_titre()  : string
Récupérer le titre correspondant au statut pour un objet éditorial indiqué
statut_texte_instituer()  : string
Recuperer le texte correspondant au choix de statut, tel que declare dans declarer_tables_objets_sql sous la forme array('statut1'=>'texte statut 1','statut2'=>'texte statut 2' ...) mettre une chaine vide pour ne pas proposer un statut les statuts seront proposes dans le meme ordre que dans la declaration
puce_statut_auteur_dist()  : string
Afficher la puce statut d'un auteur
puce_statut_rubrique_dist()  : mixed
puce_statut_changement_rapide()  : string
Retourne le contenu d'une puce avec changement de statut possible si on en a l'autorisation, sinon simplement l'image de la puce
afficher_script_statut()  : mixed
puce_statut()  : mixed
queue_add_job()  : int
Ajouter une tâche à la file
queue_purger()  : void
Purger la file de tâche et reprogrammer les tâches périodiques
queue_remove_job()  : int|bool
Retirer une tache de la file d'attente
queue_link_job()  : mixed
Associer une tache avec un objet
queue_unlink_job()  : int
Dissocier une tache d'un objet
queue_start_job()  : mixed
Lancer une tache decrite par sa ligne SQL
queue_schedule()  : null|bool
Exécute les prochaînes tâches cron et replanifie les suivantes
queue_close_job()  : mixed
Terminer un job au status _JQ_PENDING
queue_error_handler()  : mixed
Récuperer des erreurs autant que possible en terminant la gestion de la queue
queue_is_cron_job()  : bool|int
Tester si une tâche était une tâche périodique à reprogrammer
queue_update_next_job_time()  : mixed
Mettre a jour la date du prochain job a lancer Si une date est fournie (au format time unix) on fait simplement un min entre la date deja connue et celle fournie (cas de l'ajout simple ou cas $next_time=0 car l'on sait qu'il faut revenir ASAP)
queue_set_next_job_time()  : mixed
Mettre a jour la date de prochain job
queue_affichage_cron()  : string
Déclenche le cron en asynchrone ou retourne le code HTML pour le déclencher
queue_lancer_url_http_async()  : bool
Lancer le cron via un hit http sans attendre le resultat
inc_recherche_to_array_dist()  : mixed
liste_des_champs()  : array<string|int, mixed>
Donne la liste des champs/tables où l'on sait chercher / remplacer avec un poids pour le score
liste_des_jointures()  : mixed
expression_recherche()  : mixed
recherche_en_base()  : array<string|int, mixed>
Effectue une recherche sur toutes les tables de la base de données
remplace_en_base()  : mixed
roles_presents()  : bool|array<string|int, mixed>
Vérifie qu'un objet dispose de rôles fonctionnels
roles_colonne()  : string
Retrouve la colonne de liaison d'un rôle si définie entre 2 objets
roles_trouver_dans_qualif()  : array<string|int, mixed>
Extrait le rôle et la colonne de role d'un tableau de qualification
roles_creer_condition_role()  : array<string|int, mixed>
Gérer l'ajout dans la condition where du rôle
roles_complets()  : array<string|int, mixed>
Liste des identifiants dont on ne peut ajouter de rôle
roles_presents_sur_id()  : array<string|int, mixed>
Liste les roles attribués entre 2 objets/id_objet sur une table de liaison donnée
roles_presents_liaisons()  : array<string|int, mixed>|bool
Lister des rôles présents sur une liaion, pour un objet sur un autre, classés par identifiant de l'objet
roles_connus_en_base()  : array<string|int, mixed>|bool
Lister des rôles connus en base pour une liaion, pour un objet source
calculer_rubriques_if()  : void
Recalcule les statuts d'une rubrique
publier_branche_rubrique()  : bool
Publie une rubrique et sa hiérarchie de rubriques
depublier_branche_rubrique_if()  : bool
Dépublie si nécessaire des éléments d'une hiérarchie de rubriques
depublier_rubrique_if()  : bool
Dépublier une rubrique si aucun contenu publié connu n'est trouvé dedans
calculer_rubriques()  : void
Recalcule des héritages de rubriques
calculer_rubriques_publiees()  : void
Recalcule l'ensemble des données associées à l'arborescence des rubriques
propager_les_secteurs()  : void
Recalcule les secteurs et les profondeurs des rubriques (et articles)
calculer_langues_rubriques_etape()  : bool
Recalcule les langues héritées des sous-rubriques
calculer_langues_rubriques()  : void
Recalcule les langues des rubriques et articles
calculer_langues_utilisees()  : string
Calcule la liste des langues réellement utilisées dans le site public
calcul_branche_in()  : string
Calcul d'une branche de rubrique
calcul_hierarchie_in()  : string
Calcul d'une hiérarchie
inc_calcul_branche_in_dist()  : string
Calcul d'une branche de rubriques
inc_calcul_hierarchie_in_dist()  : string
Calcul d'une hiérarchie
calculer_prochain_postdate()  : void
Calcule la date du prochain article post-daté
creer_rubrique_nommee()  : int
Crée une arborescence de rubrique
inc_securiser_action_dist()  : array<string|int, mixed>|string
Génère ou vérifie une action sécurisée
demander_confirmation_avant_action()  : bool
Confirmer avant suppression si on arrive par un bouton action a appeler dans la fonction action avant toute action destructrice
securiser_action_auteur()  : array<string|int, mixed>|string
Retourne une URL ou un formulaire sécurisés
caracteriser_auteur()  : array<string|int, mixed>
Caracteriser un auteur : l'auteur loge si $id_auteur=null
_action_auteur()  : string
Calcule une cle securisee pour une action et un auteur donnes utilisee pour generer des urls personelles pour executer une action qui modifie la base et verifier la legitimite de l'appel a l'action
_action_get_alea()  : string
calculer_action_auteur()  : string
Calculer le hash qui signe une action pour un auteur
verifier_action_auteur()  : bool
Verifier le hash de signature d'une action toujours exclusivement pour l'auteur en cours
secret_du_site()  : string
Renvoyer le secret du site (le generer si il n'existe pas encore)
calculer_cle_action()  : string
Calculer une signature valable pour une action et pour le site
verifier_cle_action()  : bool
Verifier la cle de signature d'une action valable pour le site
calculer_token_previsu()  : string
Calculer le token de prévisu
verifier_token_previsu()  : false|array<string|int, mixed>
Vérifie un token de prévisu
decrire_token_previsu()  : bool|array<string|int, mixed>
Décrire un token de prévisu en session
inc_selectionner_dist()  : string
Affiche un mini-navigateur ajax positionné sur une rubrique
construire_selectionner_hierarchie()  : string
Construit le sélectionneur de hierarchie
mini_hier()  : array<string|int, mixed>
Récupère les identifiants de hierarchie d'une rubrique
inc_session_dist()  : bool|null|void
3 actions sur les sessions, selon le type de l'argument:
supprimer_sessions()  : mixed
Supprimer toutes les vieilles sessions d'un auteur
ajouter_session()  : bool|string
Ajoute une session pour l'auteur décrit par un tableau issu d'un SELECT-SQL
definir_duree_cookie_session()  : int
Calcule le temps de validité en seconde du cookie de session
lire_cookie_session()  : string|null
Lire le cookie de session et le valider de façon centralisée
effacer_cookie_session()  : void
Annuler le cookie de session
set_cookie_session()  : string|null
Prolonger / Changer la valeur du cookie de session
verifier_session()  : bool|int|null
Vérifie si le cookie spip_session indique une session valide
session_get()  : mixed|null
Lire une valeur dans la session SPIP
session_set()  : void|array<string|int, mixed>
Ajouter une donnée dans la session SPIP
terminer_actualiser_sessions()  : mixed
En fin de hit, synchroniser toutes les sessions
actualiser_sessions()  : mixed
Mettre à jour les sessions existantes pour un auteur
lister_sessions_auteur()  : array<string|int, mixed>
lister les sessions et en verifier le nombre maxi en supprimant les plus anciennes si besoin https://core.spip.net/issues/3807
preparer_ecriture_session()  : array<string|int, mixed>
Préparer le tableau de session avant écriture
ecrire_fichier_session()  : bool
Ecrire le fichier d'une session
chemin_fichier_session()  : string
Calculer le chemin vers le fichier de session
fichier_session()  : string
Calculer le nom du fichier session
rejouer_session()  : string
Code à insérer par `inc/presentation` pour rejouer la session
hash_env()  : string
On verifie l'IP et le nom du navigateur
spip_php_session_start()  : bool
Démarre une session PHP si ce n'est pas déjà fait.
is_php_session_started()  : bool
Indique si une sesssion PHP est active
inc_simplexml_to_array_dist()  : array<string|int, mixed>
Transforme un texte XML en tableau PHP
xmlObjToArr()  : array<string|int, mixed>
Transforme un objet SimpleXML en tableau PHP http://www.php.net/manual/pt_BR/book.simplexml.php#108688 xaviered at gmail dot com 17-May-2012 07:00
svg_charger()  : bool|string
Charger une image SVG a partir d'une source qui peut etre - l'image svg deja chargee - une data-url - un nom de fichier
svg_lire_balise_svg()  : array<string|int, mixed>|bool
Lire la balise <svg...> qui demarre le fichier et la parser pour renvoyer un tableau de ses attributs
svg_lire_attributs()  : array<string|int, mixed>|bool
Attributs de la balise SVG
svg_dimension_to_pixels()  : bool|float|int
Convertir l'attribut widht/height d'un SVG en pixels (approximatif eventuellement, du moment qu'on respecte le ratio)
svg_change_balise_svg()  : string
Modifier la balise SVG en entete du source
svg_insert_shapes()  : string
svg_clip_in_box()  : string
Clipper le SVG dans une box
svg_redimensionner()  : bool|string
Redimensionner le SVG via le width/height de la balise
svg_couleur_to_hexa()  : string
Transformer une couleur extraite du SVG en hexa
svg_couleur_to_rgb()  : array<string|int, mixed>
Transformer une couleur extraite du SVG en rgb
svg_getimagesize_from_attr()  : array<string|int, mixed>
Calculer les dimensions width/heigt/viewBox du SVG d'apres les attributs de la balise <svg>
svg_force_viewBox_px()  : string
Forcer la viewBox du SVG, en px cree l'attribut viewBox si il n'y en a pas convertit les unites en px si besoin
svg_extract_couleurs()  : array<string|int, mixed>|mixed
Extract all colors in SVG
svg_recadrer()  : bool|string
Redimensionner le SVG via le width/height de la balise
svg_ajouter_background()  : bool|string
Ajouter un background au SVG : un rect pleine taille avec la bonne couleur
svg_ajouter_voile()  : bool|string
Ajouter un voile au SVG : un rect pleine taille avec la bonne couleur/opacite, en premier plan
svg_transformer()  : bool|string
Ajouter un background au SVG : un rect pleine taille avec la bonne couleur
svg_apply_filter()  : bool|string
Ajouter + appliquer un filtre a un svg
svg_filter_blur()  : string
Filtre blur en utilisant <filter>
svg_filter_grayscale()  : bool|string
Filtre grayscale en utilisant <filter>
svg_filter_sepia()  : bool|string
Filtre sepia en utilisant <filter>
svg_flip()  : bool|string
Ajouter un background au SVG : un rect pleine taille avec la bonne couleur
svg_rotate()  : bool|string
svg_filtrer_couleurs()  : bool|mixed|string
Filtrer les couleurs d'un SVG avec une callback (peut etre lent si beaucoup de couleurs)
definir_raccourcis_alineas()  : array<string|int, mixed>
Raccourcis dépendant du sens de la langue
traiter_tableau()  : string
Traitement des raccourcis de tableaux
traiter_listes()  : string
Traitement des listes
traiter_raccourcis()  : string
Nettoie un texte, traite les raccourcis autre qu'URL, la typo, etc.
echappe_js()  : string
Échapper et affichier joliement les `<script` et `<iframe`.
interdire_scripts()  : string
Empêcher l'exécution de code PHP et JS
typo()  : string
Applique la typographie générale
corriger_typo()  : string
Corrige la typographie
paragrapher()  : string
Paragrapher seulement
traiter_retours_chariots()  : string
Harmonise les retours chariots et mange les paragraphes HTML
propre()  : string
Transforme les raccourcis SPIP, liens et modèles d'un texte en code HTML
definir_puce()  : string
Retourne une image d'une puce
spip_balisage_code()  : string
Preparer le markup html pour les extraits de code en ligne ou en bloc
code_echappement()  : string
Echapper les elements perilleux en les passant en base64
traiter_echap_html_dist()  : mixed
traiter_echap_pre_dist()  : mixed
traiter_echap_code_dist()  : mixed
traiter_echap_cadre_dist()  : mixed
traiter_echap_frame_dist()  : mixed
traiter_echap_script_dist()  : mixed
echappe_html()  : string|array<string|int, string>
pour $source voir commentaire infra (echappe_retour)
echappe_retour()  : array<string|int, mixed>|mixed|string|array<string|int, string>
Traitement final des echappements Rq: $source sert a faire des echappements "a soi" qui ne sont pas nettoyes par propre() : exemple dans multi et dans typo()
echappe_retour_modeles()  : mixed
couper()  : string
Coupe un texte à une certaine longueur.
protege_js_modeles()  : mixed
echapper_faux_tags()  : mixed
echapper_html_suspect()  : string
Si le html contenu dans un texte ne passe pas sans transformation a travers safehtml on l'echappe si safehtml ne renvoie pas la meme chose on echappe les < en &lt; pour montrer le contenu brut
safehtml()  : string
Sécurise un texte HTML
is_html_safe()  : bool
Detecter si un texte est "safe" ie non modifie significativement par safehtml()
supprime_img()  : string
Supprime les modèles d'image d'un texte
find_langs_in_path()  : array<string|int, mixed>
Rechercher tous les lang/file dans le path qui seront ensuite chargés dans l'ordre du path
chercher_module_lang()  : array<string|int, mixed>
Recherche le ou les fichiers de langue d'un module de langue
charger_langue()  : void
Charge en mémoire les couples cle/traduction d'un module de langue et une langue donnée
lire_fichier_langue()  : string
Retourne les entrées d’un fichier de langue
surcharger_langue()  : mixed
Surcharger le fichier de langue courant avec un ou plusieurs autres
inc_traduire_dist()  : string|Description
Traduire une chaine internationalisée
definir_details_traduction()  : Description
Modifie le texte de traduction pour indiquer des éléments servant au debug de celles-ci. (pour var_mode=traduction)
urls_decoder_url()  : array<string|int, mixed>
Décoder une URL en utilisant les fonctions inverses
urls_transition_retrouver_anciennes_url_propres()  : array<string|int, mixed>
Le bloc qui suit sert a faciliter les transitions depuis le mode 'urls-propres' vers les modes 'urls-standard' et 'url-html'
urls_transition_retrouver_anciennes_url_html()  : array<string|int, mixed>
Le bloc qui suit sert a faciliter les transitions depuis le mode 'urls-html/standard' vers les modes 'urls propres|arbos'
urls_liste_objets()  : string|array<string|int, mixed>
Lister les objets pris en compte dans les URLs c'est à dire suceptibles d'avoir une URL propre
nettoyer_url_page()  : array<string|int, mixed>
Nettoyer une URL, en repérant notamment les raccourcis d'objets
generer_objet_url_ecrire()  : string
Générer l'URL d'un objet dans l'espace privé
spip_xml_load()  : array<string|int, mixed>|bool
Lit un fichier xml donné et renvoie son arbre.
spip_xml_parse()  : array<string|int, mixed>|bool
Parse une chaine XML donnée et retourne un tableau.
spip_xml_aplatit()  : mixed
spip_xml_tagname()  : mixed
spip_xml_decompose_tag()  : mixed
spip_xml_match_nodes()  : bool
Recherche dans un arbre XML généré par `spip_xml_parse()` (ou une branche de cet arbre) les clés de l'arbre qui valident la regexp donnée.
install_etape__dist()  : mixed
Affiche l'étape 0 d'installation : écran d'accueil.
install_etape_1_dist()  : mixed
Affichage de l'étape 1 d'installation : tests des répertoires et hébergement ; demande d'identifiants de connexion à la BDD
install_etape_2_dist()  : mixed
install_etape_2_bases()  : mixed
install_etape_2_form()  : mixed
install_bases()  : mixed
preparer_prefixe_tables()  : string
Préparer le préfixe des tables
install_propose_ldap()  : mixed
install_premier_auteur()  : mixed
install_etape_3_dist()  : mixed
install_etape_3b_dist()  : mixed
echouer_etape_3b()  : never
install_etape_4_dist()  : mixed
test_ecrire()  : mixed
install_etape_chmod_dist()  : mixed
install_etape_fin_dist()  : mixed
install_verifier_htaccess()  : mixed
install_etape_ldap1_dist()  : mixed
install_etape_ldap2_dist()  : mixed
install_etape_ldap3_dist()  : mixed
install_etape_ldap4_dist()  : mixed
liste_statuts_ldap()  : mixed
install_ldap_correspondances()  : mixed
install_etape_ldap5_dist()  : mixed
etape_ldap5_save()  : mixed
etape_ldap5_suite()  : mixed
iterateur_CONDITION_dist()  : Boucle
Créer une boucle sur un itérateur CONDITION
iterateur_DATA_dist()  : Boucle
Créer une boucle sur un itérateur DATA
inc_file_to_array_dist()  : array<string|int, mixed>
file -> tableau
inc_plugins_to_array_dist()  : array<string|int, mixed>
plugins -> tableau
inc_xml_to_array_dist()  : array<string|int, mixed>
xml -> tableau
inc_object_to_array()  : array<string|int, mixed>
object -> tableau
inc_sql_to_array_dist()  : array<string|int, mixed>|bool
sql -> tableau
inc_json_to_array_dist()  : array<string|int, mixed>|bool
json -> tableau
inc_csv_to_array_dist()  : array<string|int, mixed>|bool
csv -> tableau
inc_rss_to_array_dist()  : array<string|int, mixed>|bool
RSS -> tableau
inc_atom_to_array_dist()  : array<string|int, mixed>|bool
atom, alias de rss -> tableau
inc_glob_to_array_dist()  : array<string|int, mixed>|bool
glob -> tableau lister des fichiers selon un masque, pour la syntaxe cf php.net/glob
inc_yaml_to_array_dist()  : bool|array<string|int, mixed>
YAML -> tableau
inc_pregfiles_to_array_dist()  : array<string|int, mixed>|bool
pregfiles -> tableau lister des fichiers a partir d'un dossier de base et selon une regexp.
inc_ls_to_array_dist()  : array<string|int, mixed>|bool
ls -> tableau ls : lister des fichiers selon un masque glob et renvoyer aussi leurs donnees php.net/stat
XMLObjectToArray()  : array<string|int, mixed>|bool
Object -> tableau
iterateur_php_dist()  : Boucle
Créer une boucle sur un itérateur PHP
maj2021_supprimer_toutes_sessions_si_aucun_backup_cles()  : mixed
Supprime toutes les sessions des auteurs si on a pas encore généré de config/cles.php avec son backup
maj_timestamp_mysql()  : mixed
Mise à jour des bdd Mysql pour réparer les timestamp auto-update absents
notifications_instituerarticle_dist()  : mixed
plugins_afficher_liste_dist()  : string
Afficher une liste de plugins dans l'interface
affiche_block_initiale()  : mixed
plugins_afficher_nom_plugin_dist()  : mixed
plugins_afficher_plugin_dist()  : mixed
plugin_bouton_config()  : mixed
plugin_checkbox()  : mixed
plugin_nom()  : mixed
plugin_resume()  : mixed
plugin_desintalle()  : mixed
plugin_etat_en_clair()  : string
Traduit un type d'état de plugin
plugin_propre()  : mixed
plugin_typo()  : mixed
affiche_bloc_plugin()  : mixed
formater_credits()  : mixed
plugins_afficher_repertoires_dist()  : mixed
chemin_plug()  : mixed
tree_open_close_dir()  : mixed
plugins_extraire_boutons_dist()  : array<string|int, mixed>
Analyser un arbre xml et extraire les infos concernant les boutons et onglets
plugins_extraire_pipelines_dist()  : mixed
Extraire les infos de pipeline
plugins_get_infos_dist()  : array<string|int, mixed>
Lecture du fichier de configuration d'un plugin
plugins_get_infos_un()  : mixed
plugins_infos_paquet()  : array<string|int, mixed>
lecture d'un texte conforme a la DTD paquet.dtd et conversion en tableau PHP identique a celui fourni par plugin.xml manque la description
paquet_readable_files()  : void
Verifier le presence des fichiers remarquables options/actions/administrations et le logo et peupler la description du plugin en consequence
paquet_debutElement()  : mixed
Appeler le validateur, qui memorise le texte dans le tableau "versions" On memorise en plus dans les index de numero de version de SPIP les attributs de la balise rencontree qu'on complete par des entrees nommees par les sous-balises de "paquet", et initialisees par un tableau vide, rempli a leur rencontre.
paquet_textElement()  : mixed
Appeler l'indenteur pour sa gestion de la profondeur, et memoriser les attributs dans le tableau avec l'oppose de la profondeur comme index, avec '' comme sous-index (les autres sont les attributs)
paquet_finElement()  : mixed
Si on sait deja que le texte n'est pas valide on ne fait rien.
info_paquet_licence()  : mixed
Cas particulier de la balise licence : transformer en lien sur url fournie dans l'attribut lien
info_paquet_chemin()  : mixed
Cas particulier de la balise chemin : stocker un tableau
info_paquet_auteur()  : mixed
Cas particulier de la balise auteur peupler le mail si besoin (en le protegeant, mais est-ce bien la place pour cela ?) et le lien vers le site de l'auteur si fournit
info_paquet_credit()  : mixed
Cas particulier de la balise credit peupler le lien vers le site externe si necessaire
info_paquet_copyright()  : mixed
Cas particulier de la balise copyright : transformer en lien sur url fournie dans l'attribut lien
info_paquet_paquet()  : mixed
Cas particulier de la balise paquet : Remplacer cet index qui ne sert a rien par un index balise=paquet et ajouter la reference a la dtd
info_paquet_traduire()  : mixed
Cas particulier sur la balise traduire : Elle n'a pas de 'nom'
info_paquet_spip()  : mixed
Cas particulier de la balise spip : Remplacer cet index qui ne sert a rien par un index balise=spip et ajouter la reference a la dtd
info_paquet_pipeline()  : mixed
Pipelines : plusieurs declarations possibles pour un meme pipeline
info_paquet_style()  : mixed
Style : plusieurs declarations possibles.
info_paquet_script()  : mixed
Script : plusieurs declarations possibles.
info_paquet_genie()  : mixed
Genie : plusieurs declarations possibles pour les crons
plugins_installer_dist()  : array<string|int, mixed>|bool
Installe ou retire un plugin
spip_plugin_install()  : bool|void
Fonction standard utilisée par defaut pour install/desinstall
liste_plugin_actifs()  : array<string|int, mixed>
Retourne un tableau des plugins activés sur le site
plugins_verifie_conformite_dist()  : mixed
affiche_boutons_admin()  : string
Ajoute les boutons d'administration de la page s'ils n'y sont pas déjà
securiser_redirect_action()  : string
traiter_appels_actions()  : mixed
refuser_traiter_formulaire_ajax()  : mixed
traiter_appels_inclusions_ajax()  : mixed
traiter_formulaires_dynamiques()  : mixed
assembler()  : mixed
calculer_contexte()  : array<string|int, mixed>
Calcul le contexte de la page
calculer_contexte_implicite()  : array<string|int, mixed>
Calculer le contexte implicite, qui n'apparait pas dans le ENV d'un cache mais est utilise pour distinguer deux caches differents
auto_content_type()  : mixed
inclure_page()  : mixed
public_produire_page_dist()  : array<string|int, mixed>
Produire la page et la mettre en cache lorsque c'est necessaire
inserer_balise_dynamique()  : mixed
inclure_balise_dynamique()  : string|void
Inclusion de balise dynamique Attention, un appel explicite a cette fonction suppose certains include
message_page_indisponible()  : mixed
arguments_balise_dyn_depuis_modele()  : mixed
gerer le flag qui permet de reperer qu'une balise dynamique a ete inseree depuis un modele utilisee dans les #FORMULAIRE_xx
creer_contexte_de_modele()  : mixed
styliser_modele()  : string
Router eventuellement un modele vers un autre * le modele doit etre declare dans la liste 'modeles' d'une table objet * il faut avoir un routeur de modele declare pour le meme objet
inclure_modele()  : string|false
Calcule le modele et retourne la mini-page ainsi calculee
spip_securise_valeur_env_modele()  : array<string|int, mixed>|float|int|mixed|string|array<string|int, string>|null
Sanitizer une valeur venant de _request() et passée à un modèle : on laisse passer les null, bool et numeriques (id et pagination), les @+nombre (pagination indirecte) ou sinon le \w + espace et tirets uniquement, pour les tris/sens tri etc mais rien de compliqué suceptible d'être interprété
evaluer_fond()  : mixed
page_base_href()  : mixed
envoyer_entetes()  : mixed
Envoyer les entetes (headers)
interprete_argument_balise()  : string|null
Retourne le code PHP d'un argument de balise s'il est présent
balise_NOM_SITE_SPIP_dist()  : Champ
Compile la balise `#NOM_SITE_SPIP` retournant le nom du site
balise_EMAIL_WEBMASTER_dist()  : Champ
Compile la balise `#EMAIL_WEBMASTER` retournant l'adresse courriel du webmestre
balise_DESCRIPTIF_SITE_SPIP_dist()  : Champ
Compile la balise `#DESCRIPTIF_SITE_SPIP` qui retourne le descriptif du site !
balise_CHARSET_dist()  : Champ
Compile la balise `#CHARSET` qui retourne le nom du jeu de caractères utilisé par le site tel que `utf-8`
balise_LANG_LEFT_dist()  : Champ
Compile la balise `#LANG_LEFT` retournant 'left' si la langue s'écrit de gauche à droite, sinon 'right'
balise_LANG_RIGHT_dist()  : Champ
Compile la balise `#LANG_RIGHT` retournant 'right' si la langue s'écrit de gauche à droite, sinon 'left'
balise_LANG_DIR_dist()  : Champ
Compile la balise `#LANG_DIR` retournant 'ltr' si la langue s'écrit de gauche à droite, sinon 'rtl'
balise_PUCE_dist()  : Champ
Compile la balise `#PUCE` affichant une puce
balise_DATE_dist()  : Champ
Compile la balise `#DATE` qui retourne la date de mise en ligne
balise_DATE_REDAC_dist()  : Champ
Compile la balise `#DATE_REDAC` qui retourne la date de première publication
balise_DATE_MODIF_dist()  : Champ
Compile la balise `#DATE_MODIF` qui retourne la date de dernière modification
balise_DATE_NOUVEAUTES_dist()  : Champ
Compile la balise `#DATE_NOUVEAUTES` indiquant la date de dernier envoi du mail de nouveautés
balise_DOSSIER_SQUELETTE_dist()  : Champ
Compile la balise `#DOSSIER_SQUELETTE` retournant le chemin vers le répertoire du fichier squelette dans lequel elle est appelee (comme __DIR__ en php)
balise_SQUELETTE_dist()  : Champ
Compile la balise `#SQUELETTE` retournant le chemin du squelette courant
balise_SPIP_VERSION_dist()  : Champ
Compile la balise `#SPIP_VERSION` qui affiche la version de SPIP
balise_NOM_SITE_dist()  : Champ
Compile la balise `#NOM_SITE` qui affiche le nom du site.
balise_NOTES_dist()  : Champ
Compile la balise `#NOTE` qui affiche les notes de bas de page
balise_RECHERCHE_dist()  : Champ
Compile la balise `#RECHERCHE` qui retourne le terme de recherche demandé
balise_COMPTEUR_BOUCLE_dist()  : Champ|null
Compile la balise `#COMPTEUR_BOUCLE` qui retourne le numéro de l’itération actuelle de la boucle
balise_TOTAL_BOUCLE_dist()  : Champ
Compile la balise `#TOTAL_BOUCLE` qui retourne le nombre de résultats affichés par la boucle
balise_POINTS_dist()  : Champ
Compile la balise `#POINTS` qui affiche la pertinence des résultats
balise_POPULARITE_ABSOLUE_dist()  : Champ
Compile la balise `#POPULARITE_ABSOLUE` qui affiche la popularité absolue
balise_POPULARITE_SITE_dist()  : Champ
Compile la balise `#POPULARITE_SITE` qui affiche la popularité du site
balise_POPULARITE_MAX_dist()  : Champ
Compile la balise `#POPULARITE_MAX` qui affiche la popularité maximum parmis les popularités des articles
balise_VALEUR_dist()  : Champ
Compile la balise `#VALEUR` retournant le champ `valeur`
balise_EXPOSE_dist()  : Champ
Compile la balise `#EXPOSE` qui met en évidence l'élément sur lequel la page se trouve
calculer_balise_expose()  : Champ
Calcul de la balise expose
balise_INTRODUCTION_dist()  : Champ
Compile la balise `#INTRODUCTION`
balise_LANG_dist()  : Champ
Compile la balise `#LANG` qui affiche la langue de l'objet (ou d'une boucle supérieure), et à defaut la langue courante
balise_LESAUTEURS_dist()  : Champ
Compile la balise `#LESAUTEURS` chargée d'afficher la liste des auteurs d'un objet
balise_RANG_dist()  : Champ
Compile la balise `#RANG` chargée d'afficher le numéro de l'objet
balise_POPULARITE_dist()  : Champ
Compile la balise `#POPULARITE` qui affiche la popularité relative.
balise_PAGINATION_dist()  : Champ
Compile la balise `#PAGINATION` chargée d'afficher une pagination
balise_ANCRE_PAGINATION_dist()  : Champ
Compile la balise `#ANCRE_PAGINATION` chargée d'afficher l'ancre de la pagination
balise_GRAND_TOTAL_dist()  : Champ
Compile la balise `#GRAND_TOTAL` qui retourne le nombre total de résultats d'une boucle
balise_SELF_dist()  : Champ
Compile la balise `#SELF` qui retourne l’URL de la page appelée.
balise_CHEMIN_dist()  : Champ
Compile la balise `#CHEMIN` qui cherche un fichier dans les chemins connus de SPIP et retourne son chemin complet depuis la racine
balise_CHEMIN_IMAGE_dist()  : Champ
Compile la balise `#CHEMIN_IMAGE` qui cherche une image dans le thème de l'espace privé utilisé par SPIP et retourne son chemin complet depuis la racine
balise_ENV_dist()  : Champ
Compile la balise `#ENV` qui permet de récupérer le contexte d'environnement transmis à un squelette.
balise_CONFIG_dist()  : Champ
Compile la balise `#CONFIG` qui retourne une valeur de configuration
balise_CONNECT_dist()  : Champ
Compile la balise `#CONNECT` qui retourne le nom du connecteur de base de données
balise_SESSION_dist()  : Champ
Compile la balise `#SESSION` qui permet d’accéder aux informations liées au visiteur authentifié et de différencier automatiquement le cache en fonction du visiteur.
balise_SESSION_SET_dist()  : Champ
Compile la balise `#SESSION_SET` qui d’insérer dans la session des données supplémentaires
balise_EVAL_dist()  : Champ
Compile la balise `#EVAL` qui évalue un code PHP
balise_CHAMP_SQL_dist()  : Champ
Compile la balise `#CHAMP_SQL` qui renvoie la valeur d'un champ SQL
balise_VAL_dist()  : Champ
Compile la balise `#VAL` qui retourne simplement le premier argument qui lui est transmis
balise_REM_dist()  : Champ
Compile la balise `#REM` servant à commenter du texte
balise_NULL_dist()  : mixed
Une balise #NULL quand on a besoin de passer un argument null sur l'appel d'un filtre ou formulaire (evite un #EVAL{null})
balise_HTTP_HEADER_dist()  : Champ
Compile la balise `#HTTP_HEADER` envoyant des entêtes de retour HTTP
balise_FILTRE_dist()  : Champ|null
Compile la balise `#FILTRE` qui exécute un filtre à l'ensemble du squelette une fois calculé.
balise_CACHE_dist()  : Champ
Compile la balise `#CACHE` definissant la durée de validité du cache du squelette
balise_INSERT_HEAD_dist()  : Champ
Compile la balise `#INSERT_HEAD` permettant d'insérer du contenu dans le `<head>` d'une page HTML
balise_INSERT_HEAD_CSS_dist()  : Champ
Compile la balise `#INSERT_HEAD_CSS` homologue de `#INSERT_HEAD` pour les CSS
balise_INCLUDE_dist()  : Champ
Compile la balise `#INCLUDE` alias de `#INCLURE`
balise_INCLURE_dist()  : Champ
Compile la balise `#INCLURE` qui inclut un résultat de squelette
balise_MODELE_dist()  : Champ
Compile la balise `#MODELE` qui inclut un résultat de squelette de modèle
balise_SET_dist()  : Champ
Compile la balise `#SET` qui affecte une variable locale au squelette
balise_GET_dist()  : Champ
Compile la balise `#GET` qui récupère une variable locale au squelette
balise_DOUBLONS_dist()  : Champ
Compile la balise `#DOUBLONS` qui redonne les doublons enregistrés
balise_PIPELINE_dist()  : Champ
Compile la balise `#PIPELINE` pour permettre d'insérer des sorties de pipeline dans un squelette
balise_EDIT_dist()  : Champ
Compile la balise `#EDIT` qui ne fait rien dans SPIP
balise_TOTAL_UNIQUE_dist()  : Champ
Compile la balise `#TOTAL_UNIQUE` qui récupère le nombre d'éléments différents affichés par le filtre `unique`
balise_ARRAY_dist()  : Champ
Compile la balise `#ARRAY` créant un tableau PHP associatif
balise_LISTE_dist()  : Champ
Compile la balise `#LISTE` qui crée un tableau PHP avec les valeurs, sans préciser les clés
balise_AUTORISER_dist()  : Champ
Compile la balise `#AUTORISER` qui teste une autorisation
balise_PLUGIN_dist()  : Champ
Compile la balise `#PLUGIN` qui permet d’afficher les informations d'un plugin actif
balise_AIDER_dist()  : Champ
Compile la balise `#AIDER` qui permet d’afficher l’icone de l’aide au sein des squelettes.
balise_ACTION_FORMULAIRE()  : Champ
Compile la balise `#ACTION_FORMULAIRE` qui insère le contexte des formulaires charger / vérifier / traiter avec les hidden de l'URL d'action
balise_BOUTON_ACTION_dist()  : Champ
Compile la balise `#BOUTON_ACTION` qui génère un bouton d'action en post, ajaxable
balise_SLOGAN_SITE_SPIP_dist()  : Champ
Compile la balise `#SLOGAN_SITE_SPIP` qui retourne le slogan du site
balise_HTML5_dist()  : Champ
Compile la balise `#HTML5` indiquant si l'espace public peut utiliser du HTML5
balise_TRI_dist()  : Champ
Compile la balise `#TRI` permettant d'afficher un lien de changement d'ordre de tri d'une colonne de la boucle
balise_SAUTER_dist()  : Champ
Compile la balise `#SAUTER{n}` qui permet de sauter en avant n resultats dans une boucle
balise_PUBLIE_dist()  : Champ
Compile la balise `#PUBLIE` qui indique si un objet est publié ou non
balise_PRODUIRE_dist()  : Champ
Compile la balise `#PRODUIRE` qui génère un fichier statique à partir d'un squelette SPIP
balise_LARGEUR_ECRAN_dist()  : Champ
Compile la balise `#LARGEUR_ECRAN` qui définit la largeur d'écran dans l'espace privé
balise_CONST_dist()  : Champ
Compile la balise `#CONST` qui retourne la valeur de la constante passée en argument
boucle_DEFAUT_dist()  : string
Compile une boucle standard, sans condition rajoutée
boucle_BOUCLE_dist()  : string
Compile une boucle récursive
boucle_HIERARCHIE_dist()  : string
Compile une boucle HIERARCHIE
cache_key()  : string
Returns a key cache (id) for this data
ecrire_cache()  : bool
Écrire le cache dans un casier
lire_cache()  : null|mixed
lire le cache depuis un casier
cache_signature()  : string
Signature du cache
gzip_page()  : array<string|int, mixed>
Faut-il compresser ce cache ?
gunzip_page()  : void
Faut-il decompresser ce cache ?
cache_valide()  : int
Gestion des delais d'expiration du cache... $page passee par reference pour accelerer
creer_cache()  : void
Creer le fichier cache
public_cacher_dist()  : string|void
Interface du gestionnaire de cache
argumenter_inclure()  : mixed
calculer_inclure()  : string
Compile une inclusion <INCLURE> ou #INCLURE
instituer_boucle()  : mixed
Gérer les statuts declarés pour cette table
calculer_boucle()  : string
Produit le corps PHP d'une boucle Spip.
calculer_boucle_nonrec()  : string
Compilation d'une boucle (non recursive).
calculer_requete_sql()  : string
Calcule le code PHP d'une boucle contenant les informations qui produiront une requête SQL
memoriser_contexte_compil()  : string
Retourne une chaîne des informations du contexte de compilation
reconstruire_contexte_compil()  : Contexte
Reconstruit un contexte de compilation
calculer_dec()  : array<string|int, mixed>
Calcule le code d'affectation d'une valeur à une commande de boucle
calculer_dump_array()  : string
Calcule l'expression PHP décrivant un tableau complexe (ou une chaîne)
calculer_dump_join()  : mixed
calculer_from()  : string
Calcule l'expression PHP décrivant les informations FROM d'une boucle
calculer_from_type()  : string
Calcule l'expression PHP décrivant des informations de type de jointure pour un alias de table connu dans le FROM
calculer_order()  : mixed
calculer_liste()  : mixed
compile_cas()  : array<string|int, mixed>|false
compile_concatene_parties_codes()  : string
Concatene 2 parties de code, en simplifiant si l'une des 2 est vides
compile_retour()  : mixed|string
production d'une expression conditionnelle ((v=EXP) ? (p . v .s) : a) mais si EXP est de la forme (t ? 'C' : '') on produit (t ? (p . C . s) : a) de meme si EXP est de la forme (t ? '' : 'C')
compile_inclure_doublons()  : mixed
public_compiler_dist()  : mixed
compiler_squelette()  : mixed
requeteur_php_dist()  : mixed
Requeteur pour les boucles (php:nom_iterateur)
requeteur_data_dist()  : mixed
Requeteur pour les boucles (data:type de donnee) note: (DATA) tout court ne passe pas par ici.
public_composer_dist()  : mixed
squelette_traduit()  : mixed
squelette_obsolete()  : mixed
invalideur_session()  : mixed
analyse_resultat_skel()  : mixed
synthetiser_balise_dynamique()  : string
Synthétise une balise dynamique : crée l'appel à l'inclusion en transmettant les arguments calculés et le contexte de compilation.
argumenter_squelette()  : string
Crée le code PHP pour transmettre des arguments (généralement pour une inclusion)
executer_balise_dynamique_dans_un_modele()  : string
Fonction proxy pour retarder le calcul d'un formulaire si on est au depart dans un modele
executer_balise_dynamique()  : string
Calcule et retourne le code PHP retourné par l'exécution d'une balise dynamique.
chercher_balise_generique()  : array<string|int, mixed>|null
Pour une balise "NOM" donné, cherche s'il existe une balise générique qui peut la traiter
lang_select_public()  : null
Selectionner la langue de l'objet dans la boucle
nettoyer_env_doublons()  : mixed
match_self()  : string|bool
Cherche la présence d'un opérateur SELF ou SUBSELECT
remplace_sous_requete()  : array<string|int, mixed>|string
Remplace une condition décrivant une sous requête par son code
trouver_sous_requetes()  : array<string|int, mixed>
Sépare les conditions de boucles simples de celles possédant des sous-requêtes.
calculer_select()  : resource
Calcule une requête et l’exécute
calculer_where_to_string()  : string
Analogue a calculer_mysql_expression et autre (a unifier ?)
calculer_jointnul()  : mixed
reinjecte_joint()  : mixed
remplacer_jointnul()  : mixed
calculer_nom_fonction_squel()  : mixed
critere_racine_dist()  : void
Compile le critère {racine}
critere_exclus_dist()  : void|array<string|int, mixed>
Compile le critère {exclus}
critere_doublons_dist()  : void|array<string|int, mixed>
Compile le critère {doublons} ou {unique}
critere_lang_select_dist()  : void
Compile le critère {lang_select}
critere_debut_dist()  : void
Compile le critère {debut_xxx}
critere_pagination_dist()  : void
Compile le critère `pagination` qui demande à paginer une boucle.
critere_recherche_dist()  : void
Compile le critère `recherche` qui permet de sélectionner des résultats d'une recherche.
critere_traduction_dist()  : void
Compile le critère `traduction`
critere_origine_traduction_dist()  : void
Compile le critère {origine_traduction}
critere_meme_parent_dist()  : void|array<string|int, mixed>
Compile le critère {meme_parent}
critere_branche_dist()  : void
Compile le critère `branche` qui sélectionne dans une boucle les éléments appartenant à une branche d'une rubrique.
critere_logo_dist()  : void
Compile le critère `logo` qui liste les objets qui ont un logo
critere_groupby_dist()  : void|array<string|int, mixed>
Compile le critère `groupby` qui regroupe les éléments selon une colonne.
critere_groupby_supprimer_dist()  : void
Compile le critère `groupby_supprimer` qui supprime toutes les fusions qui le précèdent
critere_fusion_dist()  : void|array<string|int, mixed>
Compile le critère `fusion` qui regroupe les éléments selon une colonne.
critere_fusion_supprimer_dist()  : void
Compile le critère `fusion_supprimer` qui supprime toutes les fusions qui le précèdent
critere_collate_dist()  : void|array<string|int, mixed>
Compile le critère `{collate}` qui permet de spécifier l'interclassement à utiliser pour les tris de la boucle.
critere_collecte_dist()  : void|array<string|int, mixed>
Compile le critère `{collecte}` qui permet de spécifier l'interclassement à utiliser pour les tris de la boucle.
calculer_critere_arg_dynamique()  : mixed
critere_par_dist()  : mixed
Compile le critère `{par}` qui permet d'ordonner les résultats d'une boucle
critere_parinverse()  : mixed
Calculs pour le critère `{par}` ou `{inverse}` pour ordonner les résultats d'une boucle
calculer_critere_par_hasard()  : string
Calculs pour le critère `{par hasard}`
calculer_critere_par_expression_num()  : string|array<string|int, mixed>
Calculs pour le critère `{par num champ}` qui extrait le numéro préfixant un texte
calculer_critere_par_expression_sinum()  : string|array<string|int, mixed>
Calculs pour le critère `{par sinum champ}` qui ordonne les champs avec numéros en premier
calculer_critere_par_expression_multi()  : string|array<string|int, mixed>
Calculs pour le critère `{par multi champ}` qui extrait la langue en cours dans les textes ayant des balises `<multi>` (polyglottes)
calculer_critere_par_champ()  : array<string|int, mixed>|string
Retourne le champ de tri demandé en ajoutant éventuellement les jointures nécessaires à la boucle.
critere_inverse_dist()  : mixed
Compile le critère `{inverse}` qui inverse l'ordre utilisé par le précédent critère `{par}`
critere_par_ordre_liste_dist()  : void|array<string|int, mixed>
{par_ordre_liste champ,#LISTE{...}} pour trier selon une liste en retournant en premier les éléments de la liste
critere_agenda_dist()  : mixed
calculer_critere_parties()  : void
Compile les critères {i,j} et {i/j}
calculer_parties()  : void
Compile certains critères {i,j} et {i/j}
calculer_critere_parties_aux()  : array<string|int, mixed>
Analyse un des éléments des critères {a,b} ou {a/b}
calculer_criteres()  : string|array<string|int, mixed>
Compile les critères d'une boucle
kwote()  : string
Désemberlificote les guillements et échappe (ou fera échapper) le contenu... Madeleine de Proust, revision MIT-1958 sqq, revision CERN-1989 hum, c'est kwoi cette fonxion ? on va dire qu'elle desemberlificote les guillemets.
critere_IN_dist()  : void|array<string|int, mixed>
Compile un critère possédant l'opérateur IN : {xx IN yy}
critere_IN_cas()  : mixed
critere_where_dist()  : void
Compile le critère {where}
critere_having_dist()  : void
Compile le critère {having}
critere_id__dist()  : void
Compile le critère `{id_?}`
lister_champs_id_conditionnel()  : array<string|int, mixed>
Liste les champs qui peuvent servir de selection conditionnelle à une table SQL
critere_tri_dist()  : void
Compile le critère `{tri}` permettant le tri dynamique d'un champ
calculer_critere_DEFAUT_dist()  : void|array<string|int, mixed>
Compile un critère non déclaré explicitement
calculer_critere_DEFAUT_args()  : void
Compile un critère non déclaré explicitement, dont on reçoit une analyse
calculer_critere_infixe()  : array<string|int, mixed>|string
Décrit un critère non déclaré explicitement
calculer_critere_infixe_externe()  : array<string|int, mixed>|string
Décrit un critère non déclaré explicitement, sur un champ externe à la table
primary_doublee()  : array<string|int, string>
Calcule une condition WHERE entre un nom du champ et une valeur
calculer_critere_externe_init()  : string
Champ hors table, ça ne peut être qu'une jointure.
calculer_lien_externe_init()  : string
Générer directement une jointure via une table de lien spip_xxx_liens pour un critère {id_xxx}
trouver_champ()  : bool
Recherche la présence d'un champ dans une valeur de tableau
calculer_critere_infixe_ops()  : array<string|int, mixed>
Détermine l'operateur et les opérandes d'un critère non déclaré
calculer_vieux_in()  : mixed
calculer_critere_infixe_date()  : string|array<string|int, mixed>
Calcule les cas particuliers de critères de date
calculer_param_date()  : string
Calcule l'expression SQL permettant de trouver un nombre de jours écoulés.
critere_DATA_source_dist()  : mixed
Compile le critère {source} d'une boucle DATA
critere_DATA_datacache_dist()  : mixed
Compile le critère {datacache} d'une boucle DATA
critere_php_args_dist()  : mixed
Compile le critère {args} d'une boucle PHP
critere_DATA_liste_dist()  : mixed
Compile le critère {liste} d'une boucle DATA
critere_DATA_enum_dist()  : mixed
Compile le critère {enum} d'une boucle DATA
critere_DATA_datapath_dist()  : mixed
Compile le critère {datapath} d'une boucle DATA
critere_si_dist()  : mixed
Compile le critère {si}
critere_noeud_dist()  : mixed
Compile le critère {noeud}
critere_feuille_dist()  : mixed
Compile le critère {feuille}
public_debusquer_dist()  : null|string|array<string|int, mixed>|true|void
Point d'entrée pour les erreurs de compilation
debusquer_compose_message()  : mixed
debusquer_bandeau()  : mixed
debusquer_contexte()  : string
Affiche proprement dans un tableau le contexte d'environnement
debusquer_loger_erreur()  : mixed
debusquer_navigation()  : mixed
debusquer_requete()  : string|array<string|int, mixed>
Retourne le texte d'un message d'erreur de requête
trouve_boucle_debug()  : mixed
trouve_squelette_inclus()  : mixed
reference_boucle_debug()  : mixed
ancre_texte()  : mixed
debusquer_squelette()  : mixed
emboite_texte()  : mixed
count_occ()  : mixed
debusquer_format_millisecondes()  : mixed
debusquer_navigation_squelettes()  : mixed
debusquer_navigation_boucles()  : mixed
debusquer_source()  : mixed
debusquer_entete()  : mixed
decompiler_boucle()  : mixed
decompiler_include()  : mixed
decompiler_texte()  : mixed
decompiler_polyglotte()  : mixed
decompiler_idiome()  : mixed
decompiler_champ()  : mixed
decompiler_liste()  : mixed
decompiler_criteres()  : mixed
decompiler_()  : mixed
public_decompiler()  : mixed
filtre_introduction_dist()  : string
Calcul d'une introduction
filtre_pagination_dist()  : string
Filtre calculant une pagination, utilisé par la balise `#PAGINATION`
filtre_bornes_pagination_dist()  : array<string|int, int>
Calcule les bornes d'une pagination
filtre_pagination_affiche_texte_lien_page_dist()  : mixed
lister_objets_avec_logos()  : string
Retourne pour une clé primaire d'objet donnée les identifiants ayant un logo
calculer_notes()  : string
Renvoie l'état courant des notes, le purge et en prépare un nouveau
retrouver_rang_lien()  : string
Retrouver le rang du lien entre un objet source et un obet lie utilisable en direct dans un formulaire d'edition des liens, mais #RANG doit faire le travail automatiquement [(#ENV{objet_source}|rang_lien{#ID_AUTEUR,#ENV{objet},#ENV{id_objet},#ENV{_objet_lien}})]
lister_objets_liens()  : mixed
Lister les liens en le memoizant dans une static pour utilisation commune par lister_objets_lies et retrouver_rang_lien dans un formulaire d'edition de liens (evite de multiplier les requetes)
calculer_rang_smart()  : int|string
Calculer la balise #RANG quand ce n'est pas un champ rang : peut etre le num titre, le champ rang_lien ou le rang du lien en edition des liens, a retrouver avec les infos du formulaire
calculer_balise_tri()  : string
Calcul de la balise #TRI
tri_protege_champ()  : string
Proteger les champs passes dans l'url et utiliser dans {tri ...} preserver l'espace pour interpreter ensuite num xxx et multi xxx on permet d'utiliser les noms de champ prefixes articles.titre et les propriete json properties.gis[0].ville
tri_champ_order()  : string
Interpreter les multi xxx et num xxx utilise comme tri pour la clause order 'multi xxx' devient simplement 'multi' qui est calcule dans le select
tri_champ_select()  : string
Interpreter les multi xxx et num xxx utilise comme tri pour la clause select 'multi xxx' devient select "...." as multi les autres cas ne produisent qu'une chaine vide '' en select 'hasard' devient 'rand() AS hasard' dans le select
formate_liste_critere_par_ordre_liste()  : string
Fonction de mise en forme utilisee par le critere {par_ordre_liste..}
filtre_styles_inline_page_login_pass_dist()  : string
generer le style dynamique inline pour la page de login et spip_pass
format_boucle_html()  : mixed
format_inclure_html()  : mixed
format_polyglotte_html()  : mixed
format_idiome_html()  : mixed
format_champ_html()  : mixed
format_critere_html()  : mixed
format_liste_html()  : mixed
format_suite_html()  : mixed
format_texte_html()  : mixed
declarer_interfaces()  : void
Déclarer les interfaces de la base pour le compilateur
decompose_champ_id_objet()  : array<string|int, mixed>|string
Décomposer un champ id_truc en (id_objet,objet,truc)
trouver_champs_decomposes()  : array<string|int, mixed>
Mapping d'un champ d'une jointure en deux champs id_objet,objet si nécessaire
calculer_jointure()  : string
Calculer et construite une jointure entre $depart et $arrivee
fabrique_jointures()  : string
Fabriquer une jointure à l'aide d'une liste descriptive d'étapes
nogroupby_if()  : bool
Condition suffisante pour qu'un Group-By ne soit pas nécéssaire
liste_champs_jointures()  : array<string|int, mixed>
Lister les champs candidats a une jointure, sur une table si un join est fourni dans la description, c'est lui qui l'emporte sauf si cle primaire explicitement demandee par $primary
split_key()  : array<string|int, mixed>
Eclater une cle composee en plusieurs champs
calculer_chaine_jointures()  : array<string|int, mixed>
Constuire la chaine de jointures, de proche en proche
trouver_cles_table()  : array<string|int, mixed>
applatit les cles multiples redondance avec split_key() ? a mutualiser
chercher_champ_dans_tables()  : array<string|int, mixed>|false
Indique si une colonne (ou plusieurs colonnes) est présente dans l'une des tables indiquée.
trouver_champ_exterieur()  : array<string|int, mixed>|string
Cherche une colonne (ou plusieurs colonnes) dans les tables de jointures possibles indiquées.
trouver_jointure_champ()  : string
Cherche a ajouter la possibilite d'interroger un champ sql dans une boucle.
phraser_vieux_modele()  : mixed
phraser_vieux_inclu()  : mixed
normaliser_args_inclumodel()  : void
Accepte la syntaxe historique {arg1=val1}{arg2=val2}... dans les INCLURE au lieu de {arg1=val1,arg2=val2,...}
normaliser_inclure()  : void
Trim les arguments de <INCLURE> et repère l'argument spécial fond=
public_parametrer_dist()  : mixed
presenter_contexte()  : string
Retourne une présentation succincte du contexte pour les logs
tester_redirection()  : array<string|int, mixed>|bool
Si le champ virtuel est non vide c'est une redirection.
public_tester_redirection_dist()  : array<string|int, mixed>|bool
Si le champ virtuel est non vide c'est une redirection.
phraser_inclure()  : array<string|int, mixed>
Parser les <INCLURE> dans le texte
phraser_polyglotte()  : array<string|int, mixed>
Phraser les <multi>...</multi> on passe en dernier de toutes les analyses : a ce stade il ne reste que des morceaux de texte entre balises/boucles, donc une <multi> ne peut pas contenir de balises
phraser_idiomes()  : array<string|int, mixed>
Repérer les balises de traduction (idiomes)
phraser_champs()  : array<string|int, mixed>
Repère et phrase les balises SPIP tel que `#NOM` dans un texte
phraser_champs_etendus()  : array<string|int, mixed>
Phraser les champs etendus
phraser_args()  : array<string|int, mixed>
Analyse les filtres d'un champ etendu et affecte le resultat renvoie la liste des lexemes d'origine augmentee de ceux trouves dans les arguments des filtres (rare) sert aussi aux arguments des includes et aux criteres de boucles Tres chevelu
phraser_arg()  : mixed
phraser_champs_exterieurs()  : array<string|int, mixed>
Reconstruire un tableau de resultat ordonné selon l'ordre d'apparition dans le texte issu de phraser_champs_interieurs() et phraser les inclure sur les morceaux intermédiaires
phraser_champs_interieurs()  : array<string|int, mixed>
Parser un texte pour trouver toutes les balises complètes `[...(#TRUC)...]` en gérant les imbrications possibles
phraser_vieux()  : void
Gerer les derogations de syntaxe historiques Ne concerne plus que #MODELE et <INCLURE> / #INCLURE
phraser_criteres()  : void
Analyse les critères de boucle
phraser_critere_infixe()  : mixed
public_compte_ligne()  : int
Compter le nombre de lignes dans une partie texte
public_trouver_premiere_boucle()  : array<string|int, mixed>|null
Trouver la boucle qui commence en premier dans un texte On repere les boucles via <BOUCLE_xxx( et ensuite on regarde son vrai debut soit <B_xxx> soit <BB_xxx>
public_trouver_fin_boucle()  : array<string|int, mixed>
Trouver la fin de la boucle (balises </B <//B </BB) en faisant attention aux boucles anonymes qui ne peuvent etre imbriquees
phraser_boucle_placeholder()  : mixed
public_generer_boucle_placeholder()  : string
Generer une balise placeholder qui prend la place de la boucle pour continuer le parsing des balises
public_phraser_html_dist()  : array<string|int, mixed>
Analyseur syntaxique des squelettes HTML SPIP On commence par analyser les boucles, les mémoriser, et les remplacer dans le texte par des placeholder qui ne genent pas la suite de l'analyse des balises et autres
quete_virtuel()  : array<string|int, mixed>|bool|null
Retourne l'URL de redirection d'un article virtuel, seulement si il est publié
quete_parent_lang()  : array<string|int, mixed>
Retourne le couple `parent,lang` pour toute table
quete_parent()  : int
Retourne le parent d'une rubrique
quete_rubrique()  : int
Retourne la rubrique d'un article
quete_profondeur()  : int
Retourne la profondeur d'une rubrique
quete_condition_postdates()  : string
Retourne la condition sur la date lorsqu'il y a des post-dates
quete_condition_statut()  : array<string|int, mixed>|string
Calculer la condition pour filtrer les status,
quete_fichier()  : array<string|int, mixed>|bool|null
Retourne le fichier d'un document
quete_document()  : array<string|int, mixed>|bool
Toute les infos sur un document
quete_meta()  : array<string|int, mixed>|bool|null
Récuperer une meta sur un site (spip) distant (en local il y a plus simple)
quete_logo()  : array<string|int, mixed>|string
Retourne le logo d'un objet, éventuellement par héritage
quete_logo_objet()  : bool|array<string|int, mixed>
Chercher le logo d'un contenu précis
quete_logo_file()  : bool|string
Retourne le logo d’un fichier (document spip) sinon la vignette du type du fichier
quete_logo_document()  : string
Trouver l'image logo d'un document
quete_html_logo()  : string
Recuperer le HTML du logo d'apres ses infos
document_spip_externe()  : string|false
Retourne le chemin d’un document lorsque le connect est précisé
vignette_logo_document()  : string
Retourne la vignette explicitement attachee a un document le resutat est un fichier local existant, ou une URL ou vide si pas de vignette
calcul_exposer()  : bool|string
Calcul pour savoir si un objet est expose dans le contexte fournit par $reference
quete_debut_pagination()  : int
Trouver le numero de page d'une pagination indirecte lorsque debut_xxx=@123 on cherche la page qui contient l'item dont la cle primaire vaut 123
is_whereable()  : bool
Retourne true si ce where doit être appliqué, dans le cas des critères avec ? tel que `{id_article ?}`
index_boucle()  : string
Retrouver l'index de la boucle d'une balise
index_boucle_mere()  : string
Retrouve la boucle mère d’une balise, sauf si son nom est explicité
index_pile()  : string
Retourne la position dans la pile d'un champ SQL
index_compose()  : string
Reconstuire la cascade de condition de recherche d'un champ
index_tables_en_pile()  : array<string|int, mixed>
Cherche un champ dans une boucle
index_exception()  : array<string|int, mixed>
Retrouve un alias d'un champ dans une boucle
champ_sql()  : string
Demande le champ '$champ' dans la pile
calculer_champ()  : string
Calcule et retourne le code PHP d'exécution d'une balise SPIP et des ses filtres
calculer_balise()  : Champ
Calcule et retourne le code PHP d'exécution d'une balise SPIP
calculer_balise_DEFAUT_dist()  : string
Calcule et retourne le code PHP d'exécution d'une balise SPIP non déclarée
calculer_balise_dynamique()  : Champ
Calcule le code PHP d'exécution d'une balise SPIP dynamique
collecter_balise_dynamique()  : array<string|int, mixed>
Construction du tableau des arguments d'une balise dynamique.
trouver_nom_serveur_distant()  : string
Récuperer le nom du serveur
balise_distante_interdite()  : bool
Teste si une balise est appliquée sur une base distante
champs_traitements()  : mixed
applique_filtres()  : mixed
compose_filtres()  : mixed
filtre_logique()  : mixed
compose_filtres_args()  : mixed
calculer_argument_precedent()  : mixed
Réserve les champs necessaires à la comparaison avec le contexte donné par la boucle parente.
rindex_pile()  : mixed
zbug_presenter_champ()  : string
Retourne le nom de la balise indiquée pour les messages d’erreurs
sandbox_composer_texte()  : string
Composer le code d'exécution d'un texte
sandbox_composer_filtre()  : string
Composer le code d'exécution d'un filtre
sandbox_composer_inclure_php()  : string
Composer le code d'inclusion PHP
sandbox_composer_interdire_scripts()  : string
Composer le code de sécurisation anti script
sandbox_filtrer_squelette()  : mixed|string
Appliquer des filtres sur un squelette complet
echapper_php_callback()  : string|array<string|int, mixed>
Callback pour échapper du code PHP (les séquences `<?php ... ?>`)
public_styliser_dist()  : array<string|int, mixed>
Déterminer le squelette qui sera utilisé pour rendre la page ou le bloc à partir de `$fond` et du `$contetxe`
styliser_par_objets()  : array<string|int, mixed>
Cherche à échafauder un squelette générique pour un objet éditorial si aucun squelette approprié n'a été trouvé
quete_rubrique_fond()  : array<string|int, mixed>|false
Calcul de la rubrique associée à la requête (sélection de squelette spécifique par id_rubrique & lang)
public_styliser_par_z_dist()  : array<string|int, mixed>
Recherche automatique d'un squelette Page à partir de `contenu/xx`
z_blocs()  : array<string|int, mixed>
Lister les blocs de la page selon le contexte prive/public
z_contenu_disponible()  : mixed
Vérifie qu'un type à un contenu disponible, soit parcequ'il a un fond, soit parce qu'il est echafaudable
z_fond_valide()  : bool
Teste si le fond de squelette trouvé est autorisé
z_trouver_bloc()  : string
Trouve un bloc qui peut être sous le nom `contenu/article.html` ou `contenu/contenu.article.html`
z_echafaudable()  : bool
Tester si un type est echafaudable c'est à dire s'il correspond bien à un objet en base
prive_echafauder_dist()  : string
Generer a la volee un fond a partir d'un contenu connu tous les squelettes d'echafaudage du prive sont en fait explicites dans prive/echafaudage on ne fait qu'un mini squelette d'inclusion pour reecrire les variables d'env
z_sanitize_var_zajax()  : bool|string
Recuperer et verifier var_zajax si demande dans l'url
trace_query_start()  : mixed
trace_query_end()  : mixed
trace_query_chrono()  : mixed
chrono_requete()  : mixed
req_mysql_dist()  : array<string|int, mixed>|bool
Crée la première connexion à un serveur MySQL via MySQLi
_mysql_link()  : object
Retrouver un link d'une connexion MySQL via MySQLi
spip_mysql_set_charset()  : mysqli_result|bool
Définit un charset pour la connexion avec Mysql
spip_mysql_get_charset()  : array<string|int, mixed>
Teste si le charset indiqué est disponible sur le serveur SQL
spip_mysql_query()  : mysqli_result|bool|string|array<string|int, mixed>
Exécute une requête MySQL, munie d'une trace à la demande
spip_mysql_alter()  : array<string|int, mixed>|bool|string
Modifie une structure de table MySQL
spip_mysql_optimize()  : bool
Optimise une table MySQL
spip_mysql_explain()  : array<string|int, mixed>
Retourne une explication de requête (Explain) MySQL
spip_mysql_select()  : array<string|int, mixed>|bool|resource|string
Exécute une requête de sélection avec MySQL
spip_mysql_order()  : string
Prépare une clause order by
calculer_mysql_where()  : string
Prépare une clause WHERE pour MySQL
calculer_mysql_expression()  : string
Calcule un expression pour une requête, en cumulant chaque élément avec l'opérateur de liaison ($join) indiqué
spip_mysql_select_as()  : string
Renvoie des `nom AS alias`
_mysql_traite_query()  : string
Prépare le texte d'une requête avant son exécution
spip_mysql_selectdb()  : bool
Sélectionne une base de données
spip_mysql_listdbs()  : array<string|int, mixed>
Retourne les bases de données accessibles
spip_mysql_create()  : array<string|int, mixed>|null|resource|string
Crée une table SQL
_mysql_remplacements_definitions_table()  : string|array<string|int, mixed>
Adapte pour Mysql la déclaration SQL d'une colonne d'une table
spip_mysql_create_base()  : bool
Crée une base de données MySQL
spip_mysql_create_view()  : bool|string
Crée une vue SQL nommée `$nom`
spip_mysql_drop_table()  : bool|string
Supprime une table SQL
spip_mysql_drop_view()  : bool|string
Supprime une vue SQL
spip_mysql_showbase()  : mysqli_result|bool|string
Retourne une ressource de la liste des tables de la base de données
spip_mysql_repair()  : bool|string|array<string|int, mixed>
Répare une table SQL
spip_mysql_table_exists()  : bool|string
Indique si une table existe dans la base de données
spip_mysql_showtable()  : array<string|int, mixed>|string
Obtient la description d'une table ou vue MySQL
spip_mysql_fetch()  : array<string|int, mixed>|null|false
Rècupère une ligne de résultat
spip_mysql_seek()  : bool
Place le pointeur de résultat sur la position indiquée
spip_mysql_countsel()  : int|string
Retourne le nombre de lignes d'une sélection
spip_mysql_error()  : string
Retourne la dernière erreur generée
spip_mysql_errno()  : int
Retourne le numero de la dernière erreur SQL
spip_mysql_count()  : int
Retourne le nombre de lignes d’une ressource de sélection obtenue avec `sql_select()`
spip_mysql_free()  : bool
Libère une ressource de résultat
spip_mysql_insert()  : bool|string|int|array<string|int, mixed>
Insère une ligne dans une table
spip_mysql_insertq()  : bool|string|int|array<string|int, mixed>
Insère une ligne dans une table, en protégeant chaque valeur
spip_mysql_insertq_multi()  : int|bool|string
Insère plusieurs lignes d'un coup dans une table
spip_mysql_update()  : array<string|int, mixed>|bool|string
Met à jour des enregistrements d'une table SQL
spip_mysql_updateq()  : array<string|int, mixed>|bool|string
Met à jour des enregistrements d'une table SQL et protège chaque valeur
spip_mysql_delete()  : bool|string
Supprime des enregistrements d'une table
spip_mysql_replace()  : bool|string
Insère où met à jour une entrée d’une table SQL
spip_mysql_replace_multi()  : bool|string
Insère où met à jour des entrées d’une table SQL
spip_mysql_multi()  : string
Retourne l'instruction SQL pour obtenir le texte d'un champ contenant une balise `<multi>` dans la langue indiquée
spip_mysql_hex()  : string
Prépare une chaîne hexadécimale
spip_mysql_quote()  : string|number
Échapper une valeur selon son type ou au mieux comme le fait `_q()` mais pour MySQL avec ses spécificités
spip_mysql_date_proche()  : string
Tester si une date est proche de la valeur d'un champ
spip_mysql_in()  : string
Retourne une expression IN pour le gestionnaire de base de données
spip_mysql_cite()  : string|number
Renvoie les bons echappements (mais pas sur les fonctions comme NOW())
spip_versions_mysql()  : bool
Teste si on a les fonctions MySQLi (pour l'install)
test_rappel_nom_base_mysql()  : string
Tester si mysql ne veut pas du nom de la base dans les requêtes
test_sql_mode_mysql()  : string
Teste si on peut changer les modes de MySQL
req_pg_dist()  : mixed
spip_pg_trace_query()  : mixed
spip_pg_query()  : mixed
spip_pg_query_simple()  : mixed
spip_pg_ajouter_champs_timestamp()  : mixed
spip_pg_alter()  : mixed
spip_pg_alter_change()  : mixed
spip_pg_alter_add()  : mixed
spip_pg_alter_drop()  : mixed
spip_pg_alter_modify()  : mixed
spip_pg_alter_rename()  : mixed
spip_pg_create_index()  : bool
Fonction de creation d'un INDEX
spip_pg_explain()  : mixed
spip_pg_selectdb()  : bool|string
Sélectionne une base de données
spip_pg_listdbs()  : mixed
spip_pg_select()  : mixed
spip_pg_from()  : mixed
spip_pg_orderby()  : mixed
spip_pg_groupby()  : mixed
spip_pg_frommysql()  : mixed
spip_pg_fromfield()  : mixed
calculer_pg_where()  : mixed
calculer_pg_expression()  : mixed
spip_pg_select_as()  : mixed
spip_pg_fetch()  : mixed
spip_pg_seek()  : mixed
spip_pg_countsel()  : mixed
spip_pg_count()  : mixed
spip_pg_free()  : mixed
spip_pg_delete()  : mixed
spip_pg_insert()  : mixed
spip_pg_insertq()  : mixed
spip_pg_insertq_multi()  : mixed
spip_pg_update()  : mixed
spip_pg_updateq()  : mixed
spip_pg_replace()  : mixed
spip_pg_replace_multi()  : mixed
spip_pg_sequence()  : mixed
spip_pg_cite()  : mixed
spip_pg_hex()  : mixed
spip_pg_quote()  : mixed
spip_pg_date_proche()  : mixed
spip_pg_in()  : mixed
spip_pg_error()  : mixed
spip_pg_errno()  : mixed
spip_pg_drop_table()  : mixed
spip_pg_drop_view()  : mixed
spip_pg_showbase()  : ressource
Retourne une ressource de la liste des tables de la base de données
spip_pg_showtable()  : mixed
spip_pg_create()  : mixed
spip_pg_create_base()  : mixed
spip_pg_create_view()  : mixed
spip_pg_set_connect_charset()  : mixed
spip_pg_optimize()  : bool|string
Optimise une table SQL
spip_pg_multi()  : mixed
mysql2pg_type()  : mixed
spip_versions_pg()  : mixed
req_sqlite3_dist()  : mixed
spip_sqlite3_constantes()  : mixed
spip_versions_sqlite3()  : mixed
_sqlite_init_functions()  : false|void
Déclarer à SQLite des fonctions spécifiques utilisables dans les requêtes SQL
_sqlite_add_function()  : mixed
Déclare une fonction à SQLite
_sqlite_func_ceil()  : int
Mapping de `CEIL` pour SQLite
_sqlite_func_concat()  : string
Mapping de `CONCAT` pour SQLite
_sqlite_func_dayofmonth()  : string
Mapping de `DAYOFMONTH` pour SQLite
_sqlite_func_find_in_set()  : int
Mapping de `FIND_IN_SET` pour SQLite
_sqlite_func_floor()  : int
Mapping de `FLOOR` pour SQLite
_sqlite_func_if()  : mixed
Mapping de `IF` pour SQLite
_sqlite_func_insert()  : string
Mapping de `INSERT` pour SQLite
_sqlite_func_instr()  : int
Mapping de `INSTR` pour SQLite
_sqlite_func_least()  : int
Mapping de `LEAST` pour SQLite
_sqlite_func_greatest()  : int
Mapping de `GREATEST` pour SQLite
_sqlite_func_left()  : string
Mapping de `LEFT` pour SQLite
_sqlite_func_now()  : string
Mappnig de `NOW` pour SQLite
_sqlite_func_month()  : string
Mapping de `MONTH` pour SQLite
_sqlite_func_preg_replace()  : string
Mapping de `PREG_REPLACE` pour SQLite
_sqlite_func_extraire_multi()  : string
Mapping pour `EXTRAIRE_MULTI` de SPIP pour SQLite
_sqlite_func_rand()  : float
Mapping de `RAND` pour SQLite
_sqlite_func_right()  : string
Mapping de `RIGHT` pour SQLite
_sqlite_func_regexp_match()  : bool
Mapping de `REGEXP` pour SQLite
_sqlite_func_date_format()  : string
Mapping de `DATE_FORMAT` pour SQLite
_sqlite_func_strftime_format_converter()  : void
Convertit un format demandé pour DATE_FORMAT() de mysql en un format adapté à strftime() de php.
_sqlite_func_to_days()  : int
Mapping de `DAYS` pour SQLite
_sqlite_func_substring()  : string
Mapping de `SUBSTRING` pour SQLite
_sqlite_timestampdiff()  : int
Mapping de `TIMESTAMPDIFF` pour SQLite
_sqlite_func_unix_timestamp()  : int
Mapping de `UNIX_TIMESTAMP` pour SQLite
_sqlite_func_year()  : string
Mapping de `YEAR` pour SQLite
_sqlite_func_date()  : string
Version optimisée et memoizée de date() utilisé pour certains mapping SQLite
_sqlite_func_vide()  : void
Mapping de `VIDE()` de SPIP pour SQLite
req_sqlite_dist()  : array<string|int, mixed>|bool
Connecteur à une base SQLite
spip_sqlite_open()  : PDO
Ouvre une base SQLite avec PDO en spécifiant une classe spécifique pour les résultats
spip_sqlite_query()  : PDOStatement|bool|string|array<string|int, mixed>
Fonction de requete generale, munie d'une trace a la demande
spip_sqlite_alter()  : bool
Modifie une structure de table SQLite
spip_sqlite_create()  : array<string|int, mixed>|null|resource|string
Crée une table SQL
spip_sqlite_create_base()  : bool
Crée une base de données SQLite
spip_sqlite_create_view()  : bool|string
Crée une vue SQL nommée `$nom`
spip_sqlite_create_index()  : bool|string
Fonction de création d'un INDEX
spip_sqlite_count()  : int
Retourne le nombre de lignes d’une ressource de sélection obtenue avec `sql_select()`
spip_sqlite_countsel()  : int|bool|string
Retourne le nombre de lignes d'une sélection
spip_sqlite_delete()  : bool|string
Supprime des enregistrements d'une table
spip_sqlite_drop_table()  : bool|string
Supprime une table SQL
spip_sqlite_drop_view()  : bool|string
Supprime une vue SQL
spip_sqlite_drop_index()  : bool
Fonction de suppression d'un INDEX
spip_sqlite_error()  : string
Retourne la dernière erreur generée
_sqlite_last_error_from_link()  : mixed
spip_sqlite_errno()  : int|string
Retourne le numero de la dernière erreur SQL
spip_sqlite_explain()  : array<string|int, mixed>|string|bool
Retourne une explication de requête (Explain) SQLite
spip_sqlite_fetch()  : array<string|int, mixed>|null|false
Rècupère une ligne de résultat
spip_sqlite_seek()  : bool
Place le pointeur de résultat sur la position indiquée
spip_sqlite_free()  : bool
Libère une ressource de résultat
spip_sqlite_get_charset()  : void
Teste si le charset indiqué est disponible sur le serveur SQL (aucune action ici)
spip_sqlite_hex()  : string
Prépare une chaîne hexadécimale
spip_sqlite_in()  : string
Retourne une expression IN pour le gestionnaire de base de données
spip_sqlite_insert()  : bool|string|int|array<string|int, mixed>
Insère une ligne dans une table
spip_sqlite_insertq()  : bool|string|int|array<string|int, mixed>
Insère une ligne dans une table, en protégeant chaque valeur
spip_sqlite_insertq_multi()  : bool|string
Insère plusieurs lignes d'un coup dans une table
spip_sqlite_preferer_transaction()  : bool
Retourne si le moteur SQL préfère utiliser des transactions.
spip_sqlite_demarrer_transaction()  : bool|string
Démarre une transaction
spip_sqlite_terminer_transaction()  : bool|string
Clôture une transaction
spip_sqlite_listdbs()  : array<string|int, mixed>
Liste les bases de données disponibles
spip_sqlite_multi()  : string
Retourne l'instruction SQL pour obtenir le texte d'un champ contenant une balise `<multi>` dans la langue indiquée
spip_sqlite_optimize()  : bool|string
Optimise une table SQL
spip_sqlite_quote()  : string|number
Échapper une valeur selon son type mais pour SQLite avec ses spécificités
spip_sqlite_date_proche()  : string
Tester si une date est proche de la valeur d'un champ
spip_sqlite_repair()  : array<string|int, string>
Répare une table SQL
spip_sqlite_replace()  : bool|string
Insère où met à jour une entrée d’une table SQL
spip_sqlite_replace_multi()  : bool|string
Insère où met à jour des entrées d’une table SQL
spip_sqlite_select()  : array<string|int, mixed>|bool|resource|string
Exécute une requête de sélection avec SQLite
spip_sqlite_selectdb()  : bool|string
Sélectionne un fichier de base de données
spip_sqlite_set_charset()  : void
Définit un charset pour la connexion avec SQLite (aucune action ici)
spip_sqlite_showbase()  : PDOStatement|bool|string|array<string|int, mixed>
Retourne une ressource de la liste des tables de la base de données
spip_sqlite_table_exists()  : bool|string
Indique si une table existe dans la base de données
spip_sqlite_showtable()  : array<string|int, mixed>|string
Obtient la description d'une table ou vue SQLite
spip_sqlite_update()  : array<string|int, mixed>|bool|string
Met à jour des enregistrements d'une table SQL
spip_sqlite_updateq()  : array<string|int, mixed>|bool|string
Met à jour des enregistrements d'une table SQL et protège chaque valeur
_sqlite_init()  : void
Initialise la première connexion à un serveur SQLite
_sqlite_is_version()  : bool|int
Teste la version sqlite du link en cours
_sqlite_link()  : PDO|null
Retrouver un link d'une connexion SQLite
_sqlite_calculer_cite()  : string|number
Renvoie les bons echappements (mais pas sur les fonctions comme NOW())
_sqlite_calculer_expression()  : string
Calcule un expression pour une requête, en cumulant chaque élément avec l'opérateur de liaison ($join) indiqué
_sqlite_calculer_order()  : string
Prépare une clause order by
_sqlite_calculer_select_as()  : string
Renvoie des `nom AS alias`
_sqlite_calculer_where()  : string
Prépare une clause WHERE pour SQLite
_sqlite_charger_version()  : array<string|int, mixed>|bool
Charger les modules SQLite
_sqlite_modifier_table()  : bool
Gestion des requêtes ALTER non reconnues de SQLite
_sqlite_ref_fonctions()  : array<string|int, mixed>
Nom des fonctions
_sqlite_remplacements_definitions_table()  : mixed
Adapte les déclarations des champs pour SQLite
_sqlite_collate_ci()  : string
Definir la collation d'un champ en fonction de si une collation est deja explicite et du par defaut que l'on veut NOCASE
_sqlite_requete_create()  : bool|string
Creer la requete pour la creation d'une table retourne la requete pour utilisation par sql_create() et sql_alter()
_sqlite_ajouter_champs_timestamp()  : mixed
Retrouver les champs 'timestamp' pour les ajouter aux 'insert' ou 'replace' afin de simuler le fonctionnement de mysql
spip_versions_sqlite()  : array<string|int, mixed>|bool
Renvoyer la liste des versions sqlite disponibles sur le serveur
typographie_en_dist()  : mixed
typographie_fr_dist()  : mixed
urls_page_generer_url_objet_dist()  : string
Generer l'url d'un objet SPIP
urls_page_decoder_url_dist()  : array<string|int, mixed>
Decoder une url page retrouve le fond et les parametres d'une URL abregee le contexte deja existant est fourni dans args sous forme de tableau ou query string
charger_dtd()  : mixed
compilerRegle()  : mixed
analyser_dtd()  : mixed
analyser_dtd_comment()  : mixed
analyser_dtd_pi()  : mixed
analyser_dtd_lexeme()  : mixed
analyser_dtd_data()  : mixed
analyser_dtd_notation()  : mixed
analyser_dtd_entity()  : mixed
analyser_dtd_element()  : mixed
analyser_dtd_attlist()  : mixed
expanserEntite()  : string|array<string|int, mixed>
Remplace dans la chaîne `$val` les sous-chaines de forme `%NOM;` par leur definition dans le tableau `$macros`
xml_indenter_dist()  : mixed
xml_entites_html()  : string
Encoder les entites
xml_debutElement()  : mixed
xml_finElement()  : mixed
xml_textElement()  : mixed
xml_piElement()  : mixed
xml_defaultElement()  : mixed
xml_parsestring()  : mixed
coordonnees_erreur()  : mixed
xml_sax_dist()  : mixed
sax_bug()  : mixed
analyser_doctype()  : mixed
xml_valider_dist()  : mixed
Retourne une structure ValidateurXML, dont le champ "err" est un tableau ayant comme entrees des sous-tableaux [message, ligne, colonne]
deplacement_restreint()  : bool
Tester le deplacement restreint ou non de l'objet en fonction de son statut
formulaires_configurer_annonces_charger_dist()  : mixed
formulaires_configurer_annonces_verifier_dist()  : mixed
formulaires_configurer_annonces_traiter_dist()  : mixed
formulaires_configurer_articles_charger_dist()  : mixed
formulaires_configurer_articles_traiter_dist()  : mixed
formulaires_configurer_avertisseur_charger_dist()  : mixed
formulaires_configurer_avertisseur_traiter_dist()  : mixed
formulaires_configurer_ecran_connexion_data()  : array<string|int, mixed>
formulaires_configurer_ecran_connexion_charger_dist()  : mixed
formulaires_configurer_ecran_connexion_verifier_dist()  : mixed
formulaires_configurer_ecran_connexion_traiter_dist()  : mixed
formulaires_configurer_flux_charger_dist()  : mixed
formulaires_configurer_flux_traiter_dist()  : mixed
formulaires_configurer_identite_charger_dist()  : mixed
formulaires_configurer_identite_verifier_dist()  : mixed
formulaires_configurer_identite_traiter_dist()  : mixed
formulaires_configurer_langage_charger_dist()  : mixed
formulaires_configurer_langage_traiter_dist()  : mixed
afficher_langues_choix()  : mixed
formulaires_configurer_langue_charger_dist()  : mixed
formulaires_configurer_langue_traiter_dist()  : mixed
formulaires_configurer_logos_charger_dist()  : mixed
formulaires_configurer_logos_traiter_dist()  : mixed
formulaires_configurer_multilinguisme_charger_dist()  : mixed
formulaires_configurer_multilinguisme_traiter_dist()  : mixed
table_supporte_lang()  : string
Tester si une table supporte les langues (champ lang)
table_supporte_trad()  : string
Tester si une table supporte les traductions (champ id_trad)
saisie_langues_utiles()  : mixed
formulaires_configurer_preferences_charger_dist()  : array<string|int, mixed>
Chargement du formulaire de préférences d'un auteur dans l'espace privé
formulaires_configurer_preferences_traiter_dist()  : array<string|int, mixed>
Traitements du formulaire de préférences d'un auteur dans l'espace privé
formulaires_configurer_preferences_menus_charger_dist()  : array<string|int, mixed>
Chargement du formulaire de préférence des menus d'un auteur dans l'espace privé
formulaires_configurer_preferences_menus_traiter_dist()  : array<string|int, mixed>
Traitements du formulaire de préférence des menus d'un auteur dans l'espace privé
formulaires_configurer_previsualiseur_charger_dist()  : mixed
formulaires_configurer_previsualiseur_traiter_dist()  : mixed
formulaires_configurer_redacteurs_charger_dist()  : mixed
formulaires_configurer_redacteurs_traiter_dist()  : mixed
formulaires_configurer_reducteur_charger_dist()  : array<string|int, mixed>
Chargement du formulaire de configuration de la librairie graphique
formulaires_configurer_reducteur_traiter_dist()  : array<string|int, mixed>
Traitements du formulaire de configuration de la librairie graphique
url_vignette_choix()  : string
Indique si une librairie graphique peut être utilisée et retourne alors une URL pour tester la librairie
formulaires_configurer_relayeur_charger_dist()  : mixed
formulaires_configurer_relayeur_verifier_dist()  : mixed
formulaires_configurer_relayeur_traiter_dist()  : mixed
relayeur_saisie_ou_config()  : mixed
glue_url()  : mixed
no_password_proxy_url()  : mixed
formulaires_configurer_rubriques_charger_dist()  : mixed
formulaires_configurer_rubriques_traiter_dist()  : mixed
formulaires_configurer_transcodeur_charger_dist()  : mixed
formulaires_configurer_transcodeur_verifier_dist()  : mixed
formulaires_configurer_transcodeur_traiter_dist()  : mixed
formulaires_configurer_visiteurs_charger_dist()  : mixed
formulaires_configurer_visiteurs_traiter_dist()  : mixed
formulaires_dater_charger_dist()  : array<string|int, mixed>|false
Chargement du formulaire d'édition d'une date
dater_formater_saisie_jour()  : string
Formate la date
formulaires_dater_identifier_dist()  : string
Identifier le formulaire en faisant abstraction des paramètres qui ne représentent pas l'objet edité
formulaires_dater_verifier_dist()  : array<string|int, mixed>
Vérifications avant traitements du formulaire d'édition d'une date
formulaires_dater_traiter_dist()  : array<string|int, mixed>
Traitement du formulaire d'édition d'une date
dater_recuperer_date_saisie()  : array<string|int, mixed>|string
Récupérer annee, mois, jour sur la date saisie
dater_recuperer_heure_saisie()  : array<string|int, mixed>
Récupérer heures,minutes sur l'heure saisie
formulaires_declarer_bases_charger_dist()  : mixed
liste_serveurs()  : mixed
liste_bases()  : mixed
formulaires_declarer_bases_verifier_1_dist()  : mixed
formulaires_declarer_bases_verifier_2_dist()  : mixed
formulaires_declarer_bases_verifier_3_dist()  : mixed
formulaires_declarer_bases_traiter_dist()  : mixed
formulaires_editer_article_charger_dist()  : array<string|int, mixed>
Chargement du formulaire d'édition d'article
formulaires_editer_article_identifier_dist()  : string
Identifier le formulaire en faisant abstraction des paramètres qui ne représentent pas l'objet édité
articles_edit_config()  : array<string|int, mixed>
Choix par défaut des options de présentation
formulaires_editer_article_verifier_dist()  : array<string|int, mixed>
Vérifications du formulaire d'édition d'article
formulaires_editer_article_traiter_dist()  : array<string|int, mixed>
Traitements du formulaire d'édition d'article
formulaires_editer_auteur_charger_dist()  : array<string|int, mixed>
Chargement du formulaire d'édition d'un auteur
formulaires_editer_auteur_identifier_dist()  : string
Identifier le formulaire en faisant abstraction des paramètres qui ne représentent pas l'objet édité
auteurs_edit_config()  : array<string|int, mixed>
Choix par défaut des options de présentation
formulaires_editer_auteur_verifier_dist()  : array<string|int, mixed>
Vérifications du formulaire d'édition d'un auteur
formulaires_editer_auteur_traiter_dist()  : array<string|int, mixed>
Traitements du formulaire d'édition d'un auteur
auteur_reset_password()  : mixed
auteur_regenerer_identifiants()  : string
Renvoyer des identifiants
determine_source_lien_objet()  : array<string|int, mixed>
Retrouve la source et l'objet de la liaison
formulaires_editer_liens_charger_dist()  : array<string|int, mixed>|false
Chargement du formulaire d'édition de liens
formulaires_editer_liens_traiter_dist()  : array<string|int, mixed>
Traiter le post des informations d'édition de liens
lien_gerer__oups()  : array<string|int, mixed>|string|null
Fonction de regroupement pour gerer le _oups de façon sécurisée sans passer par une globale ni par une _request
lien_gerer__oups_collecter_args()  : string
Collecter les args du form utilisant la fonction lien_gerer__oups()
formulaires_editer_logo_charger_dist()  : array<string|int, mixed>|false
Chargement du formulaire d'édition de logo
formulaires_editer_logo_identifier_dist()  : string
Identifier le formulaire en faisant abstraction des parametres qui ne representent pas l'objet edite
formulaires_editer_logo_verifier_dist()  : array<string|int, mixed>
Verification avant traitement du formulaire d'édition de logo
formulaires_editer_logo_traiter_dist()  : array<string|int, mixed>
Traitement de l'upload d'un logo
formulaire_editer_logo_get_sources()  : array<string|int, mixed>
Extraction des sources des fichiers uploadés correspondant aux 2 logos (normal + survol) si leur upload s'est bien passé
formulaires_editer_rubrique_charger_dist()  : array<string|int, mixed>
Chargement du formulaire d'édition d'une rubrique
rubriques_edit_config()  : array<string|int, mixed>
Choix par défaut des options de présentation
formulaires_editer_rubrique_identifier_dist()  : string
Identifier le formulaire en faisant abstraction des paramètres qui ne représentent pas l'objet édité
formulaires_editer_rubrique_verifier_dist()  : array<string|int, mixed>
Vérifications du formulaire d'édition d'une rubrique
formulaires_editer_rubrique_traiter_dist()  : array<string|int, mixed>
Traitements du formulaire d'édition d'une rubrique
choisir_rubriques_admin_restreint()  : string
Afficher le formulaire de choix de rubrique restreinte pour insertion dans le formulaire
formulaires_inscription_charger_dist()  : array<string|int, mixed>|false
#FORMULAIRE_INSCRIPTION #FORMULAIRE_INSCRIPTION{6forum} #FORMULAIRE_INSCRIPTION{1comite,#ARRAY{id,#ENV{id_rubrique}}}
formulaires_inscription_verifier_dist()  : array<string|int, mixed>
Si inscriptions pas autorisees, retourner une chaine d'avertissement
formulaires_inscription_traiter_dist()  : array<string|int, mixed>
Si inscriptions pas autorisees, retourner une chaine d'avertissement
lister_statuts_proposes()  : array<string|int, mixed>
Filtres les statuts utilisable selon les droits de publication
formulaires_instituer_objet_charger_dist()  : array<string|int, mixed>|bool
Chargement du formulaire instituer objet
formulaires_instituer_objet_verifier_dist()  : array<string|int, mixed>
Vérifications du formulaire instituer objet
formulaires_instituer_objet_traiter_dist()  : array<string|int, mixed>
Traitements du formulaire instituer objet
is_url_prive()  : bool
Teste si une URL est une URL de l'espace privé (administration de SPIP) ou de l'espace public
formulaires_login_charger_dist()  : array<string|int, mixed>
Chargement du formulaire de login
login_auth_http()  : string
Identification via HTTP (si pas de cookie)
formulaires_login_verifier_dist()  : array<string|int, mixed>
Vérifications du formulaire de login
login_autoriser()  : array<string|int, mixed>
Teste l'autorisation d'accéder à l'espace privé une fois une connexion réussie, si la cible est une URL privée.
formulaires_login_traiter_dist()  : array<string|int, mixed>
Traitements du formulaire de login
retrouve_auteur()  : mixed
formulaires_mot_de_passe_charger_dist()  : array<string|int, mixed>
Chargement de l'auteur qui peut changer son mot de passe.
formulaires_mot_de_passe_verifier_dist()  : mixed
Verification de la saisie du mot de passe.
formulaires_mot_de_passe_traiter_dist()  : mixed
Modification du mot de passe d'un auteur.
formulaires_oubli_charger_dist()  : mixed
message_oubli()  : mixed
formulaires_oubli_traiter_dist()  : mixed
test_oubli_dist()  : mixed
formulaires_oubli_verifier_dist()  : mixed
formulaires_oubli_mail()  : mixed
formulaires_recherche_ecrire_charger_dist()  : array<string|int, mixed>
Chargement des valeurs par defaut des champs du formulaire de recherche de l'espace privé
formulaires_rediriger_article_charger_dist()  : mixed
formulaires_rediriger_article_verifier_dist()  : mixed
formulaires_rediriger_article_traiter_dist()  : mixed
formulaires_traduire_charger_dist()  : array<string|int, mixed>|bool
Charger les données de #FORMULAIRE_TRADUIRE
formulaires_traduire_verifier_dist()  : array<string|int, mixed>
Vérifier les saisies des valeurs du #FORMULAIRE_TRADUIRE
formulaires_traduire_traiter_dist()  : array<string|int, mixed>
Enregistrer en base les saisies du #FORMULAIRE_TRADUIRE
informer_auteur()  : string
Retrouve pour le formulaire de login les informations d'un login qui permettront de crypter le mot de passe saisi
defaut_tri_defined()  : mixed
defaut_tri_par()  : mixed
critere_compteur_articles_filtres_dist()  : mixed
Compter les articles publies lies a un auteur, dans une boucle auteurs pour la vue prive/liste/auteurs.html
balise_COMPTEUR_ARTICLES_dist()  : Champ
Compter les articles publiés liés à un auteur, dans une boucle auteurs pour la vue `prive/liste/auteurs.html`
afficher_initiale()  : string
Afficher l'initiale pour la navigation par lettres
auteur_lien_messagerie()  : string
Calculer l'url vers la messagerie : - si l'auteur accepte les messages internes et que la messagerie est activee et qu'il est en ligne, on propose le lien vers la messagerie interne - sinon on propose un lien vers un email si possible - sinon rien
lister_traductions()  : mixed
job_queue_block_and_watch()  : mixed
job_queue_display_call()  : string
Prévisu d'un appel à une fonction avec ses arguments
inclure_liste_recherche_par_id()  : mixed
spip_generer_variables_css_typo()  : Collection
Génère les variables CSS relatif à la typo et langue pour l'espace privé
spip_generer_variables_css_couleurs_theme()  : Collection
Génère les variables CSS d'un thème de couleur pour l'espace privé
spip_generer_variables_css_couleurs()  : Collection
Génère les variables CSS de couleurs, dont celles dépendantes des couleurs du thème actif.
trier_rss()  : mixed

Constants

_ACTIVER_PUCE_RAPIDE

Activer le changement rapide de statut sur les listes d'objets ?

public bool _ACTIVER_PUCE_RAPIDE = \true

Peut ralentir un site sur des listes très longues.

_AJAX

public mixed _AJAX = (isset($_SERVER['HTTP_X_REQUESTED_WITH']) || !empty($_REQUEST['var_ajax_redir']) || !empty($_REQUEST['var_ajaxcharset']) || !empty($_REQUEST['var_ajax'])) && empty($_REQUEST['var_noajax'])

_AUTEURS_DELAI_REJET_NOUVEAU

public mixed _AUTEURS_DELAI_REJET_NOUVEAU = 45 * 24 * 3600

_CACHE_CONTEXTES_AJAX_SUR_LONGUEUR

Basculer les contextes ajax en fichier si la longueur d’url est trop grande

public int _CACHE_CONTEXTES_AJAX_SUR_LONGUEUR = 2000

Nombre de caractères

_CACHE_PLUGINS_FCT

public mixed _CACHE_PLUGINS_FCT = _DIR_CACHE . 'charger_plugins_fonctions.php'

_CACHE_PLUGINS_OPT

public mixed _CACHE_PLUGINS_OPT = _DIR_CACHE . 'charger_plugins_options.php'

_CACHE_PLUGINS_PATH

public mixed _CACHE_PLUGINS_PATH = _DIR_CACHE . 'charger_plugins_chemins.php'

_CACHE_RUBRIQUES

Fichier cache pour le navigateur de rubrique du bandeau

public mixed _CACHE_RUBRIQUES = _DIR_TMP . 'menu-rubriques-cache.txt'

_CACHE_RUBRIQUES_MAX

Nombre maxi de rubriques enfants affichées pour chaque rubrique du navigateur de rubrique du bandeau

public mixed _CACHE_RUBRIQUES_MAX = 500

_CODE_QUOTE

Une Regexp repérant une chaine produite par le compilateur, souvent utilisée pour faire de la concaténation lors de la compilation plutôt qu'à l'exécution, i.e. pour remplacer 'x'.'y' par 'xy'

public mixed _CODE_QUOTE = ",^(\n//[^\n]*\n)? *'(.*)' *\$,"

_CONTEXTE_IGNORE_LISTE_VARIABLES

public array<string|int, string> _CONTEXTE_IGNORE_LISTE_VARIABLES = ['^var_', '^PHPSESSID$', '^fbclid$', '^utm_']

Liste (regexp) de noms de variables à ignorer d’une URI

_DATA_SOURCE_MAX_SIZE

public mixed _DATA_SOURCE_MAX_SIZE = 2 * 1048576

_debut_urls_page

public mixed _debut_urls_page = \get_spip_script('./') . '?'

_DEFAULT_CHARSET

Le charset par défaut lors de l'installation

public mixed _DEFAULT_CHARSET = 'utf-8'

_DELAI_RECUPERER_URL_CACHE

public mixed _DELAI_RECUPERER_URL_CACHE = 3600

_DIR_IMG_PACK

le chemin http (relatif) vers les images standard

public mixed _DIR_IMG_PACK = \_DIR_RACINE . 'prive/' . \_NOM_IMG_PACK

_DIR_JAVASCRIPT

le nom du repertoire des bibliotheques JavaScript du prive

public mixed _DIR_JAVASCRIPT = \_DIR_RACINE . 'prive/' . \_JAVASCRIPT

_DIR_PLUGINS_AUTO

public mixed _DIR_PLUGINS_AUTO = \_DIR_PLUGINS . 'auto/'

_DIR_RACINE

Chemin relatif pour aller à la racine

public mixed _DIR_RACINE = \_DIR_RESTREINT ? '' : '../'

_DIR_RESTREINT

Chemin relatif pour aller dans ecrire vide si on est dans ecrire, 'ecrire/' sinon

public mixed _DIR_RESTREINT = \is_dir(\_DIR_RESTREINT_ABS) ? \_DIR_RESTREINT_ABS : ''

_DIR_RESTREINT_ABS

le nom du repertoire ecrire/

public mixed _DIR_RESTREINT_ABS = 'ecrire/'

_DIR_RESTREINT_ABS

public mixed _DIR_RESTREINT_ABS = 'ecrire/'

_DIRECT_CRON_FORCE

public mixed _DIRECT_CRON_FORCE = true

_DIRECT_CRON_FORCE

public mixed _DIRECT_CRON_FORCE = true

_DOCTYPE_AIDE

Définit le doctype de l’aide en ligne

public mixed _DOCTYPE_AIDE = "<!DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.01 Frameset//EN' 'http://www.w3.org/TR/1999/REC-html401-19991224/frameset.dtd'>"

_DOCTYPE_ECRIRE

Définit le doctype de l’espace privé

public mixed _DOCTYPE_ECRIRE = "<!DOCTYPE html>\n"

_DOCTYPE_RSS

public mixed _DOCTYPE_RSS = 'http://www.rssboard.org/rss-0.91.dtd'

_DUREE_CACHE_DEFAUT

public mixed _DUREE_CACHE_DEFAUT = 24 * 3600

_ECRIRE_INC_VERSION

Indique que SPIP est chargé

public mixed _ECRIRE_INC_VERSION = '1'

Cela permet des tests de sécurités pour les fichiers PHP de SPIP et des plugins qui peuvent vérifier que SPIP est chargé et donc que les fichiers ne sont pas appelés en dehors de l'usage de SPIP

_ESPACE_PRIVE

Drapeau indiquant que l'on est dans l'espace privé

public mixed _ESPACE_PRIVE = \true

_EXTRAIRE_INTERVALLE

Regexp d'extraction des informations d'un intervalle de compatibilité

public mixed _EXTRAIRE_INTERVALLE = ',^[\\[\\(\\]]([0-9.a-zRC\\s\\-]*)[;]([0-9.a-zRC\\s\\-\\*]*)[\\]\\)\\[]$,'

_EXTRAIRE_LIEN

public mixed _EXTRAIRE_LIEN = ',^\\s*(?:' . \_PROTOCOLES_STD . '):?/?/?\\s*$,iS'

_FILE_CHMOD

public mixed _FILE_CHMOD = @is_readable($f = _DIR_CHMOD . _FILE_CHMOD_INS . '.php') ? $f : false

_FILE_CHMOD_TMP

public mixed _FILE_CHMOD_TMP = _DIR_CHMOD . _FILE_CHMOD_INS . _FILE_TMP_SUFFIX

_FILE_CONNECT

public mixed _FILE_CONNECT = @is_readable($f = _DIR_CONNECT . _FILE_CONNECT_INS . '.php') ? $f : false

_FILE_CONNECT_TMP

public mixed _FILE_CONNECT_TMP = _DIR_CONNECT . _FILE_CONNECT_INS . _FILE_TMP_SUFFIX

_HEADER_COMPOSED_BY

public mixed _HEADER_COMPOSED_BY = 'Composed-By: SPIP'

_IMG_GD_MAX_PIXELS

public mixed _IMG_GD_MAX_PIXELS = isset($GLOBALS['meta']['max_taille_vignettes']) && $GLOBALS['meta']['max_taille_vignettes'] ? $GLOBALS['meta']['max_taille_vignettes'] : 0

_INC_DISTANT_CONNECT_TIMEOUT

public mixed _INC_DISTANT_CONNECT_TIMEOUT = 10

_INC_DISTANT_CONTENT_ENCODING

public mixed _INC_DISTANT_CONTENT_ENCODING = 'gzip'

_INC_DISTANT_MAX_SIZE

public mixed _INC_DISTANT_MAX_SIZE = 2097152

_INC_DISTANT_USER_AGENT

public mixed _INC_DISTANT_USER_AGENT = 'SPIP-' . $GLOBALS['spip_version_affichee'] . ' (' . $GLOBALS['home_server'] . ')'

_INC_DISTANT_VERSION_HTTP

public mixed _INC_DISTANT_VERSION_HTTP = 'HTTP/1.0'

_IS_BOT

public mixed _IS_BOT = isset($_SERVER['HTTP_USER_AGENT']) && \preg_match( // mots generiques ',bot|slurp|crawler|spider|webvac|yandex|' . 'MSIE 6\\.0|' . '80legs|accoona|AltaVista|ASPSeek|Baidu|Charlotte|EC2LinkFinder|eStyle|facebook|flipboard|hootsuite|FunWebProducts|Google|Genieo|INA dlweb|InfegyAtlas|Java VM|LiteFinder|Lycos|MetaURI|Moreover|Rambler|Scooter|ScrubbyBloglines|Yahoo|Yeti' . ',i', (string) $_SERVER['HTTP_USER_AGENT'] )

_IS_CLI

public mixed _IS_CLI = !isset($_SERVER['HTTP_HOST']) && !\strlen((string) $_SERVER['DOCUMENT_ROOT']) && !empty($_SERVER['argv']) && empty($_SERVER['REQUEST_METHOD'])

_JAVASCRIPT

Nom du repertoire des bibliotheques JavaScript

public mixed _JAVASCRIPT = 'javascript/'

_JQ_MAX_JOBS_EXECUTE

public mixed _JQ_MAX_JOBS_EXECUTE = 200

_JQ_MAX_JOBS_TIME_TO_EXECUTE

public mixed _JQ_MAX_JOBS_TIME_TO_EXECUTE = min($max_time, 15)

_JQ_NEXT_JOB_TIME_FILENAME

public mixed _JQ_NEXT_JOB_TIME_FILENAME = _DIR_TMP . 'job_queue_next.txt'

_LOG_ALERTE_ROUGE

public mixed _LOG_ALERTE_ROUGE = 1
Tags
deprecated
5.0

Utiliser spip_logger()->alert()

_LOG_AVERTISSEMENT

public mixed _LOG_AVERTISSEMENT = 4
Tags
deprecated
5.0

Utiliser spip_logger()->warning()

_LOG_CRITIQUE

public mixed _LOG_CRITIQUE = 2
Tags
deprecated
5.0

Utiliser spip_logger()->critical()

_LOG_DEBUG

public mixed _LOG_DEBUG = 7
Tags
deprecated
5.0

Utiliser spip_logger()->debug()

_LOG_ERREUR

public mixed _LOG_ERREUR = 3
Tags
deprecated
5.0

Utiliser spip_logger()->error()

_LOG_FILTRE_GRAVITE

Niveau maxi d'enregistrement des logs

public LogLevel::* _LOG_FILTRE_GRAVITE = \Psr\Log\LogLevel::NOTICE

_LOG_HS

public mixed _LOG_HS = 0
Tags
deprecated
5.0

Utiliser spip_logger()->emergency()

_LOG_INFO

public mixed _LOG_INFO = 6
Tags
deprecated
5.0

Utiliser spip_logger()->info()

_LOG_INFO_IMPORTANTE

public mixed _LOG_INFO_IMPORTANTE = 5
Tags
deprecated
5.0

Utiliser spip_logger()->notice()

_MESSAGE_DOCTYPE

public mixed _MESSAGE_DOCTYPE = '<!-- SPIP CORRIGE -->'

_META_CACHE_TIME

public mixed _META_CACHE_TIME = 1 << 24

_MYSQL_NOPLANES

public mixed _MYSQL_NOPLANES = \true

_MYSQL_RE_SHOW_TABLE

public mixed _MYSQL_RE_SHOW_TABLE = '/^[^(),]*\\(((?:[^()]*\\((?:[^()]*\\([^()]*\\))?[^()]*\\)[^()]*)*[^()]*)\\)[^()]*$/'

_NOM_IMG_PACK

Nom du dossier images

public mixed _NOM_IMG_PACK = 'images/'

_NOM_PERMANENTS_ACCESSIBLES

Nom du repertoire des fichiers Permanents Accessibles par http://

public mixed _NOM_PERMANENTS_ACCESSIBLES = 'IMG/'

_NOM_PERMANENTS_INACCESSIBLES

Nom du repertoire des fichiers Permanents Inaccessibles par http://

public mixed _NOM_PERMANENTS_INACCESSIBLES = 'config/'

_NOM_TEMPORAIRES_ACCESSIBLES

Nom du repertoire des fichiers Temporaires Accessibles par http://

public mixed _NOM_TEMPORAIRES_ACCESSIBLES = 'local/'

_NOM_TEMPORAIRES_INACCESSIBLES

Nom du repertoire des fichiers Temporaires Inaccessibles par http://

public mixed _NOM_TEMPORAIRES_INACCESSIBLES = 'tmp/'

_OUTILS_DEVELOPPEURS

Activer des outils pour développeurs ?

public mixed _OUTILS_DEVELOPPEURS = \false

_PAGINATION_NOMBRE_LIENS_MAX

public mixed _PAGINATION_NOMBRE_LIENS_MAX = 10

_PAGINATION_NOMBRE_LIENS_MAX_ECRIRE

public mixed _PAGINATION_NOMBRE_LIENS_MAX_ECRIRE = 5

_PHP_MIN

version PHP minimum exigee (cf. inc/utils)

public mixed _PHP_MIN = '8.2.0'

_PIPELINE_SUFFIX

public mixed _PIPELINE_SUFFIX = \test_espace_prive() ? '_prive' : ''

_PNMSCALE_COMMAND

public mixed _PNMSCALE_COMMAND = 'pnmscale'

_PORT_HTTP_STANDARD

public mixed _PORT_HTTP_STANDARD = '80'

_PORT_HTTPS_STANDARD

public mixed _PORT_HTTPS_STANDARD = '443'

_RACCOURCI_CHAPO

public mixed _RACCOURCI_CHAPO = '/^(\\W*)(\\W*)(\\w*\\d+([?#].*)?)$/'

_RACCOURCI_URL

public mixed _RACCOURCI_URL = '/^\\s*(\\w*?)\\s*(\\d+)(\\?(.*?))?(#([^\\s]*))?\\s*$/S'

_REGEXP_CONCAT_NON_VIDE

public mixed _REGEXP_CONCAT_NON_VIDE = "/^(.*)[.]\\s*'[^']+'\\s*\$/"

_REGEXP_COND_NONVIDE_VIDE

public mixed _REGEXP_COND_NONVIDE_VIDE = "/^[(](.*)[?]\\s*('[^']+')\\s*:\\s*''\\s*[)]\$/"

_REGEXP_COND_VIDE_NONVIDE

public mixed _REGEXP_COND_VIDE_NONVIDE = "/^[(](.*)[?]\\s*''\\s*:\\s*('[^']+')\\s*[)]\$/"

_REGEXP_COPIE_LOCALE

public mixed _REGEXP_COPIE_LOCALE = ',' . \preg_replace('@^https?:@', 'https?:', $GLOBALS['meta']['adresse_site'] ?? '') . '/?spip.php[?]action=acceder_document.*file=(.*)$,'

_REGEXP_DOCTYPE

public mixed _REGEXP_DOCTYPE = '/^((?:<\\001?[?][^>]*>\\s*)*(?:<!--.*?-->\\s*)*)*<!DOCTYPE\\s+(\\w+)\\s+(\\w+)\\s*([^>]*)>\\s*/s'

_REGEXP_ENTITY_DECL

public mixed _REGEXP_ENTITY_DECL = '/^<!ENTITY\\s+(%?)\\s*(' . \_SUB_REGEXP_SYMBOL . '+;?)\\s+(' . \_REGEXP_TYPE_XML . ')?\\s*(' . "('([^']*)')" . '|("([^"]*)")' . '|\\s*(%' . \_SUB_REGEXP_SYMBOL . '+;)\\s*' . ')\\s*(--.*?--)?("([^"]*)")?\\s*>\\s*(.*)$/s'

_REGEXP_ENTITY_DEF

public mixed _REGEXP_ENTITY_DEF = '/^%(' . \_SUB_REGEXP_SYMBOL . '+);/'

_REGEXP_ENTITY_USE

public mixed _REGEXP_ENTITY_USE = '/%(' . \_SUB_REGEXP_SYMBOL . '+);/'

_REGEXP_ID

public mixed _REGEXP_ID = '/^[A-Za-z_:]' . \_SUB_REGEXP_SYMBOL . '*$/'

_REGEXP_INCLUDE_USE

public mixed _REGEXP_INCLUDE_USE = '/^<!\\[\\s*%\\s*([^;]*);\\s*\\[\\s*(.*)$/s'

_REGEXP_NMTOKEN

public mixed _REGEXP_NMTOKEN = '/^' . \_SUB_REGEXP_SYMBOL . '+$/'

_REGEXP_NMTOKENS

public mixed _REGEXP_NMTOKENS = '/^(' . \_SUB_REGEXP_SYMBOL . '+\\s*)*$/'

_REGEXP_TYPE_XML

public mixed _REGEXP_TYPE_XML = 'PUBLIC|SYSTEM|INCLUDE|IGNORE|CDATA'

_REGEXP_XML

public mixed _REGEXP_XML = '/^(\\s*(?:<[?][^x>][^>]*>\\s*)?(?:<[?]xml[^>]*>)?\\s*(?:<!--.*?-->\\s*)*)<(\\w+)/s'

_RESIZE_COMMAND

public mixed _RESIZE_COMMAND = _CONVERT_COMMAND . ' -quality ' . _IMG_CONVERT_QUALITE . ' -orient Undefined -resize %xx%y! %src %dest'

_ROOT_CWD

chemin absolu vers le repertoire de travail

public mixed _ROOT_CWD = \getcwd() . \DIRECTORY_SEPARATOR

_ROOT_IMG_PACK

le chemin php (absolu) vers les images standard (pour hebergement centralise)

public mixed _ROOT_IMG_PACK = \dirname(__DIR__, 3) . \DIRECTORY_SEPARATOR . 'prive' . \DIRECTORY_SEPARATOR . \_NOM_IMG_PACK

_ROOT_PLUGINS

public mixed _ROOT_PLUGINS = _ROOT_RACINE . 'plugins' . DIRECTORY_SEPARATOR

_ROOT_PLUGINS_DIST

public mixed _ROOT_PLUGINS_DIST = _ROOT_RACINE . 'plugins-dist' . DIRECTORY_SEPARATOR

_ROOT_PLUGINS_SUPPL

public mixed _ROOT_PLUGINS_SUPPL = _ROOT_RACINE . str_replace(_DIR_RACINE, '', _DIR_PLUGINS_SUPPL)

_ROOT_RACINE

chemin absolu vers la racine

public mixed _ROOT_RACINE = \dirname(__DIR__, 3) . \DIRECTORY_SEPARATOR

_ROOT_RESTREINT

chemin absolu vers ecrire

public mixed _ROOT_RESTREINT = \_ROOT_CWD . \_DIR_RESTREINT

_separateur_urls_page

public mixed _separateur_urls_page = ''
public mixed _SERVEUR_SIGNATURE_ACCEPTE_LOCATION_APRES_COOKIE = 'Apache|Cherokee|nginx'
public mixed _SERVEUR_SOFTWARE_ACCEPTE_LOCATION_APRES_COOKIE = '^(Apache|Cherokee|nginx)'

_SPIP_AFFICHE_MOT_DE_PASSE_MASQUE_PERCENT

public mixed _SPIP_AFFICHE_MOT_DE_PASSE_MASQUE_PERCENT = 20

_SPIP_AJAX

public mixed _SPIP_AJAX = !isset($_COOKIE['spip_accepte_ajax']) ? 1 : ($_COOKIE['spip_accepte_ajax'] != -1 ? 1 : 0)

_spip_attend_invalidation_opcode_cache

public mixed _spip_attend_invalidation_opcode_cache = true

_SPIP_PAGE

Argument page, personalisable en cas de conflit avec un autre script

public mixed _SPIP_PAGE = 'page'

_SPIP_SCRIPT

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

public mixed _SPIP_SCRIPT = 'spip.php'

_SPIP_SELECT_RUBRIQUES

public int _SPIP_SELECT_RUBRIQUES = 20

Nombre de rubriques maximum du sélecteur de rubriques. Au delà, on bascule sur un sélecteur ajax. mettre 100000 pour desactiver ajax

_SPIP_THEME_PRIVE

public mixed _SPIP_THEME_PRIVE = 'spip'

_SPIP_XML_TAG_SPLIT

public mixed _SPIP_XML_TAG_SPLIT = '{<([^:>][^>]*?)>}sS'

_SQL_PREFIXE_TABLE_MYSQL

Changer les noms des tables ($table_prefix)

public mixed _SQL_PREFIXE_TABLE_MYSQL = '/([,\\s])spip_/S'

TODO: Quand tous les appels SQL seront abstraits on pourra l'améliorer

_SQLITE_RE_SHOW_TABLE

public mixed _SQLITE_RE_SHOW_TABLE = '/^[^(),]*\\(((?:[^()]*\\((?:[^()]*\\([^()]*\\))?[^()]*\\)[^()]*)*[^()]*)\\)[^()]*$/'

_terminaison_urls_page

public mixed _terminaison_urls_page = ''

_TEST_FILE_EXISTS

Permettre d'éviter des tests file_exists sur certains hébergeurs

public mixed _TEST_FILE_EXISTS = \preg_match(',(online|free)[.]fr$,', $_ENV['HTTP_HOST'] ?? '')

_TESTER_NOSCRIPT

public mixed _TESTER_NOSCRIPT = "<noscript>\n<div style='display:none;'><img src='" . generer_url_ecrire('test_ajax', 'js=-1') . "' width='1' height='1' alt='' /></div></noscript>\n"

_TIME_OUT

Définir le timeout qui peut-être utilisé dans les fonctions de mises à jour qui durent trop longtemps

public int _TIME_OUT = $time + _UPGRADE_TIME_OUT

À utiliser tel que : if (time() >= _TIME_OUT)

_TRAITEMENT_RACCOURCIS

public mixed _TRAITEMENT_RACCOURCIS = 'propre(%s, $connect, $Pile[0])'

_TRAITEMENT_TYPO

public mixed _TRAITEMENT_TYPO = 'typo(%s, "TYPO", $connect, $Pile[0])'

_TRAITEMENT_TYPO_SANS_NUMERO

public mixed _TRAITEMENT_TYPO_SANS_NUMERO = 'supprimer_numero(typo(%s, "TYPO", $connect, $Pile[0]))'

_TYPO_BALISE

public mixed _TYPO_BALISE = ',</?[a-z!][^<>]*[' . \preg_quote(\_TYPO_PROTEGER) . '][^<>]*>,imsS'

_TYPO_PROTECTEUR

public mixed _TYPO_PROTECTEUR = "\x01\x02\x03\x04\x05\x06\x07\x08"

_TYPO_PROTEGER

public mixed _TYPO_PROTEGER = "!':;?~%-"

_UPGRADE_TIME_OUT

Durée en secondes pour relancer les scripts de mises à jour, x secondes avant que la durée d'exécution du script provoque un timeout

public int _UPGRADE_TIME_OUT = 20

_URL_ECRAN_SECURITE

public mixed _URL_ECRAN_SECURITE = 'https://git.spip.net/spip-contrib-outils/securite/raw/branch/master/ecran_securite.php'

_VERSION_ARCHIVE

public mixed _VERSION_ARCHIVE = '1.3'

_VERSIONS_SERVEUR

public mixed _VERSIONS_SERVEUR = 'https://www.spip.net/spip_loader.api'

_ZCORE_EXCLURE_PATH

public mixed _ZCORE_EXCLURE_PATH = '\\bprive|\\bsquelettes-dist' . (defined('_DIR_PLUGIN_DIST') ? '|\\b' . rtrim((string) _DIR_PLUGIN_DIST, '/') : '')

BALISE_ALT_BOUCLE

Fin de la partie alternative après d'une boucle

public mixed BALISE_ALT_BOUCLE = '<//B'

BALISE_BOUCLE

Début de la partie principale d'une boucle

public mixed BALISE_BOUCLE = '<BOUCLE'

BALISE_FIN_BOUCLE

Fin de la partie principale d'une boucle

public mixed BALISE_FIN_BOUCLE = '</BOUCLE'

BALISE_IDIOMES

public mixed BALISE_IDIOMES = ',<:(([a-z0-9_]+):)?([a-z0-9_]*)({([^\\|=>]*=[^\\|>]*)})?((\\|[^>]*)?:/?>),iS'

BALISE_IDIOMES_ARGS

public mixed BALISE_IDIOMES_ARGS = '@^\\s*([^= ]*)\\s*=\\s*((' . \NOM_DE_CHAMP . '[{][^}]*})?[^,]*)\\s*,?\\s*@s'

BALISE_INCLURE

public mixed BALISE_INCLURE = '/<INCLU[DR]E[[:space:]]*(\\(([^)]*)\\))?/S'

BALISE_POSTAFF_BOUCLE

Fin de la partie après non optionnelle d'une boucle (toujours affichee)

public mixed BALISE_POSTAFF_BOUCLE = '</BB'

BALISE_POSTCOND_BOUCLE

Fin de la partie optionnelle après d'une boucle

public mixed BALISE_POSTCOND_BOUCLE = '</B'

BALISE_PREAFF_BOUCLE

Début de la partie avant non optionnelle d'une boucle (toujours affichee)

public mixed BALISE_PREAFF_BOUCLE = '<BB'

BALISE_PRECOND_BOUCLE

Début de la partie optionnelle avant d'une boucle

public mixed BALISE_PRECOND_BOUCLE = '<B'

CHAMP_ETENDU

Balise complète [...(#TOTO) ... ]

public mixed CHAMP_ETENDU = '/\\[([^\\[]*?)\\(' . \NOM_DE_CHAMP . '([^)]*\\)[^]]*)\\]/S'

CHAMP_SQL_PLUS_FONC

Fonction SQL sur un champ ex: SUM(visites)

public mixed CHAMP_SQL_PLUS_FONC = '`?([A-Z_\\/][A-Z_\\/0-9.]*)' . \SQL_ARGS . '?`?'

CODE_COMMENTE

Indique s'il faut commenter le code produit

public mixed CODE_COMMENTE = \true

CODE_CORPS_BOUCLE

Compilation d'une boucle non recursive.

public mixed CODE_CORPS_BOUCLE = '%s if (defined("_BOUCLE_PROFILER")) $timer = time()+(float)microtime(); $t0 = ""; // REQUETE $iter = Spip\\Compilateur\\Iterateur\\Factory::create( "%s", %s, array(%s) ); if (!$iter->err()) { %s%s$SP++; // RESULTATS %s %s$iter->free(); }%s if (defined("_BOUCLE_PROFILER") AND 1000*($timer = (time()+(float)microtime())-$timer) > _BOUCLE_PROFILER) spip_logger("profiler")->warning(intval(1000*$timer)."ms %s"); return $t0;'

La constante donne le cadre systématique du code:

  • %s1: initialisation des arguments de calculer_select
  • %s2: appel de calculer_select en donnant un contexte pour les cas d'erreur
  • %s3: initialisation du sous-tableau Numrows[id_boucle]
  • %s4: sauvegarde de la langue et calcul des invariants de boucle sur elle
  • %s5: boucle while sql_fetch ou str_repeat si corps monotone
  • %s6: restauration de la langue
  • %s7: liberation de la ressource, en tenant compte du serveur SQL
  • %s8: code de trace eventuel avant le retour

CODE_EXECUTER_BALISE

Code PHP d'exécution d'une balise dynamique

public mixed CODE_EXECUTER_BALISE = "executer_balise_dynamique('%s',\n\tarray(%s%s),\n\tarray(%s%s))"

CODE_EXECUTER_BALISE_MODELE

public mixed CODE_EXECUTER_BALISE_MODELE = "executer_balise_dynamique_dans_un_modele('%s',\n\tarray(%s%s),\n\tarray(%s%s))"

CODE_INCLURE_BALISE

Code PHP pour inclure une balise dynamique à l'exécution d'une page

public mixed CODE_INCLURE_BALISE = '<' . '?php include_once("%s"); if ($lang_select = "%s") $lang_select = lang_select($lang_select); inserer_balise_dynamique(balise_%s_dyn(%s), array(%s)); if ($lang_select) lang_select(); ?' . '>'

CODE_INCLURE_SCRIPT

public mixed CODE_INCLURE_SCRIPT = 'if (!($path = %s) OR !is_readable($path)) erreur_squelette(array("fichier_introuvable", array("fichier" => "%s")), array(%s)); else { $contexte_inclus = %s; include $path; } '

CODE_MONOTONE

Repérer un code ne calculant rien, meme avec commentaire

public mixed CODE_MONOTONE = ",^(\n//[^\n]*\n)?\\(?'([^'])*'\\)?\$,"

CODE_PAGINATION

Code de compilation pour la balise `#PAGINATION`

public mixed CODE_PAGINATION = '%s($Numrows["%s"]["grand_total"], %s, isset($Pile[0][%4$s])?$Pile[0][%4$s]:intval(_request(%4$s)), %5$s, %6$s, %7$s, %8$s, array(%9$s))'

Le code produit est trompeur, car les modèles ne fournissent pas Pile[0]. On produit un appel à _request si on ne l'a pas, mais c'est inexact: l'absence peut-être due à une faute de frappe dans le contexte inclus.

CODE_RECUPERER_FOND

Code d'appel à un <INCLURE()>

public mixed CODE_RECUPERER_FOND = 'recuperer_fond(%s, %s, array(%s), %s)'

Code PHP pour un squelette (aussi pour #INCLURE, #MODELE #LES_AUTEURS)

IMAGETYPE_SVG

public mixed IMAGETYPE_SVG = 19

MODULES_IDIOMES

Modules par défaut pour la traduction.

public mixed MODULES_IDIOMES = 'public|spip|ecrire'

Constante utilisée par le compilateur et le décompilateur sa valeur etant traitée par inc_traduire_dist

NOM_DE_BOUCLE

Expression pour trouver un identifiant de boucle

public mixed NOM_DE_BOUCLE = '[0-9]+|[-_][-_.a-zA-Z0-9]*'

NOM_DE_CHAMP

Nom d'une balise #TOTO

public mixed NOM_DE_CHAMP = '#((' . \NOM_DE_BOUCLE . "):)?(([A-F]*[G-Z_][A-Z_0-9]*)|[A-Z_]+)\\b(\\*{0,2})"

Écriture alambiquée pour rester compatible avec les hexadecimaux des vieux squelettes

SPEC_BOUCLE

Expression pour trouver le type de boucle (TABLE autre_table ?)

public mixed SPEC_BOUCLE = '/\\s*\\(\\s*([^\\s?)]+)(\\s*[^)?]*)([?]?)\\)/'

SPIP_ERREUR_REPORT

Masquer les warning

public mixed SPIP_ERREUR_REPORT = \E_ALL ^ \E_NOTICE ^ \E_DEPRECATED

spip_interdire_cache

public mixed spip_interdire_cache = true

SPIP_SQLITE3_ASSOC

public mixed SPIP_SQLITE3_ASSOC = PDO::FETCH_ASSOC

SPIP_SQLITE3_BOTH

public mixed SPIP_SQLITE3_BOTH = PDO::FETCH_BOTH

SPIP_SQLITE3_NUM

public mixed SPIP_SQLITE3_NUM = PDO::FETCH_NUM

SQL_ABSTRACT_VERSION

Version de l'API SQL

public mixed SQL_ABSTRACT_VERSION = 1

SQL_ARGS

Champ sql dans parenthèse ex: (id_article)

public mixed SQL_ARGS = '(\\([^)]*\\))'

TYPE_RECURSIF

Indique un début de boucle récursive

public mixed TYPE_RECURSIF = 'boucle'

Functions

enregistre_modif_plugin()

Mise à jour des données si envoi via formulaire

enregistre_modif_plugin() : void
Tags
global

array $GLOBALS ['visiteur_session']

global

array $GLOBALS ['meta']

action_activer_plugins_dist()

Fonction d'initialisation avant l'activation des plugins

action_activer_plugins_dist() : void

Vérifie les droits et met à jour les méta avant de lancer l'activation des plugins

action_ajouter_lien_dist()

Action pour lier 2 objets entre eux

action_ajouter_lien_dist([null|string $arg = null ]) : void

L'argument attendu est objet1-id1-objet2-id2 (type d'objet, identifiant) tel que mot-7-rubrique-3.

Parameters
$arg : null|string = null

Clé des arguments. En absence utilise l'argument de l'action sécurisée.

Tags
uses
objet_associer()

action_annuler_job_dist()

Annuler un travail

action_annuler_job_dist() : void

action_api_transmettre_dist()

action_api_transmettre_dist([mixed $arg = null ]) : mixed
Parameters
$arg : mixed = null

action_api_transmettre_fail()

action_api_transmettre_fail(mixed $arg) : never
Parameters
$arg : mixed
Return values
never

action_auth_dist()

Retour d'authentification pour les SSO

action_auth_dist() : mixed

action_calculer_taille_cache_dist()

Calculer la taille du cache ou du cache image pour l'afficher en ajax sur la page d'admin de SPIP

action_calculer_taille_cache_dist([string|null $arg = null ]) : mixed

Si l'argument reçu est 'images', c'est la taille du cache _DIR_VAR qui est calculé, sinon celle du cache des squelettes (approximation)

Parameters
$arg : string|null = null

Argument attendu. En absence utilise l'argument de l'action sécurisée.

calculer_taille_dossier()

Calculer la taille d'un dossier, sous dossiers inclus

calculer_taille_dossier(string $dir) : int
Parameters
$dir : string

Répertoire dont on souhaite évaluer la taille

Return values
int

Taille en octets

action_confirmer_email_dist()

Confirmer un changement d'email

action_confirmer_email_dist() : void
Tags
global

array $GLOBALS ['visiteur_session']

global

string $GLOBALS ['redirect']

action_confirmer_inscription_dist()

Action de confirmation d'une inscription

action_confirmer_inscription_dist() : void
Tags
global

array $GLOBALS ['visiteur_session']

global

string $GLOBALS ['redirect']

action_converser_dist()

Point d'entrée pour changer de langue

action_converser_dist() : void

Pas de secu si espace public ou login ou installation mais alors on n'accède pas à la base, on pose seulement le cookie.

action_converser_changer_langue()

Cette fonction prépare le travail de changement de langue en récupérant la bonne variable de langue

action_converser_changer_langue(bool $update_session) : string
Parameters
$update_session : bool
Tags
global

array $GLOBALS ['visiteur_session']

Return values
string

action_converser_post()

Cette fonction effectue le travail de changement de langue

action_converser_post(string $lang[, bool $ecrire = false ]) : void
Parameters
$lang : string
$ecrire : bool = false

Cette fonction traite les cookies posés au moment de l'authentification standard ou vérifie que l'authentification HTTP est correcte

action_cookie_dist([string|null $set_cookie_admin = null ][, string|null $change_session = null ]) : void
Parameters
$set_cookie_admin : string|null = null
$change_session : string|null = null
Tags
global

bool ignore_auth_http

action_desinstaller_plugin_dist()

Action de désinstallation d'un plugin

action_desinstaller_plugin_dist() : void

L'argument attendu est le préfixe du plugin à désinstaller.

Tags
uses
plugins_installer_dist()
global

array visiteur_session

action_editer_article_dist()

Action d'édition d'un article dans la base de données dont l'identifiant est donné en paramètre de cette fonction ou en argument de l'action sécurisée

action_editer_article_dist([null|int $arg = null ]) : array<string|int, mixed>

Si aucun identifiant n'est donné, on crée alors un nouvel article, à condition que la rubrique parente (id_rubrique) puisse être obtenue (avec _request())

Parameters
$arg : null|int = null

Identifiant de l'article. En absence utilise l'argument de l'action sécurisée.

Tags
uses
article_inserer()
uses
article_modifier()
Return values
array<string|int, mixed>

Liste (identifiant de l'article, texte d'erreur éventuel)

article_modifier()

Modifier un article

article_modifier(int $id_article[, array<string|int, mixed>|null $set = null ]) : string|null

Appelle toutes les fonctions de modification d'un article

Parameters
$id_article : int

Identifiant de l'article à modifier

$set : array<string|int, mixed>|null = null

Couples (colonne => valeur) de données à modifier. En leur absence, on cherche les données dans les champs éditables qui ont été postés (via collecter_requests())

Tags
used-by
action_editer_article_dist()
Return values
string|null
  • Chaîne vide si aucune erreur,
  • Null si aucun champ à modifier,
  • Chaîne contenant un texte d'erreur sinon.

article_inserer()

Insérer un nouvel article en base de données

article_inserer(int $id_rubrique[, array<string|int, mixed>|null $set = null ]) : int

En plus des données enregistrées par défaut, la fonction :

  • retrouve un identifiant de rubrique pour stocker l'article (la première rubrique racine) si l'identifiant de rubrique transmis est nul.
  • calcule la langue de l'article, soit
    • d'après la langue de la rubrique si les articles ne sont pas configurés comme pouvant être traduits,
    • d'après la langue de l'auteur en cours si les articles peuvent être traduits et si la langue de l'auteur est acceptée en tant que langue de traduction
  • crée une liaison automatiquement entre l'auteur connecté et l'article créé, de sorte que la personne devient par défaut auteur de l'article qu'elle crée.
Parameters
$id_rubrique : int

Identifiant de la rubrique parente

$set : array<string|int, mixed>|null = null
Tags
pipeline_appel

pre_insertion

pipeline_appel

post_insertion

global

array meta

global

array visiteur_session

global

string spip_lang

used-by
action_editer_article_dist()
Return values
int

Identifiant du nouvel article

article_instituer()

Modification des statuts d'un article

article_instituer(int $id_article, array<string|int, mixed> $c[, bool $calcul_rub = true ]) : string

Modifie la langue, la rubrique ou les statuts d'un article.

Parameters
$id_article : int

Identifiant de l'article

$c : array<string|int, mixed>

Couples (colonne => valeur) des données à instituer Les colonnes 'statut' et 'id_parent' sont liées, car un admin restreint peut deplacer un article publié vers une rubrique qu'il n'administre pas

$calcul_rub : bool = true

True pour changer le statut des rubriques concernées si un article change de statut ou est déplacé dans une autre rubrique

Tags
global

array $GLOBALS ['meta']

pipeline_appel

pre_edition

pipeline_appel

post_edition

Return values
string

Chaîne vide

editer_article_heritage()

Fabrique la requête de modification de l'article, avec champs hérités

editer_article_heritage(int $id_article, int $id_rubrique, string $statut, array<string|int, mixed> $champs[, bool $cond = true ]) : void|null
Parameters
$id_article : int

Identifiant de l'article

$id_rubrique : int

Identifiant de la rubrique parente

$statut : string

Statut de l'article (prop, publie, ...)

$champs : array<string|int, mixed>

Couples (colonne => valeur) des champs qui ont été modifiés

$cond : bool = true

True pour actualiser le statut et date de publication de la rubrique parente si nécessaire

Tags
global

array $GLOBALS ['meta']

Return values
void|null

null si aucune action à faire void sinon

trop_longs_articles()

Réunit les textes decoupés parce que trop longs

trop_longs_articles() : void

action_editer_auteur_dist()

Éditer ou créer un auteur

action_editer_auteur_dist([array<string|int, mixed>|null $arg = null ]) : array<string|int, mixed>

Si aucun identifiant d'auteur n'est donné, on crée alors un nouvel auteur.

Parameters
$arg : array<string|int, mixed>|null = null

Identifiant de l'auteur. En absence utilise l'argument de l'action sécurisée.

Tags
global

array visiteur_session

uses
auteur_inserer()
uses
auteur_modifier()
Return values
array<string|int, mixed>

Liste (identifiant de l'auteur, texte d'erreur éventuel)

auteur_inserer()

Insérer un auteur en base

auteur_inserer([string|null $source = null ][, array<string|int, mixed>|null $set = null ]) : int
Parameters
$source : string|null = null

D'où provient l'auteur créé ? par défaut 'spip', mais peut être 'ldap' ou autre.

$set : array<string|int, mixed>|null = null
Tags
pipeline_appel

pre_insertion

pipeline_appel

post_insertion

used-by
action_editer_auteur_dist()
Return values
int

Identifiant de l'auteur créé

auteur_modifier()

Modifier un auteur

auteur_modifier(int $id_auteur[, array<string|int, mixed>|null $set = null ][, bool $force_update = false ]) : string|null

Appelle toutes les fonctions de modification d'un auteur

Parameters
$id_auteur : int

Identifiant de l'auteur

$set : array<string|int, mixed>|null = null

Couples (colonne => valeur) de données à modifier. En leur absence, on cherche les données dans les champs éditables qui ont été postés (via collecter_requests())

$force_update : bool = false

Permet de forcer la maj en base des champs fournis, sans passer par instancier. Utilise par auth/spip

Tags
used-by
action_editer_auteur_dist()
Return values
string|null
  • Chaîne vide si aucune erreur,
  • Chaîne contenant un texte d'erreur sinon.

auteur_associer()

Associer un auteur à des objets listés

auteur_associer(int $id_auteur, array<string|int, mixed> $objets[, array<string|int, mixed>|null $qualif = null ]) : string
Parameters
$id_auteur : int

Identifiant de l'auteur

$objets : array<string|int, mixed>

Liste sous la forme array($objet=>$id_objets,...). $id_objets peut lui-même être un scalaire ou un tableau pour une liste d'objets du même type.

$qualif : array<string|int, mixed>|null = null

Optionnellement indique une qualification du (des) lien(s) qui sera alors appliquée dans la foulée. En cas de lot de liens, c'est la même qualification qui est appliquée à tous

Tags
uses
objet_associer()
Return values
string

auteur_dissocier()

Dissocier un auteur des objets listés

auteur_dissocier(int $id_auteur, array<string|int, mixed> $objets) : string
Parameters
$id_auteur : int

Identifiant de l'auteur

$objets : array<string|int, mixed>

Liste sous la forme array($objet=>$id_objets,...). $id_objets peut lui-même être un scalaire ou un tableau pour une liste d'objets du même type.

Un * pour $id_auteur,$objet,$id_objet permet de traiter par lot

Tags
uses
objet_dissocier()
Return values
string

auteur_qualifier()

Qualifier le lien d'un auteur avec les objets listés

auteur_qualifier(int $id_auteur, array<string|int, mixed> $objets, array<string|int, mixed> $qualif) : bool|int
Parameters
$id_auteur : int

Identifiant de l'auteur

$objets : array<string|int, mixed>

Liste sous la forme array($objet=>$id_objets,...). $id_objets peut lui-même être un scalaire ou un tableau pour une liste d'objets du même type.

Un * pour $id_auteur,$objet,$id_objet permet de traiter par lot

$qualif : array<string|int, mixed>

Couples (colonne, valeur) tel que array('vu'=>'oui');

Tags
uses
objet_qualifier_liens()
Return values
bool|int

auteur_instituer()

Modifier le statut d'un auteur, ou son login/pass

auteur_instituer(int $id_auteur, array<string|int, mixed> $c[, bool $force_webmestre = false ]) : bool|string
Parameters
$id_auteur : int

Identifiant de l'auteur

$c : array<string|int, mixed>

Couples (colonne => valeur) des données à instituer

$force_webmestre : bool = false

Autoriser un auteur à passer webmestre (force l'autorisation)

Tags
pipeline_appel

pre_edition

pipeline_appel

post_edition

Return values
bool|string

objet_associable()

Teste l'existence de la table de liaison xxx_liens d'un objet

objet_associable(string $objet) : array<string|int, mixed>|bool
Parameters
$objet : string

Objet à tester

Return values
array<string|int, mixed>|bool
  • false si l'objet n'est pas associable.
  • array(clé primaire, nom de la table de lien) si associable

objet_associer()

Associer un ou des objets à des objets listés

objet_associer(array<string|int, mixed> $objets_source, array<string|int, mixed>|string $objets_lies[, array<string|int, mixed> $qualif = null ]) : bool|int

$objets_source et $objets_lies sont de la forme array($objet=>$id_objets,...) $id_objets peut lui même être un scalaire ou un tableau pour une liste d'objets du même type ou de la forme array("NOT", $id_objets) pour une sélection par exclusion

Les objets sources sont les pivots qui portent les liens et pour lesquels une table spip_xxx_liens existe (auteurs, documents, mots)

On peut passer optionnellement une qualification du (des) lien(s) qui sera alors appliquée dans la foulée. En cas de lot de liens, c'est la même qualification qui est appliquée a tous

Parameters
$objets_source : array<string|int, mixed>
$objets_lies : array<string|int, mixed>|string
$qualif : array<string|int, mixed> = null
Tags
used-by
action_ajouter_lien_dist()
used-by
auteur_associer()
Return values
bool|int

objet_dissocier()

Dissocier un (ou des) objet(s) des objets listés

objet_dissocier(array<string|int, mixed> $objets_source, array<string|int, mixed>|string $objets_lies[, array<string|int, mixed>|null $cond = null ]) : bool|int

$objets_source et $objets_lies sont de la forme array($objet=>$id_objets,...) $id_objets peut lui-même être un scalaire ou un tableau pour une liste d'objets du même type

Les objets sources sont les pivots qui portent les liens et pour lesquels une table spip_xxx_liens existe (auteurs, documents, mots)

un * pour $objet, $id_objet permet de traiter par lot seul le type de l'objet source ne peut pas accepter de joker et doit etre explicite

S'il y a des rôles possibles entre les 2 objets, et qu'aucune condition sur la colonne du rôle n'est transmise, on ne supprime que les liens avec le rôle par défaut. Si on veut supprimer tous les rôles, il faut spécifier $cond => array('role' => '*')

Parameters
$objets_source : array<string|int, mixed>
$objets_lies : array<string|int, mixed>|string
$cond : array<string|int, mixed>|null = null

Condition du where supplémentaires

À l'exception de l'index 'role' qui permet de sélectionner un rôle ou tous les rôles (*), en s'affranchissant du vrai nom de la colonne.

Tags
used-by
auteur_dissocier()
used-by
action_supprimer_lien_dist()
Return values
bool|int

objet_qualifier_liens()

Qualifier le lien entre un (ou des) objet(s) et des objets listés

objet_qualifier_liens(array<string|int, mixed> $objets_source, array<string|int, mixed>|string $objets_lies, array<string|int, mixed> $qualif) : bool|int

$objets_source et $objets sont de la forme array($objet=>$id_objets,...) $id_objets peut lui meme etre un scalaire ou un tableau pour une liste d'objets du meme type

Les objets sources sont les pivots qui portent les liens et pour lesquels une table spip_xxx_liens existe (auteurs, documents, mots)

un * pour $objet,$id_objet permet de traiter par lot seul le type de l'objet source ne peut pas accepter de joker et doit etre explicite

Parameters
$objets_source : array<string|int, mixed>
$objets_lies : array<string|int, mixed>|string
$qualif : array<string|int, mixed>
Tags
used-by
auteur_qualifier()
Return values
bool|int

objet_trouver_liens()

Trouver les liens entre objets

objet_trouver_liens(array<string|int, mixed> $objets_source, array<string|int, mixed>|string $objets_lies[, array<string|int, mixed>|null $cond = null ]) : array<string|int, mixed>

$objets_source et $objets sont de la forme array($objet=>$id_objets,...) $id_objets peut lui meme etre un scalaire ou un tableau pour une liste d'objets du meme type

Les objets sources sont les pivots qui portent les liens et pour lesquels une table spip_xxx_liens existe (auteurs, documents, mots)

un * pour $objet,$id_objet permet de traiter par lot seul le type de l'objet source ne peut pas accepter de joker et doit etre explicite

renvoie une liste de tableaux decrivant chaque lien dans lequel objet_source et objet_lie sont aussi affectes avec l'id de chaque par facilite ex : array( array('id_document'=>23,'objet'=>'article','id_objet'=>12,'vu'=>'oui', 'document'=>23,'article'=>12) )

Parameters
$objets_source : array<string|int, mixed>

Couples (objets_source => identifiants) (objet qui a la table de lien)

$objets_lies : array<string|int, mixed>|string

Couples (objets_lies => identifiants)

$cond : array<string|int, mixed>|null = null

Condition du where supplémentaires

Return values
array<string|int, mixed>

Liste des trouvailles

objet_optimiser_liens()

Nettoyer les liens morts vers des objets qui n'existent plus

objet_optimiser_liens(array<string|int, mixed> $objets_source, array<string|int, mixed>|string $objets_lies) : int

$objets_source et $objets sont de la forme array($objet=>$id_objets,...) $id_objets peut lui meme etre un scalaire ou un tableau pour une liste d'objets du meme type

Les objets sources sont les pivots qui portent les liens et pour lesquels une table spip_xxx_liens existe (auteurs, documents, mots)

un * pour $objet,$id_objet permet de traiter par lot seul le type de l'objet source ne peut pas accepter de joker et doit etre explicite

Parameters
$objets_source : array<string|int, mixed>
$objets_lies : array<string|int, mixed>|string
Return values
int

objet_dupliquer_liens()

Dupliquer tous les liens entrant ou sortants d'un objet vers un autre (meme type d'objet, mais id different) si $types est fourni, seuls les liens depuis/vers les types listes seront copies si $exclure_types est fourni, les liens depuis/vers les types listes seront ignores

objet_dupliquer_liens(string $objet, int $id_source, int $id_cible[, array<string|int, mixed> $types = null ][, array<string|int, mixed> $exclure_types = null ]) : int
Parameters
$objet : string
$id_source : int
$id_cible : int
$types : array<string|int, mixed> = null
$exclure_types : array<string|int, mixed> = null
Return values
int

Nombre de liens copiés

lien_ordonner()

Reordonner les liens sur lesquels on est intervenus

lien_ordonner(string $objet_source, string $primary, string $table_lien, int $id, array<string|int, mixed>|string $objets) : mixed
Parameters
$objet_source : string
$primary : string
$table_lien : string
$id : int
$objets : array<string|int, mixed>|string

lien_triables()

Une table de lien est-elle triable ? elle doit disposer d'un champ rang_lien pour cela

lien_triables(string $table_lien) : mixed
Parameters
$table_lien : string

lien_rang_where()

Fabriquer la condition where pour compter les rangs

lien_rang_where(string $table_lien, string $primary, int|string|array<string|int, mixed> $id_source, string $objet, int|string|array<string|int, mixed> $id_objet[, array<string|int, mixed> $cond = [] ]) : array<string|int, mixed>
Parameters
$table_lien : string
$primary : string
$id_source : int|string|array<string|int, mixed>
$objet : string
$id_objet : int|string|array<string|int, mixed>
$cond : array<string|int, mixed> = []
Return values
array<string|int, mixed>

Liste des conditions

logo_supprimer()

Supprimer le logo d'un objet

logo_supprimer(string $objet, int $id_objet, string $etat) : mixed
Parameters
$objet : string
$id_objet : int
$etat : string

on ou off

logo_modifier()

Modifier le logo d'un objet

logo_modifier(string $objet, int $id_objet, string $etat, string|array<string|int, mixed> $source) : string
Parameters
$objet : string
$id_objet : int
$etat : string

on ou off

$source : string|array<string|int, mixed>
  • array : sous tableau de $_FILE issu de l'upload
  • string : fichier source (chemin complet ou chemin relatif a tmp/upload)
Return values
string

Erreur, sinon ''

logo_migrer_en_base()

Migration des logos en documents.

logo_migrer_en_base(string $objet, int $time_limit) : mixed
  • avant dans IMG/artonXX.png
  • après dans IMG/logo/... + enregistrés en document dans spip_documents

Cette migration est effectuée à partir de SPIP 4.0 et la fonction doit être appelée pour chaque plugin qui aurait utilisé des logos sur des objets éditoriaux.

Parameters
$objet : string

Type d’objet spip, tel que 'article'

$time_limit : int
Tags
since
4.0
deprecated
5.0

Migrer le site & les logos / tables dans un SPIP 4.x ou 5.x

Retourne le type de logo tel que `art` depuis le nom de clé primaire de l'objet

type_du_logo(string $_id_objet) : string

C'est par défaut le type d'objet, mais il existe des exceptions historiques déclarées par la globale $table_logos

Parameters
$_id_objet : string

Nom de la clé primaire de l'objet

Tags
see
logo_migrer_en_base()
see
medias_upgrade_logo_objet()
deprecated
4.0

MAIS NE PAS SUPPRIMER CAR SERT POUR L'UPGRADE des logos et leur mise en base

Return values
string

Type du logo

action_editer_objet_dist()

Point d'entrée d'édition d'un objet

action_editer_objet_dist([int $id = null ][, string $objet = null ][, array<string|int, mixed> $set = null ]) : array<string|int, mixed>

On ne peut entrer que par un appel en fournissant $id et $objet ou avec un argument d'action sécurisée de type "objet/id"

Parameters
$id : int = null
$objet : string = null
$set : array<string|int, mixed> = null
Return values
array<string|int, mixed>

objet_modifier()

Appelle toutes les fonctions de modification d'un objet

objet_modifier(string $objet, int $id[, array<string|int, mixed>|null $set = null ]) : mixed|string

Il peut y avoir une fonction propre au type d'objet : modifier dans action/editer.php, qui a dans ce cas la précédence.

Retourne une chaîne vide en cas de succès, et déclenche des notifications selon ce qu'on modifie : _modifier + objet_modifier et/ou _instituer + objet_instituer.

Parameters
$objet : string
$id : int
$set : array<string|int, mixed>|null = null
Tags
uses
collecter_requests()
uses
objet_modifier_champs()
uses
objet_instituer()
pipeline_appel

pre_edition : avant la mise à jour en base (via objet_modifier_champs())

pipeline_appel

post_edition : après la mise à jour en base (via objet_modifier_champs())

Return values
mixed|string
  • En cas de succès : (string) chaîne vide
  • En cas d'erreur : (string) message d'erreur

objet_inserer()

Insère en base un objet générique

objet_inserer(string $objet[, int $id_parent = null ][, array<string|int, mixed>|null $set = null ]) : bool|int

Il peut y avoir une fonction propre au type d'objet : inserer dans action/editer.php, qui a dans ce cas la précédence.

Retourne le numéro de l'objet en cas de succès, et déclenche 2 notifications : _inserer et objet_inserer.

Parameters
$objet : string
$id_parent : int = null
$set : array<string|int, mixed>|null = null
Tags
uses
sql_insertq()
pipeline_appel

pre_insertion : avant l'enregistrement en base

pipeline_appel

post_insertion : après l'enregistrement en base

global

array $GLOBALS ['visiteur_session']

global

array $GLOBALS ['meta']

global

string $GLOBALS ['spip_lang']

Return values
bool|int
  • Succès : (int) numéro de l'objet crée
  • Erreur :
    • (bool) false si sql_insertq() a échoué
    • (int) 0 si le type d'objet n'existe pas ou que la table est mal déclarée

objet_instituer()

Modifie le statut et/ou la date d'un objet

objet_instituer(string $objet, int $id, array<string|int, mixed> $c[, bool $calcul_rub = true ]) : string
Parameters
$objet : string
$id : int
$c : array<string|int, mixed>

$c est un array ('statut', 'id_parent' = changement de rubrique) statut et rubrique sont lies, car un admin restreint peut deplacer un objet publie vers une rubrique qu'il n'administre pas

$calcul_rub : bool = true
Tags
used-by
objet_modifier()
Return values
string

objet_editer_heritage()

Fabrique la requete d'institution de l'objet, avec champs herites

objet_editer_heritage(string $objet, int $id, int $id_rubrique, string $statut, array<string|int, mixed> $champs[, bool $cond = true ]) : void
Parameters
$objet : string
$id : int
$id_rubrique : int
$statut : string
$champs : array<string|int, mixed>
$cond : bool = true

objet_lire()

Lit un objet donné connu par son id ou par un identifiant textuel unique et renvoie tout ou partie de sa description.

objet_lire(string $objet, int|string $valeur_id[, array<string|int, mixed> $options = [] ]) : array<string|int, mixed>|string|int|bool

Il est possible pour un objet donné de fournir la fonction <objet>_lire_champs qui renvoie simplement tous les champs de l'objet concerné sans aucun autre traitement. Sinon, l'appel SQL est réalisé par l'API.

Parameters
$objet : string

Type d'objet (comme article ou rubrique)

$valeur_id : int|string

Valeur du champ identifiant

$options : array<string|int, mixed> = []

Tableau d'options dont les index possibles sont:

  • champs : liste des champs à renvoyer. Si absent ou vide la fonction renvoie tous les champs.
  • champ_id : nom du champ utilisé comme identifiant de l'objet. Si absent ou vide on utilise l'id défini dans la déclaration de l'objet.
  • force : true pour reforcer une lecture en base meme si un cache existe
Return values
array<string|int, mixed>|string|int|bool

si champs est non fourni ou au format array false : l'objet demande n'existe pas array vide : l'objet existe, mais aucun champ demande n'existe array non vide : objet avec le ou les champs demandes existants (les champs demandes non existant sont absent) si champs est fourni au format string false : l'objet demande n'existe pas OU le champs demande n'existe pas string|int : valeur du champ demande pour l'objet demande

action_editer_rubrique_dist()

Action d'édition d'une rubrique

action_editer_rubrique_dist([null|int $arg = null ]) : array<string|int, mixed>

Crée la rubrique si elle n'existe pas encore Redirige après l'action sur _request('redirect') si présent

Parameters
$arg : null|int = null
  • null : vérifie la sécurité de l'action. Si ok, obtient l'identifiant de rubrique à éditer (oui 'oui' pour une nouvelle rubrique)
  • int : identifiant de rubrique dont on demande l'édition
Return values
array<string|int, mixed>

Liste : identifiant de la rubrique, message d'erreur éventuel.

rubrique_inserer()

Insérer une rubrique en base

rubrique_inserer(int $id_parent[, array<string|int, mixed>|null $set = null ]) : int
Parameters
$id_parent : int

Identifiant de la rubrique parente. 0 pour la racine.

$set : array<string|int, mixed>|null = null
Return values
int

Identifiant de la rubrique crée

rubrique_modifier()

Modifier une rubrique en base

rubrique_modifier(int $id_rubrique[, array<string|int, mixed>|null $set = null ]) : bool|string
Parameters
$id_rubrique : int

Identifiant de la rubrique modifiée

$set : array<string|int, mixed>|null = null

Tableau qu'on peut proposer en lieu et place de _request()

Return values
bool|string
  • false : Aucune modification, aucun champ n'est à modifier
  • chaîne vide : Vide si tout s'est bien passé
  • chaîne : texte d'un message d'erreur

editer_rubrique_breves()

Déplace les brèves d'une rubrique dans le secteur d'un nouveau parent

editer_rubrique_breves(int $id_rubrique, int $id_parent[, array<string|int, mixed> $c = [] ]) : bool

Si c'est une rubrique-secteur contenant des brèves, on ne deplace que si $confirme_deplace == 'oui', et change alors l'id_rubrique des brèves en question

Parameters
$id_rubrique : int

Identifiant de la rubrique déplacée

$id_parent : int

Identifiant du nouveau parent de la rubrique

$c : array<string|int, mixed> = []

Informations pour l'institution (id_rubrique, confirme_deplace)

Tags
todo

À déporter dans le plugin brèves via un pipeline ?

Return values
bool

true si le déplacement est fait ou s'il n'y a rien à faire false si la confirmation du déplacement n'est pas présente

rubrique_instituer()

Instituer une rubrique (changer son parent)

rubrique_instituer(int $id_rubrique, array<string|int, mixed> $c) : string

Change le parent d'une rubrique, si les autorisations sont correctes, mais n'accèpte pas de déplacer une rubrique dans une de ses filles, tout de même !

Recalcule les secteurs, les langues et déplace les brèves au passage.

Parameters
$id_rubrique : int

Identifiant de la rubrique à instituer

$c : array<string|int, mixed>

Informations pour l'institution (id_rubrique, confirme_deplace)

Tags
global

array $GLOBALS ['visiteur_session']

Return values
string

Chaîne vide : aucune erreur Chaîne : texte du message d'erreur

action_etre_webmestre_dist()

Prouver qu'on a les droits de webmestre via un ftp, et devenir webmestre sans refaire l'install

action_etre_webmestre_dist() : void

base_etre_webmestre_dist()

Passe l'administrateur connecté en webmestre.

base_etre_webmestre_dist() : void

action_forcer_job_dist()

Executer un travaille immediatement

action_forcer_job_dist() : void

action_inscrire_auteur_dist()

Inscrire un nouvel auteur sur la base de son nom et son email

action_inscrire_auteur_dist(string $statut, string $mail_complet, string $nom[, array<string|int, mixed> $options = [] ]) : array<string|int, mixed>|string

L'email est utilisé pour repérer si il existe déjà ou non => identifiant par défaut

Parameters
$statut : string
$mail_complet : string
$nom : string
$options : array<string|int, mixed> = []
  • login : login precalcule
  • id : id_rubrique fournit en second arg de #FORMULAIRE_INSCRIPTION
  • redirect : URL où rediriger après validation depuis l'email, sinon c'est l'accueil
  • from : email de l'envoyeur pour l'envoi du mail d'inscription
  • force_nouveau : forcer le statut nouveau sur l'auteur inscrit, meme si il existait deja en base
  • modele_mail : squelette de mail a utiliser
Return values
array<string|int, mixed>|string

test_inscription_dist()

Contrôler que le nom (qui sert à calculer le login) est plausible et que l'adresse courriel est valide.

test_inscription_dist(string $statut, string $mail, string $nom, array<string|int, mixed> $options) : array<string|int, mixed>|string

On les normalise au passage (trim etc).

On peut redéfinir cette fonction pour filtrer les adresses mail et les noms, et donner des infos supplémentaires

Parameters
$statut : string
$mail : string
$nom : string
$options : array<string|int, mixed>
Return values
array<string|int, mixed>|string
  • array : si ok, tableau avec au minimum email, nom, mode (redac / forum)
  • string : si ko, chaîne de langue servant d'argument au filtre _T expliquant le refus

inscription_nouveau()

On enregistre le demandeur comme 'nouveau', en memorisant le statut final provisoirement dans le champ prefs, afin de ne pas visualiser les inactifs A sa premiere connexion il obtiendra son statut final.

inscription_nouveau(array<string|int, mixed> $desc) : mixed|string
Parameters
$desc : array<string|int, mixed>
Return values
mixed|string

test_login()

Retourne un login valide à partir du nom et email donné

test_login(string $nom, string $mail) : string

Un suffixe incrémental est ajouté si le login obtenu existe déjà en base pour ne pas créer de doublon.

Si le login est trop court 'user' est utilisé ; puis donc 'user1', 'user2' etc...

Parameters
$nom : string
$mail : string
Return values
string

envoyer_inscription_dist()

Construction du mail envoyant les identifiants

envoyer_inscription_dist(array<string|int, mixed> $desc, string $nom, string $mode[, array<string|int, mixed> $options = [] ]) : array<string|int, mixed>

Fonction redefinissable qui doit retourner un tableau dont les elements seront les arguments de inc_envoyer_mail

Parameters
$desc : array<string|int, mixed>
$nom : string
$mode : string
$options : array<string|int, mixed> = []
Return values
array<string|int, mixed>

creer_pass_pour_auteur()

Creer un mot de passe initial aleatoire

creer_pass_pour_auteur(int $id_auteur) : string
Parameters
$id_auteur : int
Return values
string

tester_statut_inscription()

Determine le statut d'inscription : si $statut_tmp fourni, verifie qu'il est autorise sinon determine le meilleur statut possible et le renvoie

tester_statut_inscription(string $statut_tmp, int $id) : string
Parameters
$statut_tmp : string
$id : int
Return values
string

confirmer_statut_inscription()

Un nouvel inscrit prend son statut definitif a la 1ere connexion.

confirmer_statut_inscription(array<string|int, mixed> $auteur) : array<string|int, mixed>

Le statut a ete memorise dans prefs (cf test_inscription_dist). On le verifie, car la config a peut-etre change depuis, et pour compatibilite avec les anciennes versions qui n'utilisaient pas "prefs".

Parameters
$auteur : array<string|int, mixed>
Return values
array<string|int, mixed>

auteur_attribuer_jeton()

Attribuer un jeton temporaire pour un auteur en assurant l'unicite du jeton.

auteur_attribuer_jeton(int $id_auteur) : string

Chaque appel crée un nouveau jeton pour l’auteur et invalide donc le précédent

Parameters
$id_auteur : int
Return values
string

auteur_lire_jeton()

Lire un jeton temporaire d’un auteur (peut le créer au besoin)

auteur_lire_jeton(int $id_auteur[, bool $autoInit = false ]) : string|null

Cette fonction peut être pratique si plusieurs notifications proches dans la durée sont envoyées au même auteur.

Parameters
$id_auteur : int
$autoInit : bool = false

Attribue un jeton à l’auteur s’il n’en a pas déjà.

Return values
string|null

auteur_verifier_jeton()

Retrouver l'auteur par son jeton

auteur_verifier_jeton(string $jeton) : array<string|int, mixed>|bool
Parameters
$jeton : string
Return values
array<string|int, mixed>|bool

auteur_effacer_jeton()

Effacer le jeton d'un auteur apres utilisation

auteur_effacer_jeton(int $id_auteur) : bool
Parameters
$id_auteur : int
Return values
bool

action_instituer_langue_objet_dist()

Modifier la langue d'un objet

action_instituer_langue_objet_dist(string $objet, int $id, int $id_rubrique, string $changer_lang[, string $serveur = '' ]) : string
Parameters
$objet : string
$id : int
$id_rubrique : int
$changer_lang : string
$serveur : string = ''
Return values
string

action_instituer_objet_dist()

Instituer un objet avec les puces rapides

action_instituer_objet_dist([null|string $arg = null ]) : mixed
Parameters
$arg : null|string = null

Chaîne "objet id statut". En absence utilise l'argument de l'action sécurisée.

action_logout_dist()

Se déloger

action_logout_dist() : mixed

Pour éviter les CSRF on passe par une étape de confirmation si pas de jeton fourni avec un autosubmit js pour ne pas compliquer l'expérience utilisateur

Déconnecte l'utilisateur en cours et le redirige sur l'URL indiquée par l'argument de l'action sécurisée, et sinon sur la page d'accueil de l'espace public.

generer_jeton_logout()

Generer un jeton de logout personnel et ephemere

generer_jeton_logout(array<string|int, mixed> $session[, null|string $alea = null ]) : string
Parameters
$session : array<string|int, mixed>
$alea : null|string = null
Return values
string

verifier_jeton_logout()

Verifier que le jeton de logout est bon

verifier_jeton_logout(string $jeton, array<string|int, mixed> $session) : bool

Il faut verifier avec alea_ephemere_ancien si pas bon avec alea_ephemere pour gerer le cas de la rotation d'alea

Parameters
$jeton : string
$session : array<string|int, mixed>
Return values
bool

menu_rubriques()

Retourne une liste HTML des rubriques et rubriques enfants

menu_rubriques([bool $complet = true ]) : string
Parameters
$complet : bool = true
  • false pour n'avoir que le bouton racine «plan du site»
  • true pour avoir l'ensemble des rubriques en plus
Tags
used-by
action_menu_rubriques_dist()
Return values
string

Code HTML présentant la liste des rubriques

bandeau_rubrique()

Retourne une liste HTML des rubriques enfants d'une rubrique

bandeau_rubrique(int $id_rubrique, string $titre_rubrique, int $zdecal[, int $profondeur = 1 ]) : string
Parameters
$id_rubrique : int

Identifiant de la rubrique parente

$titre_rubrique : string

Titre de cette rubrique

$zdecal : int

Décalage vertical, en nombre d'élément

$profondeur : int = 1

Profondeur du parent

Tags
uses
extraire_article()
Return values
string

Code HTML présentant la liste des rubriques

extraire_article()

Obtient la liste des rubriques enfants d'une rubrique, prise dans le cache du navigateur de rubrique

extraire_article(int $id_p, array<string|int, mixed> $t) : array<string|int, mixed>
Parameters
$id_p : int

Identifiant de la rubrique parente des articles

$t : array<string|int, mixed>

Cache des rubriques

Tags
see
gen_liste_rubriques()

pour le calcul du cache

used-by
bandeau_rubrique()
Return values
array<string|int, mixed>

Liste des rubriques enfants de la rubrique (et leur titre)

gen_liste_rubriques()

Génère le cache de la liste des rubriques pour la navigation du bandeau

gen_liste_rubriques() : bool

Le cache, qui comprend pour chaque rubrique ses rubriques enfants et leur titre, est :

  • réactualisé en fonction de la meta date_calcul_rubriques
  • mis en cache dans le fichier défini par la constante _CACHE_RUBRIQUES
  • stocké également dans la globale db_art_cache
Tags
used-by
action_menu_rubriques_dist()
Return values
bool

true.

action_purger_dist()

Action de purge du cache

action_purger_dist([string|null $arg = null ]) : mixed

L'argument peut être :

  • inhibe_cache : inhibe le cache pendant 24h
  • reactive_cache : enlève l'inhibition du cache
  • cache : nettoie tous les caches (sauf celui des vignettes)
  • squelettes : nettoie le cache de compilation des squelettes
  • vignettes : nettoie le cache des vignettes (et compressions css/js)
Parameters
$arg : string|null = null

Argument attendu. En absence utilise l'argument de l'action sécurisée.

Tags
pipeline_appel

trig_purger

uses
supprime_invalideurs()
uses
purger_repertoire()

action_purger_queue_dist()

Purger la liste des travaux en attente

action_purger_queue_dist() : void

action_redirect_dist()

Script utile pour recalculer une URL symbolique dès son changement

action_redirect_dist() : mixed

Cette action est appelé par les boutons 'Voir en ligne' ou par le fichier .htaccess activé lors d'une URL du genre : http://site/1234

Tags
example
[(#VAL{redirect}
   |generer_url_action{type=article&id=#ID_ARTICLE}
   |parametre_url{var_mode,calcul}
   |icone_horizontale{<:icone_voir_en_ligne:>,racine})]

calculer_url_redirect_entite()

Retourne l’URL de l’objet sur lequel on doit rediriger

calculer_url_redirect_entite(string $type, int $id, string $var_mode) : string|null

On met en cache les calculs (si memoization), et on ne donne pas l’URL si la personne n’y a pas accès

Parameters
$type : string
$id : int
$var_mode : string
Return values
string|null

action_referencer_traduction_dist()

Définir le lien de traduction vers un objet de réference

action_referencer_traduction_dist(string $objet, int $id_objet, int $id_trad) : bool

Plusieurs cas :

  • id_trad=0 : déréference le lien de traduction de id_objet
  • id_trad=NN : référence le lien de traduction de id_objet vers NN
  • id_objet=id_trad actuel et id_trad=new_id_trad : modifie la référence de tout le groupe de traduction
Parameters
$objet : string

Type d'objet

$id_objet : int

Identifiant de l'objet

$id_trad : int

Identifiant de la référence de traduction

Return values
bool
  • False si on ne trouve pas l'objet de référence
  • True sinon

action_session_dist()

Action pour poser une variable de session SPIP

action_session_dist() : mixed

Poster sur cette action en indiquant les clés var et val

Utilisé par exemple par le script javascript 'autosave' pour sauvegarder les formulaires en cours d'édition

Tags
todo

Envoyer en réponse : json contenant toutes les variables publiques de la session

action_supprimer_lien_dist()

Action pour dissocier 2 objets entre eux

action_supprimer_lien_dist([null|string $arg = null ]) : void

L'argument attendu est objet1-id1-objet2-id2 (type d'objet, identifiant) tel que mot-7-rubrique-3.

Parameters
$arg : null|string = null

Clé des arguments. En absence utilise l'argument de l'action sécurisée.

Tags
uses
objet_dissocier()

action_supprimer_rubrique_dist()

Effacer une rubrique

action_supprimer_rubrique_dist([null|int $id_rubrique = null ]) : void
Parameters
$id_rubrique : null|int = null

action_tester_dist()

Tester les capacités du serveur à utiliser une librairie graphique

action_tester_dist() : mixed

L'argument transmis dans la clé arg est le type de librairie parmi gd2, netpbm, imagick ou convert

L'action crée une vignette en utilisant la librairie indiquée puis redirige sur l'image ainsi créée (sinon sur une image d'echec).

action_tester_taille_error_handler()

Interception très probable d'une impossibilité de créer l'image demandée dans le buffer de ob_start()

action_tester_taille_error_handler(string $output) : string

Si c'est le cas, on redirige sur la page prévue, testant un autre cas de traitement

Parameters
$output : string

Sortie du buffer

Return values
string

Sortie du buffer

action_tester_taille_dist()

Tester nos capacités à redimensionner des images avec GD2 (taille mémoire)

action_tester_taille_dist() : mixed

Ce test par dichotomie permet de calculer la taille (en pixels) de la plus grande image traitable. Ce test se relance jusqu'à trouver cette taille.

La clé arg attendue est une chaîne indiquant les valeurs minimum et maximum de taille à tester tel que '3000' (maximum) ou '3000-5000' (minimum-maximum)

auth_ldap_dist()

Fonction principale d'authentification du module auth/ldap

auth_ldap_dist(string $login, string $pass[, string $serveur = '' ][, bool $phpauth = false ]) : array<string|int, mixed>|bool
  • On se bind avec le compte generique defini dans config/ldap.php,
  • On determine le DN de l'utilisateur candidat a l'authentification,
  • On se re-bind avec ce DN et le mot de passe propose.

Si la connexion est autorisee, on renvoie pour enregistrement en session, en plus des champs SQL habituels, les informations de connexion de l'utilisateur (DN et password). Cela permettra de se binder en cours de session sous son identite specifique pour les operations necessitant des privileges particuliers. TODO: Gerer une constante de conf qui permette de choisir entre ce comportement et tout faire avec le compte generique.

Parameters
$login : string
$pass : string
$serveur : string = ''
$phpauth : bool = false
Return values
array<string|int, mixed>|bool

auth_ldap_connect()

Connexion à l'annuaire LDAP

auth_ldap_connect([string $serveur = '' ]) : array<string|int, mixed>

Il faut passer par spip_connect() pour avoir les info donc potentiellement indiquer un serveur meme si dans les fait cet argument est toujours vide

Parameters
$serveur : string = ''
Return values
array<string|int, mixed>

Retrouver un login, et vérifier son pass si demandé par `$checkpass`

auth_ldap_search(string $login, string $pass[, bool $checkpass = true ][, string $serveur = '' ]) : string
Parameters
$login : string
$pass : string
$checkpass : bool = true
$serveur : string = ''
Return values
string

Le login trouvé ou chaine vide si non trouvé

auth_ldap_retrouver()

Retrouver un DN depuis LDAP

auth_ldap_retrouver(string $dn[, array<string|int, mixed> $desc = [] ][, string $serveur = '' ]) : array<string|int, mixed>
Parameters
$dn : string
$desc : array<string|int, mixed> = []
$serveur : string = ''
Return values
array<string|int, mixed>

auth_ldap_retrouver_login()

Retrouver le login de quelqu'un qui cherche à se loger

auth_ldap_retrouver_login(string $login[, string $serveur = '' ]) : string
Parameters
$login : string
$serveur : string = ''
Return values
string

auth_ldap_verifier_pass()

Vérification de la validité d'un mot de passe pour le mode d'auth concerné

auth_ldap_verifier_pass(string $login, string $new_pass[, int $id_auteur = 0 ][, string $serveur = '' ]) : string

C'est ici que se font éventuellement les vérifications de longueur mini/maxi ou de force.

Parameters
$login : string

Le login de l'auteur : permet de vérifier que pass et login sont différents même à la creation lorsque l'auteur n'existe pas encore

$new_pass : string
$id_auteur : int = 0

Si auteur existant déjà

$serveur : string = ''
Return values
string

Message d'erreur si login non valide, chaîne vide sinon

auth_ldap_autoriser_modifier_pass()

Informer du droit de modifier ou non le pass

auth_ldap_autoriser_modifier_pass([string $serveur = '' ]) : bool

On ne peut pas détecter à l'avance si l'autorisation sera donnée, il faudra informer l'utilisateur a posteriori si la modif n'a pas pu se faire.

Parameters
$serveur : string = ''
Return values
bool

Pour un auteur LDAP, a priori toujours true, à conditiion que le serveur l'autorise: par exemple, pour OpenLDAP il faut avoir dans slapd.conf:

 access to attr=userPassword
    by self write
    ...

auth_ldap_modifier_pass()

Fonction de modification du mot de passe

auth_ldap_modifier_pass(string $login, string $new_pass, int $id_auteur[, string $serveur = '' ]) : bool

On se bind au LDAP cette fois sous l'identité de l'utilisateur, car le compte générique defini dans config/ldap.php n'a généralement pas (et ne devrait pas avoir) les droits suffisants pour faire la modification.

Parameters
$login : string
$new_pass : string
$id_auteur : int
$serveur : string = ''
Return values
bool

Informe du succès ou de l'echec du changement du mot de passe

spip_sha256()

Main routine called from an application using this include.

spip_sha256(string $str) : string

General usage: require_once('sha256.inc.php'); $hashstr = spip_sha256('abc');

Parameters
$str : string

Chaîne dont on veut calculer le SHA

Tags
deprecated
5.0

Use hash('sha256', $str)

Return values
string

Le SHA de la chaîne

auth_spip_dist()

Authentifie et si ok retourne le tableau de la ligne SQL de l'utilisateur Si risque de secu repere a l'installation retourne False

auth_spip_dist(string $login, string $pass[, string $serveur = '' ][, bool $phpauth = false ]) : array<string|int, mixed>|bool
Parameters
$login : string
$pass : string
$serveur : string = ''
$phpauth : bool = false
Return values
array<string|int, mixed>|bool

auth_spip_initialiser_secret()

Reinitialiser le secret des auth quand il est perdu si aucun webmestre n'a de backup Si force=true, on va forcer la reinit (si il est perdu) meme si des webmestres ont un backup

auth_spip_initialiser_secret([bool $force = false ]) : bool

Si on a pas perdu le secret des auth (le fichier config/cle.php est toujouts la et contient la cle), la fonction ne fait rien car réinitialiser le secret des auth invalide tous les mots de passe

Parameters
$force : bool = false
Return values
bool

auth_spip_formulaire_login()

Completer le formulaire de login avec le js ou les saisie specifiques a ce mode d'auth

auth_spip_formulaire_login(array<string|int, mixed> $flux) : array<string|int, mixed>
Parameters
$flux : array<string|int, mixed>
Return values
array<string|int, mixed>

auth_spip_autoriser_modifier_login()

Informer du droit de modifier ou non son login

auth_spip_autoriser_modifier_login([string $serveur = '' ]) : bool
Parameters
$serveur : string = ''
Return values
bool

toujours true pour un auteur cree dans SPIP

auth_spip_verifier_login()

Verification de la validite d'un login pour le mode d'auth concerne

auth_spip_verifier_login(string $new_login[, int $id_auteur = 0 ][, string $serveur = '' ]) : string
Parameters
$new_login : string
$id_auteur : int = 0

si auteur existant deja

$serveur : string = ''
Return values
string

message d'erreur si login non valide, chaine vide sinon

auth_spip_modifier_login()

Modifier le login d'un auteur SPIP

auth_spip_modifier_login(string $new_login, int $id_auteur[, string $serveur = '' ]) : bool
Parameters
$new_login : string
$id_auteur : int
$serveur : string = ''
Return values
bool

auth_spip_retrouver_login()

Retrouver le login de quelqu'un qui cherche a se loger Reconnaitre aussi ceux qui donnent leur nom ou email au lieu du login

auth_spip_retrouver_login(string $login[, string $serveur = '' ]) : string
Parameters
$login : string
$serveur : string = ''
Return values
string

auth_spip_autoriser_modifier_pass()

Informer du droit de modifier ou non le pass

auth_spip_autoriser_modifier_pass([string $serveur = '' ]) : bool
Parameters
$serveur : string = ''
Return values
bool

toujours true pour un auteur cree dans SPIP

auth_spip_verifier_pass()

Verification de la validite d'un mot de passe pour le mode d'auth concerne c'est ici que se font eventuellement les verifications de longueur mini/maxi ou de force

auth_spip_verifier_pass(string $login, string $new_pass[, int $id_auteur = 0 ][, string $serveur = '' ]) : string
Parameters
$login : string

Le login de l'auteur : permet de verifier que pass et login sont differents meme a la creation lorsque l'auteur n'existe pas encore

$new_pass : string

Nouveau mot de passe

$id_auteur : int = 0

si auteur existant deja

$serveur : string = ''
Return values
string

message d'erreur si login non valide, chaine vide sinon

auth_spip_modifier_pass()

Modifier le mot de passe de l'auteur sur le serveur concerne en s'occupant du hash et companie

auth_spip_modifier_pass(string $login, string $new_pass, int $id_auteur[, string $serveur = '' ]) : bool
Parameters
$login : string
$new_pass : string
$id_auteur : int
$serveur : string = ''
Return values
bool

auth_spip_synchroniser_distant()

Synchroniser les fichiers htpasswd

auth_spip_synchroniser_distant(int $id_auteur, array<string|int, mixed> $champs[, array<string|int, mixed> $options = [] ][, string $serveur = '' ]) : void
Parameters
$id_auteur : int
$champs : array<string|int, mixed>
$options : array<string|int, mixed> = []

all=>true permet de demander la regeneration complete des acces apres operation en base (import, upgrade)

$serveur : string = ''

protege_champ()

Protéger les saisies d'un champ de formulaire

protege_champ(mixed $valeur[, mixed $max_prof = 128 ]) : string|array<string|int, mixed>|null

Proteger les ' et les " dans les champs que l'on va injecter, sans toucher aux valeurs sérialisées

Parameters
$valeur : mixed

Saisie à protéger

$max_prof : mixed = 128
Tags
see
spip_htmlspecialchars()
Return values
string|array<string|int, mixed>|null

Saisie protégée

existe_formulaire()

Teste si un formulaire demandé possède un squelette pour l'afficher

existe_formulaire(string $form) : string|bool
Parameters
$form : string

Nom du formulaire

Tags
see
trouver_fond()
Return values
string|bool
  • string : chemin du squelette
  • false : pas de squelette trouvé

test_formulaire_inclus_par_modele()

Tester si un formulaire est appele via un modele type <formulaire|...> et le cas echeant retourne les arguments passes au modele false sinon

test_formulaire_inclus_par_modele() : false|array<string|int, mixed>
Return values
false|array<string|int, mixed>

balise_FORMULAIRE__dist()

Balises Formulaires par défaut.

balise_FORMULAIRE__dist(Champ $p) : Champ

Compilé en un appel à une balise dynamique.

Parameters
$p : Champ

Description de la balise formulaire

Return values
Champ

Description complétée du code compilé appelant la balise dynamique

balise_FORMULAIRE__dyn()

Balise dynamiques par défaut des formulaires

balise_FORMULAIRE__dyn(string $form, array<string|int, mixed> ...$args) : string|array<string|int, mixed>
Parameters
$form : string

Nom du formulaire

$args : array<string|int, mixed>

Arguments envoyés à l'appel du formulaire

Tags
note

Deux moyen d'arriver ici : soit #FORMULAIRE_XX reroute avec 'FORMULAIRE_XX' ajoute en premier arg soit #FORMULAIRE_{xx}

Return values
string|array<string|int, mixed>
  • array : squelette à appeler, durée du cache, contexte
  • string : texte à afficher directement

balise_FORMULAIRE__contexte()

Calcule le contexte à envoyer dans le squelette d'un formulaire

balise_FORMULAIRE__contexte(string $form, array<string|int, mixed> $args) : array<string|int, mixed>|string
Parameters
$form : string

Nom du formulaire

$args : array<string|int, mixed>

Arguments envoyés à l'appel du formulaire

Return values
array<string|int, mixed>|string

array: contexte d'environnement à envoyer au squelette string: Formulaire non applicable (message d’explication)

formulaire__charger()

Charger les valeurs de saisie du formulaire

formulaire__charger(string $form, array<string|int, mixed> $args, bool $poste) : array<string|int, mixed>
Parameters
$form : string
$args : array<string|int, mixed>
$poste : bool
Return values
array<string|int, mixed>

formulaire__identifier()

Vérifier que le formulaire en cours est celui qui est poste

formulaire__identifier(string $form, array<string|int, mixed> $args, array<string|int, mixed> $p) : bool

On se base sur la fonction identifier (si elle existe) qui fournit une signature identifiant le formulaire a partir de ses arguments significatifs

En l'absence de fonction identifier, on se base sur l'egalite des arguments, ce qui fonctionne dans les cas simples

Parameters
$form : string
$args : array<string|int, mixed>
$p : array<string|int, mixed>
Return values
bool

balise_FORMULAIRE_ADMIN()

Compile la balise dynamique `#FORMULAIRE_ADMIN` qui des boutons d'administration dans l'espace public

balise_FORMULAIRE_ADMIN(Champ $p) : Champ

Cette balise permet de placer les boutons d'administrations dans un endroit spécifique du site. Si cette balise n'est pas présente, les boutons seront automatiquement ajoutés par SPIP si l'auteur a activé le cookie de correspondance.

Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
see
f_admin()
example
#FORMULAIRE_ADMIN
Return values
Champ

Pile complétée du code compilé

balise_FORMULAIRE_ADMIN_stat()

Calculs de paramètres de contexte automatiques pour la balise FORMULAIRE_ADMIN

balise_FORMULAIRE_ADMIN_stat(array<string|int, mixed> $args, array<string|int, mixed> $context_compil) : array<string|int, mixed>|string

On ne peut rien dire au moment de l'execution du squelette

Parameters
$args : array<string|int, mixed>
  • Classe CSS éventuelle
$context_compil : array<string|int, mixed>

Tableau d'informations sur la compilation

Return values
array<string|int, mixed>|string
  • Liste (statut, id) si un mode d'inscription est possible
  • chaîne vide sinon.

balise_FORMULAIRE_ADMIN_dyn()

Retourne le squelette d'affichage et le contexte de la balise FORMULAIRE_ADMIN

balise_FORMULAIRE_ADMIN_dyn([string $float = '' ][, string|array<string|int, mixed> $debug = '' ]) : array<string|int, mixed>|string
Parameters
$float : string = ''

Classe CSS éventuelle

$debug : string|array<string|int, mixed> = ''

Informations sur la page contenant une erreur de compilation

Tags
note

Les boutons admin sont mis d'autorité si absents donc une variable statique contrôle si FORMULAIRE_ADMIN a été vu.

Toutefois, si c'est le debuger qui appelle, il peut avoir recopié le code dans ses données et il faut le lui refournir. Pas question de recompiler: ca fait boucler ! Le debuger transmet donc ses données, et cette balise y retrouve son petit.

Return values
array<string|int, mixed>|string

Liste : Chemin du squelette, durée du cache, contexte

admin_objet()

Préparer le contexte d'environnement pour les boutons

admin_objet() : array<string|int, mixed>

Permettra d'afficher le bouton 'Modifier ce...' s'il y a un $id_XXX défini dans le contexte de la page

Tags
note

Attention à l'ordre dans la boucle: on ne veut pas la rubrique si un autre bouton est possible

Return values
array<string|int, mixed>

Tableau de l'environnement calculé

admin_preview()

Détermine si l'élément est previsualisable

admin_preview(string $type, int $id[, array<string|int, mixed>|null $desc = null ]) : string|array<string|int, mixed>
Parameters
$type : string

Type d'objet

$id : int

Identifinant de l'objet

$desc : array<string|int, mixed>|null = null

Description de la table

Return values
string|array<string|int, mixed>
  • Chaine vide si on est déjà en prévisu ou si pas de previsualisation possible
  • Tableau d'un élément sinon.

admin_lang()

Régler les boutons dans la langue de l'admin (sinon tant pis)

admin_lang() : string
Return values
string

Code de langue

admin_valider()

Retourne une URL vers un validateur

admin_valider() : string
Return values
string

admin_debug()

Retourne une URL vers le mode debug, si l'utilisateur a le droit, et si c'est utile

admin_debug() : string
Return values
string

balise_FORMULAIRE_ECRIRE_AUTEUR()

Compile la balise dynamique `#FORMULAIRE_ECRIRE_AUTEUR` qui permet très logiquement d'afficher un formulaire pour écrire à un auteur

balise_FORMULAIRE_ECRIRE_AUTEUR(Champ $p) : Champ

Cette balise récupère l'id_auteur (et son email) ou l'id_article de la boucle AUTEURS ou ARTICLES englobante.

Le ou les emails correspondants à l'auteur ou aux auteurs de l'article sont transmis au formulaire CVT (mais ils ne seront pas dévoilés au visiteur).

Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
Return values
Champ

Pile complétée du code compilé

balise_FORMULAIRE_ECRIRE_AUTEUR_stat()

Calculs de paramètres de contexte automatiques pour la balise FORMULAIRE_ECRIRE_AUTEUR

balise_FORMULAIRE_ECRIRE_AUTEUR_stat(array<string|int, mixed> $args, array<string|int, mixed> $context_compil) : array<string|int, mixed>|string

Retourne le contexte du formulaire uniquement si l'email de l'auteur est valide, sinon rien (pas d'exécution/affichage du formulaire)

Parameters
$args : array<string|int, mixed>

Liste des arguments demandés obtenus du contexte (id_auteur, id_article, email)

$context_compil : array<string|int, mixed>

Tableau d'informations sur la compilation

Return values
array<string|int, mixed>|string
  • Liste (id_auteur, id_article, email) des paramètres du formulaire CVT
  • chaîne vide sinon (erreur ou non affichage).

balise_FORMULAIRE_INSCRIPTION()

Compile la balise dynamique `#FORMULAIRE_INSCRIPTION` qui affiche un formulaire d'inscription au site

balise_FORMULAIRE_INSCRIPTION(Champ $p) : Champ
Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
example
#FORMULAIRE_INSCRIPTION
#FORMULAIRE_INSCRIPTION{nom_inscription, #ID_RUBRIQUE}
[(#FORMULAIRE_INSCRIPTION{1comite,#ARRAY{id,#ID_RUBRIQUE}})]
Return values
Champ

Pile complétée du code compilé

balise_FORMULAIRE_INSCRIPTION_stat()

Calculs de paramètres de contexte automatiques pour la balise FORMULAIRE_INSCRIPTION

balise_FORMULAIRE_INSCRIPTION_stat(array<string|int, mixed> $args, array<string|int, mixed> $context_compil) : array<string|int, mixed>|string

En absence de mode d'inscription transmis à la balise, celui-ci est calculé en fonction de la configuration :

  • '1comite' si les rédacteurs peuvent s'inscrire,
  • '6forum' sinon si les forums sur abonnements sont actifs,
  • rien sinon.
Parameters
$args : array<string|int, mixed>
  • args[0] un statut d'auteur (rédacteur par defaut)
  • args[1] indique la rubrique éventuelle de proposition
$context_compil : array<string|int, mixed>

Tableau d'informations sur la compilation

Tags
example
#FORMULAIRE_INSCRIPTION
[(#FORMULAIRE_INSCRIPTION{mode_inscription, #ID_RUBRIQUE})]
[(#FORMULAIRE_INSCRIPTION{1comite,#ARRAY{id,#ID_RUBRIQUE}})]
Return values
array<string|int, mixed>|string
  • Liste (statut, id) si un mode d'inscription est possible
  • chaîne vide sinon.

balise_ID_LOGO__dist()

Compile la balise dynamique `#ID_LOGO_xx` qui retourne l'identifiant du document utilisé comme logo pour un objet éditorial de SPIP.

balise_ID_LOGO__dist(Champ $p) : Champ

Le type d'objet est récupéré dans le nom de la balise, tel que ID_LOGO_ARTICLE ou ID_LOGO_SITE.

Ces balises ont quelques options :

  • La balise peut aussi demander explicitement le logo normal ou de survol, avec ID_LOGO_ARTICLE_NORMAL ou ID_LOGO_ARTICLE_SURVOL.
  • On peut demander un logo de rubrique en absence de logo sur l'objet éditorial demandé avec ID_LOGO_ARTICLE_RUBRIQUE
Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
uses
generer_code_logo()
example
#ID_LOGO_ARTICLE
Return values
Champ

Pile complétée par le code à générer

Calcule le code HTML pour l'image ou l'information sur un logo

generer_code_logo(string $id_objet, string $_id_objet, string $type, string $align, mixed $_lien, Champ $p, string $suite[, string $champ = '' ]) : string
Parameters
$id_objet : string

Nom de la clé primaire de l'objet (id_article, ...)

$_id_objet : string

Code pour la compilation permettant de récupérer la valeur de l'identifiant

$type : string

Type d'objet

$align : string

Alignement demandé du logo

$_lien : mixed
$p : Champ

Pile au niveau de la balise

$suite : string

Suite éventuelle de la balise logo, telle que _SURVOL, _NORMAL ou _RUBRIQUE.

$champ : string = ''

Indique un type de champ à retourner (fichier, src, titre, descriptif, credits, id, alt)

Tags
uses
quete_logo()
uses
quete_html_logo()
used-by
balise_ID_LOGO__dist()
used-by
balise_LOGO__dist()
Return values
string

Code compilé retournant le chemin du logo ou le code HTML du logo.

balise_INFO__dist()

Compile la balise dynamique `#INFO_xx` qui génère n'importe quelle information pour un objet

balise_INFO__dist(Champ $p) : Champ

Signature : #INFO_n{objet,id_objet} où n est une colonne sur la table SQL de l'objet.

Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
link
https://www.spip.net/5544
uses
generer_objet_info()
example
#INFO_TITRE{article, #ENV{id_article}}
Return values
Champ

Pile complétée par le code à générer

balise_LOGO__dist()

Compile la balise dynamique `#LOGO_xx` qui retourne le code HTML pour afficher l'image de logo d'un objet éditorial de SPIP.

balise_LOGO__dist(Champ $p) : Champ

Le type d'objet est récupéré dans le nom de la balise, tel que LOGO_ARTICLE ou LOGO_SITE.

Ces balises ont quelques options :

  • La balise peut aussi demander explicitement le logo normal ou de survol, avec LOGO_ARTICLE_NORMAL ou LOGO_ARTICLE_SURVOL.
  • On peut demander un logo de rubrique en absence de logo sur l'objet éditorial demandé avec LOGO_ARTICLE_RUBRIQUE
  • LOGO_ARTICLE* ajoute un lien sur l'image du logo vers l'objet éditorial
  • LOGO_ARTICLE** retourne le nom du fichier de logo.
  • LOGO_ARTICLE{right}. Valeurs possibles : top left right center bottom
  • LOGO_DOCUMENT{icone}. Valeurs possibles : auto icone apercu vignette
  • LOGO_ARTICLE{200, 0}. Redimensionnement indiqué

Pour récupérer l’identifiant du document sous-jacent voir la balise ID_LOGO_...

Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
uses
generer_code_logo()
example
#LOGO_ARTICLE
Return values
Champ

Pile complétée par le code à générer

balise_MENU_LANG()

Compile la balise dynamique `#MENU_LANG` qui affiche un sélecteur de langue pour l'espace public

balise_MENU_LANG(Champ $p) : Champ

Affiche le menu des langues de l'espace public et présélectionne celle la globale $lang ou de l'arguemnt fourni: #MENU_LANG{#ENV{malangue}}

Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
link
https://www.spip.net/4626
Return values
Champ

Pile complétée du code compilé

balise_MENU_LANG_stat()

Calculs de paramètres de contexte automatiques pour la balise MENU_LANG

balise_MENU_LANG_stat(array<string|int, mixed> $args, array<string|int, mixed> $context_compil) : array<string|int, mixed>|string

S'il n'y a qu'une langue proposée, pas besoin du formulaire (éviter une balise ?php inutile)

Parameters
$args : array<string|int, mixed>

Liste des arguments demandés obtenus du contexte (lang) complétés de ceux fournis à la balise

$context_compil : array<string|int, mixed>

Tableau d'informations sur la compilation

Return values
array<string|int, mixed>|string

array: Liste (lang) des arguments collectés et fournis. string: (vide) si pas de multilinguisme

balise_MENU_LANG_dyn()

Exécution de la balise dynamique `#MENU_LANG`

balise_MENU_LANG_dyn(string $opt) : array<string|int, mixed>
Parameters
$opt : string

Langue par défaut

Tags
uses
menu_lang_pour_tous()
note

Normalement $opt sera toujours non vide suite au test ci-dessus

Return values
array<string|int, mixed>

Liste : Chemin du squelette, durée du cache, contexte

balise_MENU_LANG_ECRIRE()

Compile la balise dynamique `#MENU_LANG_ECRIRE` qui affiche un sélecteur de langue pour l'interface privée

balise_MENU_LANG_ECRIRE(Champ $p) : Champ

Affiche le menu des langues de l'espace privé et présélectionne celle la globale $lang ou de l'arguemnt fourni: #MENU_LANG_ECRIRE{#ENV{malangue}}

Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
link
https://www.spip.net/4626
Return values
Champ

Pile complétée du code compilé

balise_MENU_LANG_ECRIRE_stat()

Calculs de paramètres de contexte automatiques pour la balise MENU_LANG_ECRIRE

balise_MENU_LANG_ECRIRE_stat(array<string|int, mixed> $args, array<string|int, mixed> $context_compil) : array<string|int, mixed>|string

S'il n'y a qu'une langue proposée, pas besoin du formulaire (éviter une balise ?php inutile)

Parameters
$args : array<string|int, mixed>

Liste des arguments demandés obtenus du contexte (lang) complétés de ceux fournis à la balise

$context_compil : array<string|int, mixed>

Tableau d'informations sur la compilation

Return values
array<string|int, mixed>|string
  • array: Liste (lang) des arguments collectés et fournis.
  • string: Si pas de multilinguisme

balise_MENU_LANG_ECRIRE_dyn()

Exécution de la balise dynamique `#MENU_LANG_ECRIRE`

balise_MENU_LANG_ECRIRE_dyn(string $opt) : array<string|int, mixed>
Parameters
$opt : string

Langue par défaut

Tags
uses
menu_lang_pour_tous()
note

Normalement $opt sera toujours non vide suite au test ci-dessus

Return values
array<string|int, mixed>

Liste : Chemin du squelette, durée du cache, contexte

menu_lang_pour_tous()

Calcule l'environnement et le squelette permettant d'afficher le formulaire de sélection de changement de langue

menu_lang_pour_tous(string $nom, string $default) : array<string|int, mixed>

Le changement de langue se fait par l'appel à l'action converser

Parameters
$nom : string

Nom de la variable qui sera postée par le formulaire

$default : string

Valeur par défaut de la langue

Tags
uses
lang_select()
see
action_converser_dist()
used-by
balise_MENU_LANG_dyn()
used-by
balise_MENU_LANG_ECRIRE_dyn()
Return values
array<string|int, mixed>

Liste : Chemin du squelette, durée du cache, contexte

generer_generer_url()

Génère le code compilé des balises d'URL

generer_generer_url(string $type, Champ $p) : string

Utilise le premier paramètre de la balise d'URL comme identifiant d'objet s'il est donné, sinon le prendra dans un champ d'une boucle englobante.

Parameters
$type : string

Type d'objet

$p : Champ

Pile au niveau de la balise

Tags
uses
generer_generer_url_arg()
used-by
balise_URL__dist()
used-by
balise_URL_ARTICLE_dist()
used-by
balise_URL_SITE_dist()
Return values
string

Code compilé

generer_generer_url_arg()

Génère le code compilé des balises d'URL (en connaissant l'identifiant)

generer_generer_url_arg(string $type, Champ $p, string $_id) : string
  • Si ces balises sont utilisées pour la base locale, production des appels à generer_objet_url(id-courant, entite)

  • Si la base est externe et sous SPIP, on produit

    • l'URL de l'objet si c'est une pièce jointe, ou sinon
    • l'URL du site local appliqué sur l'objet externe, ce qui permet de le voir à travers les squelettes du site local

On communique le type-url distant à generer_objet_url mais il ne sert pas car rien ne garantit que le .htaccess soit identique. À approfondir.

Parameters
$type : string

Type d'objet

$p : Champ

Pile au niveau de la balise

$_id : string

Code compilé permettant d'obtenir l'identifiant de l'objet

Tags
see
generer_objet_url()
used-by
generer_generer_url()
Return values
string

Code compilé

balise_URL__dist()

Compile la balise générique `#URL_xxx` qui génère l'URL d'un objet

balise_URL__dist(Champ $p) : Champ

S'il existe une fonction spécifique de calcul d'URL pour l'objet demandé, tel que balise_URL_ARTICLE_dist(), la fonction l'utilisera. Sinon, on calcule une URL de façon générique.

Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
uses
generer_generer_url()
example
#URL_ARTICLE
#URL_ARTICLE{3}
Return values
Champ

Pile complétée par le code à générer

balise_URL_ARTICLE_dist()

Compile la balise `#URL_ARTICLE` qui génère l'URL d'un article

balise_URL_ARTICLE_dist(Champ $p) : Champ

Retourne l'URL (locale) d'un article mais retourne dans le cas d'un article syndiqué (boucle SYNDIC_ARTICLES), son URL distante d'origine.

Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
uses
generer_generer_url()
link
https://www.spip.net/3963
example
#URL_ARTICLE
#URL_ARTICLE{3}
Return values
Champ

Pile complétée par le code à générer

balise_URL_SITE_dist()

Compile la balise `#URL_SITE` qui génère l'URL d'un site ou de cas spécifiques

balise_URL_SITE_dist(Champ $p) : Champ|null

Génère une URL spécifique si la colonne SQL url_site est trouvée (par exemple lien hypertexte d'un article), sinon l'URL d'un site syndiqué

Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
uses
generer_generer_url()
see
calculer_url()
link
https://www.spip.net/3861
Return values
Champ|null

Pile complétée par le code à générer

balise_URL_SITE_SPIP_dist()

Compile la balise `#URL_SITE_SPIP` qui retourne l'URL du site telle que définie dans la configuration

balise_URL_SITE_SPIP_dist(Champ $p) : Champ
Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
link
https://www.spip.net/4623
Return values
Champ

Pile complétée par le code à générer

balise_URL_PAGE_dist()

Compile la balise `#URL_PAGE` qui retourne une URL de type « page »

balise_URL_PAGE_dist(Champ $p) : Champ
  • #URL_PAGE{nom} génère l'url pour la page nom
  • #URL_PAGE{nom,param=valeur} génère l'url pour la page nom avec des paramètres
  • #URL_PAGE sans argument retourne l'URL courante.
  • #URL_PAGE* retourne l'URL sans convertir les & en &amp;
Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
link
https://www.spip.net/4630
see
generer_url_public()
example
#URL_PAGE{backend} produit ?page=backend
#URL_PAGE{backend,id_rubrique=1} est équivalent à
[(#URL_PAGE{backend}|parametre_url{id_rubrique,1})]
Return values
Champ

Pile complétée par le code à générer

balise_URL_ECRIRE_dist()

Compile la balise `#URL_ECRIRE` qui retourne une URL d'une page de l'espace privé

balise_URL_ECRIRE_dist(Champ $p) : Champ
  • #URL_ECRIRE{nom} génère l'url pour la page nom de l'espace privé
  • #URL_ECRIRE{nom,param=valeur} génère l'url pour la page nom avec des paramètres
  • #URL_ECRIRE génère l'url pour la page d'accueil de l'espace privé
  • #URL_ECRIRE* retourne l'URL sans convertir les & en &amp;
Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
link
https://www.spip.net/5566
see
generer_url_ecrire()
example
#URL_ECRIRE{rubriques} -> ecrire/?exec=rubriques
Return values
Champ

Pile complétée par le code à générer

balise_URL_ACTION_AUTEUR_dist()

Compile la balise `#URL_ACTION_AUTEUR` qui retourne une URL d'action sécurisée pour l'auteur en cours

balise_URL_ACTION_AUTEUR_dist(Champ $p) : Champ

La balise accepte 3 paramètres. Les 2 premiers sont obligatoires :

  • le nom de l'action
  • l'argument transmis à l'action (une chaîne de caractère)
  • une éventuelle URL de redirection qui sert une fois l'action réalisée
Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
see
generer_action_auteur()
example

#URL_ACTION_AUTEUR{converser,arg,redirect} pourra produire ecrire/?action=converser&arg=arg&hash=xxx&redirect=redirect

Return values
Champ

Pile complétée par le code à générer

balise_URL_LOGOUT()

Compile la balise dynamique `#URL_LOGOUT` qui génère une URL permettant de déconnecter l'auteur actuellement connecté

balise_URL_LOGOUT(Champ $p) : Champ
Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
example
[<a href="(#URL_LOGOUT)">déconnexion</a>]
Return values
Champ

Pile complétée du code compilé

balise_URL_LOGOUT_stat()

Calculs de paramètres de contexte automatiques pour la balise URL_LOGOUT

balise_URL_LOGOUT_stat(array<string|int, mixed> $args, array<string|int, mixed> $context_compil) : array<string|int, mixed>
Parameters
$args : array<string|int, mixed>

Liste des arguments transmis à la balise

  • $args[0] = URL destination après logout [(#URL_LOGOUT{url})]
$context_compil : array<string|int, mixed>

Tableau d'informations sur la compilation

Return values
array<string|int, mixed>

Liste (url) des arguments collectés.

balise_URL_LOGOUT_dyn()

Exécution de la balise dynamique `#URL_LOGOUT`

balise_URL_LOGOUT_dyn(string $cible) : string

Retourne une URL de déconnexion uniquement si le visiteur est connecté.

Parameters
$cible : string

URL de destination après déconnexion

Return values
string

URL de déconnexion ou chaîne vide.

sql_error_backtrace()

Retourne la pile de fonctions utilisée lors de la précence d'une erreur SQL

sql_error_backtrace([bool $compil_info = false ]) : array<string|int, mixed>|string
Parameters
$compil_info : bool = false
  • false : Retourne un texte présentant les fonctions utilisées
  • true : retourne un tableau indiquant un contexte de compilation à l'origine de la requête, utile pour présenter une erreur au débuggueur via erreur_squelette()
Tags
note

Ignore les fonctions include_once, include_spip, find_in_path

used-by
spip_mysql_error()
used-by
spip_sqlite_error()
Return values
array<string|int, mixed>|string

contexte de l'erreur

sql_get_charset()

Demande si un charset est disponible

sql_get_charset(string $charset[, string $serveur = '' ][, bool $option = true ]) : string|bool

Demande si un charset (tel que utf-8) est disponible sur le gestionnaire de base de données de la connexion utilisée

Parameters
$charset : string

Le charset souhaité

$serveur : string = ''

Le nom du connecteur

$option : bool = true

Inutilise

Tags
see
sql_set_charset()

pour utiliser un charset

Return values
string|bool

Retourne le nom du charset si effectivement trouvé, sinon false.

sql_set_charset()

Regler le codage de connexion

sql_set_charset(string $charset[, string $serveur = '' ][, bool|string $option = true ]) : bool

Affecte un charset (tel que utf-8) sur la connexion utilisee avec le gestionnaire de base de donnees

Parameters
$charset : string

Le charset souhaite

$serveur : string = ''

Le nom du connecteur

$option : bool|string = true

Peut avoir 2 valeurs :

  • true pour executer la requete.
  • continue pour ne pas echouer en cas de serveur sql indisponible.
Tags
see
sql_get_charset()

pour tester l'utilisation d'un charset

Return values
bool

Retourne true si elle reussie.

sql_select()

Effectue une requête de selection

sql_select([array<string|int, mixed>|string $select = [] ][, array<string|int, mixed>|string $from = [] ][, array<string|int, mixed>|string $where = [] ][, array<string|int, mixed>|string $groupby = [] ][, array<string|int, mixed>|string $orderby = [] ][, string $limit = '' ][, string|array<string|int, mixed> $having = [] ][, string $serveur = '' ][, bool|string $option = true ]) : mixed

Fonction de selection (SELECT), retournant la ressource interrogeable par sql_fetch.

Parameters
$select : array<string|int, mixed>|string = []

Liste des champs a recuperer (Select)

$from : array<string|int, mixed>|string = []

Tables a consulter (From)

$where : array<string|int, mixed>|string = []

Conditions a remplir (Where)

$groupby : array<string|int, mixed>|string = []

critere de regroupement (Group by)

$orderby : array<string|int, mixed>|string = []

Tableau de classement (Order By)

$limit : string = ''

critere de limite (Limit)

$having : string|array<string|int, mixed> = []

Tableau ou chaine des des post-conditions à remplir (Having)

$serveur : string = ''

Le serveur sollicite (pour retrouver la connexion)

$option : bool|string = true

Peut avoir 3 valeurs :

  • false -> ne pas l'exécuter mais la retourner,
  • continue -> ne pas echouer en cas de serveur sql indisponible,
  • true|array -> executer la requête. Le cas array est, pour une requete produite par le compilateur, un tableau donnnant le contexte afin d'indiquer le lieu de l'erreur au besoin
Tags
see
sql_fetch()

Pour boucler sur les resultats de cette fonction

used-by
sql_get_select()
used-by
sql_fetsel()
used-by
sql_allfetsel()
Return values
mixed

Ressource SQL

- Ressource SQL pour sql_fetch, si la requete est correcte
- false en cas d'erreur
- Chaine contenant la requete avec $option=false

Retourne false en cas d'erreur, apres l'avoir denoncee. Les portages doivent retourner la requete elle-meme en cas d'erreur, afin de disposer du texte brut.

sql_get_select()

Recupere la syntaxe de la requete select sans l'executer

sql_get_select([array<string|int, mixed>|string $select = [] ][, array<string|int, mixed>|string $from = [] ][, array<string|int, mixed>|string $where = [] ][, array<string|int, mixed>|string $groupby = [] ][, array<string|int, mixed>|string $orderby = [] ][, string $limit = '' ][, string|array<string|int, mixed> $having = [] ][, string $serveur = '' ]) : mixed

Passe simplement $option a false au lieu de true sans obliger a renseigner tous les arguments de sql_select. Les autres parametres sont identiques.

Parameters
$select : array<string|int, mixed>|string = []

Liste des champs a recuperer (Select)

$from : array<string|int, mixed>|string = []

Tables a consulter (From)

$where : array<string|int, mixed>|string = []

Conditions a remplir (Where)

$groupby : array<string|int, mixed>|string = []

critere de regroupement (Group by)

$orderby : array<string|int, mixed>|string = []

Tableau de classement (Order By)

$limit : string = ''

critere de limite (Limit)

$having : string|array<string|int, mixed> = []

Tableau ou chaine des des post-conditions à remplir (Having)

$serveur : string = ''

Le serveur sollicite (pour retrouver la connexion)

Tags
uses
sql_select()
Return values
mixed

Chaine contenant la requete ou false en cas d'erreur

sql_countsel()

Retourne le nombre de lignes d'une sélection

sql_countsel([array<string|int, mixed>|string $from = [] ][, array<string|int, mixed>|string $where = [] ][, array<string|int, mixed>|string $groupby = [] ][, string|array<string|int, mixed> $having = [] ][, string $serveur = '' ][, bool|string $option = true ]) : int|bool

Ramène seulement et tout de suite le nombre de lignes Pas de colonne ni de tri à donner donc.

Parameters
$from : array<string|int, mixed>|string = []

Tables a consulter (From)

$where : array<string|int, mixed>|string = []

Conditions a remplir (Where)

$groupby : array<string|int, mixed>|string = []

critere de regroupement (Group by)

$having : string|array<string|int, mixed> = []

Tableau ou chaine des des post-conditions à remplir (Having)

$serveur : string = ''

Le serveur sollicite (pour retrouver la connexion)

$option : bool|string = true

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.
Tags
see
sql_count()
example
if (sql_countsel('spip_mots_liens', array(
    "objet=".sql_quote('article'),
    "id_article=".sql_quote($id_article)) > 0) {
        // ...
}
Return values
int|bool
  • Nombre de lignes de resultat
  • ou false en cas d'erreur

sql_alter()

Modifie la structure de la base de données

sql_alter(string $q[, string $serveur = '' ][, bool|string $option = true ]) : mixed

Effectue une opération ALTER.

Parameters
$q : string

La requête à exécuter (sans la préceder de 'ALTER ')

$serveur : string = ''

Le serveur sollicite (pour retrouver la connexion)

$option : bool|string = true

Peut avoir 2 valeurs :

  • true : exécuter la requete
  • 'continue' : ne pas échouer en cas de serveur sql indisponible
Tags
example
sql_alter('DROP COLUMN supprimer');
Return values
mixed

2 possibilités :

  • Incertain en cas d'exécution correcte de la requête
  • false en cas de serveur indiponible ou d'erreur

Ce retour n'est pas pertinent pour savoir si l'opération est correctement réalisée.

sql_fetch()

Retourne un enregistrement d'une selection

sql_fetch(mixed $res[, string $serveur = '' ][, bool|string $option = true ]) : array<string|int, mixed>|false

Retourne un resultat d'une ressource obtenue avec sql_select()

Parameters
$res : mixed

Ressource retournee par sql_select()

$serveur : string = ''

Le nom du connecteur

$option : bool|string = true

Peut avoir 2 valeurs :

  • true -> executer la requete
  • continue -> ne pas echouer en cas de serveur sql indisponible
Return values
array<string|int, mixed>|false

Tableau de cles (colonnes SQL ou alias) / valeurs (valeurs dans la colonne de la table ou calculee) presentant une ligne de resultat d'une selection

sql_fetch_all()

Retourne tous les enregistrements d'une selection

sql_fetch_all(mixed $res[, string $serveur = '' ][, bool|string $option = true ]) : array<string|int, mixed>

Retourne tous les resultats d'une ressource obtenue avec sql_select() dans un tableau

Parameters
$res : mixed

Ressource retournee par sql_select()

$serveur : string = ''

Le nom du connecteur

$option : bool|string = true

Peut avoir 2 valeurs :

  • true -> executer la requete
  • continue -> ne pas echouer en cas de serveur sql indisponible
Return values
array<string|int, mixed>

Tableau contenant les enregistrements. Chaque entree du tableau est un autre tableau de cles (colonnes SQL ou alias) / valeurs (valeurs dans la colonne de la table ou calculee) presentant une ligne de resultat d'une selection

sql_seek()

Déplace le pointeur d'une ressource de sélection

sql_seek(mixed $res, int $row_number[, string $serveur = '' ][, bool|string $option = true ]) : bool

Deplace le pointeur sur un numéro de ligne précisé sur une ressource issue de sql_select, afin que le prochain sql_fetch récupère cette ligne.

Parameters
$res : mixed

Ressource issue de sql_select

$row_number : int

Numero de ligne sur laquelle placer le pointeur

$serveur : string = ''

Le nom du connecteur

$option : bool|string = true

Peut avoir 2 valeurs :

  • true -> executer la requete
  • continue -> ne pas echouer en cas de serveur sql indisponible
Tags
see
sql_skip()

Pour sauter des enregistrements

Return values
bool

Operation effectuée (true), sinon false.

sql_listdbs()

Liste des bases de donnees accessibles

sql_listdbs([string $serveur = '' ][, bool|string $option = true ]) : array<string|int, mixed>|bool

Retourne un tableau du nom de toutes les bases de donnees accessibles avec les permissions de l'utilisateur SQL de cette connexion. Attention on n'a pas toujours les droits !

Parameters
$serveur : string = ''

Nom du connecteur

$option : bool|string = true

Peut avoir 2 valeurs :

  • true -> executer la requete
  • continue -> ne pas echouer en cas de serveur sql indisponible
Return values
array<string|int, mixed>|bool

Tableau contenant chaque nom de base de donnees. False en cas d'erreur.

sql_selectdb()

Demande d'utiliser d'une base de donnees

sql_selectdb(string $nom[, string $serveur = '' ][, bool|string $option = true ]) : bool|string
Parameters
$nom : string

Nom de la base a utiliser

$serveur : string = ''

Nom du connecteur

$option : bool|string = true

Peut avoir 2 valeurs :

  • true -> executer la requete
  • continue -> ne pas echouer en cas de serveur sql indisponible
Return values
bool|string
  • True ou nom de la base en cas de success.
  • False en cas d'erreur.

sql_count()

Retourne le nombre de lignes d’une ressource de sélection obtenue avec `sql_select()`

sql_count(object $res[, string $serveur = '' ][, bool|string $option = true ]) : bool|string
Parameters
$res : object

Ressource SQL

$serveur : string = ''

Nom du connecteur

$option : bool|string = true

Peut avoir 2 valeurs :

  • true -> executer la requete
  • continue -> ne pas echouer en cas de serveur sql indisponible
Tags
see
sql_select()
see
sql_countsel()
Return values
bool|string
  • int Nombre de lignes,
  • false en cas d'erreur.

sql_free()

Libère une ressource de résultat

sql_free(object $res[, string $serveur = '' ][, bool|string $option = true ]) : bool

Indique au gestionnaire SQL de libérer de sa mémoire la ressoucre de résultat indiquée car on n'a plus besoin de l'utiliser.

Parameters
$res : object

Ressource de résultat

$serveur : string = ''

Nom de la connexion

$option : bool|string = true

Peut avoir 2 valeurs :

  • true -> exécuter la requete
  • continue -> ne pas échouer en cas de serveur SQL indisponible
Return values
bool

True si réussi

sql_insert()

Insère une ligne dans une table

sql_insert(string $table, string $noms, string $valeurs[, array<string|int, mixed> $desc = [] ][, string $serveur = '' ][, bool|string $option = true ]) : bool|string
Parameters
$table : string

Nom de la table SQL

$noms : string

Liste des colonnes impactées,

$valeurs : string

Liste des valeurs,

$desc : array<string|int, mixed> = []

Tableau de description des colonnes de la table SQL utilisée (il sera calculé si nécessaire s'il n'est pas transmis).

$serveur : string = ''

Nom du connecteur

$option : bool|string = true

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
Tags
see
sql_insertq()
see
sql_quote()
note

Cette fonction ne garantit pas une portabilité totale, et n'est là que pour faciliter des migrations de vieux scripts. Préférer sql_insertq.

Return values
bool|string
  • int|true identifiant de l'élément inséré (si possible), ou true, si réussite
  • texte de la requête si demandé,
  • False en cas d'erreur.

sql_insertq()

Insère une ligne dans une table

sql_insertq(string $table[, array<string|int, mixed> $couples = [] ][, array<string|int, mixed> $desc = [] ][, string $serveur = '' ][, bool|string $option = true ]) : int|bool|string

Protègera chaque valeur comme sql_quote.

Parameters
$table : string

Nom de la table SQL

$couples : array<string|int, mixed> = []

Tableau (nom => valeur)

$desc : array<string|int, mixed> = []

Tableau de description des colonnes de la table SQL utilisée (il sera calculé si nécessaire s'il n'est pas transmis).

$serveur : string = ''

Nom du connecteur

$option : bool|string = true

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
Tags
see
sql_insert()
see
sql_insertq_multi()
see
sql_quote()
see
objet_inserer()
example
$titre = _request('titre');
$id = sql_insertq('spip_rubriques', array('titre' => $titre));
used-by
objet_inserer()
Return values
int|bool|string
  • int|true identifiant de l'élément inséré (si possible), ou true, si réussite
  • texte de la requête si demandé,
  • False en cas d'erreur.

sql_insertq_multi()

Insère plusieurs lignes d'un coup dans une table

sql_insertq_multi(string $table[, array<string|int, mixed> $couples = [] ][, array<string|int, mixed> $desc = [] ][, string $serveur = '' ][, bool|string $option = true ]) : bool|string

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.

Parameters
$table : string

Nom de la table SQL

$couples : array<string|int, mixed> = []

Tableau de tableaux associatifs (nom => valeur)

$desc : array<string|int, mixed> = []

Tableau de description des colonnes de la table SQL utilisée (il sera calculé si nécessaire s'il n'est pas transmis).

$serveur : string = ''

Nom du connecteur

$option : bool|string = true

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
Tags
see
sql_insertq()
Return values
bool|string
  • true en cas de succès,
  • texte de la requête si demandé,
  • false en cas d'erreur.

sql_update()

Met à jour des enregistrements d'une table SQL

sql_update(string $table, array<string|int, mixed> $exp[, string|array<string|int, mixed> $where = '' ][, array<string|int, mixed> $desc = [] ][, string $serveur = '' ][, bool|string $option = true ]) : array<string|int, mixed>|bool|string

Les valeurs ne sont pas échappées, ce qui permet de modifier une colonne en utilisant la valeur d'une autre colonne ou une expression SQL.

Il faut alors protéger avec sql_quote() manuellement les valeurs qui en ont besoin.

Dans les autres cas, préférer sql_updateq().

Parameters
$table : string

Nom de la table

$exp : array<string|int, mixed>

Couples (colonne => valeur)

$where : string|array<string|int, mixed> = ''

Conditions a remplir (Where)

$desc : array<string|int, mixed> = []

Tableau de description des colonnes de la table SQL utilisée (il sera calculé si nécessaire s'il n'est pas transmis).

$serveur : string = ''

Nom de la connexion

$option : bool|string = true

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
Tags
see
sql_updateq()
Return values
array<string|int, mixed>|bool|string
  • string : texte de la requête si demandé
  • true si la requête a réussie, false sinon
  • array Tableau décrivant la requête et son temps d'exécution si var_profile est actif

sql_updateq()

Met à jour du contenu d’une table SQL

sql_updateq(string $table, array<string|int, mixed> $exp[, array<string|int, mixed>|string $where = '' ][, array<string|int, mixed> $desc = [] ][, string $serveur = '' ][, bool|string $option = true ]) : bool|string

Le contenu transmis à la fonction est protégé automatiquement comme sql_quote().

Parameters
$table : string

Nom de la table SQL

$exp : array<string|int, mixed>

Couples (colonne => valeur)

$where : array<string|int, mixed>|string = ''

Conditions à vérifier

$desc : array<string|int, mixed> = []

Tableau de description des colonnes de la table SQL utilisée (il sera calculé si nécessaire s'il n'est pas transmis).

$serveur : string = ''

Nom du connecteur

$option : bool|string = true

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
Tags
see
sql_quote()
see
sql_update()
example
sql_updateq('table', array('colonne' => $valeur), 'id_table=' . intval($id_table));
sql_updateq("spip_auteurs", array("statut" => '6forum'), "id_auteur=$id_auteur") ;
note

sql_update() est presque toujours appelée sur des constantes ou des dates Cette fonction (sql_updateq) est donc plus utile que la précédente, d'autant qu'elle permet de gerer les différences de représentation des constantes.

Return values
bool|string
  • true si réussite
  • texte de la requête si demandé,
  • false en cas d'erreur.

sql_delete()

Supprime des enregistrements d'une table

sql_delete(string $table[, string|array<string|int, mixed> $where = '' ][, string $serveur = '' ][, bool|string $option = true ]) : bool|string
Parameters
$table : string

Nom de la table SQL

$where : string|array<string|int, mixed> = ''

Conditions à vérifier

$serveur : string = ''

Nom du connecteur

$option : bool|string = true

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
Tags
example
sql_delete('spip_articles', 'id_article='.sql_quote($id_article));
Return values
bool|string
  • int : nombre de suppressions réalisées,
  • texte de la requête si demandé,
  • false en cas d'erreur.

sql_replace()

Insère où met à jour une entrée d’une table SQL

sql_replace(string $table, array<string|int, mixed> $couples[, array<string|int, mixed> $desc = [] ][, string $serveur = '' ][, bool|string $option = true ]) : bool|string

La clé ou les cles primaires doivent être présentes dans les données insérés. La fonction effectue une protection automatique des données.

Préférez sql_insertq() et sql_updateq().

Parameters
$table : string

Nom de la table SQL

$couples : array<string|int, mixed>

Couples colonne / valeur à modifier,

$desc : array<string|int, mixed> = []

Tableau de description des colonnes de la table SQL utilisée (il sera calculé si nécessaire s'il n'est pas transmis).

$serveur : string = ''

Nom du connecteur

$option : bool|string = true

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
Tags
see
sql_insertq()
see
sql_updateq()
Return values
bool|string
  • true si réussite
  • texte de la requête si demandé,
  • false en cas d'erreur.

sql_replace_multi()

Insère où met à jour des entrées d’une table SQL

sql_replace_multi(string $table, array<string|int, mixed> $tab_couples[, array<string|int, mixed> $desc = [] ][, string $serveur = '' ][, bool|string $option = true ]) : bool|string

La clé ou les cles primaires doivent être présentes dans les données insérés. La fonction effectue une protection automatique des données.

Préférez sql_insertq_multi() et sql_updateq().

Parameters
$table : string

Nom de la table SQL

$tab_couples : array<string|int, mixed>

Tableau de tableau (colonne / valeur à modifier),

$desc : array<string|int, mixed> = []

Tableau de description des colonnes de la table SQL utilisée (il sera calculé si nécessaire s'il n'est pas transmis).

$serveur : string = ''

Nom du connecteur

$option : bool|string = true

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
Tags
see
sql_insertq_multi()
see
sql_updateq()
see
sql_replace()
Return values
bool|string
  • true si réussite
  • texte de la requête si demandé,
  • false en cas d'erreur.

sql_drop_table()

Supprime une table SQL (structure et données)

sql_drop_table(string $table[, bool $exist = false ][, string $serveur = '' ][, bool|string $option = true ]) : bool|string
Parameters
$table : string

Nom de la table

$exist : bool = false

true pour ajouter un test sur l'existence de la table, false sinon

$serveur : string = ''

Nom du connecteur

$option : bool|string = true

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
Tags
see
sql_create()
see
sql_drop_view()
Return values
bool|string
  • true en cas de succès,
  • texte de la requête si demandé,
  • false en cas d'erreur.

sql_drop_view()

Supprime une vue SQL

sql_drop_view(string $table[, bool $exist = false ][, string $serveur = '' ][, bool|string $option = true ]) : bool|string
Parameters
$table : string

Nom de la vue SQL

$exist : bool = false

True pour ajouter un test d'existence avant de supprimer

$serveur : string = ''

Nom de la connexion

$option : bool|string = true

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
Tags
see
sql_create_view()
see
sql_drop_table()
Return values
bool|string
  • string texte de la requête si demandé
  • true si la requête a réussie, false sinon

sql_showbase()

Retourne une ressource de la liste des tables de la base de données

sql_showbase([string $spip = null ][, string $serveur = '' ][, bool|string $option = true ]) : object|bool|string
Parameters
$spip : string = null

Filtre sur tables retournées

  • NULL : retourne les tables SPIP uniquement (tables préfixées avec le préfixe de la connexion)
  • '%' : retourne toutes les tables de la base
$serveur : string = ''

Le nom du connecteur

$option : bool|string = true

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.
Tags
see
sql_alltable()
used-by
sql_alltable()
Return values
object|bool|string

Ressource à utiliser avec sql_fetch()

sql_alltable()

Retourne la liste des tables SQL

sql_alltable([string $spip = null ][, string $serveur = '' ][, bool|string $option = true ]) : array<string|int, mixed>
Parameters
$spip : string = null

Filtre sur tables retournées

  • NULL : retourne les tables SPIP uniquement (tables préfixées avec le préfixe de la connexion)
  • '%' : retourne toutes les tables de la base
$serveur : string = ''

Le nom du connecteur

$option : bool|string = true

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.
Tags
uses
sql_showbase()
Return values
array<string|int, mixed>

Liste des tables SQL

sql_showtable()

Retourne la liste (et description) des colonnes et key d’une table SQL

sql_showtable(string $table[, bool $table_spip = false ][, string $serveur = '' ][, bool|string $option = true ]) : bool|array<string|int, mixed>
Parameters
$table : string

Nom de la table SQL

$table_spip : bool = false

true pour remplacer automatiquement « spip » par le vrai préfixe de table

$serveur : string = ''

Nom du connecteur

$option : bool|string = true

Peut avoir 3 valeurs :

  • false : ne pas l'exécuter mais la retourner,
  • 'continue' : ne pas échouer en cas de serveur SQL indisponible,
  • true : exécuter la requete.
Tags
note

Dans la plupart des situations, il vaut mieux utiliser directement la fonction trouver_table() qui possède un cache.

see
base_trouver_table_dist()
Return values
bool|array<string|int, mixed>
  • false en cas d'echec
  • sinon array : Tableau avec
    • 'field' => array(colonne => description)
    • 'key' => array(type => key)
    • 'join' => array() // jointures, si déclarées.

sql_table_exists()

Teste si une table SQL existe ou non dans la base

sql_table_exists(string $table[, bool $table_spip = true ][, string $serveur = '' ][, bool|string $option = true ]) : bool|string
Parameters
$table : string

Nom de la table

$table_spip : bool = true

true pour remplacer automatiquement « spip » par le vrai préfixe de table

$serveur : string = ''

Nom du connecteur

$option : bool|string = true

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 values
bool|string
  • true si la table existe,
  • texte de la requête si demandé,
  • false en cas d'erreur.

sql_create()

Crée une table dans la base de données

sql_create(string $nom, array<string|int, mixed> $champs[, array<string|int, mixed> $cles = [] ][, bool $autoinc = false ][, bool $temporary = false ][, string $serveur = '' ][, bool|string $option = true ]) : bool
Parameters
$nom : string

Nom de la table

$champs : array<string|int, mixed>

Couples (colonne => description)

$cles : array<string|int, mixed> = []

Clé (nomdelaclef => champ)

$autoinc : bool = false

Si un champ est clef primaire est numérique alors la propriété d’autoincrémentation sera ajoutée

$temporary : bool = false

true pour créer une table temporaire (au sens SQL)

$serveur : string = ''

Nom du connecteur

$option : bool|string = true

Peut avoir 3 valeurs :

  • false : ne pas l'exécuter mais la retourner,
  • 'continue' : ne pas échouer en cas de serveur SQL indisponible,
  • true : exécuter la requete.
Tags
example
sql_create("spip_tables",
  array(
      "id_table" => "bigint(20) NOT NULL default '0'",
      "colonne1"=> "varchar(3) NOT NULL default 'oui'",
      "colonne2"=> "text NOT NULL default ''"
   ),
   array(
      'PRIMARY KEY' => "id_table",
      'KEY colonne1' => "colonne1"
   )
);
Return values
bool

true si succès, false en cas d'echec

sql_create_base()

Crée une base de données

sql_create_base(string $nom[, string $serveur = '' ][, bool|string $option = true ]) : bool
Parameters
$nom : string

Nom de la base (sans l'extension de fichier si gestionnaire SQLite)

$serveur : string = ''

Nom de la connexion

$option : bool|string = true

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 values
bool

true si la base est créee.

sql_create_view()

Crée une vue SQL

sql_create_view(string $nom, string $select_query[, string $serveur = '' ][, bool|string $option = true ]) : bool|string
Parameters
$nom : string

Nom de la vue

$select_query : string

Une requête SELECT, idéalement crée avec sql_get_select(...)

$serveur : string = ''

Nom du connecteur

$option : bool|string = true

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
Tags
see
sql_drop_view()
see
sql_create()
see
sql_get_select()

Pour obtenir le texte de la requête SELECT pour créer la vue.

Return values
bool|string
  • true si succès,
  • texte de la requête si demandé
  • false en cas d'échec.

sql_multi()

Retourne l'instruction SQL pour obtenir le texte d'un champ contenant une balise `<multi>` dans la langue indiquée

sql_multi(string $sel, string $lang[, string $serveur = '' ][, bool|string $option = true ]) : string

Cette sélection est mise dans l'alias multi (instruction AS multi).

Parameters
$sel : string

Colonne ayant le texte

$lang : string

Langue à extraire

$serveur : string = ''

Nom du connecteur

$option : bool|string = true

Peut avoir 2 valeurs :

  • true : exécuter la requête
  • 'continue' : ne pas échouer en cas de serveur sql indisponible
Tags
example
$t = sql_multi('chapo', 'fr');
Return values
string

texte de sélection pour la requête

sql_error()

Retourne la dernière erreur connue

sql_error([string $serveur = '' ]) : bool|string
Parameters
$serveur : string = ''

Nom du connecteur

Return values
bool|string

Description de l'erreur False si le serveur est indisponible

sql_errno()

Retourne le numéro de la derniere erreur connue

sql_errno([string $serveur = '' ]) : bool|int
Parameters
$serveur : string = ''

Nom du connecteur

Return values
bool|int

Numéro de l'erreur False si le serveur est indisponible

sql_explain()

Retourne une explication de requête (Explain) SQL

sql_explain(string $q[, string $serveur = '' ][, bool|string $option = true ]) : array<string|int, mixed>|false
Parameters
$q : string

texte de la requête

$serveur : string = ''

Nom de la connexion

$option : bool|string = true

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 values
array<string|int, mixed>|false

Tableau de l'explication

sql_optimize()

Optimise une table SQL

sql_optimize(string $table[, string $serveur = '' ][, bool $option = true ]) : bool
Parameters
$table : string

Nom de la table

$serveur : string = ''

Nom de la connexion

$option : bool = true

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 values
bool

Toujours true

sql_repair()

Répare une table SQL

sql_repair(string $table[, string $serveur = '' ][, bool|string $option = true ]) : bool|string
Parameters
$table : string

Nom de la table SQL

$serveur : string = ''

Nom de la connexion

$option : bool|string = true

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 values
bool|string
  • string texte de la requête si demandée,
  • true si la requête a réussie, false sinon

sql_query()

Exécute une requête SQL

sql_query(string $ins[, string $serveur = '' ][, bool|string $option = true ]) : array<string|int, mixed>|resource|string|bool

Fonction la plus générale ... et la moins portable À n'utiliser qu'en dernière extrémité

Parameters
$ins : string

Requête

$serveur : string = ''

Nom de la connexion

$option : bool|string = true

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 values
array<string|int, mixed>|resource|string|bool
  • string : texte de la requête si on ne l'exécute pas
  • ressource|bool : Si requête exécutée
  • array : Tableau décrivant requête et temps d'exécution si var_profile actif pour tracer.

sql_fetsel()

Retourne la première ligne d'une sélection

sql_fetsel([array<string|int, mixed>|string $select = [] ][, array<string|int, mixed>|string $from = [] ][, array<string|int, mixed>|string $where = [] ][, array<string|int, mixed>|string $groupby = [] ][, array<string|int, mixed>|string $orderby = [] ][, string $limit = '' ][, string|array<string|int, mixed> $having = [] ][, string $serveur = '' ][, bool|string $option = true ]) : array<string|int, mixed>|string|false

Retourne la première ligne de résultat d'une sélection comme si l'on appelait successivement sql_select() puis sql_fetch()

Parameters
$select : array<string|int, mixed>|string = []

Liste des champs a recuperer (Select)

$from : array<string|int, mixed>|string = []

Tables a consulter (From)

$where : array<string|int, mixed>|string = []

Conditions a remplir (Where)

$groupby : array<string|int, mixed>|string = []

critere de regroupement (Group by)

$orderby : array<string|int, mixed>|string = []

Tableau de classement (Order By)

$limit : string = ''

critere de limite (Limit)

$having : string|array<string|int, mixed> = []

Tableau ou chaine des des post-conditions à remplir (Having)

$serveur : string = ''

Le serveur sollicite (pour retrouver la connexion)

$option : bool|string = true

Peut avoir 3 valeurs :

  • true -> executer la requete.
  • continue -> ne pas echouer en cas de serveur sql indisponible.
  • false -> ne pas l'executer mais la retourner.
Tags
example
$art = sql_fetsel(array('id_rubrique','id_secteur'), 'spip_articles', 'id_article='.sql_quote($id_article));
$id_rubrique = $art['id_rubrique'];
uses
sql_select()
uses
sql_fetch()
see
sql_getfetsel()
used-by
sql_getfetsel()
Return values
array<string|int, mixed>|string|false

Tableau de la premiere ligne de resultat de la selection tel que array('id_rubrique' => 1, 'id_secteur' => 2)

sql_allfetsel()

Retourne le tableau de toutes les lignes d'une selection

sql_allfetsel([array<string|int, mixed>|string $select = [] ][, array<string|int, mixed>|string $from = [] ][, array<string|int, mixed>|string $where = [] ][, array<string|int, mixed>|string $groupby = [] ][, array<string|int, mixed>|string $orderby = [] ][, string $limit = '' ][, string|array<string|int, mixed> $having = [] ][, string $serveur = '' ][, bool|string $option = true ]) : array<string|int, mixed>

Retourne toutes les lignes de resultat d'une selection comme si l'on appelait successivement sql_select() puis while(sql_fetch())

Parameters
$select : array<string|int, mixed>|string = []

Liste des champs a recuperer (Select)

$from : array<string|int, mixed>|string = []

Tables a consulter (From)

$where : array<string|int, mixed>|string = []

Conditions a remplir (Where)

$groupby : array<string|int, mixed>|string = []

critere de regroupement (Group by)

$orderby : array<string|int, mixed>|string = []

Tableau de classement (Order By)

$limit : string = ''

critere de limite (Limit)

$having : string|array<string|int, mixed> = []

Tableau ou chaine des des post-conditions à remplir (Having)

$serveur : string = ''

Le serveur sollicite (pour retrouver la connexion)

$option : bool|string = true

Peut avoir 3 valeurs :

  • true -> executer la requete.
  • continue -> ne pas echouer en cas de serveur sql indisponible.
  • false -> ne pas l'executer mais la retourner.
Tags
example
$rubs = sql_allfetsel('id_rubrique', 'spip_articles', 'id_secteur='.sql_quote($id_secteur));
// $rubs = array(array('id_rubrique'=>1), array('id_rubrique'=>3, ...)
uses
sql_select()
uses
sql_fetch()
Return values
array<string|int, mixed>

Tableau de toutes les lignes de resultat de la selection Chaque entree contient un tableau des elements demandees dans le SELECT.

array(
  array('id_rubrique' => 1, 'id_secteur' => 2)
  array('id_rubrique' => 4, 'id_secteur' => 2)
  ...
)

sql_getfetsel()

Retourne un unique champ d'une selection

sql_getfetsel(array<string|int, mixed>|string $select[, array<string|int, mixed>|string $from = [] ][, array<string|int, mixed>|string $where = [] ][, array<string|int, mixed>|string $groupby = [] ][, array<string|int, mixed>|string $orderby = [] ][, string $limit = '' ][, string|array<string|int, mixed> $having = [] ][, string $serveur = '' ][, bool|string $option = true ]) : mixed

Retourne dans la premiere ligne de resultat d'une selection un unique champ demande

Parameters
$select : array<string|int, mixed>|string

Liste des champs à récupérer (Select)

$from : array<string|int, mixed>|string = []

Tables à consulter (From)

$where : array<string|int, mixed>|string = []

Conditions à remplir (Where)

$groupby : array<string|int, mixed>|string = []

Critère de regroupement (Group by)

$orderby : array<string|int, mixed>|string = []

Tableau de classement (Order By)

$limit : string = ''

Critère de limite (Limit)

$having : string|array<string|int, mixed> = []

Tableau ou chaine des des post-conditions à remplir (Having)

$serveur : string = ''

Le serveur sollicité (pour retrouver la connexion)

$option : bool|string = true

Peut avoir 3 valeurs :

  • true -> executer la requete.
  • continue -> ne pas echouer en cas de serveur sql indisponible.
  • false -> ne pas l'executer mais la retourner.
Tags
example
$id_rubrique = sql_getfetsel('id_rubrique', 'spip_articles', 'id_article='.sql_quote($id_article));
uses
sql_fetsel()
Return values
mixed

Contenu de l'unique valeur demandee du premier enregistrement retourne ou NULL si la requete ne retourne aucun enregistrement

sql_version()

Retourne le numero de version du serveur SQL

sql_version([string $serveur = '' ][, bool|string $option = true ]) : string
Parameters
$serveur : string = ''

Nom du connecteur

$option : bool|string = true

Peut avoir 2 valeurs :

  • true pour executer la requete.
  • continue pour ne pas echouer en cas de serveur sql indisponible.
Return values
string

Numero de version du serveur SQL

sql_preferer_transaction()

Informe si le moteur SQL prefere utiliser des transactions

sql_preferer_transaction([string $serveur = '' ][, bool|string $option = true ]) : bool

Cette fonction experimentale est pour l'instant presente pour accelerer certaines insertions multiples en SQLite, en les encadrant d'une transaction. SQLite ne cree alors qu'un verrou pour l'ensemble des insertions et non un pour chaque, ce qui accelere grandement le processus. Evidemment, si une des insertions echoue, rien ne sera enregistre. Pour ne pas perturber les autres moteurs, cette fonction permet de verifier que le moteur prefere utiliser des transactions dans ce cas.

Parameters
$serveur : string = ''

Nom du connecteur

$option : bool|string = true

Peut avoir 2 valeurs :

  • true pour executer la requete.
  • continue pour ne pas echouer en cas de serveur sql indisponible.
Tags
example
if (sql_preferer_transaction()) {
  sql_demarrer_transaction();
}
see
sql_demarrer_transaction()
see
sql_terminer_transaction()
Return values
bool

Le serveur SQL prefere t'il des transactions pour les insertions multiples ?

sql_demarrer_transaction()

Démarre une transaction

sql_demarrer_transaction([string $serveur = '' ][, bool|string $option = true ]) : bool
Parameters
$serveur : string = ''

Nom du connecteur

$option : bool|string = true

Peut avoir 3 valeurs :

  • true pour executer la requete.
  • continue pour ne pas echouer en cas de serveur sql indisponible.
  • false pour obtenir le code de la requete
Tags
see
sql_terminer_transaction()

Pour cloturer la transaction

Return values
bool

true si la transaction est demarree false en cas d'erreur

sql_terminer_transaction()

Termine une transaction

sql_terminer_transaction([string $serveur = '' ][, bool|string $option = true ]) : bool
Parameters
$serveur : string = ''

Nom du connecteur

$option : bool|string = true

Peut avoir 3 valeurs :

  • true pour executer la requete.
  • continue pour ne pas echouer en cas de serveur sql indisponible.
  • false pour obtenir le code de la requete
Tags
see
sql_demarrer_transaction()

Pour demarrer une transaction

Return values
bool

true si la transaction est demarree false en cas d'erreur

sql_hex()

Prépare une chaine hexadécimale

sql_hex(string $val[, string $serveur = '' ][, bool|string $option = true ]) : string

Prend une chaîne sur l'aphabet hexa et retourne sa représentation numérique attendue par le serveur SQL. Par exemple : FF ==> 0xFF en MySQL mais x'FF' en PG

Parameters
$val : string

Chaine hexadécimale

$serveur : string = ''

Nom du connecteur

$option : bool|string = true

Peut avoir 2 valeurs :

  • true pour exécuter la demande.
  • 'continue' pour ne pas échouer en cas de serveur SQL indisponible.
Return values
string

Valeur hexadécimale attendue par le serveur SQL

sql_quote()

Echapper du contenu

sql_quote(string $val[, string $serveur = '' ][, string $type = '' ]) : string

Echappe du contenu selon ce qu'attend le type de serveur SQL et en fonction du type de contenu.

Permet entre autres de se protéger d'injections SQL.

Cette fonction est automatiquement appelée par les fonctions sql_*q tel que sql_instertq ou sql_updateq

Parameters
$val : string

Chaine à echapper

$serveur : string = ''

Nom du connecteur

$type : string = ''

Peut contenir une declaration de type de champ SQL. Exemple : int NOT NULL qui sert alors aussi à calculer le type d'échappement

Return values
string

La chaine echappee

sql_date_proche()

Tester si une date est proche de la valeur d'un champ

sql_date_proche(string $champ, int $interval, string $unite[, string $serveur = '' ][, bool|string $option = true ]) : string|bool
Parameters
$champ : string

Nom du champ a tester

$interval : int

Valeur de l'intervalle : -1, 4, ...

$unite : string

Utité utilisée (DAY, MONTH, YEAR, ...)

$serveur : string = ''

Nom du connecteur

$option : bool|string = true

Peut avoir 2 valeurs :

  • true pour exécuter la demande.
  • 'continue' pour ne pas échouer en cas de serveur SQL indisponible.
Return values
string|bool
  • string : Expression SQL
  • false si le serveur SQL est indisponible

sql_in_quote()

Retourne une expression IN pour le gestionnaire de base de données

sql_in_quote(string $champ, array<string|int, mixed> $valeurs[, string $not = '' ][, string $serveur = '' ][, string $type = '' ][, bool|string $option = true ]) : string

Retourne un code à insérer dans une requête SQL pour récupérer les éléments d'une colonne qui appartiennent à une liste donnée

Parameters
$champ : string

Colonne SQL sur laquelle appliquer le test

$valeurs : array<string|int, mixed>

Liste des valeurs possibles (séparés par des virgules si string) le format string est historique et n'est accepte que pour des ids numeriques car autrement la securite ne peut etre garantie

$not : string = ''
  • '' sélectionne les éléments correspondant aux valeurs
  • 'NOT' inverse en sélectionnant les éléments ne correspondant pas aux valeurs
$serveur : string = ''

Nom du connecteur

$type : string = ''

type du champ pour le sql_quote

$option : bool|string = true

Peut avoir 3 valeurs :

  • 'continue' -> ne pas echouer en cas de serveur sql indisponible
  • true ou false -> retourne l'expression
Tags
example

sql_in_quote('id_rubrique', array(3,4,5)) retourne approximativement «id_rubrique IN (3,4,5)» selon ce qu'attend le gestionnaire de base de donnée du connecteur en cours.

Return values
string

Expression de requête SQL

sql_in()

shorthand historique qui ne permet pas de specifier le type et qui accepte une string pour $valeurs

sql_in(string $champ, array<string|int, mixed>|string $valeurs[, string $not = '' ][, string $serveur = '' ][, bool $option = true ]) : mixed
Parameters
$champ : string
$valeurs : array<string|int, mixed>|string

Liste des valeurs possibles (séparés par des virgules si string) le format string est historique et n'est accepte que pour des ids numeriques car autrement la securite ne peut etre garantie

$not : string = ''
$serveur : string = ''
$option : bool = true
Tags
see
sql_in_quote

sql_in_select()

Retourne une expression IN pour le gestionnaire de base de données à partir d'une sélection de données

sql_in_select(string $in, array<string|int, mixed>|string $select[, array<string|int, mixed>|string $from = [] ][, array<string|int, mixed>|string $where = [] ][, array<string|int, mixed>|string $groupby = [] ][, array<string|int, mixed>|string $orderby = [] ][, string $limit = '' ][, string|array<string|int, mixed> $having = [] ][, string $serveur = '' ]) : string

Sélectionne les données (comme sql_select()) et prépare avec l'expression IN

Parameters
$in : string

Colonne SQL sur laquelle appliquer le test

$select : array<string|int, mixed>|string

Liste des champs à récupérer (Select). La donnée extraite est le premier élément de la sélection.

$from : array<string|int, mixed>|string = []

Tables a consulter (From)

$where : array<string|int, mixed>|string = []

Conditions a remplir (Where)

$groupby : array<string|int, mixed>|string = []

critere de regroupement (Group by)

$orderby : array<string|int, mixed>|string = []

Tableau de classement (Order By)

$limit : string = ''

critere de limite (Limit)

$having : string|array<string|int, mixed> = []

Tableau ou chaine des des post-conditions à remplir (Having)

$serveur : string = ''

Nom du connecteur

Tags
see
sql_select()
see
sql_in()
note

Penser à dire dans la description du serveur s'il accepte les requêtes imbriquées afin d'optimiser ca

Return values
string

Expression de requête SQL

sql_skip()

Implémentation sécurisée du saut en avant.

sql_skip(object $res, int $pos, int $saut, int $count[, string $serveur = '' ][, bool|string $option = true ]) : int

Ne dépend pas de la disponibilité de la fonction sql_seek(). Ne fait rien pour une valeur négative ou nulle de $saut. Retourne la position après le saut

Parameters
$res : object

Ressource issue d'une selection sql_select

$pos : int

position courante

$saut : int

saut demande

$count : int

position maximale (nombre de resultat de la requete OU position qu'on ne veut pas depasser)

$serveur : string = ''

Nom du connecteur

$option : bool|string = true

Peut avoir 2 valeurs :

  • true -> executer la requete
  • continue -> ne pas echouer en cas de serveur sql indisponible
Tags
see
sql_seek()
Return values
int

Position apres le saut.

sql_test_int()

Teste qu'une description de champ SQL est de type entier

sql_test_int(string $type[, string $serveur = '' ][, bool $option = true ]) : bool
Parameters
$type : string

Description de la colonne SQL

$serveur : string = ''

Nom du connecteur

$option : bool = true

Inutilisé

Tags
see
sql_test_date()

pour tester les champs de date

Return values
bool

True si le champ est de type entier

sql_test_date()

Teste qu'une description de champ SQL est de type entier

sql_test_date(string $type[, string $serveur = '' ][, bool $option = true ]) : bool
Parameters
$type : string

Description de la colonne SQL

$serveur : string = ''

Nom du connecteur

$option : bool = true

Inutilisé

Tags
see
sql_test_int()

pour tester les champs d'entiers

Return values
bool

True si le champ est de type entier

sql_format_date()

Formate une date

sql_format_date([int $annee = 0 ][, int $mois = 0 ][, int $jour = 0 ][, int $h = 0 ][, int $m = 0 ][, int $s = 0 ][, string $serveur = '' ]) : string

Formater une date Y-m-d H:i:s sans passer par mktime qui ne sait pas gerer les dates < 1970

Parameters
$annee : int = 0

Annee

$mois : int = 0

Numero du mois

$jour : int = 0

Numero du jour dans le mois

$h : int = 0

Heures

$m : int = 0

Minutes

$s : int = 0

Secondes

$serveur : string = ''

Le serveur sollicite (pour retrouver la connexion)

Return values
string

La date formatee

prefixer_table_spip()

Corrige le nom d’une table SQL en utilisant le bon préfixe

prefixer_table_spip(string $table, string $prefixe) : string

Ie: si prefixe 'dev', retournera, pour la table 'spip_articles' : 'dev_articles'.

Parameters
$table : string
$prefixe : string
Return values
string

Table sql éventuellement renommée

spip_connect()

Connexion à un serveur de base de données

spip_connect([string $serveur = '' ][, string $version = '' ]) : bool|array<string|int, mixed>

On charge le fichier config/$serveur ($serveur='connect' pour le principal) qui est censé initaliser la connexion en appelant la fonction spip_connect_db laquelle met dans la globale db_ok la description de la connexion.

On la mémorise dans un tableau pour permettre plusieurs serveurs.

À l'installation, il faut simuler l'existence de ce fichier.

Parameters
$serveur : string = ''

Nom du connecteur

$version : string = ''

Version de l'API SQL

Tags
uses
spip_connect_main()
Return values
bool|array<string|int, mixed>
  • false si la connexion a échouée,
  • tableau décrivant la connexion sinon

spip_sql_erreur()

Log la dernière erreur SQL présente sur la connexion indiquée

spip_sql_erreur([string $serveur = '' ]) : mixed
Parameters
$serveur : string = ''

Nom du connecteur de bdd utilisé

spip_connect_sql()

Retourne le nom de la fonction adaptée de l'API SQL en fonction du type de serveur

spip_connect_sql(string $version[, string $ins = '' ][, string $serveur = '' ][, bool $continue = false ]) : array<string|int, mixed>|bool|string

Cette fonction ne doit être appelée qu'à travers la fonction sql_serveur définie dans base/abstract_sql

Elle existe en tant que gestionnaire de versions, connue seulement des convertisseurs automatiques

Parameters
$version : string

Numéro de version de l'API SQL

$ins : string = ''

Instruction de l'API souhaitée, tel que 'allfetsel'

$serveur : string = ''

Nom du connecteur

$continue : bool = false

true pour continuer même si le serveur SQL ou l'instruction est indisponible

Return values
array<string|int, mixed>|bool|string
  • string : nom de la fonction à utiliser,
  • false : si la connexion a échouée
  • array : description de la connexion, si l'instruction sql est indisponible pour cette connexion

spip_connect_db()

Fonction appelée par le fichier connecteur de base de données crée dans `config/` à l'installation.

spip_connect_db(string $host, string $port, string $login, string $pass[, string $db = '' ][, string $type = 'mysql' ][, string $prefixe = '' ][, string $auth = '' ][, string $charset = '' ]) : array<string|int, mixed>|null

Il contient un appel direct à cette fonction avec comme arguments les identifants de connexion.

Si la connexion reussit, la globale db_ok mémorise sa description. C'est un tableau également retourné en valeur, pour les appels lors de l'installation.

Parameters
$host : string

Adresse du serveur de base de données

$port : string

Port utilisé pour la connexion

$login : string

Identifiant de connexion à la base de données

$pass : string

Mot de passe pour cet identifiant

$db : string = ''

Nom de la base de données à utiliser

$type : string = 'mysql'

Type de base de données tel que 'mysql', 'sqlite3' (cf ecrire/req/)

$prefixe : string = ''

Préfixe des tables SPIP

$auth : string = ''

Type d'authentification (cas si 'ldap')

$charset : string = ''

Charset de la connexion SQL (optionnel)

Return values
array<string|int, mixed>|null

Description de la connexion

spip_connect_main()

Première connexion au serveur principal de base de données

spip_connect_main(array<string|int, mixed> $connexion[, string $charset_sql_connexion = '' ]) : string|bool|int

Retourner le charset donnée par la table principale mais vérifier que le fichier de connexion n'est pas trop vieux

Parameters
$connexion : array<string|int, mixed>

Description de la connexion

$charset_sql_connexion : string = ''

charset de connexion fourni dans l'appal a spip_connect_db

Tags
note

Version courante = 0.8

  • La version 0.8 indique un charset de connexion comme 9e arg
  • La version 0.7 indique un serveur d'authentification comme 8e arg
  • La version 0.6 indique le prefixe comme 7e arg
  • La version 0.5 indique le serveur comme 6e arg

La version 0.0 (non numerotée) doit être refaite par un admin. Les autres fonctionnent toujours, même si :

  • la version 0.1 est moins performante que la 0.2
  • la 0.2 fait un include_ecrire('inc_db_mysql.php3').
used-by
spip_connect()
Return values
string|bool|int
  • false si pas de charset connu pour la connexion
  • -1 charset non renseigné
  • nom du charset sinon

_q()

Échappement d'une valeur sous forme de chaîne PHP

_q(int|float|string|array<string|int, mixed> $a) : string

Échappe une valeur (num, string, array) pour en faire une chaîne pour PHP. Un array(1,'a',"a'") renvoie la chaine "'1','a','a\''"

Parameters
$a : int|float|string|array<string|int, mixed>

Valeur à échapper

Tags
note

L'usage comme échappement SQL est déprécié, à remplacer par sql_quote().

Return values
string

Valeur échappée.

query_echappe_textes()

Echapper les textes entre ' ' ou " " d'une requête SQL avant son pre-traitement

query_echappe_textes(string $query[, mixed $uniqid = null ]) : array<string|int, mixed>

On renvoi la query sans textes et les textes séparés, dans leur ordre d'apparition dans la query

Parameters
$query : string
$uniqid : mixed = null
Tags
see
query_reinjecte_textes()
Return values
array<string|int, mixed>

query_reinjecte_textes()

Réinjecter les textes d'une requete SQL à leur place initiale, après traitement de la requête

query_reinjecte_textes(string $query, array<string|int, mixed> $textes) : string
Parameters
$query : string
$textes : array<string|int, mixed>
Tags
see
query_echappe_textes()
Return values
string

spip_query()

Exécute une requête sur le serveur SQL

spip_query(string $query[, string $serveur = '' ]) : bool|mixed
Parameters
$query : string

texte de la requête

$serveur : string = ''

Nom du connecteur pour la base de données

Tags
note

Ne génère pas d’erreur fatale si la connexion à la BDD n’existe pas

deprecated
3.1

Pour compatibilité.

see
sql_query()

ou l'API sql_*.

Return values
bool|mixed
  • false si on ne peut pas exécuter la requête
  • indéfini sinon.

base_determine_autoinc()

Determiner le flag autoinc pour une table en fonction de si c'est une table principale

base_determine_autoinc(string $table[, array<string|int, mixed> $desc = [] ]) : bool
Parameters
$table : string
$desc : array<string|int, mixed> = []
Return values
bool

creer_ou_upgrader_table()

Créer une table, ou ajouter les champs manquants si elle existe déjà

creer_ou_upgrader_table(string $table, array<string|int, mixed> $desc, bool|string $autoinc[, bool $upgrade = false ][, string $serveur = '' ]) : void
Parameters
$table : string
$desc : array<string|int, mixed>
$autoinc : bool|string

'auto' pour detecter automatiquement si le champ doit etre autoinc ou non en fonction de la table

$upgrade : bool = false
$serveur : string = ''

alterer_base()

Creer ou mettre à jour un ensemble de tables en fonction du flag `$up`

alterer_base(array<string|int, mixed> $tables_inc,  $tables_noinc[, bool|array<string|int, mixed> $up = false ][, string $serveur = '' ]) : void
Parameters
$tables_inc : array<string|int, mixed>

tables avec autoincrement sur la cle primaire

$tables_noinc :

tables sans autoincrement sur la cle primaire

$up : bool|array<string|int, mixed> = false

upgrader (true) ou creer (false) si un tableau de table est fournie, seules l'intersection de ces tables et des $tables_inc / $tables_noinc seront traitees

$serveur : string = ''

serveur sql

Tags
uses
creer_ou_upgrader_table()
used-by
creer_base()
used-by
maj_tables()

creer_base()

Créer une base de données à partir des tables principales et auxiliaires

creer_base([string $serveur = '' ]) : void

Lorsque de nouvelles tables ont été déclarées, cette fonction crée les tables manquantes. mais ne crée pas des champs manquant d'une table déjà présente. Pour cela, c’est maj_tables() qu’il faut appeler.

Parameters
$serveur : string = ''
Tags
see
maj_tables()
uses
alterer_base()
used-by
base_upgrade_dist()

maj_tables()

Mettre à jour une liste de tables

maj_tables([array<string|int, mixed> $upgrade_tables = [] ][, string $serveur = '' ]) : void

Fonction facilitatrice utilisée pour les maj de base dans les plugins.

Elle permet de créer les champs manquants d'une table déjà présente.

Parameters
$upgrade_tables : array<string|int, mixed> = []
$serveur : string = ''
Tags
see
creer_base()
uses
alterer_base()

base_delete_all_dist()

Destruction des tables SQL de SPIP

base_delete_all_dist(string $titre) : mixed

La liste des tables à supprimer est à poster sur le nom (tableau) delete

Parameters
$titre : string

Inutilisé

Tags
pipeline_appel

delete_tables

base_dump_meta_name()

Retourne un nom de meta pour une rubrique et l'auteur connecté.

base_dump_meta_name(int $rub) : string

Ce nom servira pour le stockage dans un fichier temporaire des informations sérialisées sur le statut de l'export.

Parameters
$rub : int
Return values
string

base_dump_dir()

Crée un répertoire recevant la sauvegarde de la base de données et retourne son chemin.

base_dump_dir(string $meta) : string
Parameters
$meta : string
Tags
note

Utilisé uniquement dans l'ancienne sauvegarde XML (plugin dump_xml) À supprimer ?

Return values
string

base_lister_toutes_tables()

Lister toutes les tables d'un serveur en excluant eventuellement une liste fournie

base_lister_toutes_tables([string $serveur = '' ][, array<string|int, mixed> $tables = [] ][, array<string|int, mixed> $exclude = [] ][, bool $affiche_vrai_prefixe = false ]) : array<string|int, mixed>
Parameters
$serveur : string = ''
$tables : array<string|int, mixed> = []
$exclude : array<string|int, mixed> = []
$affiche_vrai_prefixe : bool = false
Return values
array<string|int, mixed>

base_prefixe_tables()

Retrouver le prefixe des tables

base_prefixe_tables([string $serveur = '' ]) : string
Parameters
$serveur : string = ''
Return values
string

base_saisie_tables()

Fabrique la liste a cocher des tables a traiter (copie, delete, sauvegarde)

base_saisie_tables(string $name, array<string|int, mixed> $tables[, array<string|int, mixed> $exclude = [] ][, array<string|int, mixed>|null $post = null ][, string $serveur = '' ]) : array<string|int, mixed>
Parameters
$name : string
$tables : array<string|int, mixed>
$exclude : array<string|int, mixed> = []
$post : array<string|int, mixed>|null = null
$serveur : string = ''
Return values
array<string|int, mixed>

lister_tables_noexport()

Lister les tables non exportables par defaut (liste completable par le pipeline lister_tables_noexport

lister_tables_noexport() : array<string|int, mixed>
Tags
staticvar

array $EXPORT_tables_noexport

Return values
array<string|int, mixed>

lister_tables_noimport()

Lister les tables non importables par defaut (liste completable par le pipeline lister_tables_noimport

lister_tables_noimport() : array<string|int, mixed>
Tags
staticvar

array $IMPORT_tables_noimport

Return values
array<string|int, mixed>

lister_tables_noerase()

Lister les tables a ne pas effacer (liste completable par le pipeline lister_tables_noerase

lister_tables_noerase() : array<string|int, mixed>
Tags
staticvar

array $IMPORT_tables_noerase

Return values
array<string|int, mixed>

base_liste_table_for_dump()

construction de la liste des tables pour le dump : toutes les tables principales + toutes les tables auxiliaires hors relations + les tables relations dont les deux tables liees sont dans la liste

base_liste_table_for_dump([array<string|int, mixed> $exclude_tables = [] ]) : array<string|int, mixed>
Parameters
$exclude_tables : array<string|int, mixed> = []
Return values
array<string|int, mixed>

base_vider_tables_destination_copie()

Vider les tables de la base de destination pour la copie dans une base

base_vider_tables_destination_copie(array<string|int, mixed> $tables[, array<string|int, mixed> $exclure_tables = [] ][, string $serveur = '' ]) : mixed

peut etre utilise pour l'import depuis xml, ou la copie de base a base (mysql<->sqlite par exemple)

Parameters
$tables : array<string|int, mixed>
$exclure_tables : array<string|int, mixed> = []
$serveur : string = ''

base_conserver_copieur()

Conserver le copieur si besoin

base_conserver_copieur([bool $move = true ][, string $serveur = '' ]) : void
Parameters
$move : bool = true
$serveur : string = ''

base_detruire_copieur_si_besoin()

Effacement de la bidouille ci-dessus Toutefois si la table des auteurs ne contient plus qu'elle c'est que la copie etait incomplete et on restaure le compte pour garder la connection au site

base_detruire_copieur_si_besoin([string $serveur = '' ]) : mixed

(mais il doit pas etre bien beau et ca ne marche que si l'id_auteur est sur moins de 3 chiffres)

Parameters
$serveur : string = ''

base_preparer_table_dest()

Preparer la table dans la base de destination : la droper si elle existe (sauf si auteurs ou meta sur le serveur principal) la creer si necessaire, ou ajouter simplement les champs manquants

base_preparer_table_dest(string $table, array<string|int, mixed> $desc, string $serveur_dest[, bool $init = false ]) : array<string|int, mixed>
Parameters
$table : string
$desc : array<string|int, mixed>
$serveur_dest : string
$init : bool = false
Return values
array<string|int, mixed>

base_copier_tables()

Copier de base a base

base_copier_tables(string $status_file, array<string|int, mixed> $tables, string $serveur_source, string $serveur_dest[, array<string|int, mixed> $options = [] ]) : bool
Parameters
$status_file : string

nom avec chemin complet du fichier ou est stocke le status courant

$tables : array<string|int, mixed>

liste des tables a copier

$serveur_source : string
$serveur_dest : string
$options : array<string|int, mixed> = []

parametres optionnels sous forme de tableau : param string $callback_progression fonction a appeler pour afficher la progression, avec les arguments (compteur,total,table) param int $max_time limite de temps au dela de laquelle sortir de la fonction proprement (de la forme time()+15) param bool $drop_source vider les tables sources apres copie param array $no_erase_dest liste des tables a ne pas vider systematiquement (ne seront videes que si existent dans la base source) param array $where liste optionnelle de condition where de selection des donnees pour chaque table param string $racine_fonctions_dest racine utilisee pour charger_fonction() des operations elementaires sur la base de destination. Permet de deleguer vers une autre voie de communication. Par defaut on utilise 'base', ce qui route vers les fonctions de ce fichier. Concerne :

  • vider_tables_destination_copie
  • preparer_table_dest
  • detruire_copieur_si_besoin
  • inserer_copie param array $fonction_base_inserer fonction d'insertion en base. Par defaut "inserer_copie" qui fait un insertq a l'identique. Attention, la fonction appelee est prefixee par $racine_fonctions_dest via un charger_fonction() Peut etre personalisee pour filtrer, renumeroter.... param array $desc_tables_dest description des tables de destination a utiliser de preference a la description de la table source param int data_pool nombre de ko de donnees a envoyer d'un coup en insertion dans la table cible (par defaut 1) permet des envois groupes pour plus de rapidite, notamment si l'insertion est distante
Return values
bool

base_inserer_copie()

fonction d'insertion en base lors de la copie de base a base

base_inserer_copie(string $table, array<string|int, mixed> $rows, array<string|int, mixed> $desc_dest, string $serveur_dest) : int
Parameters
$table : string
$rows : array<string|int, mixed>
$desc_dest : array<string|int, mixed>
$serveur_dest : string
Return values
int

array_set_merge()

Merge dans un tableau une de ses clés avec une valeur

array_set_merge(array<string|int, mixed> &$table, string $index, array<string|int, mixed> $valeur) : void
Parameters
$table : array<string|int, mixed>

Tableau dont on veut compléter une clé

$index : string

Clé du tableau que l'on souhaite compléter

$valeur : array<string|int, mixed>

Sous tableau à merger dans la clé.

lister_tables_objets_sql()

Lister les infos de toutes les tables sql declarées

lister_tables_objets_sql([string|null $table_sql = null ][, array<string|int, mixed> $desc = [] ]) : array<string|int, mixed>|string

Si un argument est fourni, on ne renvoie que les infos de cette table. Elle est auto-declarée si inconnue jusqu'alors.

Parameters
$table_sql : string|null = null

table_sql demandee explicitement

$desc : array<string|int, mixed> = []

description connue de la table sql demandee

Return values
array<string|int, mixed>|string
  • array : description de la table ou des tables
  • string (interne) si table '::md5' retourne un hash

base_serial()

Déclare les tables principales du Core

base_serial(array<string|int, mixed> &$tables_principales) : void

Tables principales, hors objets éditoriaux.

Parameters
$tables_principales : array<string|int, mixed>

Description des tables principales déjà déclarées

base_auxiliaires()

Déclare les tables auxiliaires du Core

base_auxiliaires(array<string|int, mixed> &$tables_auxiliaires) : void
Parameters
$tables_auxiliaires : array<string|int, mixed>

Description des tables auxiliaires déjà déclarées

renseigner_table_objet_sql()

Auto remplissage des informations non explicites sur un objet d'une table sql

renseigner_table_objet_sql(string $table_sql, array<string|int, mixed> &$infos) : array<string|int, mixed>
  • table_objet

  • table_objet_surnoms

  • type

  • type_surnoms

  • url_voir

  • url_edit

  • icone_objet

  • texte_retour

  • texte_modifier

  • texte_creer

  • texte_creer_associer

  • texte_ajouter

  • texte_objets

  • texte_objet

  • info_aucun_objet

  • info_1_objet

  • info_nb_objets

  • texte_logo_objet

  • texte_langue_objet

  • texte_definir_comme_traduction_objet

  • principale

  • champs_contenu : utlisé pour générer l'affichage par défaut du contenu

  • editable

  • champs_editables : utilisé pour prendre en compte le post lors de l'édition

  • champs_versionnes

L'objet doit définir de lui même ces champs pour gérer des statuts : - statut - statut_images - statut_titres - statut_textes_instituer - texte_changer_statut - aide_changer_statut

  • modeles : permet de declarer les modeles associes a cet objet

Les infos non renseignées sont auto-déduites par conventions ou laissées vides

Parameters
$table_sql : string
$infos : array<string|int, mixed>
Return values
array<string|int, mixed>

renseigner_table_objet_interfaces()

Renseigner les infos d'interface compilateur pour les tables objets complete la declaration precedente

renseigner_table_objet_interfaces(string $table_sql, array<string|int, mixed> &$infos) : array<string|int, mixed>

titre date statut tables_jointures

Parameters
$table_sql : string
$infos : array<string|int, mixed>
Return values
array<string|int, mixed>

lister_tables_principales()

Retourne la liste des tables principales et leurs descriptions

lister_tables_principales() : array<string|int, mixed>
Return values
array<string|int, mixed>

Liste et descriptions des tables principales

lister_tables_auxiliaires()

Retourne la liste des tables auxiliaires et leurs descriptions

lister_tables_auxiliaires() : array<string|int, mixed>
Return values
array<string|int, mixed>

Liste et descriptions des tables auxiliaires

lister_tables_objets_surnoms()

Recenser les surnoms de table_objet

lister_tables_objets_surnoms() : array<string|int, mixed>
Return values
array<string|int, mixed>

lister_types_surnoms()

Recenser les surnoms de table_objet

lister_types_surnoms() : array<string|int, mixed>
Return values
array<string|int, mixed>

lister_tables_spip()

Retourne la liste des tables SQL qui concernent SPIP

lister_tables_spip([string $serveur = '' ]) : array<string|int, mixed>

Cette liste n'est calculée qu'une fois par serveur pour l'ensemble du hit

Parameters
$serveur : string = ''

Nom du fichier de connexion à la base de données

Return values
array<string|int, mixed>

Couples (nom de la table SQL => même nom, sans 'spip_' devant)

lister_toutes_tables()

Retourne la liste des tables SQL, Spip ou autres

lister_toutes_tables(string $serveur) : array<string|int, mixed>

Cette liste n'est calculée qu'une fois par serveur pour l'ensemble du hit

Parameters
$serveur : string

Nom du fichier de connexion à la base de données

Return values
array<string|int, mixed>

Couples (nom de la table SQL => même nom)

table_objet()

Retrouve le nom d'objet à partir de la table

table_objet(string $type[, string|false $serveur = '' ]) : string
  • spip_articles -> articles
  • id_article -> articles
  • article -> articles
Parameters
$type : string

Nom de la table SQL (le plus souvent) Tolère un nom de clé primaire.

$serveur : string|false = ''
  • string: Nom du connecteur
  • false: Pas de recherche en bdd
Return values
string

Nom de l'objet

table_objet_sql()

Retrouve la table sql à partir de l'objet ou du type

table_objet_sql(string $type[, string|false $serveur = '' ]) : string
  • articles -> spip_articles
  • article -> spip_articles
  • id_article -> spip_articles
Parameters
$type : string

Nom ou type de l'objet Tolère un nom de clé primaire.

$serveur : string|false = ''
  • string: Nom du connecteur
  • false: Pas de recherche en bdd
Return values
string

Nom de la table SQL

id_table_objet()

Retrouve la clé primaire à partir du nom d'objet ou de table

id_table_objet(string $type[, string $serveur = '' ]) : string|null
  • articles -> id_article
  • article -> id_article
  • spip_articles -> id_article
Parameters
$type : string

Nom de la table SQL ou de l'objet

$serveur : string = ''

Nom du connecteur

Return values
string|null

Nom de la clé primaire

objet_type()

Retrouve le type d'objet à partir du nom d'objet ou de table

objet_type(string $table_objet[, string|false $serveur = '' ]) : string|null
  • articles -> article
  • spip_articles -> article
  • id_article -> article
Parameters
$table_objet : string

Nom de l'objet ou de la table SQL

$serveur : string|false = ''
  • string: Nom du connecteur
  • false: Pas de recherche en bdd
Return values
string|null

Type de l'objet

objet_test_si_publie()

Determiner si un objet est publie ou non

objet_test_si_publie(string $objet, int $id_objet[, string $serveur = '' ]) : bool

On se base pour cela sur sa declaration de statut pour des cas particuliers non declarables, on permet de fournir une fonction base_xxxx_test_si_publie qui sera appele par la fonction

Parameters
$objet : string
$id_objet : int
$serveur : string = ''
Return values
bool

objet_lister_parents()

Cherche les contenus parent d'un contenu précis.

objet_lister_parents(string $objet, int $id_objet[, bool $parent_direct_seulement = false ]) : array<string|int, mixed>

comme :

$tables['spip_auteurs']['parent']  = array(
    'type' => 'organisation',
    'champ' => 'id_organisation',
    'table' => 'spip_organisations_liens',
    'table_condition' => 'role="parent"',
    'source_champ' => 'id_objet',
    'champ_type' => 'objet'
);

La fonction retourne un tableau de parents, chacun de la forme ['objet' => '...', 'id_objet' => X, 'table' => '...', 'champ' => '...'] Si la table utilisée pour trouver le parent est une table de liens (finissant par _liens), le tableau contient en plus en entrée 'lien' qui contient les informations complètes du lien (rang, role...)

Parameters
$objet : string

Type de l'objet dont on cherche les parent

$id_objet : int

Identifiant de l'objet dont on cherche les parent

$parent_direct_seulement : bool = false

ne considerer que les relations directes et non via table de liens

Return values
array<string|int, mixed>

Retourne un tableau décrivant les parents trouvés

objet_lister_parents_par_type()

Fonction helper qui permet de récupérer une liste simplifiée des parents, regroupés par objet [ 'objet1' => [ids...], 'objet2' => [ids...] ]

objet_lister_parents_par_type(string $objet, int $id_objet) : array<string|int, mixed>
Parameters
$objet : string
$id_objet : int
Return values
array<string|int, mixed>

objet_lister_enfants()

Cherche tous les contenus enfants d'un contenu précis

objet_lister_enfants(string $objet, int $id_objet) : array<string|int, mixed>

comme :

$tables['spip_auteurs']['parent']  = array(
    'type' => 'organisation',
    'champ' => 'id_organisation',
    'table' => 'spip_organisations_liens',
    'table_condition' => 'role="parent"',
    'source_champ' => 'id_objet',
    'champ_type' => 'objet'
);

La fonction retourne un tableau des enfants, chacun de la forme ['objet' => '...', 'id_objet' => X, 'table' => '...', 'champ' => '...'] Si la table utilisée pour trouver l'eenfant est une table de liens (finissant par _liens), le tableau contient en plus en entrée 'lien' qui contient les informations complètes du lien (rang, role...)

Parameters
$objet : string

Type de l'objet dont on cherche les enfants

$id_objet : int

Identifiant de l'objet dont on cherche les enfants

Return values
array<string|int, mixed>

Retourne un tableau de tableaux, avec comme clés les types des objets, et dans chacun un tableau des identifiants trouvés

objet_lister_enfants_par_type()

Fonction helper qui permet de récupérer une liste simplifiée des enfants, regroupés par objet [ 'objet1' => [ids...], 'objet2' => [ids...] ]

objet_lister_enfants_par_type(string $objet, int $id_objet) : array<string|int, mixed>
Parameters
$objet : string
$id_objet : int
Return values
array<string|int, mixed>

objet_type_decrire_infos_parents()

Donne les informations de parenté directe d'un type d'objet si on en trouve

objet_type_decrire_infos_parents(string $objet) : array<string|int, mixed>|false
Parameters
$objet : string

Type de l'objet dont on cherche les informations de parent

Return values
array<string|int, mixed>|false

Retourne un tableau de tableau contenant les informations de type et de champ pour trouver le parent ou false sinon

objet_type_decrire_infos_enfants()

Donne les informations des enfants directs d'un type d'objet si on en trouve

objet_type_decrire_infos_enfants(string $objet) : array<string|int, mixed>
Parameters
$objet : string

Type de l'objet dont on cherche les informations des enfants

Return values
array<string|int, mixed>

Retourne un tableau de tableaux contenant chacun les informations d'un type d'enfant

base_repair_dist()

Action de réparation de la base de données

base_repair_dist([string $titre = '' ][, string $reprise = '' ]) : mixed

Tente de réparer les tables, recalcule les héritages et secteurs de rubriques. Affiche les erreurs s'il y en a eu.

Parameters
$titre : string = ''

Inutilisé

$reprise : string = ''

Inutilisé

Tags
pipeline_appel

base_admin_repair

uses
admin_repair_tables()
uses
calculer_rubriques()
uses
propager_les_secteurs()

admin_repair_tables()

Exécute une réparation de la base de données

admin_repair_tables() : string

Crée les tables et les champs manquants. Applique sur les tables un REPAIR en SQL (si le serveur SQL l'accepte).

Tags
used-by
base_repair_dist()
Return values
string

Code HTML expliquant les actions réalisées

base_trouver_table_dist()

Retourne la description d'une table SQL

base_trouver_table_dist(string $nom[, string $serveur = '' ][, bool $table_spip = true ][, array<string|int, mixed> $options = [] ]) : array<string|int, mixed>|null

Cela sert notamment au moment de la compilation des boucles, critères et balise.

Les champs et clés de la tables sont retrouvés prioritairement via le gestionnaire de base de données. Les descriptions sont complétées, pour les tables éditoriales, des informations déclarées ou construites par la déclaration des objets éditoriaux.

Parameters
$nom : string

Nom de la table Vide '' demande de vider le cache des discriptions

$serveur : string = ''

Nom du connecteur

$table_spip : bool = true

Indique s'il faut transformer le préfixe de table

$options : array<string|int, mixed> = []
  • bool log_missing: true: (par défaut) pour écrire un log en cas de table absente. false: log uniquement en niveau debug.
Tags
example

$trouver_table = charger_fonction('trouver_table', 'base'); $desc = $trouver_table('spip_groupes_mots');

Cette fonction intervient à la compilation, mais aussi pour la balise contextuelle EXPOSE ou certains critères.

L'ensemble des descriptions de table d'un serveur est stocké dans un fichier cache/sql_desc.txt par soucis de performance. Un appel avec $nom vide est une demande explicite de vidange de ce cache

see
lister_tables_objets_sql()
Return values
array<string|int, mixed>|null

null si pas de connexion sql ou table introuvable tableau de description de la table sinon, en particulier :

  • field : tableau des colonnes SQL et leur description (comme dans serial.php ou objets.php)
  • key : tableau des KEY (comme dans serial.php ou objets.php)
  • table et table_sql : nom de la table (avec spip_ en préfixe)
  • id_table : nom SPIP de la table (type de boucle) le compilateur produit FROM $r['table'] AS $r['id_table']
  • Toutes les autres informations des objets éditoriaux si la table est l'un d'eux.

base_upgrade_dist()

Programme de mise à jour des tables SQL lors d'un changement de version.

base_upgrade_dist([string $titre = '' ][, string $reprise = '' ]) : void

L'entrée dans cette fonction est reservée aux mises à jour de SPIP coeur.

Marche aussi pour les plugins en appelant directement la fonction maj_plugin Pour que ceux-ci profitent aussi de la reprise sur interruption, ils doivent simplement indiquer leur numero de version installée dans une meta et fournir le tableau $maj à la fonction maj_plugin. La reprise sur timeout se fait alors par la page admin_plugin et jamais par ici.

Parameters
$titre : string = ''
$reprise : string = ''

Inutilisé

Tags
uses
creer_base()
uses
maj_base()
uses
auth_synchroniser_distant()

maj_base()

Mise à jour de base de SPIP

maj_base([int $version_cible = 0 ][, string $redirect = '' ][, mixed $debut_page = true ]) : array<string|int, mixed>|bool

Exécute toutes les fonctions de mises à jour de SPIP nécessaires, en fonction de la meta version_installee indiquant le numéro de schéma actuel de la base de données.

Les fonctions de mises à jour se trouvent dans ecrire/maj/

Parameters
$version_cible : int = 0
$redirect : string = ''
$debut_page : mixed = true
Tags
note

Si version nulle ou inexistante, c'est une nouvelle installation, on ne passe pas par le processus de mise à jour.

De même en cas de version supérieure: ca devait être un test, il y a eu le message d'avertissement il doit savoir ce qu'il fait

version_installee = YYYYMMDDNN; quand on a besoin de forcer une MAJ tel que 2021021800 où 00 est un incrément.

uses
upgrade_test()
uses
maj_while()
used-by
base_upgrade_dist()
Return values
array<string|int, mixed>|bool

maj_plugin()

Mise à jour d'un plugin de SPIP

maj_plugin(string $nom_meta_base_version, string $version_cible, array<string|int, mixed> $maj[, string $table_meta = 'meta' ]) : void

Fonction appelée par la fonction de mise à jour d'un plugin. On lui fournit un tableau de fonctions élementaires dont l'indice est la version.

Parameters
$nom_meta_base_version : string

Nom de la meta informant de la version du schéma de données du plugin installé dans SPIP

$version_cible : string

Version du schéma de données dans le plugin (déclaré dans paquet.xml)

$maj : array<string|int, mixed>

Tableau d'actions à faire à l'installation (clé create) et pour chaque version intermédiaire entre la version actuelle du schéma du plugin dans SPIP et la version du schéma déclaré dans le plugin (ex. clé 1.1.0).

Chaque valeur est un tableau contenant une liste de fonctions à exécuter, cette liste étant elle-même un tableau avec premier paramètre le nom de la fonction et les suivant les paramètres à lui passer

Exemple :

```
array(
    'create' => array(
        array('maj_tables', array('spip_rubriques', 'spip_articles')),
        array('creer_base)),
    '1.1.0' => array(
        array('sql_alter', 'TABLE spip_articles ADD INDEX truc (truc)'))
)
```
$table_meta : string = 'meta'

Nom de la table meta (sans le prefixe spip_) dans laquelle trouver la meta $nom_meta_base_version

Tags
uses
maj_while()

relance_maj()

Relancer le hit de mise à jour avant timeout

relance_maj(string $meta, string $table[, string $redirect = '' ]) : void

si pas de redirect fourni, on redirige vers exec=upgrade pour finir ce qui doit être une mise à jour SPIP

Parameters
$meta : string
$table : string
$redirect : string = ''
Tags
uses
redirige_formulaire()
used-by
maj_while()
used-by
serie_alter()

maj_debut_page()

Initialiser la page pour l'affichage des progrès de l'upgrade uniquement si la page n'a pas déjà été initilalisée

maj_debut_page(string $installee, string $meta, string $table) : void
Parameters
$installee : string
$meta : string
$table : string

maj_while()

Gestion des mises à jour de SPIP et des plugins

maj_while(string $installee, string $cible, array<string|int, mixed> $maj[, string $meta = '' ][, string $table = 'meta' ][, string $redirect = '' ][, bool $debut_page = false ]) : array<string|int, mixed>

À partir des versions > 1.926 (i.e SPIP > 1.9.2), cette fonction gere les MAJ.

Se relancer soi-même pour éviter l'interruption pendant une operation SQL (qu'on espère pas trop longue chacune) évidemment en ecrivant dans la meta à quel numero on en est.

Cette fonction peut servir aux plugins qui doivent donner comme arguments :

  1. le numero de version courant (numéro de version 1.2.3 ou entier)
  2. le numero de version à atteindre (numéro de version 1.2.3 ou entier)
  3. le tableau des instructions de mise à jour à exécuter Pour profiter du mécanisme de reprise sur interruption il faut de plus
  4. le nom de la meta permettant de retrouver tout ca
  5. la table des meta ou elle se trouve ($table_prefix . '_meta' par défaut) (cf début de fichier)

les fonctions sql_xx appelées lors des mises à jour sont supposées atomiques et ne sont pas relancées en cas de timeout, mais les fonctions spécifiques sont relancées jusqu'à ce qu'elles finissent. Elles doivent donc s'assurer de progresser à chaque reprise.

Parameters
$installee : string
$cible : string
$maj : array<string|int, mixed>
$meta : string = ''
$table : string = 'meta'
$redirect : string = ''
$debut_page : bool = false
Tags
uses
maj_debut_page()
uses
serie_alter()
uses
relance_maj()
used-by
maj_base()
used-by
maj_plugin()
Return values
array<string|int, mixed>
  • tableau (étape, sous-étape) en cas d'échec,
  • tableau vide sinon.

serie_alter()

Appliquer une serie de changements qui risquent de partir en timeout

serie_alter(string $serie[, array<string|int, mixed> $q = [] ][, string $meta = '' ][, string $table = 'meta' ][, string $redirect = '' ]) : int

Alter crée une copie temporaire d'une table, c'est lourd.

Parameters
$serie : string

numero de version upgrade

$q : array<string|int, mixed> = []

tableau des operations pour cette version

$meta : string = ''

nom de la meta qui contient le numero de version

$table : string = 'meta'

nom de la table meta

$redirect : string = ''

url de redirection en cas d'interruption

Tags
uses
relance_maj()
used-by
maj_while()
Return values
int

upgrade_test()

Vérifie qu'il est possible d'ajouter une colonne à une table SQL

upgrade_test() : bool
Tags
used-by
maj_base()
Return values
bool

True si possible.

test_espace_prive()

Indique si on est dans l'espace prive

test_espace_prive() : bool
Return values
bool

true si c'est le cas, false sinon.

Prédicat sur les scripts de ecrire qui n'authentifient pas par cookie et beneficient d'une exception

autoriser_sans_cookie(string $nom[, bool $strict = false ]) : bool
Parameters
$nom : string
$strict : bool = false
Return values
bool

verifier_visiteur()

Retourne le statut du visiteur s'il s'annonce.

verifier_visiteur() : string|0|false

Pour que cette fonction marche depuis mes_options, il faut forcer l'init si ce n'est fait mais on risque de perturber des plugins en initialisant trop tot certaines constantes.

Return values
string|0|false

spip_session()

Renvoie une chaîne qui identifie la session courante

spip_session([bool $force = false ]) : string

Permet de savoir si on peut utiliser un cache enregistré pour cette session. Cette chaîne est courte (8 cars) pour pouvoir être utilisée dans un nom de fichier cache.

Parameters
$force : bool = false
Tags
pipeline_appel

definir_session

used-by
supprimer_sessions()
Return values
string

Identifiant de la session

generer_form_ecrire()

Retourne un formulaire (POST par défaut) vers un script exec de l’interface privée

generer_form_ecrire(string $script, string $corps[, string $atts = '' ][, string $submit = '' ]) : string
Parameters
$script : string

Nom de la page exec

$corps : string

Contenu du formulaire

$atts : string = ''

Si présent, remplace les arguments par défaut (method=post) par ceux indiqués

$submit : string = ''

Si indiqué, un bouton de soumission est créé avec texte sa valeur.

Return values
string

Code HTML du formulaire

generer_form_action()

Générer un formulaire pour lancer une action vers $script

generer_form_action(string $script, string $corps[, string $atts = '' ][, bool $public = false ]) : string

Attention, JS/Ajax n'aime pas le melange de param GET/POST On n'applique pas la recommandation ci-dessus pour les scripts publics qui ne sont pas destines a etre mis en signets

Parameters
$script : string
$corps : string
$atts : string = ''
$public : bool = false
Return values
string

_T()

Traduction des textes de SPIP

_T(string $texte[, array<string|int, mixed> $args = [] ][, array<string|int, mixed> $options = [] ]) : string

Traduit une clé de traduction en l'obtenant dans les fichiers de langues.

Parameters
$texte : string

Clé de traduction

$args : array<string|int, mixed> = []

Couples (variable => valeur) pour passer des variables à la chaîne traduite. la variable spip_lang permet de forcer la langue

$options : array<string|int, mixed> = []
  • 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
  • bool sanitize : nettoyer le html suspect dans les arguments
Tags
uses
inc_traduire_dist()
uses
_L()
example
_T('bouton_enregistrer')
_T('medias:image_tourner_droite')
_T('medias:erreurs', array('nb'=>3))
_T("email_sujet", array('spip_lang'=>$lang_usager))
Return values
string

texte

_L()

Remplace les variables `@...@` par leur valeur dans une chaîne de langue.

_L(string $text[, array<string|int, mixed> $args = [] ][, array<string|int, mixed> $options = [] ]) : string

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.

Parameters
$text : string

texte

$args : array<string|int, mixed> = []

Couples (variable => valeur) à transformer dans le texte

$options : array<string|int, mixed> = []
  • string class : nom d'une classe a ajouter sur un span pour encapsuler la chaine
  • bool sanitize : nettoyer le html suspect dans les arguments
Tags
see
_T()
example
_L('Texte avec @nb@ ...', array('nb'=>3)
used-by
_T()
Return values
string

texte

lang_select()

Sélectionne la langue donnée en argument et mémorise la courante

lang_select([null|string $lang = null ]) : string

Restaure l'ancienne langue si appellée sans argument.

Parameters
$lang : null|string = null
  • string : Langue à appliquer,
  • null : Pour restituer la dernière langue mémorisée.
Tags
note

On pourrait économiser l'empilement en cas de non changemnt et lui faire retourner False pour prevenir l'appelant Le noyau de Spip sait le faire, mais pour assurer la compatibilité cette fonction retourne toujours non False

uses
changer_langue()
used-by
menu_lang_pour_tous()
Return values
string
  • string Langue utilisée.

spip_initialisation()

Fonction d'initialisation groupée pour compatibilité ascendante

spip_initialisation([string $pi = null ][, string $pa = null ][, string $ti = null ][, string $ta = null ]) : mixed
Parameters
$pi : string = null

Répertoire permanent inaccessible

$pa : string = null

Répertoire permanent accessible

$ti : string = null

Répertoire temporaire inaccessible

$ta : string = null

Répertoire temporaire accessible

spip_initialisation_core()

Fonction d'initialisation, appellée dans inc_version ou mes_options

spip_initialisation_core([string $pi = null ][, string $pa = null ][, string $ti = null ][, string $ta = null ]) : mixed

Elle définit les répertoires et fichiers non partageables et indique dans $test_dirs ceux devant être accessibles en écriture mais ne touche pas à cette variable si elle est déjà définie afin que mes_options.php puisse en spécifier d'autres.

Elle définit ensuite les noms des fichiers et les droits. Puis simule un register_global=on sécurisé.

Parameters
$pi : string = null

Répertoire permanent inaccessible

$pa : string = null

Répertoire permanent accessible

$ti : string = null

Répertoire temporaire inaccessible

$ta : string = null

Répertoire temporaire accessible

spip_initialisation_suite()

Complements d'initialisation non critiques pouvant etre realises par les plugins

spip_initialisation_suite() : mixed

init_var_mode()

Repérer les variables d'URL spéciales `var_mode` qui conditionnent la validité du cache ou certains affichages spéciaux.

init_var_mode() : mixed

Le paramètre d'URL var_mode permet de modifier la pérennité du cache, recalculer des urls ou d'autres petit caches (trouver_table, css et js compactes ...), d'afficher un écran de débug ou des traductions non réalisées.

En fonction de ces paramètres dans l'URL appelante, on définit da constante _VAR_MODE qui servira ensuite à SPIP.

Le paramètre var_mode accepte ces valeurs :

  • calcul : force un calcul du cache de la page (sans forcément recompiler les squelettes)
  • recalcul : force un calcul du cache de la page en recompilant au préabable les squelettes
  • inclure : modifie l'affichage en ajoutant visuellement le nom de toutes les inclusions qu'elle contient
  • debug : modifie l'affichage activant le mode "debug"
  • preview : modifie l'affichage en ajoutant aux boucles les éléments prévisualisables
  • traduction : modifie l'affichage en affichant des informations sur les chaînes de langues utilisées
  • urls : permet de recalculer les URLs des objets appelés dans la page par les balises #URL_xx
  • images : permet de recalculer les filtres d'images utilisés dans la page

En dehors des modes calcul et recalcul, une autorisation 'previsualiser' ou 'debug' est testée.

Tags
note

Il éxiste également le paramètre var_profile qui modifie l'affichage pour incruster le nombre de requêtes SQL utilisées dans la page, qui peut se compléter avec le paramètre var_mode (calcul ou recalcul).

cron()

Exécution des tâches de fond

cron([array<string|int, mixed> $taches = [] ][, array<string|int, mixed> $taches_old = [] ]) : bool
Parameters
$taches : array<string|int, mixed> = []

Tâches forcées

$taches_old : array<string|int, mixed> = []

Tâches forcées, pour compat avec ancienne syntaxe

Tags
uses
inc_genie_dist()
used-by
action_cron()
Return values
bool

True si la tache a pu être effectuée

job_queue_add()

Ajout d'une tache dans la file d'attente

job_queue_add(string $function, string $description[, array<string|int, mixed> $arguments = [] ][, string $file = '' ][, bool $no_duplicate = false ][, int $time = 0 ][, int $priority = 0 ]) : int
Parameters
$function : string

Le nom de la fonction PHP qui doit être appelée.

$description : string

Une description humainement compréhensible de ce que fait la tâche (essentiellement pour l’affichage dans la page de suivi de l’espace privé)

$arguments : array<string|int, mixed> = []

Facultatif, vide par défaut : les arguments qui seront passés à la fonction, sous forme de tableau PHP

$file : string = ''

Facultatif, vide par défaut : nom du fichier à inclure, via include_spip($file) exemple : 'inc/mail' : il ne faut pas indiquer .php Si le nom finit par un '/' alors on considère que c’est un répertoire et SPIP fera un charger_fonction($function, $file)

$no_duplicate : bool = false

Facultatif, false par défaut

  • si true la tâche ne sera pas ajoutée si elle existe déjà en file d’attente avec la même fonction et les mêmes arguments.
  • si function_only la tâche ne sera pas ajoutée si elle existe déjà en file d’attente avec la même fonction indépendamment de ses arguments
$time : int = 0

Facultatif, 0 par défaut : indique la date sous forme de timestamp à laquelle la tâche doit être programmée. Si 0 ou une date passée, la tâche sera exécutée aussitôt que possible (en général en fin hit, en asynchrone).

$priority : int = 0

Facultatif, 0 par défaut : indique un niveau de priorité entre -10 et +10. Les tâches sont exécutées par ordre de priorité décroissante, une fois leur date d’exécution passée. La priorité est surtout utilisée quand une tâche cron indique qu’elle n’a pas fini et doit être relancée : dans ce cas SPIP réduit sa priorité pour être sûr que celle tâche ne monopolise pas la file d’attente.

Return values
int

Le numéro de travail ajouté ou 0 si aucun travail n’a été ajouté.

job_queue_remove()

Supprimer une tache de la file d'attente

job_queue_remove(int $id_job) : bool
Parameters
$id_job : int

id of jonb to delete

Return values
bool

Associer une tache a un/des objets de SPIP

job_queue_link(int $id_job, array<string|int, mixed> $objets) : mixed
Parameters
$id_job : int

id of job to link

$objets : array<string|int, mixed>

can be a simple array('objet'=>'article', 'id_objet'=>23) or an array of simple array to link multiples objet in one time

queue_sleep_time_to_next_job()

Renvoyer le temps de repos restant jusqu'au prochain job

queue_sleep_time_to_next_job([int|bool $force = null ]) : int|null
Parameters
$force : int|bool = null

Utilisée par queue_set_next_job_time() pour mettre à jour la valeur :

  • si true, force la relecture depuis le fichier
  • si int, affecte la static directement avec la valeur
Tags
staticvar

int $queue_next_job_time

see
queue_set_next_job_time()
used-by
f_queue()
used-by
queue_schedule()
used-by
queue_affichage_cron()
Return values
int|null
  • 0 si un job est à traiter
  • null si la queue n'est pas encore initialisée

charger_fonction()

Cherche une fonction surchargeable et en retourne le nom exact, après avoir chargé le fichier la contenant si nécessaire.

charger_fonction(string $nom[, string $dossier = 'exec' ][, bool $continue = false ]) : string

Charge un fichier (suivant les chemins connus) et retourne si elle existe le nom de la fonction homonyme $dir_$nom, ou suffixé $dir_$nom_dist

Peut être appelé plusieurs fois, donc optimisé.

Parameters
$nom : string

Nom de la fonction (et du fichier)

$dossier : string = 'exec'

Nom du dossier conteneur

$continue : bool = false

true pour ne pas râler si la fonction n'est pas trouvée

Tags
uses
include_spip()

Pour charger le fichier

example
$envoyer_mail = charger_fonction('envoyer_mail', 'inc');
$envoyer_mail($email, $sujet, $texte);
used-by
auth_administrer()
Return values
string

Nom de la fonction, ou false.

include_once_check()

Inclusion unique avec verification d'existence du fichier + log en crash sinon

include_once_check(string $file) : bool
Parameters
$file : string
Return values
bool

include_spip()

Inclut un fichier PHP (en le cherchant dans les chemins)

include_spip(string $f[, bool $include = true ]) : string|bool
Parameters
$f : string

Nom du fichier (sans l'extension)

$include : bool = true
  • true pour inclure le fichier,
  • false ne fait que le chercher
Tags
uses
find_in_path()
example
include_spip('inc/texte');
used-by
charger_fonction()

Pour charger le fichier

Return values
string|bool
  • false : fichier introuvable
  • string : chemin du fichier trouvé

require_spip()

Requiert un fichier PHP (en le cherchant dans les chemins)

require_spip(string $f) : string|bool
Parameters
$f : string

Nom du fichier (sans l'extension)

Tags
uses
find_in_path()
see
include_spip()
example
require_spip('inc/texte');
Return values
string|bool
  • false : fichier introuvable
  • string : chemin du fichier trouvé

include_fichiers_fonctions()

Raccourci pour inclure mes_fonctions.php et tous les fichiers _fonctions.php des plugin quand on a besoin dans le PHP de filtres/fonctions qui y sont definis

include_fichiers_fonctions() : mixed

charger_fonction_url()

Charger la fonction de gestion des urls si elle existe

charger_fonction_url(string $quoi[, string $type = '' ]) : string
Parameters
$quoi : string

'page' 'objet' 'decoder' ou objet spip pour lequel on cherche la fonction url par defaut (si type==='defaut')

$type : string = ''

type des urls (par defaut la meta type_urls) ou 'defaut' pour trouver la fonction par defaut d'un type d'objet

Return values
string

trouve_modele()

Trouve un squelette dans le repertoire modeles/

trouve_modele( $nom) : string
Parameters
$nom :
Return values
string

trouver_fond()

Trouver un squelette dans le chemin on peut specifier un sous-dossier dans $dir si $pathinfo est a true, retourne un tableau avec les composantes du fichier trouve + le chemin complet sans son extension dans fond

trouver_fond(string $nom[, string $dir = '' ][, bool $pathinfo = false ]) : array<string|int, mixed>|string
Parameters
$nom : string
$dir : string = ''
$pathinfo : bool = false
Return values
array<string|int, mixed>|string

aider()

Retourne un lien vers une aide

aider([string $aide = '' ][, bool $distante = false ]) : Lien

Aide, aussi depuis l'espace privé à présent. Surchargeable mais pas d'erreur fatale si indisponible.

Parameters
$aide : string = ''

Cle d'identification de l'aide desiree

$distante : bool = false

Generer une url locale (par defaut) ou une url distante [directement sur spip.net]

Return values
Lien

sur une icone d'aide

tester_url_ecrire()

Teste, pour un nom de page de l'espace privé, s'il est possible de générer son contenu.

tester_url_ecrire(string $nom) : string

Dans ce cas, on retourne la fonction d'exécution correspondante à utiliser (du répertoire ecrire/exec). Deux cas particuliers et prioritaires : fond est retourné si des squelettes existent.

  • fond : pour des squelettes de prive/squelettes/contenu ou pour des objets éditoriaux dont les squelettes seront échaffaudés
Parameters
$nom : string

Nom de la page

Return values
string

Nom de l'exec, sinon chaîne vide.

spip_logger()

Obtenir un logger compatible Psr\Log

spip_logger([string|null $name = null ]) : LoggerInterface
Parameters
$name : string|null = null
Tags
example
spip_logger()->notice('mon message');

$logger = spip_logger();
$logger->info('mon message');
$logger->debug('mon debug');

$logger = spip_logger('mysql');
$logger->info('mon message sur le canal mysql');
$logger->debug('mon debug sur le canal mysql');
Return values
LoggerInterface

spip_log()

Enregistrement des événements

spip_log(mixed $message[, int|string|null $name = null ]) : void

Signature : spip_log(message, ?name)

Parameters
$message : mixed

Message à consigner

$name : int|string|null = null

Nom du fichier de log, "spip" par défaut

Tags
example
# Les appels ci-dessous sont "deprecated" depuis 5.0
spip_log($message)
spip_log($message, 'recherche')
spip_log($message, _LOG_DEBUG)
spip_log($message, 'recherche.'._LOG_DEBUG)
link
https://programmer.spip.net/spip_log
see
spip_logger()
deprecated
5.0

Utiliser spip_logger()

journal()

Enregistrement des journaux

journal(string $phrase[, array<string|int, mixed> $opt = [] ]) : mixed
Parameters
$phrase : string

texte du journal

$opt : array<string|int, mixed> = []

Tableau d'options

Tags
uses
inc_journal_dist()

spip_paths()

Return unique Aggregator class

spip_paths([null|array<string|int, mixed> $add = null ]) : AggregatorInterface
Parameters
$add : null|array<string|int, mixed> = null

List of «plugins» directories to add

Return values
AggregatorInterface

spip_paths_loader()

spip_paths_loader() : Loader
Return values
Loader

_chemin()

Gestion des chemins (ou path) de recherche de fichiers par SPIP

_chemin([string|array<string|int, mixed>|null $dir_path = null ]) : array<string|int, mixed>

Empile de nouveaux chemins (à la suite de ceux déjà présents, mais avant le répertoire squelettes ou les dossiers squelettes), si un répertoire (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 tête du path, dans cet ordre (hormis squelettes & la globale $dossier_squelette si définie qui resteront devant)

Retourne dans tous les cas la liste des chemins.

Parameters
$dir_path : string|array<string|int, mixed>|null = null
  • Répertoire(s) à empiler au path
Tags
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/
Return values
array<string|int, mixed>

Liste des chemins, par ordre de priorité.

creer_chemin()

Retourne la liste des chemins connus de SPIP, dans l'ordre de priorité

creer_chemin() : array<string|int, mixed>
Return values
array<string|int, mixed>

Liste de chemins

lister_themes_prives()

Retourne la liste des thèmes du privé utilisables pour cette session

lister_themes_prives() : array<string|int, string>
Tags
see
inscription_nouveau()

pour une particularité historique du champ 'prefs'

Return values
array<string|int, string>

Nom des thèmes.

find_in_theme()

find_in_theme(mixed $file[, mixed $subdir = '' ][, mixed $include = false ]) : mixed
Parameters
$file : mixed
$subdir : mixed = ''
$include : mixed = false

chemin_image()

Cherche une image dans les dossiers d'images

chemin_image(string $icone) : string

Cherche en priorité dans les thèmes d'image (prive/themes/X/images) et si la fonction n'en trouve pas, gère le renommage des icones (ex: 'supprimer' => 'del') de facon temporaire le temps de la migration, et cherche de nouveau.

Si l'image n'est toujours pas trouvée, on la cherche dans les chemins, dans le répertoire défini par la constante _NOM_IMG_PACK

Parameters
$icone : string

Nom de l'icone cherchée

Tags
see
find_in_theme()
see
inc_icone_renommer_dist()
Return values
string

Chemin complet de l'icone depuis la racine si l'icone est trouée, sinon chaîne vide.

find_in_path()

Recherche un fichier dans les chemins de SPIP (squelettes, plugins, core)

find_in_path(string $file[, string $dirname = '' ][, bool|string $include = false ]) : string|bool

Retournera le premier fichier trouvé (ayant la plus haute priorité donc), suivant l'ordre des chemins connus de SPIP.

Parameters
$file : string

Fichier recherché

$dirname : string = ''

Répertoire éventuel de recherche (est aussi extrait automatiquement de $file)

$include : bool|string = false
  • 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é.
Tags
see
charger_fonction()
uses
creer_chemin()

Pour la liste des chemins.

example
$f = find_in_path('css/perso.css');
$f = find_in_path('perso.css', 'css');
used-by
include_spip()
used-by
require_spip()
Return values
string|bool
  • string : chemin du fichier trouvé
  • false : fichier introuvable

find_all_in_path()

Trouve tous les fichiers du path correspondants à un pattern

find_all_in_path(string $dir, string $pattern[, bool $recurs = false ][, bool $all_files = false ]) : array<string|int, mixed>

Pour un nom de fichier donné, ne retourne que le premier qui sera trouvé par un find_in_path(), sauf si l'option all_files est activée.

Parameters
$dir : string
$pattern : string
$recurs : bool = false
$all_files : bool = false
Tags
uses
creer_chemin()
uses
preg_files()
used-by
selecteur_lister_objets()
Return values
array<string|int, mixed>

minipipe()

Exécute une fonction (appellée par un pipeline) avec la donnée transmise.

minipipe(string $fonc, string|array<string|int, mixed> &$val) : string|array<string|int, mixed>

Un pipeline est lie a une action et une valeur chaque element du pipeline est autorise a modifier la valeur le pipeline execute les elements disponibles pour cette action, les uns apres les autres, et retourne la valeur finale

Cf. compose_filtres dans references.php, qui est la version compilee de cette fonctionnalite appel unitaire d'une fonction du pipeline utilisee dans le script pipeline precompile

on passe $val par reference pour limiter les allocations memoire

Parameters
$fonc : string

Nom de la fonction appelée par le pipeline

$val : string|array<string|int, mixed>

Les paramètres du pipeline, son environnement

Return values
string|array<string|int, mixed>

$val Les paramètres du pipeline modifiés

pipeline()

Appel d’un pipeline

pipeline(string $action[, mixed $val = null ]) : mixed|null

Exécute le pipeline souhaité, éventuellement avec des données initiales. Chaque plugin qui a demandé à voir ce pipeline vera sa fonction spécifique appelée. Les fonctions (des plugins) appelées peuvent modifier à leur guise le contenu.

Deux types de retours. Si $val est un tableau de 2 éléments, avec une clé data on retourne uniquement ce contenu ($val['data']) sinon on retourne tout $val.

Parameters
$action : string

Nom du pipeline

$val : mixed = null

Données à l’entrée du pipeline

Tags
example

Appel du pipeline pre_insertion

$champs = pipeline('pre_insertion', array(
    'args' => array('table' => 'spip_articles'),
    'data' => $champs
));
Return values
mixed|null

Résultat

_request()

Renvoie le `$_GET` ou le `$_POST` émis par l'utilisateur ou pioché dans un tableau transmis

_request(string $var[, bool|array<string|int, mixed> $c = false ]) : mixed|null
Parameters
$var : string

Clé souhaitée

$c : bool|array<string|int, mixed> = false

Tableau transmis (sinon cherche dans GET ou POST)

Return values
mixed|null
  • null si la clé n'a pas été trouvée
  • la valeur de la clé sinon.

set_request()

Affecte une valeur à une clé (pour usage avec `_request()`)

set_request(string $var[, string $val = null ][, bool|array<string|int, mixed> $c = false ]) : array<string|int, mixed>|bool
Parameters
$var : string

Nom de la clé

$val : string = null

Valeur à affecter

$c : bool|array<string|int, mixed> = false

Tableau de données (sinon utilise $_GET et $_POST)

Tags
see
_request()

Pour obtenir la valeur

note

Attention au cas ou l'on fait set_request('truc', NULL);

Return values
array<string|int, mixed>|bool
  • array $c complété si un $c est transmis,
  • false sinon

spip_sanitize_from_request()

Sanitizer une valeur *SI* elle provient du GET ou POST Utile dans les squelettes pour les valeurs qu'on attrape dans le env, dont on veut permettre à un squelette de confiance appelant de fournir une valeur complexe mais qui doit etre nettoyee si elle provient de l'URL

spip_sanitize_from_request(string|array<string|int, mixed> $value, string|array<string|int, mixed> $key[, string $sanitize_function = 'entites_html' ]) : array<string|int, mixed>|mixed|string

On peut sanitizer

  • une valeur simple : $where = spip_sanitize_from_request($value, 'where')
  • un tableau en partie : $env = spip_sanitize_from_request($env, ['key1','key2'])
  • un tableau complet : $env = spip_sanitize_from_request($env, '*')
Parameters
$value : string|array<string|int, mixed>
$key : string|array<string|int, mixed>
$sanitize_function : string = 'entites_html'
Return values
array<string|int, mixed>|mixed|string

spip_desinfecte()

Supprimer les éventuels caracteres nuls %00, qui peuvent tromper la commande is_readable('chemin/vers/fichier/interdit%00truc_normal').

spip_desinfecte(array<string|int, mixed> &$t[, bool $deep = true ]) : mixed

Cette fonction est appliquée par SPIP à son initialisation sur GET/POST/COOKIES/GLOBALS

Parameters
$t : array<string|int, mixed>

le tableau ou la chaine à desinfecter (passage par référence)

$deep : bool = true

= true : appliquer récursivement

spip_sanitize_classname()

Nettoie une chaine pour servir comme classes CSS.

spip_sanitize_classname(string|array<string|int, string> $classes) : string|array<string|int, string>
Parameters
$classes : string|array<string|int, string>
Tags
note

les classes CSS acceptent théoriquement tous les caractères sauf NUL. Ici, on limite (enlève) les caractères autres qu’alphanumérique, espace, - + _ @

Return values
string|array<string|int, string>

erreur_squelette()

Génère une erreur de squelette

erreur_squelette([bool|string|array<string|int, mixed> $message = '' ][, string|array<string|int, mixed>|object $lieu = '' ]) : null|string

Génère une erreur de squelette qui sera bien visible par un administrateur authentifié lors d'une visite de la page en erreur

Parameters
$message : bool|string|array<string|int, mixed> = ''
  • Message d'erreur (string|array)
  • false pour retourner le texte des messages d'erreurs
  • vide pour afficher les messages d'erreurs
$lieu : string|array<string|int, mixed>|object = ''

Lieu d'origine de l'erreur

Return values
null|string
  • Rien dans la plupart des cas
  • string si $message à false.

recuperer_fond()

Calcule un squelette avec un contexte et retourne son contenu

recuperer_fond(mixed $fond[, array<string|int, mixed> $contexte = [] ][, array<string|int, mixed> $options = [] ][, string $connect = '' ]) : string|array<string|int, mixed>

La fonction de base de SPIP : un squelette + un contexte => une page. $fond peut etre un nom de squelette, ou une liste de squelette au format array. Dans ce dernier cas, les squelettes sont tous evalues et mis bout a bout $options permet de selectionner les options suivantes :

  • trim => true (valeur par defaut) permet de ne rien renvoyer si le fond ne produit que des espaces ;
  • raw => true permet de recuperer la strucure $page complete avec entetes et invalideurs pour chaque $fond fourni.
Parameters
$fond : mixed
$contexte : array<string|int, mixed> = []
  • Informations de contexte envoyées au squelette, array('id_rubrique' => 8)
  • La langue est transmise automatiquement (sauf option étoile).
$options : array<string|int, mixed> = []

Options complémentaires :

  • trim : applique un trim sur le résultat (true par défaut)
  • raw : retourne un tableau d'information sur le squelette (false par défaut)
  • etoile : ne pas transmettre la langue au contexte automatiquement (false par défaut), équivalent de INCLURE*
  • ajax : gere les liens internes du squelette en ajax (équivalent du paramètre {ajax})
$connect : string = ''

Non du connecteur de bdd a utiliser

Return values
string|array<string|int, mixed>
  • Contenu du squelette calculé
  • ou tableau d'information sur le squelette.

quote_amp()

Transformation XML des `&` en `&amp;`

quote_amp(string $u) : string
Parameters
$u : string
Tags
pipeline

post_typo

Return values
string

tester_url_absolue()

Tester si une URL est absolue

tester_url_absolue(string $url) : bool

On est sur le web, on exclut certains protocoles, notamment 'file://', 'php://' et d'autres…

Parameters
$url : string
Return values
bool

parametre_url()

Prend une URL et lui ajoute/retire un paramètre

parametre_url(string $url, string $c[, string|array<string|int, mixed>|null $v = null ][, string $sep = '&amp;' ]) : string
Parameters
$url : string

URL

$c : string

Nom du paramètre

$v : string|array<string|int, mixed>|null = null

Valeur du paramètre

$sep : string = '&amp;'

Séparateur entre les paramètres

Tags
filtre
link
https://www.spip.net/4255
example
[(#SELF|parametre_url{suite,18})] (ajout)
[(#SELF|parametre_url{suite,''})] (supprime)
[(#SELF|parametre_url{suite[],1})] (tableaux valeurs multiples)
Return values
string

URL

ancre_url()

Ajoute (ou retire) une ancre sur une URL

ancre_url(string $url[, string|null $ancre = '' ]) : string

L’ancre est nettoyée : on translitère, vire les non alphanum du début, et on remplace ceux à l'interieur ou au bout par -

Parameters
$url : string
$ancre : string|null = ''
Tags
example
  • `$url = ancre_url($url, 'navigation'); // => mettra l’ancre #navigation
  • `$url = ancre_url($url, ''); // => enlèvera une éventuelle ancre
uses
translitteration()
Return values
string

nettoyer_uri()

Pour le nom du cache, les `types_urls` et `self`

nettoyer_uri([string|null $reset = null ]) : string
Parameters
$reset : string|null = null
Return values
string

nettoyer_uri_var()

Nettoie une URI de certains paramètres (var_xxx, utm_xxx, etc.)

nettoyer_uri_var(string $request_uri) : string

La regexp des paramètres nettoyés est calculée à partir de la constante _CONTEXTE_IGNORE_LISTE_VARIABLES (qui peut être redéfinie dans mes_options.php)

Parameters
$request_uri : string
Tags
uses
_CONTEXTE_IGNORE_LISTE_VARIABLES
Return values
string

self()

Donner l'URL de base d'un lien vers "soi-meme", modulo les trucs inutiles

self([string $amp = '&amp;' ][, bool $root = false ]) : string
Parameters
$amp : string = '&amp;'

Style des esperluettes

$root : bool = false
Return values
string

URL vers soi-même

generer_objet_url()

Fonction codant les URLs des objets SQL mis en page par SPIP

generer_objet_url(int|string|null $id, string $entite[, string $args = '' ][, string $ancre = '' ][, bool|null $public = null ][, string $type = '' ][, string $connect = '' ]) : string
Parameters
$id : int|string|null

numero de la cle primaire si nombre

$entite : string

surnom de la table SQL (donne acces au nom de cle primaire)

$args : string = ''

query_string a placer apres cle=$id&....

$ancre : string = ''

ancre a mettre a la fin de l'URL a produire

$public : bool|null = null

produire l'URL publique ou privee (par defaut: selon espace)

$type : string = ''

fichier dans le repertoire ecrire/urls determinant l'apparence

$connect : string = ''

serveur de base de donnee (nom du connect)

Return values
string

url codee ou fonction de decodage

generer_url_entite()

generer_url_entite([mixed $id = 0 ][, mixed $entite = '' ][, mixed $args = '' ][, mixed $ancre = '' ][, mixed $public = null ][, mixed $type = null ]) : mixed
Parameters
$id : mixed = 0
$entite : mixed = ''
$args : mixed = ''
$ancre : mixed = ''
$public : mixed = null
$type : mixed = null
Tags
deprecated
4.1
see
generer_objet_url

generer_objet_url_ecrire_edit()

Generer l'url vers la page d'edition dans ecrire/

generer_objet_url_ecrire_edit(int|string|null $id, string $entite[, string $args = '' ][, string $ancre = '' ]) : string
Parameters
$id : int|string|null
$entite : string
$args : string = ''
$ancre : string = ''
Return values
string

generer_url_ecrire_entite_edit()

generer_url_ecrire_entite_edit(mixed $id, mixed $entite[, mixed $args = '' ][, mixed $ancre = '' ]) : mixed
Parameters
$id : mixed
$entite : mixed
$args : mixed = ''
$ancre : mixed = ''
Tags
deprecated
4.1
see
generer_objet_url_ecrire_edit

urls_connect_dist()

urls_connect_dist(mixed $i, mixed &$entite[, mixed $args = '' ][, mixed $ancre = '' ][, mixed $public = null ]) : mixed
Parameters
$i : mixed
$entite : mixed
$args : mixed = ''
$ancre : mixed = ''
$public : mixed = null

urlencode_1738()

Transformer les caractères utf8 d'une URL (farsi par exemple) selon la RFC 1738

urlencode_1738(string $url) : string
Parameters
$url : string
Return values
string

generer_objet_url_absolue()

Generer l'url absolue vers un objet

generer_objet_url_absolue([int|string|null $id = 0 ][, string $entite = '' ][, string $args = '' ][, string $ancre = '' ][, bool|null $public = null ][, string $type = '' ][, string $connect = '' ]) : string
Parameters
$id : int|string|null = 0
$entite : string = ''
$args : string = ''
$ancre : string = ''
$public : bool|null = null
$type : string = ''
$connect : string = ''
Return values
string

generer_url_entite_absolue()

generer_url_entite_absolue([mixed $id = 0 ][, mixed $entite = '' ][, mixed $args = '' ][, mixed $ancre = '' ][, mixed $connect = null ]) : mixed
Parameters
$id : mixed = 0
$entite : mixed = ''
$args : mixed = ''
$ancre : mixed = ''
$connect : mixed = null
Tags
deprecated
4.1
see
generer_objet_url_absolue

url_de_base()

Calcule l'url de base du site

url_de_base([int|bool|array<string|int, mixed> $profondeur = null ]) : string|array<string|int, mixed>

Calcule l'URL de base du site, en priorité sans se fier à la méta (adresse_site) qui peut être fausse (sites avec plusieurs noms d’hôtes, déplacements, erreurs). En dernier recours, lorsqu'on ne trouve rien, on utilise adresse_site comme fallback.

Parameters
$profondeur : int|bool|array<string|int, mixed> = null
  • si non renseignée : retourne l'url pour la profondeur $GLOBALS['profondeur_url']
  • si int : indique que l'on veut l'url pour la profondeur indiquée
  • si bool : retourne le tableau static complet
  • si array : réinitialise le tableau static complet avec la valeur fournie
Tags
note

La globale $profondeur_url doit être initialisée de manière à indiquer le nombre de sous-répertoires de l'url courante par rapport à la racine de SPIP : par exemple, sur ecrire/ elle vaut 1, sur sedna/ 1, et à la racine 0. Sur url/perso/ elle vaut 2

used-by
liste_metas()
Return values
string|array<string|int, mixed>

url_de_()

fonction testable de construction d'une url appelee par url_de_base()

url_de_(string $http, string $host, string $request[, int $prof = 0 ]) : string
Parameters
$http : string
$host : string
$request : string
$prof : int = 0
Return values
string

generer_url_ecrire()

Crée une URL vers un script de l'espace privé

generer_url_ecrire([string $script = '' ][, string $args = '' ][, bool $no_entities = false ][, bool|string $rel = false ]) : string
Parameters
$script : string = ''

Nom de la page privée (xx dans exec=xx)

$args : string = ''

Arguments à transmettre, tel que arg1=yy&arg2=zz

$no_entities : bool = false

Si false : transforme les & en &amp;

$rel : bool|string = false

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
Tags
example
generer_url_ecrire('admin_plugin')
Return values
string

URL

get_spip_script()

Retourne le nom du fichier d'exécution de SPIP

get_spip_script([string $default = '' ]) : string
Parameters
$default : string = ''

Script par défaut

Tags
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)

Return values
string

Nom du fichier (constante _SPIP_SCRIPT), sinon nom par défaut

generer_url_public()

Crée une URL vers une page publique de SPIP

generer_url_public([string $script = '' ][, string|array<string|int, mixed> $args = '' ][, bool $no_entities = false ][, bool $rel = true ][, string $action = '' ]) : string
Parameters
$script : string = ''

Nom de la page

$args : string|array<string|int, mixed> = ''

Arguments à transmettre a l'URL, soit sous la forme d'un string tel que arg1=yy&arg2=zz soit sous la forme d'un array tel que array( arg1 => yy, arg2 => zz )

$no_entities : bool = false

Si false : transforme les & en &amp;

$rel : bool = true

URL relative ?

  • false : l’URL sera complète et contiendra l’URL du site
  • true : l’URL sera relavive.
$action : string = ''
  • Fichier d'exécution public (spip.php par défaut)
Tags
example
generer_url_public("rubrique","id_rubrique=$id_rubrique")
Return values
string

URL

generer_url_prive()

generer_url_prive(mixed $script[, mixed $args = '' ][, mixed $no_entities = false ]) : mixed
Parameters
$script : mixed
$args : mixed = ''
$no_entities : mixed = false

generer_url_action()

Créer une URL

generer_url_action(string $script[, string $args = '' ][, bool $no_entities = false ][, bool $public = false ]) : string
Parameters
$script : string

Nom du script à exécuter

$args : string = ''

Arguments à transmettre a l'URL sous la forme arg1=yy&arg2=zz

$no_entities : bool = false

Si false : transforme les & en &

$public : bool = false

URL relative ? false : l’URL sera complète et contiendra l’URL du site. true : l’URL sera relative.

Return values
string

URL

generer_url_api()

Créer une URL

generer_url_api(string $script, string $path, string $args[, bool $no_entities = false ][, bool $public = null ]) : string
Parameters
$script : string

Nom du script à exécuter

$path : string
$args : string

Arguments à transmettre a l'URL sous la forme arg1=yy&arg2=zz

$no_entities : bool = false

Si false : transforme les & en &

$public : bool = null

URL public ou relative a l'espace ou l'on est ?

Return values
string

URL

test_plugin_actif()

Vérifie la présence d'un plugin actif, identifié par son préfixe

test_plugin_actif(string $plugin) : bool
Parameters
$plugin : string
Return values
bool

joli_repertoire()

Retourne un joli chemin de répertoire

joli_repertoire(string $rep) : string

Pour afficher ecrire/action/ au lieu de action/ dans les messages ou tmp/ au lieu de ../tmp/

Parameters
$rep : string

Chemin d’un répertoire

Return values
string

spip_timer()

Débute ou arrête un chronomètre et retourne sa valeur

spip_timer([string $t = 'rien' ][, bool $raw = false ]) : float|int|string|void

On exécute 2 fois la fonction, la première fois pour démarrer le chrono, la seconde fois pour l’arrêter et récupérer la valeur

Parameters
$t : string = 'rien'

Nom du chronomètre

$raw : bool = false
  • false : retour en texte humainement lisible
  • true : retour en millisecondes
Tags
example
spip_timer('papoter');
// actions
$duree = spip_timer('papoter');
Return values
float|int|string|void

spip_touch()

spip_touch(mixed $fichier[, mixed $duree = 0 ][, mixed $touch = true ]) : mixed
Parameters
$fichier : mixed
$duree : mixed = 0
$touch : mixed = true

http_script()

Produit une balise `<script>` valide

http_script(string $script[, string $src = '' ][, string $noscript = '' ]) : string
Parameters
$script : string

Code source du script

$src : string = ''

Permet de faire appel à un fichier javascript distant

$noscript : string = ''

Contenu de la balise <noscript>

Tags
example
echo http_script('alert("ok");');
echo http_script('','js/jquery.js');
Return values
string

Balise HTML <script> et son contenu

texte_script()

Sécurise du texte à écrire dans du PHP ou du Javascript.

texte_script(string|null $texte) : string

Transforme n'importe quel texte en une chaîne utilisable en PHP ou Javascript en toute sécurité, à l'intérieur d'apostrophes simples (' uniquement ; pas ")

Utile particulièrement en filtre dans un squelettes pour écrire un contenu dans une variable JS ou PHP.

Échappe les apostrophes (') du contenu transmis.

Parameters
$texte : string|null

texte à échapper

Tags
link
https://www.spip.net/4281
example

PHP dans un squelette

$x = '[(#TEXTE|texte_script)]';

JS dans un squelette (transmettre une chaîne de langue)

$x = '<:afficher_calendrier|texte_script:>';
filtre
Return values
string

texte échappé

test_valeur_serveur()

Tester qu'une variable d'environnement est active

test_valeur_serveur(string|bool $truc) : bool

Sur certains serveurs, la valeur 'Off' tient lieu de false dans certaines variables d'environnement comme $_SERVER['HTTPS'] ou ini_get('display_errors')

Parameters
$truc : string|bool

La valeur de la variable d'environnement

Return values
bool

true si la valeur est considérée active ; false sinon.

exec_info_dist()

Page `exec=info` : retourne le contenu de la fonction php `phpinfo()`

exec_info_dist() : mixed

Si l’utiliseur est un webmestre.

html5_permis()

Indique si le code HTML5 est permis sur le site public

html5_permis() : bool
Return values
bool

true si la constante _VERSION_HTML n'est pas définie ou égale à html5

formats_image_acceptables()

Lister les formats image acceptes par les lib et fonctions images

formats_image_acceptables([bool|null $gd = null ][, bool $svg_allowed = true ]) : array<string|int, mixed>
Parameters
$gd : bool|null = null
$svg_allowed : bool = true
Return values
array<string|int, mixed>

spip_getimagesize()

Extension de la fonction getimagesize pour supporter aussi les images SVG

spip_getimagesize(string $fichier) : array<string|int, mixed>|bool
Parameters
$fichier : string
Return values
array<string|int, mixed>|bool

avertir_auteurs()

Poser une alerte qui sera affiche aux auteurs de bon statut ('' = tous) au prochain passage dans l'espace prive chaque alerte doit avoir un nom pour eviter duplication a chaque hit les alertes affichees une fois sont effacees

avertir_auteurs(string $nom, string $message[, string $statut = '' ]) : mixed
Parameters
$nom : string
$message : string
$statut : string = ''

spip_version_compare()

Compare 2 numéros de version entre elles.

spip_version_compare(string $v1, string $v2[, string $op = null ]) : int|bool

Cette fonction est identique (arguments et retours) a la fonction PHP version_compare() qu'elle appelle. Cependant, cette fonction reformate les numeros de versions pour ameliorer certains usages dans SPIP ou bugs dans PHP. On permet ainsi de comparer 3.0.4 à 3.0.* par exemple.

Parameters
$v1 : string

Numero de version servant de base a la comparaison. Ce numero ne peut pas comporter d'etoile.

$v2 : string

Numero de version a comparer. Il peut posseder des etoiles tel que 3.0.*

$op : string = null

Un operateur eventuel (<, >, <=, >=, =, == ...)

Return values
int|bool

Sans operateur : int. -1 pour inferieur, 0 pour egal, 1 pour superieur Avec operateur : bool.

exec_403_dist()

Un exec d'acces interdit

exec_403_dist([string $message = '' ]) : mixed
Parameters
$message : string = ''

exec_404_dist()

Un exec d'erreur

exec_404_dist() : mixed

exec_admin_plugin_dist()

Affichage de la page de gestion des plugins

exec_admin_plugin_dist([string $retour = '' ]) : mixed

Relance la page si des plugins ont été modifiés, sinon affiche la liste.

Parameters
$retour : string = ''

Inutilisé

Tags
uses
actualise_plugins_actifs()

admin_plug_args()

Affichage spécifique de la page de gestion des plugins

admin_plug_args(string $quoi, string $erreur, string $format) : mixed

Affiche la liste des plugins demandés et les erreurs éventuelles.

Parameters
$quoi : string

Quels plugins afficher ? actifs, ou autre

$erreur : string

Erreur éventuelle à afficher

$format : string

Format d'affichage (liste ou arborescence)

Tags
uses
plugin_donne_erreurs()
uses
liste_chemin_plugin()
uses
plugin_installes_meta()
uses
affiche_les_plugins_verrouilles()
pipeline_appel

affiche_gauche

pipeline_appel

affiche_droit

pipeline_appel

affiche_milieu

affiche_les_plugins_verrouilles()

Crée le code HTML de la liste des plugins verrouillés

affiche_les_plugins_verrouilles(array<string|int, mixed> $actifs) : string
Parameters
$actifs : array<string|int, mixed>

Liste des plugins actifs

Tags
uses
liste_plugin_files()
used-by
admin_plug_args()
Return values
string

Code HTML

afficher_librairies()

Crée le code HTML de la liste des librairies présentes

afficher_librairies() : string
Tags
uses
liste_librairies()
Return values
string

Code HTML

liste_librairies()

Faire la liste des librairies disponibles

liste_librairies() : array<string|int, mixed>
Tags
used-by
afficher_librairies()
Return values
array<string|int, mixed>

Tableau (nom de la lib => repertoire , ...)

exec_base_delete_all_dist()

Exec de la page de destruction des tables de SPIP

exec_base_delete_all_dist() : mixed

exec_base_repair_dist()

Réparer la base de données

exec_base_repair_dist() : mixed

exec_demande_mise_a_jour_dist()

Demander à mettre à jour la base de données

exec_demande_mise_a_jour_dist() : mixed

shutdown_error()

Fonction appelée en cas d'arrêt de php sur une erreur

shutdown_error() : mixed
Tags
todo

supprimer cette fonction vide ?

exec_fond_dist()

Un exec générique qui branche sur un squelette Z pour écrire

exec_fond_dist() : mixed

La fonction ne fait rien, c'est l'inclusion du fichier qui déclenche le traitement

exec_install_dist()

Affiche un des écrans d'installation de SPIP

exec_install_dist() : mixed

Affiche l'étape d'installation en cours, en fonction du paramètre d'url etape

Tags
uses
inc_auth_dist()
uses
verifier_visiteur()
uses
install_etape__dist()

Affiche l'écran d'accueil de l'installation, si aucune étape n'est encore définie.

exec_puce_statut_dist()

Gestion de l'affichage ajax des puces d'action rapide

exec_puce_statut_dist() : void

Récupère l'identifiant id et le type d'objet dans les données postées et appelle la fonction de traitement de cet exec.

Tags
uses
exec_puce_statut_args()

exec_puce_statut_args()

Traitement de l'affichage ajax des puces d'action rapide

exec_puce_statut_args(int $id, string $type) : void

Appelle la fonction de traitement des puces statuts après avoir retrouvé le statut en cours de l'objet et son parent (une rubrique)

Parameters
$id : int

Identifiant de l'objet

$type : string

Type d'objet

Tags
uses
inc_puce_statut_dist()
uses
ajax_retour()
used-by
exec_puce_statut_dist()

exec_rechercher_args()

Formate le rendu de la recherche ajax du mini navigateur de rubriques

exec_rechercher_args(int $id, string $type, string|int|array<string|int, mixed> $exclus, string|bool $rac, string $do) : string
Parameters
$id : int
$type : string
$exclus : string|int|array<string|int, mixed>
$rac : string|bool
$do : string
Tags
see
calcul_branche_in()
see
proposer_item()
used-by
exec_rechercher_dist()

Formate le rendu de la recherche.

Return values
string

proposer_item()

Résultat de la recherche intéractive demandée par la fonction JS `onkey_rechercher`

proposer_item(array<string|int, mixed> $ids, array<string|int, mixed>|string $titles, string|bool $rac, string $type, string $do) : string
Parameters
$ids : array<string|int, mixed>
$titles : array<string|int, mixed>|string
$rac : string|bool
$type : string
$do : string
Tags
note

onkey_rechercher() testera s'il comporte une seule balise au premier niveau car cela qui indique qu'un seul résultat a été trouvé.

Attention donc à composer le message d'erreur avec au moins 2 balises.

Return values
string

exec_upgrade_dist()

Fonction d'installation et de mise à jour du core de SPIP

exec_upgrade_dist() : void

genie_mail_dist()

Envoi du Mail des nouveautés

genie_mail_dist(int $t) : int

Ce mail est basé sur le squelette nouveautes.html

La meta dernier_envoi_neuf permet de marquer la date du dernier envoi et de determiner les nouveautes publiees depuis cette date

Parameters
$t : int
Return values
int

genie_maintenance_dist()

Diverses tâches de maintenance

genie_maintenance_dist(object $t) : bool
  • (re)mettre .htaccess avec 'Deny from all' dans les deux répertoires dits inaccessibles par http
  • Vérifier qu'aucune table ne s'est crashée
Parameters
$t : object
Tags
uses
verifier_htaccess()
uses
verifier_crash_tables()
Return values
bool

Toujours à true.

verifier_crash_tables()

Vérifier si une table a crashé

verifier_crash_tables() : bool|array<string|int, mixed>

Pour cela, on vérifie si on peut se connecter à la base de données.

Tags
see
message_crash_tables()
used-by
genie_maintenance_dist()
used-by
message_crash_tables()
Return values
bool|array<string|int, mixed>

Si pas de table de crashée, on retourne false. Sinon, retourne un tableau contenant tous les noms des tables qui ont crashé.

message_crash_tables()

Vérifier si une table a crashé et crée un message en conséquence.

message_crash_tables() : string

S'il y a un crash, on affiche un message avec le nom de la ou des tables qui ont crashé. On génère un lien vers la page permettant la réparation de la base de données.

Tags
uses
verifier_crash_tables()
Return values
string

genie_mise_a_jour_dist()

Verifier si une mise a jour est disponible

genie_mise_a_jour_dist(int $t) : int
Parameters
$t : int
Return values
int

mise_a_jour_ecran_securite()

Mise a jour automatisee de l'ecran de securite On se base sur le filemtime de l'ecran source avec un en-tete if_modified_since Mais on fournit aussi le md5 de notre ecran actuel et la version branche de SPIP Cela peut permettre de diffuser un ecran different selon la version de SPIP si besoin ou de ne repondre une 304 que si le md5 est bon

mise_a_jour_ecran_securite() : mixed

info_maj_exists()

Indique les mises à jour majeures et mineures pour une version de SPIP

info_maj_exists(string $version) : array{mineure: string, majeure: string}
Parameters
$version : string

Version du SPIP à comparer

Return values
array{mineure: string, majeure: string}

info_maj()

Vérifier si une nouvelle version de SPIP est disponible

info_maj(string $version) : string

Repérer aussi si cette version est une version majeure de SPIP.

Parameters
$version : string

Version du SPIP à comparer

Return values
string

HTML présentant les mises à jour disponibles, s’il y en a

info_maj_notifier()

Notifier les webmestre d’une nouvelle version existante (pour mettre à jour)

info_maj_notifier(string $version) : mixed

La constante si définie _MAJ_NOTIF_EMAILS peut servir

  • soit à indiquer les emails à notifier à la place des webmestres du site
  • soit (falsy) pour empêcher cette notification
Parameters
$version : string

genie_optimiser_dist()

Cron d'optimisation de la base de données

genie_optimiser_dist(int $t) : int

Tache appelée régulièrement

Parameters
$t : int

Timestamp de la date de dernier appel de la tâche

Return values
int

Timestamp de la date du prochain appel de la tâche

optimiser_caches_contextes()

Vider les contextes ajax de plus de 48h

optimiser_caches_contextes() : mixed

optimiser_base()

Optimise la base de données

optimiser_base([int $attente = 86400 ]) : void

Supprime les relicats d'éléments qui ont disparu

Parameters
$attente : int = 86400

Attente entre 2 exécutions de la tache en secondes

Tags
note

Heure de référence pour le garbage collector = 24h auparavant

optimiser_base_une_table()

Lance une requête d'optimisation sur une des tables SQL de la base de données.

optimiser_base_une_table() : mixed

À chaque appel, une nouvelle table est optimisée (la suivante dans la liste par rapport à la dernière fois).

Tags
see
sql_optimize()
global

int $GLOBALS ['meta']['optimiser_table']

optimiser_sansref()

Supprime des enregistrements d'une table SQL dont les ids à supprimer se trouvent dans les résultats de ressource SQL transmise, sous la colonne 'id'

optimiser_sansref(string $table, string $id, object $sel[, string $and = '' ]) : int
Parameters
$table : string

Nom de la table SQL, exemple : spip_articles

$id : string

Nom de la clé primaire de la table, exemple : id_article

$sel : object

Ressource SQL issue d'une sélection (sql_select) et contenant une colonne 'id' ayant l'identifiant de la clé primaire à supprimer

$and : string = ''

Condition AND à appliquer en plus sur la requête de suppression

Tags
note

Mysql < 4.0 refuse les requetes DELETE multi table et elles ont une syntaxe differente entre 4.0 et 4.1 On passe donc par un SELECT puis DELETE avec IN

Return values
int

Nombre de suppressions

optimiser_base_disparus()

Suppression des liens morts entre tables

optimiser_base_disparus([int $attente = 86400 ]) : void

Supprime des liens morts entre tables suite à la suppression d'articles, d'auteurs, etc...

Parameters
$attente : int = 86400

Attente entre 2 exécutions de la tache en secondes

Tags
note

Maintenant que MySQL 5 a des Cascades on pourrait faire autrement mais on garde la compatibilité avec les versions précédentes.

pipeline_appel

optimiser_base_disparus

creer_pass_aleatoire()

Créer un mot de passe

creer_pass_aleatoire([int $longueur = 16 ][, string $sel = '' ]) : string
Parameters
$longueur : int = 16

Longueur du password créé

$sel : string = ''

Clé pour un salage supplémentaire

Return values
string

Mot de passe

creer_uniqid()

Créer un identifiant aléatoire

creer_uniqid() : string
Return values
string

Identifiant

charger_aleas()

Charge les aléas ehpémères s'il ne sont pas encore dans la globale

charger_aleas() : string

Si les métas 'alea_ephemere' et 'alea_ephemere_ancien' se sont pas encore chargées en méta (car elles ne sont pas stockées, pour sécurité, dans le fichier cache des métas), alors on les récupère en base. Et on les ajoute à nos métas globales.

Tags
see
touch_meta()
Return values
string

Retourne l'alea éphemère actuel au passage

renouvelle_alea()

Renouveller l'alea (utilisé pour sécuriser les scripts du répertoire `action/`)

renouvelle_alea() : mixed

low_sec()

Retourne une clé de sécurité faible (low_sec) pour l'auteur indiqué

low_sec(int $id_auteur) : string

low-security est un ensemble de fonctions pour gérer de l'identification faible via les URLs (suivi RSS, iCal...)

Retourne la clé de sécurité low_sec de l'auteur (la génère si elle n'exite pas) ou la clé de sécurité low_sec du site (si auteur invalide)(la génère si elle n'existe pas).

Parameters
$id_auteur : int

Identifiant de l'auteur

Return values
string

Clé de sécurité.

securiser_acces_low_sec()

Vérifie un accès à faible sécurité

securiser_acces_low_sec(int $id_auteur, string $cle, string $dir[, string $op = '' ][, string $args = '' ]) : bool

Vérifie qu'un visiteur peut accéder à la page demandée, qui est protégée par une clé, calculée à partir du low_sec de l'auteur, et des paramètres le composant l'appel (op, args)

Parameters
$id_auteur : int

L'auteur qui demande la page

$cle : string

La clé à tester

$dir : string

Un type d'accès (nom du répertoire dans lequel sont rangés les squelettes demandés, tel que 'rss')

$op : string = ''

Nom de l'opération éventuelle

$args : string = ''

Nom de l'argument calculé

Tags
see
generer_url_api_low_sec()

pour generer une url api low sec

see
afficher_low_sec()

pour calculer une clé valide

uses
verifier_low_sec()
filtre
Return values
bool

True si on a le droit d'accès, false sinon. *@example [(#ID_AUTEUR|securiser_acces{#ENV{cle}, rss, #ENV{op}, #ENV{args}}|sinon_interdire_acces)]

generer_url_api_low_sec()

Generer une url xxx.api/$id_auteur/$cle/$format/$fond?$args

generer_url_api_low_sec(string $script, string $format, string $fond, string $path, string $args[, bool $no_entities = false ][, bool|null $public = null ]) : string
Parameters
$script : string
$format : string
$fond : string
$path : string
$args : string
$no_entities : bool = false
$public : bool|null = null
Return values
string

afficher_low_sec()

Retourne une clé basée sur le low_sec de l'auteur et l'action demandé

afficher_low_sec(int $id_auteur[, string $action = '' ]) : string
Parameters
$id_auteur : int

Identifiant de l'auteur

$action : string = ''

Action désirée

Tags
uses
low_sec()
used-by
verifier_low_sec()
Return values
string

Clé

verifier_low_sec()

Vérifie une clé basée sur le low_sec de l'auteur et l'action demandé

verifier_low_sec(int $id_auteur, string $cle[, string $action = '' ]) : bool
Parameters
$id_auteur : int

Identifiant de l'auteur

$cle : string

Clé à comparer

$action : string = ''

Action désirée

Tags
uses
afficher_low_sec()
used-by
securiser_acces_low_sec()
used-by
filtre_securiser_acces_dist()
Return values
bool

true si les clés corresponde, false sinon

effacer_low_sec()

Efface la clé de sécurité faible (low_sec) d'un auteur

effacer_low_sec(int $id_auteur) : mixed
Parameters
$id_auteur : int

Identifiant de l'auteur

ecrire_acces()

Créer un fichier htpasswd

ecrire_acces() : null|void

Cette fonction ne sert qu'à la connexion en mode http_auth.non LDAP. Voir le plugin «Accès Restreint»

S'appuie sur la meta creer_htpasswd pour savoir s'il faut créer le .htpasswd.

Return values
null|void
  • null si pas de htpasswd à créer, ou si LDAP
  • void sinon.

generer_htpasswd_files()

Generer le fichier de htpasswd contenant les htpass

generer_htpasswd_files(string $htpasswd, string $htpasswd_admin) : mixed
Parameters
$htpasswd : string
$htpasswd_admin : string

generer_htpass()

Créer un password htaccess

generer_htpass(string $pass) : void|string
Parameters
$pass : string

Le mot de passe

Tags
link

Documentation de crypt()

Return values
void|string

La chaîne hachée si fonction crypt présente, rien sinon.

gerer_htaccess()

Créer un fichier .htaccess pour chaque répertoire d'extension dans `_DIR_IMG` si la configuration le demande

gerer_htaccess() : string
Tags
note

La variable de configuration creer_htaccess peut être posée par un plugin tel acces_restreint.

uses
_DIR_IMG
uses
verifier_htaccess()
Return values
string

Valeur de la configuration creer_htaccess

generer_action_auteur()

Retourne une URL ou un formulaire securisé

generer_action_auteur(string $action[, string $arg = '' ][, string $redirect = '' ][, bool|int|string $mode = false ][, string|int $att = '' ][, bool $public = false ]) : array<string|int, mixed>|string
Parameters
$action : string

Nom du fichier/action appelé (dans le répertoire action)

$arg : string = ''

Arguments pour l'action sécurisée, peut etre vide

$redirect : string = ''

Adresse de redirection souhaitée à la fin du bon déroulement de l’action

$mode : bool|int|string = false
  • -1 : renvoyer action, arg et hash sous forme de array()
  • true ou false : renvoyer une url, avec &amp; (false) ou & (true)
  • string : renvoyer un formulaire
$att : string|int = ''
  • id_auteur pour lequel générer l'action en mode url ou array()
  • attributs du formulaire en mode formulaire
$public : bool = false
Tags
uses
inc_securiser_action_dist()
used-by
redirige_action_auteur()
Return values
array<string|int, mixed>|string

URL, code HTML du formulaire ou tableau (action, arg, hash)

redirige_action_auteur()

Génère une URL ou un formulaire dirigé vers un fichier action (action/xx.php)

redirige_action_auteur(string $action, string $arg, string $ret[, string $gra = '' ][, bool|string|int $mode = false ][, string $atts = '' ][, bool $public = false ]) : string

Le génère à condition que $mode="texte".

Parameters
$action : string

Nom du fichier action/xx.php

$arg : string

Argument passé à l'action, qui sera récupéré par la fonction securiser_action()

$ret : string

Nom du script exec sur lequel on revient après l'action (redirection), que l'on peut récupérer dans une fonction d'action par _request('redirect')

$gra : string = ''

Arguments transmis au script exec de retour arg1=yy&arg2=zz

$mode : bool|string|int = false
  • -1 : renvoyer action, arg et hash sous forme de array()
  • true ou false : renvoyer une url, avec &amp; (false) ou & (true)
  • string : renvoyer un formulaire
$atts : string = ''

?

$public : bool = false

true produit une URL d'espace public false (par défaut) produit une URL d'espace privé

Tags
uses
generer_action_auteur()
Return values
string

Code HTML du formulaire

redirige_action_post()

Retourne une URL ou un formulaire sécurisé en méthode POST

redirige_action_post(string $action, string $arg, string $ret, string $gra, bool|int|string $corps[, string|int $att = '' ]) : array<string|int, mixed>|string
Parameters
$action : string

Nom du fichier/action appelé (dans le répertoire action)

$arg : string

Arguments pour l'action sécurisée

$ret : string

Adresse de redirection souhaitée à la fin du bon déroulement de l’action

$gra : string

Arguments à transmettre, tel que arg1=yy&arg2=zz

$corps : bool|int|string
  • -1 : renvoyer action, arg et hash sous forme de array()
  • true ou false : renvoyer une url, avec &amp; (false) ou & (true)
  • string : renvoyer un formulaire
$att : string|int = ''
  • id_auteur pour lequel générer l'action en mode url ou array()
  • attributs du formulaire en mode formulaire
Return values
array<string|int, mixed>|string

URL, code HTML du formulaire ou tableau (action, arg, hash)

ajax_retour()

Fonction de formatage du contenu renvoyé en ajax

ajax_retour(string $corps[, string $content_type = null ]) : void

Echo la réponse directement

Parameters
$corps : string
$content_type : string = null

permet de definir le type de contenu renvoye. Si rien de précisé, ou si true c'est "text/html" avec un entete xml en plus. La valeur speciale false fournit text/html sans entete xml. Elle equivaut a passer "text/html" comme $content_type

Tags
used-by
exec_info_plugin_dist()
used-by
exec_informer_dist()
used-by
exec_plonger_dist()
used-by
exec_puce_statut_args()
used-by
exec_rechercher_dist()
used-by
exec_selectionner_dist()

inc_admin_dist()

Teste qu'un utilisateur a des droits sur les fichiers du site et exécute l'action (en base) demandée si c'est le cas.

inc_admin_dist(string $script, string $titre[, string $comment = '' ][, bool $anonymous = false ]) : string

Demande / vérifie le droit de création de répertoire par le demandeur; Mémorise dans les meta que ce script est en cours d'exécution. Si elle y est déjà c'est qu'il y a eu suspension du script, on reprend.

Parameters
$script : string

Script d'action (en base) à exécuter si on a des droits d'accès aux fichiers

$titre : string

Titre de l'action demandée

$comment : string = ''

Commentaire supplémentaire

$anonymous : bool = false

?

Tags
uses
debut_admin()
uses
admin_verifie_session()
uses
fin_admin()
Return values
string

Code HTML de la page (pour vérifier les droits), sinon code HTML de la page après le traitement effectué.

admin_verifie_session()

Gestion dans la meta "admin" du script d'administation demandé, pour éviter des exécutions en parallèle, notamment après Time-Out.

admin_verifie_session(string $script[, bool $anonymous = false ]) : string

Cette meta contient le nom du script et, à un hachage près, du demandeur. Le code de ecrire/index.php dévie toute demande d'exécution d'un script vers le script d'administration indiqué par cette meta si elle est là.

Au niveau de la fonction inc_admin, on controle la meta 'admin'.

  • Si la meta n'est pas là, c'est le début on la crée.
  • Sinon, si le hachage actuel est le même que celui en base, c'est une reprise, on continue.
  • Sinon, si le hachage diffère à cause du connect, c'est une arrivée inoppotune, on refuse sa connexion.
  • Enfin, si hachage diffère pour une autre raison, c'est que l'operation se passe mal, on la stoppe
Parameters
$script : string

Script d'action (en base)

$anonymous : bool = false

?

Tags
uses
fichier_admin()
used-by
inc_admin_dist()
Return values
string

Code HTML si message d'erreur, '' sinon;

dir_admin()

Retourne l'emplacement du répertoire où sera testé l'accès utilisateur

dir_admin() : string

Dans le répertoire temporaire si on est admin, sinon dans le répertoire de transfert des admins restreints

Return values
string

Chemin du répertoire.

fichier_admin()

Retourne le nom d'un fichier de teste d'authentification par accès aux fichiers

fichier_admin(string $action[, string $pref = 'admin_' ]) : string

Le nom calculé est un hash basé sur l’heure, l’action et l’auteur.

Parameters
$action : string

Nom du script d'action (en base)

$pref : string = 'admin_'

Préfixe au nom du fichier calculé

Tags
used-by
admin_verifie_session()
used-by
debut_admin()
Return values
string

Nom du fichier

debut_admin()

Demande la création d'un répertoire (pour tester l'accès de l'utilisateur) et sort ou quitte sans rien faire si le répertoire est déjà là.

debut_admin(string $script[, string $action = '' ][, string $corps = '' ]) : string

Si l'on est webmestre, la plupart des actions n'ont pas besoin de tester la création du répertoire (toutes sauf repair ou delete_all). On considère qu'un webmestre a déjà du prouver ses droits sur les fichiers. Dans ce cas, on quitte sans rien faire également.

Parameters
$script : string

Script d'action (en base) à exécuter ensuite

$action : string = ''

Titre de l'action demandée

$corps : string = ''

Commentaire supplémentaire

Tags
uses
dir_admin()
uses
fichier_admin()
used-by
inc_admin_dist()
Return values
string

Code HTML de la page (pour vérifier les droits), sinon chaîne vide si déjà fait.

fin_admin()

Clôture la phase d'administration en supprimant le répertoire testant l'accès au fichiers ainsi que les metas d'exécution

fin_admin(string $action) : mixed
Parameters
$action : string

Nom de l'action (en base) qui a été exécutée

Tags
used-by
inc_admin_dist()

copy_request()

Génère un formulaire avec les données postées

copy_request(string $script, string $suite[, string $submit = '' ]) : string

Chaque donnée est mise en input hidden pour les soumettre avec la validation du formulaire.

Parameters
$script : string

Nom du script (pour l'espace privé) de destination

$suite : string

Corps du formulaire

$submit : string = ''

texte du bouton de validation

Return values
string

Code HTML du formulaire

inc_auth_dist()

Teste l'authentification d'un visiteur

inc_auth_dist() : array<string|int, mixed>|int|string

Cette fonction ne fait pas l'authentification en soit ; elle vérifie simplement qu'une personne est connectée ou non.

Tags
used-by
exec_install_dist()
Return values
array<string|int, mixed>|int|string
  • URL de connexion si on ne sait rien (pas de cookie, pas Auth_user);
  • un tableau si visiteur sans droit (tableau = sa ligne SQL)
  • code numerique d'erreur SQL
  • une chaîne vide si autorisation à pénétrer dans l'espace privé.

auth_controler_password_auteur_connecte()

Vérifier qu'un mot de passe saisi pour confirmer une action est bien celui de l'auteur connecté

auth_controler_password_auteur_connecte(string $password) : bool
Parameters
$password : string
Return values
bool

auth_echec()

fonction appliquee par ecrire/index sur le resultat de la precedente en cas de refus de connexion.

auth_echec( $raison) : array<string|int, mixed>|string

Retourne un message a afficher ou redirige illico.

Parameters
$raison :
Return values
array<string|int, mixed>|string

auth_mode()

Retourne la description d'un authentifie par cookie ou http_auth Et affecte la globale $connect_login

auth_mode() : array<string|int, mixed>|bool|string
Return values
array<string|int, mixed>|bool|string

auth_init_droits()

Initialisation des globales pour tout l'espace privé si visiteur connu

auth_init_droits(array<string|int, mixed> $row) : array<string|int, mixed>|string|bool

Le tableau global visiteur_session contient toutes les infos pertinentes et à jour (tandis que $visiteur_session peut avoir des valeurs un peu datées s'il est pris dans le fichier de session)

Les plus utiles sont aussi dans les variables simples ci-dessus si la globale est vide ce n'est pas un tableau, on la force pour empêcher un warning.

Parameters
$row : array<string|int, mixed>
Return values
array<string|int, mixed>|string|bool

auth_desensibiliser_session()

Enlever les clés sensibles d'une ligne auteur

auth_desensibiliser_session(array<string|int, mixed> $auteur) : array<string|int, mixed>
Parameters
$auteur : array<string|int, mixed>
Return values
array<string|int, mixed>

auth_a_loger()

Retourne l'url de connexion

auth_a_loger() : string
Return values
string

auth_trace()

Tracer en base la date de dernière connexion de l'auteur

auth_trace(array<string|int, mixed> $row[, null|string $date = null ]) : mixed
Parameters
$row : array<string|int, mixed>
$date : null|string = null
Tags
pipeline_appel

trig_auth_trace

auth_administrer()

Fonction privée d'aiguillage des fonctions d'authentification

auth_administrer(string $fonction, array<string|int, mixed> $args[, mixed $defaut = false ]) : mixed

Charge une fonction d'authentification présente dans un répertoire auth/. Ainsi, utiliser auth_administrer('informer_login', array('spip', ...) appellera auth_spip_informer_login() de ecrire/auth/spip.php.

Parameters
$fonction : string

Nom de la fonction d'authentification

$args : array<string|int, mixed>

Le premier élément du tableau doit être le nom du système d'authentification choisi, tel que spip (par défaut) ou encore ldap.

$defaut : mixed = false
Tags
uses
charger_fonction()
used-by
auth_terminer_identifier_login()
used-by
auth_autoriser_modifier_login()
used-by
auth_autoriser_modifier_pass()

auth_formulaire_login()

Pipeline pour inserer du contenu dans le formulaire de login

auth_formulaire_login(array<string|int, mixed> $flux) : array<string|int, mixed>
Parameters
$flux : array<string|int, mixed>
Return values
array<string|int, mixed>

auth_retrouver_login()

Retrouver le login interne lie a une info login saisie la saisie peut correspondre a un login delegue qui sera alors converti en login interne apres verification

auth_retrouver_login(string $login[, string $serveur = '' ]) : string
Parameters
$login : string
$serveur : string = ''
Return values
string

auth_informer_login()

informer sur un login Ce dernier transmet le tableau ci-dessous a la fonction JS informer_auteur Il est invoque par la fonction JS actualise_auteur via la globale JS page_auteur=#URL_PAGE{informer_auteur} dans le squelette login N'y aurait-il pas plus simple ?

auth_informer_login(string $login[, string $serveur = '' ]) : array<string|int, mixed>
Parameters
$login : string
$serveur : string = ''
Return values
array<string|int, mixed>

auth_identifier_login()

Essayer les differentes sources d'authenfication dans l'ordre specifie.

auth_identifier_login(string $login, string $password[, string $serveur = '' ][, bool $phpauth = false ]) : mixed

S'en souvenir dans visiteur_session['auth']

Parameters
$login : string
$password : string
$serveur : string = ''
$phpauth : bool = false

auth_url_retour_login()

Fournir une url de retour apres login par un SSO pour finir l'authentification

auth_url_retour_login(string $auth_methode, string $login[, string $redirect = '' ][, string $serveur = '' ]) : string
Parameters
$auth_methode : string
$login : string
$redirect : string = ''
$serveur : string = ''
Return values
string

auth_terminer_identifier_login()

Terminer l'action d'authentification d'un auteur

auth_terminer_identifier_login(string $auth_methode, string $login[, string $serveur = '' ]) : mixed
Parameters
$auth_methode : string
$login : string
$serveur : string = ''
Tags
uses
auth_administrer()

auth_loger()

Loger un auteur suite a son identification

auth_loger(array<string|int, mixed> $auteur) : bool
Parameters
$auteur : array<string|int, mixed>
Return values
bool

auth_autoriser_modifier_login()

Tester la possibilité de modifier le login d'authentification pour la méthode donnée

auth_autoriser_modifier_login(string $auth_methode[, string $serveur = '' ]) : bool
Parameters
$auth_methode : string
$serveur : string = ''
Tags
uses
auth_administrer()
Return values
bool

auth_verifier_login()

Verifier la validite d'un nouveau login pour modification pour la methode donnee

auth_verifier_login(string $auth_methode, string $new_login[, int $id_auteur = 0 ][, string $serveur = '' ]) : string
Parameters
$auth_methode : string
$new_login : string
$id_auteur : int = 0
$serveur : string = ''
Return values
string

message d'erreur ou chaine vide si pas d'erreur

auth_modifier_login()

Modifier le login d'un auteur pour la methode donnee

auth_modifier_login(string $auth_methode, string $new_login, int $id_auteur[, string $serveur = '' ]) : bool
Parameters
$auth_methode : string
$new_login : string
$id_auteur : int
$serveur : string = ''
Return values
bool

auth_autoriser_modifier_pass()

Tester la possibilité de modifier le pass pour la méthode donnée

auth_autoriser_modifier_pass(string $auth_methode[, string $serveur = '' ]) : bool
Parameters
$auth_methode : string
$serveur : string = ''
Tags
uses
auth_administrer()
Return values
bool

succès ou échec

auth_verifier_pass()

Verifier la validite d'un pass propose pour modification pour la methode donnee

auth_verifier_pass(string $auth_methode, string $login, string $new_pass[, int $id_auteur = 0 ][, string $serveur = '' ]) : string
Parameters
$auth_methode : string
$login : string
$new_pass : string
$id_auteur : int = 0
$serveur : string = ''
Return values
string

message d'erreur ou chaine vide si pas d'erreur

auth_modifier_pass()

Modifier le mot de passe d'un auteur pour la methode donnee

auth_modifier_pass(string $auth_methode, string $login, string $new_pass, int $id_auteur[, string $serveur = '' ]) : bool
Parameters
$auth_methode : string
$login : string
$new_pass : string
$id_auteur : int
$serveur : string = ''
Return values
bool

succes ou echec

auth_synchroniser_distant()

Synchroniser un compte sur une base distante pour la methode donnée lorsque des modifications sont faites dans la base auteur

auth_synchroniser_distant([string|bool $auth_methode = true ][, int $id_auteur = 0 ][, array<string|int, mixed> $champs = [] ][, array<string|int, mixed> $options = [] ][, string $serveur = '' ]) : void
Parameters
$auth_methode : string|bool = true

ici true permet de forcer la synchronisation de tous les acces pour toutes les methodes

$id_auteur : int = 0
$champs : array<string|int, mixed> = []
$options : array<string|int, mixed> = []
$serveur : string = ''
Tags
used-by
base_upgrade_dist()

lire_php_auth()

Vérifier si l'auteur est bien authentifié

lire_php_auth(string $login, string $pw[, string $serveur = '' ]) : array<string|int, mixed>|bool
Parameters
$login : string
$pw : string
$serveur : string = ''
Return values
array<string|int, mixed>|bool

ask_php_auth()

entête php_auth (est-encore utilisé ?)

ask_php_auth(string $pb, string $raison[, string $retour = '' ][, string $url = '' ][, string $re = '' ][, string $lien = '' ]) : mixed
Parameters
$pb : string
$raison : string
$retour : string = ''
$url : string = ''
$re : string = ''
$lien : string = ''
Tags
uses
minipres()

autoriser()

Autoriser une action

autoriser(string $faire[, string|null $type = '' ][, string|int|null $id = null ][, null|int|array<string|int, mixed> $qui = null ][, array<string|int, mixed> $opt = [] ]) : bool

Teste si une personne (par défaut le visiteur en cours) peut effectuer une certaine action. Cette fonction est le point d'entrée de toutes les autorisations.

La fonction se charge d'appeler des fonctions d'autorisations spécifiques aux actions demandées si elles existent. Elle cherche donc les fonctions dans cet ordre :

  • autoriser_{type}_{faire}, sinon avec _dist
  • autoriser_{type}, sinon avec _dist
  • autoriser_{faire}, sinon avec _dist
  • autoriser_{defaut}, sinon avec _dist

Seul le premier argument est obligatoire.

Parameters
$faire : string

une action ('modifier', 'publier'...)

$type : string|null = ''

Type d’objet ou élément sur lequel appliquer l’action.

  • null: indifférent à tout type d’élément ou objet éditorial
  • string: objet éditorial (objet_type() est appliqué pour homogénéiser l’entrée)
  • _string: autre élément (avec un souligné en premier caractère, désactive objet_type()). Les soulignés seront retirés (cf. la note).
$id : string|int|null = null

id de l'objet ou élément sur lequel on veut agir, si pertinent.

  • null: non utile pour l’autorisation
  • int: identifiant numérique (cas de tous les objets éditoriaux de SPIP)
  • string: identifiant textuel
$qui : null|int|array<string|int, mixed> = null
  • si null on prend alors visiteur_session
  • un id_auteur (on regarde dans la base)
  • un tableau auteur complet, y compris [restreint]
$opt : array<string|int, mixed> = []

options sous forme de tableau associatif

Tags
note

Le paramètre $type attend par défaut un type d'objet éditorial, et à ce titre, la valeur transmise se verra appliquer la fonction 'objet_type' pour uniformiser cette valeur.

Si ce paramètre n'a rien n'a voir avec un objet éditorial, par exemple 'statistiques', un souligné avant le terme est ajouté afin d'indiquer explicitement à la fonction autoriser de ne pas transformer la chaîne en type d'objet. Cela donne pour cet exemple : autoriser('detruire', '_statistiques')

note

Le paramètre $type, en plus de l'uniformisation en type d'objet, se voit retirer tous les soulignés du terme. Ainsi le type d'objet livre_art deviendra livreart et SPIP cherchera une fonction autoriser_livreart_{faire}. Ceci permet d'éviter une possible confusion si une fonction autoriser_livre_art existait : quel serait le type, quel serait l'action ?

Pour résumer, si le type d'objet éditorial a un souligné, tel que 'livre_art', la fonction d'autorisation correspondante ne l'aura pas. Exemple : function autoriser_livreart_modifier_dist(...){...}

see
autoriser_dist()
see
objet_type()
used-by
determine_upload()
Return values
bool

true si la personne peut effectuer l'action

autoriser_dist()

Autoriser une action

autoriser_dist(string $faire[, string|null $type = '' ][, int|string|null $id = null ][, null|int|array<string|int, mixed> $qui = null ][, array<string|int, mixed> $opt = [] ]) : bool

Voir autoriser() pour une description complète

Parameters
$faire : string

une action ('modifier', 'publier'...)

$type : string|null = ''

type d'objet ('article') ou élément

$id : int|string|null = null

id de l'objet ou élément sur lequel on veut agir, si pertinent.

  • null: non utile pour l’autorisation
  • int: identifiant numérique (cas de tous les objets éditoriaux de SPIP)
  • string: identifiant textuel
$qui : null|int|array<string|int, mixed> = null
  • si null on prend alors visiteur_session
  • un id_auteur (on regarde dans la base)
  • un tableau auteur complet, y compris [restreint]
$opt : array<string|int, mixed> = []

options sous forme de tableau associatif

Tags
see
autoriser()
Return values
bool

true si la personne peut effectuer l'action

autoriser_exception()

Accorder une autorisation exceptionnelle pour le hit en cours, ou la révoquer

autoriser_exception(string $faire[, string $type = '' ][, int|string|null $id = null ][, string|bool $autoriser = true ]) : bool
Parameters
$faire : string

Action demandée

$type : string = ''

Type d'objet ou élément

$id : int|string|null = null

Identifiant (* pour tous les ids)

$autoriser : string|bool = true

accorder (true) ou revoquer (false)

  • bool Accorder ou révoquer
  • 'verifier' : test si une exception existe
Tags
see
autoriser()
Return values
bool

autoriser_type()

Adapte un type pour les autorisations

autoriser_type([string|null $type = '' ]) : string

Cela sert à trouver le nom des autorisations correspondantes.

  • Si _ en premier caractère, c’est un nom de page
  • Sinon, c’est un type d’objet éditorial
  • Les _ sont supprimés
Parameters
$type : string|null = ''
Return values
string

autoriser_defaut_dist()

Autorisation par defaut

autoriser_defaut_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool

Les admins complets OK, les autres non

Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser()
Return values
bool

true s'il a le droit, false sinon

autoriser_loger_dist()

Autorisation à se loger ?

autoriser_loger_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool

Retourne true pour tous les statuts sauf 5poubelle Peut être surchargée pour interdire statut=nouveau à se connecter et forcer l'utilisation du lien de confirmation email pour valider le compte

Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser()
Return values
bool

true s'il a le droit, false sinon

autoriser_ecrire_dist()

Autorisation d'accès à l'espace privé ?

autoriser_ecrire_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool
Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser()
Return values
bool

true s'il a le droit, false sinon

autoriser_creer_dist()

Autorisation de créer un contenu

autoriser_creer_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool

Accordée par defaut ceux qui accèdent à l'espace privé, peut-être surchargée au cas par cas

Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser()
Return values
bool

true s'il a le droit, false sinon

autoriser_previsualiser_dist()

Autorisation de prévisualiser un contenu

autoriser_previsualiser_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool
Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
uses
test_previsualiser_objet_champ()
uses
decrire_token_previsu()
see
autoriser()
Return values
bool

true s'il a le droit, false sinon

test_previsualiser_objet_champ()

Teste qu'un objet éditorial peut être prévisualisé

test_previsualiser_objet_champ([string $type = '' ][, int|string|null $id = null ][, array<string|int, mixed> $qui = [] ][, array<string|int, mixed> $opt = [] ]) : bool

Cela permet ainsi de commander l'affichage dans l'espace prive du bouton "previsualiser" voir prive/objets/infos/article.html etc.

Cela dépend du statut actuel de l'objet d'une part, et d'autre part de la clé previsu dans le tableau statut de la déclaration de l'objet éditorial. Cette clé previsu liste des statuts, séparés par des virgules, qui ont le droit d'avoir une prévisualisation. La présence de xx/auteur indique que pour le statut xx, l'auteur en cours doit être un des auteurs de l'objet éditorial en question pour que ce statut autorise la prévisualisation.

Exemple pour les articles : 'previsu' => 'publie,prop,prepa/auteur',

Parameters
$type : string = ''

Type d'objet ou élément

$id : int|string|null = null

Identifiant

$qui : array<string|int, mixed> = []

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed> = []

Options de cette autorisation

Tags
uses
lister_tables_objets_sql()
used-by
autoriser_previsualiser_dist()
Return values
bool

true s'il a le droit, false sinon

autoriser_changerlangue_dist()

Autorisation de changer de langue un contenu

autoriser_changerlangue_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool
Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser()
Return values
bool

true s'il a le droit, false sinon

autoriser_changertraduction_dist()

Autorisation de changer le lien de traduction

autoriser_changertraduction_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool
Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser()
Return values
bool

true s'il a le droit, false sinon

autoriser_dater_dist()

Autorisation de changer la date d'un contenu

autoriser_dater_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool
Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser()
Return values
bool

true s'il a le droit, false sinon

autoriser_instituer_dist()

Autorisation d'instituer un contenu

autoriser_instituer_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool

C'est à dire de changer son statut ou son parent. Par défaut, il faut l'autorisation de modifier le contenu

Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser()
Return values
bool

true s'il a le droit, false sinon

autoriser_rubrique_publierdans_dist()

Autorisation de publier dans une rubrique $id

autoriser_rubrique_publierdans_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool

Il faut être administrateur ou administrateur restreint de la rubrique

Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser()
Return values
bool

true s'il a le droit, false sinon

autoriser_rubrique_creer_dist()

Autorisation de créer une rubrique

autoriser_rubrique_creer_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool

Il faut être administrateur pour pouvoir publier à la racine

Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser()
Return values
bool

true s'il a le droit, false sinon

autoriser_rubrique_creerrubriquedans_dist()

Autorisation de créer une sous rubrique dans une rubrique $id

autoriser_rubrique_creerrubriquedans_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool

Il faut être administrateur et pouvoir publier dans la rubrique

Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser()
Return values
bool

true s'il a le droit, false sinon

autoriser_rubrique_creerarticledans_dist()

Autorisation de créer un article dans une rubrique $id

autoriser_rubrique_creerarticledans_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool

Il faut pouvoir voir la rubrique et pouvoir créer un article…

Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser()
Return values
bool

true s'il a le droit, false sinon

autoriser_rubrique_modifier_dist()

Autorisation de modifier une rubrique $id

autoriser_rubrique_modifier_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool

Il faut pouvoir publier dans cette rubrique

Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser()
Return values
bool

true s'il a le droit, false sinon

autoriser_rubrique_supprimer_dist()

Autorisation de supprimer une rubrique $id

autoriser_rubrique_supprimer_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool

Il faut quelle soit vide (pas d'enfant) et qu'on ait le droit de la modifier

Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser()
Return values
bool

true s'il a le droit, false sinon

autoriser_article_modifier_dist()

Autorisation de modifier un article $id

autoriser_article_modifier_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool

Il faut pouvoir publier dans le parent ou, si on change le statut en proposé ou préparation être auteur de l'article

Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser()
Return values
bool

true s'il a le droit, false sinon

autoriser_article_creer_dist()

Autorisation de créer un article

autoriser_article_creer_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool

Il faut qu'une rubrique existe et être au moins rédacteur

Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser()
Return values
bool

true s'il a le droit, false sinon

autoriser_article_voir_dist()

Autorisation de voir un article

autoriser_article_voir_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool

Il faut être admin ou auteur de l'article, sinon il faut que l'article soit publié ou proposé.

Peut-être appelée sans $id, mais avec un $opt['statut'] pour tester la liste des status autorisés en fonction de $qui['statut']

Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser()
Return values
bool

true s'il a le droit, false sinon

autoriser_voir_dist()

Autorisation de voir un objet

autoriser_voir_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool

Tout est visible par défaut, sauf les auteurs où il faut au moins être rédacteur.

Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser()
Return values
bool

true s'il a le droit, false sinon

autoriser_webmestre_dist()

Autorisation de webmestre

autoriser_webmestre_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool

Est-on webmestre ? Signifie qu'on n'a même pas besoin de passer par ftp pour modifier les fichiers, cf. notamment inc/admin

On regarde l'état "webmestre" de l'auteur

Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser()
Return values
bool

true s'il a le droit, false sinon

autoriser_configurer_dist()

Autorisation Configurer le site

autoriser_configurer_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool

Il faut être administrateur complet

Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser()
Return values
bool

true s'il a le droit, false sinon

autoriser_sauvegarder_dist()

Autorisation de sauvegarder la base de données

autoriser_sauvegarder_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool

Il faut être administrateur (y compris restreint)

Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser()
Return values
bool

true s'il a le droit, false sinon

autoriser_detruire_dist()

Autorisation d'effacer la base de données

autoriser_detruire_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool

Il faut être webmestre

Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser()
Return values
bool

true s'il a le droit, false sinon

autoriser_auteur_previsualiser_dist()

Autorisation de prévisualiser un auteur

autoriser_auteur_previsualiser_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool

Il faut être administrateur ou que l'auteur à prévisualiser ait au moins publié un article

Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser()
Return values
bool

true s'il a le droit, false sinon

autoriser_auteur_creer_dist()

Autorisation de créer un auteur

autoriser_auteur_creer_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool

Il faut être administrateur (restreint compris).

Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
note

Seuls les administrateurs complets ont accès à tous les champs du formulaire d'édition d'un auteur. À la création d'un auteur, son statut est 'poubelle'. C'est l'autorisation de modifier qui permet de changer les informations sensibles (statut, login, pass, etc.) à l'institution.

see
auteur_inserer()
see
auteur_instituer()
see
autoriser_auteur_modifier_dist()
see
autoriser()
Return values
bool

true s'il a le droit, false sinon

autoriser_auteur_modifier_dist()

Autorisation de modifier un auteur

autoriser_auteur_modifier_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool

Attention tout depend de ce qu'on veut modifier. Il faut être au moins rédacteur, mais on ne peut pas promouvoir (changer le statut) un auteur avec des droits supérieurs au sien.

Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser()
Return values
bool

true s'il a le droit, false sinon

autoriser_associerauteurs_dist()

Autorisation d'associer un auteur sur un objet

autoriser_associerauteurs_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool

Il faut pouvoir modifier l'objet en question

Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser()
Return values
bool

true s'il a le droit, false sinon

autoriser_chargerftp_dist()

Autorisation d'upload FTP

autoriser_chargerftp_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool

Il faut être administrateur.

Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser()
Return values
bool

true s'il a le droit, false sinon

autoriser_debug_dist()

Autorisation d'activer le mode debug

autoriser_debug_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool

Il faut être administrateur.

Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser()
Return values
bool

true s'il a le droit, false sinon

liste_rubriques_auteur()

Liste les rubriques d'un auteur

liste_rubriques_auteur(int $id_auteur[, bool $raz = false ]) : array<string|int, mixed>

Renvoie la liste des rubriques liées à cet auteur, independamment de son statut (pour les admins restreints, il faut donc aussi vérifier statut)

Mémorise le resultat dans un tableau statique indéxé par les id_auteur. On peut reinitialiser un élément en passant un 2e argument non vide

Parameters
$id_auteur : int

Identifiant de l'auteur

$raz : bool = false

Recalculer le résultat connu pour cet auteur

Return values
array<string|int, mixed>

Liste des rubriques

autoriser_rubrique_previsualiser_dist()

Autorisation de prévisualiser une rubrique

autoriser_rubrique_previsualiser_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool

Il faut pouvoir prévisualiser.

Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser()
Return values
bool

true s'il a le droit, false sinon

autoriser_rubrique_iconifier_dist()

Autorisation d'iconifier une rubrique (mettre un logo)

autoriser_rubrique_iconifier_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool

Il faut pouvoir publier dans la rubrique.

Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser()
Return values
bool

true s'il a le droit, false sinon

autoriser_auteur_iconifier_dist()

Autorisation d'iconifier un auteur (mettre un logo)

autoriser_auteur_iconifier_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool

Il faut un administrateur ou que l'auteur soit celui qui demande l'autorisation

Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser()
Return values
bool

true s'il a le droit, false sinon

autoriser_iconifier_dist()

Autorisation d'iconifier un objet (mettre un logo)

autoriser_iconifier_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool

Il faut pouvoir modifier l'objet

Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser()
Return values
bool

true s'il a le droit, false sinon

autoriser_ok_dist()

Autorisation OK

autoriser_ok_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : true

Autorise toujours ! Fonction sans surprise pour permettre les tests.

Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser()
Return values
true

autoriser_niet_dist()

Autorisation NIET

autoriser_niet_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : false

Refuse toujours ! Fonction sans surprise pour permettre les tests.

Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser()
Return values
false

autoriser_base_reparer_dist()

Autorisation de réparer la base de données

autoriser_base_reparer_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool

Il faut pouvoir la détruire (et ne pas être en cours de réinstallation)

Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser()
Return values
bool

true s'il a le droit, false sinon

autoriser_infosperso_dist()

Autorisation de voir l'onglet infosperso

autoriser_infosperso_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : true

Toujours OK

Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser()
Return values
true

autoriser_langage_configurer_dist()

Autorisation de voir le formulaire configurer_langage

autoriser_langage_configurer_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : true

Toujours OK

Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser()
Return values
true

autoriser_configurerlangage_dist()

Autorisation de voir l'onglet configurerlangage

autoriser_configurerlangage_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool

Calquée sur l'autorisation de voir le formulaire configurer_langage

Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser()
Return values
bool

true s'il a le droit, false sinon

autoriser_preferences_configurer_dist()

Autorisation de voir le formulaire configurer_preferences

autoriser_preferences_configurer_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : true

Toujours OK

Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser()
Return values
true

autoriser_configurerpreferences_dist()

Autorisation de voir l'onglet configurerpreferences

autoriser_configurerpreferences_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool

Calquée sur l'autorisation de voir le formulaire configurer_preferences

Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser()
Return values
bool

true s'il a le droit, false sinon

autoriser_menudeveloppement_menugrandeentree_dist()

Autorisation d'afficher le menu développement

autoriser_menudeveloppement_menugrandeentree_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool

Dépend de la préférences utilisateur

Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser()
Return values
bool

true s'il a le droit, false sinon

autoriser_menugrandeentree_dist()

Autorisation d'afficher une grande entrée de menu

autoriser_menugrandeentree_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : true

Par defaut les grandes entrees (accueil, édition, publication, etc.) sont visibles de tous

Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser()
Return values
true

autoriser_auteurs_voir_dist()

Autorisation de voir la page auteurs

autoriser_auteurs_voir_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : true

Toujours OK

Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser()
Return values
true

autoriser_auteurs_menu_dist()

Autorisation de voir le menu auteurs

autoriser_auteurs_menu_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool

Toujours OK

Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser()
Return values
bool

true s'il a le droit, false sinon

autoriser_articles_voir_dist()

Autorisation de voir la page articles

autoriser_articles_voir_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : true

Toujours OK

Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser()
Return values
true

autoriser_articles_menu_dist()

Autorisation de voir le menu articles

autoriser_articles_menu_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool

Toujours OK

Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser()
Return values
bool

true s'il a le droit, false sinon

autoriser_rubriques_voir_dist()

Autorisation de voir la page rubriques

autoriser_rubriques_voir_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : true

Toujours OK

Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser()
Return values
true

autoriser_rubriques_menu_dist()

Autorisation de voir le menu rubriques

autoriser_rubriques_menu_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool

Toujours OK

Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser()
Return values
bool

true s'il a le droit, false sinon

autoriser_articlecreer_menu_dist()

Autorisation de voir le menu articlecreer

autoriser_articlecreer_menu_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool

Il faut au moins une rubrique présente.

Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser()
Return values
bool

true s'il a le droit, false sinon

autoriser_auteurcreer_menu_dist()

Autorisation de voir le menu auteurcreer

autoriser_auteurcreer_menu_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool

Il faut pouvoir créer un auteur !

Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser_auteur_creer_dist()
see
autoriser()
Return values
bool

true s'il a le droit, false sinon

autoriser_visiteurs_menu_dist()

Autorisation de voir le menu "afficher les visiteurs"

autoriser_visiteurs_menu_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool

Être admin complet et il faut qu'il en existe ou que ce soit activé en config

Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser()
Return values
bool

true s'il a le droit, false sinon

autoriser_suiviedito_menu_dist()

Autorisation de voir le menu suiviedito

autoriser_suiviedito_menu_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool

Il faut être administrateur (y compris restreint).

Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser()
Return values
bool

true s'il a le droit, false sinon

autoriser_synchro_menu_dist()

Autorisation de voir le menu synchro

autoriser_synchro_menu_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool

Il faut être administrateur (y compris restreint).

Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser()
Return values
bool

true s'il a le droit, false sinon

autoriser_configurerinteractions_menu_dist()

Autorisation de voir le menu configurer_interactions

autoriser_configurerinteractions_menu_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool

Il faut avoir accès à la page configurer_interactions

Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser()
Return values
bool

true s'il a le droit, false sinon

autoriser_configurerlangue_menu_dist()

Autorisation de voir le menu configurer_langue

autoriser_configurerlangue_menu_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool

Il faut avoir accès à la page configurer_langue

Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser()
Return values
bool

true s'il a le droit, false sinon

autoriser_configurermultilinguisme_menu_dist()

Autorisation de voir le menu configurer_multilinguisme

autoriser_configurermultilinguisme_menu_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool

Il faut avoir accès à la page configurer_multilinguisme

Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser()
Return values
bool

true s'il a le droit, false sinon

autoriser_configurercontenu_menu_dist()

Autorisation de voir le menu configurer_contenu

autoriser_configurercontenu_menu_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool

Il faut avoir accès à la page configurer_contenu

Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser()
Return values
bool

true s'il a le droit, false sinon

autoriser_configureravancees_menu_dist()

Autorisation de voir le menu configurer_avancees

autoriser_configureravancees_menu_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool

Il faut avoir accès à la page configurer_avancees

Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser()
Return values
bool

true s'il a le droit, false sinon

autoriser_adminplugin_menu_dist()

Autorisation de voir le menu admin_plugin

autoriser_adminplugin_menu_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool

Il faut avoir accès à la page admin_plugin

Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser()
Return values
bool

true s'il a le droit, false sinon

autoriser_adminbdd_menu_dist()

Autorisation de voir le menu admin_bdd

autoriser_adminbdd_menu_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool

Il faut avoir accès à la page admin_bdd, et donc le droit de détruire la BDD (rien que cela)

Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser()
Return values
bool

true s'il a le droit, false sinon

autoriser_queue_purger_dist()

Autorisation de purger la queue de travaux

autoriser_queue_purger_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool

Il faut être webmestre.

Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser()
Return values
bool

true s'il a le droit, false sinon

autoriser_echafauder_dist()

Autorisation l'échafaudage de squelettes en Z

autoriser_echafauder_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool

Il faut être dans l'espace privé (et authentifié), sinon il faut être webmestre (pas de fuite d'informations publiées)

Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser()
Return values
bool

true s'il a le droit, false sinon

auteurs_objet()

Retourne les identifiants d'auteurs liés à un objet

auteurs_objet(string $objet, int $id_objet[, string|array<string|int, mixed> $cond = '' ]) : array<string|int, int>
Parameters
$objet : string
$id_objet : int
$cond : string|array<string|int, mixed> = ''

Condition(s) supplémentaire(s) pour le where de la requête

Return values
array<string|int, int>

Identifiants d'auteurs

acces_restreint_rubrique()

Tester si on est admin restreint sur une rubrique donnée

acces_restreint_rubrique(int $id_rubrique) : bool

Fonction générique utilisee dans des autorisations ou assimilée

Parameters
$id_rubrique : int

Identifiant de la rubrique

Return values
bool

true si administrateur de cette rubrique, false sinon.

verifier_table_non_vide()

Verifier qu'il existe au moins un parent

verifier_table_non_vide([string $table = 'spip_rubriques' ]) : bool

Fonction utilisee dans des autorisations des boutons / menus du prive des objets enfants (articles, breves, sites)

Parameters
$table : string = 'spip_rubriques'

la table a vérifier

Return values
bool

true si un parent existe

autoriser_inscrireauteur_dist()

Détermine la possibilité de s'inscire sur le site

autoriser_inscrireauteur_dist(string $faire, mixed $quoi, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool

Pour un statut et un éventuel id_rubrique donné, indique, à l'aide de la liste globale des statuts (tableau mode => nom du mode) si le visiteur peut s'inscrire sur le site.

Utile pour le formulaire d'inscription.

Par défaut, seuls 6forum et 1comite sont possibles, les autres sont en false. Pour un nouveau mode il suffit de définir l'autorisation spécifique.

Parameters
$faire : string

Action demandée

$quoi : mixed
$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser()
Return values
bool

true s'il a le droit, false sinon

autoriser_inscription_relancer_dist()

Autorisation de relancer une inscription

autoriser_inscription_relancer_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool

Il faut être administrateur complet

Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser()
Return values
bool

true s'il a le droit, false sinon

autoriser_phpinfos_dist()

Autorisation à voir le phpinfo

autoriser_phpinfos_dist(string $faire, string $type, int|string|null $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool

Il faut être webmestre

Parameters
$faire : string

Action demandée

$type : string

Type d'objet ou élément

$id : int|string|null

Identifiant

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
see
autoriser()
Return values
bool

true s'il a le droit, false sinon

definir_barre_contexte()

Calcule le contexte pour le menu du bandeau

definir_barre_contexte([null|array<string|int, mixed> $contexte = null ]) : array<string|int, mixed>

La fonction tente de retrouver la rubrique et le secteur d'appartenance à partir du nom du fichier exec, si celui ci correspond à un objet éditorial de SPIP (et qu'il possède ces champs), et dans ce cas, l'ajoute au contexte.

Parameters
$contexte : null|array<string|int, mixed> = null

contexte connu. S'il n'est pas transmis, on prend $_GET

Return values
array<string|int, mixed>

contexte

definir_barre_boutons()

Définir la liste des boutons du haut et de ses sous-menus

definir_barre_boutons([array<string|int, mixed> $contexte = [] ][, bool $icones = true ][, bool $autorise = true ]) : array<string|int, mixed>

On defini les boutons à mettre selon les droits de l'utilisateur puis on balance le tout au pipeline "ajouter_menus" pour que des plugins puissent y mettre leur grain de sel

Parameters
$contexte : array<string|int, mixed> = []
$icones : bool = true

Rechercher les icones

$autorise : bool = true

Ne renvoyer que les boutons autorisés

Return values
array<string|int, mixed>

trier_boutons_enfants_par_alpha()

Trie les entrées des sous menus par ordre alhabétique

trier_boutons_enfants_par_alpha(array<string|int, Bouton$menus[, bool $avec_favoris = false ]) : array<string|int, Bouton>
Parameters
$menus : array<string|int, Bouton>
$avec_favoris : bool = false

Si true, tri en premier les sous menus favoris, puis l'ordre alphabétique

Return values
array<string|int, Bouton>

trier_boutons_enfants_par_favoris_alpha()

Trie les entrées des sous menus par favoris (selon leur ordre) puis les autres par ordre alhabétique

trier_boutons_enfants_par_favoris_alpha(array<string|int, Bouton$menus) : array<string|int, Bouton>
Parameters
$menus : array<string|int, Bouton>
Tags
uses
trier_boutons_enfants_par_alpha()
Return values
array<string|int, Bouton>

bandeau_creer_url()

Créer l'URL à partir de exec et args, sauf si c'est déjà une url formatée

bandeau_creer_url(string $url[, string $args = '' ][, array<string|int, mixed>|null $contexte = null ]) : string
Parameters
$url : string
$args : string = ''
$contexte : array<string|int, mixed>|null = null
Return values
string

inc_bandeau_dist()

Construire tout le bandeau supérieur de l'espace privé

inc_bandeau_dist() : string
Return values
string

Code HTML du bandeau

obtenir_menus_favoris()

Retourne la liste des noms d'entrées de menus favoris de l'auteur connecté

obtenir_menus_favoris() : array<string|int, mixed>
Return values
array<string|int, mixed>

definir_barre_onglets()

Définir la liste des onglets dans une page de l'interface privée.

definir_barre_onglets(string $script) : array<string|int, mixed>

On passe la main au pipeline "ajouter_onglets".

Parameters
$script : string
Tags
see
plugin_ongletbouton()

qui crée la fonction onglets_plugins()

pipeline_appel

ajouter_onglets

used-by
barre_onglets()
Return values
array<string|int, mixed>

load_charset()

Charge en mémoire la liste des caractères d'un charset

load_charset([string $charset = 'AUTO' ]) : string|bool

Charsets supportés en natif : voir les tables dans ecrire/charsets/ Les autres charsets sont supportés via mbstring()

Parameters
$charset : string = 'AUTO'

Charset à charger. Par défaut (AUTO), utilise le charset du site

Return values
string|bool
  • Nom du charset
  • false si le charset n'est pas décrit dans le répertoire charsets/

init_mb_string()

Vérifier qu'on peut utiliser mb_string avec notre charset

init_mb_string() : bool

Les fonctions mb_* sont tout le temps présentes avec symfony/polyfill-mbstring

Return values
bool

true si notre charset est utilisable par mb_strsing

corriger_caracteres_windows()

Corriger des caractères non-conformes : 128-159

corriger_caracteres_windows(string|array<string|int, mixed> $texte[, string $charset = 'AUTO' ][, string $charset_cible = 'unicode' ]) : string|array<string|int, mixed>

Cf. charsets/iso-8859-1.php (qu'on recopie ici pour aller plus vite) On peut passer un charset cible en parametre pour accelerer le passage iso-8859-1 -> autre charset

Parameters
$texte : string|array<string|int, mixed>

Le texte à corriger

$charset : string = 'AUTO'

Charset d'origine du texte Par défaut (AUTO) utilise le charset du site

$charset_cible : string = 'unicode'

Charset de destination (unicode par défaut)

Return values
string|array<string|int, mixed>

texte corrigé

html2unicode()

Transforme les entités HTML en unicode

html2unicode(string $texte[, bool $secure = false ]) : string

Transforme les é en {

Parameters
$texte : string

texte à convertir

$secure : bool = false

true pour ne pas convertir les caracteres malins < & etc.

Return values
string

texte converti

mathml2unicode()

Transforme les entités mathématiques (MathML) en unicode

mathml2unicode(string $texte) : string

Transforme ∠ en ∠ ainsi que toutes autres entités mathématiques

Parameters
$texte : string

texte à convertir

Return values
string

texte converti

unicode2charset()

Transforme les entites unicode &#129; dans le charset specifie

unicode2charset(string $texte[, string $charset = 'AUTO' ]) : string

Attention on ne transforme pas les entites < € car si elles ont ete encodees ainsi c'est a dessein

Parameters
$texte : string

texte unicode à transformer

$charset : string = 'AUTO'

Charset à appliquer au texte Par défaut (AUTO), le charset sera celui du site.

Return values
string

texte transformé dans le charset souhaité

importer_charset()

Importer un texte depuis un charset externe vers le charset du site

importer_charset(string $texte[, string $charset = 'AUTO' ]) : string

Les caractères non resolus sont transformés en &#123;

Parameters
$texte : string

texte unicode à importer

$charset : string = 'AUTO'

Charset d'origine du texte Par défaut (AUTO), le charset d'origine est celui du site.

Return values
string

texte transformé dans le charset site

utf_8_to_unicode()

Transforme un texte UTF-8 en unicode

utf_8_to_unicode(string $source) : string

Utilise la librairie mb si présente

Parameters
$source : string

texte UTF-8 à transformer

Return values
string

texte transformé en unicode

utf_32_to_unicode()

Transforme un texte UTF-32 en unicode

utf_32_to_unicode(string $source) : string

UTF-32 ne sert plus que si on passe par iconv, c'est-a-dire quand mb_string est absente ou ne connait pas notre charset.

Mais on l'optimise quand meme par mb_string => tout ca sera osolete quand on sera surs d'avoir mb_string

Parameters
$source : string

texte UTF-8 à transformer

Return values
string

texte transformé en unicode

caractere_utf_8()

Transforme un numéro unicode en caractère utf-8

caractere_utf_8(int $num) : string

Ce bloc provient de php.net

Parameters
$num : int

Numéro de l'entité unicode

Tags
author

Ronen

used-by
translitteration_rapide()
Return values
string

Caractère utf8 si trouvé, '' sinon

unicode_to_utf_8()

Convertit un texte unicode en utf-8

unicode_to_utf_8(string $texte) : string
Parameters
$texte : string

texte à convertir

Return values
string

texte converti

unicode_to_javascript()

Convertit les unicode &#264; en javascript \u0108

unicode_to_javascript(string $texte) : string
Parameters
$texte : string

texte à convertir

Return values
string

texte converti

javascript_to_unicode()

Convertit les %uxxxx (envoyés par javascript) en &#yyy unicode

javascript_to_unicode(string $texte) : string
Parameters
$texte : string

texte à convertir

Return values
string

texte converti

javascript_to_binary()

Convertit les %E9 (envoyés par le browser) en chaîne du charset du site (binaire)

javascript_to_binary(string $texte) : string
Parameters
$texte : string

texte à convertir

Return values
string

texte converti

translitteration_rapide()

Substition rapide de chaque graphème selon le charset sélectionné.

translitteration_rapide(string $texte[, string $charset = 'AUTO' ][, string $complexe = '' ]) : string
Parameters
$texte : string
$charset : string = 'AUTO'
$complexe : string = ''
Tags
uses
caractere_utf_8()
global

array $CHARSET

staticvar

array $trans

used-by
translitteration()
Return values
string

translitteration()

Translittération charset => ascii (pour l'indexation)

translitteration(string $texte[, string $charset = 'AUTO' ][, string $complexe = '' ]) : string

Permet, entre autres, d’enlever les accents, car la table ASCII non étendue ne les comporte pas.

Attention les caractères non reconnus sont renvoyés en utf-8

Parameters
$texte : string
$charset : string = 'AUTO'
$complexe : string = ''
Tags
uses
corriger_caracteres()
uses
unicode_to_utf_8()
uses
html2unicode()
uses
charset2unicode()
uses
translitteration_rapide()
used-by
ancre_url()
used-by
translitteration_complexe()
Return values
string

translitteration_complexe()

Translittération complexe

translitteration_complexe(string $texte[, bool $chiffres = false ]) : string

&agrave; est retourné sous la forme a` et pas à mais si $chiffre=true, on retourne a8 (vietnamien)

Parameters
$texte : string
$chiffres : bool = false
Tags
uses
translitteration()
Return values
string

translitteration_chiffree()

Translittération chiffrée

translitteration_chiffree(string $car) : string

Remplace des caractères dans une chaîne par des chiffres

Parameters
$car : string
Return values
string

bom_utf8()

Reconnaitre le BOM utf-8 (0xEFBBBF)

bom_utf8(string $texte) : bool
Parameters
$texte : string

texte dont on vérifie la présence du BOM

Return values
bool

true s'il a un BOM

is_ascii()

Vérifie qu'une chaîne est en ascii valide

is_ascii(string $string) : bool
Parameters
$string : string

texte dont on vérifie qu'il est de l'ascii

Return values
bool

true si c'est le cas

transcoder_page()

Transcode une page vers le charset du site

transcoder_page(string $texte[, string $headers = '' ]) : string

Transcode une page (attrapée sur le web, ou un squelette) vers le charset du site en essayant par tous les moyens de deviner son charset (y compris dans les headers HTTP)

Parameters
$texte : string

Page à transcoder, dont on souhaite découvrir son charset

$headers : string = ''

Éventuels headers HTTP liés à cette page

Return values
string

texte transcodé dans le charset du site

spip_substr()

Coupe un texte selon substr()

spip_substr(string $c[, int $start = 0 ][, null|int $length = null ]) : string

Coupe une chaîne en utilisant les outils mb* lorsque le site est en utf8

Parameters
$c : string

Le texte

$start : int = 0

Début

$length : null|int = null

Longueur ou fin

Tags
link
http://fr.php.net/manual/fr/function.mb-substr.php
link
http://www.php.net/manual/fr/function.substr.php
uses
spip_substr_manuelle()

si les fonctions php mb sont absentes

Return values
string

Le texte coupé

spip_ucfirst()

Rend majuscule le premier caractère d'une chaîne utf-8

spip_ucfirst(string $c) : string

Version utf-8 d'ucfirst

Parameters
$c : string

La chaîne à transformer

Return values
string

La chaîne avec une majuscule sur le premier mot

spip_strtolower()

Passe une chaîne utf-8 en minuscules

spip_strtolower(string $c) : string

Version utf-8 de strtolower

Parameters
$c : string

La chaîne à transformer

Return values
string

La chaîne en minuscules

spip_strlen()

Retourne la longueur d'une chaîne utf-8

spip_strlen(string $c) : int

Version utf-8 de strlen

Parameters
$c : string

La chaîne à compter

Return values
int

Longueur de la chaîne

utf8_noplanes()

Transforme une chaîne utf-8 en utf-8 sans "planes" ce qui permet de la donner à MySQL "utf8", qui n'est pas un utf-8 complet L'alternative serait d'utiliser utf8mb4

utf8_noplanes(string $x) : string
Parameters
$x : string

La chaîne à transformer

Return values
string

La chaîne avec les caractères utf8 des hauts "planes" échappée en unicode : 💩

inc_chercher_logo_dist()

Cherche le logo d'un élément d'objet

inc_chercher_logo_dist(int $id, string $_id_objet[, string $mode = 'on' ][, bool $compat_old_logos = false ]) : array<string|int, mixed>
Parameters
$id : int

Identifiant de l'objet

$_id_objet : string

Nom de la clé primaire de l'objet

$mode : string = 'on'

Mode de survol du logo désiré (on ou off)

$compat_old_logos : bool = false

(unused) @deprecated 5.0

Return values
array<string|int, mixed>
  • Liste (chemin complet du fichier, répertoire de logos, nom du logo, extension du logo, date de modification[, doc])
  • array vide aucun logo trouvé.

inc_chercher_rubrique_dist()

Sélecteur de rubriques pour l'espace privé

inc_chercher_rubrique_dist(int $id_rubrique, string $type, bool $restreint[, int $idem = 0 ][, string $do = 'aff' ]) : string
Parameters
$id_rubrique : int

Identifiant de rubrique courante (0 si NEW)

$type : string

Type de l'objet à placer.

Une rubrique peut aller à la racine mais pas dans elle-même, les articles et sites peuvent aller n'importe où (défaut), et les brèves dans les secteurs.

$restreint : bool

True pour indiquer qu'il faut limiter les rubriques affichées aux rubriques éditables par l'admin restreint

$idem : int = 0

En mode rubrique, identifiant de soi-même

$do : string = 'aff'

Type d'action

Tags
uses
selecteur_rubrique_html()
uses
selecteur_rubrique_ajax()
used-by
chercher_rubrique()
Return values
string

Code HTML du sélecteur

style_menu_rubriques()

Styles appliqués sur le texte d'une rubrique pour créer visuellement une indentation en fonction de sa profondeur dans le sélecteur

style_menu_rubriques(int $i) : array<string|int, mixed>
Parameters
$i : int

Profondeur de la rubrique

Return values
array<string|int, mixed>

Liste (classe CSS, styles en ligne, Espaces insécables)

sous_menu_rubriques()

Sélecteur de sous rubriques pour l'espace privé

sous_menu_rubriques(int $id_rubrique, int $root, int $niv, array<string|int, mixed> &$data, array<string|int, mixed> &$enfants, int $exclus, bool $restreint, string $type) : string
Parameters
$id_rubrique : int

Identifiant de parente

$root : int
$niv : int
$data : array<string|int, mixed>
$enfants : array<string|int, mixed>
$exclus : int
$restreint : bool

True pour indiquer qu'il faut limiter les rubriques affichées aux rubriques éditables par l'admin restreint

$type : string

Type de l'objet à placer.

Tags
uses
style_menu_rubriques()
used-by
selecteur_rubrique_html()
Return values
string

Code HTML du sélecteur

selecteur_rubrique_html()

Sélecteur de rubriques pour l'espace privé en mode classique (menu)

selecteur_rubrique_html(int $id_rubrique, string $type, bool $restreint[, int $idem = 0 ]) : string
Parameters
$id_rubrique : int

Identifiant de rubrique courante (0 si NEW)

$type : string

Type de l'objet à placer.

$restreint : bool

True pour indiquer qu'il faut limiter les rubriques affichées aux rubriques éditables par l'admin restreint

$idem : int = 0

En mode rubrique, identifiant de soi-même

Tags
uses
sous_menu_rubriques()
used-by
inc_chercher_rubrique_dist()
Return values
string

Code HTML du sélecteur

selecteur_rubrique_ajax()

Sélecteur de rubrique pour l'espace privé, en mode AJAX

selecteur_rubrique_ajax(int $id_rubrique, string $type, bool $restreint[, int $idem = 0 ][, string $do = 'aff' ]) : string
Parameters
$id_rubrique : int

Identifiant de rubrique courante (0 si NEW)

$type : string

Type de l'objet à placer.

$restreint : bool

True pour indiquer qu'il faut limiter les rubriques affichées aux rubriques éditables par l'admin restreint. Ne fonctionne actuellement pas ici.

$idem : int = 0

En mode rubrique, identifiant de soi-même

$do : string = 'aff'

Type d'action

Tags
note

$restreint indique qu'il faut limiter les rubriques affichées aux rubriques éditables par l'admin restreint... or, ca ne marche pas. Pour la version HTML c'est bon (cf. ci-dessus), mais pour l'ajax... je laisse ça aux spécialistes de l'ajax & des admins restreints

Toutefois c'est juste un pb d'interface, car question securite la vérification est faite à l'arrivée des données (Fil)

uses
construire_selecteur()
see
exec_selectionner_dist()

Pour l'obtention du contenu AJAX ensuite

used-by
inc_chercher_rubrique_dist()
Return values
string

Code HTML du sélecteur

construire_selecteur()

Construit un bloc permettant d'activer le sélecteur de rubrique AJAX

construire_selecteur(string $url, string $js, string $idom, string $name[, string $init = '' ][, int $id = 0 ]) : string

Construit un bloc comportant une icone clicable avec image animée à côté pour charger en Ajax du code à mettre sous cette icone.

Parameters
$url : string

URL qui retournera le contenu du sélecteur en AJAX

$js : string

Code javascript ajouté sur onclick

$idom : string

Identifiant donné à l'image activant l'ajax et au block recevant son contenu

$name : string

Nom du champ à envoyer par le formulaire

$init : string = ''

Code HTML à l'intérieur de l'input titreparent

$id : int = 0

Valeur actuelle du champ

Tags
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).

used-by
selecteur_rubrique_ajax()
Return values
string

Code HTML du sélecteur de rubrique AJAX

inc_commencer_page_dist()

Débute une page HTML pour l'espace privé

inc_commencer_page_dist([string $titre = '' ][, string $rubrique = 'accueil' ][, string $sous_rubrique = 'accueil' ][, string $id_rubrique = '' ][, bool $menu = true ][, bool $minipres = false ][, bool $alertes = true ]) : string

Préferer l'usage des squelettes prive/squelettes/.

Parameters
$titre : string = ''

Titre de la page

$rubrique : string = 'accueil'

?

$sous_rubrique : string = 'accueil'

?

$id_rubrique : string = ''

?

$menu : bool = true

?

$minipres : bool = false

?

$alertes : bool = true

?

Tags
uses
init_entete()
uses
init_body()
example
$commencer_page = charger_fonction('commencer_page','inc');
echo $commencer_page($titre);
Return values
string

Code HTML

init_head()

Retourne le code HTML du head (intégration des JS et CSS) de l'espace privé

init_head([string $titre = '' ][, int $dummy = 0 ][, bool $minipres = false ]) : string

Code HTML récupéré du squelette prive/squelettes/head/dist

Parameters
$titre : string = ''
$dummy : int = 0
$minipres : bool = false
Tags
used-by
init_entete()
Return values
string

init_body()

Fonction envoyant la double série d'icônes de rédac

init_body([string $rubrique = 'accueil' ][, string $sous_rubrique = 'accueil' ][, int $id_rubrique = '' ][, bool $menu = true ]) : string
Parameters
$rubrique : string = 'accueil'
$sous_rubrique : string = 'accueil'
$id_rubrique : int = ''
$menu : bool = true
Tags
uses
init_body_class()
uses
inc_bandeau_dist()
pipeline_appel

body_prive

global

mixed $connect_id_auteur

global

mixed $auth_can_disconnect

used-by
inc_commencer_page_dist()
Return values
string

init_body_class()

Calcule les classes CSS à intégrer à la balise `<body>` de l'espace privé

init_body_class() : string

Les classes sont calculées en fonction des préférences de l'utilisateur, par exemple s'il choisit d'avoir ou non les icônes.

Tags
used-by
init_body()
Return values
string

Classes CSS (séparées par des espaces)

auteurs_recemment_connectes()

Afficher la liste des auteurs connectés à l'espace privé

auteurs_recemment_connectes(int $id_auteur) : string
Parameters
$id_auteur : int
Return values
string

inc_completer_traduction_dist()

Compléter une nouvelle traduction avec des éléments utiles.

inc_completer_traduction_dist(string $objet, int $id_objet, int $id_trad) : string
Parameters
$objet : string

Objet

$id_objet : int

Identifiant du nouvel objet

$id_trad : int

Identifiant de l’objet qu'on a traduit

Return values
string

Erreur éventuelle

inc_config_dist()

Appliquer les valeurs par défaut pour les options non initialisées (pour les langues c'est fait)

inc_config_dist() : void

expliquer_config()

Expliquer une clé de configuration

expliquer_config(string $cfg) : array<string|int, mixed>

Analyser la clé de configuration pour déterminer

  • la table (ex: spip_metas),
  • le casier, la clé principale (ex: dada)
  • et le sous-casier éventuel, chemin dans la clé principale (ex: truc/muche)
Parameters
$cfg : string

Clé de configuration, tel que 'dada/truc/muche'

Return values
array<string|int, mixed>

Liste (table, casier, sous_casier)

lire_config()

Lecture de la configuration

lire_config([string $cfg = '' ][, mixed $def = null ][, bool $unserialize = true ]) : mixed

lire_config() permet de recuperer une config depuis le php
memes arguments que la balise (forcement)
$cfg: la config, lire_config('montruc') est un tableau
lire_config('/table/champ') lit le valeur de champ dans la table des meta 'spip_table'
lire_config('montruc/sub') est l'element "sub" de cette config equivalent a lire_config('/meta/montruc/sub')

lire_config('methode::montruc/sub') delegue la lecture a methode_lire_config_dist via un charger_fonction permet de brancher CFG ou autre outil externe qui etend les methodes de stockage de config

$unserialize est mis par l'histoire

Parameters
$cfg : string = ''

Clé de configuration

$def : mixed = null

Valeur par défaut

$unserialize : bool = true

N'affecte que le dépôt 'meta' : True pour désérialiser automatiquement la valeur

Return values
mixed

Contenu de la configuration obtenue

lire_config_metapack_dist()

metapack est inclue dans lire_config, mais on traite le cas ou il est explicite metapack:: dans le $cfg de lire_config.

lire_config_metapack_dist([string $cfg = '' ][, mixed $def = null ][, bool $unserialize = true ]) : mixed

On renvoie simplement sur lire_config

Parameters
$cfg : string = ''
$def : mixed = null
$unserialize : bool = true

ecrire_config()

Ecrire une configuration

ecrire_config(string $cfg, mixed $store) : bool
Parameters
$cfg : string
$store : mixed
Return values
bool

ecrire_config_metapack_dist()

metapack est inclue dans ecrire_config, mais on traite le cas ou il est explicite metapack:: dans le $cfg de ecrire_config.

ecrire_config_metapack_dist(string $cfg, mixed $store) : bool

On renvoie simplement sur ecrire_config

Parameters
$cfg : string
$store : mixed
Return values
bool

effacer_config()

Effacer une configuration : revient a ecrire une valeur null

effacer_config(string $cfg) : bool
Parameters
$cfg : string
Return values
bool

actualise_metas()

Mets les `meta` à des valeurs conventionnelles quand elles sont vides et recalcule les langues

actualise_metas(array<string|int, mixed> $liste_meta) : void
Parameters
$liste_meta : array<string|int, mixed>

appliquer_modifs_config()

Appliquer les modifications apportées aux `metas`

appliquer_modifs_config([bool $purger_skel = false ]) : void

Si $purger_skel est à true, on purge le répertoire de cache des squelettes

Parameters
$purger_skel : bool = false
Tags
uses
liste_metas()
uses
ecrire_meta()
uses
purger_repertoire()

appliquer_adresse_site()

Mettre à jour l'adresse du site à partir d'une valeur saisie (ou auto détection si vide)

appliquer_adresse_site(string $adresse_site) : string
Parameters
$adresse_site : string
Return values
string

spip_setcookie()

Place un cookie (préfixé) sur le poste client

spip_setcookie([string $name = '' ][, string $value = '' ][, int|array{expires: int, path: string, domain: string, secure: bool, samesite: string} $expires_or_options = 0 ][, string $path = '' ][, string $domain = '' ][, bool $secure = false ][, bool $httponly = false ]) : bool
Parameters
$name : string = ''

Nom du cookie

$value : string = ''

Valeur à stocker

$expires_or_options : int|array{expires: int, path: string, domain: string, secure: bool, samesite: string} = 0

int: Date d'expiration du cookie (timestamp) Tableau clé => valeur de l’option

  • expires = 0 : Date d'expiration du cookie (timestamp)
  • path = 'AUTO' : Chemin sur lequel le cookie sera disponible
  • domain = '' : Domaine à partir duquel le cookie est disponible
  • secure = false : cookie sécurisé ou non ?
  • samesite = 'Lax' : valeur samesite (Lax, Strict ou None)
$path : string = ''

Chemin sur lequel le cookie sera disponible (SPIP < 4.0: $path = 'AUTO')

$domain : string = ''

Domaine à partir duquel le cookie est disponible

$secure : bool = false

Indique si le cookie doit être envoyé par le navigateur uniquement en connexion HTTPS (true) ou systématiquement (false)

$httponly : bool = false

Indique si le cookie doit être accessible en Javascript (false) ou non (true)

Tags
global

string cookie_prefix Préfixe de cookie défini

link
http://fr.php.net/setcookie
used-by
exec_test_ajax_dist()
Return values
bool

true si le cookie a été posé, false sinon.

Teste si un cookie a déjà été envoyé ou pas

spip_cookie_envoye([bool|string $set = '' ]) : bool

Permet par exemple à redirige_par_entete() de savoir le type de redirection à appliquer (serveur ou navigateur)

Parameters
$set : bool|string = ''

true pour déclarer les cookies comme envoyés

Tags
see
redirige_par_entete()
Return values
bool

recuperer_cookies_spip()

Adapte le tableau PHP `$_COOKIE` pour prendre en compte le préfixe des cookies de SPIP

recuperer_cookies_spip(string $cookie_prefix) : mixed

Si le préfixe des cookies de SPIP est différent de spip_ alors la fonction modifie les $_COOKIE ayant le préfixe spécifique pour remettre le préfixe spip_ à la place.

Ainsi les appels dans le code n'ont pas besoin de gérer le préfixe, ils appellent simplement $_COOKIE['spip_xx'] qui sera forcément la bonne donnée.

Parameters
$cookie_prefix : string

Préfixe des cookies de SPIP

exec_test_ajax_dist()

Teste si javascript est supporté par le navigateur et pose un cookie en conséquence

exec_test_ajax_dist() : mixed

Si la valeur d'environnement js arrive avec la valeur

  • -1 c'est un appel via une balise <noscript>.
  • 1 c'est un appel via javascript

Inscrit le résultat dans le cookie spip_accepte_ajax

Tags
see
html_tests_js()
uses
spip_setcookie()

inc_couleurs_dist()

Obtenir ou définir les différents jeux de couleurs de l'espace privé

inc_couleurs_dist([null|int|array<string|int, mixed> $choix = null ][, bool $ajouter = false ]) : array<string|int, mixed>|string
  • Appelée sans argument, cette fonction retourne un tableau décrivant les jeux les couleurs possibles.
  • Avec un argument numérique, elle retourne les paramètres d'URL pour les feuilles de style calculées (cf. formulaire configurer_preferences)
  • Avec un argument de type tableau :
    • soit elle remplace le tableau par défaut par celui donné en argument
    • soit elle le complète, si $ajouter vaut true.
Parameters
$choix : null|int|array<string|int, mixed> = null
$ajouter : bool = false
Tags
see
formulaires_configurer_preferences_charger_dist()
staticvar

array $couleurs_spip

Return values
array<string|int, mixed>|string

analyse_csv()

Retourne les données d'un texte au format CSV

analyse_csv(string $t) : array<string|int, mixed>
Parameters
$t : string

Contenu du CSV

Return values
array<string|int, mixed>

Tableau des données en 3 index :

  • Liste des noms des colonnes
  • Liste des valeurs de chaque ligne et chaque colonne
  • Titre du tableau (si une seule colonne)

autosave_clean_value()

Nettoyer les échappements

autosave_clean_value(string $val) : string
Parameters
$val : string
Return values
string

cvtautosave_formulaire_charger()

Repérer une demande de formulaire autosave et la conditionner

cvtautosave_formulaire_charger(array<string|int, mixed> $flux) : array<string|int, mixed>
Parameters
$flux : array<string|int, mixed>
Return values
array<string|int, mixed>

cvtautosave_formulaire_traiter()

Traitement d'un formulaire ayant activé `autosave`

cvtautosave_formulaire_traiter(array<string|int, mixed> $flux) : array<string|int, mixed>

Quand on poste définitivement un formulaire autosave, on peut vider la session autosave et on vide aussi toutes les autosave de plus de 72H (délai par défaut) ou sans __timestamp (vieilles sessions)

Parameters
$flux : array<string|int, mixed>
Return values
array<string|int, mixed>

cvtconf_formulaire_charger()

Proposer un chargement par defaut pour les #FORMULAIRE_CONFIGURER_XXX

cvtconf_formulaire_charger(array<string|int, mixed> $flux) : array<string|int, mixed>|false
Parameters
$flux : array<string|int, mixed>
Return values
array<string|int, mixed>|false

cvtconf_formulaire_traiter()

Proposer un traitement par defaut pour les #FORMULAIRE_CONFIGURER_XXX

cvtconf_formulaire_traiter(array<string|int, mixed> $flux) : array<string|int, mixed>
Parameters
$flux : array<string|int, mixed>
Return values
array<string|int, mixed>

cvtconf_formulaires_configurer_enregistre()

Enregistrer les donnees d'un formulaire $form appele avec les arguments $args Cette fonction peut etre appellee manuellement et explicitement depuis la fonction traiter() d'un formulaire configurer_xxx dont on veut personaliser le traitement sans reecrire le stockage des donnees

cvtconf_formulaires_configurer_enregistre(string $form, array<string|int, mixed> $args) : string
Parameters
$form : string

nom du formulaire "configurer_xxx"

$args : array<string|int, mixed>

arguments de l'appel de la fonction traiter ($args = func_get_args();)

Return values
string

cvtconf_definir_configurer_conteneur()

Définir la règle de conteneur, en fonction de la présence de certaines données

cvtconf_definir_configurer_conteneur(string $form, array<string|int, mixed> $valeurs) : array<string|int, mixed>
  • _meta_table : nom de la table spip_metas ou stocker (par défaut 'meta')
  • _meta_casier : nom du casier dans lequel sérialiser (par défaut xx de formulaire_configurer_xx)
  • _meta_prefixe : préfixer les meta (alternative au casier) dans la table des meta (par defaur rien)
  • _meta_stockage : Méthode externe de stockage. Aucune n'est fournie par le core.
Parameters
$form : string
$valeurs : array<string|int, mixed>
Return values
array<string|int, mixed>

cvtconf_formulaires_configurer_recense()

Retrouver les champs d'un formulaire en parcourant son squelette et en extrayant les balises input, textarea, select

cvtconf_formulaires_configurer_recense(string $form) : array<string|int, mixed>
Parameters
$form : string
Return values
array<string|int, mixed>

cvtconf_configurer_stocker()

Stocker les metas

cvtconf_configurer_stocker(string $form, array<string|int, mixed> $valeurs, array<string|int, mixed> $store) : string
Parameters
$form : string
$valeurs : array<string|int, mixed>
$store : array<string|int, mixed>
Return values
string

cvtconf_configurer_lire_meta()

Lecture en base des metas d'un form

cvtconf_configurer_lire_meta(string $form, array<string|int, mixed> &$valeurs) : mixed
Parameters
$form : string
$valeurs : array<string|int, mixed>

cvtmulti_recuperer_post_precedents()

Reinjecter dans _request() les valeurs postees dans les etapes precedentes

cvtmulti_recuperer_post_precedents(string $form) : array<string|int, mixed>|false
Parameters
$form : string
Return values
array<string|int, mixed>|false

cvtmulti_sauver_post()

Sauvegarder les valeurs postees dans une variable encodee pour les recuperer a la prochaine etape

cvtmulti_sauver_post(string $form, bool $je_suis_poste, array<string|int, mixed> &$valeurs) : array<string|int, mixed>
Parameters
$form : string
$je_suis_poste : bool
$valeurs : array<string|int, mixed>
Return values
array<string|int, mixed>

cvtmulti_formulaire_charger_etapes()

Charger une etape du cvt multi

cvtmulti_formulaire_charger_etapes(array<string|int, mixed> $args, array<string|int, mixed> $valeurs) : array<string|int, mixed>
Parameters
$args : array<string|int, mixed>
$valeurs : array<string|int, mixed>
Return values
array<string|int, mixed>

cvtmulti_formulaire_verifier_etapes()

Verifier les etapes de saisie

cvtmulti_formulaire_verifier_etapes(array<string|int, mixed> $args, array<string|int, mixed> $erreurs) : array<string|int, mixed>
Parameters
$args : array<string|int, mixed>
$erreurs : array<string|int, mixed>
Return values
array<string|int, mixed>

cvtmulti_styliser()

Selectionner le bon fond en fonction de l'etape L'etape 1 est sur le fond sans suffixe Les autres etapes x sont sur le fond _x

cvtmulti_styliser(array<string|int, mixed> $flux) : array<string|int, mixed>
Parameters
$flux : array<string|int, mixed>
Return values
array<string|int, mixed>

inc_definir_menus_favoris_dist()

Retourne la liste des menus favoris par défaut ainsi que leur rang

inc_definir_menus_favoris_dist() : mixed

copie_locale()

Crée au besoin la copie locale d'un fichier distant

copie_locale(string $source[, string $mode = 'auto' ][, string $local = null ][, int $taille_max = null ][, string $callback_valider_url = null ]) : bool|string

Prend en argument un chemin relatif au rep racine, ou une URL Renvoie un chemin relatif au rep racine, ou false

Parameters
$source : string
$mode : string = 'auto'
  • 'test' - ne faire que tester
  • 'auto' - charger au besoin
  • 'modif' - Si deja present, ne charger que si If-Modified-Since
  • 'force' - charger toujours (mettre a jour)
$local : string = null

permet de specifier le nom du fichier local (stockage d'un cache par exemple, et non document IMG)

$taille_max : int = null

taille maxi de la copie local, par defaut _COPIE_LOCALE_MAX_SIZE

$callback_valider_url : string = null

fonction de callback pour valider l'URL finale apres redirection eventuelle

Tags
link
https://www.spip.net/4155
pipeline_appel

post_edition

used-by
_image_valeurs_trans()

Si l'image est distante

Return values
bool|string

valider_url_distante()

Valider qu'une URL d'un document distant est bien distante et pas une url localhost qui permet d'avoir des infos sur le serveur inspiree de https://core.trac.wordpress.org/browser/trunk/src/wp-includes/http.php?rev=36435#L500

valider_url_distante(string $url[, array<string|int, mixed> $known_hosts = [] ]) : false|string
Parameters
$url : string
$known_hosts : array<string|int, mixed> = []

url/hosts externes connus et acceptes

Return values
false|string

url ou false en cas d'echec

prepare_donnees_post()

Preparer les donnes pour un POST si $donnees est une chaine - charge a l'envoyeur de la boundariser, de gerer le Content-Type, de séparer les entetes des données par une ligne vide etc... - on traite les retour ligne pour les mettre au bon format - on decoupe en entete/corps (separes par ligne vide) si $donnees est un tableau - structuration en chaine avec boundary si necessaire ou fournie et bon Content-Type

prepare_donnees_post(string|array<string|int, mixed> $donnees[, string $boundary = '' ]) : array{: string, : string}
Parameters
$donnees : string|array<string|int, mixed>
$boundary : string = ''
Return values
array{: string, : string}

entete,corps

url_to_ascii()

Convertir une URL dont le host est en utf8 en ascii

url_to_ascii(string $url_idn) : array<string|int, mixed>|string
Parameters
$url_idn : string
Return values
array<string|int, mixed>|string

recuperer_url()

Récupère le contenu d'une URL au besoin encode son contenu dans le charset local

recuperer_url(string $url[, array<string|int, mixed> $options = [] ]) : array<string|int, mixed>|bool
Parameters
$url : string
$options : array<string|int, mixed> = []

bool transcoder : true si on veut transcoder la page dans le charset du site string methode : Type de requête HTTP à faire (HEAD, GET, POST, PUT, DELETE) int taille_max : Arrêter le contenu au-delà (0 = seulement les entetes ==> requête HEAD). Par defaut taille_max = 1Mo ou 16Mo si copie dans un fichier array headers : tableau associatif d'entetes https a envoyer string|array datas : Pour envoyer des donnees (array) et/ou entetes au complet, avec saut de ligne entre headers et donnees ( string @see prepare_donnees_post()) (force la methode POST si donnees non vide) string boundary : boundary pour formater les datas au format array bool refuser_gz : Pour forcer le refus de la compression (cas des serveurs orthographiques) int if_modified_since : Un timestamp unix pour arrêter la récuperation si la page distante n'a pas été modifiée depuis une date donnée string uri_referer : Pour préciser un référer différent string file : nom du fichier dans lequel copier le contenu int follow_location : nombre de redirections a suivre (0 pour ne rien suivre) string version_http : version du protocole HTTP a utiliser (par defaut defini par la constante _INC_DISTANT_VERSION_HTTP)

Tags
uses
init_http()
uses
recuperer_entetes_complets()
uses
recuperer_body()
uses
transcoder_page()
uses
prepare_donnees_post()
used-by
verifier_htaccess()
used-by
recuperer_url_cache()
used-by
url_absolue_css()

si l'URL source n'est pas sur le même site

Return values
array<string|int, mixed>|bool

false si echec array sinon : int status : le status de la page string headers : les entetes de la page string page : le contenu de la page (vide si copie dans un fichier) int last_modified : timestamp de derniere modification string location : url de redirection envoyee par la page string url : url reelle de la page recuperee int length : taille du contenu ou du fichier récupéré int content_length : (optionnel) taille annoncée par le serveur distant dans ses headers (si annoncée)

string file : nom du fichier si enregistre dans un fichier

recuperer_url_cache()

Récuperer une URL si on l'a pas déjà dans un cache fichier

recuperer_url_cache(string $url[, array<string|int, mixed> $options = [] ]) : array<string|int, mixed>|bool|mixed

Le délai de cache est fourni par l'option delai_cache Les autres options et le format de retour sont identiques à la fonction recuperer_url

Parameters
$url : string
$options : array<string|int, mixed> = []

int delai_cache : anciennete acceptable pour le contenu (en seconde)

Tags
uses
recuperer_url()
Return values
array<string|int, mixed>|bool|mixed

recuperer_body()

Recuperer le contenu sur lequel pointe la resource passee en argument $taille_max permet de tronquer de l'url dont on a deja recupere les en-tetes

recuperer_body(resource $handle[, int $taille_max = _INC_DISTANT_MAX_SIZE ][, string $fichier = '' ]) : bool|int|string
Parameters
$handle : resource
$taille_max : int = _INC_DISTANT_MAX_SIZE
$fichier : string = ''

fichier dans lequel copier le contenu de la resource

Tags
used-by
recuperer_url()
Return values
bool|int|string

bool false si echec int taille du fichier si argument fichier fourni string contenu de la resource

recuperer_entetes_complets()

Lit les entetes de reponse HTTP sur la socket $handle et retourne false en cas d'echec, un tableau associatif en cas de succes, contenant : - le status - le tableau complet des headers - la date de derniere modif si connue - l'url de redirection si specifiee

recuperer_entetes_complets(resource $handle[, int|bool $if_modified_since = false ]) : bool|array<string|int, mixed>
Parameters
$handle : resource
$if_modified_since : int|bool = false
Tags
used-by
recuperer_url()
Return values
bool|array<string|int, mixed>

int status string headers int last_modified string location

nom_fichier_copie_locale()

Calcule le nom canonique d'une copie local d'un fichier distant

nom_fichier_copie_locale(string $source, string $extension) : string

Si on doit conserver une copie locale des fichiers distants, autant que ca soit à un endroit canonique

Parameters
$source : string

URL de la source

$extension : string

Extension du fichier

Tags
note

Si ca peut être bijectif c'est encore mieux, mais là tout de suite je ne trouve pas l'idee, étant donné les limitations des filesystems

used-by
fichier_copie_locale()
Return values
string

Nom du fichier pour copie locale

fichier_copie_locale()

Donne le nom de la copie locale de la source

fichier_copie_locale(string $source) : string|null

Soit obtient l'extension du fichier directement de l'URL de la source, soit tente de le calculer.

Parameters
$source : string

URL de la source distante

Tags
uses
nom_fichier_copie_locale()
uses
recuperer_infos_distantes()
Return values
string|null
  • string: Nom du fichier calculé
  • null: Copie locale impossible

recuperer_infos_distantes()

Récupérer les infos d'un document distant, sans trop le télécharger

recuperer_infos_distantes(string $source[, array<string|int, mixed> $options = [] ]) : array<string|int, mixed>|false
Parameters
$source : string

URL de la source

$options : array<string|int, mixed> = []

int $taille_max : Taille maximum du fichier à télécharger bool $charger_si_petite_image : Pour télécharger le document s'il est petit string $callback_valider_url : callback pour valider l'URL finale du document apres redirection

Tags
used-by
fichier_copie_locale()
Return values
array<string|int, mixed>|false

Couples des informations obtenues parmis :

  • 'body' = chaine
  • 'type_image' = booleen
  • 'titre' = chaine
  • 'largeur' = intval
  • 'hauteur' = intval
  • 'taille' = intval
  • 'extension' = chaine
  • 'fichier' = chaine
  • 'mime_type' = chaine

distant_trouver_mime_type_selon_headers()

Retrouver un mime type depuis les headers

distant_trouver_mime_type_selon_headers(string $source, string $headers) : string
Parameters
$source : string
$headers : string
Return values
string

distant_trouver_extension_selon_headers()

Retrouver une extension de fichier depuis les headers

distant_trouver_extension_selon_headers(string $source, string $headers) : false|string
Parameters
$source : string
$headers : string
Return values
false|string

need_proxy()

Tester si un host peut etre recuperer directement ou doit passer par un proxy

need_proxy(string $host[, string $http_proxy = null ][, string $http_noproxy = null ]) : string

On peut passer en parametre le proxy et la liste des host exclus, pour les besoins des tests, lors de la configuration

Parameters
$host : string
$http_proxy : string = null
$http_noproxy : string = null
Return values
string

init_http()

Initialise une requete HTTP avec entetes

init_http(string $method, string $url[, bool $refuse_gz = false ][, string $referer = '' ][, string $datas = '' ][, string $vers = 'HTTP/1.0' ][, string $date = '' ]) : array<string|int, mixed>

Décompose l'url en son schema+host+path+port et lance la requete. Retourne le descripteur sur lequel lire la réponse.

Parameters
$method : string

HEAD, GET, POST

$url : string
$refuse_gz : bool = false
$referer : string = ''
$datas : string = ''
$vers : string = 'HTTP/1.0'
$date : string = ''
Tags
uses
lance_requete()
used-by
recuperer_url()
Return values
array<string|int, mixed>

lance_requete()

Lancer la requete proprement dite

lance_requete(string $method, string $scheme, array<string|int, mixed> $user, string $host, string $path, string $port, bool $noproxy[, bool $refuse_gz = false ][, string $referer = '' ][, string $datas = '' ][, string $vers = 'HTTP/1.0' ][, int|string $date = '' ]) : bool|resource
Parameters
$method : string

type de la requete (GET, HEAD, POST...)

$scheme : string

protocole (http, tls, ftp...)

$user : array<string|int, mixed>

couple (utilisateur, mot de passe) en cas d'authentification http

$host : string

nom de domaine

$path : string

chemin de la page cherchee

$port : string

port utilise pour la connexion

$noproxy : bool

protocole utilise si requete sans proxy

$refuse_gz : bool = false

refuser la compression GZ

$referer : string = ''

referer

$datas : string = ''

donnees postees

$vers : string = 'HTTP/1.0'

version HTTP

$date : int|string = ''

timestamp pour entente If-Modified-Since

Tags
used-by
init_http()
Return values
bool|resource

false|int si echec resource socket vers l'url demandee

set_spip_doc()

Donne le chemin du fichier relatif à `_DIR_IMG` pour stockage 'tel quel' dans la base de données

set_spip_doc(string $fichier) : string
Parameters
$fichier : string
Tags
uses
_DIR_IMG
Return values
string

get_spip_doc()

Donne le chemin complet du fichier

get_spip_doc(string $fichier) : bool|string
Parameters
$fichier : string
Tags
uses
_DIR_IMG
Return values
bool|string

effacer_repertoire_temporaire()

Efface le répertoire de manière récursive !

effacer_repertoire_temporaire(string $nom) : mixed
Parameters
$nom : string

copier_document()

Copier un document `$source` dans un dossier `IMG/$ext/$orig.$ext` ou `IMG/$subdir/$orig.$ext` si `$subdir` est fourni en numérotant éventuellement si un fichier de même nom existe déjà

copier_document(string $ext, string $orig, string $source[, string $subdir = null ]) : bool|mixed|string
Parameters
$ext : string
$orig : string
$source : string
$subdir : string = null
Return values
bool|mixed|string

deplacer_fichier_upload()

Déplacer ou copier un fichier

deplacer_fichier_upload(string $source, string $dest[, bool $move = false ]) : bool|mixed|string
Parameters
$source : string

Fichier source à copier

$dest : string

Fichier de destination

$move : bool = false
  • true : on déplace le fichier source vers le fichier de destination
  • false : valeur par défaut. On ne fait que copier le fichier source vers la destination.
Tags
uses
_DIR_RACINE
uses
spip_unlink()
Return values
bool|mixed|string

check_upload_error()

Erreurs d'upload

check_upload_error(int $error[, string $msg = '' ][, bool $return = false ]) : bool|string

Renvoie false si pas d'erreur et true s'il n'y a pas de fichier à uploader. Pour les autres erreurs, on affiche le message d'erreur et on arrête l'action.

Parameters
$error : int
$msg : string = ''
$return : bool = false
Tags
link

Explication sur les messages d'erreurs de chargement de fichiers.

uses
propre()
uses
minipres()
global

string $spip_lang_right

Return values
bool|string

corriger_extension()

Corrige l'extension du fichier dans quelques cas particuliers

corriger_extension(string $ext) : string
Parameters
$ext : string
Tags
note

Une extension 'pdf ' passe dans la requête de contrôle mysql> SELECT * FROM spip_types_documents WHERE extension="pdf ";

todo

À passer dans base/typedoc

Return values
string

lire_tableau_edition()

Retourne le tableau des éléments édités en cours après avoir supprimé les éléments trop vieux (de plus d'une heure) du tableau.

lire_tableau_edition() : array<string|int, mixed>
Tags
uses
ecrire_tableau_edition()
used-by
liste_drapeau_edition()
used-by
debloquer_tous()
used-by
debloquer_edition()
Return values
array<string|int, mixed>

Tableau des éléments édités actuellement, par objet et auteur, du type : [ type d'objet ][id_objet][id_auteur][nom de l'auteur] = time()

signale_edition()

Signale qu'un auteur édite tel objet

signale_edition(int $id, array<string|int, mixed> $auteur[, string $type = 'article' ]) : mixed

Si l'objet est non éditable dans l'espace privé, ne pas retenir le signalement qui correspond à un process unique.

Parameters
$id : int

Identifiant de l'objet

$auteur : array<string|int, mixed>

Session de l'auteur

$type : string = 'article'

Type d'objet édité

Tags
see
lire_tableau_edition()
see
ecrire_tableau_edition()
used-by
liste_objets_bloques()

qui_edite()

Qui édite mon objet ?

qui_edite(int $id[, string $type = 'article' ]) : array<string|int, mixed>
Parameters
$id : int

Identifiant de l'objet

$type : string = 'article'

Type de l'objet

Tags
see
lire_tableau_edition()
Return values
array<string|int, mixed>

Tableau sous la forme ["id_auteur"]["nom de l'auteur"] = time()

mention_qui_edite()

Afficher les auteurs ayant édités récemment l'objet.

mention_qui_edite(int $id[, string $type = 'article' ]) : array<string, string>
Parameters
$id : int

Identifiant de l'objet

$type : string = 'article'

Type de l'objet

Return values
array<string, string>

Liste de tableaux ['nom_auteur_modif' => x|y|z, 'date_diff' => n]

liste_drapeau_edition()

Quels sont les objets en cours d'édition par `$id_auteur` ?

liste_drapeau_edition(int $id_auteur) : array<string|int, mixed>
Parameters
$id_auteur : int

Identifiant de l'auteur

Tags
uses
lire_tableau_edition()
used-by
liste_objets_bloques()
Return values
array<string|int, mixed>

Liste de tableaux ['objet' => x, 'id_objet' => n]

formulaires_editer_objet_traiter()

Effectue les traitements d'un formulaire d'édition d'objet éditorial

formulaires_editer_objet_traiter(string $type[, int|string $id = 'new' ][, int $id_parent = 0 ][, int $lier_trad = 0 ][, string $retour = '' ][, string $config_fonc = 'articles_edit_config' ][, array<string|int, mixed> $row = [] ][, string $hidden = '' ]) : array<string|int, mixed>

Exécute une action d'édition spécifique au type d'objet s'il elle existe (fonction action_editer_$type), sinon exécute l'action générique d'édition d'objet (action_editer_objet_dist())

Si une traduction était demandée, crée le lien avec l'objet qui est traduit.

Parameters
$type : string

Type d'objet

$id : int|string = 'new'

Identifiant de l'objet à éditer, 'new' pour un nouvel objet

$id_parent : int = 0

Identifiant de l'objet parent

$lier_trad : int = 0

Identifiant de l'objet servant de source à une nouvelle traduction

$retour : string = ''

URL de redirection après les traitements

$config_fonc : string = 'articles_edit_config'

Nom de fonction appelée au chargement permettant d'ajouter des valeurs de configurations dans l'environnement du formulaire

$row : array<string|int, mixed> = []

Ligne SQL de l'objet édité, si connu. En absence, les données sont chargées depuis l'objet en base s'il existe ou depuis l'objet source d'une traduction si c'est un nouvel objet (et une traduction).

$hidden : string = ''

Contenu HTML ajouté en même temps que les champs cachés (input hidden) du formulaire.

Tags
see
action_editer_objet_dist()
used-by
formulaires_editer_article_traiter_dist()
Return values
array<string|int, mixed>

Retour des traitements.

formulaires_editer_objet_verifier()

Teste les erreurs de validation d'un formulaire d'édition d'objet éditorial

formulaires_editer_objet_verifier(string $type[, int|string $id = 'new' ][, array<string|int, mixed> $oblis = [] ]) : array<string|int, mixed>

La fonction teste que :

  • il n'y a pas de conflit d'édition sur un ou plusieurs champs (c'est à dire que personne d'autre n'a modifié le champ entre le moment où on a saisi et le moment où on a validé le formulaire
  • tous les champs obligatoires (listés dans $oblis) sont remplis.
Parameters
$type : string

Type d'objet

$id : int|string = 'new'

Identifiant de l'objet à éditer, 'new' pour un nouvel objet

$oblis : array<string|int, mixed> = []

Liste de champs obligatoires : ils doivent avoir un contenu posté.

Return values
array<string|int, mixed>

Tableau des erreurs

formulaires_editer_objet_charger()

Construit les valeurs de chargement d'un formulaire d'édition d'objet éditorial

formulaires_editer_objet_charger(string $type[, int|string $id = 'new' ][, int|null $id_parent = 0 ][, int $lier_trad = 0 ][, string $retour = '' ][, string $config_fonc = 'articles_edit_config' ][, array<string|int, mixed> $row = [] ][, string $hidden = '' ]) : array<string|int, mixed>

La fonction calcule les valeurs qui seront transmises à l'environnement du formulaire pour son affichage. Ces valeurs sont les champs de l'objet éditorial d'une part, mais aussi d'autres calculant la clé d'action, les pipelines devant faire transiter le contenu HTML du formulaire, ainsi que différents champs cachés utilisés ensuite dans les traitements.

Lorsqu'une création d'objet est demandée, ou lorsqu'on demande une traduction d'un autre, la fonction tente de précharger le contenu de l'objet en utilisant une fonction inc_precharger_{type}_dist permettant par exemple de remplir le contenu avec du texte, notamment avec la traduction source.

Parameters
$type : string

Type d'objet

$id : int|string = 'new'

Identifiant de l'objet à éditer, 'new' pour un nouvel objet

$id_parent : int|null = 0

Identifiant de l'objet parent Si null, le calcule d’après le contexte.

$lier_trad : int = 0

Identifiant de l'objet servant de source à une nouvelle traduction

$retour : string = ''

URL de redirection après les traitements

$config_fonc : string = 'articles_edit_config'

Nom de fonction appelée au chargement permettant d'ajouter des valeurs de configurations dans l'environnement du formulaire

$row : array<string|int, mixed> = []

Ligne SQL de l'objet édité, si connu. En absence, les données sont chargées depuis l'objet en base s'il existe ou depuis l'objet source d'une traduction si c'est un nouvel objet (et une traduction).

$hidden : string = ''

Contenu HTML ajouté en même temps que les champs cachés (input hidden) du formulaire.

Return values
array<string|int, mixed>

Environnement du formulaire.

coupe_trop_long()

Gestion des textes trop longs (limitation brouteurs) utile pour les textes > 32ko

coupe_trop_long(string $texte) : array<string|int, mixed>
Parameters
$texte : string
Return values
array<string|int, mixed>

titre_automatique()

auto-renseigner le titre si il n'existe pas

titre_automatique(string $champ_titre, array<string|int, mixed> $champs_contenu[, int $longueur = null ]) : mixed
Parameters
$champ_titre : string
$champs_contenu : array<string|int, mixed>
$longueur : int = null

inc_titrer_contenu_dist()

Déterminer un titre automatique, à partir des champs textes de contenu

inc_titrer_contenu_dist(array<string|int, mixed> $champs_contenu[, array<string|int, mixed>|null $c = null ][, int $longueur = 50 ]) : string

Les textes et le titre sont pris dans les champs postés (via _request()) et le titre calculé est de même affecté en tant que champ posté.

Parameters
$champs_contenu : array<string|int, mixed>

Liste des champs contenu textuels

$c : array<string|int, mixed>|null = null

tableau qui contient les valeurs des champs de contenu si null on utilise les valeurs du POST

$longueur : int = 50

Longueur de coupe du texte

Return values
string

controles_md5()

Calcule des clés de contrôles md5 d'un tableau de données.

controles_md5(array<string|int, mixed> $data[, string $prefixe = 'ctr_' ][, string $format = 'html' ]) : string|array<string|int, mixed>

Produit la liste des md5 d'un tableau de données, normalement un tableau des colonnes/valeurs d'un objet éditorial.

Parameters
$data : array<string|int, mixed>

Couples (colonne => valeur). La valeur est un entier ou un texte.

$prefixe : string = 'ctr_'

Préfixe à appliquer sur les noms des clés de contrôles, devant le nom de la colonne

$format : string = 'html'
  • html : Retourne les contrôles sous forme de input hidden pour un formulaire
  • autre : Retourne le tableau ('$prefixe$colonne => md5)
Return values
string|array<string|int, mixed>
  • string (avec format html) : contrôles dans des input hidden
  • array sinon couples ('$prefixe$colonne => md5)

controler_contenu()

Contrôle les contenus postés d'un objet en vérifiant qu'il n'y a pas de conflit d'édition

controler_contenu(string $type, int $id[, array<string|int, mixed> $options = [] ][, array<string|int, mixed>|bool $c = false ][, string $serveur = '' ]) : bool|null|array<string|int, mixed>

Repère les conflits d'édition sur un ou plusieurs champs. C'est à dire lorsqu'une autre personne a modifié le champ entre le moment où on a édité notre formulaire et le moment où on a validé le formulaire

Parameters
$type : string

Type d'objet

$id : int

Identifiant de l'objet

$options : array<string|int, mixed> = []

Tableau d'options. Accèpte les index :

  • nonvide : Couples (colonne => valeur par défaut). Tous les champs postés qui sont vides, s'il y en a dans cette option, sont remplacés par la valeur indiquée
  • prefix : Préfixe des clés de contrôles ('ctr_' par défaut). Une clé de controle tel que 'ctr_titre' contient le md5 du titre au moment de l'édition.
$c : array<string|int, mixed>|bool = false

Tableau de couples (colonne=>valeur) à tester. Non renseigné, la fonction prend toutes les colonne de l'objet via _request()

$serveur : string = ''

Nom du connecteur de base de données

Return values
bool|null|array<string|int, mixed>

False si aucun champ posté. Null si aucune modification sur les champs. Tableau vide si aucun de conflit d'édition. Tableau (clé => tableau du conflit). L'index est la colonne en conflit, la valeur un tableau avec 2 index :

  • base : le contenu du champ en base
  • post : le contenu posté

controler_md5()

Contrôle la liste des md5 envoyés, supprime les inchangés, signale les modifiés depuis telle date

controler_md5(array<string|int, mixed> &$champs, array<string|int, mixed> $ctr, string $type, int $id, string $serveur[, string $prefix = 'ctr_' ]) : null|array<string|int, mixed>
Parameters
$champs : array<string|int, mixed>

Couples des champs saisis dans le formulaire (colonne => valeur postée)

$ctr : array<string|int, mixed>

Tableau contenant les clés de contrôles. Couples (clé => md5)

$type : string

Type d'objet

$id : int

Identifiant de l'objet

$serveur : string

Nom du connecteur de base de données

$prefix : string = 'ctr_'

Préfixe des clés de contrôles : le nom du champ est préfixé de cette valeur dans le tableau $ctr pour retrouver son md5.

Return values
null|array<string|int, mixed>

Null si aucun champ ou aucune modification sur les champs Tableau vide si aucune erreur de contrôle. Tableau (clé => tableau du conflit). L'index est la colonne en conflit, la valeur un tableau avec 2 index :

  • base : le contenu du champ en base
  • post : le contenu posté

display_conflit_champ()

Afficher le contenu d'un champ selon sa longueur soit dans un `textarea`, soit dans un `input`

display_conflit_champ(string $x) : string
Parameters
$x : string

texte à afficher

Return values
string

inc_email_valide_dist()

Vérifier la conformité d'une ou plusieurs adresses email (suivant RFC 822)

inc_email_valide_dist(string $adresses) : bool|string
Parameters
$adresses : string

Adresse ou liste d'adresse (separees pas des virgules)

Return values
bool|string
  • false si une des adresses n'est pas conforme,
  • la normalisation de la dernière adresse donnée sinon

nettoyer_caracteres_mail()

Utiliser le bon encodage de caractères selon le charset

nettoyer_caracteres_mail(string $t) : string

Caractères pris en compte : apostrophe, double guillemet, le tiret cadratin, le tiret demi-cadratin

Parameters
$t : string
Tags
uses
filtrer_entites()
Return values
string

inc_envoyer_mail_dist()

Envoi d'un mail

inc_envoyer_mail_dist(string $destinataire, string $sujet, string|array<string|int, mixed> $corps[, string $from = '' ][, string $headers = '' ]) : bool
Parameters
$destinataire : string
$sujet : string
$corps : string|array<string|int, mixed>
  • au format string, c'est un corps d'email au format texte, comme supporte nativement par le core
  • au format array, c'est un corps etendu qui peut contenir
    • string texte : le corps d'email au format texte
    • string from : email de l'envoyeur (prioritaire sur argument $from de premier niveau, deprecie)
    • array headers : tableau d'en-tetes personalises, une entree par ligne d'en-tete --- Support partiel par une fonction mail_embarquer_pieces_jointes a fournir, --- --- chargee de convertir en texte encodee les pieces jointes ---
    • array pieces_jointes : listes de pieces a embarquer dans l'email, chacune au format array :
      • string chemin : chemin file system pour trouver le fichier a embarquer
      • string nom : nom du document tel qu'apparaissant dans l'email
      • string encodage : encodage a utiliser, parmi 'base64', '7bit', '8bit', 'binary', 'quoted-printable'
      • string mime : mime type du document --- Non implemente ici ---
    • string html : le corps d'email au format html
    • string nom_envoyeur : un nom d'envoyeur pour completer l'email from
    • string cc : destinataires en copie conforme
    • string bcc : destinataires en copie conforme cachee
    • string adresse_erreur : addresse de retour en cas d'erreur d'envoi
$from : string = ''

(deprecie, utiliser l'entree from de $corps)

$headers : string = ''

(deprecie, utiliser l'entree headers de $corps)

Return values
bool

mail_normaliser_headers()

Formater correctement l'entête d'un email

mail_normaliser_headers(string $headers, string $from, string $to, string $texte[, string $parts = '' ]) : array<string|int, mixed>
Parameters
$headers : string
$from : string
$to : string
$texte : string
$parts : string = ''
Return values
array<string|int, mixed>

exporter_csv_champ()

Exporter un champ pour un export CSV : pas de retour a la ligne, et echapper les guillements par des doubles guillemets

exporter_csv_champ(string $champ) : string
Parameters
$champ : string
Return values
string

exporter_csv_ligne_numerotee()

Exporter une ligne complete au format CSV, avec delimiteur fourni

exporter_csv_ligne_numerotee(int $nb, array<string|int, mixed> $ligne[, string $delim = ',' ][, string|null $importer_charset = null ][, callable $callback = null ]) : string
Parameters
$nb : int
$ligne : array<string|int, mixed>
$delim : string = ','
$importer_charset : string|null = null

Si défini exporte dans le charset indiqué

$callback : callable = null
Tags
uses
exporter_csv_champ()
Return values
string

inc_exporter_csv_dist()

Exporte une ressource sous forme de fichier CSV

inc_exporter_csv_dist(string $titre, array<string|int, mixed>|resource $resource[, array<string|int, mixed> $options = [] ]) : string

La ressource peut etre un tableau ou une resource SQL issue d'une requete Le nom du fichier est défini en fonction du titre s'il n'est pas indiqué dans les options. L'extension est choisie en fonction du délimiteur si elle n'est pas indiquée dans les options :

  • si on utilise ',' c'est un vrai csv avec extension csv
  • si on utilise ';' ou tabulation c'est pour E*cel, et on exporte en iso-truc, avec une extension .xls
Parameters
$titre : string

Titre utilisé pour nommer le fichier si celui-ci n'est pas indiqué dans les options Il peut s'agir d'un texte contenant de la syntaxe SPIP

$resource : array<string|int, mixed>|resource
$options : array<string|int, mixed> = []
  • (string) fichier : nom du fichier, par défaut défini en fonction du $titre
  • (string) extension : csv | xls, par défaut choisie en fonction du délimiteur
  • (string) delim : , | ; | \t | TAB
  • (array) entetes : tableau d'en-tetes pour nommer les colonnes (genere la premiere ligne)
  • (bool) envoyer : pour envoyer le fichier exporte (permet le telechargement)
  • (string) charset : charset de l'export si different de celui du site
  • (callable) callback : fonction callback a appeler sur chaque ligne pour mettre en forme/completer les donnees
Return values
string

charger_filtre()

Charger un filtre depuis le php

charger_filtre(string $fonc[, string $default = 'filtre_identite_dist' ]) : string
  • on inclue tous les fichiers fonctions des plugins et du skel
  • on appelle chercher_filtre

Pour éviter de perdre le texte si le filtre demandé est introuvable, on transmet filtre_identite_dist en filtre par défaut.

Parameters
$fonc : string

Nom du filtre

$default : string = 'filtre_identite_dist'

Filtre par défaut

Tags
uses
filtre_identite_dist()

Comme fonction par défaut

Return values
string

Fonction PHP correspondante du filtre

filtre_identite_dist()

Retourne le texte tel quel

filtre_identite_dist(string $texte) : string
Parameters
$texte : string

texte

Tags
used-by
charger_filtre()

Comme fonction par défaut

Return values
string

texte

chercher_filtre()

Cherche un filtre

chercher_filtre(string $fonc[, string|null $default = null ]) : string

Pour une filtre F retourne la première fonction trouvée parmis :

  • filtre_F
  • filtre_F_dist
  • F

Peut gérer des appels par des fonctions statiques de classes tel que Foo::Bar

En absence de fonction trouvée, retourne la fonction par défaut indiquée.

Parameters
$fonc : string

Nom du filtre

$default : string|null = null

Nom du filtre appliqué par défaut si celui demandé n'est pas trouvé

Return values
string

Fonction PHP correspondante du filtre demandé

appliquer_filtre()

Applique un filtre s'il existe, sinon retourne une chaîne vide

appliquer_filtre(mixed $arg, string $filtre) : string

Fonction générique qui prend en argument l’objet (texte, etc) à modifier et le nom du filtre.

  • À la différence de la fonction filtrer(), celle-ci ne lève pas d'erreur de squelettes si le filtre n'est pas trouvé.
  • À la différence de la fonction appliquer_si_filtre() le contenu d'origine n'est pas retourné si le filtre est absent.

Les arguments supplémentaires transmis à cette fonction sont utilisés comme arguments pour le filtre appelé.

Parameters
$arg : mixed

texte (le plus souvent) sur lequel appliquer le filtre

$filtre : string

Nom du filtre à appliquer

Tags
example
[(#BALISE|appliquer_filtre{nom_du_filtre})]
[(#BALISE|appliquer_filtre{nom_du_filtre, arg1, arg2, ...})]

// Applique le filtre minifier si on le trouve :
// - Ne retourne rien si le filtre 'minifier' n'est pas trouvé
[(#INCLURE{fichier.js}|appliquer_filtre{minifier, js})]

// - Retourne le contenu du fichier.js si le filtre n'est pas trouvé.
[(#INCLURE{fichier.js}|appliquer_si_filtre{minifier, js})]
filtre
see
filtrer()

Génère une erreur si le filtre est absent

see
appliquer_si_filtre()

Proche : retourne le texte d'origine si le filtre est absent

uses
appliquer_filtre_sinon()
Return values
string

texte traité par le filtre si le filtre existe, Chaîne vide sinon.

appliquer_si_filtre()

Applique un filtre s'il existe, sinon retourne le contenu d'origine sans modification

appliquer_si_filtre(mixed $arg, string $filtre) : string

Se référer à appliquer_filtre() pour les détails.

Parameters
$arg : mixed

texte (le plus souvent) sur lequel appliquer le filtre

$filtre : string

Nom du filtre à appliquer

Tags
example
[(#INCLURE{fichier.js}|appliquer_si_filtre{minifier, js})]
filtre
see
appliquer_filtre()

Proche : retourne vide si le filtre est absent

uses
appliquer_filtre_sinon()
Return values
string

texte traité par le filtre si le filtre existe, texte d'origine sinon

spip_version()

Retourne la version de SPIP

spip_version() : string

Si l'on retrouve un numéro de révision GIT ou SVN, il est ajouté entre crochets. Si effectivement le SPIP est installé par Git ou Svn, 'GIT' ou 'SVN' est ajouté avant sa révision.

Tags
global

string $spip_version_affichee Contient la version de SPIP

uses
version_vcs_courante()

Pour trouver le numéro de révision

Return values
string

Version de SPIP

header_silencieux()

Masque la version de SPIP si la globale spip_header_silencieux le demande.

header_silencieux(string $version) : string
Parameters
$version : string
Tags
global

bool $spip_header_silencieux permet de rendre le header minimal pour raisons de securité

Return values
string

version_vcs_courante()

Retourne une courte description d’une révision VCS d’un répertoire

version_vcs_courante(string $dir[, array<string|int, mixed> $raw = false ]) : mixed
Parameters
$dir : string

Le répertoire à tester

$raw : array<string|int, mixed> = false

True pour avoir les données brutes, false pour un texte à afficher

Tags
retun

string|array|null

  • array|null si $raw = true,
  • string|null si $raw = false
used-by
spip_version()

Pour trouver le numéro de révision

decrire_version_git()

Retrouve un numéro de révision Git d'un répertoire

decrire_version_git(string $dir) : array<string|int, mixed>|null
Parameters
$dir : string

Chemin du répertoire

Return values
array<string|int, mixed>|null

null si aucune info trouvée array ['branch' => xx, 'commit' => yy] sinon.

filtrer()

Charge et exécute un filtre (graphique ou non)

filtrer(string $filtre) : string

Recherche la fonction prévue pour un filtre (qui peut être un filtre graphique image_*) et l'exécute avec les arguments transmis à la fonction, obtenus avec func_get_args()

Parameters
$filtre : string

Nom du filtre à appliquer

Tags
uses
image_filtrer()

Pour un filtre image

uses
chercher_filtre()

Pour un autre filtre

Return values
string

Code HTML retourné par le filtre

trouver_filtre_matrice()

Cherche un filtre spécial indiqué dans la globale `spip_matrice` et charge le fichier éventuellement associé contenant le filtre.

trouver_filtre_matrice(string $filtre) : bool

Les filtres d'images par exemple sont déclarés de la sorte, tel que :

$GLOBALS['spip_matrice']['image_reduire'] = true;
$GLOBALS['spip_matrice']['image_monochrome'] = 'filtres/images_complements.php';
Parameters
$filtre : string
Return values
bool

true si on trouve le filtre dans la matrice, false sinon.

filtre_set()

Filtre `set` qui sauve la valeur en entrée dans une variable

filtre_set(array<string|int, mixed> &$Pile, mixed $val, string $key[, bool $continue = null ]) : mixed

La valeur pourra être retrouvée avec #GET{variable}.

Parameters
$Pile : array<string|int, mixed>

Pile de données

$val : mixed

Valeur à sauver

$key : string

Clé d'enregistrement

$continue : bool = null

True pour retourner la valeur

Tags
example

[(#CALCUL|set{toto})] enregistre le résultat de #CALCUL dans la variable toto et renvoie vide. C'est équivalent à [(#SET{toto, #CALCUL})] dans ce cas. #GET{toto} retourne la valeur sauvegardée.

example

[(#CALCUL|set{toto,1})] enregistre le résultat de #CALCUL dans la variable toto et renvoie la valeur. Cela permet d'utiliser d'autres filtres ensuite. #GET{toto} retourne la valeur.

filtre

filtre_setenv()

Filtre `setenv` qui enregistre une valeur dans l'environnement du squelette

filtre_setenv(array<string|int, mixed> &$Pile, mixed $val, mixed $key[, null|mixed $continue = null ]) : string|mixed

La valeur pourra être retrouvée avec #ENV{variable}.

Parameters
$Pile : array<string|int, mixed>
$val : mixed

Valeur à enregistrer

$key : mixed

Nom de la variable

$continue : null|mixed = null

Si présent, retourne la valeur en sortie

Tags
example

[(#CALCUL|setenv{toto})] enregistre le résultat de #CALCUL dans l'environnement toto et renvoie vide. #ENV{toto} retourne la valeur.

[(#CALCUL|setenv{toto,1})] enregistre le résultat de #CALCUL dans l'environnement toto et renvoie la valeur. #ENV{toto} retourne la valeur.

filtre
Return values
string|mixed

Retourne $val si $continue présent, sinon ''.

filtre_sanitize_env()

filtre_sanitize_env(array<string|int, mixed> &$Pile, array<string|int, mixed>|string $keys) : string
Parameters
$Pile : array<string|int, mixed>
$keys : array<string|int, mixed>|string
Return values
string

filtre_debug()

Filtre `debug` qui affiche un debug de la valeur en entrée

filtre_debug(mixed $val[, mixed|null $key = null ]) : mixed

Log la valeur dans debug.log et l'affiche si on est webmestre.

Parameters
$val : mixed

La valeur à debugguer

$key : mixed|null = null

Clé pour s'y retrouver

Tags
example

[(#TRUC|debug)] affiche et log la valeur de #TRUC

example

[(#TRUC|debug{avant}|calcul|debug{apres}|etc)] affiche la valeur de #TRUC avant et après le calcul, en précisant "avant" et "apres".

filtre
link
https://www.spip.net/5695
Return values
mixed

Retourne la valeur (sans la modifier).

image_filtrer()

Exécute un filtre image

image_filtrer(array<string|int, mixed> $args) : string

Fonction générique d'entrée des filtres images. Accepte en entrée :

  • un texte complet,
  • un img-log (produit par #LOGO_XX),
  • un tag <img ...> complet,
  • un nom de fichier local (passer le filtre |copie_locale si on veut l'appliquer à un document distant).

Applique le filtre demande à chacune des occurrences

Parameters
$args : array<string|int, mixed>

Liste des arguments :

  • le premier est le nom du filtre image à appliquer
  • le second est le texte sur lequel on applique le filtre
  • les suivants sont les arguments du filtre image souhaité.
Tags
used-by
filtrer()

Pour un filtre image

Return values
string

texte qui a reçu les filtres

infos_image()

Retourne les informations d'une image

infos_image(string $img[, mixed $force_refresh = false ]) : array<string|int, mixed>

Pour les filtres largeur et hauteur taille_image et poids_image

Parameters
$img : string

Balise HTML <img ... /> ou chemin de l'image (qui peut être une URL distante).

$force_refresh : mixed = false
Return values
array<string|int, mixed>

largeur hauteur poids

poids_image()

Retourne les dimensions d'une image

poids_image(string $img[, mixed $force_refresh = false ]) : array<string|int, mixed>

Pour les filtres largeur et hauteur

Parameters
$img : string

Balise HTML <img ... /> ou chemin de l'image (qui peut être une URL distante).

$force_refresh : mixed = false
Return values
array<string|int, mixed>

largeur hauteur poids

taille_image()

taille_image(mixed $img[, mixed $force_refresh = false ]) : mixed
Parameters
$img : mixed
$force_refresh : mixed = false

largeur()

Retourne la largeur d'une image

largeur(string $img) : int|null
Parameters
$img : string

Balise HTML <img ... /> ou chemin de l'image (qui peut être une URL distante).

Tags
filtre
link
https://www.spip.net/4296
uses
taille_image()
see
hauteur()
Return values
int|null

Largeur en pixels, NULL ou 0 si aucune image.

hauteur()

Retourne la hauteur d'une image

hauteur(string $img) : int|null
Parameters
$img : string

Balise HTML <img ... /> ou chemin de l'image (qui peut être une URL distante).

Tags
filtre
link
https://www.spip.net/4291
uses
taille_image()
see
largeur()
Return values
int|null

Hauteur en pixels, NULL ou 0 si aucune image.

corriger_entites_html()

Échappement des entités HTML avec correction des entités « brutes »

corriger_entites_html(string $texte) : string

Ces entités peuvent être générées par les butineurs lorsqu'on rentre des caractères n'appartenant pas au charset de la page [iso-8859-1 par défaut]

Attention on limite cette correction aux caracteres « hauts » (en fait > 99 pour aller plus vite que le > 127 qui serait logique), de manière à préserver des eéhappements de caractères « bas » (par exemple [ ou ") et au cas particulier de &amp; qui devient &amp;amp; dans les URL

Parameters
$texte : string
Tags
see
corriger_toutes_entites_html()
used-by
entites_html()
Return values
string

corriger_toutes_entites_html()

Échappement des entités HTML avec correction des entités « brutes » ainsi que les `&amp;eacute;` en `&eacute;`

corriger_toutes_entites_html(string $texte) : string

Identique à corriger_entites_html() en corrigeant aussi les &amp;eacute; en &eacute;

Parameters
$texte : string
Tags
see
corriger_entites_html()
used-by
entites_html()
Return values
string

proteger_amp()

Échappe les `&` en `&amp;`

proteger_amp(string $texte) : string
Parameters
$texte : string
Return values
string

entites_html()

Échappe en entités HTML certains caractères d'un texte

entites_html(string $texte[, bool $tout = false ][, bool $quote = true ]) : mixed|string

Traduira un code HTML en transformant en entités HTML les caractères en dehors du charset de la page ainsi que les ", < et >.

Ceci permet d’insérer le texte d’une balise dans un <textarea> </textarea> sans dommages.

Parameters
$texte : string

chaine a echapper

$tout : bool = false

corriger toutes les &amp;xx; en &xx;

$quote : bool = true

Échapper aussi les simples quotes en &#039;

Tags
filtre
link
https://www.spip.net/4280
uses
echappe_html()
uses
echappe_retour()
uses
proteger_amp()
uses
corriger_entites_html()
uses
corriger_toutes_entites_html()
used-by
vider_url()
Return values
mixed|string

supprimer_caracteres_illegaux()

Supprime des caractères illégaux

supprimer_caracteres_illegaux(string|array<string|int, mixed> $texte) : string|array<string|int, mixed>

Remplace les caractères de controle par le caractère -

Parameters
$texte : string|array<string|int, mixed>
Tags
link
http://www.w3.org/TR/REC-xml/#charsets
Return values
string|array<string|int, mixed>

corriger_caracteres()

Correction de caractères

corriger_caracteres(string|array<string|int, mixed> $texte) : string|array<string|int, mixed>

Supprimer les caracteres windows non conformes et les caracteres de controle illégaux

Parameters
$texte : string|array<string|int, mixed>
Tags
used-by
translitteration()
used-by
corriger_typo()
used-by
corriger_typo()
Return values
string|array<string|int, mixed>

texte_backend()

Encode du HTML pour transmission XML notamment dans les flux RSS

texte_backend(string|null $texte) : string

Ce filtre transforme les liens en liens absolus, importe les entitées html et échappe les tags html.

Parameters
$texte : string|null

texte à transformer

Tags
filtre
link
https://www.spip.net/4287
used-by
texte_backendq()
used-by
attribut_html()
Return values
string

texte encodé pour XML

texte_backendq()

Encode et quote du HTML pour transmission XML notamment dans les flux RSS

texte_backendq(string|null $texte) : string

Comme texte_backend(), mais avec addslashes final pour squelettes avec PHP (rss)

Parameters
$texte : string|null

texte à transformer

Tags
uses
texte_backend()
filtre
Return values
string

texte encodé et quote pour XML

supprimer_numero()

Enlève un numéro préfixant un texte

supprimer_numero(string|null $texte) : string

Supprime 10. dans la chaine 10. Titre

Parameters
$texte : string|null

Texte

Tags
filtre
link
https://www.spip.net/4314
see
recuperer_numero()

Pour obtenir le numéro

example
[<h1>(#TITRE|supprimer_numero)</h1>]
Return values
string

Texte sans son numéro éventuel

recuperer_numero()

Récupère un numéro préfixant un texte

recuperer_numero(string|null $texte) : string

Récupère le numéro 10 dans la chaine 10. Titre

Parameters
$texte : string|null

Texte

Tags
filtre
link
https://www.spip.net/5514
see
supprimer_numero()

Pour supprimer le numéro

see
balise_RANG_dist()

Pour obtenir un numéro de titre

example
[(#TITRE|recuperer_numero)]
Return values
string

Numéro de titre, sinon chaîne vide

supprimer_tags()

Suppression basique et brutale de tous les tags

supprimer_tags(string|array<string|int, mixed>|null $texte[, string $rempl = '' ]) : string|array<string|int, mixed>

Supprime tous les tags <...>. Utilisé fréquemment pour écrire des RSS.

Parameters
$texte : string|array<string|int, mixed>|null

texte ou tableau de textes à échapper

$rempl : string = ''

Inutilisé.

Tags
filtre
link
https://www.spip.net/4315
example
<title>[(#TITRE|supprimer_tags|texte_backend)]</title>
note

Ce filtre supprime aussi les signes inférieurs < rencontrés.

Return values
string|array<string|int, mixed>

texte ou tableau de textes converti

echapper_tags()

Convertit les chevrons de tag en version lisible en HTML

echapper_tags(string $texte[, string $rempl = '' ]) : string

Transforme les chevrons de tag <...> en entité HTML.

Parameters
$texte : string

texte à échapper

$rempl : string = ''

Inutilisé.

Tags
filtre
link
https://www.spip.net/5515
example
<pre>[(#TEXTE|echapper_tags)]</pre>
Return values
string

texte converti

liens_ouvrants()

Remplace les liens SPIP en liens ouvrant dans une nouvelle fenetre (target=blank)

liens_ouvrants(string $texte) : string
Parameters
$texte : string

texte avec des liens

Tags
filtre
link
https://www.spip.net/4297
Return values
string

texte avec liens ouvrants

liens_nofollow()

Ajouter un attribut rel="nofollow" sur tous les liens d'un texte

liens_nofollow(string $texte) : string
Parameters
$texte : string
Return values
string

PtoBR()

Transforme les sauts de paragraphe HTML `p` en simples passages à la ligne `br`

PtoBR(string $texte) : string
Parameters
$texte : string

texte à transformer

Tags
filtre
link
https://www.spip.net/4308
example
[<div>(#DESCRIPTIF|PtoBR)[(#NOTES|PtoBR)]</div>]
Return values
string

texte sans paraghaphes

majuscules()

Passe un texte en majuscules, y compris les accents, en HTML

majuscules(string $texte) : string

Encadre le texte du style CSS text-transform: uppercase;. Le cas spécifique du i turc est géré.

Parameters
$texte : string

texte

Tags
filtre
example
[(#EXTENSION|majuscules)]
Return values
string

texte en majuscule

taille_en_octets()

Renvoie une taille de dossier ou de fichier humainement lisible en ajustant le format et l'unité.

taille_en_octets(int $octets[, string $systeme = 'BI' ]) : string

La fonction renvoie la valeur et l'unité en fonction du système utilisé (binaire ou décimal).

Parameters
$octets : int

Taille d'un dossier ou fichier en octets

$systeme : string = 'BI'

Système d'unité dans lequel calculer et afficher la taille lisble. Vaut BI (défaut) ou SI.

Tags
example
  • [(#TAILLE|taille_en_octets)] affiche xxx.x Mio
  • [(#VAL{123456789}|taille_en_octets{BI})] affiche 117.7 Mio
  • [(#VAL{123456789}|taille_en_octets{SI})] affiche 123.5 Mo
filtre
Return values
string

Taille affichée de manière humainement lisible

attribut_html()

Rend une chaine utilisable sans dommage comme attribut HTML

attribut_html(string|null $texte[, bool $textebrut = true ]) : string
Parameters
$texte : string|null

texte à mettre en attribut

$textebrut : bool = true

Passe le texte en texte brut (enlève les balises html) ?

Tags
example

<a href="#URL_ARTICLE" title="[(#TITRE|attribut_html)]">#TITRE</a>

filtre
link
https://www.spip.net/4282
uses
textebrut()
uses
texte_backend()
used-by
inserer_attribut()
Return values
string

texte prêt pour être utilisé en attribut HTML

vider_url()

Vider les URL nulles

vider_url(string $url[, bool $entites = true ]) : string
  • Vide les URL vides comme http:// ou mailto: (sans rien d'autre)
  • échappe les entités et gère les &amp;
Parameters
$url : string

URL à vérifier et échapper

$entites : bool = true

true pour échapper les entités HTML.

Tags
uses
entites_html()
Return values
string

URL ou chaîne vide

antispam()

Maquiller une adresse e-mail

antispam(string $texte) : string

Remplace @ par 3 caractères aléatoires.

Parameters
$texte : string

Adresse email

Tags
uses
creer_pass_aleatoire()
Return values
string

Adresse email maquillée

filtre_securiser_acces_dist()

Vérifie un accès à faible sécurité

filtre_securiser_acces_dist(int $id_auteur, string $cle, string $dir[, string $op = '' ][, string $args = '' ]) : bool

Vérifie qu'un visiteur peut accéder à la page demandée, qui est protégée par une clé, calculée à partir du low_sec de l'auteur, et des paramètres le composant l'appel (op, args)

Parameters
$id_auteur : int

L'auteur qui demande la page

$cle : string

La clé à tester

$dir : string

Un type d'accès (nom du répertoire dans lequel sont rangés les squelettes demandés, tel que 'rss')

$op : string = ''

Nom de l'opération éventuelle

$args : string = ''

Nom de l'argument calculé

Tags
example

[(#ID_AUTEUR|securiser_acces{#ENV{cle}, rss, #ENV{op}, #ENV{args}}|sinon_interdire_acces)]

see
bouton_spip_rss()

pour générer un lien de faible sécurité pour les RSS privés

see
afficher_low_sec()

pour calculer une clé valide

uses
verifier_low_sec()
filtre
Return values
bool

True si on a le droit d'accès, false sinon.

sinon()

Retourne le second paramètre lorsque le premier est considere vide, sinon retourne le premier paramètre.

sinon(mixed $texte[, mixed $sinon = '' ]) : mixed

En php sinon($a, 'rien') retourne $a, ou 'rien' si $a est vide.

Parameters
$texte : mixed

Contenu de reference a tester

$sinon : mixed = ''

Contenu a retourner si le contenu de reference est vide

Tags
filtre
see
filtre_logique()

pour la compilation du filtre dans un squelette

link
https://www.spip.net/4313
note

L'utilisation de |sinon en tant que filtre de squelette est directement compilé dans public/references par la fonction filtre_logique()

Return values
mixed

Retourne $texte, sinon $sinon.

choixsivide()

Filtre `|choixsivide{vide, pas vide}` alias de `|?{si oui, si non}` avec les arguments inversés

choixsivide(mixed $a, mixed $vide, mixed $pasvide) : mixed
Parameters
$a : mixed

La valeur à tester

$vide : mixed

Ce qui est retourné si $a est considéré vide

$pasvide : mixed

Ce qui est retourné sinon

Tags
example

[(#TEXTE|choixsivide{vide, plein})] affiche vide si le #TEXTE est considéré vide par PHP (chaîne vide, false, 0, tableau vide, etc…). C'est l'équivalent de [(#TEXTE|?{plein, vide})]

filtre
see
choixsiegal()
link
https://www.spip.net/4189

choixsiegal()

Filtre `|choixsiegal{valeur, sioui, sinon}`

choixsiegal(mixed $a1, mixed $a2, mixed $v, mixed $f) : mixed
Parameters
$a1 : mixed

La valeur à tester

$a2 : mixed

La valeur de comparaison

$v : mixed

Ce qui est retourné si la comparaison est vraie

$f : mixed

Ce qui est retourné sinon

Tags
example

#LANG_DIR|choixsiegal{ltr,left,right} retourne left si #LANG_DIR vaut ltr et right sinon.

filtre
link
https://www.spip.net/4148

filtrer_ical()

Adapte un texte pour être inséré dans une valeur d'un export ICAL

filtrer_ical(string $texte) : string

Passe le texte en utf8, enlève les sauts de lignes et échappe les virgules.

Parameters
$texte : string
Tags
example

SUMMARY:[(#TITRE|filtrer_ical)]

filtre
Return values
string

post_autobr()

Transforme les sauts de ligne simples en sauts forcés avec `_ `

post_autobr(string $texte[, string $delim = " _ " ]) : string

Ne modifie pas les sauts de paragraphe (2 sauts consécutifs au moins), ou les retours à l'intérieur de modèles ou de certaines balises html.

Parameters
$texte : string
$delim : string = " _ "

Ce par quoi sont remplacés les sauts

Tags
note

Cette fonction pouvait être utilisée pour forcer les alinéas, (retours à la ligne sans saut de paragraphe), mais ce traitement est maintenant automatique. Cf. plugin Textwheel et la constante _AUTOBR

uses
echappe_html()
uses
echappe_retour()
Return values
string

extraire_idiome()

Extrait une langue des extraits idiomes (`<:module:cle_de_langue:>`)

extraire_idiome(string $letexte[, string $lang = null ][, array<string|int, mixed> $options = [] ]) : string

Retrouve les balises <:cle_de_langue:> d'un texte et remplace son contenu par l'extrait correspondant à la langue demandée (si possible), sinon dans la langue par défaut du site.

Ne pas mettre de span@lang=fr si on est déjà en fr.

Parameters
$letexte : string
$lang : string = null

Langue à retrouver (si vide, utilise la langue en cours).

$options : array<string|int, mixed> = []

Options { @var bool $echappe_span True pour échapper les balises span (false par défaut) @var string $lang_defaut Code de langue : permet de définir la langue utilisée par défaut, en cas d'absence de traduction dans la langue demandée. Par défaut la langue du site. Indiquer 'aucune' pour ne pas retourner de texte si la langue exacte n'a pas été trouvée. }

Tags
filtre
uses
inc_traduire_dist()
Return values
string

extraire_multi()

Extrait une langue des extraits polyglottes (`<multi>`)

extraire_multi(string $letexte[, string $lang = null ][, array<string|int, mixed> $options = [] ]) : string

Retrouve les balises <multi> d'un texte et remplace son contenu par l'extrait correspondant à la langue demandée.

Si la langue demandée n'est pas trouvée dans le multi, ni une langue approchante (exemple fr si on demande fr_TU), on retourne l'extrait correspondant à la langue par défaut (option 'lang_defaut'), qui est par défaut la langue du site. Et si l'extrait n'existe toujours pas dans cette langue, ça utilisera la première langue utilisée dans la balise <multi>.

Ne pas mettre de span@lang=fr si on est déjà en fr.

Parameters
$letexte : string
$lang : string = null

Langue à retrouver (si vide, utilise la langue en cours).

$options : array<string|int, mixed> = []

Options { @var bool $echappe_span True pour échapper les balises span (false par défaut) @var string $lang_defaut Code de langue : permet de définir la langue utilisée par défaut, en cas d'absence de traduction dans la langue demandée. Par défaut la langue du site. Indiquer 'aucune' pour ne pas retourner de texte si la langue exacte n'a pas été trouvée. }

Tags
filtre
link
https://www.spip.net/5332
Return values
string

filtre_initiale()

Calculer l'initiale d'un nom

filtre_initiale(string $nom) : string
Parameters
$nom : string
Return values
string

L'initiale en majuscule

unique()

Retourne la donnée si c'est la première fois qu'il la voit

unique(string $donnee[, string $famille = '' ][, bool $cpt = false ]) : string|int|array<string|int, mixed>|null|void

Il est possible de gérer différentes "familles" de données avec le second paramètre.

Parameters
$donnee : string

Donnée que l'on souhaite unique

$famille : string = ''

Famille de stockage (1 unique donnée par famille)

  • spip_raz : (interne) Vide la pile de mémoire et la retourne
  • spip_set : (interne) Affecte la pile de mémoire avec la donnée
$cpt : bool = false

True pour obtenir le nombre d'éléments différents stockés

Tags
filtre
link
https://www.spip.net/4320
example
[(#ID_SECTEUR|unique)]
[(#ID_SECTEUR|unique{tete})] n'a pas d'incidence sur
[(#ID_SECTEUR|unique{pied})]
[(#ID_SECTEUR|unique{pied,1})] affiche le nombre d'éléments.
Préférer totefois #TOTAL_UNIQUE{pied}
todo

Ameliorations possibles :

  1. si la donnée est grosse, mettre son md5 comme clé
  2. purger $mem quand on change de squelette (sinon bug inclusions)
Return values
string|int|array<string|int, mixed>|null|void
  • string : Donnée si c'est la première fois qu'elle est vue
  • void : si la donnée a déjà été vue
  • int : si l'on demande le nombre d'éléments
  • array (interne) : si on dépile
  • null (interne) : si on empile

alterner()

Filtre qui alterne des valeurs en fonction d'un compteur

alterner(int $i, array<string|int, mixed> ...$args) : mixed

Affiche à tour de rôle et dans l'ordre, un des arguments transmis à chaque incrément du compteur.

S'il n'y a qu'un seul argument, et que c'est un tableau, l'alternance se fait sur les valeurs du tableau.

Souvent appliqué à l'intérieur d'une boucle, avec le compteur #COMPTEUR_BOUCLE

Parameters
$i : int

Le compteur

$args : array<string|int, mixed>

Liste des éléments à alterner

Tags
example
  • [(#COMPTEUR_BOUCLE|alterner{bleu,vert,rouge})]
  • [(#COMPTEUR_BOUCLE|alterner{#LISTE{bleu,vert,rouge}})]
filtre
link
https://www.spip.net/4145
Return values
mixed

Une des valeurs en fonction du compteur.

extraire_attribut()

Récupérer un attribut d'une balise HTML

extraire_attribut(string|array<string|int, mixed> $balise, string $attribut[, bool $complet = false ]) : string|array<string|int, mixed>|null

la regexp est mortelle : cf. tests/unit/filtres/extraire_attribut.php Si on a passé un tableau de balises, renvoyer un tableau de résultats (dans ce cas l'option $complet n'est pas disponible)

Parameters
$balise : string|array<string|int, mixed>

texte ou liste de textes dont on veut extraire des balises

$attribut : string

Nom de l'attribut désiré

$complet : bool = false

true pour retourner un tableau avec

  • le texte de la balise
  • l'ensemble des résultats de la regexp ($r)
Return values
string|array<string|int, mixed>|null
  • texte de l'attribut retourné, ou tableau des textes d'attributs (si 1er argument tableau)
  • Tableau complet (si 2e argument)
  • null lorsque l’attribut n’existe pas.

inserer_attribut()

Insérer (ou modifier) un attribut html dans une balise

inserer_attribut(string|null $balise, string $attribut, string|null $val[, bool $proteger = true ][, bool $vider = false ]) : string
Parameters
$balise : string|null

Code html de la balise (ou contenant une balise)

$attribut : string

Nom de l'attribut html à modifier

$val : string|null

Valeur de l'attribut à appliquer

$proteger : bool = true

Prépare la valeur en tant qu'attribut de balise (mais conserve les balises html).

$vider : bool = false

True pour vider l'attribut. Une chaîne vide pour $val fera pareil.

Tags
example
  • [(#LOGO_ARTICLE|inserer_attribut{class, logo article})]
  • [(#LOGO_ARTICLE|inserer_attribut{alt, #TTTRE|attribut_html|couper{60}})]
  • [(#FICHIER|image_reduire{40}|inserer_attribut{data-description, #DESCRIPTIF})] Laissera les balises HTML de la valeur (ici #DESCRIPTIF) si on n'applique pas le filtre attribut_html dessus.
filtre
link
https://www.spip.net/4294
uses
attribut_html()
uses
extraire_attribut()
used-by
vider_attribut()
used-by
_image_valeurs_trans()
used-by
_image_tag_changer_taille()
used-by
_image_ecrire_tag()
used-by
process_image_reduire()
Return values
string

Code html modifié

vider_attribut()

Supprime un attribut HTML

vider_attribut(string|null $balise, string $attribut) : string
Parameters
$balise : string|null

Code HTML de l'élément

$attribut : string

Nom de l'attribut à enlever

Tags
example

[(#LOGO_ARTICLE|vider_attribut{class})]

filtre
link
https://www.spip.net/4142
uses
inserer_attribut()
see
extraire_attribut()
Return values
string

Code HTML sans l'attribut

modifier_class()

Fonction support pour les filtres |ajouter_class |supprimer_class |commuter_class

modifier_class(string $balise, string|array<string|int, mixed> $class[, string $operation = 'ajouter' ]) : string
Parameters
$balise : string
$class : string|array<string|int, mixed>
$operation : string = 'ajouter'
Return values
string

ajouter_class()

Ajoute une ou plusieurs classes sur une balise (si pas deja presentes)

ajouter_class(string $balise, string|array<string|int, mixed> $class) : string
Parameters
$balise : string
$class : string|array<string|int, mixed>
Return values
string

supprimer_class()

Supprime une ou plusieurs classes sur une balise (si presentes)

supprimer_class(string $balise, string|array<string|int, mixed> $class) : string
Parameters
$balise : string
$class : string|array<string|int, mixed>
Return values
string

commuter_class()

Bascule une ou plusieurs classes sur une balise : ajoutees si absentes, supprimees si presentes

commuter_class(string $balise, string|array<string|int, mixed> $class) : string
Parameters
$balise : string
$class : string|array<string|int, mixed>
Return values
string

tester_config()

Un filtre pour déterminer le nom du statut des inscrits

tester_config(int|null $id[, string $mode = '' ]) : string
Parameters
$id : int|null
$mode : string = ''
Return values
string

floatstr()

floatstr(mixed $a) : mixed
Parameters
$a : mixed

strize()

strize(mixed $f, mixed $a, mixed $b) : mixed
Parameters
$f : mixed
$a : mixed
$b : mixed

strplus()

strplus(mixed $a, mixed $b) : mixed
Parameters
$a : mixed
$b : mixed

strmoins()

strmoins(mixed $a, mixed $b) : mixed
Parameters
$a : mixed
$b : mixed

strmult()

strmult(mixed $a, mixed $b) : mixed
Parameters
$a : mixed
$b : mixed

strdiv()

strdiv(mixed $a, mixed $b) : mixed
Parameters
$a : mixed
$b : mixed

modulo()

Retourne le modulo 2 nombres

modulo(int $nb, int $mod[, int $add = 0 ]) : int
Parameters
$nb : int
$mod : int
$add : int = 0
Tags
filtre
link
https://www.spip.net/4301
see
mult()
see
div()
example
[(#VAL{28}|modulo{14})]
Return values
int

($nb % $mod) + $add

nom_acceptable()

Vérifie qu'un nom (d'auteur) ne comporte pas d'autres tags que <multi> et ceux volontairement spécifiés dans la constante

nom_acceptable(string $nom) : bool
Parameters
$nom : string

Nom (signature) proposé

Return values
bool
  • false si pas conforme,
  • true sinon

email_valide()

Vérifier la conformité d'une ou plusieurs adresses email (suivant RFC 822)

email_valide(string|array<string|int, mixed> $adresses) : bool|string|array<string|int, mixed>
Parameters
$adresses : string|array<string|int, mixed>

Adresse ou liste d'adresse si on fournit un tableau, il est filtre et la fonction renvoie avec uniquement les adresses email valides (donc possiblement vide)

Return values
bool|string|array<string|int, mixed>
  • false si une des adresses n'est pas conforme,
  • la normalisation de la dernière adresse donnée sinon
  • renvoie un tableau si l'entree est un tableau

afficher_enclosures()

Permet d'afficher un symbole à côté des liens pointant vers les documents attachés d'un article (liens ayant `rel=enclosure`).

afficher_enclosures(string $tags) : string
Parameters
$tags : string

texte

Tags
filtre
link
https://www.spip.net/4134
Return values
string

texte

afficher_tags()

Filtre des liens HTML `<a>` selon la valeur de leur attribut `rel` et ne retourne que ceux là.

afficher_tags(string $tags[, string $rels = 'tag,directory' ]) : string
Parameters
$tags : string

texte

$rels : string = 'tag,directory'

Attribut rel à capturer (ou plusieurs séparés par des virgules)

Tags
filtre
link
https://www.spip.net/4187
Return values
string

Liens trouvés

enclosure2microformat()

Convertir les médias fournis par un flux RSS (podcasts) en liens conformes aux microformats

enclosure2microformat(string $e) : string

Passe un <enclosure url="fichier" length="5588242" type="audio/mpeg"/> au format microformat <a rel="enclosure" href="fichier" ...>fichier</a>.

Peut recevoir un <link ou un <media:content parfois.

Attention : length="zz" devient title="zz", pour rester conforme.

Parameters
$e : string

Tag RSS <enclosure>

Tags
filtre
see
microformat2enclosure()

Pour l'inverse

Return values
string

Tag HTML <a> avec microformat.

microformat2enclosure()

Convertir les liens conformes aux microformats en médias pour flux RSS, par exemple pour les podcasts

microformat2enclosure(string $tags) : string

Passe un texte ayant des liens avec microformat <a rel="enclosure" href="fichier" ...>fichier</a> au format RSS <enclosure url="fichier" ... />.

Parameters
$tags : string

texte HTML ayant des tag <a> avec microformat

Tags
filtre
see
enclosure2microformat()

Pour l'inverse

Return values
string

Tags RSS <enclosure>.

tags2dcsubject()

Créer les éléments ATOM `<dc:subject>` à partir des tags

tags2dcsubject(string $tags) : string

Convertit les liens avec attribut rel="tag" en balise <dc:subject></dc:subject> pour les flux RSS au format Atom.

Parameters
$tags : string

texte

Tags
filtre
Return values
string

Tags RSS Atom <dc:subject>.

extraire_balise()

Retourne la premiere balise html du type demandé

extraire_balise(string|array<string|int, mixed> $texte[, string $tag = 'a' ][, mixed $profondeur = 1 ]) : string|array<string|int, mixed>

Retourne dans un tableau le contenu de chaque balise jusqu'à sa fermeture correspondante. Si on a passe un tableau de textes, retourne un tableau de resultats.

Parameters
$texte : string|array<string|int, mixed>

texte(s) dont on souhaite extraire une balise html

$tag : string = 'a'

Nom de la balise html à extraire

$profondeur : mixed = 1
Tags
example

[(#DESCRIPTIF|extraire_balise{img})]

filtre
link
https://www.spip.net/4289
see
extraire_balises()
note

Attention : les résultats peuvent être incohérents sur des balises imbricables, tel que demander à extraire div dans le texte <div> un <div> mot </div> absent </div>, ce qui retournerait <div> un <div> mot </div> donc.

Return values
string|array<string|int, mixed>
  • Code html de la première occurence de la balise trouvée, sinon chaine vide
  • Tableau de résultats, si tableau en entrée.

extraire_balises()

Extrait toutes les balises html du type demandé

extraire_balises(string|array<string|int, mixed> $texte[, string $tag = 'a' ][, array<string|int, mixed> $options = [] ]) : array<string|int, mixed>

Retourne dans un tableau le contenu de chaque balise jusqu'à sa fermeture correspondante. Si on a passe un tableau de textes, retourne un tableau de resultats.

Parameters
$texte : string|array<string|int, mixed>

texte(s) dont on souhaite extraire une balise html

$tag : string = 'a'

Nom de la balise html à extraire

$options : array<string|int, mixed> = []

int nb_max : nombre d'occurence maxi à extraire int profondeur : niveau de profondeur d'extraction en cas d'intrication de balises identiques

Tags
example

[(#TEXTE|extraire_balises{img}|implode{" - "})]

filtre
link
https://www.spip.net/5618
see
extraire_balise()
used-by
wrap()
Return values
array<string|int, mixed>
  • Liste des codes html des occurrences de la balise, sinon tableau vide
  • Tableau de résultats, si tableau en entrée.

in_any()

Indique si le premier argument est contenu dans le second

in_any(string $val, array<string|int, mixed>|string $vals[, string $def = '' ]) : string

Cette fonction est proche de in_array() en PHP avec comme principale différence qu'elle ne crée pas d'erreur si le second argument n'est pas un tableau (dans ce cas elle tentera de le désérialiser, et sinon retournera la valeur par défaut transmise).

Parameters
$val : string

Valeur à chercher dans le tableau

$vals : array<string|int, mixed>|string

Tableau des valeurs. S'il ce n'est pas un tableau qui est transmis, la fonction tente de la désérialiser.

$def : string = ''

Valeur par défaut retournée si $vals n'est pas un tableau.

Tags
example

[(#VAL{deux}|in_any{#LISTE{un,deux,trois}}|oui) ... ]

filtre
see
filtre_find()

Assez proche, avec les arguments valeur et tableau inversés.

Return values
string
  • ' ' si la valeur cherchée est dans le tableau
  • '' si la valeur n'est pas dans le tableau
  • $def si on n'a pas transmis de tableau

valeur_numerique()

Retourne le résultat d'une expression mathématique simple

valeur_numerique(string $expr) : int

N'accepte que les *, + et - (à ameliorer si on l'utilise vraiment).

Parameters
$expr : string

Expression mathématique nombre operateur nombre comme 3*2

Tags
filtre
example
valeur_numerique("3*2") retourne 6
Return values
int

Résultat du calcul

regledetrois()

Retourne un calcul de règle de trois

regledetrois(int $a, int $b, int $c) : int
Parameters
$a : int
$b : int
$c : int
Tags
filtre
example
[(#VAL{6}|regledetrois{4,3})] retourne 8
Return values
int

Retourne $a*$b/$c

form_hidden()

Crée des tags HTML input hidden pour chaque paramètre et valeur d'une URL

form_hidden([string|null $action = '' ]) : string

Fournit la suite de Input-Hidden correspondant aux paramètres de l'URL donnée en argument, compatible avec les types_urls

Parameters
$action : string|null = ''

URL

Tags
filtre
link
https://www.spip.net/4286
see
balise_ACTION_FORMULAIRE()

Également pour transmettre les actions à un formulaire

example
[(#ENV{action}|form_hidden)] dans un formulaire
Return values
string

Suite de champs input hidden

filtre_reset()

Retourne la première valeur d'un tableau

filtre_reset(array<string|int, mixed> $array) : mixed|null|false

Plus précisément déplace le pointeur du tableau sur la première valeur et la retourne.

Parameters
$array : array<string|int, mixed>
Tags
example

[(#LISTE{un,deux,trois}|reset)] retourne 'un'

filtre
link
http://php.net/manual/fr/function.reset.php
see
filtre_end()
Return values
mixed|null|false
  • null si $array n'est pas un tableau,
  • false si le tableau est vide
  • la première valeur du tableau sinon.

filtre_end()

Retourne la dernière valeur d'un tableau

filtre_end(array<string|int, mixed> $array) : mixed|null|false

Plus précisément déplace le pointeur du tableau sur la dernière valeur et la retourne.

Parameters
$array : array<string|int, mixed>
Tags
example

[(#LISTE{un,deux,trois}|end)] retourne 'trois'

filtre
link
http://php.net/manual/fr/function.end.php
see
filtre_reset()
Return values
mixed|null|false
  • null si $array n'est pas un tableau,
  • false si le tableau est vide
  • la dernière valeur du tableau sinon.

filtre_push()

Empile une valeur à la fin d'un tableau

filtre_push(array<string|int, mixed> $array, mixed $val) : array<string|int, mixed>|string
Parameters
$array : array<string|int, mixed>
$val : mixed
Tags
example

[(#LISTE{un,deux,trois}|push{quatre}|print)]

filtre
link
https://www.spip.net/4571
link
http://php.net/manual/fr/function.array-push.php
Return values
array<string|int, mixed>|string
  • '' si $array n'est pas un tableau ou si echec.
  • le tableau complété de la valeur sinon.

filtre_find()

Indique si une valeur est contenue dans un tableau

filtre_find(array<string|int, mixed> $array, mixed $val) : bool
Parameters
$array : array<string|int, mixed>
$val : mixed
Tags
example

[(#LISTE{un,deux,trois}|find{quatre}|oui) ... ]

filtre
link
https://www.spip.net/4575
see
in_any()

Assez proche, avec les paramètres tableau et valeur inversés.

Return values
bool
  • false si $array n'est pas un tableau
  • true si la valeur existe dans le tableau, false sinon.

urls_absolues_css()

Passer les url relatives à la css d'origine en url absolues

urls_absolues_css(string $contenu, string $source) : string
Parameters
$contenu : string

Contenu du fichier CSS

$source : string

Chemin du fichier CSS

Tags
uses
suivre_lien()
used-by
url_absolue_css()
used-by
produire_fond_statique()
Return values
string

Contenu avec urls en absolus

direction_css()

Inverse le code CSS (left <--> right) d'une feuille de style CSS

direction_css(string $css[, string $voulue = '' ]) : string

Récupère le chemin d'une CSS existante et :

  1. regarde si une CSS inversée droite-gauche existe dans le meme répertoire
  2. sinon la crée (ou la recrée) dans _DIR_VAR/cache_css/

Si on lui donne à manger une feuille nommée *_rtl.css il va faire l'inverse.

Parameters
$css : string

Chemin vers le fichier CSS

$voulue : string = ''

Permet de forcer le sens voulu (en indiquant ltr, rtl ou un code de langue). En absence, prend le sens de la langue en cours.

Tags
filtre
example
[<link rel="stylesheet" href="(#CHEMIN{css/perso.css}|direction_css)" type="text/css" />]
Return values
string

Chemin du fichier CSS inversé

url_absolue_css()

Transforme les urls relatives d'un fichier CSS en absolues

url_absolue_css(string $css) : string

Récupère le chemin d'une css existante et crée (ou recrée) dans _DIR_VAR/cache_css/ une css dont les url relatives sont passées en url absolues

Le calcul n'est pas refait si le fichier cache existe déjà et que la source n'a pas été modifiée depuis.

Parameters
$css : string

Chemin ou URL du fichier CSS source

Tags
uses
recuperer_url()

si l'URL source n'est pas sur le même site

uses
urls_absolues_css()
Return values
string
  • Chemin du fichier CSS transformé (si source lisible et mise en cache réussie)
  • Chemin ou URL du fichier CSS source sinon.

table_valeur()

Récupère la valeur d'une clé donnée dans un tableau (ou un objet).

table_valeur(mixed $table, string $cle[, mixed $defaut = '' ][, bool $conserver_null = false ]) : mixed
Parameters
$table : mixed

Tableau ou objet PHP (ou chaîne serialisée de tableau, ce qui permet d'enchaîner le filtre)

$cle : string

Clé du tableau (ou paramètre public de l'objet) Cette clé peut contenir des caractères / pour sélectionner des sous éléments dans le tableau, tel que sous/element/ici pour obtenir la valeur de $tableau['sous']['element']['ici']

$defaut : mixed = ''

Valeur par defaut retournée si la clé demandée n'existe pas

$conserver_null : bool = false

Permet de forcer la fonction à renvoyer la valeur null d'un index et non pas $defaut comme cela est fait naturellement par la fonction isset. On utilise alors array_key_exists() à la place de isset().

Tags
filtre
link
https://www.spip.net/4572
example
[(#VALEUR|table_valeur{cle/sous/element})]
Return values
mixed

Valeur trouvée ou valeur par défaut.

filtre_match_dist()

Retrouve un motif dans un texte à partir d'une expression régulière

filtre_match_dist(string|null $texte, string|int $expression[, string $modif = 'UuimsS' ][, int $capte = 0 ]) : bool|string

S'appuie sur la fonction preg_match() en PHP

Parameters
$texte : string|null

texte dans lequel chercher

$expression : string|int

Expression régulière de recherche, sans le délimiteur

$modif : string = 'UuimsS'
  • string : Modificateurs de l'expression régulière
  • int : Numéro de parenthèse capturante
$capte : int = 0

Numéro de parenthèse capturante

Tags
example
  • [(#TITRE|match{toto})]
  • [(#TEXTE|match{^ceci$,Uims})]
  • [(#TEXTE|match{truc(...)$, UimsS, 1})] Capture de la parenthèse indiquée
  • [(#TEXTE|match{truc(...)$, 1})] Équivalent, sans indiquer les modificateurs
filtre
link
https://www.spip.net/4299
link

Pour des infos sur preg_match()

Return values
bool|string
  • false : l'expression n'a pas été trouvée
  • true : expression trouvée, mais pas la parenthèse capturante
  • string : expression trouvée.

replace()

Remplacement de texte à base d'expression régulière

replace(string $texte, string $expression[, string $replace = '' ][, string $modif = 'UimsS' ]) : string
Parameters
$texte : string

Texte dans lequel faire le remplacement

$expression : string

Expression régulière

$replace : string = ''

Texte de substitution des éléments trouvés

$modif : string = 'UimsS'

Modificateurs pour l'expression régulière.

Tags
filtre
link
https://www.spip.net/4309
see
match()
example
[(#TEXTE|replace{^ceci$,cela,UimsS})]
Return values
string

Texte

traiter_doublons_documents()

Cherche les documents numerotés dans un texte traite par `propre()`

traiter_doublons_documents(array<string|int, mixed> &$doublons, string $letexte) : string

Affecte la liste des doublons['documents']

Parameters
$doublons : array<string|int, mixed>

Liste des doublons

$letexte : string

Le texte

Return values
string

Le texte

vide()

Filtre vide qui ne renvoie rien

vide(mixed $texte) : string
Parameters
$texte : mixed
Tags
example

[(#CALCUL|vide)] n'affichera pas le résultat du calcul

filtre
Return values
string

Chaîne vide

env_to_params()

Écrit des balises HTML `<param...>` à partir d'un tableau de données tel que `#ENV`

env_to_params(array<string|int, mixed>|string $env[, array<string|int, mixed> $ignore_params = [] ]) : string

Permet d'écrire les balises <param> à indiquer dans un <object> en prenant toutes les valeurs du tableau transmis.

Certaines clés spécifiques à SPIP et aux modèles embed sont omises : id, lang, id_document, date, date_redac, align, fond, recurs, emb, dir_racine

Parameters
$env : array<string|int, mixed>|string

Tableau cle => valeur des paramètres à écrire, ou chaine sérialisée de ce tableau

$ignore_params : array<string|int, mixed> = []

Permet de compléter les clés ignorées du tableau.

Tags
example

[(#ENV*|env_to_params)]

filtre
link
https://www.spip.net/4005
Return values
string

Code HTML résultant

env_to_attributs()

Écrit des attributs HTML à partir d'un tableau de données tel que `#ENV`

env_to_attributs(array<string|int, mixed>|string $env[, array<string|int, mixed> $ignore_params = [] ]) : string

Permet d'écrire des attributs d'une balise HTML en utilisant les données du tableau transmis. Chaque clé deviendra le nom de l'attribut (et la valeur, sa valeur)

Certaines clés spécifiques à SPIP et aux modèles embed sont omises : id, lang, id_document, date, date_redac, align, fond, recurs, emb, dir_racine

Parameters
$env : array<string|int, mixed>|string

Tableau cle => valeur des attributs à écrire, ou chaine sérialisée de ce tableau

$ignore_params : array<string|int, mixed> = []

Permet de compléter les clés ignorées du tableau.

Tags
example

<embed src='#URL_DOCUMENT' [(#ENV*|env_to_attributs)] width='#GET{largeur}' height='#GET{hauteur}'></embed>

filtre
Return values
string

Code HTML résultant

concat()

Concatène des chaînes

concat(array<string|int, mixed> ...$args) : string
Parameters
$args : array<string|int, mixed>
Tags
filtre
link
https://www.spip.net/4150
example
#TEXTE|concat{texte1,texte2,...}
Return values
string

Chaînes concaténés

charge_scripts()

Retourne le contenu d'un ou plusieurs fichiers

charge_scripts(array<string|int, mixed>|string $files[, bool $script = true ]) : string

Les chemins sont cherchés dans le path de SPIP

Parameters
$files : array<string|int, mixed>|string
  • array : Liste de fichiers
  • string : fichier ou fichiers séparés par |
$script : bool = true
  • si true, considère que c'est un fichier js à chercher javascript/
Tags
see
balise_INCLURE_dist()

La balise #INCLURE peut appeler cette fonction

Return values
string

Contenu du ou des fichiers, concaténé

http_img_variante_svg_si_possible()

Trouver la potentielle variante SVG -xx.svg d'une image -xx.png Cette fonction permet le support multi-version SPIP des plugins qui fournissent une icone PNG et sa variante SVG

http_img_variante_svg_si_possible(string $img_file) : string
Parameters
$img_file : string
Return values
string

http_img_pack()

Produit une balise img avec un champ alt d'office si vide

http_img_pack(string $img, string $alt[, string $atts = '' ][, string $title = '' ][, array<string|int, mixed> $options = [] ]) : string

Attention le htmlentities et la traduction doivent être appliqués avant.

Parameters
$img : string
$alt : string
$atts : string = ''
$title : string = ''
$options : array<string|int, mixed> = []

chemin_image : utiliser chemin_image sur $img fourni, ou non (oui par dafaut) utiliser_suffixe_size : utiliser ou non le suffixe de taille dans le nom de fichier de l'image sous forme -xx.png (pour les icones essentiellement) (oui par defaut) variante_svg_si_possible: utiliser l'image -xx.svg au lieu de -32.png par exemple (si la variante svg est disponible)

Return values
string

http_style_background()

Générer une directive `style='background:url()'` à partir d'un fichier image

http_style_background(string $img[, string $att = '' ][, string $size = null ]) : string
Parameters
$img : string
$att : string = ''
$size : string = null
Return values
string

helper_filtre_balise_img_svg_arguments()

helper_filtre_balise_img_svg_arguments(mixed $alt_or_size, mixed $class_or_size, mixed $size) : mixed
Parameters
$alt_or_size : mixed
$class_or_size : mixed
$size : mixed

helper_filtre_balise_img_svg_size()

helper_filtre_balise_img_svg_size(mixed $img, mixed $size) : mixed
Parameters
$img : mixed
$size : mixed

filtre_balise_img_dist()

Générer une balise HTML `img` à partir d'un nom de fichier et/ou renseigne son alt/class/width/height selon les arguments passés

filtre_balise_img_dist(string $img[, string $alt = '' ][, string $class = null ][, string|int $size = null ]) : string

Le class et le alt peuvent etre omis et dans ce cas size peut-être renseigné comme dernier argument : [(#FICHIER|balise_img)] [(#FICHIER|balise_img{1024})] [(#FICHIER|balise_img{1024x*})] [(#FICHIER|balise_img{1024x640})] [(#FICHIER|balise_img{'un nuage',1024x640})] [(#FICHIER|balise_img{'un nuage','spip_logo',1024x640})] Si le alt ou la class sont ambigu et peuvent etre interpretes comme une taille, il suffit d'indiquer une taille vide pour lever l'ambiguite [(#FICHIER|balise_img{'@2x','',''})]

Parameters
$img : string

chemin vers un fichier ou balise <img src='...' /> (generee par un filtre image par exemple)

$alt : string = ''

texte alternatif ; une valeur nulle pour explicitement ne pas avoir de balise alt sur l'image (au lieu d'un alt vide)

$class : string = null

attribut class ; null par defaut (ie si img est une balise, son attribut class sera inchange. pas de class inseree

$size : string|int = null

taille imposee @2x : pour imposer une densite x2 (widht et height seront divisees par 2) largeur : pour une image carree largeurx* : pour imposer uniquement la largeur (un attribut height sera aussi ajoute, mais calcule automatiquement pour respecter le ratio initial de l'image) largeurxhauteur pour fixer les 2 dimensions

Tags
uses
http_img_pack()
used-by
filtre_balise_img_svg_dist()
Return values
string

Code HTML de la balise IMG

filtre_balise_svg_dist()

Inserer un svg inline http://www.accede-web.com/notices/html-css-javascript/6-images-icones/6-2-svg-images-vectorielles/

filtre_balise_svg_dist(string $img[, string $alt = '' ][, string $class = null ][, string|int $size = null ]) : string

pour l'inserer avec une balise , utiliser le filtre |balise_img

Le class et le alt peuvent etre omis et dans ce cas size peut-être renseigné comme dernier argument : [(#FICHIER|balise_svg{1024x640})] [(#FICHIER|balise_svg{'un nuage',1024x640})] [(#FICHIER|balise_svg{'un nuage','spip_logo',1024x640})] Si le alt ou la class sont ambigu et peuvent etre interpretes comme une taille, il suffit d'indiquer une taille vide pour lever l'ambiguite [(#FICHIER|balise_svg{'un nuage','@2x',''})]

Parameters
$img : string

chemin vers un fichier ou balise <svg ... >... </svg> deja preparee

$alt : string = ''

texte alternatif ; une valeur nulle pour explicitement ne pas avoir de balise alt sur l'image (au lieu d'un alt vide)

$class : string = null

attribut class ; null par defaut (ie si img est une balise, son attribut class sera inchange. pas de class inseree

$size : string|int = null

taille imposee @2x : pour imposer une densite x2 (widht et height seront divisees par 2) largeur : pour une image carree largeurx* : pour imposer uniquement la largeur (un attribut height sera aussi ajoute, mais calcule automatiquement pour respecter le ratio initial de l'image) largeurxhauteur pour fixer les 2 dimensions

Return values
string

Code HTML de la balise SVG

filtre_balise_img_svg_dist()

Génère une balise HTML `img` ou un `svg` inline suivant le nom du fichier.

filtre_balise_img_svg_dist(mixed $src[, string $alt = '' ][, string $class = null ][, string|int $size = null ]) : string
Parameters
$src : mixed
$alt : string = ''

texte alternatif ; une valeur nulle pour explicitement ne pas avoir de balise alt sur l'image (au lieu d'un alt vide)

$class : string = null

attribut class ; null par defaut (ie si img est une balise, son attribut class sera inchange. pas de class inseree

$size : string|int = null

taille imposee @2x : pour imposer une densite x2 (widht et height seront divisees par 2) largeur : pour une image carree largeurx* : pour imposer uniquement la largeur (un attribut height sera aussi ajoute, mais calcule automatiquement pour respecter le ratio initial de l'image) largeurxhauteur pour fixer les 2 dimensions

Tags
uses
filtre_balise_img_dist()
uses
filtre_balise_svg_dist()
Return values
string

Code HTML de la balise IMG

filtre_info_plugin_dist()

Obtient des informations sur les plugins actifs

filtre_info_plugin_dist(string $plugin, string $type_info[, bool $reload = false ]) : array<string|int, mixed>|string|bool
Parameters
$plugin : string

Préfixe du plugin ou chaîne vide

$type_info : string

Type d'info demandée

$reload : bool = false

true (à éviter) pour forcer le recalcul du cache des informations des plugins.

Tags
filtre
uses
liste_plugin_actifs()

pour connaître les informations affichables

Return values
array<string|int, mixed>|string|bool
  • Liste sérialisée des préfixes de plugins actifs (si $plugin = '')
  • Suivant $type_info, avec $plugin un préfixe
    • est_actif : renvoie true s'il est actif, false sinon
    • x : retourne l'information x du plugin si présente (et plugin actif)
    • tout : retourne toutes les informations du plugin actif

puce_changement_statut()

Affiche la puce statut d'un objet, avec un menu rapide pour changer de statut si possibilité de l'avoir

puce_changement_statut(int $id_objet, string $statut, int $id_rubrique, string $type[, bool $ajax = false ]) : string
Parameters
$id_objet : int

Identifiant de l'objet

$statut : string

Statut actuel de l'objet

$id_rubrique : int

Identifiant du parent

$type : string

Type d'objet

$ajax : bool = false

Indique s'il ne faut renvoyer que le coeur du menu car on est dans une requete ajax suite à un post de changement rapide

Tags
see
inc_puce_statut_dist()
filtre
Return values
string

Code HTML de l'image de puce de statut à insérer (et du menu de changement si présent)

filtre_puce_statut_dist()

Affiche la puce statut d'un objet, avec un menu rapide pour changer de statut si possibilité de l'avoir

filtre_puce_statut_dist(string $statut, string $objet[, int $id_objet = 0 ][, int $id_parent = 0 ]) : string

Utilisable sur tout objet qui a declaré ses statuts

Parameters
$statut : string

Statut actuel de l'objet

$objet : string

Type d'objet

$id_objet : int = 0

Identifiant de l'objet

$id_parent : int = 0

Identifiant du parent

Tags
example

[(#STATUT|puce_statut{article})] affiche une puce passive [(#STATUT|puce_statut{article,#ID_ARTICLE,#ID_RUBRIQUE})] affiche une puce avec changement rapide

see
inc_puce_statut_dist()
filtre
Return values
string

Code HTML de l'image de puce de statut à insérer (et du menu de changement si présent)

encoder_contexte_ajax()

Encoder un contexte pour l'ajax

encoder_contexte_ajax(string|array<string|int, mixed> $c[, string $form = '' ][, string $emboite = null ][, string $ajaxid = '' ]) : string

Encoder le contexte, le signer avec une clé, le crypter avec le secret du site, le gziper si possible.

L'entrée peut-être sérialisée (le #ENV** des fonds ajax et ajax_stat)

Parameters
$c : string|array<string|int, mixed>

contexte, peut etre un tableau serialize

$form : string = ''

nom du formulaire eventuel

$emboite : string = null

contenu a emboiter dans le conteneur ajax

$ajaxid : string = ''

ajaxid pour cibler le bloc et forcer sa mise a jour

Tags
see
decoder_contexte_ajax()
uses
calculer_cle_action()
Return values
string

hash du contexte

decoder_contexte_ajax()

Décoder un hash de contexte pour l'ajax

decoder_contexte_ajax(string $c[, string $form = '' ]) : array<string|int, mixed>|string|bool

Précude inverse de encoder_contexte_ajax()

Parameters
$c : string

hash du contexte

$form : string = ''

nom du formulaire eventuel

Tags
see
encoder_contexte_ajax()
uses
calculer_cle_action()
Return values
array<string|int, mixed>|string|bool
  • array|string : contexte d'environnement, possiblement sérialisé
  • false : erreur de décodage

_xor()

Encrypte ou décrypte un message

_xor(string $message[, null|string $key = null ]) : string
Parameters
$message : string

Message à encrypter ou décrypter

$key : null|string = null

Clé de cryptage / décryptage. Une clé sera calculée si non transmise

Tags
link
http://www.php.net/manual/fr/language.operators.bitwise.php#81358
Return values
string

Message décrypté ou encrypté

url_reponse_forum()

Retourne une URL de réponse de forum (aucune action ici)

url_reponse_forum(string $texte) : string
Parameters
$texte : string
Tags
see
filtre_url_reponse_forum()

du plugin forum (prioritaire)

note

La vraie fonction est dans le plugin forum, mais on évite ici une erreur du compilateur en absence du plugin

Return values
string

url_rss_forum()

retourne une URL de suivi rss d'un forum (aucune action ici)

url_rss_forum(string $texte) : string
Parameters
$texte : string
Tags
see
filtre_url_rss_forum()

du plugin forum (prioritaire)

note

La vraie fonction est dans le plugin forum, mais on évite ici une erreur du compilateur en absence du plugin

Return values
string

lien_ou_expose()

Génère des menus avec liens ou `<strong class='on'>` non clicable lorsque l'item est sélectionné Le parametre $on peut recevoir un selecteur simplifié de type 'a.active' 'strong.active.expose' pour préciser la balise (a, span ou strong uniquement) et la/les classes à utiliser quand on est expose

lien_ou_expose(string $url[, string $libelle = null ][, bool $on = false ][, string $class = '' ][, string $title = '' ][, string $rel = '' ][, string $evt = '' ]) : string
Parameters
$url : string

URL du lien

$libelle : string = null

texte du lien

$on : bool = false

État exposé ou non (génère un lien). Si $on vaut true ou 1 ou ' ', l'etat expose est rendu par un ... Si $on est de la forme span.active.truc par exemple, l'etat expose est rendu par ... Seules les balises a, span et strong sont acceptees dans ce cas

$class : string = ''

classes CSS ajoutées au lien

$title : string = ''

Title ajouté au lien

$rel : string = ''

Attribut rel ajouté au lien

$evt : string = ''

Complement à la balise a pour gérer un événement javascript, de la forme onclick='...'

Tags
filtre
link
https://www.spip.net/4004
example
[(#URL_RUBRIQUE|lien_ou_expose{#TITRE, #ENV{test}|=={en_cours}})]
[(#URL_RUBRIQUE|lien_ou_expose{#TITRE, #ENV{test}|=={en_cours}|?{a.monlien.active}, 'monlien'})]
Return values
string

Code HTML

singulier_ou_pluriel()

Afficher un message "un truc"/"N trucs" Les items sont à indiquer comme pour la fonction _T() sous la forme : "module:chaine"

singulier_ou_pluriel(int $nb, string $chaine_un, string $chaine_plusieurs[, string $var = 'nb' ][, array<string|int, mixed> $vars = [] ]) : string
Parameters
$nb : int

: le nombre

$chaine_un : string

: l'item de langue si $nb vaut un

$chaine_plusieurs : string

: l'item de lanque si $nb >= 2

$var : string = 'nb'

: La variable à remplacer par $nb dans l'item de langue (facultatif, défaut "nb")

$vars : array<string|int, mixed> = []

: Les autres variables nécessaires aux chaines de langues (facultatif)

Return values
string

: la chaine de langue finale en utilisant la fonction _T()

prepare_icone_base()

Fonction de base pour une icone dans un squelette.

prepare_icone_base(string $type, string $lien, string $texte, string $fond[, string $fonction = '' ][, string $class = '' ][, string $javascript = '' ]) : string

Il peut s'agir soit d'un simple lien, structure html : <span><a><img><b>texte</b></span>, soit d'un bouton d'action, structure identique au retour de #BOUTON_ACTION.

Parameters
$type : string

'lien' ou 'bouton'

$lien : string

url

$texte : string

texte du lien / alt de l'image

$fond : string

objet avec ou sans son extension et sa taille (article, article-24, article-24.png)

$fonction : string = ''

new/del/edit

$class : string = ''

Classes supplémentaires (horizontale, verticale, ajax…)

$javascript : string = ''

code javascript tel que "onclick='...'" par exemple ou texte du message de confirmation s'il s'agit d'un bouton

Return values
string

icone_base()

Crée un lien ayant une icone

icone_base(string $lien, string $texte, string $fond[, string $fonction = '' ][, string $class = '' ][, string $javascript = '' ]) : string
Parameters
$lien : string

URL du lien

$texte : string

texte du lien

$fond : string

Objet avec ou sans son extension et sa taille (article, article-24, article-24.png)

$fonction : string = ''

Fonction du lien (edit, new, del)

$class : string = ''

classe CSS, tel que left, right pour définir un alignement

$javascript : string = ''

Javascript ajouté sur le lien

Tags
uses
prepare_icone_base()
used-by
filtre_icone_verticale_dist()
used-by
filtre_icone_horizontale_dist()
used-by
icone_verticale()
used-by
icone_horizontale()
Return values
string

Code HTML du lien

filtre_icone_verticale_dist()

Crée un lien précédé d'une icone au dessus du texte

filtre_icone_verticale_dist(string $lien, string $texte, string $fond[, string $fonction = '' ][, string $class = '' ][, string $javascript = '' ]) : string
Parameters
$lien : string

URL du lien

$texte : string

texte du lien

$fond : string

Objet avec ou sans son extension et sa taille (article, article-24, article-24.png)

$fonction : string = ''

Fonction du lien (edit, new, del)

$class : string = ''

classe CSS à ajouter, tel que left, right, center pour définir un alignement. Il peut y en avoir plusieurs : left ajax

$javascript : string = ''

Javascript ajouté sur le lien

Tags
uses
icone_base()
see
icone_verticale()

Pour un usage dans un code PHP.

filtre
example
 [(#AUTORISER{voir,groupemots,#ID_GROUPE})
     [(#URL_ECRIRE{groupe_mots,id_groupe=#ID_GROUPE}
        |icone_verticale{<:mots:icone_voir_groupe_mots:>,groupe_mots-24.png,'',left})]
]
Return values
string

Code HTML du lien

filtre_icone_horizontale_dist()

Crée un lien précédé d'une icone horizontale

filtre_icone_horizontale_dist(string $lien, string $texte, string $fond[, string $fonction = '' ][, string $class = '' ][, string $javascript = '' ]) : string
Parameters
$lien : string

URL du lien

$texte : string

texte du lien

$fond : string

Objet avec ou sans son extension et sa taille (article, article-24, article-24.png)

$fonction : string = ''

Fonction du lien (edit, new, del)

$class : string = ''

classe CSS à ajouter

$javascript : string = ''

Javascript ajouté sur le lien

Tags
uses
icone_base()
see
icone_horizontale()

Pour un usage dans un code PHP.

filtre
example

En tant que filtre dans un squelettes :

[(#URL_ECRIRE{sites}|icone_horizontale{<:sites:icone_voir_sites_references:>,site-24.png})]

[(#AUTORISER{supprimer,groupemots,#ID_GROUPE}|oui)
    [(#URL_ACTION_AUTEUR{supprimer_groupe_mots,#ID_GROUPE,#URL_ECRIRE{mots}}
        |icone_horizontale{<:mots:icone_supprimer_groupe_mots:>,groupe_mots,del})]
]

En tant que filtre dans un code php :

$icone_horizontale=chercher_filtre('icone_horizontale');
$icone = $icone_horizontale(generer_url_ecrire("stats_visites","id_article=$id_article"),
    _T('statistiques:icone_evolution_visites', array('visites' => $visites)),
    "statistique-24.png");
Return values
string

Code HTML du lien

filtre_bouton_action_horizontal_dist()

Crée un bouton d'action intégrant une icone horizontale

filtre_bouton_action_horizontal_dist(string $lien, string $texte, string $fond[, string $fonction = '' ][, string $class = '' ][, string $confirm = '' ]) : string
Parameters
$lien : string

URL de l'action

$texte : string

texte du bouton

$fond : string

Objet avec ou sans son extension et sa taille (article, article-24, article-24.png)

$fonction : string = ''

Fonction du bouton (edit, new, del)

$class : string = ''

classes à ajouter au bouton, à l'exception de ajax qui est placé sur le formulaire.

$confirm : string = ''

Message de confirmation à ajouter en javascript sur le bouton

Tags
uses
prepare_icone_base()
filtre
example
[(#URL_ACTION_AUTEUR{supprimer_mot, #ID_MOT, #URL_ECRIRE{groupe_mots,id_groupe=#ID_GROUPE}}
    |bouton_action_horizontal{<:mots:info_supprimer_mot:>,mot-24.png,del,#ARRAY{bouton,btn_large}})]
Return values
string

Code HTML du lien

filtre_explode_dist()

Explose un texte en tableau suivant un séparateur

filtre_explode_dist(string $a, string $b) : array<string|int, mixed>
Parameters
$a : string

texte

$b : string

Séparateur

Tags
note

Inverse l'écriture de la fonction PHP de même nom pour que le filtre soit plus pratique dans les squelettes

filtre
example
[(#GET{truc}|explode{-})]
Return values
array<string|int, mixed>

Liste des éléments

filtre_implode_dist()

Implose un tableau en chaine en liant avec un séparateur

filtre_implode_dist(array<string|int, mixed> $a, string $b) : string
Parameters
$a : array<string|int, mixed>

Tableau

$b : string

Séparateur

Tags
note

Inverse l'écriture de la fonction PHP de même nom pour que le filtre soit plus pratique dans les squelettes

filtre
example
[(#GET{truc}|implode{-})]
Return values
string

texte

bando_images_background()

Produire les styles privés qui associent item de menu avec icone en background

bando_images_background() : string
Return values
string

Code CSS

bouton_action()

Générer un bouton_action utilisé par #BOUTON_ACTION

bouton_action(string $libelle, string $url[, string $class = '' ][, string $confirm = '' ][, string $title = '' ][, string $callback = '' ]) : string
Parameters
$libelle : string

Libellé du bouton

$url : string

URL d'action sécurisée, généralement obtenue avec generer_action_auteur()

$class : string = ''

Classes à ajouter au bouton, à l'exception de ajax qui est placé sur le formulaire.

$confirm : string = ''

Message de confirmation oui/non avant l'action

$title : string = ''

Attribut title à ajouter au bouton

$callback : string = ''

Callback js a appeler lors de l'évènement action et avant execution de l'action (ou après confirmation éventuelle si $confirm est non vide). Si la callback renvoie false, elle annule le déclenchement de l'action.

Return values
string

generer_objet_info()

Donner n'importe quelle information sur un objet de maniere generique.

generer_objet_info(int|string|null $id_objet, string $type_objet, string $info[, string $etoile = '' ][, array<string|int, mixed> $params = [] ]) : string

La fonction va gerer en interne deux cas particuliers les plus utilises : l'URL et le titre (qui n'est pas forcemment le champ SQL "titre").

On peut ensuite personnaliser les autres infos en creant une fonction generer_objet_<nom_info>($id_objet, $type_objet, $ligne). $ligne correspond a la ligne SQL de tous les champs de l'objet, les fonctions de personnalisation n'ont donc pas a refaire de requete.

Parameters
$id_objet : int|string|null
$type_objet : string
$info : string
$etoile : string = ''
$params : array<string|int, mixed> = []

Tableau de paramètres supplémentaires transmis aux fonctions generer_xxx

Tags
used-by
balise_INFO__dist()
Return values
string

generer_objet_introduction()

Fonction privée pour donner l'introduction d'un objet de manière générique.

generer_objet_introduction(int $id_objet, string $type_objet, array<string|int, mixed> $ligne_sql[, int $introduction_longueur = null ][, int|string $longueur_ou_suite = null ][, string $suite = null ][, string $connect = '' ]) : string

Cette fonction est mutualisée entre les balises #INTRODUCTION et #INFO_INTRODUCTION. Elle se charge de faire le tri entre descriptif, texte et chapo, et normalise les paramètres pour la longueur et la suite. Ensuite elle fait appel au filtre 'introduction' qui construit celle-ci à partir de ces données.

Parameters
$id_objet : int

Numéro de l'objet

$type_objet : string

Type d'objet

$ligne_sql : array<string|int, mixed>

Ligne SQL de l'objet avec au moins descriptif, texte et chapo

$introduction_longueur : int = null

Longueur de l'introduction donnée dans la description de la table l'objet

$longueur_ou_suite : int|string = null

Longueur de l'introduction OU points de suite si on coupe

$suite : string = null

Points de suite si on coupe

$connect : string = ''

Nom du connecteur à la base de données

Tags
uses
filtre_introduction_dist()
see
generer_info_entite()
see
balise_INTRODUCTION_dist()
used-by
balise_INTRODUCTION_dist()
Return values
string

appliquer_traitement_champ()

Appliquer a un champ SQL le traitement qui est configure pour la balise homonyme dans les squelettes

appliquer_traitement_champ(string $texte, string $champ[, string $table_objet = '' ][, array<string|int, mixed> $env = [] ][, string $connect = '' ]) : string
Parameters
$texte : string
$champ : string
$table_objet : string = ''
$env : array<string|int, mixed> = []
$connect : string = ''
Return values
string

generer_objet_lien()

Generer un lien (titre clicable vers url) vers un objet

generer_objet_lien(int $id_objet, string $objet[, int $longueur = 80 ][, null|string $connect = '' ]) : string
Parameters
$id_objet : int
$objet : string
$longueur : int = 80
$connect : null|string = ''
Return values
string

wrap()

Englobe (Wrap) un texte avec des balises

wrap(string $texte, string $wrap) : string
Parameters
$texte : string
$wrap : string
Tags
example

wrap('mot','<b>') donne <b>mot</b>'

filtre
uses
extraire_balises()
Return values
string

filtre_print_dist()

afficher proprement n'importe quoi On affiche in fine un pseudo-yaml qui premet de lire humainement les tableaux et de s'y reperer

filtre_print_dist(mixed $u[, string $join = '<br />' ][, int $indent = 0 ]) : array<string|int, mixed>|mixed|string

Les textes sont retournes avec simplement mise en forme typo

le $join sert a separer les items d'un tableau, c'est en general un \n ou
selon si on fait du html ou du texte les tableaux-listes (qui n'ont que des cles numeriques), sont affiches sous forme de liste separee par des virgules : c'est VOULU !

Parameters
$u : mixed
$join : string = '<br />'
$indent : int = 0
Return values
array<string|int, mixed>|mixed|string

objet_info()

Renvoyer l'info d'un objet telles que definies dans declarer_tables_objets_sql

objet_info(string $objet, string $info) : string|array<string|int, mixed>
Parameters
$objet : string
$info : string
Return values
string|array<string|int, mixed>

objet_afficher_nb()

Filtre pour afficher 'Aucun truc' ou '1 truc' ou 'N trucs' avec la bonne chaîne de langue en fonction de l'objet utilisé

objet_afficher_nb(int $nb, string $objet) : mixed|string
Parameters
$nb : int

Nombre d'éléments

$objet : string

Objet

Return values
mixed|string

texte traduit du comptage, tel que '3 articles'

objet_icone()

Filtre pour afficher l'img icone d'un objet

objet_icone(string $objet[, int $taille = 24 ][, string $class = '' ]) : string
Parameters
$objet : string
$taille : int = 24
$class : string = ''
Return values
string

objet_T()

Renvoyer une traduction d'une chaine de langue contextuelle à un objet si elle existe, la traduction de la chaine generique

objet_T(string $objet, string $chaine[, array<string|int, mixed> $args = [] ][, array<string|int, mixed> $options = [] ]) : string

Ex : [(#ENV{objet}|objet_label{trad_reference})] va chercher si une chaine objet:trad_reference existe et renvoyer sa trad le cas echeant sinon renvoie la trad de la chaine trad_reference Si la chaine fournie contient un prefixe il est remplacé par celui de l'objet pour chercher la chaine contextuelle

Les arguments $args et $options sont ceux de la fonction _T

Parameters
$objet : string
$chaine : string
$args : array<string|int, mixed> = []
$options : array<string|int, mixed> = []
Return values
string

insert_head_css_conditionnel()

Fonction de secours pour inserer le head_css de facon conditionnelle

insert_head_css_conditionnel(string $flux) : string

Appelée en filtre sur le squelette qui contient #INSERT_HEAD, elle vérifie l'absence éventuelle de #INSERT_HEAD_CSS et y suplée si besoin pour assurer la compat avec les squelettes qui n'utilisent pas.

Parameters
$flux : string

Code HTML

Return values
string

Code HTML

produire_fond_statique()

Produire un fichier statique à partir d'un squelette dynamique

produire_fond_statique(string $fond[, array<string|int, mixed> $contexte = [] ][, array<string|int, mixed> $options = [] ][, string $connect = '' ]) : string

Permet ensuite à Apache de le servir en statique sans repasser par spip.php à chaque hit sur le fichier.

Formats supportés : html, css, js, json, xml, svg

Si le format est passé dans contexte['format'], on l'utilise sinon on regarde l'extension du fond, sinon on utilise "html"

Parameters
$fond : string
$contexte : array<string|int, mixed> = []
$options : array<string|int, mixed> = []
$connect : string = ''
Tags
uses
urls_absolues_css()
Return values
string

timestamp()

Ajouter un timestamp a une url de fichier [(#CHEMIN{monfichier}|timestamp)]

timestamp(string $fichier) : string
Parameters
$fichier : string

Le chemin du fichier sur lequel on souhaite ajouter le timestamp

Return values
string

$fichier auquel on a ajouté le timestamp

supprimer_timestamp()

Supprimer le timestamp d'une url

supprimer_timestamp(string $url) : string
Parameters
$url : string
Return values
string

filtre_nettoyer_titre_email_dist()

Nettoyer le titre d'un email

filtre_nettoyer_titre_email_dist(string $titre) : string

Éviter une erreur lorsqu'on utilise |nettoyer_titre_email dans un squelette de mail

Parameters
$titre : string
Tags
filtre
uses
nettoyer_titre_email()
Return values
string

filtre_chercher_rubrique_dist()

Afficher le sélecteur de rubrique

filtre_chercher_rubrique_dist(string $titre, int $id_objet, int $id_parent, string $objet, int $id_secteur, bool $restreint[, bool $actionable = false ][, bool $retour_sans_cadre = false ]) : string

Il permet de placer un objet dans la hiérarchie des rubriques de SPIP

Parameters
$titre : string
$id_objet : int
$id_parent : int
$objet : string
$id_secteur : int
$restreint : bool
$actionable : bool = false

true : fournit le selecteur dans un form directement postable

$retour_sans_cadre : bool = false
Tags
uses
chercher_rubrique()
Return values
string

sinon_interdire_acces()

Rediriger une page suivant une autorisation, et ce, n'importe où dans un squelette, même dans les inclusions.

sinon_interdire_acces([bool $ok = false ][, string $url = '' ][, int $statut = 0 ][, string $message = null ]) : string|void

En l'absence de redirection indiquée, la fonction redirige par défaut sur une 403 dans l'espace privé et 404 dans l'espace public.

Parameters
$ok : bool = false

Indique si l'on doit rediriger ou pas

$url : string = ''

Adresse eventuelle vers laquelle rediriger

$statut : int = 0

Statut HTML avec lequel on redirigera

$message : string = null

message d'erreur

Tags
example
[(#AUTORISER{non}|sinon_interdire_acces)]
[(#AUTORISER{non}|sinon_interdire_acces{#URL_PAGE{login}, 401})]
filtre
Return values
string|void

Chaîne vide si l'accès est autorisé

filtre_compacte_dist()

Assurer le fonctionnement de |compacte meme sans l'extension compresseur

filtre_compacte_dist(string $source[, null|string $format = null ]) : string
Parameters
$source : string
$format : null|string = null
Return values
string

spip_affiche_mot_de_passe_masque()

Afficher partiellement un mot de passe que l'on ne veut pas rendre lisible par un champ hidden

spip_affiche_mot_de_passe_masque(string $passe[, bool $afficher_partiellement = false ][, int|null $portion_pourcent = null ]) : string
Parameters
$passe : string
$afficher_partiellement : bool = false
$portion_pourcent : int|null = null
Return values
string

identifiant_slug()

Cette fonction permet de transformer un texte clair en nom court pouvant servir d'identifiant, class, id, url... en ne conservant que des caracteres alphanumeriques et un separateur

identifiant_slug(string $texte[, string $type = '' ][, array<string|int, mixed> $options = [] ]) : string
Parameters
$texte : string

texte à transformer en nom machine

$type : string = ''
$options : array<string|int, mixed> = []

string separateur : par défaut, un underscore _. int longueur_maxi : par defaut 60 int longueur_mini : par defaut 0

Return values
string

label_nettoyer()

Prépare un texte pour un affichage en label ou titre

label_nettoyer(string $text[, bool $ucfirst = true ]) : string

Enlève un ':' à la fin d'une chaine de caractère, ainsi que les espaces qui pourraient l'accompagner, Met la première lettre en majuscule (par défaut)

Utile afficher dans un contexte de titre des chaines de langues qui contiennent des ':'

Parameters
$text : string
$ucfirst : bool = true
Tags
note

Les chaines de langues (historiques) de SPIP contiennent parfois des ':', parfois pas. Les fonctions label_nettoyer et label_ponctuer permettent de choisir l'une ou l'autre selon le contexte. Il convient dans les chaines de langues de labels de préférer les écritures sans ':'.

see
label_ponctuer()
exemple

<:info_maximum|label_nettoyer:>

used-by
label_ponctuer()
Return values
string

label_ponctuer()

Prépare un texte pour un affichage en label ou titre en ligne, systématiquement avec ' :' à la fin

label_ponctuer(string $text[, bool $ucfirst = true ]) : string

Ajoute ' :' aux chaines qui n'en ont pas (ajoute le caractère adapté à la langue utilisée). Passe la première lettre en majuscule par défaut.

Parameters
$text : string
$ucfirst : bool = true
Tags
uses
label_nettoyer()
exemple

<:info_maximum|label_ponctuer:>

Return values
string

helper_filtre_objet_lister_enfants_ou_parents()

Helper pour les filtres associés aux fonctions objet_lister_(parents|enfants)(_par_type)?

helper_filtre_objet_lister_enfants_ou_parents(string $objet, int|string $id_objet, mixed $fonction) : array<string|int, mixed>
Parameters
$objet : string
$id_objet : int|string
$fonction : mixed
Return values
array<string|int, mixed>

filtre_objet_lister_parents_dist()

Cherche les contenus parents d'un objet Supporte l'ecriture inverseee sous la forme [(#ID_OBJET|objet_lister_parents{#OBJET})]

filtre_objet_lister_parents_dist(string $objet, int|string $id_objet) : array<string|int, mixed>
Parameters
$objet : string
$id_objet : int|string
Tags
see
objet_lister_parents()
Return values
array<string|int, mixed>

filtre_objet_lister_parents_par_type_dist()

Cherche les contenus parents d'un objet Supporte l'ecriture inverseee sous la forme [(#ID_OBJET|objet_lister_parents_par_type{#OBJET})]

filtre_objet_lister_parents_par_type_dist(string $objet, int|string $id_objet) : array<string|int, mixed>
Parameters
$objet : string
$id_objet : int|string
Tags
see
objet_lister_parents_par_type()
Return values
array<string|int, mixed>

filtre_objet_lister_enfants_dist()

Cherche les contenus enfants d'un objet Supporte l'ecriture inverseee sous la forme [(#ID_OBJET|objet_lister_enfants{#OBJET})]

filtre_objet_lister_enfants_dist(string $objet, int|string $id_objet) : array<string|int, mixed>
Parameters
$objet : string
$id_objet : int|string
Tags
see
objet_lister_enfants()
Return values
array<string|int, mixed>

filtre_objet_lister_enfants_par_type_dist()

Cherche les contenus enfants d'un objet Supporte l'ecriture inverseee sous la forme [(#ID_OBJET|objet_lister_enfants_par_type{#OBJET})]

filtre_objet_lister_enfants_par_type_dist(string $objet, int|string $id_objet) : array<string|int, mixed>
Parameters
$objet : string
$id_objet : int|string
Tags
see
objet_lister_enfants_par_type()
Return values
array<string|int, mixed>

balise_ALERTE_MESSAGE_dist()

Compile la balise `#ALERTE_MESSAGE` produisant le HTML d'un message d'alerte complet.

balise_ALERTE_MESSAGE_dist(Champ $p) : Champ
Parameters
$p : Champ

Pile au niveau de la balise

Tags
note

Produit par défaut une alerte avec la classe notice et le role alert, sauf si on passe des chaînes vides en param. Cela permet par exemple de retirer le rôle dans certains cas précis.

balise
example
#ALERTE_MESSAGE{message[,titre][,classes][,role][,id]}
[(#ALERTE_MESSAGE{<:chaine_langue:>, <:chaine_langue:>, notice, status, mon_alerte})]
Return values
Champ

Pile complétée par le code à générer

balise_ALERTE_OUVRIR_dist()

Compile la balise `#ALERTE_OUVRIR` produisant le HTML ouvrant d'un message d’alerte

balise_ALERTE_OUVRIR_dist(Champ $p) : Champ

Doit être suivie du texte de l'alerte, puis de la balise #ALERTE_FERMER.

Parameters
$p : Champ

Pile au niveau de la balise

Tags
note

Produit par défaut une alerte avec la classe notice et le role alert, sauf si on passe des chaînes vides en param. Cela permet par exemple de ne pas mettre de rôle dans certains cas précis.

balise
see
balise_ALERTE_FERMER_dist()

Pour clôturer une alerte

example
#ALERTE_OUVRIR{titre[,classes][,role][,id]}
[(#ALERTE_OUVRIR{<:chaine_langue:>, notice, status, mon_alerte})]
Return values
Champ

Pile complétée par le code à générer

balise_ALERTE_FERMER_dist()

Compile la balise `#ALERTE_FERMER` produisant le HTML clôturant un message d’alerte

balise_ALERTE_FERMER_dist(Champ $p) : Champ

Doit être précédée du texte de l'alerte et de la balise #ALERTE_OUVRIR.

Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
see
balise_ALERTE_OUVRIR_dist()

Pour ouvrir une alerte

example
#ALERTE_FERMER
Return values
Champ

Pile complétée par le code à générer

message_alerte()

Générer un message d’alerte

message_alerte(string $texte[, string $titre = null ][, string $class = null ][, string $role = null ][, string $id = null ]) : string

Peut-être surchargé par filtre_message_alerte_dist ou filtre_message_alerte

Parameters
$texte : string

Contenu de l'alerte

$titre : string = null

Titre de l'alerte : texte simple, ou autre.

$class : string = null

Classes CSS ajoutées au conteneur Doit contenir le type : notice, error, success, info Défaut = notice (sauf en cas de chaîne vide)

$role : string = null

Attribut role ajouté au conteneur : alert ou status, selon l'importance Défaut = alert (sauf en cas de chaîne vide)

$id : string = null

Identifiant HTML du conteneur

Tags
note

Produit par défaut une alerte avec la classe notice et le rôle alert, sauf si on passe des chaînes vides en param (compat balises). Cela permet par exemple de ne pas mettre de rôle dans certains cas précis.

filtre
see
balise_ALERTE_dist()

qui utilise ce filtre

see
message_alerte_ouvrir()
see
message_alerte_fermer()
Return values
string

HTML de l'alerte

message_alerte_ouvrir()

Ouvrir un message d’alerte

message_alerte_ouvrir([string $titre = null ][, string $class = null ][, string $role = null ][, string $id = null ]) : string

Peut-être surchargé par filtre_message_alerte_ouvrir_dist ou filtre_message_alerte_ouvrir

Parameters
$titre : string = null

Titre de l'alerte : texte simple, ou autre.

$class : string = null

Classes CSS ajoutées au conteneur Doit contenir le type : notice, error, success, info Défaut = notice (sauf en cas de chaîne vide)

$role : string = null

Attribut role ajouté au conteneur : alert ou status, selon l'importance Défaut = alert (sauf en cas de chaîne vide)

$id : string = null

Identifiant HTML du conteneur

Tags
note

Produit par défaut une alerte avec la classe notice et le role alert, sauf si on passe des chaînes vides en param (compat balises). Cela permet par exemple de ne pas mettre de rôle dans certains cas précis.

filtre
see
balise_ALERTE_OUVRIR_dist()

qui utilise ce filtre

Return values
string

HTML d'ouverture de l'alerte

message_alerte_fermer()

Fermer un message d’alerte

message_alerte_fermer() : string

Peut-être surchargé par filtre_message_alerte_fermer_dist ou filtre_message_alerte_fermer

Tags
filtre
see
balise_ALERTE_FERMER_dist()

qui utilise ce filtre

Return values
string

HTML de fin de l'alerte

balise_BOITE_OUVRIR_dist()

Compile la balise `#BOITE_OUVRIR` ouvrant une boîte de contenu

balise_BOITE_OUVRIR_dist(Champ $p) : Champ

Racourci pour ouvrir une boîte (info, simple, pour noisette ...)

Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
see
balise_BOITE_PIED_dist()

Pour passer au pied de boîte

see
balise_BOITE_FERMER_dist()

Pour fermer une boîte

example
#BOITE_OUVRIR{titre[,type]}
[(#BOITE_OUVRIR{<:titre_cadre_interieur_rubrique:>,simple})]
#BOITE_OUVRIR{'',raccourcis}
Return values
Champ

Pile complétée par le code à générer

balise_BOITE_PIED_dist()

Compile la balise `#BOITE_PIED` cloturant une boîte de contenu

balise_BOITE_PIED_dist(Champ $p) : Champ

Racourci pour passer au pied de la boite, avant sa fermeture. On peut lui transmettre une classe CSS avec #BOITE_PIED{class}

Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
see
balise_BOITE_OUVRIR_dist()

Pour ouvrir une boîte

see
balise_BOITE_FERMER_dist()

Pour fermer une boîte

Return values
Champ

Pile complétée par le code à générer

balise_BOITE_FERMER_dist()

Compile la balise `#BOITE_FERMER` clôturant une boîte de contenu

balise_BOITE_FERMER_dist(Champ $p) : Champ

Racourci pour fermer une boîte ouverte

Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
see
balise_BOITE_OUVRIR_dist()

Pour ouvrir une boîte

see
balise_BOITE_PIED_dist()

Pour passer au pied de boîte

Return values
Champ

Pile complétée par le code à générer

boite_ouvrir()

Ouvrir une boîte

boite_ouvrir(string $titre[, string $class = '' ][, string $head_class = '' ][, string $id = '' ]) : string

Peut-être surchargé par filtre_boite_ouvrir_dist ou filtre_boite_ouvrir

Parameters
$titre : string

Titre de la boîte

$class : string = ''

Classes CSS de la boîte

$head_class : string = ''

Classes CSS sur l'entête

$id : string = ''

Identifiant HTML de la boîte

Tags
filtre
see
balise_BOITE_OUVRIR_dist()

qui utilise ce filtre

Return values
string

HTML du début de la boîte

boite_pied()

Passer au pied d'une boîte

boite_pied([string $class = 'act' ]) : string

Peut-être surchargé par filtre_boite_pied_dist ou filtre_boite_pied

Parameters
$class : string = 'act'

Classes CSS de la boîte

Tags
filtre
see
balise_BOITE_PIED_dist()

qui utilise ce filtre

Return values
string

HTML de transition vers le pied de la boîte

boite_fermer()

Fermer une boîte

boite_fermer() : string

Peut-être surchargé par filtre_boite_fermer_dist ou filtre_boite_fermer

Tags
filtre
see
balise_BOITE_FERMER_dist()

qui utilise ce filtre

Return values
string

HTML de fin de la boîte

normaliser_date()

Normaliser une date vers le format datetime (Y-m-d H:i:s)

normaliser_date(string $date[, bool $forcer_jour = false ]) : string
Parameters
$date : string

La date à normaliser

$forcer_jour : bool = false

true pour forcer à indiquer un jour et mois (01) s'il n'y en a pas.

Tags
note

Si elle vient du contexte (public/parametrer.php), on force le jour

filtre
link
https://www.spip.net/5518
uses
vider_date()
Return values
string
  • une date au format datetime
  • une chaîne vide si la date est considérée nulle

vider_date()

Enlève une date considérée comme vide

vider_date(string $letexte[, bool $verif_format_date = false ]) : string
Parameters
$letexte : string
$verif_format_date : bool = false
Tags
used-by
normaliser_date()
Return values
string
  • La date entrée (si elle n'est pas considérée comme nulle)
  • Une chaine vide

recup_heure()

Retrouve à partir d'une chaîne les valeurs heures, minutes, secondes.

recup_heure(string $date) : array<string|int, mixed>

Les formats 11:29:55 ou 11:29 sont autorisés.

Parameters
$date : string

Chaîne de date contenant éventuellement un horaire

Return values
array<string|int, mixed>
  • [heures, minutes, secondes] si format horaire autorisé
  • [0, 0, 0] sinon

heures_minutes()

Retourne l'horaire (avec minutes) d'une date, tel que `12h36min`

heures_minutes(string $numdate[, mixed $forme = '' ]) : string
Parameters
$numdate : string

La date à extraire

$forme : mixed = ''
Tags
note

Le format de retour varie selon la langue utilisée.

filtre
link
https://www.spip.net/5519
Return values
string

L'heure formatée dans la langue en cours.

recup_date()

Retrouve à partir d'une date les valeurs année, mois, jour, heures, minutes, secondes

recup_date(string $numdate[, bool $forcer_jour = true ]) : array<string|int, mixed>

Annee, mois, jour sont retrouvés si la date contient par exemple :

  • '03/11/2015', '3/11/15'
  • '2015-11-04', '2015-11-4'
  • '2015-11'

Dans ces cas, les heures, minutes, secondes sont retrouvés avec recup_heure()

Annee, mois, jour, heures, minutes, secondes sont retrouvés si la date contient par exemple :

  • '20151104111420'
Parameters
$numdate : string

La date à extraire

$forcer_jour : bool = true

True pour tout le temps renseigner un jour ou un mois (le 1) s'il ne sont pas indiqués dans la date.

Tags
uses
recup_heure()
used-by
affdate_heure()
used-by
date_ical()
used-by
date_iso()
used-by
date_822()
Return values
array<string|int, mixed>

[année, mois, jour, heures, minutes, secondes] ou []

date_interface()

Retourne une date relative si elle est récente, sinon une date complète

date_interface(string $date[, int $decalage_maxi = 43200 ]) : string

En fonction de la date transmise, peut retourner par exemple :

  • «il y a 3 minutes»,
  • «il y a 11 heures»,
  • «10 mai 2015 à 10h23min»
Parameters
$date : string

La date fournie

$decalage_maxi : int = 43200

Durée écoulée, en secondes, à partir de laquelle on bascule sur une date complète. Par défaut +/- 12h.

Tags
example

[(#DATE|date_interface)]

filtre
link
https://www.spip.net/5520
uses
date_relative()
uses
affdate_heure()

utilisé si le décalage est trop grand

Return values
string

La date relative ou complète

date_relative()

Retourne une date relative (passée ou à venir)

date_relative(string $date[, int $decalage_maxi = 0 ][, string $ref_date = null ]) : string

En fonction de la date transmise ainsi que de la date de référence (par défaut la date actuelle), peut retourner par exemple :

  • «il y a 3 minutes»,
  • «il y a 2 semmaines»,
  • «dans 1 semaine»
Parameters
$date : string

La date fournie

$decalage_maxi : int = 0

Durée écoulée, en secondes, au delà de laquelle on ne retourne pas de date relative Indiquer 0 (par défaut) pour ignorer.

$ref_date : string = null

La date de référence pour le calcul relatif, par défaut la date actuelle

Tags
example
  • [(#DATE|date_relative)]
  • [(#DATE|date_relative{43200})]
  • [(#DATE|date_relative{0, #AUTRE_DATE})] Calcul relatif à une date spécifique
filtre
link
https://www.spip.net/4277
used-by
date_interface()
used-by
date_relativecourt()
Return values
string
  • La date relative
  • "" si pas de date ou si elle dépasse le décalage maximum indiqué.

date_relativecourt()

Retourne une date relative courte (passée ou à venir)

date_relativecourt(string $date[, int $decalage_maxi = 0 ]) : string

Retourne «hier», «aujourd'hui» ou «demain» si la date correspond, sinon utilise date_relative()

Parameters
$date : string

La date fournie

$decalage_maxi : int = 0

Durée écoulée, en secondes, au delà de laquelle on ne retourne pas de date relative Indiquer 0 (par défaut) pour ignorer.

Tags
example

[(#DATE|date_relativecourt)]

filtre
uses
date_relative()
Return values
string
  • La date relative
  • "" si pas de date ou si elle dépasse le décalage maximum indiqué.

affdate_base()

Formatage humain de la date `$numdate` selon le format `$vue`

affdate_base(string $numdate, string $vue[, array<string|int, mixed> $options = [] ]) : string
Parameters
$numdate : string

Une écriture de date

$vue : string

Type de format souhaité ou expression pour strtotime() tel que Y-m-d h:i:s

$options : array<string|int, mixed> = []

{param: string, annee_courante: int}

  • param: 'abbr' ou 'initiale' permet d'afficher les jours au format court ou initiale
  • annee_courante: Permet de definir l'annee de reference pour l'affichage des dates courtes
Return values
string

nom_jour()

Affiche le nom du jour pour une date donnée

nom_jour(string $numdate[, string $forme = '' ]) : string
Parameters
$numdate : string

Une écriture de date

$forme : string = ''

Forme spécifique de retour :

  • initiale : l'initiale du jour
  • abbr : abbréviation du jour
  • '' : le nom complet (par défaut)
Tags
example
  • [(#DATE|nom_jour)] lundi
  • [(#DATE|nom_jour{abbr})] lun.
  • [(#DATE|nom_jour{initiale})] l.
filtre
link
https://www.spip.net/4305
uses
affdate_base()
Return values
string

Nom du jour

jour()

Affiche le numéro du jour (1er à 31) pour une date donnée

jour(string $numdate) : string

Utilise une abbréviation (exemple "1er") pour certains jours, en fonction de la langue utilisée.

Parameters
$numdate : string

Une écriture de date

Tags
example

[(#DATE|jour)]

filtre
link
https://www.spip.net/4295
uses
affdate_base()
see
journum()
Return values
string

Numéro du jour

journum()

Affiche le numéro du jour (1 à 31) pour une date donnée

journum(string $numdate) : string
Parameters
$numdate : string

Une écriture de date

Tags
example

[(#DATE|journum)]

filtre
uses
affdate_base()
see
jour()
Return values
string

Numéro du jour

mois()

Affiche le numéro du mois (01 à 12) pour une date donnée

mois(string $numdate) : string
Parameters
$numdate : string

Une écriture de date

Tags
example

[(#DATE|mois)]

filtre
link
https://www.spip.net/4303
uses
affdate_base()
Return values
string

Numéro du mois (sur 2 chiffres)

nom_mois()

Affiche le nom du mois pour une date donnée

nom_mois(string $numdate[, string $forme = '' ]) : string
Parameters
$numdate : string

Une écriture de date

$forme : string = ''

Forme spécifique de retour :

  • abbr : abbréviation du mois
  • '' : le nom complet (par défaut)
Tags
example
  • [(#DATE|nom_mois)] novembre
  • [(#DATE|nom_mois{abbr})] nov.
filtre
link
https://www.spip.net/4306
uses
affdate_base()
Return values
string

Nom du mois

saison()

Affiche le nom boréal ou austral de la saison

saison(string $numdate[, string $hemisphere = 'nord' ]) : string
Parameters
$numdate : string

Une écriture de date

$hemisphere : string = 'nord'

Nom optionnel de l'hémisphère (sud ou nord) ; par défaut nord

Tags
filtre
link
https://www.spip.net/4311
uses
affdate_base()
example

En PHP

saison("2008-10-11 14:08:45") affiche "automne"
saison("2008-10-11 14:08:45", "sud") affiche "printemps"

En squelettes

[(#DATE|saison)]
[(#DATE|saison{sud})]
Return values
string

La date formatée

saison_annee()

Affiche le nom boréal ou austral de la saison suivi de l'année en cours

saison_annee(string $numdate[, string $hemisphere = 'nord' ]) : string
Parameters
$numdate : string

Une écriture de date

$hemisphere : string = 'nord'

Nom optionnel de l'hémisphère (sud ou nord) ; par défaut nord

Tags
filtre
uses
affdate_base()
example

En PHP

saison_annee("2008-10-11 14:08:45") affiche "automne 2008"
saison_annee("2008-10-11 14:08:45", "sud") affiche "printemps 2008"

En squelettes

[(#DATE|saison_annee)]
[(#DATE|saison_annee{sud})]
Return values
string

La date formatée

affdate()

Formate une date

affdate(string $numdate[, string $format = 'entier' ]) : string
Parameters
$numdate : string

Une écriture de date

$format : string = 'entier'

Type de format souhaité ou expression pour strtotime() tel que Y-m-d h:i:s

Tags
example

En PHPaffdate("2008-10-11 14:08:45") affiche "11 octobre 2008"

example

En squelettes

  • [(#DATE|affdate)]
  • [(#DATE|affdate{Y-m-d})]
filtre
link
https://www.spip.net/4129
uses
affdate_base()
see
affdate_court()
see
affdate_jourcourt()
used-by
affdate_heure()
Return values
string

La date formatée

affdate_court()

Formate une date, omet l'année si année courante, sinon omet le jour

affdate_court(string $numdate[, int|null $annee_courante = null ]) : string

Si l'année actuelle (ou indiquée dans $annee_courante) est 2015, retournera "21 juin" si la date en entrée est le 21 juin 2015, mais retournera "juin 2013" si la date en entrée est le 21 juin 2013.

Parameters
$numdate : string

Une écriture de date

$annee_courante : int|null = null

L'année de comparaison, utilisera l'année en cours si omis.

Tags
example

[(#DATE|affdate_court)]

filtre
link
https://www.spip.net/4130
uses
affdate_base()
see
affdate()
see
affdate_jourcourt()
Return values
string

La date formatée

affdate_jourcourt()

Formate une date, omet l'année si année courante

affdate_jourcourt(string $numdate[, int|null $annee_courante = null ]) : string

Si l'année actuelle (ou indiquée dans $annee_courante) est 2015, retournera "21 juin" si la date en entrée est le 21 juin 2015, mais retournera "21 juin 2013" si la date en entrée est le 21 juin 2013.

Parameters
$numdate : string

Une écriture de date

$annee_courante : int|null = null

L'année de comparaison, utilisera l'année en cours si omis.

Tags
example

[(#DATE|affdate_jourcourt)]

filtre
link
https://www.spip.net/4131
uses
affdate_base()
see
affdate()
see
affdate_court()
Return values
string

La date formatée

affdate_mois_annee()

Retourne le mois en toute lettre et l’année d'une date

affdate_mois_annee(string $numdate) : string

Ne retourne pas le jour donc.

Parameters
$numdate : string

Une écriture de date

Tags
filtre
link
https://www.spip.net/4132
uses
affdate_base()
Return values
string

La date formatée

affdate_heure()

Retourne la date suivie de l'heure

affdate_heure(string $numdate) : string
Parameters
$numdate : string

Une écriture de date

Tags
example

[(#DATE|affdate_heure)] peut donner "11 novembre 2015 à 11h10min"

filtre
uses
recup_date()
uses
affdate()
used-by
date_interface()

utilisé si le décalage est trop grand

Return values
string

La date formatée, sinon ''

affdate_debut_fin()

Afficher de facon textuelle les dates de début et fin en fonction des cas

affdate_debut_fin(string $date_debut, string $date_fin[, string $horaire = 'oui' ][, string $forme = '' ]) : string
  • Lundi 20 fevrier a 18h
  • Le 20 fevrier de 18h a 20h
  • Du 20 au 23 fevrier
  • Du 20 fevrier au 30 mars
  • Du 20 fevrier 2007 au 30 mars 2008

$horaire='oui' ou true permet d'afficher l'horaire, toute autre valeur n'indique que le jour $forme peut contenir une ou plusieurs valeurs parmi

  • abbr (afficher le nom des jours en abrege)
  • hcal (generer une date au format hcal)
  • jour (forcer l'affichage des jours)
  • annee (forcer l'affichage de l'annee)
Parameters
$date_debut : string
$date_fin : string
$horaire : string = 'oui'
$forme : string = ''
  • abbr pour afficher le nom du jour en abrege (Dim. au lieu de Dimanche)
  • annee pour forcer l'affichage de l'annee courante
  • jour pour forcer l'affichage du nom du jour
  • hcal pour avoir un markup microformat abbr
Return values
string

texte de la date

date_ical()

Adapte une date pour être insérée dans une valeur de date d'un export ICAL

date_ical(string $date[, int $addminutes = 0 ]) : string

Retourne une date au format Ymd\THis\Z, tel que '20150428T163254Z'

Parameters
$date : string

La date

$addminutes : int = 0

Ajouter autant de minutes à la date

Tags
example

DTSTAMP:[(#DATE|date_ical)]

filtre
uses
recup_heure()
uses
recup_date()
Return values
string

Date au format ical

date_iso()

Retourne une date formattée au format "RFC 3339" ou "ISO 8601"

date_iso(string $date_heure) : string
Parameters
$date_heure : string

Une écriture de date

Tags
example

[(#DATE|date_iso)] peut donner "2015-11-11T10:13:45Z"

filtre
link
https://www.spip.net/5641
link
https://fr.wikipedia.org/wiki/ISO_8601
link
http://www.ietf.org/rfc/rfc3339.txt
link
http://php.net/manual/fr/class.datetime.php
uses
recup_date()
uses
recup_heure()
Return values
string

La date formatée

date_anneemoisjour()

Pour une date commençant par `Y-m-d`, retourne `Ymd`

date_anneemoisjour(string $d) : string
Parameters
$d : string

Une écriture de date commençant par un format Y-m-d (comme date ou datetime SQL). Si vide, utilise la date actuelle.

Tags
example

date_anneemoisjour('2015-10-11 11:27:03') retourne 20151011

see
date_anneemois()
Return values
string

Date au format Ymd

date_anneemois()

Pour une date commençant par `Y-m`, retourne `Ym`

date_anneemois(string $d) : string
Parameters
$d : string

Une écriture de date commençant par un format Y-m (comme date ou datetime SQL). Si vide, utilise la date actuelle.

Tags
example

date_anneemoisjour('2015-10-11 11:27:03') retourne 201510

see
date_anneemoisjour()
Return values
string

Date au format Ym

date_debut_semaine()

Retourne le premier jour (lundi) de la même semaine au format `Ymd`

date_debut_semaine(int $annee, int $mois, int $jour) : string
Parameters
$annee : int
$mois : int
$jour : int
Tags
example

date_debut_semaine(2015, 11, 11) retourne 20151109

see
date_fin_semaine()
Return values
string

Date au lundi de la même semaine au format Ymd

date_fin_semaine()

Retourne le dernier jour (dimanche) de la même semaine au format `Ymd`

date_fin_semaine(int $annee, int $mois, int $jour) : string
Parameters
$annee : int
$mois : int
$jour : int
Tags
example

date_debut_semaine(2015, 11, 11) retourne 20151115

see
date_fin_semaine()
Return values
string

Date au dimanche de la même semaine au format Ymd

parametres_css_prive()

Retourne les paramètres de personnalisation css de l'espace privé

parametres_css_prive() : string

Ces paramètres sont (ltr et couleurs) ce qui permet une écriture comme : generer_url_public('style_prive', parametres_css_prive()) qu'il est alors possible de récuperer dans le squelette style_prive.html avec

#SET{claire,##ENV{couleur_claire,edf3fe}} #SET{foncee,##ENV{couleur_foncee,3874b0}} #SET{left,#ENV{ltr}|choixsiegal{left,left,right}} #SET{right,#ENV{ltr}|choixsiegal{left,right,left}}

Return values
string

chercher_rubrique()

Afficher le sélecteur de rubrique

chercher_rubrique(string $titre, int $id_objet, int $id_parent, string $objet, int $id_secteur, bool $restreint[, bool $actionable = false ][, bool $retour_sans_cadre = false ]) : string

Il permet de placer un objet dans la hiérarchie des rubriques de SPIP

Parameters
$titre : string
$id_objet : int
$id_parent : int
$objet : string
$id_secteur : int
$restreint : bool
$actionable : bool = false

true : fournit le selecteur dans un form directement postable

$retour_sans_cadre : bool = false
Tags
uses
inc_chercher_rubrique_dist()
used-by
filtre_chercher_rubrique_dist()
Return values
string

avoir_visiteurs()

Tester si le site peut avoir des visiteurs

avoir_visiteurs([bool $past = false ][, bool $accepter = true ]) : bool
Parameters
$past : bool = false

si true, prendre en compte le fait que le site a deja des visiteurs comme le droit d'en avoir de nouveaux

$accepter : bool = true
Return values
bool

statuts_articles_visibles()

Lister les status d'article visibles dans l'espace prive en fonction du statut de l'auteur

statuts_articles_visibles(string $statut_auteur) : array<string|int, mixed>

Pour l'extensibilie de SPIP, on se repose sur autoriser('voir','article') en testant un à un les status présents en base

On mémorise en static pour éviter de refaire plusieurs fois.

Parameters
$statut_auteur : string
Return values
array<string|int, mixed>

traduire_statut_auteur()

Traduire le statut technique de l'auteur en langage compréhensible

traduire_statut_auteur(string $statut[, string $attente = '' ]) : string

Si $statut=='nouveau' et que le statut en attente est fourni, le prendre en compte en affichant que l'auteur est en attente

Parameters
$statut : string
$attente : string = ''
Return values
string

afficher_qui_edite()

Afficher la mention des autres auteurs ayant modifié un objet

afficher_qui_edite(int $id_objet, string $objet) : string
Parameters
$id_objet : int
$objet : string
Return values
string

auteurs_lister_statuts()

Lister les statuts des auteurs

auteurs_lister_statuts([string $quoi = 'tous' ][, bool $en_base = true ]) : array<string|int, mixed>
Parameters
$quoi : string = 'tous'
  • redacteurs : retourne les statuts des auteurs au moins redacteur, tels que defini par AUTEURS_MIN_REDAC
  • visiteurs : retourne les statuts des autres auteurs, cad les visiteurs et autres statuts perso
  • tous : retourne tous les statuts connus
$en_base : bool = true

si true, ne retourne strictement que les status existants en base dans tous les cas, les statuts existants en base sont inclus

Return values
array<string|int, mixed>

trouver_rubrique_creer_objet()

Déterminer la rubrique pour la création d'un objet heuristique

trouver_rubrique_creer_objet(int $id_rubrique, string $objet) : int

Rubrique courante si possible,

  • sinon rubrique administrée pour les admin restreint
  • sinon première rubrique de premier niveau autorisée que l'on trouve
Parameters
$id_rubrique : int

Identifiant de rubrique (si connu)

$objet : string

Objet en cours de création

Return values
int

Identifiant de la rubrique dans laquelle créer l'objet

lien_article_virtuel()

Afficher le lien de redirection d'un article virtuel si il y a lieu (rien si l'article n'est pas redirige)

lien_article_virtuel(string $virtuel) : string
Parameters
$virtuel : string
Return values
string

bouton_spip_rss()

Filtre pour générer un lien vers un flux RSS privé

bouton_spip_rss(string $op[, array<string|int, mixed> $args = [] ][, string $lang = '' ][, string $title = 'RSS' ]) : string

Le RSS est protegé par un hash de faible sécurité

Parameters
$op : string
$args : array<string|int, mixed> = []
$lang : string = ''
$title : string = 'RSS'
Tags
uses
generer_url_api_low_sec()
example
  • [(#VAL{a_suivre}|bouton_spip_rss)]
  • [(#VAL{signatures}|bouton_spip_rss{#ARRAY{id_article,#ID_ARTICLE}})]
filtre
Return values
string

Code HTML du lien

alertes_auteur()

Vérifier la présence d'alertes pour les auteur

alertes_auteur(int $id_auteur) : string
Parameters
$id_auteur : int
Return values
string

filtre_afficher_enfant_rub_dist()

Filtre pour afficher les rubriques enfants d'une rubrique

filtre_afficher_enfant_rub_dist(int $id_rubrique) : string
Parameters
$id_rubrique : int
Return values
string

afficher_plus_info()

Afficher un petit "i" pour lien vers autre page

afficher_plus_info(string $lien[, string $titre = '+' ][, string $titre_lien = '' ]) : string
Parameters
$lien : string

URL du lien desire

$titre : string = '+'

Titre au survol de l'icone pointant le lien

$titre_lien : string = ''

Si present, ajoutera en plus apres l'icone un lien simple, vers la meme URL, avec le titre indique

Return values
string

lister_objets_lies()

Lister les id objet_source associés à l'objet id_objet via la table de lien objet_lien

lister_objets_lies(string $objet_source, string $objet, int $id_objet, string $objet_lien) : array<string|int, mixed>

Utilisé pour les listes de #FORMULAIRE_EDITER_LIENS

Parameters
$objet_source : string
$objet : string
$id_objet : int
$objet_lien : string
Return values
array<string|int, mixed>

_couleur_dec_to_hex()

Transforme une couleur vectorielle R,G,B en hexa (par exemple pour usage css)

_couleur_dec_to_hex(int $red, int $green, int $blue) : string
Parameters
$red : int

Valeur du rouge de 0 à 255.

$green : int

Valeur du vert de 0 à 255.

$blue : int

Valeur du bleu de 0 à 255.

Return values
string

Le code de la couleur en hexadécimal.

_couleur_hex_to_dec()

Transforme une couleur hexa en vectorielle R,G,B

_couleur_hex_to_dec(string $couleur) : array<string|int, mixed>
Parameters
$couleur : string

Code couleur en hexa (#000000 à #FFFFFF).

Return values
array<string|int, mixed>

Un tableau des 3 éléments : rouge, vert, bleu.

_couleur_hsl_to_hex()

Transforme une couleur vectorielle H,S,L en hexa (par exemple pour usage css)

_couleur_hsl_to_hex(int $hue, int $saturation, int $lightness) : string
Parameters
$hue : int

Valeur de teinte de 0 à 1.

$saturation : int

Valeur de saturation de 0 à 1.

$lightness : int

Valeur de luminosité de 0 à 1.

Return values
string

Le code de la couleur en hexadécimal.

_couleur_hex_to_hsl()

Transforme une couleur vectorielle H,S,L en hexa (par exemple pour usage css)

_couleur_hex_to_hsl(string $couleur) : array<string|int, mixed>
Parameters
$couleur : string

Code couleur en hexa (#000000 à #FFFFFF).

Return values
array<string|int, mixed>

Un tableau des 3 éléments : teinte, saturation, luminosité.

_couleur_rgb_to_hsl()

Transformation d'une couleur RGB en HSL

_couleur_rgb_to_hsl(int $R, int $G, int $B) : array<string|int, mixed>

HSL float entre 0 et 1 RGB entiers entre 0 et 255

Parameters
$R : int
$G : int
$B : int
Return values
array<string|int, mixed>

_couleur_hsl_to_rgb()

Transformation d'une couleur HSL en RGB

_couleur_hsl_to_rgb(float $H, float $S, float $L) : array<string|int, mixed>

HSL float entre 0 et 1 RGB entiers entre 0 et 255

Parameters
$H : float
$S : float
$L : float
Return values
array<string|int, mixed>

statut_effacer_images_temporaires()

Donne un statut au fichier-image intermédiaire servant au traitement d'image selon qu'il doit être gravé (fichier .src) ou pas.

statut_effacer_images_temporaires(bool|string $stat) : bool|void

Un appel PHP direct aux fonctions de filtre d'image produira ainsi une image permanente (gravée) ; un appel généré par le compilateur via filtrer('image_xx, ...) effacera automatiquement le fichier-image temporaire.

Parameters
$stat : bool|string
  • true, false ou le statut déjà défini
  • 'get' pour obtenir le statut sauvé si traitements enchaînés.
Return values
bool|void

true si il faut supprimer le fichier temporaire ; false sinon.

_image_valeurs_trans()

Fonctions de preparation aux filtres de traitement d'image les fonctions de lecture et d'ecriture renseignees traitent uniquement le cas GD2 qui est le cas general des filtres images

_image_valeurs_trans(string $img, string $effet[, bool|string $forcer_format = false ][, array<string|int, mixed> $fonction_creation = null ][, bool $find_in_path = false ][, bool $support_svg = false ]) : bool|string|array<string|int, mixed>

mais image_reduire utilise aussi cette fonction en adaptant le traitement en fonction de la librairie graphique choisie dans la configuration de SPIP

Parameters
$img : string

Chemin de l'image ou balise html <img src=... />.

$effet : string

Les nom et paramètres de l'effet à apporter sur l'image (par exemple : reduire-300-200).

$forcer_format : bool|string = false

Un nom d'extension spécifique demandé (par exemple : jpg, png, txt...). Par défaut false : GD se débrouille seule).

$fonction_creation : array<string|int, mixed> = null

Un tableau à 2 éléments :

  1. string : indique le nom du filtre de traitement demandé (par exemple : image_reduire) ;
  2. array : tableau reprenant la valeur de $img et chacun des arguments passés au filtre utilisé.
$find_in_path : bool = false

false (par défaut) indique que l'on travaille sur un fichier temporaire (.src) ; true, sur un fichier définitif déjà existant.

$support_svg : bool = false

false (par defaut) indique que le filtre ne sait pas traiter le cas particulier du SVG on lui substitue un filtre generique qui ne fait rien pour ne pas briser la chaine des filtres images true si le filtre appelant sait traiter les SVG

Tags
pipeline_appel

image_preparer_filtre

uses
extraire_attribut()
uses
inserer_attribut()
uses
tester_url_absolue()
uses
copie_locale()

Si l'image est distante

uses
taille_image()
uses
_image_ratio()
uses
reconstruire_image_intermediaire()
used-by
process_image_reduire()
Return values
bool|string|array<string|int, mixed>
  • false si pas de tag <img,
    • si l'extension n'existe pas,
    • si le fichier source n'existe pas,
    • si les dimensions de la source ne sont pas accessibles,
    • si le fichier temporaire n'existe pas,
    • si la fonction _imagecreatefrom{extension} n'existe pas ;
  • "" (chaîne vide) si le fichier source est distant et n'a pas réussi à être copié sur le serveur ;
  • array : tableau décrivant de l'image

_image_extensions_acceptees_en_entree()

Extensions d’images acceptées en entrée

_image_extensions_acceptees_en_entree() : array<string|int, mixed>
Return values
array<string|int, mixed>

_image_extensions_acceptees_en_sortie()

Extensions d’images acceptées en sortie

_image_extensions_acceptees_en_sortie() : array<string|int, mixed>
Return values
array<string|int, mixed>

_image_trouver_extension()

Retourne la terminaison d’un fichier image

_image_trouver_extension(string $path) : string
Parameters
$path : string
Return values
string

_image_trouver_extension_pertinente()

Tente de trouver le véritable type d’une image, même si une image est d’extension .jpg alors que son contenu est autre chose (gif ou png)

_image_trouver_extension_pertinente(string $path) : string
Parameters
$path : string
Return values
string

Extension, dans le format attendu par les fonctions 'gd' ('jpeg' pour les .jpg par exemple)

_image_trouver_extension_depuis_mime()

Retourne une extension d’image depuis un mime-type

_image_trouver_extension_depuis_mime(string $mime) : string
Parameters
$mime : string
Return values
string

_imagecreatefrom_func()

Crée une image depuis un fichier ou une URL (en indiquant la fonction GD à utiliser)

_imagecreatefrom_func(string $func, string $filename) : resource|null

Utilise les fonctions spécifiques GD.

  • Si la fonction GD n'existe pas (GD non actif?), génère une erreur, mais ne retourne rien
  • Si l'image est impossible à créer avec la fonction indiquée, génère une erreur, et une image vide
Parameters
$func : string

Fonction GD à utiliser tel que 'imagecreatefromjpeg'

$filename : string

Le path vers l'image à traiter (par exemple : IMG/distant/jpg/image.jpg ou local/cache-vignettes/L180xH51/image.jpg).

Return values
resource|null

Une ressource de type Image GD.

_imagecreatefromjpeg()

Crée une image depuis un fichier ou une URL (au format jpeg)

_imagecreatefromjpeg(string $filename) : resource|null

Utilise les fonctions spécifiques GD.

Parameters
$filename : string

Le path vers l'image à traiter (par exemple : IMG/distant/jpg/image.jpg ou local/cache-vignettes/L180xH51/image.jpg).

Tags
uses
_imagecreatefrom_func()
Return values
resource|null

Une ressource de type Image GD.

_imagecreatefrompng()

Crée une image depuis un fichier ou une URL (au format png)

_imagecreatefrompng(string $filename) : resource|null

Utilise les fonctions spécifiques GD.

Parameters
$filename : string

Le path vers l'image à traiter (par exemple : IMG/distant/png/image.png ou local/cache-vignettes/L180xH51/image.png).

Tags
uses
_imagecreatefrom_func()
Return values
resource|null

Une ressource de type Image GD.

_imagecreatefromgif()

Crée une image depuis un fichier ou une URL (au format gif)

_imagecreatefromgif(string $filename) : resource|null

Utilise les fonctions spécifiques GD.

Parameters
$filename : string

Le path vers l'image à traiter (par exemple : IMG/distant/gif/image.gif ou local/cache-vignettes/L180xH51/image.gif).

Tags
uses
_imagecreatefrom_func()
Return values
resource|null

Une ressource de type Image GD.

_imagecreatefromwebp()

Crée une image depuis un fichier ou une URL (au format webp)

_imagecreatefromwebp(string $filename) : resource|null

Utilise les fonctions spécifiques GD.

Parameters
$filename : string

Le path vers l'image à traiter (par exemple : IMG/distant/png/image.webp ou local/cache-vignettes/L180xH51/image.webp).

Tags
uses
_imagecreatefrom_func()
Return values
resource|null

Une ressource de type Image GD.

_image_imagepng()

Affiche ou sauvegarde une image au format PNG

_image_imagepng(resource $img, string $fichier) : bool

Utilise les fonctions spécifiques GD.

Parameters
$img : resource

Une ressource de type Image GD.

$fichier : string

Le path vers l'image (ex : local/cache-vignettes/L180xH51/image.png).

Return values
bool
  • false si l'image créée a une largeur nulle ou n'existe pas ;
  • true si une image est bien retournée.

_image_imagegif()

Affiche ou sauvegarde une image au format GIF

_image_imagegif(resource $img, string $fichier) : bool

Utilise les fonctions spécifiques GD.

Parameters
$img : resource

Une ressource de type Image GD.

$fichier : string

Le path vers l'image (ex : local/cache-vignettes/L180xH51/image.gif).

Return values
bool
  • false si l'image créée a une largeur nulle ou n'existe pas ;
  • true si une image est bien retournée.

_image_imagejpg()

Affiche ou sauvegarde une image au format JPG

_image_imagejpg(resource $img, string $fichier[, int $qualite = _IMG_GD_QUALITE ]) : bool

Utilise les fonctions spécifiques GD.

Parameters
$img : resource

Une ressource de type Image GD.

$fichier : string

Le path vers l'image (ex : local/cache-vignettes/L180xH51/image.jpg).

$qualite : int = _IMG_GD_QUALITE

Le niveau de qualité du fichier résultant : de 0 (pire qualité, petit fichier) à 100 (meilleure qualité, gros fichier). Par défaut, prend la valeur (85) de la constante _IMG_GD_QUALITE (modifiable depuis mes_options.php).

Return values
bool
  • false si l'image créée a une largeur nulle ou n'existe pas ;
  • true si une image est bien retournée.

_image_imageico()

Crée un fichier-image au format ICO

_image_imageico(resource $img, string $fichier) : bool

Utilise les fonctions de la classe phpthumb_functions.

Parameters
$img : resource

Une ressource de type Image GD.

$fichier : string

Le path vers l'image (ex : local/cache-vignettes/L180xH51/image.jpg).

Tags
uses
phpthumb_functions::GD2ICOstring()
Return values
bool

true si le fichier a bien été créé ; false sinon.

_image_imagewebp()

Affiche ou sauvegarde une image au format WEBP

_image_imagewebp(resource $img, string $fichier[, mixed $qualite = _IMG_GD_QUALITE ]) : bool

Utilise les fonctions spécifiques GD.

Parameters
$img : resource

Une ressource de type Image GD.

$fichier : string

Le path vers l'image (ex : local/cache-vignettes/L180xH51/image.webp).

$qualite : mixed = _IMG_GD_QUALITE
Return values
bool
  • false si l'image créée a une largeur nulle ou n'existe pas ;
  • true si une image est bien retournée.

_image_imagesvg()

Sauvegarde une image au format SVG

_image_imagesvg(string $img, string $fichier) : bool
  • N'UTILISE PAS GD - C'est une fonction derogatoire pour faciliter le traitement des SVG
Parameters
$img : string

contenu du SVG ou chemin vers le SVG source (et c'est alors une copie)

$fichier : string

Le path vers l'image (ex : local/cache-vignettes/L180xH51/image.png).

Return values
bool
  • false si l'image créée a une largeur nulle ou n'existe pas ;
  • true si une image est bien retournée.

_image_gd_output()

Finalise le traitement GD

_image_gd_output(resource|string $img, array<string|int, mixed> $valeurs[, int $qualite = _IMG_GD_QUALITE ][, mixed $fonction = null ]) : bool

Crée un fichier_image temporaire .src ou vérifie que le fichier_image définitif a bien été créé.

Parameters
$img : resource|string

Une ressource de type Image GD (ou une string pour un SVG)

$valeurs : array<string|int, mixed>

Un tableau des informations (tailles, traitement, path...) accompagnant l'image.

$qualite : int = _IMG_GD_QUALITE

N'est utilisé que pour les images jpg. Le niveau de qualité du fichier résultant : de 0 (pire qualité, petit fichier) à 100 (meilleure qualité, gros fichier). Par défaut, prend la valeur (85) de la constante _IMG_GD_QUALITE (modifiable depuis mes_options.php).

$fonction : mixed = null
Tags
uses
statut_effacer_images_temporaires()
Return values
bool
  • true si le traitement GD s'est bien finalisé ;
  • false sinon.

reconstruire_image_intermediaire()

Reconstruit une image à partir des sources de contrôle de son ancienne construction

reconstruire_image_intermediaire(string $fichier_manquant) : mixed
Parameters
$fichier_manquant : string

Chemin vers le fichier manquant

Tags
uses
ramasse_miettes()
used-by
_image_valeurs_trans()
used-by
image_graver()

Si l'image finale a déjà été supprimée car considérée comme temporaire par une autre série de filtres images débutant pareil

ramasse_miettes()

Indique qu'un fichier d'image calculé est à conserver

ramasse_miettes(string $fichier) : mixed

Permet de rendre une image définitive et de supprimer les images intermédiaires à son calcul.

Supprime le fichier de contrôle de l’image cible (le $fichier.src) ce qui indique que l'image est définitive.

Remonte ensuite la chaîne des fichiers de contrôle pour supprimer les images temporaires (mais laisse les fichiers de contrôle permettant de les reconstruire).

Parameters
$fichier : string

Chemin du fichier d'image calculé

Tags
used-by
reconstruire_image_intermediaire()
used-by
image_graver()

Pour déclarer l'image définitive et nettoyer les images intermédiaires.

image_graver()

Clôture une série de filtres d'images

image_graver(string $img) : string

Ce filtre est automatiquement appelé à la fin d'une série de filtres d'images dans un squelette.

Parameters
$img : string

Code HTML de l'image

Tags
filtre
uses
reconstruire_image_intermediaire()

Si l'image finale a déjà été supprimée car considérée comme temporaire par une autre série de filtres images débutant pareil

uses
ramasse_miettes()

Pour déclarer l'image définitive et nettoyer les images intermédiaires.

pipeline_appel

post_image_filtrer

Return values
string

Code HTML de l'image

_image_tag_changer_taille()

Applique des attributs de taille (width, height) à une balise HTML

_image_tag_changer_taille(string $tag, int $width, int $height[, bool|string $style = false ]) : string

Utilisé avec des balises <img> tout particulièrement.

Modifie l'attribut style s'il était renseigné, en enlevant les informations éventuelles width / height dedans.

Parameters
$tag : string

Code html de la balise

$width : int

Hauteur

$height : int

Largeur

$style : bool|string = false

Attribut html style à appliquer. False extrait celui présent dans la balise

Tags
uses
extraire_attribut()
uses
inserer_attribut()
used-by
_image_ecrire_tag()
used-by
process_image_reduire()
Return values
string

Code html modifié de la balise.

_image_ecrire_tag()

Écriture de la balise img en sortie de filtre image

_image_ecrire_tag(array<string|int, mixed> $valeurs[, array<string|int, mixed> $surcharge = [] ]) : string

Reprend le tag initial et surcharge les attributs modifiés

Parameters
$valeurs : array<string|int, mixed>

Description de l'image tel que retourné par _image_valeurs_trans()

$surcharge : array<string|int, mixed> = []

Permet de surcharger certaines descriptions présentes dans $valeurs tel que 'style', 'width', 'height'

Tags
pipeline_appel

image_ecrire_tag_preparer

pipeline_appel

image_ecrire_tag_finir

uses
_image_tag_changer_taille()
uses
extraire_attribut()
uses
inserer_attribut()
see
_image_valeurs_trans()
used-by
process_image_reduire()
Return values
string

Retourne le code HTML de l'image

_image_creer_vignette()

Crée si possible une miniature d'une image

_image_creer_vignette(array<string|int, mixed> $valeurs, int $maxWidth, int $maxHeight[, string $process = 'AUTO' ][, bool $force = false ]) : array<string|int, mixed>|null
Parameters
$valeurs : array<string|int, mixed>

Description de l'image, telle que retournée par _image_valeurs_trans()

$maxWidth : int

Largeur maximum en px de la miniature à réaliser

$maxHeight : int

Hauteur maximum en px de la miniateure à réaliser

$process : string = 'AUTO'

Librairie graphique à utiliser (gd1, gd2, netpbm, convert, imagick). AUTO utilise la librairie sélectionnée dans la configuration.

$force : bool = false
Tags
see
_image_valeurs_trans()
uses
_image_ratio()
used-by
process_image_reduire()
Return values
array<string|int, mixed>|null

Description de l'image, sinon null.

_image_ratio()

Réduire des dimensions en respectant un ratio

_image_ratio(int $srcWidth, int $srcHeight, int $maxWidth, int $maxHeight) : array<string|int, mixed>

Réduit des dimensions (hauteur, largeur) pour qu'elles soient incluses dans une hauteur et largeur maximum fournies en respectant la proportion d'origine

Parameters
$srcWidth : int

Largeur de l'image source

$srcHeight : int

Hauteur de l'image source

$maxWidth : int

Largeur maximum souhaitée

$maxHeight : int

Hauteur maximum souhaitée

Tags
example

image_ratio(1000, 1000, 100, 10) donne array(10, 10, 100)

see
ratio_passe_partout()

Assez proche.

used-by
_image_valeurs_trans()
used-by
_image_creer_vignette()
used-by
process_image_reduire()
Return values
array<string|int, mixed>

Liste [ largeur, hauteur, ratio de réduction ]

ratio_passe_partout()

Réduire des dimensions en respectant un ratio sur la plus petite dimension

ratio_passe_partout(int $srcWidth, int $srcHeight, int $maxWidth, int $maxHeight) : array<string|int, mixed>

Réduit des dimensions (hauteur, largeur) pour qu'elles soient incluses dans la plus grande hauteur ou largeur maximum fournie en respectant la proportion d'origine

Parameters
$srcWidth : int

Largeur de l'image source

$srcHeight : int

Hauteur de l'image source

$maxWidth : int

Largeur maximum souhaitée

$maxHeight : int

Hauteur maximum souhaitée

Tags
example

ratio_passe_partout(1000, 1000, 100, 10) donne array(100, 100, 10)

see
_image_ratio()

Assez proche.

used-by
image_passe_partout()
Return values
array<string|int, mixed>

Liste [ largeur, hauteur, ratio de réduction ]

process_image_svg_identite()

Fonction identite de traitement par defaut des images SVG (quand un filtre n'annonce pas qu'il sait traiter un SVG on applique cette fonction a la place)

process_image_svg_identite(array<string|int, mixed> $image) : string
Parameters
$image : array<string|int, mixed>

tableau des valeurs crees par _image_valeurs_trans

Return values
string

process_image_reduire()

Réduit une image

process_image_reduire(array<string|int, mixed> $fonction, string $img, int $taille, int $taille_y, bool $force[, string $process = 'AUTO' ]) : string
Parameters
$fonction : array<string|int, mixed>

Un tableau à 2 éléments :

  1. string : indique le nom du filtre de traitement demandé (par exemple : image_reduire) ;
  2. array : tableau reprenant la valeur de $img et chacun des arguments passés au filtre utilisé.
$img : string

Chemin de l'image ou texte contenant une balise img

$taille : int

Largeur désirée

$taille_y : int

Hauteur désirée

$force : bool
$process : string = 'AUTO'

Librairie graphique à utiliser (gd2, netpbm, convert, imagick). AUTO utilise la librairie sélectionnée dans la configuration.

Tags
uses
extraire_attribut()
uses
inserer_attribut()
uses
_image_valeurs_trans()
uses
_image_ratio()
uses
_image_tag_changer_taille()
uses
_image_ecrire_tag()
uses
_image_creer_vignette()
used-by
image_passe_partout()
used-by
image_reduire()
Return values
string

Code HTML de la balise img produite

couleur_html_to_hex()

Transforme un code couleur textuel (black, white, green...) et code hexadécimal

couleur_html_to_hex(string $couleur) : string
Parameters
$couleur : string

Le code couleur textuel

Return values
string

Le code hexadécimal de la couleur (sans le #) ou le code couleur textuel si non trouvé

couleur_hex_to_hsl()

Retourne une couleur hsl a partir d'une couleur hex

couleur_hex_to_hsl(string $couleur[, string|null $format = null ]) : string
Parameters
$couleur : string
$format : string|null = null

Si précisé, remplace h, s ou l par sa valeur dans la chaine passée.

Tags
example

couleur_hex_to_hsl("#ffccaa");

example

couleur_hex_to_hsl("#ffccaa", "h");

example

couleur_hex_to_hsl("#ffccaa", "h, s, l");

filtre
Return values
string

Couleur tel que "hsl(200, 40%, 34%)" ou valeur formattée

couleur_hex_to_rgb()

Retourne une couleur rgb a partir d'une couleur hex

couleur_hex_to_rgb(string $couleur[, string|null $format = null ]) : string
Parameters
$couleur : string
$format : string|null = null

Si précisé, remplace r, g ou b par sa valeur dans la chaine passée.

Tags
example

couleur_hex_to_rgb("#ffccaa");

example

couleur_hex_to_rgb("#ffccaa", "r");

example

couleur_hex_to_rgb("#ffccaa", "r, g, b");

filtre
Return values
string

Couleur tel que "rgb(200, 40, 84)" ou valeur formattée

couleur_foncer()

Rend une couleur (code hexadécimal) plus foncée

couleur_foncer(string $couleur[, float $coeff = 0.5 ]) : string
Parameters
$couleur : string

Code hexadécimal d'une couleur

$coeff : float = 0.5

Coefficient (de 0 à 1)

Tags
uses
_couleur_hex_to_dec()

Pour transformer le code hexadécimal en décimal

Return values
string

Code hexadécimal de la couleur plus foncée

couleur_eclaircir()

Eclaircit une couleur (code hexadécimal)

couleur_eclaircir(string $couleur[, float $coeff = 0.5 ]) : string
Parameters
$couleur : string

Code hexadécimal d'une couleur

$coeff : float = 0.5

Coefficient (de 0 à 1)

Tags
uses
_couleur_hex_to_dec()

Pour transformer le code hexadécimal en décimal

Return values
string

Code hexadécimal de la couleur éclaircie

image_select()

Selectionne les images qui vont subir une transformation sur un critere de taille

image_select(string $img[, int $width_min = 0 ][, int $height_min = 0 ][, int $width_max = 10000 ][, int $height_max = 1000 ]) : Le

Les images exclues sont marquees d'une class filtre_inactif qui bloque les filtres suivants dans la fonction image_filtrer

Parameters
$img : string

Un tag html <img src=... />.

$width_min : int = 0

Largeur minimale de l'image à traiter (0 par défaut)

$height_min : int = 0

Hauteur minimale de l'image à traiter (0 par défaut)

$width_max : int = 10000

Largeur minimale de l'image à traiter (10000 par défaut)

$height_max : int = 1000

Hauteur minimale de l'image à traiter (10000 par défaut)

Return values
Le

tag html <img src=... /> avec une class filtre_inactif ou pas

image_passe_partout()

Réduit les images à une taille maximale (chevauchant un rectangle)

image_passe_partout(string $img[, int $taille_x = -1 ][, int $taille_y = -1 ][, bool $force = false ][, bool $cherche_image = false ][, string $process = 'AUTO' ]) : string

L'image possède un côté réduit dans les dimensions indiquées et l'autre côté (hauteur ou largeur) de l'image peut être plus grand que les dimensions du rectangle.

Alors que image_reduire produit la plus petite image tenant dans un rectangle, image_passe_partout produit la plus grande image qui remplit ce rectangle.

Parameters
$img : string

Chemin de l'image ou code html d'une balise img

$taille_x : int = -1
  • Largeur maximale en pixels désirée
  • -1 prend la taille de réduction des vignettes par défaut
  • 0 la taille s'adapte à la largeur
$taille_y : int = -1
  • Hauteur maximale en pixels désirée
  • -1 pour prendre pareil que la largeur
  • 0 la taille s'adapte à la hauteur
$force : bool = false
$cherche_image : bool = false

Inutilisé

$process : string = 'AUTO'

Librairie graphique à utiliser (gd2, netpbm, convert, imagick). AUTO utilise la librairie sélectionnée dans la configuration.

Tags
example
[(#FICHIER
  |image_passe_partout{70,70}
  |image_recadre{70,70,center})]
filtre
link
https://www.spip.net/4562
see
image_reduire()
uses
taille_image()
uses
ratio_passe_partout()
uses
process_image_reduire()
Return values
string

Code HTML de l'image ou du texte.

image_reduire()

Réduit les images à une taille maximale (inscrite dans un rectangle)

image_reduire(string $img[, int $taille = -1 ][, int $taille_y = -1 ][, bool $force = false ][, bool $cherche_image = false ][, string $process = 'AUTO' ]) : string

L'image possède un côté dans les dimensions indiquées et l'autre côté (hauteur ou largeur) de l'image peut être plus petit que les dimensions du rectangle.

Peut être utilisé pour réduire toutes les images d'un texte.

Parameters
$img : string

Chemin de l'image ou code html d'une balise img

$taille : int = -1
  • Largeur maximale en pixels désirée
  • -1 prend la taille de réduction des vignettes par défaut
  • 0 la taille s'adapte à la largeur
$taille_y : int = -1
  • Hauteur maximale en pixels désirée
  • -1 pour prendre pareil que la largeur
  • 0 la taille s'adapte à la hauteur
$force : bool = false
$cherche_image : bool = false

Inutilisé

$process : string = 'AUTO'

Librairie graphique à utiliser (gd2, netpbm, convert, imagick). AUTO utilise la librairie sélectionnée dans la configuration.

Tags
example
[(#LOGO_ARTICLE|image_reduire{130})]
[(#TEXTE|image_reduire{600,0})]
filtre
see
image_reduire_par()
see
image_passe_partout()
uses
process_image_reduire()
used-by
image_reduire_par()
Return values
string

Code HTML de l'image ou du texte.

image_recadre_avec_fallback()

Usage espace privé: recadre une image uniquement si GD2 et image_recadre (plugin activé) existe sinon retourne le image_passe_partout usuel

image_recadre_avec_fallback(mixed $im, mixed $width[, mixed $height = '-' ][, mixed $position = 'focus' ][, mixed $background_color = 'white' ]) : mixed
Parameters
$im : mixed
$width : mixed
$height : mixed = '-'
$position : mixed = 'focus'
$background_color : mixed = 'white'

image_reduire_par()

Réduit les images d'un certain facteur

image_reduire_par(string $img[, int $val = 1 ][, bool $force = false ]) : string
Parameters
$img : string

Chemin de l'image ou code html d'une balise img

$val : int = 1

Facteur de réduction

$force : bool = false
Tags
filtre
uses
image_reduire()
Return values
string

Code HTML de l'image ou du texte.

filtre_couleur_saturation_dist()

Modifie la saturation de la couleur transmise

filtre_couleur_saturation_dist(string $couleur, float $val[, bool|string $strict = false ]) : string
Parameters
$couleur : string

Couleur en écriture hexadécimale, tel que ff3300

$val : float

Pourcentage désiré (entre 0 et 1)

$strict : bool|string = false

Si true, ne change vraiment que la saturation, sans toucher à la luminosité

Tags
note

Nécessite le plugin filtres_images pour fonctionner. La couleur d’entrée est retournée tel quelle en cas d'absence.

see
couleur_saturation()

du plugin filtres_images

uses
couleur_saturation()
Return values
string

Couleur en écriture hexadécimale.

filtre_couleur_luminance_dist()

Modifie la luminance de la couleur transmise

filtre_couleur_luminance_dist(string $couleur, float $val) : string
Parameters
$couleur : string

Couleur en écriture hexadécimale, tel que ff3300

$val : float

Pourcentage désiré (entre 0 et 1)

Tags
note

Nécessite le plugin filtres_images pour fonctionner. La couleur d’entrée est retournée tel quelle en cas d'absence.

see
couleur_luminance()

du plugin filtres_images

uses
couleur_luminance()
Return values
string

Couleur en écriture hexadécimale.

filtre_image_dist()

Filtre d'incrustation d'un document image

filtre_image_dist(string $t) : string

Ne fait rien.

Parameters
$t : string

Contenu

Tags
filtre
Return values
string

Rien.

filtre_audio_dist()

Filtre d'incrustation d'un document audio

filtre_audio_dist(string $t) : string

Ne fait rien.

Parameters
$t : string

Contenu

Tags
filtre
Return values
string

Rien.

filtre_video_dist()

Filtre d'incrustation d'un document video

filtre_video_dist(string $t) : string

Ne fait rien.

Parameters
$t : string

Contenu

Tags
filtre
Return values
string

Rien.

filtre_application_dist()

Filtre d'incrustation d'un document application

filtre_application_dist(string $t) : string

Ne fait rien.

Parameters
$t : string

Contenu

Tags
filtre
Return values
string

Rien.

filtre_message_dist()

Filtre d'incrustation d'un document message

filtre_message_dist(string $t) : string

Ne fait rien.

Parameters
$t : string

Contenu

Tags
filtre
Return values
string

Rien.

filtre_multipart_dist()

Filtre d'incrustation d'un document multipart

filtre_multipart_dist(string $t) : string

Ne fait rien.

Parameters
$t : string

Contenu

Tags
filtre
Return values
string

Rien.

filtre_text_dist()

Filtre d'incrustation d'un document test

filtre_text_dist(string $t) : string

Échappe les chevrons et l'esperluette.

Parameters
$t : string

Contenu

Tags
filtre
Return values
string

Contenu échappé.

filtre_text_csv_dist()

Filtre d'incrustation d'un document CSV

filtre_text_csv_dist(string $t) : string

Produit un joli tableau à partir du texte CSV

Parameters
$t : string

texte CSV

Tags
filtre
Return values
string

Tableau (formaté en SPIP)

filtre_text_html_dist()

Filtre d'incrustation d'un document text/html

filtre_text_html_dist(string $t) : string

Incrustation de HTML, si on est capable de le sécuriser, sinon, afficher la source

Parameters
$t : string

Code html

Tags
filtre
Return values
string

Code html sécurisé ou texte échappé

filtre_audio_x_pn_realaudio()

Filtre d'incrustation d'un document RealAudio

filtre_audio_x_pn_realaudio(string $id) : string

Retourne les paramètres <param> nécessaires à la balise <object>

Parameters
$id : string
Tags
filtre
Return values
string

Code HTML des balises <param>

resolve_path()

Nettoyer une URL contenant des `../`

resolve_path(string $url) : string

Inspiré (de loin) par PEAR:NetURL:resolvePath

Parameters
$url : string

URL

Tags
example
resolve_path('/.././/truc/chose/machin/./.././.././hopla/..');
used-by
suivre_lien()
Return values
string

URL nettoyée

suivre_lien()

Suivre un lien depuis une URL donnée vers une nouvelle URL

suivre_lien(string $url, string $lien) : string
Parameters
$url : string

URL de base

$lien : string

Lien ajouté à l'URL

Tags
uses
resolve_path()
example
suivre_lien(
    'https://rezo.net/sous/dir/../ect/ory/fi.html..s#toto',
    'a/../../titi.coco.html/tata#titi');
used-by
urls_absolues_css()
used-by
url_absolue()
Return values
string

URL complète.

url_absolue()

Transforme une URL relative en URL absolue

url_absolue(string $url[, string $base = '' ]) : string

S'applique sur une balise SPIP d'URL.

Parameters
$url : string

URL

$base : string = ''

URL de base de destination (par défaut ce sera l'URL de notre site)

Tags
filtre
link
https://www.spip.net/4127
uses
suivre_lien()
example
[(#URL_ARTICLE|url_absolue)]
[(#CHEMIN{css/theme.css}|url_absolue)]
used-by
liens_absolus()
Return values
string

texte ou URL (en absolus)

protocole_implicite()

Supprimer le protocole d'une url absolue pour le rendre implicite (URL commencant par "//")

protocole_implicite(string $url_absolue) : string
Parameters
$url_absolue : string
Return values
string

protocole_verifier()

Verifier qu'une url est absolue et que son protocole est bien parmi une liste autorisee

protocole_verifier(string $url_absolue[, array<string|int, mixed> $protocoles_autorises = ['http', 'https'] ]) : bool
Parameters
$url_absolue : string
$protocoles_autorises : array<string|int, mixed> = ['http', 'https']
Return values
bool

liens_absolus()

Transforme les URLs relatives en URLs absolues

liens_absolus(string|null $texte[, string $base = '' ]) : string

Ne s'applique qu'aux textes contenant des liens

Parameters
$texte : string|null

texte

$base : string = ''

URL de base de destination (par défaut ce sera l'URL de notre site)

Tags
filtre
uses
url_absolue()
link
https://www.spip.net/4126
Return values
string

texte avec des URLs absolues

abs_url()

Transforme une URL ou des liens en URL ou liens absolus

abs_url(string $texte[, string $base = '' ]) : string
Parameters
$texte : string

texte ou URL

$base : string = ''

URL de base de destination (par défaut ce sera l'URL de notre site)

Tags
filtre
deprecated
5.0

Uses url_absolue or liens_absolus.

link
https://www.spip.net/4128
global

string $mode_abs_url Pour connaître le mode (url ou texte)

Return values
string

texte ou URL (en absolus)

spip_htmlspecialchars()

htmlspecialchars wrapper (PHP >= 5.4 compat issue)

spip_htmlspecialchars(string $string[, int $flags = null ][, string $encoding = 'UTF-8' ][, bool $double_encode = true ]) : string
Parameters
$string : string
$flags : int = null
$encoding : string = 'UTF-8'
$double_encode : bool = true
Return values
string

spip_htmlentities()

htmlentities wrapper (PHP >= 5.4 compat issue)

spip_htmlentities(string $string[, int $flags = null ][, string $encoding = 'UTF-8' ][, bool $double_encode = true ]) : string
Parameters
$string : string
$flags : int = null
$encoding : string = 'UTF-8'
$double_encode : bool = true
Return values
string

selecteur_lister_objets()

Fournit la liste des objets ayant un sélecteur

selecteur_lister_objets([array<string|int, mixed> $includelist = [] ][, array<string|int, mixed> $excludelist = [] ]) : array<string|int, mixed>

Concrètement, va chercher tous les formulaires/selecteur/hierarchie-{trucs}.html Ensuite on ajoute les parents obligatoires éventuels

Parameters
$includelist : array<string|int, mixed> = []

Liste d’inclusion décrivant les objets à lister

$excludelist : array<string|int, mixed> = []

Liste d’exclusion décrivant les objets à ne pas lister

Tags
uses
find_all_in_path()
Return values
array<string|int, mixed>

Retourne un tableau de deux entrées listant les objets à lister et les objets sélectionnables

  • selectionner : tableau des objets que l'on pourra sélectionner (avec un +)
  • afficher : tableau des objets à afficher (mais pas forcément sélectionnables)

picker_selected()

Extrait des informations d'un tableau d'entrées `array("rubrique|9", "article|8", ...)` ou une chaine brute `rubrique|9,article|8,...`

picker_selected(array<string|int, mixed>|string $selected[, string $type = '' ]) : array<string|int, mixed>

Peut retourner un tableau de couples (objet => id_objet) ou la liste des identifiants d'un objet précis si $type est fourni.

Parameters
$selected : array<string|int, mixed>|string

Liste des entrées : tableau ou chaine séparée par des virgules

$type : string = ''

Type de valeur à recuperer tel que rubrique, article

Tags
example

picker_selected(array('article|1', 'article|2', 'rubrique|5')) retourne array('article' => 1, 'article' => 2, 'rubrique' => 5)

example

picker_selected(array('article|1', 'article|2', 'rubrique|5'), 'article') retourne array(1, 2)

filtre
Return values
array<string|int, mixed>

liste des couples (objets => id_objet) ou liste des identifiants d'un type d'objet.

picker_identifie_id_rapide()

Récupère des informations sur un objet pour pouvoir l'ajouter aux éléments sélectionnés

picker_identifie_id_rapide(string|int $ref[, array<string|int, mixed>|bool $rubriques_ou_objets = false ][, bool $articles = false ]) : mixed
Parameters
$ref : string|int

Référence de l'objet à chercher sous forme raccourcie rub123 art123 ou meme 123 si pas d'ambiguité ou si un article

$rubriques_ou_objets : array<string|int, mixed>|bool = false

Soit un booléen (pouvant être une chaîne vide aussi) indiquant que les rubriques sont sélectionnables soit un tableau complet des objets sélectionnables.

$articles : bool = false

Booléen indiquant si les articles sont sélectionnables

Tags
uses
typer_raccourci()

test_enfants_rubrique()

Déterminer si une rubrique a des enfants à afficher ou non

test_enfants_rubrique(int $id_rubrique[, array<string|int, mixed> $types = [] ]) : string

On test d'abord si la rubrique a des sous rubriques, et sinon on regarde les autres types sélectionnables, puis on regarde si la rubrique contient certains de ces objets

Parameters
$id_rubrique : int

Identifiant de la rubrique

$types : array<string|int, mixed> = []

Liste de type d'objets. Si l'un de ces objet est présent dans la rubrique, alors cette rubrique est à afficher

Tags
note

Pour optimiser, la fonction calcule sa valeur sur toute la fratrie d'un coup, puisqu'elle est appellée N fois pour toutes les rubriques d'un même niveau

Return values
string

Comme le filtre oui : espace ( ) si rubrique à afficher, chaîne vide sinon.

spip_fopen_lock()

Ouvre un fichier et le vérrouille

spip_fopen_lock(string $fichier, string $mode, int $verrou) : resource|bool
Parameters
$fichier : string

Chemin du fichier

$mode : string

Mode d'ouverture du fichier (r,w,...)

$verrou : int

Type de verrou (avec _SPIP_LOCK_MODE = 1)

Tags
link

pour le type de verrou.

see
_SPIP_LOCK_MODE
see
spip_fclose_unlock()
uses
spip_nfslock()

si _SPIP_LOCK_MODE = 2.

used-by
lire_fichier()
Return values
resource|bool

Ressource sur le fichier ouvert, sinon false.

spip_file_get_contents()

Retourne le contenu d'un fichier, même si celui ci est compréssé avec une extension en `.gz`

spip_file_get_contents(string $fichier) : string
Parameters
$fichier : string

Chemin du fichier

Return values
string

Contenu du fichier

lire_fichier()

Lit un fichier et place son contenu dans le paramètre transmis.

lire_fichier(string $fichier, string &$contenu[, array<string|int, mixed> $options = [] ]) : bool

Décompresse automatiquement les fichiers .gz

Parameters
$fichier : string

Chemin du fichier

$contenu : string

Le contenu du fichier sera placé dans cette variable

$options : array<string|int, mixed> = []

Options tel que :

  • 'phpcheck' => 'oui' : vérifie qu'on a bien du php
Tags
uses
spip_fopen_lock()
uses
spip_file_get_contents()
uses
spip_fclose_unlock()
used-by
lire_fichier_securise()
Return values
bool

true si l'opération a réussie, false sinon.

ecrire_fichier()

Écrit un fichier de manière un peu sûre

ecrire_fichier(string $fichier, string $contenu[, bool $ignorer_echec = false ][, bool $truncate = true ]) : bool

Cette écriture s’exécute de façon sécurisée en posant un verrou sur le fichier avant sa modification. Les fichiers .gz sont compressés.

Parameters
$fichier : string

Chemin du fichier

$contenu : string

Contenu à écrire

$ignorer_echec : bool = false
  • true pour ne pas raler en cas d'erreur
  • false affichera un message si on est webmestre
$truncate : bool = true

Écriture avec troncation ?

Tags
uses
raler_fichier()

Si le fichier n'a pu peut être écrit

see
lire_fichier()
see
supprimer_fichier()
used-by
ecrire_fichier_securise()
Return values
bool
  • true si l’écriture s’est déroulée sans problème.

ecrire_fichier_securise()

Écrire un contenu dans un fichier encapsulé en PHP pour en empêcher l'accès en l'absence de fichier htaccess

ecrire_fichier_securise(string $fichier, string $contenu[, bool $ecrire_quand_meme = false ][, bool $truncate = true ]) : mixed
Parameters
$fichier : string

Chemin du fichier

$contenu : string

Contenu à écrire

$ecrire_quand_meme : bool = false
  • true pour ne pas raler en cas d'erreur
  • false affichera un message si on est webmestre
$truncate : bool = true

Écriture avec troncation ?

Tags
uses
ecrire_fichier()

ecrire_fichier_calcule_si_modifie()

ecrire_fichier_calcule_si_modifie(string $fichier, string $contenu[, bool $force = false ][, mixed $use_copy = false ]) : bool
Parameters
$fichier : string
$contenu : string
$force : bool = false
$use_copy : mixed = false
Return values
bool

lire_fichier_securise()

Lire un fichier encapsulé en PHP

lire_fichier_securise(string $fichier, string &$contenu[, array<string|int, mixed> $options = [] ]) : bool
Parameters
$fichier : string

Chemin du fichier

$contenu : string

Le contenu du fichier sera placé dans cette variable

$options : array<string|int, mixed> = []

Options tel que :

  • 'phpcheck' => 'oui' : vérifie qu'on a bien du php
Tags
uses
lire_fichier()
Return values
bool

true si l'opération a réussie, false sinon.

raler_fichier()

Affiche un message d’erreur bloquant, indiquant qu’il n’est pas possible de créer le fichier à cause des droits sur le répertoire parent au fichier.

raler_fichier(string $fichier) : never

Arrête le script PHP par un exit;

Parameters
$fichier : string
Tags
uses
minipres()

Pour afficher le message

used-by
ecrire_fichier()

Si le fichier n'a pu peut être écrit

Return values
never

jeune_fichier()

Teste si un fichier est récent (moins de n secondes)

jeune_fichier(string $fichier, int $n) : bool
Parameters
$fichier : string

Chemin du fichier

$n : int

Âge testé, en secondes

Return values
bool
  • true si récent, false sinon

supprimer_fichier()

Supprimer un fichier de manière sympa (flock)

supprimer_fichier(string $fichier[, bool $lock = true ]) : bool
Parameters
$fichier : string

Chemin du fichier

$lock : bool = true

true pour utiliser un verrou

Return values
bool
  • true si le fichier n'existe pas ou s'il a bien été supprimé
  • false si on n'arrive pas poser le verrou ou si la suppression échoue

Supprimer brutalement un fichier ou un dossier, s'il existe

spip_unlink(string $f) : mixed
Parameters
$f : string

Chemin du fichier

Tags
used-by
deplacer_fichier_upload()

spip_clear_opcode_cache()

Invalidates a PHP file from any active opcode caches.

spip_clear_opcode_cache(string $filepath) : mixed

If the opcode cache does not support the invalidation of individual files, the entire cache will be flushed. kudo : http://cgit.drupalcode.org/drupal/commit/?id=be97f50

Parameters
$filepath : string

The absolute path of the PHP file to invalidate.

spip_attend_invalidation_opcode_cache()

Attendre l'invalidation de l'opcache

spip_attend_invalidation_opcode_cache([mixed $timestamp = null ]) : mixed

Si opcache est actif et en mode validate_timestamps, le timestamp du fichier ne sera vérifié qu'après une durée en secondes fixée par revalidate_freq.

Il faut donc attendre ce temps là pour être sûr qu'on va bien bénéficier de la recompilation du fichier par l'opcache.

Ne fait rien en dehors de ce cas

Parameters
$timestamp : mixed = null
Tags
note

C'est une config foireuse déconseillée de opcode cache mais malheureusement utilisée par Octave.

link
http://stackoverflow.com/questions/25649416/when-exactly-does-php-5-5-opcache-check-file-timestamp-based-on-revalidate-freq
link
http://wiki.mikejung.biz/PHP_OPcache

sous_repertoire()

Crée un sous répertoire

sous_repertoire(string $base[, string $subdir = '' ][, bool $nobase = false ][, bool $tantpis = false ]) : string

Retourne $base/{$subdir}/ si le sous-repertoire peut être crée

Parameters
$base : string
  • Chemin du répertoire parent (avec $subdir)
  • sinon chemin du répertoire à créer
$subdir : string = ''
  • Nom du sous répertoire à créer,
  • non transmis, $subdir vaut alors ce qui suit le dernier / dans $base
$nobase : bool = false

true pour ne pas avoir le chemin du parent $base/ dans le retour

$tantpis : bool = false

true pour ne pas raler en cas de non création du répertoire

Tags
example
sous_repertoire(_DIR_CACHE, 'demo');
sous_repertoire(_DIR_CACHE . '/demo');
used-by
creer_repertoire_documents()
used-by
determine_upload()
Return values
string

Chemin du répertoire créé.

preg_files()

Parcourt récursivement le repertoire `$dir`, et renvoie les fichiers dont le chemin vérifie le pattern (preg) donné en argument.

preg_files(string $dir[, int|string $pattern = -1 ][, int $maxfiles = 10000 ][, array<string|int, mixed> $recurs = [] ]) : array<string|int, mixed>

En cas d'echec retourne un array() vide

Parameters
$dir : string

Répertoire à parcourir

$pattern : int|string = -1

Expression régulière pour trouver des fichiers, tel que [.]lock$

$maxfiles : int = 10000

Nombre de fichiers maximums retournés

$recurs : array<string|int, mixed> = []

false pour ne pas descendre dans les sous répertoires

Tags
example
$x = preg_files('ecrire/data/', '[.]lock$');
// $x array()
note

Attention, afin de conserver la compatibilite avec les repertoires '.plat' si $dir = 'rep/sous_rep_' au lieu de rep/sous_rep/ on scanne rep/ et on applique un pattern ^rep/sous_rep_

used-by
find_all_in_path()
used-by
actualiser_sessions()
Return values
array<string|int, mixed>

Chemins des fichiers trouvés.

inc_genie_dist()

Prévoit l'exécution de la tâche cron la plus urgente

inc_genie_dist([array<string|int, mixed> $taches = [] ]) : mixed

Les tâches sont dans un tableau 'nom de la tâche' => périodicité

Cette fonction exécute la tache la plus urgente, c'est à dire celle dont la date de dernière exécution + la périodicité est minimale.

La date de la prochaîne exécution de chaque tâche est indiquée dans la table SQL spip_jobs

La fonction exécutant la tâche est (généralement) un homonyme de préfixe "genie_". Le fichier homonyme du repertoire "genie/" est automatiquement lu et il est supposé définir cette fonction.

Parameters
$taches : array<string|int, mixed> = []

Tâches dont on force maintenant l'exécution le plus tôt possible. Sinon, prendra la tâche la plus prioritaire.

Tags
uses
queue_add_job()

Lorsqu'une tâche est à forcer

uses
queue_schedule()
see
taches_generales()

Liste des tâches déclarées

used-by
cron()

taches_generales()

taches_generales([mixed $taches_generales = [] ]) : mixed
Parameters
$taches_generales : mixed = []

genie_queue_watch_dist()

Une tâche périodique pour surveiller les tâches crons et les relancer si besoin

genie_queue_watch_dist() : int

Quand ce cron s'execute, il n'est plus dans la queue, donc il se replanifie lui même, avec last=time() avec une dose d'aleatoire pour ne pas planifier toutes les taches au meme moment

Tags
uses
taches_generales()
uses
queue_genie_replan_job()
Return values
int

queue_genie_replan_job()

Replanifier une tache periodique

queue_genie_replan_job(string $function, int $period[, int $last = 0 ][, int $time = null ][, int $priority = 0 ]) : void
Parameters
$function : string

nom de la fonction a appeler

$period : int

periodicite en secondes

$last : int = 0

date du dernier appel (timestamp)

$time : int = null

date de replanification si null calculee automaitquement a partir de $last et $period si 0 = asap mais on n'insere pas le job si deja en cours d'execution

$priority : int = 0

priorite

Tags
used-by
genie_queue_watch_dist()
used-by
queue_close_job()

redirige_par_entete()

Envoyer le navigateur sur une nouvelle adresse

redirige_par_entete(string $url[, string $equiv = '' ][, int $status = 302 ]) : mixed

Le tout en évitant les attaques par la redirection (souvent indique par un $_GET)

Parameters
$url : string

URL de redirection

$equiv : string = ''

?

$status : int = 302

Code de redirection (301 ou 302)

Tags
example
$redirect = parametre_url(urldecode(_request('redirect')),'id_article=' . $id_article);
include_spip('inc/headers');
redirige_par_entete($redirect);
used-by
redirige_url_ecrire()

Qui tue le script PHP.

redirige_formulaire()

redirige_formulaire(mixed $url[, mixed $equiv = '' ][, mixed $format = 'message' ]) : mixed
Parameters
$url : mixed
$equiv : mixed = ''
$format : mixed = 'message'
Tags
used-by
relance_maj()

redirige_url_ecrire()

Effectue une redirection par header PHP vers un script de l’interface privée

redirige_url_ecrire([string $script = '' ][, string $args = '' ][, string $equiv = '' ]) : void
Parameters
$script : string = ''

Nom de la page privée (exec)

$args : string = ''

Arguments à transmettre. Exemple etape=1&autre=oui

$equiv : string = ''
Tags
uses
redirige_par_entete()

Qui tue le script PHP.

example
include_spip('inc/headers');
redirige_url_ecrire('rubriques','id_rubrique=' . $id_rubrique);

inc_icone_renommer_dist()

inc_icone_renommer_dist(mixed $fond, mixed $fonction) : mixed
Parameters
$fond : mixed
$fonction : mixed

inc_iconifier_dist()

Retourne le formulaire de gestion de logo sur les objets.

inc_iconifier_dist(string $objet, int $id, string $script[, bool $visible = false ][, bool $flag_modif = true ]) : string|array<string|int, mixed>
Parameters
$objet : string
$id : int
$script : string
$visible : bool = false
$flag_modif : bool = true
Return values
string|array<string|int, mixed>
  • Contenu du squelette calculé
  • ou tableau d'information sur le squelette.

importer_csv_importcharset()

Importer le charset d'une ligne

importer_csv_importcharset(string $texte[, bool|string $definir_charset_source = false ]) : array<string|int, mixed>

Importe un texte de CSV dans un charset et le passe dans le charset du site (utf8 probablement) Les CSV peuvent sous ms@@@ avoir le charset 'iso-8859-1', mais pasfois aussi 'windows-1252' :/

Parameters
$texte : string
$definir_charset_source : bool|string = false

false : ne fait rien string : utilisera pour les prochains imports le charset indiqué true : remet le charset d'import par défaut de la fonction

Return values
array<string|int, mixed>

importer_csv_nettoie_key()

enlever les accents des cles presentes dans le head, sinon ca pose des problemes .

importer_csv_nettoie_key(string $key) : string

..

Parameters
$key : string
Return values
string

inc_importer_csv_dist()

Lit un fichier csv et retourne un tableau si $head est true, la premiere ligne est utilisee en header pour generer un tableau associatif

inc_importer_csv_dist(string $file[, array<string|int, mixed> $options = [] ]) : false|array<string|int, mixed>
Parameters
$file : string
$options : array<string|int, mixed> = []

bool $head string $delim string $enclos int $len string $charset_source : Permet de définir un charset source du CSV, si différent de utf-8 ou iso-8859-1

Return values
false|array<string|int, mixed>

inc_informer_dist()

inc_informer_dist(mixed $id, mixed $col, mixed $exclus, mixed $rac, mixed $type[, mixed $do = 'aff' ]) : mixed
Parameters
$id : mixed
$col : mixed
$exclus : mixed
$rac : mixed
$type : mixed
$do : mixed = 'aff'
Tags
used-by
exec_informer_dist()

install_fichier_connexion()

Écrit un fichier PHP nécessitant SPIP

install_fichier_connexion(string $nom, string $texte) : void

Écrit le texte transmis dans un fichier PHP. Cette fonction ajoute les entêtes PHP et le test de sécurité vérifiant que SPIP est chargé.

Parameters
$nom : string

Chemin du fichier à créer

$texte : string

Code source du fichier (sans l'ouverture/fermeture PHP)

Tags
example
install_fichier_connexion(_FILE_CONNECT_TMP, $contenu);
todo

Renommer cette fonction qui peut servir à d'autres utilisations ?

analyse_fichier_connection()

Analyse un fichier de connexion à une base de données

analyse_fichier_connection(string $file) : array<string|int, mixed>

Le fichier contient normalement le résultat de la fonction install_connexion(). L'analyse tient également compte des syntaxes des versions précédentes.

Parameters
$file : string

Chemin du fichier de connexion à analyser

Return values
array<string|int, mixed>

Tableau des informations sur la connexion

bases_referencees()

Liste les connecteurs aux bases SQL disponibles

bases_referencees([string $exclu = '' ]) : array<string|int, mixed>

Dans le code SPIP ces connecteurs sont souvent appelés $connect ou $serveur

Parameters
$exclu : string = ''

Exclure un connecteur particulier (nom du fichier)

Tags
example

$bases = bases_referencees(_FILE_CONNECT_TMP);

Return values
array<string|int, mixed>

Liste des noms de connecteurs

install_mode_appel()

install_mode_appel(mixed $server_db[, mixed $tout = true ]) : mixed
Parameters
$server_db : mixed
$tout : mixed = true

tester_compatibilite_hebergement()

tester_compatibilite_hebergement() : mixed

info_etape()

info_etape(mixed $titre[, mixed $complement = '' ]) : mixed
Parameters
$titre : mixed
$complement : mixed = ''

bouton_suivant()

Retourne le code HTML d'un bouton `suivant>>` pour les phases d'installation

bouton_suivant([string $code = '' ]) : string
Parameters
$code : string = ''

texte du bouton

Return values
string

Code HTML du bouton

info_progression_etape()

info_progression_etape(mixed $en_cours, mixed $phase, mixed $dir[, mixed $erreur = false ]) : mixed
Parameters
$en_cours : mixed
$phase : mixed
$dir : mixed
$erreur : mixed = false

fieldset()

fieldset(mixed $legend[, mixed $champs = [] ][, mixed $apres = '' ][, mixed $avant = '' ]) : mixed
Parameters
$legend : mixed
$champs : mixed = []
$apres : mixed = ''
$avant : mixed = ''

fieldset_champs()

fieldset_champs([mixed $champs = [] ]) : mixed
Parameters
$champs : mixed = []

install_connexion_form()

install_connexion_form(mixed $db, mixed $login, mixed $pass, mixed $predef, mixed $hidden, mixed $etape[, mixed $jquery = true ]) : mixed
Parameters
$db : mixed
$login : mixed
$pass : mixed
$predef : mixed
$hidden : mixed
$etape : mixed
$jquery : mixed = true

predef_ou_cache()

predef_ou_cache(mixed $adresse_db, mixed $login_db, mixed $pass_db, mixed $server_db) : mixed
Parameters
$adresse_db : mixed
$login_db : mixed
$pass_db : mixed
$server_db : mixed

install_etape_liste_bases()

install_etape_liste_bases(mixed $server_db, mixed $login_db[, mixed $disabled = [] ]) : mixed
Parameters
$server_db : mixed
$login_db : mixed
$disabled : mixed = []

install_propager()

install_propager(mixed $hidden) : mixed
Parameters
$hidden : mixed

taille_du_cache()

Évalue approximativement la taille du cache

taille_du_cache() : int

Pour de gros volumes, impossible d'ouvrir chaque fichier, on y va donc à l'estime !

Return values
int

Taille approximative en octets

inc_suivre_invalideur_dist()

Invalider les caches liés à telle condition

inc_suivre_invalideur_dist(string $cond[, bool $modif = true ]) : mixed

Les invalideurs sont de la forme 'objet/id_objet'. La condition est géneralement "id='objet/id_objet'".

Ici on se contente de noter la date de mise à jour dans les metas, pour le type d'objet en question (non utilisé cependant) et pour tout le site (sur la meta derniere_modif)

Parameters
$cond : string

Condition d'invalidation

$modif : bool = true

Inutilisé

Tags
global

array $derniere_modif_invalide Par défaut à true, la meta derniere_modif est systématiquement calculée dès qu'un invalideur se présente. Cette globale peut être mise à false (aucun changement sur derniere_modif) ou sur une liste de type d'objets (changements uniquement lorsqu'une modification d'un des objets se présente).

purger_repertoire()

Purge un répertoire de ses fichiers

purger_repertoire(string $dir[, array<string|int, mixed> $options = [] ]) : int

Utilisée entre autres pour vider le cache depuis l'espace privé

Parameters
$dir : string

Chemin du répertoire à purger

$options : array<string|int, mixed> = []

Tableau des options. Peut être :

  • atime : timestamp pour ne supprimer que les fichiers antérieurs à cette date (via fileatime)
  • mtime : timestamp pour ne supprimer que les fichiers antérieurs à cette date (via filemtime)
  • limit : nombre maximum de suppressions
Tags
uses
supprimer_fichier()
used-by
action_purger_dist()
used-by
appliquer_modifs_config()
Return values
int

Nombre de fichiers supprimés

inc_retire_caches_dist()

inc_retire_caches_dist([mixed $chemin = '' ]) : mixed
Parameters
$chemin : mixed = ''

retire_caches()

retire_caches([mixed $chemin = '' ]) : mixed
Parameters
$chemin : mixed = ''

calcul_invalideurs()

calcul_invalideurs(mixed $corps, mixed $primary, mixed &$boucles, mixed $id_boucle) : mixed
Parameters
$corps : mixed
$primary : mixed
$boucles : mixed
$id_boucle : mixed

maj_invalideurs()

maj_invalideurs(mixed $fichier, mixed &$page) : mixed
Parameters
$fichier : mixed
$page : mixed

insere_invalideur()

insere_invalideur(mixed $inval, mixed $fichier) : mixed
Parameters
$inval : mixed
$fichier : mixed

applique_invalideur()

applique_invalideur(mixed $depart) : mixed
Parameters
$depart : mixed

suivre_invalideur()

suivre_invalideur(mixed $cond[, mixed $modif = true ]) : mixed
Parameters
$cond : mixed
$modif : mixed = true

inc_journal_dist()

inc_journal_dist(mixed $phrase[, mixed $opt = [] ]) : mixed
Parameters
$phrase : mixed
$opt : mixed = []
Tags
used-by
journal()

changer_langue()

Changer la langue courante

changer_langue(string $lang[, string|array<string|int, mixed> $liste_langues = null ]) : string|bool

Définit la langue utilisée par la langue désignée si elle fait partie des langues utilisables dans le site.

Cette fonction définit les globales : spip_lang, spip_lang_rtl, spip_lang_right, spip_lang_left

Parameters
$lang : string

La langue à utiliser

$liste_langues : string|array<string|int, mixed> = null

La liste des langues valides

Tags
used-by
lang_select()
Return values
string|bool

string : La langue qui a été utilisée si trouvée false : aucune langue ne correspondait à la demande

choisir_traduction()

choisir_traduction(mixed $trads[, mixed $lang = '' ]) : mixed
Parameters
$trads : mixed
$lang : mixed = ''

approcher_langue()

approcher_langue(mixed $trads[, mixed $lang = '' ]) : mixed
Parameters
$trads : mixed
$lang : mixed = ''

traduire_nom_langue()

Traduit un code de langue (fr, en, etc...) vers le nom de la langue en toute lettres dans cette langue (français, English, etc....).

traduire_nom_langue(string $lang) : string

Si le spip ne connait pas le nom de la langue, il retourne le code

Parameters
$lang : string

Code de langue

Return values
string

Nom de la langue, sinon son code.

lang_dir()

lang_dir([mixed $lang = '' ][, mixed $droitier = 'ltr' ][, mixed $gaucher = 'rtl' ]) : mixed
Parameters
$lang : mixed = ''
$droitier : mixed = 'ltr'
$gaucher : mixed = 'rtl'

lang_typo()

lang_typo([mixed $lang = '' ]) : mixed
Parameters
$lang : mixed = ''

changer_typo()

changer_typo([mixed $lang = '' ]) : mixed
Parameters
$lang : mixed = ''

menu_langues()

menu_langues(mixed $nom_select[, mixed $default = '' ]) : mixed
Parameters
$nom_select : mixed
$default : mixed = ''

select_langues()

select_langues(mixed $nom_select, mixed $change, mixed $options[, mixed $label = '' ]) : mixed
Parameters
$nom_select : mixed
$change : mixed
$options : mixed
$label : mixed = ''

liste_options_langues()

Lister les langues disponibles

liste_options_langues(string $nom_select) : array<string|int, mixed>

Retourne un tableau de langue utilisables, triées par code de langue, mais pas le même tableau en fonction du paramètre $nom_select.

Parameters
$nom_select : string

Attribut name du select Selon son nom, retourne une liste différente :

  • var_lang ou changer_lang : liste des langues sélectionnées dans la config multilinguisme
  • var_lang_ecrire : toutes les langues présentes en fichier de langue
Return values
array<string|int, mixed>

Liste des langues

verifier_lang_url()

Redirige sur la bonne langue lorsque l'option forcer_lang est active

verifier_lang_url() : void

Cette fonction est appelee depuis ecrire/public.php si on a installé la variable de personnalisation $forcer_lang ; elle renvoie le brouteur si necessaire vers l'URL xxxx?lang=ll

utiliser_langue_site()

Utilise la langue du site

utiliser_langue_site([string|array<string|int, mixed>|null $liste_langues = null ]) : string

Change la langue en cours d'utilisation par la langue du site si ce n'est pas déjà le cas.

Note : Cette fonction initialise la globale spip_lang au chargement de inc/lang

Parameters
$liste_langues : string|array<string|int, mixed>|null = null

liste des langues valides

Return values
string

La langue sélectionnée

utiliser_langue_visiteur()

Initialise la langue pour un visiteur du site

utiliser_langue_visiteur([string|array<string|int, mixed>|null $liste_langues = null ]) : string

La langue est choisie dans cet ordre :

  • Dans le cookie 'spip_lang' ou 'spip_lang_ecrire' s'il existe (selon l'espace public ou privé).
  • Sinon dans la session du visiteur.
  • Sinon dans une des langues définie en préférence du navigateur
  • Sinon la langue du site
Parameters
$liste_langues : string|array<string|int, mixed>|null = null

liste des langues valides

Return values
string

La langue utilisée

match_langue()

Verifier qu'une chaine suceptible d'etre un nom de langue a le bon format

match_langue(string $chaine) : int
Parameters
$chaine : string
Return values
int

init_langues()

Initialisation des listes de langues

init_langues() : void

Initialise les métas :

  • langues_proposees : liste des traductions disponibles
  • langue_site : langue par défaut du site

Lorsque ces métas n'existent pas encore (c'est à dire à l'installation), elles sont calculées en obtenant la liste des langues dans les fichiers de lang

html_lang_attributes()

Retourne une balise <html>

html_lang_attributes() : string

Retourne une balise HTML contenant les attributs 'lang' et 'dir' définis sur la langue en cours d'utilisation, ainsi que des classes CSS de ces du nom de la langue et direction choisie.

Tags
used-by
init_entete()
Return values
string

Code html de la balise

aide_lang_dir()

Calcul de la direction du texte et la mise en page selon la langue

aide_lang_dir(string $spip_lang, string $spip_lang_rtl) : string

En hébreu le ? ne doit pas être inversé.

Parameters
$spip_lang : string
$spip_lang_rtl : string
Return values
string

cadre_depliable()

Affiche un cadre complet muni d’un bouton pour le déplier.

cadre_depliable(string $icone, string $titre, bool $deplie, string $contenu[, string $ids = '' ][, string $style_cadre = 'r' ]) : string
Parameters
$icone : string

Chemin vers l’icone que prendra le cadre

$titre : string

Titre du cadre

$deplie : bool

true ou false, défini si le cadre est déplié au chargement de la page (true) ou pas (false)

$contenu : string

Contenu du cadre

$ids : string = ''

id que prendra la partie pliée ou dépliée

$style_cadre : string = 'r'

classe CSS que prendra le cadre

Return values
string

Code HTML du cadre dépliable

block_parfois_visible()

block_parfois_visible(mixed $nom, mixed $invite, mixed $masque[, mixed $style = '' ][, mixed $visible = false ]) : mixed
Parameters
$nom : mixed
$invite : mixed
$masque : mixed
$style : mixed = ''
$visible : mixed = false

debut_block_depliable()

debut_block_depliable(mixed $deplie[, mixed $id = '' ]) : mixed
Parameters
$deplie : mixed
$id : mixed = ''

bouton_block_depliable()

bouton_block_depliable(mixed $texte, mixed $deplie[, mixed $ids = '' ]) : mixed
Parameters
$texte : mixed
$deplie : mixed
$ids : mixed = ''

inc_lien_dist()

Production de la balise a+href à partir des raccourcis `[xxx->url]` etc.

inc_lien_dist(string $lien[, string $texte = '' ][, string $class = '' ][, string $title = '' ][, string $hlang = '' ][, string $rel = '' ][, string $connect = '' ][, array<string|int, mixed> $env = [] ]) : string
Parameters
$lien : string
$texte : string = ''
$class : string = ''
$title : string = ''
$hlang : string = ''
$rel : string = ''
$connect : string = ''
$env : array<string|int, mixed> = []
Tags
note

Compliqué car c'est ici qu'on applique typo(), et en plus, on veut pouvoir les passer en pipeline

see
typo()
Return values
string

expanser_liens()

expanser_liens(mixed $t[, string $connect = '' ][, mixed $env = [] ]) : mixed
Parameters
$t : mixed
$connect : string = ''
$env : mixed = []

nettoyer_raccourcis_typo()

nettoyer_raccourcis_typo(mixed $texte[, string $connect = '' ]) : mixed
Parameters
$texte : mixed
$connect : string = ''

traiter_raccourci_lien_atts()

traiter_raccourci_lien_atts(mixed $texte) : mixed
Parameters
$texte : mixed

virtuel_redirige()

Retourne la valeur d'un champ de redirection (articles virtuels)

virtuel_redirige(string $virtuel[, bool $url = false ]) : string
Parameters
$virtuel : string
$url : bool = false
Tags
note

Pas d'action dans le noyau SPIP directement. Se réferer inc/lien du plugin Textwheel.

Return values
string

calculer_url()

calculer_url(mixed $ref[, mixed $texte = '' ][, mixed $pour = 'url' ][, string $connect = '' ][, mixed $echappe_typo = true ]) : mixed
Parameters
$ref : mixed
$texte : mixed = ''
$pour : mixed = 'url'
$connect : string = ''
$echappe_typo : mixed = true

traiter_lien_explicite()

traiter_lien_explicite(mixed $ref[, mixed $texte = '' ][, mixed $pour = 'url' ][, string $connect = '' ][, mixed $echappe_typo = true ]) : mixed
Parameters
$ref : mixed
$texte : mixed = ''
$pour : mixed = 'url'
$connect : string = ''
$echappe_typo : mixed = true

liens_implicite_glose_dist()

liens_implicite_glose_dist(mixed $texte, mixed $id, mixed $type, mixed $args, mixed $ancre[, string $connect = '' ]) : mixed
Parameters
$texte : mixed
$id : mixed
$type : mixed
$args : mixed
$ancre : mixed
$connect : string = ''

traiter_lien_implicite()

Transformer un lien raccourci art23 en son URL Par defaut la fonction produit une url prive si on est dans le prive ou publique si on est dans le public.

traiter_lien_implicite(string $ref[, string $texte = '' ][, string $pour = 'url' ][, string $connect = '' ]) : array<string|int, mixed>|bool|string

La globale lien_implicite_cible_public permet de forcer un cas ou l'autre : $GLOBALS['lien_implicite_cible_public'] = true; => tous les liens raccourcis pointent vers le public $GLOBALS['lien_implicite_cible_public'] = false; => tous les liens raccourcis pointent vers le prive unset($GLOBALS['lien_implicite_cible_public']); => retablit le comportement automatique

Parameters
$ref : string
$texte : string = ''
$pour : string = 'url'
$connect : string = ''
Return values
array<string|int, mixed>|bool|string

traiter_raccourci_titre()

Retourne le titre et la langue d'un objet éditorial

traiter_raccourci_titre(int $id, string $type[, string|null $connect = null ]) : array<string|int, mixed>
Parameters
$id : int

Identifiant de l'objet

$type : string

Type d'objet

$connect : string|null = null

Connecteur SQL utilisé

Return values
array<string|int, mixed>

{

traiter_raccourci_ancre()

traiter_raccourci_ancre(mixed $letexte) : mixed
Parameters
$letexte : mixed

traiter_raccourci_glossaire()

traiter_raccourci_glossaire(mixed $texte) : mixed
Parameters
$texte : mixed

glossaire_std()

glossaire_std(mixed $terme) : mixed
Parameters
$terme : mixed

inc_lien_court()

inc_lien_court(mixed $url) : mixed
Parameters
$url : mixed

spip_livrer_fichier()

Envoyer un fichier dont on fourni le chemin, le mime type, en attachment ou non, avec un expire

spip_livrer_fichier(string $fichier[, string $content_type = 'application/octet-stream' ][, array<string|int, mixed> $options = [] ]) : mixed
Parameters
$fichier : string
$content_type : string = 'application/octet-stream'
$options : array<string|int, mixed> = []

bool|string $attachment int $expires int|null range

Tags
uses
spip_livrer_fichier_entetes()
uses
spip_livrer_fichier_entier()
uses
spip_livrer_fichier_partie()
throws
Exception

spip_livrer_fichier_entetes()

Envoyer les entetes du fichier, sauf ce qui est lie au mode d'envoi (entier ou par parties)

spip_livrer_fichier_entetes(string $fichier[, string $content_type = 'application/octet-stream' ][, bool|string $attachment = false ][, int|string $expires = 0 ]) : mixed
Parameters
$fichier : string
$content_type : string = 'application/octet-stream'
$attachment : bool|string = false
$expires : int|string = 0
Tags
see
spip_livrer_fichier()
used-by
spip_livrer_fichier()

spip_livrer_fichier_partie()

Envoyer une partie du fichier Prendre en charge l'entete Range:bytes=0-456 utilise par les player medias source : https://github.com/pomle/php-serveFilePartial/blob/master/ServeFilePartial.inc.php

spip_livrer_fichier_partie(string $fichier[, string $range = null ]) : mixed
Parameters
$fichier : string
$range : string = null
Tags
throws
Exception
used-by
spip_livrer_fichier()

inc_log_dist()

inc_log_dist(mixed $message[, mixed $logname = null ][, mixed $logdir = null ][, mixed $logsuf = null ]) : mixed
Parameters
$message : mixed
$logname : mixed = null
$logdir : mixed = null
$logsuf : mixed = null
Tags
deprecated
5.0

Utiliser spip_logger()

produire_image_math()

produire_image_math(mixed $tex) : mixed
Parameters
$tex : mixed

traiter_math()

Active la recherche et l'affichage d'expressions mathématiques dans le texte transmis, dans tous les textes à l'intérieur d'une balise `<math>`.

traiter_math(string $letexte[, string $source = '' ][, bool $defaire_amp = false ]) : string

Encadrer un texte de balises <math> ... </math> active la recherche d'expressions mathématiques écrites entre caractères $ au sein de ce texte :

  • $$expression$$ traitera l'expression comme un paragraphe centré (p)
  • $expression$ traitera l'expression comme un texte en ligne (span)

Un serveur distant calculera une image à partir de l'expression mathématique donnée. Cette image est mise en cache localement (local/cache-Tex)

Parameters
$letexte : string
$source : string = ''
$defaire_amp : bool = false

true pour passer les &amp; en & dans les expressions mathématiques.

Tags
note

Si cette fonction est appelée depuis propre() alors un échappement des caractères & en &amp; a été réalisé, qu'il faut redéfaire dans les expressions mathématiques trouvées (utiliser l'option $defaire_amp à true pour cela).

link
https://www.spip.net/3016
uses
produire_image_math()
uses
code_echappement()
Return values
string

inc_meta_dist()

inc_meta_dist([mixed $table = 'meta' ]) : mixed
Parameters
$table : mixed = 'meta'

lire_metas()

lire_metas([mixed $table = 'meta' ]) : mixed
Parameters
$table : mixed = 'meta'

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)

touch_meta([bool|int $antidate = false ][, string $table = 'meta' ]) : mixed
Parameters
$antidate : bool|int = false

Date de modification du fichier à appliquer si indiqué (timestamp)

$table : string = 'meta'

Table SQL d'enregistrement des meta.

ecrire_meta()

Met à jour ou crée une meta avec la clé et la valeur indiquée

ecrire_meta(string $nom, string $valeur[, string|null $importable = null ][, string $table = 'meta' ]) : mixed
Parameters
$nom : string

Nom de la meta

$valeur : string

Valeur à enregistrer

$importable : string|null = null

Cette meta s'importe-elle avec une restauration de sauvegarde ? 'oui' ou 'non'

$table : string = 'meta'

Table SQL d'enregistrement de la meta.

Tags
see
ecrire_config()
see
effacer_config()
see
lire_config()
used-by
appliquer_modifs_config()
used-by
ecrire_tableau_edition()

cache_meta()

Retourne le nom du fichier cache d'une table SQL de meta

cache_meta([string $table = 'meta' ]) : string
Parameters
$table : string = 'meta'

Table SQL d'enregistrement des meta.

Return values
string

Nom du fichier cache

installer_table_meta()

Installer une table de configuration supplementaire

installer_table_meta(string $table) : mixed
Parameters
$table : string

supprimer_table_meta()

Supprimer une table de configuration supplémentaire

supprimer_table_meta(string $table[, bool $force = false ]) : mixed

Si $force=true, on ne verifie pas qu'elle est bien vide

Parameters
$table : string
$force : bool = false

install_debut_html()

Retourne le début d'une page HTML minimale (de type installation)

install_debut_html([string $titre = 'AUTO' ][, string $onLoad = '' ][, bool $all_inline = false ]) : string
Parameters
$titre : string = 'AUTO'

Titre. AUTO, indique que l'on est dans le processus d'installation de SPIP

$onLoad : string = ''

Attributs pour la balise <body>

$all_inline : bool = false

Inliner les css et js dans la page (limiter le nombre de hits)

Tags
deprecated
4.2

Utiliser Spip\Afficher\Minipage\Admin

uses
Admin
Return values
string

Code HTML

install_fin_html()

Retourne la fin d'une page HTML minimale (de type installation ou erreur)

install_fin_html() : string
Tags
deprecated
4.2

Utiliser Spip\Afficher\Minipage\Admin

uses
Admin
Return values
string

Code HTML

minipres()

Retourne une page HTML contenant, dans une présentation minimale, le contenu transmis dans `$titre` et `$corps`.

minipres([string $titre = '' ][, string $corps = '' ][, array<string|int, mixed> $options = [] ]) : string

Appelée pour afficher un message d’erreur (l’utilisateur n’a pas accès à cette page par exemple).

Lorsqu’aucun argument n’est transmis, un header 403 est renvoyé, ainsi qu’un message indiquant une interdiction d’accès.

Parameters
$titre : string = ''

Titre de la page

$corps : string = ''

Corps de la page

$options : array<string|int, mixed> = []

string onload : Attribut onload de <body> bool all_inline : Inliner les css et js dans la page (limiter le nombre de hits) int status : status de la page

Tags
deprecated
4.2

Utiliser Spip\Afficher\Minipage\Admin

uses
Admin
example
include_spip('inc/minipres');
if (!autoriser('configurer')) {
   echo minipres();
   exit;
}
used-by
ask_php_auth()
used-by
check_upload_error()
used-by
raler_fichier()

Pour afficher le message

Return values
string

HTML de la page

traiter_modeles()

Traiter les modeles d'un texte

traiter_modeles(string $texte[, bool|array<string|int, mixed> $doublons = false ][, string $echap = '' ][, string $connect = '' ][, Liens|null $collecteurLiens = null ][, array<string|int, mixed> $env = [] ]) : string
Parameters
$texte : string
$doublons : bool|array<string|int, mixed> = false
$echap : string = ''
$connect : string = ''
$collecteurLiens : Liens|null = null
$env : array<string|int, mixed> = []
Return values
string

collecter_requests()

Collecte des champs postés

collecter_requests(array<string|int, mixed> $include_list[, array<string|int, mixed> $exclude_list = [] ][, array<string|int, mixed>|null $set = null ][, bool $tous = false ]) : array<string|int, mixed>

Fonction générique pour la collecte des posts dans action/editer_xxx

Parameters
$include_list : array<string|int, mixed>

Les champs à récupérer

$exclude_list : array<string|int, mixed> = []

Les champs à ignorer

$set : array<string|int, mixed>|null = null

array : Tableau des champs postés null : Les champs sont obtenus par des _request() sur les noms de la liste d’inclusion

$tous : bool = false

true : Recupère tous les champs de white_list meme ceux n'ayant pas ete postés

Tags
used-by
objet_modifier()
Return values
array<string|int, mixed>

Tableau des champs et valeurs collectées

objet_modifier_champs()

Modifie le contenu d'un objet

objet_modifier_champs(string $objet, int $id_objet, array<string|int, mixed> $options[, array<string|int, mixed>|null $c = null ][, string $serveur = '' ]) : bool|string

Fonction generique pour l'API de modification de contenu, qui se charge entre autres choses d'appeler les pipelines pre_edition et post_edition

Attention, pour éviter des hacks on interdit des champs (statut, id_secteur, id_rubrique, id_parent), mais la securite doit étre assurée en amont

Parameters
$objet : string

Type d'objet

$id_objet : int

Identifiant de l'objet

$options : array<string|int, mixed>

array data : tableau des donnees sources utilisees pour la detection de conflit ($_POST sinon fourni ou si nul) array nonvide : valeur par defaut des champs que l'on ne veut pas vide string date_modif : champ a mettre a date('Y-m-d H:i:s') s'il y a modif string invalideur : id de l'invalideur eventuel array champs : non documente (utilise seulement par inc/rechercher ?) string action : action realisee, passee aux pipelines pre/post edition (par defaut 'modifier') bool indexation : deprecie

$c : array<string|int, mixed>|null = null

Couples champ/valeur à modifier

$serveur : string = ''

Nom du connecteur à la base de données

Tags
used-by
objet_modifier()
Return values
bool|string
  • false : Aucune modification, aucun champ n'est à modifier
  • chaîne vide : Vide si tout s'est bien passé
  • chaîne : texte d'un message d'erreur

spip_nfslock()

Crée un verrou pour NFS

spip_nfslock(string $fichier[, int $max_age = 0 ]) : int|bool

(Excerpts from Chuck's notes: this becomes complex, due to our dear friend, the NFS mounted mail spool. the netbsd code didn't do this properly, as far as I could tell.

  • you can't trust exclusive creating opens over NFS, the protocol just doesn't support it. so to do a lock you have to create a tmp file and then try and hard link it to your lock file.
  • to detect a stale lock file you have to see how old it is, but you can't use time(0) because that is the time on the local system and the file gets the times of the NFS server. when is a lock file stale? people seem to like 120 or 300 seconds.)

NB: It is critical that nfslock()ed files be unlocked by nfsunlock(). Simply unlinking the lock file is a good way to trash someone else's lock file. All it takes is for the process doing the unlink to get hung for a few minutes when it doesn't expect it. Meanwhile, its lock expires and a second process forces the lock and creates its own. Then the first process comes along and kills the second process' lock while it's still valid.

Security considerations: If we're root, be very careful to see that the temp file we opened is what we think it is. The problem is that we could lose a race with someone who takes our tmp file and replaces it with, say, a hard link to /etc/passwd. Then, if the first lock attempt fails, we'll write a char to the file (see 4. below); this would truncate the passwd file. So we make sure that the link count is 1. We don't really care about any other screwing around since we don't write anything sensitive to the lock file, nor do we change its owner or mode. If someone beats us on a race and replaces our temp file with anything else, it's no big deal- the file may get truncated, but there's no possible security breach. ...Actually the possibility of the race ever happening, given the random name of the file, is virtually nil.

args: path = path to directory of lock file (/net/u/1/a/alexis/.mailspool) namelock = file name of lock file (alexis.lock) max_age = age of lockfile, in seconds, after which the lock is stale. stale locks are always broken. Defaults to DEFAULT_LOCKTIME if zero. Panix mail locks go stale at 300 seconds, the default. notify = 1 if we should tell stdout that we're sleeping on a lock

Returns the time that the lock was created on the other system. This is important for nfsunlock(). If the lock already exists, returns NFSL_LOCKED. If there is some other failure, return NFSL_SYSF. If NFSL_LOCKED is returned, errno is also set to EEXIST. If we're root and the link count on the tmp file is wrong, return NFSL_SECV.

Mods of 7/13/95: Change a bit of code to re-stat the lockfile after closing it. This is to work around a bug in SunOS that appears to to affect some SunOS 4.1.3 machines (but not all). The bug is that close() updates the stat st_ctime field for that file. So use lstat on fullpath instead of fstat on tmpfd. This alteration applies to both nfslock and nfslock1.

Mod of 5/4/95: Change printf's to fprintf(stderr... in nfslock and nfslock1.

Mods of 4/29/95: Fix freeing memory before use if a stat fails. Remove code that forbids running as root; instead, if root, check link count on tmp file after opening it.

Mods of 4/27/95: Return the create time instead of the lockfile's fd, which is useless. Added new routines nfsunlock(), nfslock_test(), nfslock_renew().

Mods of 1/8/95: Eliminate some security checks since this code never runs as root. In particular, we completely eliminate the safeopen routine. But add one check: if we are root, fail immediately.

Change arguments: take a path and a filename. Don't assume a global or macro pointing to a mailspool.

Add notify argument; if 1, tell user when we're waiting for a lock.

Add max_age argument and DEFAULT_LOCKTIME.

Change comments drastically.

Parameters
$fichier : string

Chemin du fichier

$max_age : int = 0

Age maximum du verrou

Tags
author

Chuck Cranor chuck@maria.wustl.edu (original author)

author

Alexis Rosen alexis@panix.com (rewritter)

author

Cedric Morin cedric@yterium.com (rewritter for php&SPIP)

used-by
spip_fopen_lock()

si _SPIP_LOCK_MODE = 2.

Return values
int|bool

Timestamp du verrou, false si erreur

spip_nfsunlock()

Unlock an nfslock()ed file

spip_nfsunlock(string $fichier, int $birth[, int $max_age = 0 ][, bool $test = false ]) : mixed

This can get tricky because the lock may have expired (perhaps even during a process that should be "atomic"). We have to make sure we don't unlock some other process' lock, and return a panic code if we think our lock file has been broken illegally. What's done in reaction to that panic (of anything) is up to the caller. See the comments on nfslock()!

args: path = path to directory of lock file (/net/u/1/a/alexis/.mailspool) namelock = file name of lock file (alexis.lock) max_age = age of lockfile, in seconds, after which the lock is stale. stale locks are always broken. Defaults to DEFAULT_LOCKTIME if zero. Panix mail locks go stale at 300 seconds, the default. birth = time the lock was created (as returned by nfslock()).

Returns NFSL_OK if successful, NFSL_LOST if the lock has been lost legitimately (because more than max_age has passed since the lock was created), and NFSL_STOLEN if it's been tampered with illegally (i.e. while this program is within the expiry period). Returns NFSL_SYSF if another system failure prevents it from even trying to unlock the file.

Note that for many programs, a return code of NFSL_LOST or NFSL_STOLEN is equally disastrous; a NFSL_STOLEN means that some other program may have trashed your file, but a NFSL_LOST may mean that you have trashed someone else's file (if in fact you wrote the file that you locked after you lost the lock) or that you read inconsistent information.

In practice, a return code of NFSL_LOST or NFSL_STOLEN will virtually never happen unless someone is violating the locking protocol.

Parameters
$fichier : string

Chemin du fichier

$birth : int

Timestamp de l'heure de création du verrou

$max_age : int = 0

Age maximum du verrou

$test : bool = false

Mode de test return bool true si déverrouillé, false sinon

Tags
author

Alexis Rosen alexis@panix.com

see
spip_nfslock()

spip_nfslock_test()

Test a lock to see if it's still valid.

spip_nfslock_test(string $fichier, int $birth[, int $max_age = 0 ]) : mixed

Args, return codes, and behavior are identical to nfsunlock except that nfslock_test doesn't remove the lock. NFSL_OK means the lock is good, NFLS_LOST and NFSL_STOLEN means it's bad, and NFSL_SYSF means we couldn't tell due to system failure.

The source for this routine is almost identical to nfsunlock(), but it's coded separately to make things as clear as possible.

Parameters
$fichier : string

Chemin du fichier

$birth : int

Timestamp de l'heure de création du verrou

$max_age : int = 0

Age maximum du verrou return bool true si déverrouillé, false sinon

Tags
author

Alexis Rosen alexis@panix.com

see
spip_nfsunlock()

about lost and stolen locks.

inc_notifications_dist()

La fonction de notification de base, qui dispatche le travail

inc_notifications_dist(string $quoi[, int $id = 0 ][, array<string|int, mixed> $options = [] ]) : mixed
Parameters
$quoi : string

Événement de notification

$id : int = 0

id de l'objet en relation avec l'événement

$options : array<string|int, mixed> = []

Options de notification, interprétées en fonction de la notification

notifications_nettoyer_emails()

Néttoyage des emails avant un envoi

notifications_nettoyer_emails(array<string|int, mixed> &$emails[, array<string|int, mixed> $exclure = [] ]) : mixed

On passe par référence pour la perf

les emails liste par $exclure seront exclus de la liste

Parameters
$emails : array<string|int, mixed>
$exclure : array<string|int, mixed> = []

notifications_envoyer_mails()

Envoyer un email de notification

notifications_envoyer_mails(array<string|int, mixed>|string $emails, string $texte[, string $sujet = '' ][, string $from = '' ][, string $headers = '' ]) : mixed

Le sujet peut être vide, dans ce cas il reprendra la première ligne non vide du texte

Parameters
$emails : array<string|int, mixed>|string
$texte : string
$sujet : string = ''
$from : string = ''
$headers : string = ''

email_notification_objet()

Notifier un événement sur un objet

email_notification_objet(int $id_objet, string $type_objet, string $modele) : string

Récupère le fond désigné dans $modele, prend la première ligne comme sujet et l'interprète pour envoyer l'email

Parameters
$id_objet : int
$type_objet : string
$modele : string
Return values
string

email_notification_article()

Notifier un événement sur un article

email_notification_article(int $id_article, string $modele) : string

Récupère le fond désigné dans $modele, prend la première ligne comme sujet et l'interprète pour envoyer l'email

Parameters
$id_article : int
$modele : string
Return values
string

f_tidy()

Indente un code HTML

f_tidy(string $texte) : string

Indente et valide un code HTML si la globale 'xhtml' est définie à true.

Cette fonction est appelée par le pipeline affichage_final

Parameters
$texte : string

Contenu de la page envoyée au navigateur

Tags
pipeline

affichage_final

Return values
string

Contenu de la page envoyée au navigateur

f_insert_head()

Offre `#INSERT_HEAD` sur tous les squelettes (bourrin)

f_insert_head(string $texte) : string

À activer dans mes_options via : $GLOBALS['spip_pipeline']['affichage_final'] .= '|f_insert_head';

Ajoute le contenu du pipeline insert head dans la page HTML si cela n'a pas été fait.

Parameters
$texte : string

Contenu de la page envoyée au navigateur

Tags
pipeline_appel

insert_head

Return values
string

Contenu de la page envoyée au navigateur

f_admin()

Insérer au besoin les boutons admins

f_admin(string $texte) : string

Cette fonction est appelée par le pipeline affichage_final

Parameters
$texte : string

Contenu de la page envoyée au navigateur

Tags
pipeline

affichage_final

uses
affiche_boutons_admin()
Return values
string

Contenu de la page envoyée au navigateur

f_recuperer_fond()

Actions sur chaque inclusion

f_recuperer_fond(array<string|int, mixed> $flux) : array<string|int, mixed>

Appelle f_afficher_blocs_ecrire() sur les inclusions dans l'espace privé. Ne change rien dans l'espace public.

Cette fonction est appelée par le pipeline recuperer_fond

Parameters
$flux : array<string|int, mixed>

Description et contenu de l'inclusion

Tags
uses
f_afficher_blocs_ecrire()
pipeline

recuperer_fond

Return values
array<string|int, mixed>

$flux Description et contenu de l'inclusion

f_queue()

Gérer le lancement du cron si des tâches sont en attente

f_queue(string $texte) : string
Parameters
$texte : string

Contenu de la page envoyée au navigateur

Tags
pipeline

affichage_final

uses
queue_sleep_time_to_next_job()
uses
queue_affichage_cron()
Return values
string

Contenu de la page envoyée au navigateur

f_jQuery_prive()

Inserer jQuery et ses plugins pour l'espace privé

f_jQuery_prive(string $texte) : string

La fonction ajoute les balises scripts dans le texte qui appelent les scripts jQuery ainsi que certains de ses plugins. La liste des js chargée peut être complété par le pipeline 'jquery_plugins'

Cette fonction est appelée par le pipeline header_prive

Parameters
$texte : string

Contenu qui sera inséré dans le head HTML

Tags
see
f_jQuery()
Return values
string

Contenu complété des scripts javascripts, dont jQuery

affichage_final_prive_title_auto()

Ajout automatique du title dans les pages du privé en squelette

affichage_final_prive_title_auto(string $texte) : string

Appellé dans le pipeline affichage_final_prive

Parameters
$texte : string
Return values
string

f_afficher_blocs_ecrire()

Utilisation du pipeline recuperer_fond dans le prive

f_afficher_blocs_ecrire(array<string|int, mixed> $flux) : array<string|int, mixed>

Branchement automatise de affiche_gauche, affiche_droite, affiche_milieu pour assurer la compat avec les versions precedentes des exec en php Branche de affiche_objet

Les pipelines ne recevront plus exactement le meme contenu en entree, mais la compat multi vertions pourra etre assuree par une insertion au bon endroit quand le contenu de depart n'est pas vide

Parameters
$flux : array<string|int, mixed>

Données du pipeline

Tags
used-by
f_recuperer_fond()
Return values
array<string|int, mixed>

Données du pipeline

afficher_blocs_ecrire_preparer_marqueur()

Vérifie la présence d'un marqueur dans le HTML et l'ajoute si nécessaire.

afficher_blocs_ecrire_preparer_marqueur(string $texte, string $marqueur, string $inserer_avant[, string $ouvrir = '' ][, string $fermer = '' ]) : string

Fonction à appeler avant d'insérer des contenus via pipelines. Le marqueur peut optionnellement être encapsulé dans des balises. S'il est déjà présent et encapsulé, il ne faut PAS qu'il y ait d'espace blanc en trop.

Parameters
$texte : string

Contenu HTML

$marqueur : string

Marqueur cherché, tel que <!--affiche_milieu-->

$inserer_avant : string

Expression régulière indiquant avant quel élément insérer le marqueur s'il est absent Exemple : <div id=["\']wysiwyg

$ouvrir : string = ''

Balise ouvrante si le marqueur doit être encapsulé Exemple : <div class="affiche_milieu">

$fermer : string = ''

Balise fermante si le marqueur doit être encapsulé Exemple : </div>

Return values
string

HTML avec le marqueur, ou inchangé si ajout impossible.

f_queue_affiche_milieu()

Afficher les taches en attente liees a un objet

f_queue_affiche_milieu(string $flux) : string
Parameters
$flux : string
Tags
pipeline

affiche_milieu

Return values
string

mise_a_jour_affiche_milieu()

Afficher le message de mise à jour dans toutes les pages du privé pour les webmestres

mise_a_jour_affiche_milieu(string $flux) : string
Parameters
$flux : string
Tags
pipeline

affiche_milieu

Return values
string

trouver_objet_exec()

Trouver l'objet qui correspond à l'exec de l'espace privé passé en argument

trouver_objet_exec(string|null $exec) : array<string|int, mixed>|bool

renvoie false si pas d'objet en cours, ou un tableau associatif contenant les informations table_objet_sql,table,type,id_table_objet,edition

Parameters
$exec : string|null

nom de la page testee

Return values
array<string|int, mixed>|bool

inc_plonger_dist()

inc_plonger_dist(mixed $id_rubrique[, mixed $idom = '' ][, mixed $list = [] ][, mixed $col = 1 ][, mixed $exclu = 0 ][, mixed $do = 'aff' ]) : mixed
Parameters
$id_rubrique : mixed
$idom : mixed = ''
$list : mixed = []
$col : mixed = 1
$exclu : mixed = 0
$do : mixed = 'aff'
Tags
used-by
exec_plonger_dist()
used-by
inc_selectionner_dist()

liste_plugin_files()

Retourne la description de chaque plugin présent dans un répertoire

liste_plugin_files([string|null $dir_plugins = null ]) : array<string|int, mixed>

Lecture des sous repertoire plugin existants

Parameters
$dir_plugins : string|null = null
  • string : Chemin (relatif à la racine du site) du répertoire à analyser.
  • null : utilise le chemin _DIR_PLUGINS.
Tags
example
  • liste_plugin_files()
  • liste_plugin_files(_DIR_PLUGINS_DIST)
  • liste_plugin_files(_DIR_PLUGINS_SUPPL)
uses
fast_find_plugin_dirs()
uses
plugins_get_infos_dist()
used-by
affiche_les_plugins_verrouilles()
used-by
liste_plugin_valides()
Return values
array<string|int, mixed>

fast_find_plugin_dirs()

Recherche rapide des répertoires de plugins contenus dans un répertoire

fast_find_plugin_dirs(string $dir[, int $max_prof = 100 ]) : array<string|int, mixed>
Parameters
$dir : string

Chemin du répertoire dont on souhaite retourner les sous répertoires

$max_prof : int = 100

Profondeur maximale des sous répertoires

Tags
uses
is_plugin_dir()
used-by
liste_plugin_files()
Return values
array<string|int, mixed>

Liste complète des répeertoires

is_plugin_dir()

Indique si un répertoire (ou plusieurs) est la racine d'un plugin SPIP

is_plugin_dir(string|array<string|int, string> $dir[, string|null $dir_plugins = null ]) : string|array<string|int, string>

Vérifie le ou les chemins relatifs transmis pour vérifier qu'ils contiennent un paquet.xml. Les chemins valides sont retournés.

Parameters
$dir : string|array<string|int, string>

Chemin (relatif à $dir_plugins), ou liste de chemins à tester

$dir_plugins : string|null = null
  • string : Chemin de répertoire (relatif à la _DIR_RACINE), départ des chemin(s) à tester
  • null (par défaut) : utilise le chemin _DIR_PLUGINS
Tags
used-by
fast_find_plugin_dirs()
Return values
string|array<string|int, string>
  • string : Le chemin accepté (c'était un plugin)
  • '' : ce n'était pas un chemin valide
  • array : Ensemble des chemins acceptés (si $dir était array)

plugin_version_compatible()

Teste si le numéro de version d'un plugin est dans un intervalle donné.

plugin_version_compatible(string $intervalle, string $version[, string $avec_quoi = '' ]) : bool

Cette fonction peut être volontairement trompée (phase de développement) : voir commentaire infra sur l'utilisation de la constante _DEV_VERSION_SPIP_COMPAT

Parameters
$intervalle : string

Un intervalle entre 2 versions. ex: [2.0.0-dev;2.1.*]

$version : string

Un numéro de version. ex: 3.1.99]

$avec_quoi : string = ''

Ce avec quoi est testée la compatibilité. par défaut ('') avec un plugin (cas des 'necessite'), parfois ('spip') avec SPIP.

Tags
uses
spip_version_compare()
used-by
plugin_valide_resume()
used-by
plugin_trier()
used-by
plugin_controler_necessite()
used-by
plugins_precompile_chemin()
Return values
bool

True si dans l'intervalle, false sinon.

liste_plugin_valides()

Construire la liste des infos strictement necessaires aux plugins à activer afin de les mémoriser dans une meta pas trop grosse

liste_plugin_valides(array<string|int, mixed> $liste_plug[, bool $force = false ]) : array<string|int, mixed>
Parameters
$liste_plug : array<string|int, mixed>
$force : bool = false
Tags
uses
liste_plugin_files()
uses
plugins_get_infos_dist()
uses
plugin_valide_resume()
uses
plugin_fixer_procure()
Return values
array<string|int, mixed>

plugin_valide_resume()

Ne retenir un plugin que s'il est valide et dans leur plus recente version compatible avec la version presente de SPIP

plugin_valide_resume(array<string|int, mixed> &$liste, string $plug, array<string|int, mixed> $infos, string $dir_type) : string|array<string|int, mixed>
Parameters
$liste : array<string|int, mixed>
$plug : string
$infos : array<string|int, mixed>
$dir_type : string
Tags
uses
plugin_version_compatible()
uses
spip_version_compare()
used-by
liste_plugin_valides()
Return values
string|array<string|int, mixed>

string prefixe dans $liste si on a accepte le plugin array description short si on ne le retient pas (pour memorisation dans une table des erreurs)

plugin_fixer_procure()

Compléter la liste des plugins avec les éventuels procure

plugin_fixer_procure(array<string|int, mixed> &$liste, array<string|int, mixed> &$infos) : mixed

les balises <procure> sont considerées comme des plugins proposés, mais surchargeables (on peut activer un plugin qui procure ça pour l'améliorer, donc avec le même prefixe, qui sera pris en compte si il a une version plus grande)

Parameters
$liste : array<string|int, mixed>
$infos : array<string|int, mixed>
Tags
uses
spip_version_compare()
used-by
liste_plugin_valides()

liste_chemin_plugin()

Extrait les chemins d'une liste de plugin

liste_chemin_plugin(array<string|int, mixed> $liste[, string $dir_plugins = _DIR_PLUGINS ]) : array<string|int, mixed>

Sélectionne au passage ceux qui sont dans $dir_plugins uniquement si valeur non vide

Parameters
$liste : array<string|int, mixed>
$dir_plugins : string = _DIR_PLUGINS
Tags
used-by
admin_plug_args()
used-by
liste_chemin_plugin_actifs()
Return values
array<string|int, mixed>

liste_chemin_plugin_actifs()

Liste les chemins vers les plugins actifs du dossier fourni en argument a partir d'une liste d'elelements construits par plugin_valide_resume

liste_chemin_plugin_actifs([string $dir_plugins = _DIR_PLUGINS ]) : array<string|int, mixed>
Parameters
$dir_plugins : string = _DIR_PLUGINS

Chemin du répertoire de plugins

Tags
uses
liste_plugin_actifs()
uses
liste_chemin_plugin()
Return values
array<string|int, mixed>

plugin_trier()

Trier les plugins en vériant leur dépendances (qui doivent être présentes)

plugin_trier(array<string|int, mixed> $infos, array<string|int, mixed> $liste_non_classee) : array<string|int, mixed>

Pour tester "utilise", il faut connaître tous les plugins qui seront forcément absents à la fin, car absent de la liste des plugins actifs.

Il faut donc construire une liste ordonnée.

Cette fonction détecte des dépendances circulaires, avec un doute sur un "utilise" qu'on peut ignorer. Mais ne pas insérer silencieusement et risquer un bug sournois latent

Parameters
$infos : array<string|int, mixed>

Répertoire (plugins, plugins-dist, ...) => Couples (prefixes => infos completes) des plugins qu'ils contiennent

$liste_non_classee : array<string|int, mixed>

Couples (prefixe => description) des plugins qu'on souhaite utiliser

Tags
uses
plugin_version_compatible()
Return values
array<string|int, mixed>

Tableau de 3 éléments :

  • $liste : couples (prefixes => description) des plugins valides
  • $ordre : couples (prefixes => infos completes) des plugins triés (les plugins nécessités avant les plugins qui les utilisent)
  • $liste_non_classee : couples (prefixes => description) des plugins qui n'ont pas satisfait leurs dépendances

plugins_erreurs()

Collecte les erreurs de dépendances des plugins dans la meta `plugin_erreur_activation`

plugins_erreurs(array<string|int, mixed> $liste_non_classee, array<string|int, mixed> $liste, array<string|int, mixed> $infos[, mixed $msg = [] ]) : mixed
Parameters
$liste_non_classee : array<string|int, mixed>

Couples (prefixe => description) des plugins en erreur

$liste : array<string|int, mixed>

Couples (prefixe => description) des plugins qu'on souhaite utiliser

$infos : array<string|int, mixed>

Répertoire (plugins, plugins-dist, ...) => Couples (prefixes => infos completes) des plugins qu'ils contiennent

$msg : mixed = []
Tags
uses
plugin_necessite()
uses
plugin_controler_lib()

plugin_donne_erreurs()

Retourne les erreurs d'activation des plugins, au format html ou brut

plugin_donne_erreurs([bool $raw = false ][, bool $raz = true ]) : string|array<string|int, mixed>
Parameters
$raw : bool = false
  • true : pour obtenir le tableau brut des erreurs
  • false : Code HTML
$raz : bool = true
  • true pour effacer la meta qui stocke les erreurs.
Tags
used-by
admin_plug_args()
Return values
string|array<string|int, mixed>
  • Liste des erreurs ou code HTML des erreurs

plugin_necessite()

Teste des dépendances

plugin_necessite(array<string|int, mixed> $n, array<string|int, mixed> $liste[, mixed $balise = 'necessite' ]) : array<string|int, mixed>

Et vérifie que chaque dépendance est présente dans la liste de plugins donnée

Parameters
$n : array<string|int, mixed>

Tableau de dépendances dont on souhaite vérifier leur présence

$liste : array<string|int, mixed>

Tableau des plugins présents

$balise : mixed = 'necessite'
Tags
uses
plugin_controler_necessite()
used-by
plugins_erreurs()
Return values
array<string|int, mixed>

Tableau des messages d'erreurs reçus. Il sera vide si tout va bien.

plugin_controler_necessite()

Vérifie qu'une dépendance (plugin) est bien présente.

plugin_controler_necessite(array<string|int, mixed> $liste, string $nom, string $intervalle, string $balise) : string
Parameters
$liste : array<string|int, mixed>

Liste de description des plugins

$nom : string

Le plugin donc on cherche la presence

$intervalle : string

L'éventuelle intervalle de compatibilité de la dépendance. ex: [1.1.0;]

$balise : string

Permet de définir si on teste un utilise ou un nécessite

Tags
uses
plugin_version_compatible()
uses
plugin_message_incompatibilite()
used-by
plugin_necessite()
Return values
string

Vide si ok, Message d'erreur lorsque la dépendance est absente.

plugin_message_incompatibilite()

plugin_message_incompatibilite(string $intervalle, string $version, string $nom, string $balise) : string
Parameters
$intervalle : string

L'éventuelle intervalle de compatibilité de la dépendance. ex: [1.1.0;]

$version : string

La version en cours active pour le plugin demandé (ou php ou extension php demandée)

$nom : string

Le plugin (ou php ou extension php) qui est absent

$balise : string

Le type de balise utilisé (necessite ou utilise)

Tags
used-by
plugin_controler_necessite()
Return values
string

Le message d'erreur.

plugin_controler_lib()

plugin_controler_lib(mixed $lib, mixed $url) : mixed
Parameters
$lib : mixed
$url : mixed
Tags
used-by
plugins_erreurs()

actualise_plugins_actifs()

Calcule la liste des plugins actifs et recompile les fichiers caches qui leurs sont relatifs

actualise_plugins_actifs([bool $pipe_recherche = false ]) : bool
Parameters
$pipe_recherche : bool = false

?

Tags
uses
ecrire_plugin_actifs()
used-by
exec_admin_plugin_dist()
Return values
bool

true si il y a eu des modifications sur la liste des plugins actifs, false sinon

ecrire_plugin_actifs()

Calcule ou modifie la liste des plugins actifs et recompile les fichiers caches qui leurs sont relatifs

ecrire_plugin_actifs(string|array<string|int, string> $plugin[, bool $pipe_recherche = false ][, string $operation = 'raz' ]) : bool
Parameters
$plugin : string|array<string|int, string>

Plugin ou plugins concernés (leur chemin depuis le répertoire plugins)

$pipe_recherche : bool = false

?

$operation : string = 'raz'
  • raz : recalcule tout
  • ajoute : ajoute le plugin indiqué à la liste des plugins actifs
  • enleve : enleve le plugin indiqué de la liste des plugins actifs
  • force : ?
Tags
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)

used-by
actualise_plugins_actifs()
Return values
bool

true si il y a eu des modifications sur la liste des plugins actifs, false sinon

plugins_precompile_chemin()

Écrit le fichier de déclaration des chemins (path) des plugins actifs

plugins_precompile_chemin(array<string|int, mixed> $plugin_valides, array<string|int, mixed> $ordre) : mixed

Le fichier créé, une fois exécuté permet à SPIP de rechercher des fichiers dans les répertoires des plugins concernés.

Parameters
$plugin_valides : array<string|int, mixed>

Couples (prefixe => description) des plugins qui seront actifs

$ordre : array<string|int, mixed>

Couples (prefixe => infos complètes) des plugins qui seront actifs, dans l'ordre de leurs dépendances

Tags
see
_chemin()

Utilisé pour déclarer les chemins.

uses
plugin_version_compatible()
uses
ecrire_fichier_php()

plugins_precompile_xxxtions()

Écrit les fichiers de chargement des fichiers d'options et de fonctions des plugins

plugins_precompile_xxxtions(array<string|int, mixed> $plugin_valides, array<string|int, mixed> $ordre) : mixed

Les onglets et menus déclarés dans le fichier paquet.xml des plugins sont également ajoutés au fichier de fonctions créé.

Parameters
$plugin_valides : array<string|int, mixed>

Couples (prefixe => description) des plugins qui seront actifs

$ordre : array<string|int, mixed>

Couples (prefixe => infos complètes) des plugins qui seront actifs, dans l'ordre de leurs dépendances

Tags
uses
plugin_ongletbouton()
uses
ecrire_fichier_php()

plugin_ongletbouton()

Compile les entrées d'un menu et retourne le code php d'exécution

plugin_ongletbouton(string $nom, array<string|int, mixed> $val) : string

Génère et retourne un code php (pour enregistrement dans un fichier de cache) permettant d'obtenir la liste des entrées de menus, ou des onglets de l'espace privé.

Définit également une constante (UPDATED$nom et UPDATED_md5$nom), signalant une modification de ces menus

Parameters
$nom : string

Nom du type de menu Exemple: boutons_plugins, onglets_plugins

$val : array<string|int, mixed>

Liste des entrées de ce menu

Tags
used-by
plugins_precompile_xxxtions()
Return values
string

Code php

plugins_amorcer_plugins_actifs()

Chargement des plugins actifs dans le path de SPIP et exécution de fichiers d'options des plugins

plugins_amorcer_plugins_actifs() : mixed

Les fichiers d'options peuvent déclarer des pipelines ou de nouveaux chemins.

La connaissance chemins peut être nécessaire pour la construction du fichier d'exécution des pipelines.

pipeline_matrice_precompile()

Crée la liste des filtres à traverser pour chaque pipeline

pipeline_matrice_precompile(array<string|int, mixed> $plugin_valides, array<string|int, mixed> $ordre, string $pipe_recherche) : array<string|int, mixed>

Complète la globale spip_pipeline des fonctions que doit traverser un pipeline, et la globale spip_matrice des fichiers à charger qui contiennent ces fonctions.

Retourne aussi pour certaines balises présentes dans les paquet.xml (script, style, genie), un code PHP à insérer au début de la chaîne du ou des pipelines associés à cette balise (insert_head, insert_head_css, taches_generales_cron, ...). Ce sont des écritures raccourcies pour des usages fréquents de ces pipelines.

Parameters
$plugin_valides : array<string|int, mixed>

Couples (prefixe => description) des plugins qui seront actifs

$ordre : array<string|int, mixed>

Couples (prefixe => infos complètes) des plugins qui seront actifs, dans l'ordre de leurs dépendances

$pipe_recherche : string
Return values
array<string|int, mixed>

Couples (nom du pipeline => Code PHP à insérer au début du pipeline)

pipeline_precompile()

Précompilation des pipelines

pipeline_precompile([array<string|int, mixed> $prepend_code = [] ]) : mixed

Crée le fichier d'exécution des pipelines dont le chemin est défini par _CACHE_PIPELINES

La liste des pipelines est définie par la globale spip_pipeline qui a été remplie soit avec les fichiers d'options, soit avec des descriptions de plugins (paquet.xml) dont celui de SPIP lui-même.

Les fichiers à charger pour accéder aux fonctions qui doivent traverser un pipeline se trouve dans la globale spip_matrice.

Parameters
$prepend_code : array<string|int, mixed> = []

Code PHP à insérer avant le passage dans la chaîne des fonctions d'un pipeline Couples 'Nom du pipeline' => Code PHP à insérer

Tags
see
pipeline_matrice_precompile()
uses
ecrire_fichier_php()
uses
clear_path_cache()

plugin_est_installe()

Indique si un chemin de plugin fait parti des plugins activés sur le site

plugin_est_installe(string $plug_path) : bool
Parameters
$plug_path : string

Chemin du plugin

Return values
bool

true si le plugin est actif, false sinon

plugin_installes_meta()

Parcours les plugins activés et appelle leurs fonctions d'installation si elles existent.

plugin_installes_meta() : mixed

Elle ajoute ensuite les plugins qui ont été installés dans la valeur "plugin_installes" de la table meta. Cette meta ne contient que les noms des plugins qui ont une version_base.

Tags
uses
plugins_installer_dist()
used-by
admin_plug_args()

ecrire_fichier_php()

Écrit un fichier PHP

ecrire_fichier_php(string $nom, string $contenu[, string $comment = '' ]) : mixed
Parameters
$nom : string

Chemin du fichier

$contenu : string

Contenu du fichier (sans les balises ouvrantes et fermantes de PHP)

$comment : string = ''

Commentaire : code écrit en tout début de fichier, après la balise PHP ouvrante

Tags
used-by
plugins_precompile_chemin()
used-by
plugins_precompile_xxxtions()
used-by
pipeline_precompile()

inc_precharger_article_dist()

Retourne les valeurs à charger pour un formulaire d'édition d'un article

inc_precharger_article_dist(string|int $id_article[, int $id_rubrique = 0 ][, int $lier_trad = 0 ]) : array<string|int, mixed>

Lors d'une création, certains champs peuvent être préremplis (c'est le cas des traductions)

Parameters
$id_article : string|int

Identifiant de l'article, ou "new" pour une création

$id_rubrique : int = 0

Identifiant éventuel de la rubrique parente

$lier_trad : int = 0

Identifiant éventuel de la traduction de référence

Return values
array<string|int, mixed>

Couples clés / valeurs des champs du formulaire à charger.

inc_precharger_traduction_article_dist()

Récupère les valeurs d'une traduction de référence pour la création d'un article (préremplissage du formulaire).

inc_precharger_traduction_article_dist(string|int $id_article[, int $id_rubrique = 0 ][, int $lier_trad = 0 ]) : array<string|int, mixed>
Parameters
$id_article : string|int

Identifiant de l'article, ou "new" pour une création

$id_rubrique : int = 0

Identifiant éventuel de la rubrique parente

$lier_trad : int = 0

Identifiant éventuel de la traduction de référence

Tags
note

Fonction facultative si pas de changement dans les traitements

Return values
array<string|int, mixed>

Couples clés / valeurs des champs du formulaire à charger

precharger_objet()

Retourne les valeurs à charger pour un formulaire d'édition d'un objet

precharger_objet(string $type, string|int $id_objet[, int $id_rubrique = 0 ][, int $lier_trad = 0 ][, string $champ_titre = 'titre' ]) : array<string|int, mixed>

Lors d'une création, certains champs peuvent être préremplis (c'est le cas des traductions)

Parameters
$type : string

Type d'objet (article, breve...)

$id_objet : string|int

Identifiant de l'objet, ou "new" pour une création

$id_rubrique : int = 0

Identifiant éventuel de la rubrique parente

$lier_trad : int = 0

Identifiant éventuel de la traduction de référence

$champ_titre : string = 'titre'

Nom de la colonne SQL de l'objet donnant le titre : pas vraiment idéal ! On devrait pouvoir le savoir dans la déclaration de l'objet

Return values
array<string|int, mixed>

Couples clés / valeurs des champs du formulaire à charger.

precharger_traduction_objet()

Récupère les valeurs d'une traduction de référence pour la création d'un objet (préremplissage du formulaire).

precharger_traduction_objet(string $type, string|int $id_objet[, int $id_rubrique = 0 ][, int $lier_trad = 0 ][, string $champ_titre = 'titre' ]) : array<string|int, mixed>
Parameters
$type : string

Type d'objet (article, breve...)

$id_objet : string|int

Identifiant de l'objet, ou "new" pour une création

$id_rubrique : int = 0

Identifiant éventuel de la rubrique parente

$lier_trad : int = 0

Identifiant éventuel de la traduction de référence

$champ_titre : string = 'titre'

Nom de la colonne SQL de l'objet donnant le titre

Return values
array<string|int, mixed>

Couples clés / valeurs des champs du formulaire à charger

inc_prepare_recherche_dist()

Préparer les listes `id_article IN (...)` pour les parties WHERE et calcul des `points` pour la partie SELECT des requêtes du moteur de recherche

inc_prepare_recherche_dist(string $recherche[, string $table = 'articles' ][, bool $cond = false ][, string $serveur = '' ][, array<string|int, mixed> $modificateurs = [] ][, string $primary = '' ]) : array<string|int, mixed>

Le paramètre $serveur est utilisé pour savoir sur quelle base on cherche mais l'index des résultats est toujours stocké sur le serveur principal car on ne sait pas si la base distante dispose d'une table spip_resultats ni meme si on aurait le droit d'ecrire dedans

Parameters
$recherche : string

chaine recherchee

$table : string = 'articles'

table dans laquelle porte la recherche

$cond : bool = false

critere conditionnel sur {recherche?}

$serveur : string = ''

serveur de base de donnees

$modificateurs : array<string|int, mixed> = []

modificateurs de boucle, ie liste des criteres presents

$primary : string = ''

cle primaire de la table de recherche

Return values
array<string|int, mixed>

generer_select_where_explicites()

Generer le select et where qui contiennent explicitement les id et points (ie comme dans SPIP 1.9.x) quand on fait une recherche sur une table externe

generer_select_where_explicites(string $table, string $primary, array<string|int, mixed> $rows, string $serveur) : array<string|int, mixed>
Parameters
$table : string
$primary : string
$rows : array<string|int, mixed>
$serveur : string
Return values
array<string|int, mixed>

inc_preselectionner_parent_nouvel_objet_dist()

Preselectionner la rubrique lors de la creation desactive par defaut suite a remontee utilisateur mais activable par define ou surchargeable

inc_preselectionner_parent_nouvel_objet_dist(string $objet, array<string|int, mixed> $row) : string
Parameters
$objet : string
$row : array<string|int, mixed>
Return values
string

debut_cadre()

debut_cadre(mixed $style[, mixed $icone = '' ][, mixed $fonction = '' ][, mixed $titre = '' ][, mixed $id = '' ][, mixed $class = '' ][, mixed $padding = true ]) : mixed
Parameters
$style : mixed
$icone : mixed = ''
$fonction : mixed = ''
$titre : mixed = ''
$id : mixed = ''
$class : mixed = ''
$padding : mixed = true

debut_cadre_relief()

debut_cadre_relief([mixed $icone = '' ][, mixed $dummy = '' ][, mixed $fonction = '' ][, mixed $titre = '' ][, mixed $id = '' ][, mixed $class = '' ]) : mixed
Parameters
$icone : mixed = ''
$dummy : mixed = ''
$fonction : mixed = ''
$titre : mixed = ''
$id : mixed = ''
$class : mixed = ''

debut_cadre_enfonce()

debut_cadre_enfonce([mixed $icone = '' ][, mixed $dummy = '' ][, mixed $fonction = '' ][, mixed $titre = '' ][, mixed $id = '' ][, mixed $class = '' ]) : mixed
Parameters
$icone : mixed = ''
$dummy : mixed = ''
$fonction : mixed = ''
$titre : mixed = ''
$id : mixed = ''
$class : mixed = ''

debut_cadre_sous_rub()

debut_cadre_sous_rub([mixed $icone = '' ][, mixed $dummy = '' ][, mixed $fonction = '' ][, mixed $titre = '' ][, mixed $id = '' ][, mixed $class = '' ]) : mixed
Parameters
$icone : mixed = ''
$dummy : mixed = ''
$fonction : mixed = ''
$titre : mixed = ''
$id : mixed = ''
$class : mixed = ''

debut_cadre_couleur()

debut_cadre_couleur([mixed $icone = '' ][, mixed $dummy = '' ][, mixed $fonction = '' ][, mixed $titre = '' ][, mixed $id = '' ][, mixed $class = '' ]) : mixed
Parameters
$icone : mixed = ''
$dummy : mixed = ''
$fonction : mixed = ''
$titre : mixed = ''
$id : mixed = ''
$class : mixed = ''

debut_cadre_trait_couleur()

debut_cadre_trait_couleur([mixed $icone = '' ][, mixed $dummy = '' ][, mixed $fonction = '' ][, mixed $titre = '' ][, mixed $id = '' ][, mixed $class = '' ]) : mixed
Parameters
$icone : mixed = ''
$dummy : mixed = ''
$fonction : mixed = ''
$titre : mixed = ''
$id : mixed = ''
$class : mixed = ''

gros_titre()

Affiche le titre d’une page de l’interface privée. Utilisée par la plupart des fichiers `exec/xx.php`.

gros_titre(string $titre[, string $ze_logo = '' ]) : string
Parameters
$titre : string

Le titre en question

$ze_logo : string = ''

Une image de logo

Return values
string

Code PHP.

bloc_des_raccourcis()

bloc_des_raccourcis(mixed $bloc) : mixed
Parameters
$bloc : mixed

onglet()

onglet(mixed $texte, mixed $lien, mixed $onglet_ref, mixed $onglet[, mixed $icone = '' ]) : mixed
Parameters
$texte : mixed
$lien : mixed
$onglet_ref : mixed
$onglet : mixed
$icone : mixed = ''
Tags
used-by
barre_onglets()

icone_verticale()

Crée un lien précédé d'une icone au dessus du texte

icone_verticale(string $texte, string $lien, string $fond[, string $fonction = '' ][, string $align = '' ][, string $javascript = '' ]) : string
Parameters
$texte : string

texte du lien

$lien : string

URL du lien

$fond : string

Objet avec ou sans son extension et sa taille (article, article-24, article-24.png)

$fonction : string = ''

Fonction du lien (edit, new, del)

$align : string = ''

Classe CSS, tel que left, right pour définir un alignement

$javascript : string = ''

Javascript ajouté sur le lien

Tags
uses
icone_base()
see
filtre_icone_verticale_dist()

Pour l'usage en tant que filtre

example
$icone = icone_verticale(_T('sites:info_sites_referencer'),
    generer_url_ecrire('site_edit', "id_rubrique=$id_rubrique"),
    "site-24.png", "new", 'right')
Return values
string

Code HTML du lien

icone_horizontale()

Crée un lien précédé d'une icone horizontale

icone_horizontale(string $texte, string $lien, string $fond[, string $fonction = '' ][, string $dummy = '' ][, string $javascript = '' ]) : string
Parameters
$texte : string

texte du lien

$lien : string

URL du lien

$fond : string

Objet avec ou sans son extension et sa taille (article, article-24, article-24.png)

$fonction : string = ''

Fonction du lien (edit, new, del)

$dummy : string = ''

Inutilisé

$javascript : string = ''

Javascript ajouté sur le lien

Tags
uses
icone_base()
see
filtre_icone_horizontale_dist()

Pour l'usage en tant que filtre

Return values
string

Code HTML du lien

debut_grand_cadre()

Retourne le code HTML d'un début de cadre pour le centre de page (haut de page)

debut_grand_cadre() : string
Return values
string

Code HTML

fin_grand_cadre()

Retourne le code HTML d'une fin de cadre pour le centre de page (haut de page)

fin_grand_cadre() : string
Return values
string

Code HTML

debut_gauche()

Retourne le code HTML du début de la colonne gauche

debut_gauche() : string
Return values
string

Code HTML

fin_gauche()

Retourne le code HTML de la fin de la colonne

fin_gauche() : string
Return values
string

Code HTML

creer_colonne_droite()

Retourne le code HTML du changement de colonne (passer de la gauche à la droite)

creer_colonne_droite() : string
Return values
string

Code HTML

debut_droite()

Retourne le code HTML de la colonne droite et du centre de page

debut_droite() : string
Return values
string

Code HTML

liste_objets_bloques()

Retourne la liste des objets édités récemment (si les drapeaux d'édition sont actifs)

liste_objets_bloques(string $exec[, array<string|int, mixed> $contexte = [] ][, array<string|int, mixed>|null $auteur = null ]) : string

Si notre page est une page d'édition d'un objet, on déclare au passage l'auteur comme éditant l'objet

Parameters
$exec : string

Nom de la page exec en cours

$contexte : array<string|int, mixed> = []

contexte de la page

$auteur : array<string|int, mixed>|null = null

Session de l'auteur. Sera prise sur l'auteur connecté si non indiquée.

Tags
uses
signale_edition()
uses
liste_drapeau_edition()
Return values
string

Code HTML

fin_page()

Retourne le code HTML de fin de page de l'interface privée.

fin_page() : string

Elle génère au passage un appel pour déclencher les tâches cron

Tags
see
f_queue()

Pour l'appel au cron

Return values
string

Code HTML

html_tests_js()

Retourne des tests javascript à exécuter

html_tests_js() : string
  • Teste que javascript est actif : si non, un hit sur exec=test_ajax est généré
  • Rejoue la session si demandé (par verifier_session() si l'ip a changé)
Tags
see
exec_test_ajax_dist()
see
verifier_session()
Return values
string

Code HTML

info_maj_spip()

Retourne la liste des mises à jour de SPIP possibles

info_maj_spip() : string
Return values
string

texte présentant la liste des mises à jour existantes

Retourne les informations de copyright (version de SPIP, de l'écran de sécurité) pour le pied de page de l'espace privé

info_copyright() : string
Return values
string

Code HTML

enfant_rub()

Crée l'affichage des listes de rubriques dans le privé

enfant_rub(int $collection[, int $debut = 0 ][, int $limite = 500 ]) : array<string|int, mixed>
Parameters
$collection : int

L'identifiant numérique de la rubrique à lister

$debut : int = 0

Le numéro de la pagination si paginé (> 500)

$limite : int = 500

Le pas de pagination si paginé (> 500)

Return values
array<string|int, mixed>

$res Un tableau des sous rubriques

sous_enfant_rub()

Affiche les enfants d'une sous rubrique dans un bloc dépliable (Utilisé dans les pages du privé)

sous_enfant_rub(int $collection2) : string
Parameters
$collection2 : int

L'identifiant numérique de la rubrique parente

Return values
string

Le contenu du bloc dépliable

afficher_enfant_rub()

Affiche la liste des rubriques enfants d'une rubrique (Utilisé dans les pages du privé notamment ?exec=rubriques)

afficher_enfant_rub([int $id_rubrique = 0 ]) : string

Si plus de 500 rubriques enfants, on pagine par 500 les résultats

Parameters
$id_rubrique : int = 0

L'identifiant numérique de la rubrique parente (0 par défaut, la racine)

Return values
string

$res Le contenu textuel affiché, la liste des sous rubriques

inc_puce_statut_dist()

Afficher la puce statut d'un objet

inc_puce_statut_dist(int $id_objet, string $statut, int $id_parent, string $type[, bool $ajax = false ][, bool $menu_rapide = _ACTIVER_PUCE_RAPIDE ]) : string

Utilise une fonction spécifique pour un type d'objet si elle existe, tel que puce_statut_$type_dist(), sinon tente avec puce_statut_changement_rapide().

Parameters
$id_objet : int

Identifiant de l'objet

$statut : string

Statut actuel de l'objet

$id_parent : int

Identifiant du parent

$type : string

Type d'objet

$ajax : bool = false

Indique s'il ne faut renvoyer que le coeur du menu car on est dans une requete ajax suite à un post de changement rapide

$menu_rapide : bool = _ACTIVER_PUCE_RAPIDE

Indique si l'on peut changer le statut, ou si on l'affiche simplement

Tags
see
puce_statut_changement_rapide()
used-by
exec_puce_statut_args()
Return values
string

Code HTML de l'image de puce de statut à insérer (et du menu de changement si présent)

statut_image()

Récuperer l'image correspondant au statut pour un objet éditorial indiqué

statut_image(string $objet, string $statut) : string|null

Retrouve l'image correspondant au statut, telle que declarée dans declarer_tables_objets_sql sous la forme :

```
array(
    'imagepardefaut.png',
    'statut1' => 'imagestatut1.png',
    'statut2' => 'imagestatut2.png',
    ...
)
```

Mettre une chaine vide pour ne pas avoir d'image pour un statut particulier.

Si rien n'est declaré et que le statut est dans un des cas connus habituels (prepa, prop, publie, refuse, poubelle), alors on renvoie l'image par défaut pour ce statut

Parameters
$objet : string
$statut : string
Return values
string|null

null si pas capable de déterminer l'image

statut_titre()

Récupérer le titre correspondant au statut pour un objet éditorial indiqué

statut_titre(string $objet, string $statut) : string

Retrouve le titre correspondant au statut, tel qu'il a été declaré dans declarer_tables_objets_sql sous la forme :

```
array(
    'titre par defaut',
    'statut1' => 'titre statut 1',
    'statut2' => 'titre statut 2',
     ...

)


Mettre une chaine vide pour ne pas avoir de titre pour un statut particulier.

Si rien n'est declaré et que le statut est dans un des cas connus habituels
(prepa, prop, publie, refuse, poubelle), alors on renvoie le texte par défaut pour ce statut
Parameters
$objet : string
$statut : string
Return values
string

statut_texte_instituer()

Recuperer le texte correspondant au choix de statut, tel que declare dans declarer_tables_objets_sql sous la forme array('statut1'=>'texte statut 1','statut2'=>'texte statut 2' ...) mettre une chaine vide pour ne pas proposer un statut les statuts seront proposes dans le meme ordre que dans la declaration

statut_texte_instituer(string $objet, string $statut) : string

si rien de declare et que le statut est dans les cas connus (prepa, prop, publie, refuse, poubelle) renvoyer le texte par defaut

Parameters
$objet : string
$statut : string
Return values
string

puce_statut_auteur_dist()

Afficher la puce statut d'un auteur

puce_statut_auteur_dist(int $id, string $statut, int $id_parent, string $type[, string $ajax = '' ][, bool $menu_rapide = _ACTIVER_PUCE_RAPIDE ]) : string

Ne semble plus servir : desactive Hack de compatibilite: les appels directs ont un $type != 'auteur' si l'auteur ne peut pas se connecter

Parameters
$id : int
$statut : string
$id_parent : int
$type : string
$ajax : string = ''
$menu_rapide : bool = _ACTIVER_PUCE_RAPIDE
Return values
string

puce_statut_rubrique_dist()

puce_statut_rubrique_dist(mixed $id, mixed $statut, mixed $id_rubrique, mixed $type[, mixed $ajax = '' ][, mixed $menu_rapide = _ACTIVER_PUCE_RAPIDE ]) : mixed
Parameters
$id : mixed
$statut : mixed
$id_rubrique : mixed
$type : mixed
$ajax : mixed = ''
$menu_rapide : mixed = _ACTIVER_PUCE_RAPIDE

puce_statut_changement_rapide()

Retourne le contenu d'une puce avec changement de statut possible si on en a l'autorisation, sinon simplement l'image de la puce

puce_statut_changement_rapide(int $id, string $statut, int $id_rubrique[, string $type = 'article' ][, bool $ajax = false ][, bool $menu_rapide = _ACTIVER_PUCE_RAPIDE ]) : string
Parameters
$id : int

Identifiant de l'objet

$statut : string

Statut actuel de l'objet

$id_rubrique : int

Identifiant du parent, une rubrique

$type : string = 'article'

Type d'objet

$ajax : bool = false

Indique s'il ne faut renvoyer que le coeur du menu car on est dans une requete ajax suite à un post de changement rapide

$menu_rapide : bool = _ACTIVER_PUCE_RAPIDE

Indique si l'on peut changer le statut, ou si on l'affiche simplement

Return values
string

Code HTML de l'image de puce de statut à insérer (et du menu de changement si présent)

afficher_script_statut()

afficher_script_statut(mixed $id, mixed $type, mixed $n, mixed $img, mixed $statut, mixed $titre[, mixed $act = '' ]) : mixed
Parameters
$id : mixed
$type : mixed
$n : mixed
$img : mixed
$statut : mixed
$titre : mixed
$act : mixed = ''

puce_statut()

puce_statut(mixed $statut[, mixed $atts = '' ]) : mixed
Parameters
$statut : mixed
$atts : mixed = ''

queue_add_job()

Ajouter une tâche à la file

queue_add_job(string $function, string $description[, array<string|int, mixed> $arguments = [] ][, string $file = '' ][, bool $no_duplicate = false ][, int $time = 0 ][, int $priority = 0 ]) : int

Les tâches sont ensuites exécutées par date programmée croissant/priorité décroissante

Parameters
$function : string

The function name to call.

$description : string

A human-readable description of the queued job.

$arguments : array<string|int, mixed> = []

Optional array of arguments to pass to the function.

$file : string = ''

Optional file path which needs to be included for $fucntion.

$no_duplicate : bool = false

If TRUE, do not add the job to the queue if one with the same function and arguments already exists. If 'function_only' test of existence is only on function name (for cron job)

$time : int = 0

time for starting the job. If 0, job will start as soon as possible

$priority : int = 0

-10 (low priority) to +10 (high priority), 0 is the default

Tags
used-by
inc_genie_dist()

Lorsqu'une tâche est à forcer

Return values
int

id of job

queue_purger()

Purger la file de tâche et reprogrammer les tâches périodiques

queue_purger() : void

queue_remove_job()

Retirer une tache de la file d'attente

queue_remove_job(int $id_job) : int|bool
Parameters
$id_job : int

id de la tache a retirer

Return values
int|bool

Associer une tache avec un objet

queue_link_job(int $id_job, array<string|int, mixed> $objets) : mixed
Parameters
$id_job : int

id de la tache a lier

$objets : array<string|int, mixed>

peut être un simple tableau array('objet'=>'article','id_objet'=>23) ou un tableau composé de tableaux simples pour lieur plusieurs objets en une fois

Dissocier une tache d'un objet

queue_unlink_job(int $id_job) : int
Parameters
$id_job : int

id de la tache à dissocier

Return values
int

resultat du sql_delete

queue_start_job()

Lancer une tache decrite par sa ligne SQL

queue_start_job(array<string|int, mixed> $row) : mixed
Parameters
$row : array<string|int, mixed>

describe the job, with field of table spip_jobs

Return values
mixed

return the result of job

queue_schedule()

Exécute les prochaînes tâches cron et replanifie les suivantes

queue_schedule([array<string|int, mixed> $force_jobs = null ]) : null|bool

Prend une par une les tâches en attente et les lance, dans la limite d'un temps disponible total et d'un nombre maxi de tâches

La date de la prochaine tâche à exécuter est mise à jour après chaque chaque tâche finie afin de relancer le scheduler uniquement quand c'est nécessaire

Parameters
$force_jobs : array<string|int, mixed> = null

list of id_job to execute when provided

Tags
uses
queue_sleep_time_to_next_job()
uses
queue_error_handler()

Pour capturer les erreurs en fin de hit

uses
queue_start_job()
uses
queue_close_job()
uses
queue_update_next_job_time()
used-by
inc_genie_dist()
Return values
null|bool
  • null : pas de tâche à réaliser maintenant
  • false : pas de connexion SQL
  • true : une planification a été faite.

queue_close_job()

Terminer un job au status _JQ_PENDING

queue_close_job(array<string|int, mixed> &$row, int $time[, int $result = 0 ]) : mixed
  • le reprogrammer si c'est un cron
  • supprimer ses liens
  • le detruire en dernier
Parameters
$row : array<string|int, mixed>
$time : int
$result : int = 0
Tags
uses
queue_is_cron_job()
uses
queue_genie_replan_job()
used-by
queue_schedule()

queue_is_cron_job()

Tester si une tâche était une tâche périodique à reprogrammer

queue_is_cron_job(string $function, string $inclure) : bool|int
Parameters
$function : string

Nom de la fonction de tâche

$inclure : string

Nom de l'inclusion contenant la fonction

Tags
uses
taches_generales()
used-by
queue_close_job()
Return values
bool|int

Périodicité de la tâche en secondes, si tâche périodique, sinon false.

queue_update_next_job_time()

Mettre a jour la date du prochain job a lancer Si une date est fournie (au format time unix) on fait simplement un min entre la date deja connue et celle fournie (cas de l'ajout simple ou cas $next_time=0 car l'on sait qu'il faut revenir ASAP)

queue_update_next_job_time([int $next_time = null ]) : mixed
Parameters
$next_time : int = null

temps de la tache ajoutee ou 0 pour ASAP

Tags
used-by
queue_schedule()
used-by
queue_error_handler()

queue_set_next_job_time()

Mettre a jour la date de prochain job

queue_set_next_job_time(int $next) : mixed
Parameters
$next : int

queue_affichage_cron()

Déclenche le cron en asynchrone ou retourne le code HTML pour le déclencher

queue_affichage_cron() : string

Retourne le HTML à ajouter à la page pour declencher le cron ou rien si on a réussi à le lancer en asynchrone.

Un verrou (cron.lock) empêche l'exécution du cron plus d'une fois par seconde.

Tags
uses
queue_sleep_time_to_next_job()
see
action_cron()

L'URL appelée pour déclencher le cron

used-by
f_queue()
Return values
string

queue_lancer_url_http_async()

Lancer le cron via un hit http sans attendre le resultat

queue_lancer_url_http_async(string $url_cron) : bool
Parameters
$url_cron : string
Return values
bool

: true si l'url a pu être appelée en asynchrone, false sinon

inc_recherche_to_array_dist()

inc_recherche_to_array_dist(mixed $recherche[, mixed $options = [] ]) : mixed
Parameters
$recherche : mixed
$options : mixed = []

liste_des_champs()

Donne la liste des champs/tables où l'on sait chercher / remplacer avec un poids pour le score

liste_des_champs() : array<string|int, mixed>

Utilise l'information rechercher_champs sur la déclaration des objets éditoriaux.

Tags
pipeline_appel

rechercher_liste_des_champs

uses
lister_tables_objets_sql()
used-by
recherche_en_base()
Return values
array<string|int, mixed>

Couples (type d'objet => Couples (champ => score))

expression_recherche()

expression_recherche(mixed $recherche, mixed $options) : mixed
Parameters
$recherche : mixed
$options : mixed

recherche_en_base()

Effectue une recherche sur toutes les tables de la base de données

recherche_en_base([string $recherche = '' ][, null|array<string|int, mixed>|string $tables = null ][, array<string|int, mixed> $options = [] ][, string $serveur = '' ]) : array<string|int, mixed>
Parameters
$recherche : string = ''

Le terme de recherche

$tables : null|array<string|int, mixed>|string = null
  • null : toutes les tables acceptant des recherches
  • array : liste des tables souhaitées
  • string : une chaîne listant les tables souhaitées, séparées par des virgules (préférer array cependant)
$options : array<string|int, mixed> = []

{ @var $toutvoir pour éviter autoriser(voir) @var $flags pour éviter les flags regexp par défaut (UimsS) @var $champs pour retourner les champs concernés @var $score pour retourner un score }

$serveur : string = ''
Tags
uses
liste_des_champs()
uses
inc_recherche_to_array_dist()
Return values
array<string|int, mixed>

remplace_en_base()

remplace_en_base([mixed $recherche = '' ][, mixed $remplace = null ][, mixed $tables = null ][, mixed $options = [] ]) : mixed
Parameters
$recherche : mixed = ''
$remplace : mixed = null
$tables : mixed = null
$options : mixed = []

roles_presents()

Vérifie qu'un objet dispose de rôles fonctionnels

roles_presents(string $objet[, string $objet_destination = '' ]) : bool|array<string|int, mixed>

Retourne une description des rôles si c'est le cas

Parameters
$objet : string

Objet source qui possède la table de liaison

$objet_destination : string = ''

Objet sur quoi on veut lier Si défini, le retour ne contient que les roles possibles pour cet objet Sinon retourne tous les roles possibles quelque soit l'objet

Return values
bool|array<string|int, mixed>

false si rôles indisponibles on non déclarés array : description des roles applicables dans 3 index : colonne, titres, roles

roles_colonne()

Retrouve la colonne de liaison d'un rôle si définie entre 2 objets

roles_colonne(string $objet, string $objet_destination) : string
Parameters
$objet : string

Objet source qui possède la table de liaison

$objet_destination : string

Objet sur quoi on veut lier

Return values
string

Nom de la colonne, sinon vide

roles_trouver_dans_qualif()

Extrait le rôle et la colonne de role d'un tableau de qualification

roles_trouver_dans_qualif(string $objet, string $objet_destination[, array<string|int, mixed> $qualif = [] ]) : array<string|int, mixed>

Calcule également une condition where pour ce rôle.

Pour un objet pouvant recevoir des roles sur sa liaison avec un autre objet, on retrouve le rôle en question dans le tableau de qualification. Si le rôle n'est pas défini dedans, on prend le rôle par défaut déclaré.

Parameters
$objet : string

Objet source de la liaison

$objet_destination : string

Objet de destination de la liaison

$qualif : array<string|int, mixed> = []

tableau de qualifications array(champ => valeur)

Return values
array<string|int, mixed>

Liste (role, colonne, (array)condition) si role possible Liste ('', '', array()) sinon.

roles_creer_condition_role()

Gérer l'ajout dans la condition where du rôle

roles_creer_condition_role(string $objet_source, string $objet, array<string|int, mixed> $cond[, bool $tous_si_absent = false ]) : array<string|int, mixed>

On ajoute la condition uniquement si la liaison entre les 2 objets a une colonne de rôle !

Parameters
$objet_source : string

Objet source (qui possède la table de liens)

$objet : string

Objet de destination

$cond : array<string|int, mixed>

Tableau de conditions where qui peut avoir un index spécial 'role' définissant le role à appliquer ou valant '*' pour tous les roles.

$tous_si_absent : bool = false

true pour ne pas appliquer une condition sur le rôle s'il n'est pas indiqué dans la liste des conditions entrantes. Autrement dit, on n'applique pas de rôle par défaut si aucun n'est défini.

Return values
array<string|int, mixed>

Liste (Tableau de conditions where complété du role, Colonne du role, role utilisé)

roles_complets()

Liste des identifiants dont on ne peut ajouter de rôle

roles_complets(string $objet_source, string $objet, int $id_objet, string $objet_lien) : array<string|int, mixed>

Lister les id objet_source associés à l'objet id_objet via la table de lien objet_lien, et détermine dans cette liste lesquels ont les rôles complets, c'est à dire qu'on ne peut leur affecteur d'autres rôles parmi ceux qui existe pour cette liaison.

Parameters
$objet_source : string

Objet dont on veut récupérer la liste des identifiants

$objet : string

Objet sur lequel est liée la source

$id_objet : int

Identifiant d'objet sur lequel est liée la source

$objet_lien : string

Objet dont on utilise la table de liaison (c'est forcément soit $objet_source, soit $objet)

Tags
see
lister_objets_lies()
Return values
array<string|int, mixed>

Liste des identifiants

roles_presents_sur_id()

Liste les roles attribués entre 2 objets/id_objet sur une table de liaison donnée

roles_presents_sur_id(string $id_objet_source, string $objet_source, string $objet, int $id_objet, string $objet_lien) : array<string|int, mixed>
Parameters
$id_objet_source : string

Identifiant de l'objet qu'on lie

$objet_source : string

Objet qu'on lie

$objet : string

Objet sur lequel est liée la source

$id_objet : int

Identifiant d'objet sur lequel est liée la source

$objet_lien : string

Objet dont on utilise la table de liaison (c'est forcément soit $objet_source, soit $objet)

Return values
array<string|int, mixed>

Liste des roles

roles_presents_liaisons()

Lister des rôles présents sur une liaion, pour un objet sur un autre, classés par identifiant de l'objet

roles_presents_liaisons(string $objet_source, string $objet, int $id_objet, string $objet_lien) : array<string|int, mixed>|bool

Lister les id objet_source associés à l'objet id_objet via la table de lien objet_lien, et groupe cette liste par identifiant (la clé) et ses roles attribués (tableau de valeur)

On retourne cette liste dans l'index 'ids' et la description des roles pour la liaison dans l'index 'roles' pour éviter le le faire recalculer aux fonctions utilisant celle ci.

Parameters
$objet_source : string

Objet dont on veut récupérer la liste des identifiants

$objet : string

Objet sur lequel est liée la source

$id_objet : int

Identifiant d'objet sur lequel est liée la source

$objet_lien : string

Objet dont on utilise la table de liaison (c'est forcément soit $objet_source, soit $objet)

Return values
array<string|int, mixed>|bool
  • Tableau d'index
    • roles : tableau de description des roles,
    • ids : tableau des identifiants / roles.
  • False si pas de role déclarés

roles_connus_en_base()

Lister des rôles connus en base pour une liaion, pour un objet source

roles_connus_en_base(string $objet_source, string $objet, string $objet_lien) : array<string|int, mixed>|bool

On retourne cette liste dans le datalist de saisie libre role.

Parameters
$objet_source : string

Objet dont on veut récupérer la liste des identifiants

$objet : string

Objet sur lequel est liée la source

$objet_lien : string

Objet dont on utilise la table de liaison (c'est forcément soit $objet_source, soit $objet)

Return values
array<string|int, mixed>|bool
  • Tableau de roles : tableau de description des roles,
  • false si pas de role déclarés

calculer_rubriques_if()

Recalcule les statuts d'une rubrique

calculer_rubriques_if(int $id_rubrique, array<string|int, mixed> $modifs[, array<string|int, mixed> $infos = [] ][, bool $postdate = false ]) : void

Fonction à appeler lorsque le statut d'un objet change dans une rubrique ou que la rubrique est deplacée.

Si le statut passe a "publie", la rubrique et ses parents y passent aussi et les langues utilisees sont recalculées. Conséquences symétriques s'il est depublié.

S'il est deplacé alors qu'il était publiée, double conséquence.

Tout cela devrait passer en SQL, sous forme de Cascade SQL.

Parameters
$id_rubrique : int

Identifiant de la rubrique

$modifs : array<string|int, mixed>

Tableau de description des modifications. Peut avoir 2 index, 'statut' étant obligatoire :

  • statut : indique le nouveau statut de la rubrique
  • id_rubrique : indiquer la rubrique dans laquelle on déplace la rubrique (son nouveau parent donc)
$infos : array<string|int, mixed> = []

Infos sur l'objet modifié : statut_ancien, objet, id_objet…

$postdate : bool = false

true pour recalculer aussi la date du prochain article post-daté

Tags
uses
depublier_branche_rubrique_if()
uses
calculer_prochain_postdate()
uses
publier_branche_rubrique()

publier_branche_rubrique()

Publie une rubrique et sa hiérarchie de rubriques

publier_branche_rubrique(int $id_rubrique) : bool

Fonction à appeler lorsqu'on dépublie ou supprime quelque chose dans une rubrique.

Parameters
$id_rubrique : int

Identifiant de la rubrique

Tags
todo

Le nom de la fonction est trompeur, vu que la fonction remonte dans la hierarchie !

used-by
calculer_rubriques_if()
used-by
calculer_prochain_postdate()
Return values
bool

true si le statut change effectivement

depublier_branche_rubrique_if()

Dépublie si nécessaire des éléments d'une hiérarchie de rubriques

depublier_branche_rubrique_if(int $id_rubrique) : bool

Fonction à appeler lorsqu'on dépublie ou supprime quelque chose dans une rubrique.

Parameters
$id_rubrique : int

Identifiant de la rubrique

Tags
uses
depublier_rubrique_if()
todo

Le nom de la fonction est trompeur, vu que la fonction remonte dans la hierarchie !

used-by
calculer_rubriques_if()
Return values
bool

true si le statut change effectivement

depublier_rubrique_if()

Dépublier une rubrique si aucun contenu publié connu n'est trouvé dedans

depublier_rubrique_if(int $id_rubrique[, string|null $date = null ]) : bool
Parameters
$id_rubrique : int

Identifiant de la rubrique à tester

$date : string|null = null

Date pour le calcul des éléments post-datés. null = date actuelle.

Tags
pipeline_appel

objet_compte_enfants

used-by
depublier_branche_rubrique_if()
Return values
bool

true si la rubrique a été dépubliée

calculer_rubriques()

Recalcule des héritages de rubriques

calculer_rubriques() : void

Recalcule le statut des rubriques, les langues héritées et la date du prochain article post-daté

Cette fonction est appelée après importation: elle calcule les meta-donnes resultantes et remet de la coherence au cas où la base importée en manquait

Cette fonction doit etre invoquée sans processus concurrent potentiel.

Tags
uses
calculer_rubriques_publiees()
uses
calculer_langues_utilisees()
uses
calculer_prochain_postdate()
used-by
base_repair_dist()

calculer_rubriques_publiees()

Recalcule l'ensemble des données associées à l'arborescence des rubriques

calculer_rubriques_publiees() : void

Attention, faute de SQL transactionnel on travaille sur des champs temporaires afin de ne pas casser la base pendant la demi seconde de recalculs

Tags
pipeline_appel

calculer_rubriques

used-by
calculer_rubriques()

propager_les_secteurs()

Recalcule les secteurs et les profondeurs des rubriques (et articles)

propager_les_secteurs() : void

Cherche les rubriques ayant des id_secteur ou profondeurs ne correspondant pas avec leur parent, et les met à jour. De même avec les articles et leur id_secteur On procede en iterant la profondeur de 1 en 1 pour ne pas risquer une boucle infinie sur reference circulaire

Tags
pipeline_appel

trig_propager_les_secteurs

used-by
base_repair_dist()

calculer_langues_rubriques_etape()

Recalcule les langues héritées des sous-rubriques

calculer_langues_rubriques_etape() : bool

Cherche les langues incorrectes de sous rubriques, qui doivent hériter de la rubrique parente lorsque langue_choisie est différent de oui, et les corrige.

Return values
bool

true si un changement a eu lieu

calculer_langues_rubriques()

Recalcule les langues des rubriques et articles

calculer_langues_rubriques() : void

Redéfinit la langue du site sur les rubriques sans langue spécifiée (langue_choisie différent de 'oui')

Redéfinit les langues des articles sans langue spécifiée (langue_choisie différent de 'oui') en les rebasant sur la langue de la rubrique parente lorsque ce n'est pas le cas.

Tags
uses
calculer_langues_rubriques_etape()
pipeline_appel

trig_calculer_langues_rubriques

calculer_langues_utilisees()

Calcule la liste des langues réellement utilisées dans le site public

calculer_langues_utilisees([string $serveur = '' ]) : string

La recherche de langue est effectuée en recréant une boucle pour chaque objet éditorial gérant des langues de sorte que les éléments non publiés ne sont pas pris en compte.

Parameters
$serveur : string = ''

Nom du connecteur à la base de données

Tags
used-by
calculer_rubriques()
Return values
string

Liste des langues utilisées séparées par des virgules

calcul_branche_in()

Calcul d'une branche de rubrique

calcul_branche_in(string|int|array<string|int, mixed> $id) : string

Liste des id_rubrique contenues dans une rubrique donnée

Parameters
$id : string|int|array<string|int, mixed>

Identifiant de la, ou des rubriques noeuds

Tags
see
inc_calcul_branche_in_dist()
Return values
string

Liste des identifiants séparés par des virgules, incluant les rubriques noeuds et toutes leurs descendances

calcul_hierarchie_in()

Calcul d'une hiérarchie

calcul_hierarchie_in(string|int|array<string|int, mixed> $id[, bool $tout = true ]) : string

Liste des id_rubrique contenant une rubrique donnée

Parameters
$id : string|int|array<string|int, mixed>

Identifiant de la, ou des rubriques dont on veut obtenir les hierarchies

$tout : bool = true

inclure la rubrique de depart dans la hierarchie ou non

Tags
see
inc_calcul_hierarchie_in_dist()
Return values
string

Liste des identifiants séparés par des virgules, incluant les rubriques transmises et toutes leurs parentées

inc_calcul_branche_in_dist()

Calcul d'une branche de rubriques

inc_calcul_branche_in_dist(string|int|array<string|int, mixed> $id) : string

Liste des id_rubrique contenues dans une rubrique donnée pour le critere {branche}

Fonction surchargeable pour optimisation

Parameters
$id : string|int|array<string|int, mixed>

Identifiant de la, ou des rubriques noeuds

Tags
see
inc_calcul_hierarchie_in_dist()

pour la hierarchie

Return values
string

Liste des identifiants séparés par des virgules, incluant les rubriques noeuds et toutes leurs descendances

inc_calcul_hierarchie_in_dist()

Calcul d'une hiérarchie

inc_calcul_hierarchie_in_dist(string|int|array<string|int, mixed> $id[, bool $tout = true ]) : string

Liste des id_rubrique contenant une rubrique donnée, contrairement à la fonction calcul_branche_in() qui calcule les rubriques contenues

Parameters
$id : string|int|array<string|int, mixed>

Identifiant de la, ou des rubriques dont on veut obtenir les hierarchies

$tout : bool = true

inclure la rubrique de depart dans la hierarchie ou non

Tags
see
inc_calcul_branche_in_dist()

pour la descendence

Return values
string

Liste des identifiants séparés par des virgules, incluant les rubriques transmises et toutes leurs parentées

calculer_prochain_postdate()

Calcule la date du prochain article post-daté

calculer_prochain_postdate([bool $check = false ]) : void

Appelée lorsqu'un (ou plusieurs) article post-daté arrive à terme ou est redaté

Parameters
$check : bool = false

true pour affecter le statut des rubriques concernées.

Tags
uses
publier_branche_rubrique()
pipeline_appel

trig_calculer_prochain_postdate

used-by
calculer_rubriques_if()
used-by
calculer_rubriques()

creer_rubrique_nommee()

Crée une arborescence de rubrique

creer_rubrique_nommee(string $titre[, int $id_parent = 0 ][, string $serveur = '' ]) : int

creer_rubrique_nommee('truc/machin/chose') va créer une rubrique truc, une sous-rubrique machin, et une sous-sous-rubrique chose, sans créer de rubrique si elle existe déjà à partir de $id_parent (par défaut, à partir de la racine)

NB: cette fonction est très pratique, mais pas utilisée dans le core pour rester légère elle n'appelle pas calculer_rubriques()

Parameters
$titre : string

Titre des rubriques, séparés par des /

$id_parent : int = 0

Identifiant de la rubrique parente

$serveur : string = ''

Nom du connecteur à la base de données

Return values
int

Identifiant de la rubrique la plus profonde.

inc_securiser_action_dist()

Génère ou vérifie une action sécurisée

inc_securiser_action_dist([string $action = '' ][, string $arg = '' ][, string $redirect = '' ][, bool|int|string $mode = false ][, string|int $att = '' ][, bool $public = false ]) : array<string|int, mixed>|string

Interface d'appel:

  • au moins un argument: retourne une URL ou un formulaire securisés
  • sans argument : vérifie la sécurité et retourne _request('arg'), ou exit.
Parameters
$action : string = ''
$arg : string = ''
$redirect : string = ''
$mode : bool|int|string = false
  • -1 : renvoyer action, arg et hash sous forme de array()
  • true ou false : renvoyer une url, avec & (false) ou & (true)
  • string : renvoyer un formulaire
$att : string|int = ''

id_auteur pour lequel generer l'action en mode url ou array() atributs du formulaire en mode formulaire

$public : bool = false
Tags
uses
securiser_action_auteur()

Pour produire l'URL ou le formulaire

example

Tester une action reçue et obtenir son argument :

$securiser_action = charger_fonction('securiser_action');
$arg = $securiser_action();
used-by
generer_action_auteur()
Return values
array<string|int, mixed>|string

demander_confirmation_avant_action()

Confirmer avant suppression si on arrive par un bouton action a appeler dans la fonction action avant toute action destructrice

demander_confirmation_avant_action(string $titre, string $titre_bouton[, string|null $url_action = null ]) : bool

demander_confirmation_avant_action("Supprimer l'article xxxx", "Oui je veux le supprimer");

L'action affiche le formulaire de demande de confirmation sans rendre la main au premier appel, si l'utilisateur clique, cela relance l'action avec un confirm et quand on repasse ici, la fonction ne fera rien et l'action se finira normalement

Parameters
$titre : string
$titre_bouton : string
$url_action : string|null = null
Return values
bool

securiser_action_auteur()

Retourne une URL ou un formulaire sécurisés

securiser_action_auteur(string $action, string $arg[, string $redirect = '' ][, bool|int|string $mode = false ][, string|int $att = '' ][, bool $public = false ]) : array<string|int, mixed>|string
Parameters
$action : string
$arg : string
$redirect : string = ''
$mode : bool|int|string = false
  • -1 : renvoyer action, arg et hash sous forme de array()
  • true ou false : renvoyer une url, avec & (false) ou & (true)
  • string : renvoyer un formulaire
$att : string|int = ''
  • id_auteur pour lequel générer l'action en mode URL ou array()
  • atributs du formulaire en mode formulaire
$public : bool = false
Tags
note

Attention: PHP applique urldecode sur $_GET mais pas sur $_POST cf http://fr.php.net/urldecode#48481

uses
calculer_action_auteur()
uses
generer_form_action()
used-by
inc_securiser_action_dist()

Pour produire l'URL ou le formulaire

Return values
array<string|int, mixed>|string
  • string URL, si $mode = true ou false,
  • string code HTML du formulaire, si $mode texte,
  • array Tableau (action=>x, arg=>x, hash=>x) si $mode=-1.

caracteriser_auteur()

Caracteriser un auteur : l'auteur loge si $id_auteur=null

caracteriser_auteur([int|null $id_auteur = null ]) : array<string|int, mixed>
Parameters
$id_auteur : int|null = null
Return values
array<string|int, mixed>

_action_auteur()

Calcule une cle securisee pour une action et un auteur donnes utilisee pour generer des urls personelles pour executer une action qui modifie la base et verifier la legitimite de l'appel a l'action

_action_auteur(string $action, int $id_auteur, string|null $pass, string $alea) : string
Parameters
$action : string
$id_auteur : int
$pass : string|null
$alea : string
Return values
string

_action_get_alea()

_action_get_alea(string $alea) : string
Parameters
$alea : string
Return values
string

calculer_action_auteur()

Calculer le hash qui signe une action pour un auteur

calculer_action_auteur(string $action[, int|null $id_auteur = null ]) : string
Parameters
$action : string
$id_auteur : int|null = null
Tags
used-by
securiser_action_auteur()
Return values
string

verifier_action_auteur()

Verifier le hash de signature d'une action toujours exclusivement pour l'auteur en cours

verifier_action_auteur(string $action, string $hash) : bool
Parameters
$action : string
$hash : string
Return values
bool

secret_du_site()

Renvoyer le secret du site (le generer si il n'existe pas encore)

secret_du_site() : string
Tags
uses
SpipCles::secret_du_site()
Return values
string

verifier_cle_action()

Verifier la cle de signature d'une action valable pour le site

verifier_cle_action(string $action, string $cle) : bool
Parameters
$action : string
$cle : string
Return values
bool

calculer_token_previsu()

Calculer le token de prévisu

calculer_token_previsu(string $url[, mixed $id_auteur = null ][, string $alea = 'alea_ephemere' ]) : string

Il permettra de transmettre une URL publique d’un élément non encore publié, pour qu’une personne tierce le relise. Valable quelques temps.

Parameters
$url : string

Url à autoriser en prévisu

$id_auteur : mixed = null
$alea : string = 'alea_ephemere'

Nom de l’alea à utiliser

Tags
see
verifier_token_previsu()
Return values
string

Token, de la forme "{id}*{hash}"

verifier_token_previsu()

Vérifie un token de prévisu

verifier_token_previsu(string $token) : false|array<string|int, mixed>

Découpe le token pour avoir l’id_auteur, Retrouve à partir de l’url un objet/id_objet en cours de parcours Recrée un token pour l’auteur et l’objet trouvé et le compare au token.

Parameters
$token : string

Token, de la forme '{id}*{hash}'

Tags
see
calculer_token_previsu()
used-by
decrire_token_previsu()
Return values
false|array<string|int, mixed>
  • False si echec,
  • Tableau (id auteur, type d’objet, id_objet) sinon.

inc_selectionner_dist()

Affiche un mini-navigateur ajax positionné sur une rubrique

inc_selectionner_dist(int $sel[, string $idom = '' ][, int $exclus = 0 ][, bool $aff_racine = false ][, bool $recur = true ][, string $do = 'aff' ]) : string
Parameters
$sel : int

Identifiant de la rubrique

$idom : string = ''

Identifiant dans le dom de l'élément

$exclus : int = 0
$aff_racine : bool = false
$recur : bool = true
$do : string = 'aff'

Type d'action

Tags
uses
mini_hier()
uses
construire_selectionner_hierarchie()
uses
inc_plonger_dist()
see
exec_rechercher_dist()
used-by
exec_selectionner_dist()
Return values
string

Code HTML

construire_selectionner_hierarchie()

Construit le sélectionneur de hierarchie

construire_selectionner_hierarchie(string $idom, string $liste, int $racine, string $url, string $name[, string $url_init = '' ]) : string
Parameters
$idom : string

Identifiant dans le dom de l'élément

$liste : string
$racine : int
$url : string
$name : string
$url_init : string = ''
Tags
used-by
inc_selectionner_dist()
Return values
string

Code HTML

mini_hier()

Récupère les identifiants de hierarchie d'une rubrique

mini_hier(int $id_rubrique) : array<string|int, mixed>
Parameters
$id_rubrique : int
Tags
used-by
inc_selectionner_dist()
Return values
array<string|int, mixed>

Liste de tous les id_parent de la rubrique

inc_session_dist()

3 actions sur les sessions, selon le type de l'argument:

inc_session_dist([int|array<string|int, mixed>|bool $auteur = false ]) : bool|null|void
  • numerique: efface toutes les sessions de l'auteur (retour quelconque)
  • tableau: cree une session pour l'auteur decrit et retourne l'identifiant
  • bool: predicat de validite de la session indiquee par le cookie
Parameters
$auteur : int|array<string|int, mixed>|bool = false
Tags
uses
supprimer_sessions()
uses
ajouter_session()
uses
verifier_session()
Return values
bool|null|void

supprimer_sessions()

Supprimer toutes les vieilles sessions d'un auteur

supprimer_sessions(int $id_auteur[, bool $toutes = true ][, bool $actives = true ]) : mixed

Cette fonction efface toutes les sessions appartenant a l'auteur On en profite pour effacer toutes les sessions creees il y a plus de 4*RENOUVELLE_ALEA Tenir compte de l'ancien format ou les noms commencaient par "session" et du meme coup des repertoires plats

Attention : id_auteur peut etre negatif (cas des auteurs temporaires pendant le dump)

Parameters
$id_auteur : int

Identifiant d'auteur dont on veut supprimer les sessions

$toutes : bool = true

Supprimer aussi les vieilles sessions des autres auteurs ?

$actives : bool = true

false pour ne pas supprimer les sessions valides de $id_auteur. false revient donc a uniquement supprimer les vieilles sessions !

Tags
uses
verifier_session()
uses
chemin_fichier_session()
uses
spip_session()
used-by
inc_session_dist()

ajouter_session()

Ajoute une session pour l'auteur décrit par un tableau issu d'un SELECT-SQL

ajouter_session(array<string|int, mixed> $auteur) : bool|string
Parameters
$auteur : array<string|int, mixed>

Description de la session de l'auteur. Peut contenir (par exemple) les clés : id_auteur, nom, login, email, statut, lang, ...

Tags
uses
spip_php_session_start()

Lorsque session anonyme

uses
hash_env()
uses
preparer_ecriture_session()
uses
chemin_fichier_session()
uses
ecrire_fichier_session()
used-by
inc_session_dist()
used-by
verifier_session()
used-by
session_set()
used-by
actualiser_sessions()
Return values
bool|string

Calcule le temps de validité en seconde du cookie de session

definir_duree_cookie_session(array<string|int, mixed> $auteur) : int

Applique un coefficient multiplicateur à la durée de renouvellement de l'alea (noté ensuite dR, valant 12h par défaut) pour déterminer la durée du cookie.

  • 2 * dR, par défaut
  • 20 * dR si le visiteur a indiqué vouloir rester connecté quelques jours sur le formulaire de login (la clé cookie vaut alors oui)
  • c * dR, un coeficient défini manuellement si la clé cookie est numérique
Parameters
$auteur : array<string|int, mixed>

Description de l'auteur

Return values
int

Durée en secondes

Lire le cookie de session et le valider de façon centralisée

lire_cookie_session([bool $accepter_test = false ]) : string|null
Parameters
$accepter_test : bool = false
Return values
string|null

Annuler le cookie de session

effacer_cookie_session() : void

Prolonger / Changer la valeur du cookie de session

set_cookie_session([string|null $valeur_cookie = null ][, int $expires = 0 ]) : string|null
Parameters
$valeur_cookie : string|null = null

nouveau cookie (string), prolonger le cookie existant (null)

$expires : int = 0

timestamp d'expiration

Return values
string|null

verifier_session()

Vérifie si le cookie spip_session indique une session valide

verifier_session([bool $change = false ]) : bool|int|null

Si oui, la decrit dans le tableau $visiteur_session et retourne id_auteur La rejoue si IP change puis accepte le changement si $change=true

Retourne false en cas d'echec, l'id_auteur de la session si defini, null sinon

Parameters
$change : bool = false
Tags
uses
spip_php_session_start()

Si session anonyme

uses
chemin_fichier_session()
uses
ajouter_session()
uses
hash_env()
used-by
inc_session_dist()
used-by
supprimer_sessions()
Return values
bool|int|null

session_get()

Lire une valeur dans la session SPIP

session_get(string $nom) : mixed|null
Parameters
$nom : string

Clé dont on souhaite la valeur

Tags
example

$login = session_get('login');

Return values
mixed|null

Valeur, si trouvée, null sinon.

session_set()

Ajouter une donnée dans la session SPIP

session_set(string $nom[, mixed $val = null ]) : void|array<string|int, mixed>
Parameters
$nom : string
$val : mixed = null
Tags
uses
ajouter_session()
uses
terminer_actualiser_sessions()

Ajoute la fonction en fin de hit.

Return values
void|array<string|int, mixed>

actualiser_sessions()

Mettre à jour les sessions existantes pour un auteur

actualiser_sessions(array<string|int, mixed> $auteur[, array<string|int, mixed> $supprimer_cles = [] ]) : mixed

Quand on modifie une fiche auteur on appelle cette fonction qui va mettre à jour les fichiers de session de l'auteur en question. (auteurs identifiés seulement)

Ne concerne que les sessions des auteurs loges (id_auteur connu)

Parameters
$auteur : array<string|int, mixed>
$supprimer_cles : array<string|int, mixed> = []

Liste des clés à supprimer des tableaux de sessions

Tags
uses
ajouter_session()
uses
chemin_fichier_session()
uses
preg_files()
uses
preparer_ecriture_session()
uses
ecrire_fichier_session()
used-by
terminer_actualiser_sessions()

lister_sessions_auteur()

lister les sessions et en verifier le nombre maxi en supprimant les plus anciennes si besoin https://core.spip.net/issues/3807

lister_sessions_auteur(int $id_auteur[, int $nb_max = null ]) : array<string|int, mixed>
Parameters
$id_auteur : int
$nb_max : int = null
Return values
array<string|int, mixed>

preparer_ecriture_session()

Préparer le tableau de session avant écriture

preparer_ecriture_session(array<string|int, mixed> $auteur) : array<string|int, mixed>

Nettoyage de quelques variables sensibles, et appel d'un pipeline

Parameters
$auteur : array<string|int, mixed>
Tags
pipeline

preparer_fichier_session

used-by
ajouter_session()
used-by
actualiser_sessions()
Return values
array<string|int, mixed>

ecrire_fichier_session()

Ecrire le fichier d'une session

ecrire_fichier_session(string $fichier, array<string|int, mixed> $auteur) : bool
Parameters
$fichier : string
$auteur : array<string|int, mixed>
Tags
used-by
ajouter_session()
used-by
actualiser_sessions()
Return values
bool

fichier_session()

Calculer le nom du fichier session

fichier_session(string $alea[, bool $tantpis = false ]) : string
Parameters
$alea : string
$tantpis : bool = false
Tags
deprecated
5.0

Use chemin_fichier_session() with lire_cookie_session() as 2nd parameter

Return values
string

rejouer_session()

Code à insérer par `inc/presentation` pour rejouer la session

rejouer_session() : string
Tags
note

Pourquoi insère-t-on le src par js et non directement en statique dans le HTML ? Historiquement, inséré par une balise <script> en r424 puis modifié par <img> statique + js en r427

see
action_cookie_dist()

qui sera appelé

Return values
string

inc_simplexml_to_array_dist()

Transforme un texte XML en tableau PHP

inc_simplexml_to_array_dist(string|object $u[, bool $utiliser_namespace = false ]) : array<string|int, mixed>
Parameters
$u : string|object
$utiliser_namespace : bool = false
Return values
array<string|int, mixed>

xmlObjToArr()

Transforme un objet SimpleXML en tableau PHP http://www.php.net/manual/pt_BR/book.simplexml.php#108688 xaviered at gmail dot com 17-May-2012 07:00

xmlObjToArr(object $obj[, bool $utiliser_namespace = false ]) : array<string|int, mixed>
Parameters
$obj : object
$utiliser_namespace : bool = false
Return values
array<string|int, mixed>

svg_charger()

Charger une image SVG a partir d'une source qui peut etre - l'image svg deja chargee - une data-url - un nom de fichier

svg_charger(string $fichier[, null|int $maxlen = null ]) : bool|string
Parameters
$fichier : string
$maxlen : null|int = null

pour limiter la taille chargee en memoire si on lit depuis le disque et qu'on a besoin que du debut du fichier

Return values
bool|string

false si on a pas pu charger l'image

svg_lire_balise_svg()

Lire la balise <svg...> qui demarre le fichier et la parser pour renvoyer un tableau de ses attributs

svg_lire_balise_svg(string $fichier) : array<string|int, mixed>|bool
Parameters
$fichier : string
Return values
array<string|int, mixed>|bool

svg_lire_attributs()

Attributs de la balise SVG

svg_lire_attributs(string $img) : array<string|int, mixed>|bool
Parameters
$img : string
Return values
array<string|int, mixed>|bool

svg_dimension_to_pixels()

Convertir l'attribut widht/height d'un SVG en pixels (approximatif eventuellement, du moment qu'on respecte le ratio)

svg_dimension_to_pixels(string $dimension[, mixed $precision = 2 ]) : bool|float|int
Parameters
$dimension : string
$precision : mixed = 2
Return values
bool|float|int

svg_change_balise_svg()

Modifier la balise SVG en entete du source

svg_change_balise_svg(string $svg, string $old_balise_svg, array<string|int, mixed> $attributs) : string
Parameters
$svg : string
$old_balise_svg : string
$attributs : array<string|int, mixed>
Return values
string

svg_insert_shapes()

svg_insert_shapes(string $svg, string $shapes[, bool|string $start = true ]) : string
Parameters
$svg : string
$shapes : string
$start : bool|string = true

inserer au debut (true) ou a la fin (false)

Return values
string

svg_clip_in_box()

Clipper le SVG dans une box

svg_clip_in_box(string $svg, int $x, int $y, int $width, int $height) : string
Parameters
$svg : string
$x : int
$y : int
$width : int
$height : int
Return values
string

svg_redimensionner()

Redimensionner le SVG via le width/height de la balise

svg_redimensionner(string $img, string $new_width, string $new_height) : bool|string
Parameters
$img : string
$new_width : string
$new_height : string
Return values
bool|string

svg_couleur_to_hexa()

Transformer une couleur extraite du SVG en hexa

svg_couleur_to_hexa(string $couleur) : string
Parameters
$couleur : string
Return values
string

svg_couleur_to_rgb()

Transformer une couleur extraite du SVG en rgb

svg_couleur_to_rgb(string $couleur) : array<string|int, mixed>
Parameters
$couleur : string
Return values
array<string|int, mixed>

svg_getimagesize_from_attr()

Calculer les dimensions width/heigt/viewBox du SVG d'apres les attributs de la balise <svg>

svg_getimagesize_from_attr(array<string|int, mixed> $attributs) : array<string|int, mixed>
Parameters
$attributs : array<string|int, mixed>
Return values
array<string|int, mixed>

svg_force_viewBox_px()

Forcer la viewBox du SVG, en px cree l'attribut viewBox si il n'y en a pas convertit les unites en px si besoin

svg_force_viewBox_px(string $img[, bool $force_width_and_height = false ]) : string

Les manipulations d'image par les filtres images se font en px, on a donc besoin d'une viewBox en px Certains svg produits avec des unites exotiques subiront donc peut etre des deformations...

Parameters
$img : string
$force_width_and_height : bool = false
Return values
string

svg_extract_couleurs()

Extract all colors in SVG

svg_extract_couleurs(string $img) : array<string|int, mixed>|mixed
Parameters
$img : string
Return values
array<string|int, mixed>|mixed

svg_recadrer()

Redimensionner le SVG via le width/height de la balise

svg_recadrer(string $img, string $new_width, string $new_height, mixed $offset_width, mixed $offset_height[, mixed $background_color = '' ]) : bool|string
Parameters
$img : string
$new_width : string
$new_height : string
$offset_width : mixed
$offset_height : mixed
$background_color : mixed = ''
Return values
bool|string

svg_ajouter_background()

Ajouter un background au SVG : un rect pleine taille avec la bonne couleur

svg_ajouter_background(string $img, string $background_color) : bool|string
Parameters
$img : string
$background_color : string
Return values
bool|string

svg_ajouter_voile()

Ajouter un voile au SVG : un rect pleine taille avec la bonne couleur/opacite, en premier plan

svg_ajouter_voile(string $img, string $background_color, mixed $opacity) : bool|string
Parameters
$img : string
$background_color : string
$opacity : mixed
Return values
bool|string

svg_transformer()

Ajouter un background au SVG : un rect pleine taille avec la bonne couleur

svg_transformer(string $img, array<string|int, mixed> $attributs) : bool|string
Parameters
$img : string
$attributs : array<string|int, mixed>
Return values
bool|string

svg_apply_filter()

Ajouter + appliquer un filtre a un svg

svg_apply_filter(string $img, string $filter_def) : bool|string
Parameters
$img : string
$filter_def : string

definition du filtre (contenu de ...

Return values
bool|string

svg_filter_blur()

Filtre blur en utilisant <filter>

svg_filter_blur(string $img, int $blur_width) : string
Parameters
$img : string
$blur_width : int
Return values
string

svg_filter_grayscale()

Filtre grayscale en utilisant <filter>

svg_filter_grayscale(string $img, float $intensity) : bool|string
Parameters
$img : string
$intensity : float
Return values
bool|string

svg_filter_sepia()

Filtre sepia en utilisant <filter>

svg_filter_sepia(string $img, float $intensity) : bool|string

FIXME: $intensity unused ?

Parameters
$img : string
$intensity : float
Return values
bool|string

svg_flip()

Ajouter un background au SVG : un rect pleine taille avec la bonne couleur

svg_flip(string $img, mixed $HorV) : bool|string
Parameters
$img : string
$HorV : mixed
Return values
bool|string

svg_rotate()

svg_rotate(string $img, int $angle, float $center_x, float $center_y) : bool|string
Parameters
$img : string
$angle : int

angle en degres

$center_x : float

centre X de la rotation entre 0 et 1, relatif a la pleine largeur (0=bord gauche, 1=bord droit)

$center_y : float

centre Y de la rotation entre 0 et 1, relatif a la pleine hauteur (0=bord top, 1=bord bottom)

Return values
bool|string

svg_filtrer_couleurs()

Filtrer les couleurs d'un SVG avec une callback (peut etre lent si beaucoup de couleurs)

svg_filtrer_couleurs(string $img, string $callback_filter) : bool|mixed|string
Parameters
$img : string
$callback_filter : string
Return values
bool|mixed|string

definir_raccourcis_alineas()

Raccourcis dépendant du sens de la langue

definir_raccourcis_alineas() : array<string|int, mixed>
Return values
array<string|int, mixed>

Tablea ('','')

traiter_tableau()

Traitement des raccourcis de tableaux

traiter_tableau(string $bloc) : string

Ne fait rien ici. Voir plugin Textwheel.

Parameters
$bloc : string
Return values
string

traiter_listes()

Traitement des listes

traiter_listes(string $texte) : string

Ne fais rien. Voir Plugin Textwheel. (merci a Michael Parienti)

Parameters
$texte : string
Return values
string

traiter_raccourcis()

Nettoie un texte, traite les raccourcis autre qu'URL, la typo, etc.

traiter_raccourcis(string $letexte) : string

Ne fais rien ici. Voir plugin Textwheel.

Parameters
$letexte : string
Tags
pipeline_appel

pre_propre

pipeline_appel

post_propre

used-by
propre()
Return values
string

echappe_js()

Échapper et affichier joliement les `<script` et `<iframe`.

echappe_js(string $t[, string $class = ' class = "echappe-js"' ]) : string

..

Parameters
$t : string
$class : string = ' class = "echappe-js"'

Attributs HTML du conteneur à ajouter

Return values
string

interdire_scripts()

Empêcher l'exécution de code PHP et JS

interdire_scripts(string $arg[, int $mode_filtre = null ]) : string

Sécurité : empêcher l'exécution de code PHP, en le transformant en joli code dans l'espace privé. Cette fonction est aussi appelée par propre et typo.

De la même manière, la fonction empêche l'exécution de JS mais selon le mode de protection passe en argument

Il ne faut pas désactiver globalement la fonction dans l'espace privé car elle protège aussi les balises des squelettes qui ne passent pas forcement par propre ou typo après si elles sont appelées en direct

Parameters
$arg : string

Code à protéger

$mode_filtre : int = null

Mode de protection -1 : protection dans l'espace privé et public 0 : protection dans l'espace public 1 : aucune protection utilise la valeur de la globale filtrer_javascript si non fourni

Tags
used-by
filtre_filtrer_entites_dist()
Return values
string

Code protégé

typo()

Applique la typographie générale

typo(string $letexte[, bool|string $echapper = true ][, string|null $connect = null ][, array<string|int, mixed> $env = [] ]) : string

Effectue un traitement pour que les textes affichés suivent les règles de typographie. Fait une protection préalable des balises HTML et SPIP. Transforme les balises <multi>

Parameters
$letexte : string

texte d'origine

$echapper : bool|string = true

Échapper ?

$connect : string|null = null

Nom du connecteur à la bdd

$env : array<string|int, mixed> = []

Environnement (pour les calculs de modèles)

Tags
filtre
uses
traiter_modeles()
uses
corriger_typo()
uses
echapper_faux_tags()
see
propre()
used-by
init_entete()
Return values
string

$t texte transformé

corriger_typo()

Corrige la typographie

corriger_typo(string $letexte[, string $lang = '' ]) : string

Applique les corrections typographiques adaptées à la langue indiquée.

Parameters
$letexte : string

texte

$lang : string = ''

Langue

Tags
pipeline_appel

pre_typo

pipeline_appel

post_typo

uses
corriger_caracteres()
uses
corriger_caracteres()
used-by
nettoyer_titre_email()
used-by
typo()
Return values
string

texte

paragrapher()

Paragrapher seulement

paragrapher(string $letexte[, bool $forcer = true ]) : string

/!\ appelée dans inc/filtres et public/composer

Ne fait rien ici. Voir plugin Textwheel

Parameters
$letexte : string
$forcer : bool = true
Return values
string

traiter_retours_chariots()

Harmonise les retours chariots et mange les paragraphes HTML

traiter_retours_chariots(string $letexte) : string

Ne sert plus

Parameters
$letexte : string

texte

Return values
string

texte

propre()

Transforme les raccourcis SPIP, liens et modèles d'un texte en code HTML

propre(string $t[, string|null $connect = null ][, array<string|int, mixed> $env = [] ]) : string

Filtre à appliquer aux champs du type #TEXTE*

Parameters
$t : string

texte avec des raccourcis SPIP

$connect : string|null = null

Nom du connecteur à la bdd

$env : array<string|int, mixed> = []

Environnement (pour les calculs de modèles)

Tags
filtre
uses
echappe_html()
uses
expanser_liens()
uses
traiter_raccourcis()
uses
echappe_retour_modeles()
see
typo()
used-by
check_upload_error()
Return values
string

$t texte transformé

definir_puce()

Retourne une image d'une puce

definir_puce() : string

Le nom de l'image est déterminé par la globale 'puce' ou 'puce_prive' ou les mêmes suffixées de '_rtl' pour ce type de langues.

Tags
note

On initialise la puce pour éviter find_in_path() à chaque rencontre de \n- Mais attention elle depend de la direction et de X_fonctions.php, ainsi que de l'espace choisi (public/prive)

Return values
string

Code HTML de la puce

spip_balisage_code()

Preparer le markup html pour les extraits de code en ligne ou en bloc

spip_balisage_code(string $corps[, bool $bloc = false ][, string $attributs = '' ][, string $langage = '' ]) : string
Parameters
$corps : string
$bloc : bool = false
$attributs : string = ''
$langage : string = ''
Return values
string

code_echappement()

Echapper les elements perilleux en les passant en base64

code_echappement(string $rempl[, string $source = '' ][, bool $no_transform = false ][, string|null $mode = null ]) : string

Creer un bloc base64 correspondant a $rempl ; au besoin en marquant une $source differente ; le script detecte automagiquement si ce qu'on echappe est un div ou un span

Parameters
$rempl : string
$source : string = ''
$no_transform : bool = false
$mode : string|null = null
Tags
used-by
traiter_math()
Return values
string

traiter_echap_html_dist()

traiter_echap_html_dist(mixed $regs[, mixed $options = [] ]) : mixed
Parameters
$regs : mixed
$options : mixed = []

traiter_echap_pre_dist()

traiter_echap_pre_dist(mixed $regs[, mixed $options = [] ]) : mixed
Parameters
$regs : mixed
$options : mixed = []

traiter_echap_code_dist()

traiter_echap_code_dist(mixed $regs[, mixed $options = [] ]) : mixed
Parameters
$regs : mixed
$options : mixed = []

traiter_echap_cadre_dist()

traiter_echap_cadre_dist(mixed $regs[, mixed $options = [] ]) : mixed
Parameters
$regs : mixed
$options : mixed = []

traiter_echap_frame_dist()

traiter_echap_frame_dist(mixed $regs[, mixed $options = [] ]) : mixed
Parameters
$regs : mixed
$options : mixed = []

traiter_echap_script_dist()

traiter_echap_script_dist(mixed $regs[, mixed $options = [] ]) : mixed
Parameters
$regs : mixed
$options : mixed = []

echappe_html()

pour $source voir commentaire infra (echappe_retour)

echappe_html(string $letexte[, string $source = '' ][, bool $no_transform = false ][, array<string|int, mixed>|null $html_tags = null ][, string $callback_prefix = '' ][, array<string|int, mixed> $callback_options = [] ]) : string|array<string|int, string>
Parameters
$letexte : string
$source : string = ''
$no_transform : bool = false

déprécié, cet argument ne doit plus être utilisé, utiliser directement Spip\Texte\Collecteur\HtmlTag::proteger_balisesHtml dans ce cas

$html_tags : array<string|int, mixed>|null = null

le passage d'une preg au format string est déprécié

$callback_prefix : string = ''
$callback_options : array<string|int, mixed> = []
Tags
used-by
entites_html()
used-by
post_autobr()
used-by
propre()
Return values
string|array<string|int, string>

echappe_retour()

Traitement final des echappements Rq: $source sert a faire des echappements "a soi" qui ne sont pas nettoyes par propre() : exemple dans multi et dans typo()

echappe_retour(string $letexte[, string $source = '' ][, string $filtre = '' ]) : array<string|int, mixed>|mixed|string|array<string|int, string>
Parameters
$letexte : string
$source : string = ''
$filtre : string = ''
Tags
used-by
entites_html()
used-by
post_autobr()
Return values
array<string|int, mixed>|mixed|string|array<string|int, string>

echappe_retour_modeles()

echappe_retour_modeles(mixed $letexte[, mixed $interdire_scripts = false ]) : mixed
Parameters
$letexte : mixed
$interdire_scripts : mixed = false
Tags
used-by
propre()

couper()

Coupe un texte à une certaine longueur.

couper(string $texte[, int $taille = 50 ][, string $suite = null ]) : string

Il essaie de ne pas couper les mots et enlève le formatage du texte. Si le texte original est plus long que l’extrait coupé, alors des points de suite sont ajoutés à l'extrait, tel que (…).

Parameters
$texte : string

texte à couper

$taille : int = 50

Taille de la coupe

$suite : string = null

Points de suite ajoutés.

Tags
note

Les points de suite ne sont pas ajoutés sur les extraits très courts.

filtre
link
https://www.spip.net/4275
Return values
string

texte coupé

protege_js_modeles()

protege_js_modeles(mixed $texte) : mixed
Parameters
$texte : mixed

echapper_faux_tags()

echapper_faux_tags(mixed $letexte) : mixed
Parameters
$letexte : mixed
Tags
used-by
typo()

echapper_html_suspect()

Si le html contenu dans un texte ne passe pas sans transformation a travers safehtml on l'echappe si safehtml ne renvoie pas la meme chose on echappe les < en &lt; pour montrer le contenu brut

echapper_html_suspect(string $texte[, array<string|int, mixed> $options = [] ][, string $connect = null ][, array<string|int, mixed> $env = [] ]) : string
Parameters
$texte : string
$options : array<string|int, mixed> = []

bool strict : etre strict ou non sur la detection string wrap_suspect : si le html est suspect, on wrap l'affichage avec la balise indiquee dans cette option via la fonction wrap() string texte_source_affiche : si le html est suspect, on utilise ce texte pour l'affichage final et pas le texte utilise pour la detection

$connect : string = null
$env : array<string|int, mixed> = []
Tags
use

wrap()

Return values
string

safehtml()

Sécurise un texte HTML

safehtml(string $t) : string

Échappe le code PHP et JS. Applique en plus safehtml si un plugin le définit dans inc/safehtml.php

Permet de protéger les textes issus d'une origine douteuse (forums, syndications...)

Parameters
$t : string

texte à sécuriser

Tags
filtre
link
https://www.spip.net/4310
Return values
string

texte sécurisé

is_html_safe()

Detecter si un texte est "safe" ie non modifie significativement par safehtml()

is_html_safe(string $texte) : bool
Parameters
$texte : string
Return values
bool

supprime_img()

Supprime les modèles d'image d'un texte

supprime_img(string $letexte[, string|null $message = null ]) : string

Fonction en cas de texte extrait d'un serveur distant: on ne sait pas (encore) rapatrier les documents joints Sert aussi à nettoyer un texte qu'on veut mettre dans un <a> etc.

Parameters
$letexte : string

texte à nettoyer

$message : string|null = null

Message de remplacement pour chaque image enlevée

Tags
todo

gérer les autres modèles ?

Return values
string

texte sans les modèles d'image

find_langs_in_path()

Rechercher tous les lang/file dans le path qui seront ensuite chargés dans l'ordre du path

find_langs_in_path(string $file[, string $dirname = 'lang' ]) : array<string|int, mixed>

Version dédiée et optimisée pour cet usage de find_in_path

Parameters
$file : string

Nom du fichier cherché, tel que mots_fr.php

$dirname : string = 'lang'

Nom du répertoire de recherche

Tags
see
find_in_path()
staticvar

array $dirs

Return values
array<string|int, mixed>

Liste des fichiers de langue trouvés, dans l'ordre des chemins

chercher_module_lang()

Recherche le ou les fichiers de langue d'un module de langue

chercher_module_lang(string $module[, string $lang = '' ]) : array<string|int, mixed>
Parameters
$module : string

Nom du module de langue, tel que mots ou ecrire

$lang : string = ''

Langue dont on veut obtenir les traductions. Paramètre optionnel uniquement si le module est local

Return values
array<string|int, mixed>

Liste des fichiers touvés pour ce module et cette langue.

charger_langue()

Charge en mémoire les couples cle/traduction d'un module de langue et une langue donnée

charger_langue(string $lang[, string $module = 'spip' ]) : void

Interprête un fichier de langue pour le module et la langue désignée s'il existe, et sinon se rabat soit sur la langue principale du site (définie par la meta langue_site), soit sur le français.

Définit la globale idx_lang qui sert à la lecture du fichier de langue (include) et aux surcharges via surcharger_langue()

Parameters
$lang : string

Code de langue

$module : string = 'spip'

Nom du module de langue

Tags
uses
chercher_module_lang()
uses
surcharger_langue()
used-by
inc_traduire_dist()

lire_fichier_langue()

Retourne les entrées d’un fichier de langue

lire_fichier_langue(string $fichier) : string

Les fichiers de langue retournent soit un array [ cle => valeur ], soit peuplent une globale $GLOBALS[$GLOBALS['idx_lang']].

Parameters
$fichier : string
Return values
string

Chemin du fichier de langue (un fichier PHP)

surcharger_langue()

Surcharger le fichier de langue courant avec un ou plusieurs autres

surcharger_langue(array<string|int, mixed> $fichiers) : mixed

Charge chaque fichier de langue dont les chemins sont transmis et surcharge les infos de cette langue/module déjà connues par les nouvelles données chargées. Seule les clés nouvelles ou modifiées par la surcharge sont impactées (les clés non présentes dans la surcharge ne sont pas supprimées !).

La fonction suppose la présence de la globale idx_lang indiquant la destination des couples de traduction, de la forme i18n_{$module}_{$lang}

Parameters
$fichiers : array<string|int, mixed>

Liste des chemins de fichiers de langue à surcharger.

Tags
used-by
charger_langue()
used-by
inc_traduire_dist()

inc_traduire_dist()

Traduire une chaine internationalisée

inc_traduire_dist(string $ori, string $lang[, bool $raw = false ]) : string|Description

Lorsque la langue demandée n'a pas de traduction pour la clé de langue transmise, la fonction cherche alors la traduction dans la langue principale du site (défini par la meta langue_site), puis, à défaut dans la langue française.

Les traductions sont cherchées dans les modules de langue indiqués. Par exemple le module mots dans la clé mots:titre_mot, pour une traduction es (espagnol) provoquera une recherche dans tous les fichiers lang\mots_es.php.

Des surcharges locales peuvent être présentes également dans les fichiers lang/local_es.php ou lang/local.php

Parameters
$ori : string

Clé de traduction, tel que bouton_enregistrer ou mots:titre_mot

$lang : string

Code de langue, la traduction doit se faire si possible dans cette langue

$raw : bool = false
  • false : retourne le texte (par défaut)
  • true : retourne une description de la chaine de langue (module, texte, langue)
Tags
note

Les couples clé/traductions déjà connus sont sauvés en interne dans les globales i18n_{$module}_{$lang} tel que i18n_mots_es et sont également sauvés dans la variable statique deja_vu de cette fonction.

uses
charger_langue()
uses
chercher_module_lang()
uses
surcharger_langue()
used-by
_T()
used-by
extraire_idiome()
Return values
string|Description
  • string : Traduction demandée. Chaîne vide si aucune traduction trouvée.
  • Description : traduction et description (texte, module, langue)

definir_details_traduction()

Modifie le texte de traduction pour indiquer des éléments servant au debug de celles-ci. (pour var_mode=traduction)

definir_details_traduction(Description $desc, string $modules) : Description
Parameters
$desc : Description
$modules : string

Les modules qui étaient demandés

Return values
Description

urls_decoder_url()

Décoder une URL en utilisant les fonctions inverses

urls_decoder_url(string $url[, string $fond = '' ][, array<string|int, mixed> $contexte = [] ][, bool $assembler = false ]) : array<string|int, mixed>

Gère les URLs transformées par le htaccess.

Parameters
$url : string

URL à décoder

$fond : string = ''

Fond initial par défaut

$contexte : array<string|int, mixed> = []

contexte initial à prendre en compte

$assembler : bool = false

true si l'URL correspond à l'URL principale de la page qu'on est en train d'assembler dans ce cas la fonction redirigera automatiquement si besoin et utilisera les eventuelles globales $_SERVER['REDIRECT_url_propre'] et $_ENV['url_propre'] provenant du htaccess

Tags
note

$renommer = 'urls_propres_dist'; renvoie array($contexte, $type, $url_redirect, $nfond)

$nfond n'est retourné que si l'URL est définie apres le ? et risque d'être effacée par un form en get. Elle est utilisée par form_hidden exclusivement.

Compat ascendante si le retour est NULL en gérant une sauvegarde/restauration des globales modifiées par les anciennes fonctions

Return values
array<string|int, mixed>

Liste $fond, $contexte, $url_redirect.

Si l'url n'est pas valide, $fond restera à la valeur initiale passée. Il suffit d'appeler la fonction sans $fond et de vérifier qu'à son retour celui-ci est non vide pour vérifier une URL

urls_transition_retrouver_anciennes_url_propres()

Le bloc qui suit sert a faciliter les transitions depuis le mode 'urls-propres' vers les modes 'urls-standard' et 'url-html'

urls_transition_retrouver_anciennes_url_propres(string $url_propre, string $entite[, array<string|int, mixed> $contexte = [] ]) : array<string|int, mixed>
Parameters
$url_propre : string
$entite : string
$contexte : array<string|int, mixed> = []
Return values
array<string|int, mixed>

urls_transition_retrouver_anciennes_url_html()

Le bloc qui suit sert a faciliter les transitions depuis le mode 'urls-html/standard' vers les modes 'urls propres|arbos'

urls_transition_retrouver_anciennes_url_html(string $url, string $entite[, array<string|int, mixed> $contexte = [] ]) : array<string|int, mixed>
Parameters
$url : string
$entite : string
$contexte : array<string|int, mixed> = []
Return values
array<string|int, mixed>

urls_liste_objets()

Lister les objets pris en compte dans les URLs c'est à dire suceptibles d'avoir une URL propre

urls_liste_objets([bool $preg = true ]) : string|array<string|int, mixed>
Parameters
$preg : bool = true

Permet de définir si la fonction retourne une chaine avec | comme séparateur pour utiliser en preg, ou un array()

Return values
string|array<string|int, mixed>

nettoyer_url_page()

Nettoyer une URL, en repérant notamment les raccourcis d'objets

nettoyer_url_page(string $url[, array<string|int, mixed> $contexte = [] ]) : array<string|int, mixed>

Repère les entités comme ?article13, ?rubrique21 ... les traduisant pour compléter le contexte fourni en entrée

Parameters
$url : string
$contexte : array<string|int, mixed> = []
Return values
array<string|int, mixed>

generer_objet_url_ecrire()

Générer l'URL d'un objet dans l'espace privé

generer_objet_url_ecrire(int|string|null $id, string $objet[, string $args = '' ][, string $ancre = '' ][, bool|null $public = null ][, string $connect = '' ]) : string

L'URL est calculée en fonction de son état publié ou non, calculé à partir de la déclaration de statut.

Parameters
$id : int|string|null

Identifiant de l'objet

$objet : string

Type d'objet

$args : string = ''
$ancre : string = ''
$public : bool|null = null
$connect : string = ''
Return values
string

spip_xml_load()

Lit un fichier xml donné et renvoie son arbre.

spip_xml_load(string $fichier[, bool $strict = true ][, bool $clean = true ][, int $taille_max = 1048576 ][, string|array<string|int, mixed> $datas = '' ][, int $profondeur = -1 ]) : array<string|int, mixed>|bool
Parameters
$fichier : string

Chemin local ou URL distante du fichier XML

$strict : bool = true

true pour râler si une balise n'est pas correctement fermée, false sinon.

$clean : bool = true

?

$taille_max : int = 1048576

Taille maximale si fichier distant

$datas : string|array<string|int, mixed> = ''

Données à envoyer pour récupérer le fichier distant

$profondeur : int = -1

?

Tags
example
include_spip('inc/xml');
$arbre = spip_xml_load("example.xml");
uses
spip_xml_parse()
Return values
array<string|int, mixed>|bool
  • array : l'arbre XML,
  • false si l'arbre xml ne peut être créé ou est vide

spip_xml_parse()

Parse une chaine XML donnée et retourne un tableau.

spip_xml_parse(string &$texte[, bool $strict = true ][, bool $clean = true ][, int $profondeur = -1 ]) : array<string|int, mixed>|bool
Parameters
$texte : string

texte XML

$strict : bool = true

true pour râler si une balise n'est pas correctement fermée, false sinon.

$clean : bool = true

?

$profondeur : int = -1

?

Tags
see
spip_xml_aplatit()

pour l'inverse

used-by
spip_xml_load()
Return values
array<string|int, mixed>|bool
  • array : l'arbre XML,
  • false si l'arbre xml ne peut être créé ou est vide

spip_xml_aplatit()

spip_xml_aplatit(mixed $arbre[, mixed $separateur = ' ' ]) : mixed
Parameters
$arbre : mixed
$separateur : mixed = ' '

spip_xml_tagname()

spip_xml_tagname(mixed $tag) : mixed
Parameters
$tag : mixed

spip_xml_decompose_tag()

spip_xml_decompose_tag(mixed $tag) : mixed
Parameters
$tag : mixed

spip_xml_match_nodes()

Recherche dans un arbre XML généré par `spip_xml_parse()` (ou une branche de cet arbre) les clés de l'arbre qui valident la regexp donnée.

spip_xml_match_nodes(string $regexp, array<string|int, mixed> &$arbre, array<string|int, mixed> &$matches[, bool $init = true ]) : bool

Les branches qui valident la regexp sont retournées dans le tableau $matches.

Parameters
$regexp : string

Expression régulière

$arbre : array<string|int, mixed>

Arbre XML

$matches : array<string|int, mixed>

Branches de l'arbre validant la rexgep

$init : bool = true

?

Tags
see
spip_xml_parse()
see
spip_xml_decompose_tag()
Return values
bool

false si aucun élément ne valide l'expression régulière, true sinon.

install_etape__dist()

Affiche l'étape 0 d'installation : écran d'accueil.

install_etape__dist() : mixed
Tags
uses
info_copyright()
used-by
exec_install_dist()

Affiche l'écran d'accueil de l'installation, si aucune étape n'est encore définie.

install_etape_1_dist()

Affichage de l'étape 1 d'installation : tests des répertoires et hébergement ; demande d'identifiants de connexion à la BDD

install_etape_1_dist() : mixed

Teste que l'hébergement est compatible, que les répertoires qui doivent être accessibles en écriture le sont effectivement, auquel cas demande les identifiants de connexion à une base de données

Tags
uses
tester_compatibilite_hebergement()
uses
analyse_fichier_connection()

install_etape_2_bases()

install_etape_2_bases(mixed $login_db, mixed $server_db) : mixed
Parameters
$login_db : mixed
$server_db : mixed

install_etape_2_form()

install_etape_2_form(mixed $hidden, mixed $checked, mixed $res, mixed $etape) : mixed
Parameters
$hidden : mixed
$checked : mixed
$res : mixed
$etape : mixed

install_bases()

install_bases(mixed $adresse_db, mixed $login_db, mixed $pass_db, mixed $server_db, mixed $choix_db, mixed $sel_db, mixed $chmod_db) : mixed
Parameters
$adresse_db : mixed
$login_db : mixed
$pass_db : mixed
$server_db : mixed
$choix_db : mixed
$sel_db : mixed
$chmod_db : mixed

preparer_prefixe_tables()

Préparer le préfixe des tables

preparer_prefixe_tables(string $prefixe) : string

Contrairement a ce qui est dit dans le message (trop strict mais c'est pour notre bien), on tolère les chiffres en plus des minuscules. On corrige aussi le préfixe afin qu'il ne commence pas par un chiffre cf https://core.spip.net/issues/3626

Parameters
$prefixe : string

Le préfixe demandé

Return values
string

Le préfixe corrigé

install_premier_auteur()

install_premier_auteur(mixed $email, mixed $login, mixed $nom, mixed $pass, mixed $hidden, mixed $auteur_obligatoire) : mixed
Parameters
$email : mixed
$login : mixed
$nom : mixed
$pass : mixed
$hidden : mixed
$auteur_obligatoire : mixed

echouer_etape_3b()

echouer_etape_3b(mixed $echec) : never
Parameters
$echec : mixed
Return values
never

test_ecrire()

test_ecrire(mixed $my_dir) : mixed
Parameters
$my_dir : mixed

iterateur_CONDITION_dist()

Créer une boucle sur un itérateur CONDITION

iterateur_CONDITION_dist(Boucle $b) : Boucle

Annonce au compilateur les "champs" disponibles, c'est à dire aucun. Une boucle CONDITION n'a pas de données !

Parameters
$b : Boucle

Description de la boucle

Return values
Boucle

Description de la boucle complétée des champs

iterateur_DATA_dist()

Créer une boucle sur un itérateur DATA

iterateur_DATA_dist(Boucle $b) : Boucle

Annonce au compilateur les "champs" disponibles, c'est à dire 'cle', 'valeur' et '*' (tout nom possible).

On ne peut effectivement pas connaître à la compilation la structure des données qui seront obtenues. On indique donc au compilateur que toute balise utilisée dans la boucle est possiblement un champ des données reçues.

Parameters
$b : Boucle

Description de la boucle

Return values
Boucle

Description de la boucle complétée des champs

inc_file_to_array_dist()

file -> tableau

inc_file_to_array_dist(string $data) : array<string|int, mixed>
Parameters
$data : string
Return values
array<string|int, mixed>

inc_plugins_to_array_dist()

plugins -> tableau

inc_plugins_to_array_dist() : array<string|int, mixed>
Return values
array<string|int, mixed>

inc_xml_to_array_dist()

xml -> tableau

inc_xml_to_array_dist(string $data) : array<string|int, mixed>
Parameters
$data : string
Return values
array<string|int, mixed>

inc_object_to_array()

object -> tableau

inc_object_to_array(object $object) : array<string|int, mixed>
Parameters
$object : object

The object to convert

Return values
array<string|int, mixed>

inc_sql_to_array_dist()

sql -> tableau

inc_sql_to_array_dist(string $data) : array<string|int, mixed>|bool
Parameters
$data : string
Return values
array<string|int, mixed>|bool

inc_json_to_array_dist()

json -> tableau

inc_json_to_array_dist(string $data) : array<string|int, mixed>|bool
Parameters
$data : string
Return values
array<string|int, mixed>|bool

inc_csv_to_array_dist()

csv -> tableau

inc_csv_to_array_dist(string $data) : array<string|int, mixed>|bool
Parameters
$data : string
Return values
array<string|int, mixed>|bool

inc_rss_to_array_dist()

RSS -> tableau

inc_rss_to_array_dist(string $data) : array<string|int, mixed>|bool
Parameters
$data : string
Return values
array<string|int, mixed>|bool

inc_atom_to_array_dist()

atom, alias de rss -> tableau

inc_atom_to_array_dist(string $data) : array<string|int, mixed>|bool
Parameters
$data : string
Return values
array<string|int, mixed>|bool

inc_glob_to_array_dist()

glob -> tableau lister des fichiers selon un masque, pour la syntaxe cf php.net/glob

inc_glob_to_array_dist(string $data) : array<string|int, mixed>|bool
Parameters
$data : string
Return values
array<string|int, mixed>|bool

inc_yaml_to_array_dist()

YAML -> tableau

inc_yaml_to_array_dist(string $data) : bool|array<string|int, mixed>
Parameters
$data : string
Tags
throws
Exception
Return values
bool|array<string|int, mixed>

inc_pregfiles_to_array_dist()

pregfiles -> tableau lister des fichiers a partir d'un dossier de base et selon une regexp.

inc_pregfiles_to_array_dist(string $dir[, string $regexp = -1 ][, int $limit = 10000 ]) : array<string|int, mixed>|bool

pour la syntaxe cf la fonction spip preg_files

Parameters
$dir : string
$regexp : string = -1
$limit : int = 10000
Return values
array<string|int, mixed>|bool

inc_ls_to_array_dist()

ls -> tableau ls : lister des fichiers selon un masque glob et renvoyer aussi leurs donnees php.net/stat

inc_ls_to_array_dist(string $data) : array<string|int, mixed>|bool
Parameters
$data : string
Return values
array<string|int, mixed>|bool

XMLObjectToArray()

Object -> tableau

XMLObjectToArray(object $object) : array<string|int, mixed>|bool
Parameters
$object : object
Return values
array<string|int, mixed>|bool

iterateur_php_dist()

Créer une boucle sur un itérateur PHP

iterateur_php_dist(Boucle $b, string $iteratorName) : Boucle

Annonce au compilateur les "champs" disponibles, c'est à dire 'cle', 'valeur' et toutes les méthodes de l'itérateur désigné.

Parameters
$b : Boucle

Description de la boucle

$iteratorName : string

Nom de l'itérateur à utiliser

Return values
Boucle

Description de la boucle complétée des champs

maj2021_supprimer_toutes_sessions_si_aucun_backup_cles()

Supprime toutes les sessions des auteurs si on a pas encore généré de config/cles.php avec son backup

maj2021_supprimer_toutes_sessions_si_aucun_backup_cles() : mixed

Obligera tous les auteurs à se reconnecter :

  • le webmestre qui fait la mise a jour génèrera une cle avec un backup
  • les autres auteurs vont tous regénérer un mot de passe plus sécure au premier login

notifications_instituerarticle_dist()

notifications_instituerarticle_dist(mixed $quoi, mixed $id_article, mixed $options) : mixed
Parameters
$quoi : mixed
$id_article : mixed
$options : mixed

plugins_afficher_liste_dist()

Afficher une liste de plugins dans l'interface

plugins_afficher_liste_dist(string $url_page, array<string|int, mixed> $liste_plugins, array<string|int, mixed> $liste_plugins_checked, array<string|int, mixed> $liste_plugins_actifs[, string $dir_plugins = _DIR_PLUGINS ][, string $afficher_un = 'afficher_plugin' ]) : string
Parameters
$url_page : string
$liste_plugins : array<string|int, mixed>
$liste_plugins_checked : array<string|int, mixed>
$liste_plugins_actifs : array<string|int, mixed>
$dir_plugins : string = _DIR_PLUGINS
$afficher_un : string = 'afficher_plugin'
Return values
string

affiche_block_initiale()

affiche_block_initiale(mixed $initiale, mixed $block, mixed $block_actif) : mixed
Parameters
$initiale : mixed
$block : mixed
$block_actif : mixed

plugins_afficher_nom_plugin_dist()

plugins_afficher_nom_plugin_dist(mixed $url_page, mixed $plug_file, mixed $checked, mixed $actif[, mixed $expose = false ][, mixed $class_li = 'item' ][, mixed $dir_plugins = _DIR_PLUGINS ]) : mixed
Parameters
$url_page : mixed
$plug_file : mixed
$checked : mixed
$actif : mixed
$expose : mixed = false
$class_li : mixed = 'item'
$dir_plugins : mixed = _DIR_PLUGINS

plugins_afficher_plugin_dist()

plugins_afficher_plugin_dist(mixed $url_page, mixed $plug_file, mixed $checked, mixed $actif[, mixed $expose = false ][, mixed $class_li = 'item' ][, mixed $dir_plugins = _DIR_PLUGINS ]) : mixed
Parameters
$url_page : mixed
$plug_file : mixed
$checked : mixed
$actif : mixed
$expose : mixed = false
$class_li : mixed = 'item'
$dir_plugins : mixed = _DIR_PLUGINS
Tags
used-by
exec_info_plugin_dist()

plugin_bouton_config()

plugin_bouton_config(mixed $nom, mixed $infos, mixed $dir) : mixed
Parameters
$nom : mixed
$infos : mixed
$dir : mixed

plugin_checkbox()

plugin_checkbox(mixed $id_input, mixed $file, mixed $actif) : mixed
Parameters
$id_input : mixed
$file : mixed
$actif : mixed

plugin_nom()

plugin_nom(mixed $info, mixed $dir_plugins, mixed $plug_file) : mixed
Parameters
$info : mixed
$dir_plugins : mixed
$plug_file : mixed

plugin_resume()

plugin_resume(mixed $info, mixed $dir_plugins, mixed $plug_file, mixed $url_page) : mixed
Parameters
$info : mixed
$dir_plugins : mixed
$plug_file : mixed
$url_page : mixed

plugin_desintalle()

plugin_desintalle(mixed $plug_file, mixed $nom[, mixed $dir_plugins = null ]) : mixed
Parameters
$plug_file : mixed
$nom : mixed
$dir_plugins : mixed = null

plugin_etat_en_clair()

Traduit un type d'état de plugin

plugin_etat_en_clair(string $etat) : string

Si l'état n'existe pas, prendra par défaut 'developpement'

Parameters
$etat : string

Le type d'état (stable, test, ...)

Return values
string

Traduction de l'état dans la langue en cours

plugin_propre()

plugin_propre(mixed $texte[, mixed $module = '' ][, mixed $propre = 'propre' ]) : mixed
Parameters
$texte : mixed
$module : mixed = ''
$propre : mixed = 'propre'

plugin_typo()

plugin_typo(mixed $texte[, mixed $module = '' ]) : mixed
Parameters
$texte : mixed
$module : mixed = ''

affiche_bloc_plugin()

affiche_bloc_plugin(mixed $plug_file, mixed $info[, mixed $dir_plugins = null ]) : mixed
Parameters
$plug_file : mixed
$info : mixed
$dir_plugins : mixed = null
Tags
used-by
exec_info_plugin_dist()

formater_credits()

formater_credits(mixed $infos[, mixed $sep = ', ' ]) : mixed
Parameters
$infos : mixed
$sep : mixed = ', '

plugins_afficher_repertoires_dist()

plugins_afficher_repertoires_dist(mixed $url_page, mixed $liste_plugins, mixed $liste_plugins_actifs) : mixed
Parameters
$url_page : mixed
$liste_plugins : mixed
$liste_plugins_actifs : mixed

tree_open_close_dir()

tree_open_close_dir(mixed &$current, mixed $target[, mixed $deplie = [] ]) : mixed
Parameters
$current : mixed
$target : mixed
$deplie : mixed = []

plugins_extraire_boutons_dist()

Analyser un arbre xml et extraire les infos concernant les boutons et onglets

plugins_extraire_boutons_dist(array<string|int, mixed> $arbre) : array<string|int, mixed>
Parameters
$arbre : array<string|int, mixed>
Return values
array<string|int, mixed>

plugins_extraire_pipelines_dist()

Extraire les infos de pipeline

plugins_extraire_pipelines_dist(array<string|int, mixed> &$arbre) : mixed
Parameters
$arbre : array<string|int, mixed>

plugins_get_infos_dist()

Lecture du fichier de configuration d'un plugin

plugins_get_infos_dist([string|array<string|int, mixed>|bool $plug = false ][, bool $reload = false ][, string $dir = _DIR_PLUGINS ][, bool $clean_old = false ]) : array<string|int, mixed>
Parameters
$plug : string|array<string|int, mixed>|bool = false
$reload : bool = false
$dir : string = _DIR_PLUGINS
$clean_old : bool = false
Tags
staticvar

string $filecache

staticvar

array $cache

used-by
exec_info_plugin_dist()
used-by
liste_plugin_files()
used-by
liste_plugin_valides()
Return values
array<string|int, mixed>

plugins_get_infos_un()

plugins_get_infos_un(mixed $plug, mixed $reload, mixed $dir, mixed &$cache) : mixed
Parameters
$plug : mixed
$reload : mixed
$dir : mixed
$cache : mixed

plugins_infos_paquet()

lecture d'un texte conforme a la DTD paquet.dtd et conversion en tableau PHP identique a celui fourni par plugin.xml manque la description

plugins_infos_paquet(array<string|int, mixed> $desc[, string $plug = '' ][, string $dir_plugins = _DIR_PLUGINS ]) : array<string|int, mixed>
Parameters
$desc : array<string|int, mixed>
$plug : string = ''
$dir_plugins : string = _DIR_PLUGINS
Return values
array<string|int, mixed>

paquet_readable_files()

Verifier le presence des fichiers remarquables options/actions/administrations et le logo et peupler la description du plugin en consequence

paquet_readable_files(array<string|int, mixed> &$tree, string $dir) : void
Parameters
$tree : array<string|int, mixed>
$dir : string

paquet_debutElement()

Appeler le validateur, qui memorise le texte dans le tableau "versions" On memorise en plus dans les index de numero de version de SPIP les attributs de la balise rencontree qu'on complete par des entrees nommees par les sous-balises de "paquet", et initialisees par un tableau vide, rempli a leur rencontre.

paquet_debutElement(object $phraseur, string $name, array<string|int, mixed> $attrs) : mixed

La sous-balise "spip", qui ne peut apparaitre qu'apres les autres, reprend les valeurs recuperees precedement (valeurs par defaut)

Parameters
$phraseur : object
$name : string
$attrs : array<string|int, mixed>

paquet_textElement()

Appeler l'indenteur pour sa gestion de la profondeur, et memoriser les attributs dans le tableau avec l'oppose de la profondeur comme index, avec '' comme sous-index (les autres sont les attributs)

paquet_textElement(object $phraseur, string $data) : mixed
Parameters
$phraseur : object
$data : string

paquet_finElement()

Si on sait deja que le texte n'est pas valide on ne fait rien.

paquet_finElement(object $phraseur, string $name) : mixed

Pour une balise sans attribut, le traitement est forcement toujours le meme. Pour une balise sans texte, idem mais parce que la DTD est bien fichue

Parameters
$phraseur : object
$name : string

info_paquet_licence()

Cas particulier de la balise licence : transformer en lien sur url fournie dans l'attribut lien

info_paquet_licence(object $phraseur, array<string|int, mixed> $attrs, string $texte) : mixed
Parameters
$phraseur : object
$attrs : array<string|int, mixed>
$texte : string

info_paquet_chemin()

Cas particulier de la balise chemin : stocker un tableau

info_paquet_chemin(object $phraseur, array<string|int, mixed> $attrs, string $texte) : mixed
Parameters
$phraseur : object
$attrs : array<string|int, mixed>
$texte : string

info_paquet_auteur()

Cas particulier de la balise auteur peupler le mail si besoin (en le protegeant, mais est-ce bien la place pour cela ?) et le lien vers le site de l'auteur si fournit

info_paquet_auteur(object $phraseur, array<string|int, mixed> $attrs, string $texte) : mixed
Parameters
$phraseur : object
$attrs : array<string|int, mixed>
$texte : string

info_paquet_credit()

Cas particulier de la balise credit peupler le lien vers le site externe si necessaire

info_paquet_credit(object $phraseur, array<string|int, mixed> $attrs, string $texte) : mixed
Parameters
$phraseur : object
$attrs : array<string|int, mixed>
$texte : string

Cas particulier de la balise copyright : transformer en lien sur url fournie dans l'attribut lien

info_paquet_copyright(object $phraseur, array<string|int, mixed> $attrs, string $texte) : mixed
Parameters
$phraseur : object
$attrs : array<string|int, mixed>
$texte : string

info_paquet_paquet()

Cas particulier de la balise paquet : Remplacer cet index qui ne sert a rien par un index balise=paquet et ajouter la reference a la dtd

info_paquet_paquet(object $phraseur, array<string|int, mixed> $attrs, string $texte) : mixed
Parameters
$phraseur : object
$attrs : array<string|int, mixed>
$texte : string

info_paquet_traduire()

Cas particulier sur la balise traduire : Elle n'a pas de 'nom'

info_paquet_traduire(object $phraseur, array<string|int, mixed> $attrs, string $texte) : mixed
Parameters
$phraseur : object
$attrs : array<string|int, mixed>
$texte : string

info_paquet_spip()

Cas particulier de la balise spip : Remplacer cet index qui ne sert a rien par un index balise=spip et ajouter la reference a la dtd

info_paquet_spip(object $phraseur, array<string|int, mixed> $attrs, string $texte) : mixed
Parameters
$phraseur : object
$attrs : array<string|int, mixed>
$texte : string

info_paquet_pipeline()

Pipelines : plusieurs declarations possibles pour un meme pipeline

info_paquet_pipeline(object $phraseur, array<string|int, mixed> $attrs, string $texte) : mixed
Parameters
$phraseur : object
$attrs : array<string|int, mixed>
$texte : string

info_paquet_style()

Style : plusieurs declarations possibles.

info_paquet_style(object $phraseur, array<string|int, mixed> $attrs, string $texte) : mixed

Traitement de l'attribut source pour générer en remplacement les attributs url et path

Parameters
$phraseur : object
$attrs : array<string|int, mixed>
$texte : string

info_paquet_script()

Script : plusieurs declarations possibles.

info_paquet_script(object $phraseur, array<string|int, mixed> $attrs, string $texte) : mixed

Traitement de l'attribut source pour générer en remplacement les attributs url et path

Parameters
$phraseur : object
$attrs : array<string|int, mixed>
$texte : string

info_paquet_genie()

Genie : plusieurs declarations possibles pour les crons

info_paquet_genie(object $phraseur, array<string|int, mixed> $attrs, string $texte) : mixed
Parameters
$phraseur : object
$attrs : array<string|int, mixed>
$texte : string

plugins_installer_dist()

Installe ou retire un plugin

plugins_installer_dist(string $plug, string $action[, string $dir_type = '_DIR_PLUGINS' ]) : array<string|int, mixed>|bool

Permet d'installer ou retirer un plugin en incluant les fichiers associés et en lançant les fonctions spécifiques.

  1. d'abord sur l'argument test,
  2. ensuite sur l'action demandée si le test repond false
  3. enfin sur l'argument test à nouveau.

L'index install_test du tableau résultat est un tableau formé :

  • du résultat 3
  • des echo de l'étape 2
Parameters
$plug : string

Nom du plugin

$action : string

Nom de l'action (install|uninstall)

$dir_type : string = '_DIR_PLUGINS'

Répertoire du plugin

Tags
note

La fonction quitte (retourne false) si le plugin n'a pas de version d'installation définie (information schema dans le paquet.xml)

used-by
action_desinstaller_plugin_dist()
used-by
plugin_installes_meta()
Return values
array<string|int, mixed>|bool
  • False si le plugin n'a pas d'installation,
  • true si déjà installé,
  • le tableau de get_infos sinon

spip_plugin_install()

Fonction standard utilisée par defaut pour install/desinstall

spip_plugin_install(string $action, array<string|int, mixed> $infos, string $version_cible) : bool|void
Parameters
$action : string

Nom de l'action (install|uninstall)

$infos : array<string|int, mixed>

Tableau des informations du XML du plugin complété par le nom et la table meta

$version_cible : string

Référence de la version du schéma de données cible

Return values
bool|void

liste_plugin_actifs()

Retourne un tableau des plugins activés sur le site

liste_plugin_actifs() : array<string|int, mixed>

Retourne la meta plugin désérialisée. Chaque élément du tableau est lui-même un tableau contenant les détails du plugin en question : répertoire et version.

Tags
note

Si le contenu de la meta n’est pas un tableau, cette fonction transforme l’ancien format en tableau sérialisé pour être conforme au nouveau fonctionnement (SPIP >= 1.9.2)

used-by
filtre_info_plugin_dist()

pour connaître les informations affichables

used-by
liste_chemin_plugin_actifs()
Return values
array<string|int, mixed>

Tableau des plugins actifs

plugins_verifie_conformite_dist()

plugins_verifie_conformite_dist(mixed $plug, mixed &$arbre[, mixed $dir_plugins = _DIR_PLUGINS ]) : mixed
Parameters
$plug : mixed
$arbre : mixed
$dir_plugins : mixed = _DIR_PLUGINS

affiche_boutons_admin()

Ajoute les boutons d'administration de la page s'ils n'y sont pas déjà

affiche_boutons_admin(string $contenu) : string

Insère la feuille de style selon les normes, dans le <head> puis les boutons.

Feuilles de style admin : d'abord la CSS officielle, puis la perso

Parameters
$contenu : string

Contenu HTML de la page qui va être envoyée au navigateur

Tags
used-by
f_admin()
Return values
string

Contenu HTML, avec boutons d'administrations et sa CSS

securiser_redirect_action()

securiser_redirect_action(string $redirect) : string
Parameters
$redirect : string
Return values
string

refuser_traiter_formulaire_ajax()

refuser_traiter_formulaire_ajax() : mixed

traiter_appels_inclusions_ajax()

traiter_appels_inclusions_ajax() : mixed

traiter_formulaires_dynamiques()

traiter_formulaires_dynamiques([mixed $get = false ]) : mixed
Parameters
$get : mixed = false

assembler()

assembler(mixed $fond[, string $connect = '' ]) : mixed
Parameters
$fond : mixed
$connect : string = ''

calculer_contexte()

Calcul le contexte de la page

calculer_contexte() : array<string|int, mixed>
Tags
uses
_CONTEXTE_IGNORE_LISTE_VARIABLES
see
nettoyer_uri_var()

lors du calcul d'une page spip etablit le contexte a partir des variables $_GET et $POST, purgees des fausses variables var*

Note : pour hacker le contexte depuis le fichier d'appel (page.php), il est recommande de modifier $_GET['toto'] (meme si la page est appelee avec la methode POST).

Return values
array<string|int, mixed>

Un tableau du contexte de la page

calculer_contexte_implicite()

Calculer le contexte implicite, qui n'apparait pas dans le ENV d'un cache mais est utilise pour distinguer deux caches differents

calculer_contexte_implicite() : array<string|int, mixed>
Tags
staticvar

string $notes

Return values
array<string|int, mixed>

auto_content_type()

auto_content_type(mixed $page) : mixed
Parameters
$page : mixed

inclure_page()

inclure_page(mixed $fond, mixed $contexte[, string $connect = '' ]) : mixed
Parameters
$fond : mixed
$contexte : mixed
$connect : string = ''

public_produire_page_dist()

Produire la page et la mettre en cache lorsque c'est necessaire

public_produire_page_dist(string $fond, array<string|int, mixed> $contexte, int $use_cache, string $cache_key, array<string|int, mixed> $contexte_cache, array<string|int, mixed> &$page, int &$lastinclude[, string $connect = '' ]) : array<string|int, mixed>
Parameters
$fond : string
$contexte : array<string|int, mixed>
$use_cache : int
$cache_key : string
$contexte_cache : array<string|int, mixed>
$page : array<string|int, mixed>
$lastinclude : int
$connect : string = ''
Return values
array<string|int, mixed>

inserer_balise_dynamique()

inserer_balise_dynamique(mixed $contexte_exec, mixed $contexte_compil) : mixed
Parameters
$contexte_exec : mixed
$contexte_compil : mixed

inclure_balise_dynamique()

Inclusion de balise dynamique Attention, un appel explicite a cette fonction suppose certains include

inclure_balise_dynamique(string|array<string|int, mixed> $texte[, bool $echo = true ][, array<string|int, mixed> $contexte_compil = [] ]) : string|void
Parameters
$texte : string|array<string|int, mixed>
$echo : bool = true

Faut-il faire echo ou return

$contexte_compil : array<string|int, mixed> = []

contexte de la compilation

Return values
string|void

message_page_indisponible()

message_page_indisponible(mixed $page, mixed $contexte) : mixed
Parameters
$page : mixed
$contexte : mixed

arguments_balise_dyn_depuis_modele()

gerer le flag qui permet de reperer qu'une balise dynamique a ete inseree depuis un modele utilisee dans les #FORMULAIRE_xx

arguments_balise_dyn_depuis_modele(string|null $arg[, string $operation = 'set' ]) : mixed
Parameters
$arg : string|null
$operation : string = 'set'

creer_contexte_de_modele()

creer_contexte_de_modele(mixed $args) : mixed
Parameters
$args : mixed

styliser_modele()

Router eventuellement un modele vers un autre * le modele doit etre declare dans la liste 'modeles' d'une table objet * il faut avoir un routeur de modele declare pour le meme objet

styliser_modele(string $modele, int $id[, null|array<string|int, mixed> $contexte = null ]) : string
Parameters
$modele : string
$id : int
$contexte : null|array<string|int, mixed> = null

contexte eventuel : attention sa presence n'est pas garantie et il ne doit etre utilise que pour trouver le id_xx si pas de $id fourni (cas appel depuis styliser)

Return values
string

inclure_modele()

Calcule le modele et retourne la mini-page ainsi calculee

inclure_modele(string $type, int $id, array<string|int, mixed> $params, array<string|int, mixed> $lien[, string $connect = '' ][, array<string|int, mixed> $env = [] ]) : string|false
Parameters
$type : string

Nom du modele

$id : int
$params : array<string|int, mixed>

Paramètres du modèle

$lien : array<string|int, mixed>

Informations du lien entourant l'appel du modèle en base de données

$connect : string = ''
$env : array<string|int, mixed> = []
Return values
string|false

spip_securise_valeur_env_modele()

Sanitizer une valeur venant de _request() et passée à un modèle : on laisse passer les null, bool et numeriques (id et pagination), les @+nombre (pagination indirecte) ou sinon le \w + espace et tirets uniquement, pour les tris/sens tri etc mais rien de compliqué suceptible d'être interprété

spip_securise_valeur_env_modele( $valeur) : array<string|int, mixed>|float|int|mixed|string|array<string|int, string>|null
Parameters
$valeur :
Return values
array<string|int, mixed>|float|int|mixed|string|array<string|int, string>|null

evaluer_fond()

evaluer_fond(mixed $fond[, mixed $contexte = [] ][, string $connect = '' ]) : mixed
Parameters
$fond : mixed
$contexte : mixed = []
$connect : string = ''

page_base_href()

page_base_href(mixed &$texte) : mixed
Parameters
$texte : mixed

envoyer_entetes()

Envoyer les entetes (headers)

envoyer_entetes(mixed $entetes) : mixed

Ceux spécifiques à SPIP commencent par X-Spip

Parameters
$entetes : mixed

interprete_argument_balise()

Retourne le code PHP d'un argument de balise s'il est présent

interprete_argument_balise(int $n, Champ $p) : string|null
Parameters
$n : int

Numéro de l'argument

$p : Champ

Pile au niveau de la balise

Tags
uses
calculer_liste()
example
// Retourne le premier argument de la balise
// #BALISE{premier,deuxieme}
$arg = interprete_argument_balise(1,$p);
Return values
string|null

Code PHP si cet argument est présent, sinon null

balise_NOM_SITE_SPIP_dist()

Compile la balise `#NOM_SITE_SPIP` retournant le nom du site

balise_NOM_SITE_SPIP_dist(Champ $p) : Champ
Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
link
https://www.spip.net/4622
Return values
Champ

Pile complétée par le code à générer

balise_EMAIL_WEBMASTER_dist()

Compile la balise `#EMAIL_WEBMASTER` retournant l'adresse courriel du webmestre

balise_EMAIL_WEBMASTER_dist(Champ $p) : Champ
Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
link
https://www.spip.net/4586
Return values
Champ

Pile complétée par le code à générer

balise_DESCRIPTIF_SITE_SPIP_dist()

Compile la balise `#DESCRIPTIF_SITE_SPIP` qui retourne le descriptif du site !

balise_DESCRIPTIF_SITE_SPIP_dist(Champ $p) : Champ
Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
link
https://www.spip.net/4338
Return values
Champ

Pile complétée par le code à générer

balise_CHARSET_dist()

Compile la balise `#CHARSET` qui retourne le nom du jeu de caractères utilisé par le site tel que `utf-8`

balise_CHARSET_dist(Champ $p) : Champ
Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
link
https://www.spip.net/4331
example
<meta http-equiv="Content-Type" content="text/html; charset=#CHARSET" />
Return values
Champ

Pile complétée par le code à générer

balise_LANG_LEFT_dist()

Compile la balise `#LANG_LEFT` retournant 'left' si la langue s'écrit de gauche à droite, sinon 'right'

balise_LANG_LEFT_dist(Champ $p) : Champ
Parameters
$p : Champ

Pile au niveau de la balise

Tags
note

Peut servir à l'écriture de code CSS dans un squelette, mais pour inclure un fichier css, il vaut mieux utiliser le filtre direction_css si on le souhaite sensible à la langue utilisé.

balise
link
https://www.spip.net/4625
see
lang_dir()
see
balise_LANG_RIGHT_dist()
see
balise_LANG_DIR_dist()
see
direction_css()
Return values
Champ

Pile complétée par le code à générer

balise_LANG_DIR_dist()

Compile la balise `#LANG_DIR` retournant 'ltr' si la langue s'écrit de gauche à droite, sinon 'rtl'

balise_LANG_DIR_dist(Champ $p) : Champ
Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
link
https://www.spip.net/4625
see
lang_dir()
see
balise_LANG_LEFT_dist()
see
balise_LANG_RIGHT_dist()
example
<html dir="#LANG_DIR" lang="#LANG"
    xmlns="http://www.w3.org/1999/xhtml"
    xml:lang="#LANG" class="[(#LANG_DIR)][ (#LANG)] no-js">
Return values
Champ

Pile complétée par le code à générer

balise_PUCE_dist()

Compile la balise `#PUCE` affichant une puce

balise_PUCE_dist(Champ $p) : Champ
Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
link
https://www.spip.net/4628
see
definir_puce()
Return values
Champ

Pile complétée par le code à générer

balise_DATE_dist()

Compile la balise `#DATE` qui retourne la date de mise en ligne

balise_DATE_dist(Champ $p) : Champ

Cette balise retourne soit le champ date d'une table si elle est utilisée dans une boucle, sinon la date de calcul du squelette.

Parameters
$p : Champ

Pile au niveau de la balise.

Tags
balise
link

Balise DATE

link

La gestion des dates

example
<td>[(#DATE|affdate_jourcourt)]</td>
Return values
Champ

Pile completée du code PHP d'exécution de la balise

balise_DOSSIER_SQUELETTE_dist()

Compile la balise `#DOSSIER_SQUELETTE` retournant le chemin vers le répertoire du fichier squelette dans lequel elle est appelee (comme __DIR__ en php)

balise_DOSSIER_SQUELETTE_dist(Champ $p) : Champ
Parameters
$p : Champ

Pile au niveau de la balise.

Tags
balise
link
https://www.spip.net/4627
Return values
Champ

Pile completée du code PHP d'exécution de la balise

balise_SQUELETTE_dist()

Compile la balise `#SQUELETTE` retournant le chemin du squelette courant

balise_SQUELETTE_dist(Champ $p) : Champ
Parameters
$p : Champ

Pile au niveau de la balise.

Tags
balise
link
https://www.spip.net/4027
Return values
Champ

Pile completée du code PHP d'exécution de la balise

balise_SPIP_VERSION_dist()

Compile la balise `#SPIP_VERSION` qui affiche la version de SPIP

balise_SPIP_VERSION_dist(Champ $p) : Champ
Parameters
$p : Champ

Pile au niveau de la balise.

Tags
balise
see
spip_version()
example
[<meta name="generator" content="SPIP (#SPIP_VERSION|header_silencieux)" />]
Return values
Champ

Pile completée du code PHP d'exécution de la balise

balise_NOM_SITE_dist()

Compile la balise `#NOM_SITE` qui affiche le nom du site.

balise_NOM_SITE_dist(Champ $p) : Champ

Affiche le nom du site ou sinon l'URL ou le titre de l'objet Utiliser #NOM_SITE* pour avoir le nom du site ou rien.

Cette balise interroge les colonnes nom_site ou url_site dans la boucle la plus proche.

Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
see
calculer_url()
example
<a href="#URL_SITE">#NOM_SITE</a>
Return values
Champ

Pile complétée par le code à générer

balise_NOTES_dist()

Compile la balise `#NOTE` qui affiche les notes de bas de page

balise_NOTES_dist(Champ $p) : Champ
Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
link
https://www.spip.net/3964
see
calculer_notes()
Return values
Champ

Pile complétée par le code à générer

balise_RECHERCHE_dist()

Compile la balise `#RECHERCHE` qui retourne le terme de recherche demandé

balise_RECHERCHE_dist(Champ $p) : Champ

Retourne un terme demandé en recherche, en le prenant dans _request() sous la clé recherche.

Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
example
<h3>Recherche de : #RECHERCHE</h3>
Return values
Champ

Pile complétée par le code à générer

balise_COMPTEUR_BOUCLE_dist()

Compile la balise `#COMPTEUR_BOUCLE` qui retourne le numéro de l’itération actuelle de la boucle

balise_COMPTEUR_BOUCLE_dist(Champ $p) : Champ|null
Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
link
https://www.spip.net/4333
see
balise_TOTAL_BOUCLE_dist()
Return values
Champ|null

Pile complétée par le code à générer

balise_POINTS_dist()

Compile la balise `#POINTS` qui affiche la pertinence des résultats

balise_POINTS_dist(Champ $p) : Champ

Retourne le calcul points réalisé par le critère recherche. Cette balise nécessite donc la présence de ce critère.

Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
link

boucles et balises de recherche

see
critere_recherche_dist()
Return values
Champ

Pile complétée par le code à générer

balise_POPULARITE_MAX_dist()

Compile la balise `#POPULARITE_MAX` qui affiche la popularité maximum parmis les popularités des articles

balise_POPULARITE_MAX_dist(Champ $p) : Champ

Cela correspond à la popularité quotidienne de l'article

Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
link

La popularité

see
balise_POPULARITE_ABSOLUE_dist()
see
balise_POPULARITE_dist()
see
balise_POPULARITE_SITE_dist()
Return values
Champ

Pile complétée par le code à générer

balise_VALEUR_dist()

Compile la balise `#VALEUR` retournant le champ `valeur`

balise_VALEUR_dist(Champ $p) : Champ

Utile dans une boucle DATA pour retourner une valeur.

Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
link

#CLE et #VALEUR

see
table_valeur()
example
#VALEUR renvoie le champ valeur
#VALEUR{x} renvoie #VALEUR|table_valeur{x},
   équivalent à #X (si X n'est pas une balise spécifique à SPIP)
#VALEUR{a/b} renvoie #VALEUR|table_valeur{a/b}
Return values
Champ

Pile complétée par le code à générer

balise_EXPOSE_dist()

Compile la balise `#EXPOSE` qui met en évidence l'élément sur lequel la page se trouve

balise_EXPOSE_dist(Champ $p) : Champ

Expose dans une boucle l'élément de la page sur laquelle on se trouve, en retournant on si l'élément correspond à la page, une chaîne vide sinon.

On peut passer les paramètres à faire retourner par la balise.

Parameters
$p : Champ

Pile au niveau de la balise

Tags
example
<a href="#URL_ARTICLE"[ class="(#EXPOSE)"]>
<a href="#URL_ARTICLE"[ class="(#EXPOSE{actif})"]>
<a href="#URL_ARTICLE"[ class="(#EXPOSE{on,off})"]>
balise
link

Exposer un article

uses
calculer_balise_expose()
Return values
Champ

Pile complétée par le code à générer

calculer_balise_expose()

Calcul de la balise expose

calculer_balise_expose(Champ $p, string $on, string $off) : Champ
Parameters
$p : Champ

Pile au niveau de la balise

$on : string

texte à afficher si l'élément est exposé (code à écrire tel que "'on'")

$off : string

texte à afficher si l'élément n'est pas exposé (code à écrire tel que "''")

Tags
see
calcul_exposer()
used-by
balise_EXPOSE_dist()
Return values
Champ

Pile complétée par le code à générer

balise_INTRODUCTION_dist()

Compile la balise `#INTRODUCTION`

balise_INTRODUCTION_dist(Champ $p) : Champ

Retourne une introduction d'un objet éditorial, c'est à dire les 600 premiers caractères environ du champ 'texte' de l'objet ou le contenu indiqué entre <intro> et </intro> de ce même champ.

Pour les articles, l'introduction utilisée est celle du champ descriptif s'il est renseigné, sinon il est pris dans les champs chapo et texte et est par défaut limité à 500 caractères.

Pour les rubriques, l'introduction utilisée est celle du champ descriptif s'il est renseigné, sinon du champ texte.

La balise accèpte 1 paramètre indiquant la longueur en nombre de caractères de l'introduction.

Parameters
$p : Champ

Pile au niveau de la balise

Tags
see
filtre_introduction_dist()
example
#INTRODUCTION : coupe au nombre par défaut, suite par défaut
#INTRODUCTION{300} : coupe à 300, suite par défaut
#INTRODUCTION{300, ...} : coupe à 300, suite '...'
#INTRODUCTION{...} : coupe au nombre par défaut, suite '...'
balise
link
http://www.spip.net/@introduction
uses
generer_objet_introduction()
Return values
Champ

Pile complétée par le code à générer

balise_LANG_dist()

Compile la balise `#LANG` qui affiche la langue de l'objet (ou d'une boucle supérieure), et à defaut la langue courante

balise_LANG_dist(Champ $p) : Champ

La langue courante est celle du site ou celle qui a été passée dans l'URL par le visiteur. L'étoile #LANG* n'affiche rien si aucune langue n'est trouvée dans le SQL ou le contexte.

Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
link
https://www.spip.net/3864
Return values
Champ

Pile complétée par le code à générer

balise_LESAUTEURS_dist()

Compile la balise `#LESAUTEURS` chargée d'afficher la liste des auteurs d'un objet

balise_LESAUTEURS_dist(Champ $p) : Champ
  • Soit le champ lesauteurs existe dans la table et à ce moment là, la balise retourne son contenu,
  • soit la balise appelle le modele lesauteurs.html en lui passant le couple objet et id_objet dans son environnement.
Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
link

Description de la balise

link

Description de la boucle ARTICLES

link

Description de la boucle SYNDIC_ARTICLES

Return values
Champ

Pile complétée par le code à générer

balise_RANG_dist()

Compile la balise `#RANG` chargée d'afficher le numéro de l'objet

balise_RANG_dist(Champ $p) : Champ

Affiche le « numero de l'objet ». Soit 1 quand on a un titre 1. Premier article.

Ceci est transitoire afin de préparer une migration vers un vrai système de tri des articles dans une rubrique (et plus si affinités). La balise permet d'extraire le numero masqué par le filtre supprimer_numero.

La balise recupère le champ declaré dans la définition table_titre de l'objet, ou à defaut du champ titre

Si un champ rang existe, il est pris en priorité.

Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
link
https://www.spip.net/5495
Return values
Champ

Pile complétée par le code à générer

balise_POPULARITE_dist()

Compile la balise `#POPULARITE` qui affiche la popularité relative.

balise_POPULARITE_dist(Champ $p) : Champ

C'est à dire le pourcentage de la fréquentation de l'article (la popularité absolue) par rapport à la popularité maximum.

Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
link

La popularité

see
balise_POPULARITE_ABSOLUE_dist()
see
balise_POPULARITE_MAX_dist()
see
balise_POPULARITE_SITE_dist()
Return values
Champ

Pile complétée par le code à générer

balise_PAGINATION_dist()

Compile la balise `#PAGINATION` chargée d'afficher une pagination

balise_PAGINATION_dist(Champ $p[, string $liste = 'true' ]) : Champ

Elle charge le modèle pagination.html (par défaut), mais un paramètre permet d'indiquer d'autres modèles. #PAGINATION{nom} utilisera le modèle pagination_nom.html.

Cette balise nécessite le critère pagination sur la boucle où elle est utilisée.

Parameters
$p : Champ

Pile au niveau de la balise

$liste : string = 'true'

Afficher ou non les liens de pagination (variable de type string car code à faire écrire au compilateur) :

  • true pour les afficher
  • false pour afficher uniquement l'ancre.
Tags
balise
link

Le système de pagination

see
filtre_pagination_dist()
see
critere_pagination_dist()
see
balise_ANCRE_PAGINATION_dist()
example
[<nav role="navigation" class="pagination">(#PAGINATION{prive})</nav>]
Return values
Champ

Pile complétée par le code à générer

balise_ANCRE_PAGINATION_dist()

Compile la balise `#ANCRE_PAGINATION` chargée d'afficher l'ancre de la pagination

balise_ANCRE_PAGINATION_dist(Champ $p) : Champ

Cette ancre peut ainsi être placée au-dessus la liste des éléments de la boucle alors qu'on mettra les liens de pagination en-dessous de cette liste paginée.

Cette balise nécessite le critère pagination sur la boucle où elle est utilisée.

Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
link

Le système de pagination

link

Balise ANCRE_PAGINATION

see
critere_pagination_dist()
see
balise_PAGINATION_dist()
Return values
Champ

Pile complétée par le code à générer

balise_GRAND_TOTAL_dist()

Compile la balise `#GRAND_TOTAL` qui retourne le nombre total de résultats d'une boucle

balise_GRAND_TOTAL_dist(Champ $p) : Champ

Cette balise set équivalente à #TOTAL_BOUCLE sauf pour les boucles paginées. Dans ce cas elle indique le nombre total d'éléments répondant aux critères hors pagination.

Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
see
balise_GRAND_TOTAL_dist()
Return values
Champ

Pile complétée par le code à générer

balise_SELF_dist()

Compile la balise `#SELF` qui retourne l’URL de la page appelée.

balise_SELF_dist(Champ $p) : Champ

Cette URL est nettoyée des variables propres à l’exécution de SPIP tel que var_mode.

Parameters
$p : Champ

Pile au niveau de la balise

Tags
note

Attention dans un INCLURE() ou une balise dynamique, on n'a pas le droit de mettre en cache #SELF car il peut correspondre à une autre page (attaque XSS) (Dans ce cas faire <INCLURE{self=#SELF}> pour différencier les caches.)

balise
link
https://www.spip.net/4574
example
<a href="[(#SELF|parametre_url{id_mot,#ID_MOT})]">...
Return values
Champ

Pile complétée par le code à générer

balise_CHEMIN_dist()

Compile la balise `#CHEMIN` qui cherche un fichier dans les chemins connus de SPIP et retourne son chemin complet depuis la racine

balise_CHEMIN_dist(Champ $p) : Champ

Signature : #CHEMIN{chemin/vers/fichier.ext}

Retourne une chaîne vide si le fichier n'est pas trouvé.

Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
link
https://www.spip.net/4332
see
find_in_path()

Recherche de chemin

example
[<script type="text/javascript" src="(#CHEMIN{javascript/jquery.flot.js})"></script>]
[<link rel="stylesheet" href="(#CHEMIN{css/perso.css}|direction_css)" type="text/css" />]
Return values
Champ

Pile complétée par le code à générer

balise_CHEMIN_IMAGE_dist()

Compile la balise `#CHEMIN_IMAGE` qui cherche une image dans le thème de l'espace privé utilisé par SPIP et retourne son chemin complet depuis la racine

balise_CHEMIN_IMAGE_dist(Champ $p) : Champ

Signature : #CHEMIN_IMAGE{image.png}

Retourne une chaîne vide si le fichier n'est pas trouvé.

Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
see
chemin_image()
example
#CHEMIN_IMAGE{article-24.png}
Return values
Champ

Pile complétée par le code à générer

balise_ENV_dist()

Compile la balise `#ENV` qui permet de récupérer le contexte d'environnement transmis à un squelette.

balise_ENV_dist(Champ $p[, array<string|int, mixed> $src = null ]) : Champ

La syntaxe #ENV{toto, valeur par defaut} renverra valeur par defaut si $toto est vide.

La recherche de la clé s'appuyant sur la fonction table_valeur il est possible de demander un sous élément d'un tableau : #ENV{toto/sous/element, valeur par defaut} retournera l'équivalent de #ENV{toto}|table_valeur{sous/element} c'est-à-dire en quelque sorte $env['toto']['sous']['element'] s'il existe, sinon la valeur par défaut.

Si le tableau est vide on renvoie '' (utile pour #SESSION)

Enfin, la balise utilisée seule #ENV retourne le tableau complet de l'environnement. À noter que ce tableau est retourné sérialisé.

En standard est appliqué le filtre entites_html, mais si l'étoile est utilisée pour désactiver les filtres par défaut, par exemple avec [(#ENV*{toto})] , il faut s'assurer de la sécurité anti-javascript, par exemple en filtrant avec safehtml : [(#ENV*{toto}|safehtml)]

Parameters
$p : Champ

Pile ; arbre de syntaxe abstrait positionné au niveau de la balise.

$src : array<string|int, mixed> = null

Tableau dans lequel chercher la clé demandée en paramètre de la balise. Par defaut prend dans le contexte du squelette.

Return values
Champ

Pile completée du code PHP d'exécution de la balise

balise_CONFIG_dist()

Compile la balise `#CONFIG` qui retourne une valeur de configuration

balise_CONFIG_dist(Champ $p) : Champ

Cette balise appelle la fonction lire_config() pour obtenir les configurations du site.

Par exemple #CONFIG{gerer_trad} donne 'oui ou 'non' selon le réglage.

Le 3ème argument permet de contrôler la sérialisation du résultat (mais ne sert que pour le dépot meta) qui doit parfois désérialiser, par exemple avec |in_array{#CONFIG{toto,#ARRAY,1}}. Ceci n'affecte pas d'autres dépots et |in_array{#CONFIG{toto/,#ARRAY}} sera équivalent.

Òn peut appeler d'autres tables que spip_meta avec un #CONFIG{/infos/champ,defaut} qui lit la valeur de champ dans une table des meta qui serait spip_infos

Parameters
$p : Champ

Pile au niveau de la balise.

Tags
balise
link
https://www.spip.net/4335
Return values
Champ

Pile completée du code PHP d'exécution de la balise

balise_CONNECT_dist()

Compile la balise `#CONNECT` qui retourne le nom du connecteur de base de données

balise_CONNECT_dist(Champ $p) : Champ

Retourne le nom du connecteur de base de données utilisé (le nom du fichier config/xx.php sans l'extension, utilisé pour calculer les données du squelette).

Retourne NULL si le connecteur utilisé est celui par défaut de SPIP (connect.php), sinon retourne son nom.

Parameters
$p : Champ

Pile au niveau de la balise.

Tags
balise
Return values
Champ

Pile completée du code PHP d'exécution de la balise

balise_SESSION_dist()

Compile la balise `#SESSION` qui permet d’accéder aux informations liées au visiteur authentifié et de différencier automatiquement le cache en fonction du visiteur.

balise_SESSION_dist(Champ $p) : Champ

Cette balise est un tableau des données du visiteur (nom, email etc). Si elle est invoquée, elle lève un drapeau dans le fichier cache, qui permet à public/cacher de créer un cache différent par visiteur

Parameters
$p : Champ

Pile au niveau de la balise.

Tags
balise
link
https://www.spip.net/3979
see
balise_AUTORISER_dist()
see
balise_SESSION_SET_dist()
example
#SESSION{nom}
Return values
Champ

Pile completée du code PHP d'exécution de la balise

balise_SESSION_SET_dist()

Compile la balise `#SESSION_SET` qui d’insérer dans la session des données supplémentaires

balise_SESSION_SET_dist(Champ $p) : Champ
Parameters
$p : Champ

Pile au niveau de la balise.

Tags
balise
link
https://www.spip.net/3984
see
balise_AUTORISER_dist()
see
balise_SESSION_SET_dist()
example
#SESSION_SET{x,y} ajoute x=y dans la session du visiteur
Return values
Champ

Pile completée du code PHP d'exécution de la balise

balise_EVAL_dist()

Compile la balise `#EVAL` qui évalue un code PHP

balise_EVAL_dist(Champ $p) : Champ

À utiliser avec précautions !

Parameters
$p : Champ

Pile au niveau de la balise.

Tags
balise
link
https://www.spip.net/4587
example
#EVAL{6+9}
#EVAL{'date("Y-m-d")'}
#EVAL{$_SERVER['REQUEST_URI']}
#EVAL{'str_replace("r","z", "roger")'}  (attention les "'" sont interdits)
note

#EVAL{code} produit eval('return code;') mais si le code est une expression sans balise, on se dispense de passer par une construction si compliquée, et le code est passé tel quel (entre parenthèses, et protégé par interdire_scripts)

Return values
Champ

Pile completée du code PHP d'exécution de la balise

balise_CHAMP_SQL_dist()

Compile la balise `#CHAMP_SQL` qui renvoie la valeur d'un champ SQL

balise_CHAMP_SQL_dist(Champ $p) : Champ

Signature : #CHAMP_SQL{champ}

Cette balise permet de récupérer par exemple un champ notes dans une table SQL externe (impossible avec la balise #NOTES qui est une balise calculée).

Ne permet pas de passer une expression comme argument, qui ne peut être qu'un texte statique !

Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
link
https://www.spip.net/4041
see
champ_sql()
example
#CHAMP_SQL{notes}
Return values
Champ

Pile complétée par le code à générer

balise_VAL_dist()

Compile la balise `#VAL` qui retourne simplement le premier argument qui lui est transmis

balise_VAL_dist(Champ $p) : Champ

Cela permet d'appliquer un filtre à une chaîne de caractère

Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
link
https://www.spip.net/4026
example
#VAL retourne ''
#VAL{x} retourne 'x'
#VAL{1,2} renvoie '1' (2 est considéré comme un autre paramètre)
#VAL{'1,2'} renvoie '1,2'
[(#VAL{a_suivre}|bouton_spip_rss)]
Return values
Champ

Pile complétée par le code à générer

balise_REM_dist()

Compile la balise `#REM` servant à commenter du texte

balise_REM_dist(Champ $p) : Champ

Retourne toujours une chaîne vide.

Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
link
https://www.spip.net/4578
example
[(#REM)
  Ceci est une remarque ou un commentaire,
  non affiché dans le code généré
]
note

La balise #REM n'empêche pas l'exécution des balises SPIP contenues dedans (elle ne sert pas à commenter du code pour empêcher son exécution).

Return values
Champ

Pile complétée par le code à générer

balise_NULL_dist()

Une balise #NULL quand on a besoin de passer un argument null sur l'appel d'un filtre ou formulaire (evite un #EVAL{null})

balise_NULL_dist(Champ $p) : mixed
Parameters
$p : Champ

balise_HTTP_HEADER_dist()

Compile la balise `#HTTP_HEADER` envoyant des entêtes de retour HTTP

balise_HTTP_HEADER_dist(Champ $p) : Champ

Doit être placée en tête de fichier et ne fonctionne pas dans une inclusion.

Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
link
https://www.spip.net/4631
example
#HTTP_HEADER{Content-Type: text/csv; charset=#CHARSET}
Return values
Champ

Pile complétée par le code à générer

balise_FILTRE_dist()

Compile la balise `#FILTRE` qui exécute un filtre à l'ensemble du squelette une fois calculé.

balise_FILTRE_dist(Champ $p) : Champ|null

Le filtrage se fait au niveau du squelette, sans s'appliquer aux <INCLURE>. Plusieurs filtres peuvent être indiqués, séparés par des barres verticales |

Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
link
https://www.spip.net/4894
example
#FILTRE{compacte_head}
#FILTRE{supprimer_tags|filtrer_entites|trim}
Return values
Champ|null

Pile complétée par le code à générer

balise_CACHE_dist()

Compile la balise `#CACHE` definissant la durée de validité du cache du squelette

balise_CACHE_dist(Champ $p) : Champ

Signature : #CACHE{duree[,type]}

Le premier argument est la durée en seconde du cache. Le second (par défaut statique) indique le type de cache :

  • cache-client autorise gestion du IF_MODIFIED_SINCE
  • statique ne respecte pas l'invalidation par modif de la base (mais s'invalide tout de même à l'expiration du delai)
Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
see

ecrire/public/cacher.php

link
https://www.spip.net/4330
example
#CACHE{24*3600}
#CACHE{24*3600, cache-client}
#CACHE{0} pas de cache
note

En absence de cette balise la durée est du cache est donné par la constante _DUREE_CACHE_DEFAUT

Return values
Champ

Pile complétée par le code à générer

balise_INSERT_HEAD_dist()

Compile la balise `#INSERT_HEAD` permettant d'insérer du contenu dans le `<head>` d'une page HTML

balise_INSERT_HEAD_dist(Champ $p) : Champ

La balise permet aux plugins d'insérer des styles, js ou autre dans l'entête sans modification du squelette. Les css doivent être inserées de préférence par #INSERT_HEAD_CSS pour en faciliter la surcharge.

On insère ici aussi un morceau de PHP qui verifiera à l'exécution que le pipeline insert_head_css a bien été vu et dans le cas contraire l'appelera. Ceal permet de ne pas oublier les css de #INSERT_HEAD_CSS même si cette balise n'est pas presente.

Il faut mettre ce php avant le insert_head car le compresseur y mets ensuite un php du meme type pour collecter CSS et JS, et on ne veut pas qu'il rate les css insérées en fallback par insert_head_css_conditionnel.

Parameters
$p : Champ

Pile au niveau de la balise

Tags
link
https://www.spip.net/4629
see
balise_INSERT_HEAD_CSS_dist()
Return values
Champ

Pile complétée par le code à générer

balise_INSERT_HEAD_CSS_dist()

Compile la balise `#INSERT_HEAD_CSS` homologue de `#INSERT_HEAD` pour les CSS

balise_INSERT_HEAD_CSS_dist(Champ $p) : Champ

Et par extension pour le JS inline qui doit préférentiellement être inséré avant les CSS car bloquant sinon.

Parameters
$p : Champ

Pile au niveau de la balise

Tags
link
https://www.spip.net/4605
see
balise_INSERT_HEAD_dist()
Return values
Champ

Pile complétée par le code à générer

balise_INCLUDE_dist()

Compile la balise `#INCLUDE` alias de `#INCLURE`

balise_INCLUDE_dist(Champ $p) : Champ
Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
see
balise_INCLURE_dist()
Return values
Champ

Pile complétée par le code à générer

balise_INCLURE_dist()

Compile la balise `#INCLURE` qui inclut un résultat de squelette

balise_INCLURE_dist(Champ $p) : Champ

Signature : [(#INCLURE{fond=nom_du_squelette, argument, argument=xx})]

L'argument env permet de transmettre tout l'environnement du squelette en cours au squelette inclus.

On parle d’inclusion « statique » car le résultat de compilation est ajouté au squelette en cours, dans le même fichier de cache. Cette balise est donc différente d’une inclusion « dynamique » avec <INCLURE.../> qui, elle, crée un fichier de cache séparé (avec une durée de cache qui lui est propre).

L'inclusion est realisée au calcul du squelette, pas au service ainsi le produit du squelette peut être utilisé en entrée de filtres à suivre. On peut faire un #INCLURE{fichier} sans squelette (Incompatible avec les balises dynamiques).

Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
example
[(#INCLURE{fond=inclure/documents,id_article, env})]
Return values
Champ

Pile complétée par le code à générer

balise_MODELE_dist()

Compile la balise `#MODELE` qui inclut un résultat de squelette de modèle

balise_MODELE_dist(Champ $p) : Champ

#MODELE{nom} insère le résultat d’un squelette contenu dans le répertoire modeles/. L’identifiant de la boucle parente est transmis par défaut avec le paramètre id à cette inclusion.

Des arguments supplémentaires peuvent être transmis : [(#MODELE{nom, argument=xx, argument})]

Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
see
balise_INCLURE_dist()
example
#MODELE{article_traductions}
Return values
Champ

Pile complétée par le code à générer

balise_SET_dist()

Compile la balise `#SET` qui affecte une variable locale au squelette

balise_SET_dist(Champ $p) : Champ

Signature : #SET{cle,valeur}

Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
link

Balises #SET et #GET

see
balise_GET_dist()
example
#SET{nb,5}
#GET{nb} // affiche 5
Return values
Champ

Pile complétée par le code à générer

balise_GET_dist()

Compile la balise `#GET` qui récupère une variable locale au squelette

balise_GET_dist(Champ $p) : Champ

Signature : #GET{cle[,defaut]}

La clé peut obtenir des sous clés séparés par des /

Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
link

Balises #SET et #GET

see
balise_SET_dist()
example
#SET{nb,5}
#GET{nb} affiche 5
#GET{nb,3} affiche la valeur de nb, sinon 3

#SET{nb,#ARRAY{boucles,3}}
#GET{nb/boucles} affiche 3, équivalent à #GET{nb}|table_valeur{boucles}
Return values
Champ

Pile complétée par le code à générer

balise_DOUBLONS_dist()

Compile la balise `#DOUBLONS` qui redonne les doublons enregistrés

balise_DOUBLONS_dist(Champ $p) : Champ
  • #DOUBLONS{mots} ou #DOUBLONS{mots,famille} donne l'état des doublons (MOTS) à cet endroit sous forme de tableau d'id_mot comme array(1,2,3,...)
  • #DOUBLONS tout seul donne la liste brute de tous les doublons
  • #DOUBLONS*{mots} donne la chaine brute ,1,2,3,... (changera si la gestion des doublons evolue)
Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
link
https://www.spip.net/4123
Return values
Champ

Pile complétée par le code à générer

balise_PIPELINE_dist()

Compile la balise `#PIPELINE` pour permettre d'insérer des sorties de pipeline dans un squelette

balise_PIPELINE_dist(Champ $p) : Champ
Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
see
pipeline()
example
#PIPELINE{nom}
#PIPELINE{nom,données}
#PIPELINE{boite_infos,#ARRAY{data,'',args,#ARRAY{type,rubrique,id,#ENV{id_rubrique}}}}
Return values
Champ

Pile complétée par le code à générer

balise_EDIT_dist()

Compile la balise `#EDIT` qui ne fait rien dans SPIP

balise_EDIT_dist(Champ $p) : Champ

Cette balise ne retourne rien mais permet d'indiquer, pour certains plugins qui redéfinissent cette balise, le nom du champ SQL (ou le nom d'un contrôleur) correspondant à ce qui est édité. Cela sert particulièrement au plugin Crayons. Ainsi en absence du plugin, la balise est toujours reconnue (mais n'a aucune action).

Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
link
https://www.spip.net/4584
example
[<div class="#EDIT{texte} texte">(#TEXTE)</div>]
Return values
Champ

Pile complétée par le code à générer

balise_TOTAL_UNIQUE_dist()

Compile la balise `#TOTAL_UNIQUE` qui récupère le nombre d'éléments différents affichés par le filtre `unique`

balise_TOTAL_UNIQUE_dist(Champ $p) : Champ
Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
link
https://www.spip.net/4374
see
unique()
example
#TOTAL_UNIQUE affiche le nombre de #BALISE|unique
#TOTAL_UNIQUE{famille} afiche le nombre de #BALISE|unique{famille}
Return values
Champ

Pile complétée par le code à générer

balise_ARRAY_dist()

Compile la balise `#ARRAY` créant un tableau PHP associatif

balise_ARRAY_dist(Champ $p) : Champ

Crée un array PHP à partir d'arguments calculés. Chaque paire d'arguments représente la clé et la valeur du tableau.

Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
link
https://www.spip.net/4009
example
#ARRAY{key1,val1,key2,val2 ...} retourne
array( key1 => val1, key2 => val2, ...)
Return values
Champ

Pile complétée par le code à générer

balise_LISTE_dist()

Compile la balise `#LISTE` qui crée un tableau PHP avec les valeurs, sans préciser les clés

balise_LISTE_dist(Champ $p) : Champ
Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
link
https://www.spip.net/5547
example
#LISTE{a,b,c,d,e}
Return values
Champ

Pile complétée par le code à générer

balise_AUTORISER_dist()

Compile la balise `#AUTORISER` qui teste une autorisation

balise_AUTORISER_dist(Champ $p) : Champ

Appelle la fonction autoriser() avec les mêmes arguments, et renvoie un espace ' ' si OK (l'action est autorisée), sinon une chaine vide '' (l'action n'est pas autorisée).

Cette balise créée un cache par session.

Signature : #AUTORISER{faire[,type[,id[,auteur[,options]]]}

Parameters
$p : Champ

Pile au niveau de la balise

Tags
note

La priorité des opérateurs exige && plutot que AND

balise
link
https://www.spip.net/3896
see
autoriser()
see
sinon_interdire_acces()
example
[(#AUTORISER{modifier,rubrique,#ID_RUBRIQUE}) ... ]
[(#AUTORISER{voir,rubrique,#ID_RUBRIQUE}|sinon_interdire_acces)]
Return values
Champ

Pile complétée par le code à générer

balise_PLUGIN_dist()

Compile la balise `#PLUGIN` qui permet d’afficher les informations d'un plugin actif

balise_PLUGIN_dist(Champ $p) : Champ
Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
see
filtre_info_plugin_dist()
link
https://www.spip.net/4591
example
#PLUGIN Retourne la liste sérialisée des préfixes de plugins actifs
#PLUGIN{prefixe} Renvoie true si le plugin avec ce préfixe est actif
#PLUGIN{prefixe, x} Renvoie l'information x du plugin (s'il est actif)
#PLUGIN{prefixe, tout} Renvoie toutes les informations du plugin (s'il est actif)
Return values
Champ

Pile complétée par le code à générer

balise_AIDER_dist()

Compile la balise `#AIDER` qui permet d’afficher l’icone de l’aide au sein des squelettes.

balise_AIDER_dist(Champ $p) : Champ
Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
see
inc_aide_dist()
link
https://www.spip.net/4733
example
#AIDER{raccourcis}
Return values
Champ

Pile complétée par le code à générer

balise_ACTION_FORMULAIRE()

Compile la balise `#ACTION_FORMULAIRE` qui insère le contexte des formulaires charger / vérifier / traiter avec les hidden de l'URL d'action

balise_ACTION_FORMULAIRE(Champ $p) : Champ

Accèpte 2 arguments optionnels :

  • L'url de l'action (par défaut #ENV{action}
  • Le nom du formulaire (par défaut #ENV{form}
Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
see
form_hidden()
example
<form method='post' action='#ENV{action}'><div>
#ACTION_FORMULAIRE
Return values
Champ

Pile complétée par le code à générer

balise_BOUTON_ACTION_dist()

Compile la balise `#BOUTON_ACTION` qui génère un bouton d'action en post, ajaxable

balise_BOUTON_ACTION_dist(Champ $p) : Champ

Cette balise s'utilise à la place des liens action_auteur, sous la forme #BOUTON_ACTION{libelle[,url[,class[,confirm[,title[,callback]]]]]}

  • libelle : texte du bouton
  • url : URL d’action sécurisée
  • class : Classes à ajouter au bouton, à l'exception de ajax qui est placé sur le formulaire. Pour d'autres classes sur le formulaire, utiliser le filtre ajouter_class
  • confirm : message de confirmation oui/non avant l'action
  • title : attribut title à ajouter au bouton
  • callback : callback js a appeler lors de l'évènement action et avant execution de l'action (ou après confirmation éventuelle si $confirm est non vide). Si la callback renvoie false, elle annule le déclenchement de l'action.
Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
uses
bouton_action()
link
https://www.spip.net/4583
example
[(#AUTORISER{reparer,base}|oui)
   [(#BOUTON_ACTION{
       <:bouton_tenter_recuperation:>,
       #URL_ECRIRE{base_repair},
       "ajax btn_large",
   })]
]
Return values
Champ

Pile complétée par le code à générer

balise_SLOGAN_SITE_SPIP_dist()

Compile la balise `#SLOGAN_SITE_SPIP` qui retourne le slogan du site

balise_SLOGAN_SITE_SPIP_dist(Champ $p) : Champ
Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
example
[<p id="slogan">(#SLOGAN_SITE_SPIP)</p>]
Return values
Champ

Pile complétée par le code à générer

balise_HTML5_dist()

Compile la balise `#HTML5` indiquant si l'espace public peut utiliser du HTML5

balise_HTML5_dist(Champ $p) : Champ

Renvoie ' ' si le webmestre souhaite que SPIP génère du code (X)HTML5 sur le site public, et '' si le code doit être strictement compatible HTML4

Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
uses
html5_permis()
example
[(#HTML5) required="required"]
<input[ (#HTML5|?{type="email",type="text"})] ... />
Return values
Champ

Pile complétée par le code à générer

balise_TRI_dist()

Compile la balise `#TRI` permettant d'afficher un lien de changement d'ordre de tri d'une colonne de la boucle

balise_TRI_dist(Champ $p[, string $liste = 'true' ]) : Champ

La balise #TRI{champ[,libelle]} champ prend > ou < pour afficher le lien de changement de sens croissant ou decroissant (> < indiquent un sens par une flèche)

Parameters
$p : Champ

Pile au niveau de la balise

$liste : string = 'true'

Inutilisé

Tags
balise
example
<th>[(#TRI{titre,<:info_titre:>,ajax})]</th>
Return values
Champ

Pile complétée par le code à générer

balise_SAUTER_dist()

Compile la balise `#SAUTER{n}` qui permet de sauter en avant n resultats dans une boucle

balise_SAUTER_dist(Champ $p) : Champ

La balise modifie le compteur courant de la boucle, mais pas les autres champs qui restent les valeurs de la boucle avant le saut. Il est donc preferable d'utiliser la balise juste avant la fermeture </BOUCLE>

L'argument n doit être supérieur à zéro sinon la balise ne fait rien

Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
Return values
Champ

Pile complétée par le code à générer

balise_PUBLIE_dist()

Compile la balise `#PUBLIE` qui indique si un objet est publié ou non

balise_PUBLIE_dist(Champ $p) : Champ
Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
link
https://www.spip.net/5545
see
objet_test_si_publie()
example
#PUBLIE : porte sur la boucle en cours
[(#PUBLIE{article, 3}|oui) ... ] : pour l'objet indiqué
Return values
Champ

Pile complétée par le code à générer

balise_PRODUIRE_dist()

Compile la balise `#PRODUIRE` qui génère un fichier statique à partir d'un squelette SPIP

balise_PRODUIRE_dist(Champ $p) : Champ

Le format du fichier sera extrait de la pre-extension du squelette (typo.css.html, messcripts.js.html) ou par l'argument format=css ou format=js passé en argument.

S'il n'y a pas de format détectable, on utilise .html, comme pour les squelettes.

La syntaxe de la balise est la même que celle de #INCLURE.

Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
see
balise_INCLURE_dist()
link
https://www.spip.net/5505
example
<link rel="stylesheet" type="text/css" href="#PRODUIRE{fond=css/macss.css,couleur=ffffff}" />
Return values
Champ

Pile complétée par le code à générer

balise_LARGEUR_ECRAN_dist()

Compile la balise `#LARGEUR_ECRAN` qui définit la largeur d'écran dans l'espace privé

balise_LARGEUR_ECRAN_dist(Champ $p) : Champ
Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
example
#LARGEUR_ECRAN{pleine_largeur}
Return values
Champ

Pile complétée par le code à générer

balise_CONST_dist()

Compile la balise `#CONST` qui retourne la valeur de la constante passée en argument

balise_CONST_dist(Champ $p) : Champ
Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
example

#CONST{_DIR_IMG}

Return values
Champ

Pile complétée par le code à générer

boucle_DEFAUT_dist()

Compile une boucle standard, sans condition rajoutée

boucle_DEFAUT_dist(string $id_boucle, array<string|int, mixed> &$boucles) : string
Parameters
$id_boucle : string

Identifiant de la boucle

$boucles : array<string|int, mixed>

AST du squelette

Return values
string

Code PHP compilé de la boucle

boucle_BOUCLE_dist()

Compile une boucle récursive

boucle_BOUCLE_dist(string $id_boucle, array<string|int, mixed> &$boucles) : string

<BOUCLE(BOUCLE)>

Parameters
$id_boucle : string

Identifiant de la boucle

$boucles : array<string|int, mixed>

AST du squelette

Tags
link
https://www.spip.net/914
Return values
string

Code PHP compilé de la boucle

boucle_HIERARCHIE_dist()

Compile une boucle HIERARCHIE

boucle_HIERARCHIE_dist(string $id_boucle, array<string|int, mixed> &$boucles) : string

La boucle <BOUCLE(HIERARCHIE)> retourne la liste des RUBRIQUES qui mènent de la racine du site à la rubrique ou à l’article en cours.

Cette boucle (aliasée sur la table RUBRIQUES)

  • recherche un id_rubrique dans les boucles parentes,
  • extrait sa hiérarchie, en prenant ou non la rubrique en cours en fonction du critère {tout}
  • crée une condition WHERE avec ces identifiants ansi qu'une clause ORDER
  • compile la boucle.

Le code compilé calculant la hierarchie est ajouté au tout début de la fonction de boucle et quitte la boucle si aucune rubrique n'est trouvée.

Parameters
$id_boucle : string

Identifiant de la boucle

$boucles : array<string|int, mixed>

AST du squelette

Tags
link
https://www.spip.net/913
Return values
string

Code PHP compilé de la boucle

cache_key()

Returns a key cache (id) for this data

cache_key(array<string|int, mixed> $contexte, array<string|int, mixed> $page) : string
Parameters
$contexte : array<string|int, mixed>
$page : array<string|int, mixed>
Return values
string

ecrire_cache()

Écrire le cache dans un casier

ecrire_cache(string $cache_key, array<string|int, mixed> $valeur) : bool
Parameters
$cache_key : string
$valeur : array<string|int, mixed>
Return values
bool

lire_cache()

lire le cache depuis un casier

lire_cache(string $cache_key) : null|mixed
Parameters
$cache_key : string
Return values
null|mixed

null: probably cache miss

cache_signature()

Signature du cache

cache_signature(mixed &$page) : string

Parano : on signe le cache, afin d'interdire un hack d'injection dans notre memcache

Parameters
$page : mixed
Return values
string

gzip_page()

Faut-il compresser ce cache ?

gzip_page(array<string|int, mixed> $page) : array<string|int, mixed>

A partir de 16ko ca vaut le coup (pas de passage par reference car on veut conserver la version non compressee pour l'afficher) on positionne un flag gz si on comprime, pour savoir si on doit decompresser ou pas

Parameters
$page : array<string|int, mixed>
Return values
array<string|int, mixed>

gunzip_page()

Faut-il decompresser ce cache ?

gunzip_page(array<string|int, mixed> &$page) : void

(passage par reference pour alleger) on met a jour le flag gz quand on decompresse, pour ne pas risquer de decompresser deux fois de suite un cache (ce qui echoue)

Parameters
$page : array<string|int, mixed>

cache_valide()

Gestion des delais d'expiration du cache... $page passee par reference pour accelerer

cache_valide(array<string|int, mixed> &$page, int $date) : int
Parameters
$page : array<string|int, mixed>
$date : int
Return values
int
  • 1 si il faut mettre le cache a jour
  • 0 si le cache est valide
  • -1 si il faut calculer sans stocker en cache

creer_cache()

Creer le fichier cache

creer_cache(array<string|int, mixed> &$page, string &$cache_key) : void

Passage par reference de $page par souci d'economie

Parameters
$page : array<string|int, mixed>
$cache_key : string

public_cacher_dist()

Interface du gestionnaire de cache

public_cacher_dist(array<string|int, mixed> $contexte, int &$use_cache, string &$cache_key, array<string|int, mixed> &$page, int &$lastmodified) : string|void

Si son 3e argument est non vide, elle passe la main a creer_cache Sinon, elle recoit un contexte (ou le construit a partir de REQUEST_URI) et affecte les 4 autres parametres recus par reference:

  • use_cache qui vaut -1 s'il faut calculer la page sans la mettre en cache 0 si on peut utiliser un cache existant 1 s'il faut calculer la page et la mettre en cache
  • cache_key est un identifiant pour ce cache, ou vide si pas cachable
  • page qui est le tableau decrivant la page, si le cache la contenait
  • lastmodified qui vaut la date de derniere modif du fichier. Elle retourne '' si tout va bien un message d'erreur si le calcul de la page est totalement impossible
Parameters
$contexte : array<string|int, mixed>
$use_cache : int
$cache_key : string
$page : array<string|int, mixed>
$lastmodified : int
Return values
string|void

argumenter_inclure()

argumenter_inclure(mixed $params, mixed $rejet_filtres, mixed $p, mixed &$boucles, mixed $id_boucle[, mixed $echap = true ][, mixed $lang = '' ][, mixed $fond1 = false ]) : mixed
Parameters
$params : mixed
$rejet_filtres : mixed
$p : mixed
$boucles : mixed
$id_boucle : mixed
$echap : mixed = true
$lang : mixed = ''
$fond1 : mixed = false

calculer_inclure()

Compile une inclusion <INCLURE> ou #INCLURE

calculer_inclure(Inclure $p, array<string|int, mixed> &$boucles, string $id_boucle) : string
Parameters
$p : Inclure

Description de l'inclusion (AST au niveau de l'inclure)

$boucles : array<string|int, mixed>

AST du squelette

$id_boucle : string

Identifiant de la boucle contenant l'inclure

Return values
string

Code PHP appelant l'inclusion

instituer_boucle()

Gérer les statuts declarés pour cette table

instituer_boucle(Boucle &$boucle[, bool $echapper = true ][, bool $ignore_previsu = false ]) : mixed

S'il existe des statuts sur cette table, déclarés dans la description d'un objet éditorial, applique leurs contraintes

Parameters
$boucle : Boucle

Descrition de la boucle

$echapper : bool = true

true pour échapper le code créé

$ignore_previsu : bool = false

true pour ne tester que le cas publie et ignorer l'eventuel var_mode=preview de la page

calculer_boucle()

Produit le corps PHP d'une boucle Spip.

calculer_boucle(string $id_boucle, array<string|int, mixed> &$boucles) : string

Ce corps remplit une variable $t0 retournée en valeur. Ici on distingue boucles recursives et boucle à requête SQL et on insère le code d'envoi au debusqueur du resultat de la fonction.

Parameters
$id_boucle : string

Identifiant de la boucle

$boucles : array<string|int, mixed>

AST du squelette

Return values
string

Code PHP compilé de la boucle

calculer_boucle_nonrec()

Compilation d'une boucle (non recursive).

calculer_boucle_nonrec(string $id_boucle, array<string|int, mixed> &$boucles, string $trace) : string
Parameters
$id_boucle : string

Identifiant de la boucle

$boucles : array<string|int, mixed>

AST du squelette

$trace : string

Code PHP (en mode debug uniquement) servant à conserver une trace des premières valeurs de la boucle afin de pouvoir les afficher dans le débugueur ultérieurement

Return values
string

Code PHP compilé de la boucle récursive

calculer_requete_sql()

Calcule le code PHP d'une boucle contenant les informations qui produiront une requête SQL

calculer_requete_sql(Boucle $boucle) : string

Le code produit est un tableau associatif $command contenant les informations pour que la boucle produise ensuite sa requête, tel que $command['from'] = 'spip_articles';

Parameters
$boucle : Boucle

AST de la boucle

Return values
string

Code PHP compilé définissant les informations de requête

memoriser_contexte_compil()

Retourne une chaîne des informations du contexte de compilation

memoriser_contexte_compil(object $p) : string

Retourne la source, le nom, l'identifiant de boucle, la ligne, la langue de l'élément dans une chaîne.

Parameters
$p : object

Objet de l'AST dont on mémorise le contexte

Tags
see
reconstruire_contexte_compil()
Return values
string

Informations du contexte séparés par des virgules, qui peut être utilisé pour la production d'un tableau array()

reconstruire_contexte_compil()

Reconstruit un contexte de compilation

reconstruire_contexte_compil(array<string|int, mixed> $context_compil) : Contexte

Pour un tableau d'information de contexte donné, retourne un objet Contexte (objet générique de l'AST) avec ces informations

Parameters
$context_compil : array<string|int, mixed>

Tableau des informations du contexte

Tags
see
memoriser_contexte_compil()
Return values
Contexte

Objet Contexte

calculer_dec()

Calcule le code d'affectation d'une valeur à une commande de boucle

calculer_dec(string $nom, string $val) : array<string|int, mixed>

Décrit le code qui complète le tableau $command qui servira entre autres à l'itérateur. Pour un nom de commande donnée et un code PHP décrivant ou récupérant une valeur, on retourne le code PHP qui fait l'affectation.

L'index 0 du tableau retourné indique, lorsqu'il n'est pas vide, que l'affectation de la variable pourra être statique (c'est à dire qu'il ne dépend pas d'une quelconque variable PHP), et donc attribué une fois pour toutes quelque soit le nombre d'appels de la boucle.

Parameters
$nom : string

Nom de la commande

$val : string

Code PHP décrivant la valeur à affecter

Return values
array<string|int, mixed>
  • index 0 : Code pour une affectation statique. Si non rempli, la propriété devra être ré-affectée à chaque appel de la boucle.
  • index 1 : Code de l'affectation

calculer_dump_array()

Calcule l'expression PHP décrivant un tableau complexe (ou une chaîne)

calculer_dump_array(mixed $a) : string

Lorsqu'un tableau est transmis, reconstruit de quoi créer le tableau en code PHP (une sorte de var_export) en appelant pour chaque valeur cette fonction de manière récursive.

Si le premier index (0) du tableau est "'?'", retourne un code de test entre les 3 autres valeurs (v1 ? v2 : v3). Les valeurs pouvant être des tableaux aussi.

Parameters
$a : mixed

Les données dont on veut construire un équivalent de var_export

Return values
string

Expression PHP décrivant un texte ou un tableau

calculer_dump_join()

calculer_dump_join(mixed $a) : mixed
Parameters
$a : mixed

calculer_from()

Calcule l'expression PHP décrivant les informations FROM d'une boucle

calculer_from(Boucle &$boucle) : string
Parameters
$boucle : Boucle

Description de la boucle

Return values
string

Code PHP construisant un tableau des alias et noms des tables du FROM

calculer_from_type()

Calcule l'expression PHP décrivant des informations de type de jointure pour un alias de table connu dans le FROM

calculer_from_type(Boucle &$boucle) : string
Parameters
$boucle : Boucle

Description de la boucle

Return values
string

Code PHP construisant un tableau des alias et type de jointure du FROM

calculer_order()

calculer_order(mixed &$boucle) : mixed
Parameters
$boucle : mixed

calculer_liste()

calculer_liste(mixed $tableau, mixed $descr, mixed &$boucles[, mixed $id_boucle = '' ]) : mixed
Parameters
$tableau : mixed
$descr : mixed
$boucles : mixed
$id_boucle : mixed = ''
Tags
used-by
interprete_argument_balise()

compile_cas()

compile_cas(array<string|int, mixed> $tableau, array<string|int, mixed> $descr, array<string, Boucle&$boucles, string $id_boucle) : array<string|int, mixed>|false
Parameters
$tableau : array<string|int, mixed>
$descr : array<string|int, mixed>
$boucles : array<string, Boucle>
$id_boucle : string
Tags
uses
choisir_traduction()
Return values
array<string|int, mixed>|false

compile_concatene_parties_codes()

Concatene 2 parties de code, en simplifiant si l'une des 2 est vides

compile_concatene_parties_codes(string $partie1, string $partie2) : string
Parameters
$partie1 : string
$partie2 : string
Return values
string

compile_retour()

production d'une expression conditionnelle ((v=EXP) ? (p . v .s) : a) mais si EXP est de la forme (t ? 'C' : '') on produit (t ? (p . C . s) : a) de meme si EXP est de la forme (t ? '' : 'C')

compile_retour(string $code, string $avant, string $apres, string $altern, string $tab, int $n) : mixed|string
Parameters
$code : string

le code principal, dont le resultat conditionnera le reste

$avant : string

la partie conditionnelle avant, qui est calculee apres le code, mais s'affiche avant si le code produit un resultat

$apres : string

la partie conditionnelle apres, qui est calculee apres le code, et s'affiche apres si le code produit un resultat

$altern : string

la partie alternative apres, qui est calculee apres le code, et s'affiche apres, si le code ne produit pas de resultat

$tab : string

tabulation

$n : int

compteur

Return values
mixed|string

compile_inclure_doublons()

compile_inclure_doublons(mixed $lexemes) : mixed
Parameters
$lexemes : mixed

public_compiler_dist()

public_compiler_dist(mixed $squelette, mixed $nom, mixed $gram, mixed $sourcefile[, string $connect = '' ]) : mixed
Parameters
$squelette : mixed
$nom : mixed
$gram : mixed
$sourcefile : mixed
$connect : string = ''

compiler_squelette()

compiler_squelette(mixed $squelette, mixed $boucles, mixed $nom, mixed $descr, mixed $sourcefile[, string $connect = '' ]) : mixed
Parameters
$squelette : mixed
$boucles : mixed
$nom : mixed
$descr : mixed
$sourcefile : mixed
$connect : string = ''

requeteur_php_dist()

Requeteur pour les boucles (php:nom_iterateur)

requeteur_php_dist(array<string, Boucle&$boucles, Boucle &$boucle, string &$id) : mixed

Analyse si le nom d'iterateur correspond bien a une classe PHP existante et dans ce cas charge la boucle avec cet iterateur. Affichera une erreur dans le cas contraire.

Parameters
$boucles : array<string, Boucle>

Liste des boucles

$boucle : Boucle

La boucle parcourue

$id : string

L'identifiant de la boucle parcourue

requeteur_data_dist()

Requeteur pour les boucles (data:type de donnee) note: (DATA) tout court ne passe pas par ici.

requeteur_data_dist(array<string, Boucle&$boucles, Boucle &$boucle, string &$id) : mixed

Analyse si le type de donnee peut etre traite et dans ce cas charge la boucle avec cet iterateur. Affichera une erreur dans le cas contraire.

Parameters
$boucles : array<string, Boucle>

Liste des boucles

$boucle : Boucle

La boucle parcourue

$id : string

L'identifiant de la boucle parcourue

public_composer_dist()

public_composer_dist(mixed $squelette, mixed $mime_type, mixed $gram, mixed $source[, string $connect = '' ]) : mixed
Parameters
$squelette : mixed
$mime_type : mixed
$gram : mixed
$source : mixed
$connect : string = ''

squelette_traduit()

squelette_traduit(mixed $squelette, mixed $sourcefile, mixed $phpfile, mixed $boucles) : mixed
Parameters
$squelette : mixed
$sourcefile : mixed
$phpfile : mixed
$boucles : mixed

squelette_obsolete()

squelette_obsolete(mixed $skel, mixed $squelette) : mixed
Parameters
$skel : mixed
$squelette : mixed

invalideur_session()

invalideur_session(mixed &$Cache[, mixed $code = null ]) : mixed
Parameters
$Cache : mixed
$code : mixed = null

analyse_resultat_skel()

analyse_resultat_skel(mixed $nom, mixed $cache, mixed $corps[, mixed $source = '' ]) : mixed
Parameters
$nom : mixed
$cache : mixed
$corps : mixed
$source : mixed = ''

synthetiser_balise_dynamique()

Synthétise une balise dynamique : crée l'appel à l'inclusion en transmettant les arguments calculés et le contexte de compilation.

synthetiser_balise_dynamique(string $nom, array<string|int, mixed> $args, string $file, array<string|int, mixed> $context_compil) : string
Parameters
$nom : string

Nom de la balise dynamique

$args : array<string|int, mixed>

Liste des arguments calculés

$file : string

Chemin du fichier de squelette à inclure

$context_compil : array<string|int, mixed>

Tableau d'informations sur la compilation

Tags
uses
argumenter_squelette()

Pour calculer les arguments de l'inclusion

used-by
executer_balise_dynamique()

Pour calculer le code PHP d'inclusion produit

Return values
string

Code PHP pour inclure le squelette de la balise dynamique

argumenter_squelette()

Crée le code PHP pour transmettre des arguments (généralement pour une inclusion)

argumenter_squelette(array<string|int, mixed>|string $v) : string
Parameters
$v : array<string|int, mixed>|string

Arguments à transmettre :

  • string : un simple texte à faire écrire
  • array : couples ('nom' => 'valeur') liste des arguments et leur valeur
Tags
used-by
synthetiser_balise_dynamique()

Pour calculer les arguments de l'inclusion

Return values
string
  • Code PHP créant le tableau des arguments à transmettre,
  • ou texte entre quote ' (si $v était une chaîne)

executer_balise_dynamique_dans_un_modele()

Fonction proxy pour retarder le calcul d'un formulaire si on est au depart dans un modele

executer_balise_dynamique_dans_un_modele( ...$args) : string

un modele est toujours inséré en texte dans son contenant donc si on est dans le public avec un cache on va perdre le dynamisme et on risque de mettre en cache les valeurs pre-remplies du formulaire on passe donc par une fonction proxy qui si besoin va collecter les arguments et injecter le PHP qui va appeler la fonction pour generer le formulaire au lieu de directement la fonction (dans l'espace prive on a pas de cache, donc pas de soucis (et un leak serait moins grave))

Parameters
$args :
Tags
see
calculer_balise_dynamique()
Return values
string

executer_balise_dynamique()

Calcule et retourne le code PHP retourné par l'exécution d'une balise dynamique.

executer_balise_dynamique(string $nom, array<string|int, mixed> $args, array<string|int, mixed> $context_compil) : string

Vérifier les arguments et filtres et calcule le code PHP à inclure.

  • charge le fichier PHP de la balise dynamique dans le répertoire balise/, soit du nom complet de la balise, soit d'un nom générique (comme 'formulaire_.php'). Dans ce dernier cas, le nom de la balise est ajouté en premier argument.
  • appelle une éventuelle fonction de traitement des arguments balise_NOM_stat()
  • crée le code PHP de la balise si une fonction balise_NOM_dyn() (ou variantes) est effectivement trouvée.
Parameters
$nom : string

Nom de la balise dynamique

$args : array<string|int, mixed>

Liste des arguments calculés de la balise

$context_compil : array<string|int, mixed>

Tableau d'informations sur la compilation

Tags
uses
synthetiser_balise_dynamique()

Pour calculer le code PHP d'inclusion produit

Return values
string

Code PHP d'exécutant l'inclusion du squelette (ou texte) de la balise dynamique

chercher_balise_generique()

Pour une balise "NOM" donné, cherche s'il existe une balise générique qui peut la traiter

chercher_balise_generique(string $nom) : array<string|int, mixed>|null

Le nom de balise doit contenir au moins un souligné "A_B", auquel cas on cherche une balise générique "A_"

S'il y a plus d'un souligné, tel que "A_B_C_D" on cherche différentes balises génériques en commençant par la plus longue possible, tel que "A_B_C_", sinon "A_B_" sinon "A_"

Parameters
$nom : string
Return values
array<string|int, mixed>|null

lang_select_public()

Selectionner la langue de l'objet dans la boucle

lang_select_public(string $lang, string $lang_select[, null|string $titre = null ]) : null

Applique sur un item de boucle la langue de l'élément qui est parcourru. Sauf dans les cas ou il ne le faut pas !

La langue n'est pas modifiée lorsque :

  • la globale 'forcer_lang' est définie à true
  • l'objet ne définit pas de langue
  • le titre contient une balise multi.
Parameters
$lang : string

Langue de l'objet

$lang_select : string

'oui' si critère lang_select est présent, '' sinon.

$titre : null|string = null

Titre de l'objet

Return values
null

nettoyer_env_doublons()

nettoyer_env_doublons(mixed $envd) : mixed
Parameters
$envd : mixed

match_self()

Cherche la présence d'un opérateur SELF ou SUBSELECT

match_self(string|array<string|int, mixed> $w) : string|bool

Cherche dans l'index 0 d'un tableau, la valeur SELF ou SUBSELECT indiquant pour une expression WHERE de boucle que nous sommes face à une sous-requête.

Cherche de manière récursive également dans les autres valeurs si celles-ci sont des tableaux

Parameters
$w : string|array<string|int, mixed>

Description d'une condition WHERE de boucle (ou une partie de cette description)

Return values
string|bool

Opérateur trouvé (SELF ou SUBSELECT) sinon false.

remplace_sous_requete()

Remplace une condition décrivant une sous requête par son code

remplace_sous_requete(array<string|int, mixed>|string $w, string $sousrequete) : array<string|int, mixed>|string
Parameters
$w : array<string|int, mixed>|string

Description d'une condition WHERE de boucle (ou une partie de cette description) qui possède une description de sous-requête

$sousrequete : string

Code PHP de la sous requête (qui doit remplacer la description)

Return values
array<string|int, mixed>|string

Tableau de description du WHERE dont la description de sous-requête est remplacée par son code.

trouver_sous_requetes()

Sépare les conditions de boucles simples de celles possédant des sous-requêtes.

trouver_sous_requetes(array<string|int, mixed> $where) : array<string|int, mixed>
Parameters
$where : array<string|int, mixed>

Description d'une condition WHERE de boucle

Return values
array<string|int, mixed>

Liste de 2 tableaux :

  • Conditions simples (ne possédant pas de sous requêtes)
  • Conditions avec des sous requêtes

calculer_select()

Calcule une requête et l’exécute

calculer_select([array<string|int, mixed> $select = [] ][, array<string|int, mixed> $from = [] ][, array<string|int, mixed> $from_type = [] ][, array<string|int, mixed> $where = [] ][, array<string|int, mixed> $join = [] ][, array<string|int, mixed> $groupby = [] ][, array<string|int, mixed> $orderby = [] ][, string $limit = '' ][, array<string|int, mixed> $having = [] ][, string $table = '' ][, string $id = '' ][, string $serveur = '' ][, bool|array<string|int, mixed>|string $requeter = true ]) : resource

Cette fonction est présente dans les squelettes compilés. Elle peut permettre de générer des requêtes avec jointure.

Parameters
$select : array<string|int, mixed> = []
$from : array<string|int, mixed> = []
$from_type : array<string|int, mixed> = []
$where : array<string|int, mixed> = []
$join : array<string|int, mixed> = []
$groupby : array<string|int, mixed> = []
$orderby : array<string|int, mixed> = []
$limit : string = ''
$having : array<string|int, mixed> = []
$table : string = ''
$id : string = ''
$serveur : string = ''
$requeter : bool|array<string|int, mixed>|string = true
Return values
resource

calculer_where_to_string()

Analogue a calculer_mysql_expression et autre (a unifier ?)

calculer_where_to_string(string|array<string|int, mixed> $v[, string $join = 'AND' ]) : string
Parameters
$v : string|array<string|int, mixed>
$join : string = 'AND'
Return values
string

calculer_jointnul()

calculer_jointnul(mixed $cle, mixed $exp[, mixed $equiv = '' ]) : mixed
Parameters
$cle : mixed
$exp : mixed
$equiv : mixed = ''

reinjecte_joint()

reinjecte_joint(mixed $afrom, mixed $from) : mixed
Parameters
$afrom : mixed
$from : mixed

remplacer_jointnul()

remplacer_jointnul(mixed $cle, mixed $exp[, mixed $equiv = '' ]) : mixed
Parameters
$cle : mixed
$exp : mixed
$equiv : mixed = ''

calculer_nom_fonction_squel()

calculer_nom_fonction_squel(mixed $skel[, mixed $mime_type = 'html' ][, string $connect = '' ]) : mixed
Parameters
$skel : mixed
$mime_type : mixed = 'html'
$connect : string = ''

critere_racine_dist()

Compile le critère {racine}

critere_racine_dist(string $idb, array<string|int, mixed> &$boucles, Critere $crit) : void

Ce critère sélectionne les éléments à la racine d'une hiérarchie, c'est à dire ayant id_parent=0

Parameters
$idb : string

Identifiant de la boucle

$boucles : array<string|int, mixed>

AST du squelette

$crit : Critere

Paramètres du critère dans cette boucle

Tags
link
https://www.spip.net/@racine

critere_exclus_dist()

Compile le critère {exclus}

critere_exclus_dist(string $idb, array<string|int, mixed> &$boucles, Critere $crit) : void|array<string|int, mixed>

Exclut du résultat l’élément dans lequel on se trouve déjà

Parameters
$idb : string

Identifiant de la boucle

$boucles : array<string|int, mixed>

AST du squelette

$crit : Critere

Paramètres du critère dans cette boucle

Tags
link
https://www.spip.net/@exclus
Return values
void|array<string|int, mixed>

critere_doublons_dist()

Compile le critère {doublons} ou {unique}

critere_doublons_dist(string $idb, array<string|int, mixed> &$boucles, Critere $crit) : void|array<string|int, mixed>

Ce critères enlève de la boucle les éléments déjà sauvegardés dans un précédent critère {doublon} sur une boucle de même table.

Il est possible de spécifier un nom au doublon tel que {doublons sommaire}

Parameters
$idb : string

Identifiant de la boucle

$boucles : array<string|int, mixed>

AST du squelette

$crit : Critere

Paramètres du critère dans cette boucle

Tags
link
https://www.spip.net/@doublons
Return values
void|array<string|int, mixed>

critere_lang_select_dist()

Compile le critère {lang_select}

critere_lang_select_dist(string $idb, array<string|int, mixed> &$boucles, Critere $crit) : void

Permet de restreindre ou non une boucle en affichant uniquement les éléments dans la langue en cours. Certaines boucles tel que articles et rubriques restreignent par défaut sur la langue en cours.

Sans définir de valeur au critère, celui-ci utilise 'oui' comme valeur par défaut.

Parameters
$idb : string

Identifiant de la boucle

$boucles : array<string|int, mixed>

AST du squelette

$crit : Critere

Paramètres du critère dans cette boucle

critere_debut_dist()

Compile le critère {debut_xxx}

critere_debut_dist(string $idb, array<string|int, mixed> &$boucles, Critere $crit) : void

Limite le nombre d'éléments affichés.

Ce critère permet de faire commencer la limitation des résultats par une variable passée dans l’URL et commençant par 'debut_' tel que {debut_page,10}. Le second paramètre est le nombre de résultats à afficher.

Note : il est plus simple d'utiliser le critère pagination.

Parameters
$idb : string

Identifiant de la boucle

$boucles : array<string|int, mixed>

AST du squelette

$crit : Critere

Paramètres du critère dans cette boucle

critere_pagination_dist()

Compile le critère `pagination` qui demande à paginer une boucle.

critere_pagination_dist(string $idb, array<string|int, mixed> &$boucles, Critere $crit) : void

Demande à paginer la boucle pour n'afficher qu'une partie des résultats, et gère l'affichage de la partie de page demandée par debut_xx dans dans l'environnement du squelette.

Le premier paramètre indique le nombre d'éléments par page, le second, rarement utilisé permet de définir le nom de la variable désignant la page demandée (debut_xx), qui par défaut utilise l'identifiant de la boucle.

Parameters
$idb : string

Identifiant de la boucle

$boucles : array<string|int, mixed>

AST du squelette

$crit : Critere

Paramètres du critère dans cette boucle

Tags
critere
see
balise_PAGINATION_dist()
link

Le système de pagination

link

Le critère pagination

example
{pagination}
{pagination 20}
{pagination #ENV{pages,5}} etc
{pagination 20 #ENV{truc,chose}} pour utiliser la variable debut_#ENV{truc,chose}

critere_recherche_dist()

Compile le critère `recherche` qui permet de sélectionner des résultats d'une recherche.

critere_recherche_dist(string $idb, array<string|int, mixed> &$boucles, Critere $crit) : void

Le texte cherché est pris dans le premier paramètre {recherche xx} ou à défaut dans la clé recherche de l'environnement du squelette.

Parameters
$idb : string

Identifiant de la boucle

$boucles : array<string|int, mixed>

AST du squelette

$crit : Critere

Paramètres du critère dans cette boucle

Tags
critere
link
https://www.spip.net/3878
see
inc_prepare_recherche_dist()

critere_traduction_dist()

Compile le critère `traduction`

critere_traduction_dist(string $idb, array<string|int, mixed> &$boucles, Critere $crit) : void

Sélectionne toutes les traductions de l'élément courant (la boucle englobante) en différentes langues (y compris l'élément englobant)

Équivalent à (id_trad>0 AND id_trad=id_trad(precedent)) OR id_xx=id_xx(precedent)

Parameters
$idb : string

Identifiant de la boucle

$boucles : array<string|int, mixed>

AST du squelette

$crit : Critere

Paramètres du critère dans cette boucle

critere_origine_traduction_dist()

Compile le critère {origine_traduction}

critere_origine_traduction_dist(string $idb, array<string|int, mixed> &$boucles, Critere $crit) : void

Sélectionne les éléments qui servent de base à des versions traduites (par exemple les articles "originaux" sur une boucle articles)

Équivalent à (id_trad>0 AND id_xx=id_trad) OR (id_trad=0)

Parameters
$idb : string

Identifiant de la boucle

$boucles : array<string|int, mixed>

AST du squelette

$crit : Critere

Paramètres du critère dans cette boucle

critere_meme_parent_dist()

Compile le critère {meme_parent}

critere_meme_parent_dist(string $idb, array<string|int, mixed> &$boucles, Critere $crit) : void|array<string|int, mixed>

Sélectionne les éléments ayant le même parent que la boucle parente, c'est à dire les frères et sœurs.

Parameters
$idb : string

Identifiant de la boucle

$boucles : array<string|int, mixed>

AST du squelette

$crit : Critere

Paramètres du critère dans cette boucle

Return values
void|array<string|int, mixed>

critere_branche_dist()

Compile le critère `branche` qui sélectionne dans une boucle les éléments appartenant à une branche d'une rubrique.

critere_branche_dist(string $idb, array<string|int, mixed> &$boucles, Critere $crit) : void

Cherche l'identifiant de la rubrique en premier paramètre du critère {branche XX} s'il est renseigné, sinon, sans paramètre ({branche} tout court) dans les boucles parentes. On calcule avec lui la liste des identifiants de rubrique de toute la branche.

La boucle qui possède ce critère cherche une liaison possible avec la colonne id_rubrique, et tentera de trouver une jointure avec une autre table si c'est nécessaire pour l'obtenir.

Ce critère peut être rendu optionnel avec {branche ?} en remarquant cependant que le test s'effectue sur la présence d'un champ 'id_rubrique' sinon d'une valeur 'id_rubrique' dans l'environnement (et non 'branche' donc).

Parameters
$idb : string

Identifiant de la boucle

$boucles : array<string|int, mixed>

AST du squelette

$crit : Critere

Paramètres du critère dans cette boucle

Tags
link
https://www.spip.net/@branche

critere_logo_dist()

Compile le critère `logo` qui liste les objets qui ont un logo

critere_logo_dist(string $idb, array<string|int, mixed> &$boucles, Critere $crit) : void
Parameters
$idb : string

Identifiant de la boucle

$boucles : array<string|int, mixed>

AST du squelette

$crit : Critere

Paramètres du critère dans cette boucle

Tags
uses
lister_objets_avec_logos()

Pour obtenir les éléments qui ont un logo

critere_groupby_dist()

Compile le critère `groupby` qui regroupe les éléments selon une colonne.

critere_groupby_dist(string $idb, array<string|int, mixed> &$boucles, Critere $crit) : void|array<string|int, mixed>

C'est la commande SQL «GROUP BY»

Parameters
$idb : string

Identifiant de la boucle

$boucles : array<string|int, mixed>

AST du squelette

$crit : Critere

Paramètres du critère dans cette boucle

Tags
critere
link
https://www.spip.net/5166
example
 <BOUCLE_a(articles){groupby lang}>
note

Remplace {fusion}.

Return values
void|array<string|int, mixed>

critere_groupby_supprimer_dist()

Compile le critère `groupby_supprimer` qui supprime toutes les fusions qui le précèdent

critere_groupby_supprimer_dist(string $idb, array<string|int, mixed> &$boucles, Critere $crit) : void

Ce critère retire toutes les définitions de «GROUP BY» qui le précèdent. Par exemple pour en ajouter d'autres ensuite.

Parameters
$idb : string

Identifiant de la boucle

$boucles : array<string|int, mixed>

AST du squelette

$crit : Critere

Paramètres du critère dans cette boucle

Tags
critere
example
 <BOUCLE_a(ARTICLES){gis}{groupby_supprimer}{groupby ville}
note

Remplace {fusion_supprimer}.

critere_fusion_dist()

Compile le critère `fusion` qui regroupe les éléments selon une colonne.

critere_fusion_dist(mixed ...$args) : void|array<string|int, mixed>
Parameters
$args : mixed
Tags
deprecated
5.0

Utiliser {groupby}

Return values
void|array<string|int, mixed>

critere_fusion_supprimer_dist()

Compile le critère `fusion_supprimer` qui supprime toutes les fusions qui le précèdent

critere_fusion_supprimer_dist(mixed ...$args) : void
Parameters
$args : mixed
Tags
deprecated
5.0

Utiliser {groupby_supprimer}

critere_collate_dist()

Compile le critère `{collate}` qui permet de spécifier l'interclassement à utiliser pour les tris de la boucle.

critere_collate_dist(string $idb, array<string|int, mixed> &$boucles, Critere $crit) : void|array<string|int, mixed>

Cela permet avec le critère {par} de trier un texte selon l'interclassement indiqué. L'instruction s'appliquera sur les critères {par} qui succèdent ce critère, ainsi qu'au critère {par} précédent si aucun interclassement ne lui est déjà appliqué.

Techniquement, c'est la commande SQL "COLLATE" qui utilisée. (elle peut être appliquée sur les order by, group by, where, like ...)

Parameters
$idb : string

Identifiant de la boucle

$boucles : array<string|int, mixed>

AST du squelette

$crit : Critere

Paramètres du critère dans cette boucle

Tags
example
  • {par titre}{collate utf8_spanish_ci} ou {collate utf8_spanish_ci}{par titre}
  • {par titre}{par surtitre}{collate utf8_spanish_ci} : Seul 'surtitre' (par précédent) utilisera l'interclassement
  • {collate utf8_spanish_ci}{par titre}{par surtitre} : 'titre' et 'surtitre' utiliseront l'interclassement (tous les par suivants)
note

Piège sur une éventuelle écriture peu probable : {par a}{collate c1}{par b}{collate c2} : le tri {par b} utiliserait l'interclassement c1 (et non c2 qui ne s'applique pas au par précédent s'il a déjà un interclassement demandé).

critere
link
https://www.spip.net/4028
see
critere_par_dist()

Le critère {par}

Return values
void|array<string|int, mixed>

critere_collecte_dist()

Compile le critère `{collecte}` qui permet de spécifier l'interclassement à utiliser pour les tris de la boucle.

critere_collecte_dist(mixed ...$args) : void|array<string|int, mixed>
Parameters
$args : mixed
Tags
deprecated
5.0

Utiliser {collate}

Return values
void|array<string|int, mixed>

calculer_critere_arg_dynamique()

calculer_critere_arg_dynamique(mixed $idb, mixed &$boucles, mixed $crit[, mixed $suffix = '' ]) : mixed
Parameters
$idb : mixed
$boucles : mixed
$crit : mixed
$suffix : mixed = ''

critere_par_dist()

Compile le critère `{par}` qui permet d'ordonner les résultats d'une boucle

critere_par_dist(string $idb, array<string|int, mixed> &$boucles, Critere $crit) : mixed

Demande à trier la boucle selon certains champs (en SQL, la commande ORDER BY). Si plusieurs tris sont demandés (plusieurs fois le critère {par x}{par y} dans une boucle ou plusieurs champs séparés par des virgules dans le critère {par x, y, z}), ils seront appliqués dans l'ordre.

Quelques particularités :

  • {par hasard} : trie par hasard
  • {par num titre} : trie par numéro de titre
  • {par multi titre} : trie par la langue extraite d'une balise polyglotte <multi> sur le champ titre
  • {!par date} : trie par date inverse en utilisant le champ date principal déclaré pour la table (si c'est un objet éditorial).
  • {!par points} : trie par pertinence de résultat de recherche (avec le critère {recherche})
  • {par FUNCTION_SQL(n)} : trie en utilisant une fonction SQL (peut dépendre du moteur SQL utilisé). Exemple : {par SUBSTRING_INDEX(titre, ".", -1)} (tri ~ alphabétique en ignorant les numéros de titres (exemple erroné car faux dès qu'un titre possède un point.)).
  • {par table.champ} : trie en effectuant une jointure sur la table indiquée.
  • {par #BALISE} : trie sur la valeur retournée par la balise (doit être un champ de la table, ou 'hasard').
Parameters
$idb : string

Identifiant de la boucle

$boucles : array<string|int, mixed>

AST du squelette

$crit : Critere

Paramètres du critère dans cette boucle

Tags
example
  • {par titre}
  • {!par date}
  • {par num titre, multi titre, hasard}
critere
link
https://www.spip.net/5531
see
critere_tri_dist()

Le critère {tri ...}

see
critere_inverse_dist()

Le critère {inverse}

uses
critere_parinverse()

critere_parinverse()

Calculs pour le critère `{par}` ou `{inverse}` pour ordonner les résultats d'une boucle

critere_parinverse(string $idb, array<string|int, mixed> &$boucles, Critere $crit) : mixed

Les expressions intermédiaires {par expr champ} sont calculées dans des fonctions calculer_critere_par_expression_{expr}() notamment {par num champ} ou {par multi champ}.

Parameters
$idb : string

Identifiant de la boucle

$boucles : array<string|int, mixed>

AST du squelette

$crit : Critere

Paramètres du critère dans cette boucle

Tags
see
critere_par_dist()

Le critère {par} pour des exemples

see
calculer_critere_par_expression_num()

pour le calcul de {par num x}

see
calculer_critere_par_expression_multi()

pour le calcul de {par multi x}

uses
calculer_critere_arg_dynamique()

pour le calcul de {par #ENV{tri}}

uses
calculer_critere_par_hasard()

pour le calcul de {par hasard}

uses
calculer_critere_par_champ()
used-by
critere_par_dist()
used-by
critere_inverse_dist()

calculer_critere_par_hasard()

Calculs pour le critère `{par hasard}`

calculer_critere_par_hasard(string $idb, array<string|int, mixed> &$boucles, Critere $crit) : string

Ajoute le générateur d'aléatoire au SELECT de la boucle.

Parameters
$idb : string

Identifiant de la boucle

$boucles : array<string|int, mixed>

AST du squelette

$crit : Critere

Paramètres du critère dans cette boucle

Tags
used-by
critere_parinverse()

pour le calcul de {par hasard}

Return values
string

Clause pour le Order by

calculer_critere_par_expression_num()

Calculs pour le critère `{par num champ}` qui extrait le numéro préfixant un texte

calculer_critere_par_expression_num(string $idb, array<string|int, mixed> &$boucles, Critere $crit, array<string|int, mixed> $tri, string $champ) : string|array<string|int, mixed>

Tri par numéro de texte (tel que "10. titre"). Le numéro calculé est ajouté au SELECT de la boucle. L'écriture {par num #ENV{tri}} est aussi prise en compte.

Parameters
$idb : string

Identifiant de la boucle

$boucles : array<string|int, mixed>

AST du squelette

$crit : Critere

Paramètres du critère dans cette boucle

$tri : array<string|int, mixed>

Paramètre en cours du critère

$champ : string

texte suivant l'expression ('titre' dans {par num titre})

Tags
note

Les textes sans numéro valent 0 et sont donc placés avant les titres ayant des numéros. Utiliser {par sinum champ, num champ} pour avoir le comportement inverse.

see
calculer_critere_par_expression_sinum()

pour le critère {par sinum champ}

uses
calculer_critere_par_champ()
Return values
string|array<string|int, mixed>

Clause pour le Order by (array si erreur)

calculer_critere_par_expression_sinum()

Calculs pour le critère `{par sinum champ}` qui ordonne les champs avec numéros en premier

calculer_critere_par_expression_sinum(string $idb, array<string|int, mixed> &$boucles, Critere $crit, array<string|int, mixed> $tri, string $champ) : string|array<string|int, mixed>

Ajoute au SELECT la valeur 'sinum' qui vaut 0 si le champ a un numéro, 1 s'il n'en a pas. Ainsi {par sinum titre, num titre, titre} mettra les éléments sans numéro en fin de liste, contrairement à {par num titre, titre} seulement.

Parameters
$idb : string

Identifiant de la boucle

$boucles : array<string|int, mixed>

AST du squelette

$crit : Critere

Paramètres du critère dans cette boucle

$tri : array<string|int, mixed>

Paramètre en cours du critère

$champ : string

texte suivant l'expression ('titre' dans {par sinum titre})

Tags
see
calculer_critere_par_expression_num()

pour le critère {par num champ}

uses
calculer_critere_par_champ()
Return values
string|array<string|int, mixed>

Clause pour le Order by (array si erreur)

calculer_critere_par_expression_multi()

Calculs pour le critère `{par multi champ}` qui extrait la langue en cours dans les textes ayant des balises `<multi>` (polyglottes)

calculer_critere_par_expression_multi(string $idb, array<string|int, mixed> &$boucles, Critere $crit, array<string|int, mixed> $tri, string $champ) : string|array<string|int, mixed>

Ajoute le calcul du texte multi extrait dans le SELECT de la boucle. Il ne peut y avoir qu'un seul critère de tri multi par boucle.

Parameters
$idb : string

Identifiant de la boucle

$boucles : array<string|int, mixed>

AST du squelette

$crit : Critere

Paramètres du critère dans cette boucle

$tri : array<string|int, mixed>

Paramètre en cours du critère

$champ : string

texte suivant l'expression ('titre' dans {par multi titre})

Tags
uses
calculer_critere_par_champ()
Return values
string|array<string|int, mixed>

Clause pour le Order by (array si erreur)

calculer_critere_par_champ()

Retourne le champ de tri demandé en ajoutant éventuellement les jointures nécessaires à la boucle.

calculer_critere_par_champ(string $idb, array<string|int, mixed> &$boucles, Critere $crit, string $par[, bool $raw = false ]) : array<string|int, mixed>|string
  • si le champ existe dans la table, on l'utilise
  • si c'est une exception de jointure, on l'utilise (et crée la jointure au besoin)
  • si c'est un champ dont la jointure est déjà présente on la réutilise
  • si c'est un champ dont la jointure n'est pas présente, on la crée.
Parameters
$idb : string

Identifiant de la boucle

$boucles : array<string|int, mixed>

AST du squelette

$crit : Critere

Paramètres du critère dans cette boucle

$par : string

Nom du tri à analyser ('champ' ou 'table.champ')

$raw : bool = false

Retourne le champ pour le compilateur ("'alias.champ'") ou brut ('alias.champ')

Tags
used-by
critere_parinverse()
used-by
calculer_critere_par_expression_num()
used-by
calculer_critere_par_expression_sinum()
used-by
calculer_critere_par_expression_multi()
Return values
array<string|int, mixed>|string

critere_inverse_dist()

Compile le critère `{inverse}` qui inverse l'ordre utilisé par le précédent critère `{par}`

critere_inverse_dist(string $idb, array<string|int, mixed> &$boucles, Critere $crit) : mixed

Accèpte un paramètre pour déterminer le sens : {inverse #X} utilisera un tri croissant (ASC) si la valeur retournée par #X est considérée vrai (true), le sens contraire (DESC) sinon.

Parameters
$idb : string

Identifiant de la boucle

$boucles : array<string|int, mixed>

AST du squelette

$crit : Critere

Paramètres du critère dans cette boucle

Tags
example
  • {par date}{inverse}, équivalent à {!par date}
  • {par date}{inverse #ENV{sens}} utilise la valeur d'environnement sens pour déterminer le sens.
critere
see
critere_par_dist()

Le critère {par}

link
https://www.spip.net/5530
uses
critere_parinverse()

critere_par_ordre_liste_dist()

{par_ordre_liste champ,#LISTE{...}} pour trier selon une liste en retournant en premier les éléments de la liste

critere_par_ordre_liste_dist(string $idb, array<string, Boucle&$boucles, Critere $crit) : void|array<string|int, mixed>
Parameters
$idb : string
$boucles : array<string, Boucle>
$crit : Critere
Return values
void|array<string|int, mixed>

critere_agenda_dist()

critere_agenda_dist(mixed $idb, mixed &$boucles, mixed $crit) : mixed
Parameters
$idb : mixed
$boucles : mixed
$crit : mixed

calculer_critere_parties()

Compile les critères {i,j} et {i/j}

calculer_critere_parties(string $idb, array<string|int, mixed> &$boucles, Critere $crit) : void

Le critère {i,j} limite l'affiche de la boucle en commançant l'itération au i-ème élément, et pour j nombre d'éléments. Le critère {n-i,j} limite en commençant au n moins i-ème élément de boucle Le critère {i,n-j} limite en terminant au n moins j-ème élément de boucle.

Le critère {i/j} affiche une part d'éléments de la boucle. Commence à i*n/j élément et boucle n/j éléments. {2/4} affiche le second quart des éléments d'une boucle.

Traduit si possible (absence de n dans {i,j}) la demande en une expression LIMIT du gestionnaire SQL

Parameters
$idb : string

Identifiant de la boucle

$boucles : array<string|int, mixed>

AST du squelette

$crit : Critere

Paramètres du critère dans cette boucle

calculer_parties()

Compile certains critères {i,j} et {i/j}

calculer_parties(array<string|int, mixed> &$boucles, string $id_boucle, string $debut, string $mode) : void

Calcule une expression déterminant $debut_boucle et $fin_boucle (le début et la fin des éléments de la boucle qui doivent être affichés) et les déclare dans la propriété «mode_partie» de la boucle, qui se charge également de déplacer le pointeur de boucle sur le premier élément à afficher.

Place dans la propriété partie un test vérifiant que l'élément de boucle en cours de lecture appartient bien à la plage autorisée. Trop tôt, passe à l'élément suivant, trop tard, sort de l'itération de boucle.

Parameters
$boucles : array<string|int, mixed>

AST du squelette

$id_boucle : string

Identifiant de la boucle

$debut : string

Valeur ou code pour trouver le début (i dans {i,j})

$mode : string

Mode (++, p+, +- ...) : 2 signes début & fin

  • le signe - indique -- qu'il faut soustraire debut du total {n-3,x}. 3 étant $debut -- qu'il faut raccourcir la fin {x,n-3} de 3 elements. 3 étant $total_parties
  • le signe p indique une pagination

calculer_critere_parties_aux()

Analyse un des éléments des critères {a,b} ou {a/b}

calculer_critere_parties_aux(string $idb, array<string|int, mixed> &$boucles, array<string|int, mixed> $param) : array<string|int, mixed>

Pour l'élément demandé (a ou b) retrouve la valeur de l'élément, et de combien il est soustrait si c'est le cas comme dans {a-3,b}

Parameters
$idb : string

Identifiant de la boucle

$boucles : array<string|int, mixed>

AST du squelette

$param : array<string|int, mixed>

Paramètre à analyser (soit a, soit b dans {a,b} ou {a/b})

Return values
array<string|int, mixed>

Valeur de l'élément (peut être une expression PHP), Nombre soustrait

calculer_criteres()

Compile les critères d'une boucle

calculer_criteres(string $idb, array<string|int, mixed> &$boucles) : string|array<string|int, mixed>

Cette fonction d'aiguillage cherche des fonctions spécifiques déclarées pour chaque critère demandé, dans l'ordre ci-dessous :

  • critere_{serveur}{table}{critere}, sinon avec _dist
  • critere_{serveur}_{critere}, sinon avec _dist
  • critere_{table}_{critere}, sinon avec _dist
  • critere_{critere}, sinon avec _dist
  • calculer_critere_defaut, sinon avec _dist

Émet une erreur de squelette si un critère retourne une erreur.

Parameters
$idb : string

Identifiant de la boucle

$boucles : array<string|int, mixed>

AST du squelette

Return values
string|array<string|int, mixed>

string : Chaine vide sans erreur array : Erreur sur un des critères

kwote()

Désemberlificote les guillements et échappe (ou fera échapper) le contenu... Madeleine de Proust, revision MIT-1958 sqq, revision CERN-1989 hum, c'est kwoi cette fonxion ? on va dire qu'elle desemberlificote les guillemets.

kwote(string $lisp[, string $serveur = '' ][, string $type = '' ]) : string

..

Parameters
$lisp : string

Code compilé

$serveur : string = ''

Connecteur de bdd utilisé

$type : string = ''

Type d'échappement (char, int...)

Return values
string

Code compilé rééchappé

critere_IN_dist()

Compile un critère possédant l'opérateur IN : {xx IN yy}

critere_IN_dist(string $idb, array<string|int, mixed> &$boucles, Critere $crit) : void|array<string|int, mixed>

Permet de restreindre un champ sur une liste de valeurs tel que {id_article IN 3,4} {id_article IN #LISTE{3,4}}

Si on a une liste de valeurs dans #ENV{x}, utiliser la double etoile pour faire par exemple {id_article IN #ENV**{liste_articles}}

Parameters
$idb : string

Identifiant de la boucle

$boucles : array<string|int, mixed>

AST du squelette

$crit : Critere

Paramètres du critère dans cette boucle

Return values
void|array<string|int, mixed>

critere_IN_cas()

critere_IN_cas(mixed $idb, mixed &$boucles, mixed $crit2, mixed $arg, mixed $op, mixed $val, mixed $col) : mixed
Parameters
$idb : mixed
$boucles : mixed
$crit2 : mixed
$arg : mixed
$op : mixed
$val : mixed
$col : mixed

critere_where_dist()

Compile le critère {where}

critere_where_dist(string $idb, array<string|int, mixed> &$boucles, Critere $crit) : void

Ajoute une contrainte sql WHERE, tout simplement pour faire le pont entre php et squelettes, en utilisant la syntaxe attendue par la propriété $where d'une Boucle.

Parameters
$idb : string

Identifiant de la boucle

$boucles : array<string|int, mixed>

AST du squelette

$crit : Critere

Paramètres du critère dans cette boucle

critere_having_dist()

Compile le critère {having}

critere_having_dist(string $idb, array<string|int, mixed> &$boucles, Critere $crit) : void

Ajoute une contrainte sql HAVING, pour faire le pont entre php et squelettes, en utilisant la syntaxe attendue par la propriété $having d'une Boucle.

Parameters
$idb : string

Identifiant de la boucle

$boucles : array<string|int, mixed>

AST du squelette

$crit : Critere

Paramètres du critère dans cette boucle

critere_id__dist()

Compile le critère `{id_?}`

critere_id__dist(string $idb, array<string|int, mixed> &$boucles, Critere $crit) : void

Ajoute automatiquement à la boucle des contraintes (nommées sélections conditionnelles) équivalentes à {id_article ?}{id_rubrique ?}..., adaptées à la table en cours d’utilisation.

Les champs sélectionnés par défaut sont :

  • chaque champ id_xx de la table en cours d’utilisation (par exemple id_secteur sur la boucle ARTICLES)
  • un champ 'objet', si cette table en dispose
  • chaque clé primaire des tables des objets éditoriaux, s’ils sont éditables et liables (par exemple id_mot).
Parameters
$idb : string

Identifiant de la boucle

$boucles : array<string|int, mixed>

AST du squelette

$crit : Critere

Paramètres du critère dans cette boucle

Tags
example
 <BOUCLE_liste_articles(ARTICLES){id_?}{tout}> ...
 Est équivalent (selon les plugins actifs) à :
 <BOUCLE_liste_articles(ARTICLES){id_article?}{id_rubrique?}{id_secteur?}{id_trad?}{id_mot?}{id_document?} ... {tout}> ...
uses
lister_champs_id_conditionnel()

lister_champs_id_conditionnel()

Liste les champs qui peuvent servir de selection conditionnelle à une table SQL

lister_champs_id_conditionnel(string $table[, array<string|int, mixed>|null $desc = null ][, string $serveur = '' ]) : array<string|int, mixed>

Retourne, pour la table demandée :

  • chaque champ id_xx de la table en cours d’utilisation (par exemple id_secteur sur la boucle ARTICLES)
  • un champ 'objet' si la table le contient (pour les tables avec objet / id_objet par exemple)
  • chaque clé primaire des tables des objets éditoriaux qui peuvent se lier facilement à cette table, -- soit parce que sa clé primaire de la table demandée est un champ dans la table principale -- soit parce qu’une table de liaison existe, d’un côté ou de l’autre
Parameters
$table : string

Nom de la table SQL

$desc : array<string|int, mixed>|null = null

Description de la table SQL, si connu

$serveur : string = ''

Connecteur sql a utiliser

Tags
pipeline_appel

exclure_id_conditionnel

used-by
critere_id__dist()
Return values
array<string|int, mixed>

Liste de nom de champs (tel que id_article, id_mot, id_parent ...)

critere_tri_dist()

Compile le critère `{tri}` permettant le tri dynamique d'un champ

critere_tri_dist(string $idb, array<string|int, mixed> &$boucles, Critere $crit) : void

Le critère {tri} gère un champ de tri qui peut être modifié dynamiquement par la balise #TRI. Il s'utilise donc conjointement avec la balise #TRI dans la même boucle pour génerér les liens qui permettent de changer le critère de tri et le sens du tri

Parameters
$idb : string

Identifiant de la boucle

$boucles : array<string|int, mixed>

AST du squelette

$crit : Critere

Paramètres du critère dans cette boucle

Tags
syntaxe

{tri [champ_par_defaut][,sens_par_defaut][,nom_variable]}

  • champ_par_defaut : un champ de la table sql

  • sens_par_defaut : -1 ou inverse pour décroissant, 1 ou direct pour croissant peut être un tableau pour préciser des sens par défaut associés à chaque champ exemple : array('titre' => 1, 'date' => -1) pour trier par défaut les titre croissants et les dates décroissantes dans ce cas, quand un champ est utilisé pour le tri et n'est pas présent dans le tableau c'est la première valeur qui est utilisée

  • nom_variable : nom de la variable utilisée (par defaut tri_{nomboucle})

    {tri titre} {tri titre,inverse} {tri titre,-1} {tri titre,-1,truc}

Exemple d'utilisation :

<B_articles>
<p>#TRI{titre,'Trier par titre'} | #TRI{date,'Trier par date'}</p>
<ul>
<BOUCLE_articles(ARTICLES){tri titre}>
 <li>#TITRE - [(#DATE|affdate_jourcourt)]</li>
</BOUCLE_articles>
</ul>
</B_articles>
note

Contraitement à {par ...}, {tri} ne peut prendre qu'un seul champ, mais il peut être complété avec {par ...} pour indiquer des criteres secondaires

Exemble : {tri num titre}{par titre} permet de faire un tri sur le rang (modifiable dynamiquement) avec un second critère sur le titre en cas d'égalité des rangs

link
https://www.spip.net/5429
see
critere_par_dist()

Le critère {par ...}

see
balise_TRI_dist()

La balise #TRI

calculer_critere_DEFAUT_dist()

Compile un critère non déclaré explicitement

calculer_critere_DEFAUT_dist(string $idb, array<string|int, mixed> &$boucles, Critere $crit) : void|array<string|int, mixed>

Compile les critères non déclarés, ainsi que les parties de boucles avec les critères {0,1} ou {1/2}

Parameters
$idb : string

Identifiant de la boucle

$boucles : array<string|int, mixed>

AST du squelette

$crit : Critere

Paramètres du critère dans cette boucle

Return values
void|array<string|int, mixed>

calculer_critere_DEFAUT_args()

Compile un critère non déclaré explicitement, dont on reçoit une analyse

calculer_critere_DEFAUT_args(string $idb, array<string|int, mixed> &$boucles, Critere $crit, array<string|int, mixed> $args) : void

Ajoute en fonction des arguments trouvés par calculer_critere_infixe() les conditions WHERE à appliquer sur la boucle.

Parameters
$idb : string

Identifiant de la boucle

$boucles : array<string|int, mixed>

AST du squelette

$crit : Critere

Paramètres du critère dans cette boucle

$args : array<string|int, mixed>

Description du critère Cf. retour de calculer_critere_infixe()

Tags
see
calculer_critere_infixe()

calculer_critere_infixe()

Décrit un critère non déclaré explicitement

calculer_critere_infixe(string $idb, array<string|int, mixed> &$boucles, Critere $crit) : array<string|int, mixed>|string

Décrit un critère non déclaré comme {id_article} {id_article>3} en retournant un tableau de l'analyse si la colonne (ou l'alias) existe vraiment.

Ajoute au passage pour chaque colonne utilisée (alias et colonne véritable) un modificateur['criteres'][colonne].

S'occupe de rechercher des exceptions, tel que

  • les id_parent, id_enfant, id_secteur,
  • des colonnes avec des exceptions déclarées,
  • des critères de date (jour_relatif, ...),
  • des critères sur tables jointes explicites (mots.titre),
  • des critères sur tables de jointure non explicite (id_mot sur une boucle articles...)
Parameters
$idb : string

Identifiant de la boucle

$boucles : array<string|int, mixed>

AST du squelette

$crit : Critere

Paramètres du critère dans cette boucle

Return values
array<string|int, mixed>|string

Liste si on trouve le champ :

  • string $arg Opérande avant l'opérateur : souvent la colonne d'application du critère, parfois un calcul plus complexe dans le cas des dates.
  • string $op L'opérateur utilisé, tel que '='
  • string[] $val Liste de codes PHP obtenant les valeurs des comparaisons (ex: id_article sur la boucle parente) Souvent (toujours ?) un tableau d'un seul élément.
  • $col_alias
  • $where_complement

Chaîne vide si on ne trouve pas le champ...

calculer_critere_infixe_externe()

Décrit un critère non déclaré explicitement, sur un champ externe à la table

calculer_critere_infixe_externe(Boucle $boucle, Critere $crit, string $op, array<string|int, mixed> $desc, string $col, string $col_alias, string $table) : array<string|int, mixed>|string

Décrit un critère non déclaré comme {id_article} {id_article>3} qui correspond à un champ non présent dans la table, et donc à retrouver par jointure si possible.

Parameters
$boucle : Boucle

Description de la boucle

$crit : Critere

Paramètres du critère dans cette boucle

$op : string

L'opérateur utilisé, tel que '='

$desc : array<string|int, mixed>

Description de la table

$col : string

Nom de la colonne à trouver (la véritable)

$col_alias : string

Alias de la colonne éventuel utilisé dans le critère ex: id_enfant

$table : string

Nom de la table SQL de la boucle

Return values
array<string|int, mixed>|string

Liste si jointure possible :

  • string $col
  • string $col_alias
  • string $table
  • array $where
  • array $desc

Chaîne vide si on ne trouve pas le champ par jointure...

primary_doublee()

Calcule une condition WHERE entre un nom du champ et une valeur

primary_doublee(array<string|int, mixed> $decompose, string $table) : array<string|int, string>

Ne pas appliquer sql_quote lors de la compilation, car on ne connait pas le serveur SQL

Parameters
$decompose : array<string|int, mixed>

Liste nom du champ, code PHP pour obtenir la valeur

$table : string

Nom de la table

Tags
todo

Ce nom de fonction n'est pas très clair ?

Return values
array<string|int, string>

Liste de 3 éléments pour une description where du compilateur :

  • operateur (=),
  • table.champ,
  • valeur

calculer_critere_externe_init()

Champ hors table, ça ne peut être qu'une jointure.

calculer_critere_externe_init(Boucle &$boucle, array<string|int, mixed> $joints, string $col, array<string|int, mixed> $desc, bool $cond[, bool|string $checkarrivee = false ]) : string

On cherche la table du champ et on regarde si elle est déjà jointe Si oui et qu'on y cherche un champ nouveau, pas de jointure supplementaire Exemple: criteres {titre_mot=...}{type_mot=...} Dans les 2 autres cas ==> jointure (Exemple: criteres {type_mot=...}{type_mot=...} donne 2 jointures pour selectioner ce qui a exactement ces 2 mots-cles.

Parameters
$boucle : Boucle

Description de la boucle

$joints : array<string|int, mixed>

Liste de jointures possibles (ex: $boucle->jointures ou $boucle->jointures_explicites)

$col : string

Colonne cible de la jointure

$desc : array<string|int, mixed>

Description de la table

$cond : bool

Flag pour savoir si le critère est conditionnel ou non

$checkarrivee : bool|string = false

string : nom de la table jointe où on veut trouver le champ. n'a normalement pas d'appel sans $checkarrivee.

Return values
string

Alias de la table de jointure (Lx) Vide sinon.

calculer_lien_externe_init()

Générer directement une jointure via une table de lien spip_xxx_liens pour un critère {id_xxx}

calculer_lien_externe_init(Boucle &$boucle, array<string|int, mixed> $joints, string $col, array<string|int, mixed> $desc, bool $cond[, bool|string $checkarrivee = false ]) : string
Parameters
$boucle : Boucle

Description de la boucle

$joints : array<string|int, mixed>

Liste de jointures possibles (ex: $boucle->jointures ou $boucle->jointures_explicites)

$col : string

Colonne cible de la jointure

$desc : array<string|int, mixed>

Description de la table

$cond : bool

Flag pour savoir si le critère est conditionnel ou non

$checkarrivee : bool|string = false

string : nom de la table jointe où on veut trouver le champ. n'a normalement pas d'appel sans $checkarrivee.

Tags
todo

$checkarrivee doit être obligatoire ici ?

Return values
string

Alias de la table de jointure (Lx)

trouver_champ()

Recherche la présence d'un champ dans une valeur de tableau

trouver_champ(string $champ, array<string|int, mixed> $where) : bool
Parameters
$champ : string

Expression régulière pour trouver un champ donné. Exemple : /\barticles.titre\b/

$where : array<string|int, mixed>

Tableau de valeurs dans lesquels chercher le champ.

Return values
bool

true si le champ est trouvé quelque part dans $where false sinon.

calculer_critere_infixe_ops()

Détermine l'operateur et les opérandes d'un critère non déclaré

calculer_critere_infixe_ops(string $idb, array<string|int, mixed> &$boucles, Critere $crit) : array<string|int, mixed>

Lorsque l'opérateur n'est pas explicite comme sur {id_article>0} c'est l'opérateur '=' qui est utilisé.

Traite les cas particuliers id_parent, id_enfant, date, lang

Parameters
$idb : string

Identifiant de la boucle

$boucles : array<string|int, mixed>

AST du squelette

$crit : Critere

Paramètres du critère dans cette boucle

Return values
array<string|int, mixed>

Liste :

  • string $fct Nom d'une fonction SQL sur le champ ou vide (ex: SUM)
  • string $col Nom de la colonne SQL utilisée
  • string $op Opérateur
  • string[] $val Liste de codes PHP obtenant les valeurs des comparaisons (ex: id_article sur la boucle parente) Souvent un tableau d'un seul élément.
  • string $args_sql Suite des arguments du critère. ?

calculer_vieux_in()

calculer_vieux_in(mixed $params) : mixed
Parameters
$params : mixed

calculer_critere_infixe_date()

Calcule les cas particuliers de critères de date

calculer_critere_infixe_date(string $idb, array<string|int, mixed> &$boucles, string $col) : string|array<string|int, mixed>

Lorsque la colonne correspond à un critère de date, tel que jour, jour_relatif, jour_x, age, age_relatif, age_x...

Parameters
$idb : string

Identifiant de la boucle

$boucles : array<string|int, mixed>

AST du squelette

$col : string

Nom du champ demandé

Return values
string|array<string|int, mixed>

chaine vide si ne correspond pas à une date, sinon liste

  • expression SQL de calcul de la date,
  • nom de la colonne de date (si le calcul n'est pas relatif)

calculer_param_date()

Calcule l'expression SQL permettant de trouver un nombre de jours écoulés.

calculer_param_date(string $date_compare, string $date_orig) : string

Le calcul SQL retournera un nombre de jours écoulés entre la date comparée et la colonne SQL indiquée

Parameters
$date_compare : string

Code PHP permettant d'obtenir le timestamp référent. C'est à partir de lui que l'on compte les jours

$date_orig : string

Nom de la colonne SQL qui possède la date

Return values
string

Expression SQL calculant le nombre de jours écoulé entre une valeur de colonne SQL et une date.

critere_DATA_source_dist()

Compile le critère {source} d'une boucle DATA

critere_DATA_source_dist(string $idb, array<string|int, mixed> &$boucles, Critere $crit) : mixed

Permet de déclarer le mode d'obtention des données dans une boucle DATA (premier argument) et les données (la suite).

Parameters
$idb : string

Identifiant de la boucle

$boucles : array<string|int, mixed>

AST du squelette

$crit : Critere

Paramètres du critère dans cette boucle

Tags
example

(DATA){source mode, "xxxxxx", arg, arg, arg} (DATA){source tableau, #LISTE{un,deux,trois}}

critere_DATA_datacache_dist()

Compile le critère {datacache} d'une boucle DATA

critere_DATA_datacache_dist(string $idb, array<string|int, mixed> &$boucles, Critere $crit) : mixed

Permet de transmettre une durée de cache (time to live) utilisée pour certaines sources d'obtention des données (par exemple RSS), indiquant alors au bout de combien de temps la donnée est à réobtenir.

La durée par défaut est 1 journée.

Parameters
$idb : string

Identifiant de la boucle

$boucles : array<string|int, mixed>

AST du squelette

$crit : Critere

Paramètres du critère dans cette boucle

critere_php_args_dist()

Compile le critère {args} d'une boucle PHP

critere_php_args_dist(string $idb, array<string|int, mixed> &$boucles, Critere $crit) : mixed

Permet de passer des arguments à un iterateur non-spip (PHP:xxxIterator){args argument1, argument2, argument3}

Parameters
$idb : string

Identifiant de la boucle

$boucles : array<string|int, mixed>

AST du squelette

$crit : Critere

Paramètres du critère dans cette boucle

critere_DATA_liste_dist()

Compile le critère {liste} d'une boucle DATA

critere_DATA_liste_dist(string $idb, array<string|int, mixed> &$boucles, Critere $crit) : mixed

Passe une liste de données à l'itérateur DATA

Parameters
$idb : string

Identifiant de la boucle

$boucles : array<string|int, mixed>

AST du squelette

$crit : Critere

Paramètres du critère dans cette boucle

Tags
example

(DATA){liste X1, X2, X3} équivalent à (DATA){source tableau,#LISTE{X1, X2, X3}}

critere_DATA_enum_dist()

Compile le critère {enum} d'une boucle DATA

critere_DATA_enum_dist(string $idb, array<string|int, mixed> &$boucles, Critere $crit) : mixed

Passe les valeurs de début et de fin d'une énumération, qui seront vues comme une liste d'autant d'éléments à parcourir pour aller du début à la fin.

Cela utilisera la fonction range() de PHP.

Parameters
$idb : string

Identifiant de la boucle

$boucles : array<string|int, mixed>

AST du squelette

$crit : Critere

Paramètres du critère dans cette boucle

Tags
example

(DATA){enum Xdebut, Xfin} (DATA){enum a,z} (DATA){enum z,a} (DATA){enum 1.0,9.2}

link
http://php.net/manual/fr/function.range.php

critere_DATA_datapath_dist()

Compile le critère {datapath} d'une boucle DATA

critere_DATA_datapath_dist(string $idb, array<string|int, mixed> &$boucles, Critere $crit) : mixed

Extrait un chemin d'un tableau de données

(DATA){datapath query.results}

Parameters
$idb : string

Identifiant de la boucle

$boucles : array<string|int, mixed>

AST du squelette

$crit : Critere

Paramètres du critère dans cette boucle

critere_si_dist()

Compile le critère {si}

critere_si_dist(string $idb, array<string|int, mixed> &$boucles, Critere $crit) : mixed

Le critère {si condition} est applicable à toutes les boucles et conditionne l'exécution de la boucle au résultat de la condition. La partie alternative de la boucle est alors affichée si une condition n'est pas remplie (comme lorsque la boucle ne ramène pas de résultat). La différence étant que si la boucle devait réaliser une requête SQL (par exemple une boucle ARTICLES), celle ci n'est pas réalisée si la condition n'est pas remplie.

Les valeurs de la condition sont forcément extérieures à cette boucle (sinon il faudrait l'exécuter pour connaître le résultat, qui doit tester si on exécute la boucle !)

Si plusieurs critères {si} sont présents, ils sont cumulés : si une seule des conditions n'est pas vérifiée, la boucle n'est pas exécutée.

Parameters
$idb : string

Identifiant de la boucle

$boucles : array<string|int, mixed>

AST du squelette

$crit : Critere

Paramètres du critère dans cette boucle

Tags
example

{si #ENV{exec}|=={article}} {si (#_contenu:GRAND_TOTAL|>{10})} {si #AUTORISER{voir,articles}}

critere_noeud_dist()

Compile le critère {noeud}

critere_noeud_dist(string $idb, array<string|int, mixed> &$boucles, Critere $crit) : mixed

Trouver tous les objets qui ont des enfants (les noeuds de l'arbre) {noeud} {!noeud} retourne les feuilles

Parameters
$idb : string

Identifiant de la boucle

$boucles : array<string|int, mixed>

AST du squelette

$crit : Critere

Paramètres du critère dans cette boucle

Tags
global

array $exceptions_des_tables

critere_feuille_dist()

Compile le critère {feuille}

critere_feuille_dist(string $idb, array<string|int, mixed> &$boucles, Critere $crit) : mixed

Trouver tous les objets qui n'ont pas d'enfants (les feuilles de l'arbre) {feuille} {!feuille} retourne les noeuds

Parameters
$idb : string

Identifiant de la boucle

$boucles : array<string|int, mixed>

AST du squelette

$crit : Critere

Paramètres du critère dans cette boucle

Tags
global

array $exceptions_des_tables

public_debusquer_dist()

Point d'entrée pour les erreurs de compilation

public_debusquer_dist([bool|string|array<string|int, mixed> $message = '' ][, string|Contexte $lieu = '' ][, array<string|int, mixed> $opt = [] ]) : null|string|array<string|int, mixed>|true|void

Point d'entrée pour les appels involontaires ($message non vide => erreur) et volontaires (var_mode et var_profile)

Si pas d'autorisation, les erreurs ne sont pas affichées (mais seront dans les logs)

Si l'erreur vient de SPIP, en parler sur spip@rezo.net

Parameters
$message : bool|string|array<string|int, mixed> = ''
  • Message d'erreur (string|array)
  • false pour retourner le texte des messages d'erreurs
  • vide pour afficher les messages d'erreurs
$lieu : string|Contexte = ''

Contexte : lieu d'origine de l'erreur

$opt : array<string|int, mixed> = []

Options pour debug ou tests unitaires

  • 'erreurs' = 'get' : Retourne le tableau des erreurs
  • 'erreurs' = 'reset' : Efface le tableau des erreurs
Return values
null|string|array<string|int, mixed>|true|void
  • string si $message à false.
  • array si $opt 'erreurs' = 'get'
  • true si $opt 'erreurs' = 'reset'

debusquer_compose_message()

debusquer_compose_message(mixed $msg) : mixed
Parameters
$msg : mixed

debusquer_bandeau()

debusquer_bandeau(mixed $erreurs) : mixed
Parameters
$erreurs : mixed

debusquer_contexte()

Affiche proprement dans un tableau le contexte d'environnement

debusquer_contexte(array<string|int, mixed>|string $env) : string
Parameters
$env : array<string|int, mixed>|string
Return values
string

Code HTML

debusquer_loger_erreur()

debusquer_loger_erreur(mixed $msg, mixed $lieu) : mixed
Parameters
$msg : mixed
$lieu : mixed

debusquer_navigation()

debusquer_navigation(mixed $tableau[, mixed $caption = [] ][, mixed $id = 'debug-nav' ]) : mixed
Parameters
$tableau : mixed
$caption : mixed = []
$id : mixed = 'debug-nav'

debusquer_requete()

Retourne le texte d'un message d'erreur de requête

debusquer_requete(array<string|int, mixed> $message) : string|array<string|int, mixed>

Si une boucle cree des soucis, on peut afficher la requete fautive avec son code d'erreur

Parameters
$message : array<string|int, mixed>

Description du message en 3 éléments :

  • numéro d'erreur
  • texte de l'erreur
  • requête en erreur
Return values
string|array<string|int, mixed>

Retourne le texte de l'erreur a afficher ou un tableau si l'erreur est critique

trouve_boucle_debug()

trouve_boucle_debug(mixed $n, mixed $nom[, mixed $debut = 0 ][, mixed $boucle = '' ]) : mixed
Parameters
$n : mixed
$nom : mixed
$debut : mixed = 0
$boucle : mixed = ''

trouve_squelette_inclus()

trouve_squelette_inclus(mixed $script) : mixed
Parameters
$script : mixed

reference_boucle_debug()

reference_boucle_debug(mixed $n, mixed $nom, mixed $self) : mixed
Parameters
$n : mixed
$nom : mixed
$self : mixed

ancre_texte()

ancre_texte(mixed $texte[, mixed $fautifs = [] ][, mixed $nocpt = false ]) : mixed
Parameters
$texte : mixed
$fautifs : mixed = []
$nocpt : mixed = false

debusquer_squelette()

debusquer_squelette(mixed $fonc, mixed $mode, mixed $self) : mixed
Parameters
$fonc : mixed
$mode : mixed
$self : mixed

emboite_texte()

emboite_texte(mixed $res[, mixed $fonc = '' ][, mixed $self = '' ]) : mixed
Parameters
$res : mixed
$fonc : mixed = ''
$self : mixed = ''

count_occ()

count_occ(mixed $regs) : mixed
Parameters
$regs : mixed

debusquer_format_millisecondes()

debusquer_format_millisecondes(mixed $t) : mixed
Parameters
$t : mixed

debusquer_navigation_squelettes()

debusquer_navigation_squelettes(mixed $self) : mixed
Parameters
$self : mixed

debusquer_navigation_boucles()

debusquer_navigation_boucles(mixed $boucles, mixed $nom_skel, mixed $self, mixed $nom_source) : mixed
Parameters
$boucles : mixed
$nom_skel : mixed
$self : mixed
$nom_source : mixed

debusquer_source()

debusquer_source(mixed $objet, mixed $affiche) : mixed
Parameters
$objet : mixed
$affiche : mixed

debusquer_entete()

debusquer_entete(mixed $titre, mixed $corps) : mixed
Parameters
$titre : mixed
$corps : mixed

decompiler_boucle()

decompiler_boucle(mixed $struct[, mixed $fmt = '' ][, mixed $prof = 0 ]) : mixed
Parameters
$struct : mixed
$fmt : mixed = ''
$prof : mixed = 0

decompiler_include()

decompiler_include(mixed $struct[, mixed $fmt = '' ][, mixed $prof = 0 ]) : mixed
Parameters
$struct : mixed
$fmt : mixed = ''
$prof : mixed = 0

decompiler_texte()

decompiler_texte(mixed $struct[, mixed $fmt = '' ][, mixed $prof = 0 ]) : mixed
Parameters
$struct : mixed
$fmt : mixed = ''
$prof : mixed = 0

decompiler_polyglotte()

decompiler_polyglotte(mixed $struct[, mixed $fmt = '' ][, mixed $prof = 0 ]) : mixed
Parameters
$struct : mixed
$fmt : mixed = ''
$prof : mixed = 0

decompiler_idiome()

decompiler_idiome(mixed $struct[, mixed $fmt = '' ][, mixed $prof = 0 ]) : mixed
Parameters
$struct : mixed
$fmt : mixed = ''
$prof : mixed = 0

decompiler_champ()

decompiler_champ(mixed $struct[, mixed $fmt = '' ][, mixed $prof = 0 ]) : mixed
Parameters
$struct : mixed
$fmt : mixed = ''
$prof : mixed = 0

decompiler_liste()

decompiler_liste(mixed $sources[, mixed $fmt = '' ][, mixed $prof = 0 ]) : mixed
Parameters
$sources : mixed
$fmt : mixed = ''
$prof : mixed = 0

decompiler_criteres()

decompiler_criteres(mixed $boucle[, mixed $fmt = '' ][, mixed $prof = 0 ]) : mixed
Parameters
$boucle : mixed
$fmt : mixed = ''
$prof : mixed = 0

decompiler_()

decompiler_(mixed $liste[, mixed $fmt = '' ][, mixed $prof = 0 ]) : mixed
Parameters
$liste : mixed
$fmt : mixed = ''
$prof : mixed = 0

public_decompiler()

public_decompiler(mixed $liste[, mixed $fmt = '' ][, mixed $prof = 0 ][, mixed $quoi = '' ]) : mixed
Parameters
$liste : mixed
$fmt : mixed = ''
$prof : mixed = 0
$quoi : mixed = ''

filtre_introduction_dist()

Calcul d'une introduction

filtre_introduction_dist(string $descriptif, string $texte, string $longueur, string $connect[, string $suite = null ]) : string

L'introduction est prise dans le descriptif s'il est renseigné, sinon elle est calculée depuis le texte : à ce moment là, l'introduction est prise dans le contenu entre les balises <intro> et </intro> si présentes, sinon en coupant le texte à la taille indiquée.

Cette fonction est utilisée par la balise #INTRODUCTION

Parameters
$descriptif : string

Descriptif de l'introduction

$texte : string

texte à utiliser en absence de descriptif

$longueur : string

Longueur de l'introduction

$connect : string

Nom du connecteur à la base de données

$suite : string = null

points de suite si on coupe (par defaut _INTRODUCTION_SUITE et sinon  (...)

Tags
used-by
generer_objet_introduction()
Return values
string

Introduction calculée

filtre_pagination_dist()

Filtre calculant une pagination, utilisé par la balise `#PAGINATION`

filtre_pagination_dist(int $total, string $nom, int $position, int $pas[, bool $liste = true ][, string $modele = '' ][, string $connect = '' ][, array<string|int, mixed> $env = [] ]) : string

Le filtre cherche le modèle pagination.html par défaut, mais peut chercher un modèle de pagination particulier avec l'argument $modele. S'il $modele='prive', le filtre cherchera le modèle pagination_prive.html.

Parameters
$total : int

Nombre total d'éléments

$nom : string

Nom identifiant la pagination

$position : int

Page à afficher (tel que la 3è page)

$pas : int

Nombre d'éléments par page

$liste : bool = true
  • True pour afficher toute la liste des éléments,
  • False pour n'afficher que l'ancre
$modele : string = ''

Nom spécifique du modèle de pagination

$connect : string = ''

Nom du connecteur à la base de données

$env : array<string|int, mixed> = []

Environnement à transmettre au modèle

Tags
filtre
see
balise_PAGINATION_dist()
Return values
string

Code HTML de la pagination

filtre_bornes_pagination_dist()

Calcule les bornes d'une pagination

filtre_bornes_pagination_dist(int $courante, int $nombre[, int $max = 10 ]) : array<string|int, int>
Parameters
$courante : int

Page courante

$nombre : int

Nombre de pages

$max : int = 10

Nombre d'éléments par page

Tags
filtre
Return values
array<string|int, int>

Liste (première page, dernière page).

filtre_pagination_affiche_texte_lien_page_dist()

filtre_pagination_affiche_texte_lien_page_dist(mixed $type_pagination, mixed $numero_page, mixed $rang_item) : mixed
Parameters
$type_pagination : mixed
$numero_page : mixed
$rang_item : mixed

lister_objets_avec_logos()

Retourne pour une clé primaire d'objet donnée les identifiants ayant un logo

lister_objets_avec_logos(string $type) : string
Parameters
$type : string

Nom de la clé primaire de l'objet

Tags
used-by
critere_logo_dist()

Pour obtenir les éléments qui ont un logo

Return values
string

Liste des identifiants ayant un logo (séparés par une virgule)

calculer_notes()

Renvoie l'état courant des notes, le purge et en prépare un nouveau

calculer_notes() : string

Fonction appelée par la balise #NOTES

Tags
see
balise_NOTES_dist()
uses
inc_notes_dist()
Return values
string

Code HTML des notes

retrouver_rang_lien()

Retrouver le rang du lien entre un objet source et un obet lie utilisable en direct dans un formulaire d'edition des liens, mais #RANG doit faire le travail automatiquement [(#ENV{objet_source}|rang_lien{#ID_AUTEUR,#ENV{objet},#ENV{id_objet},#ENV{_objet_lien}})]

retrouver_rang_lien(string $objet_source, int $ids, string $objet_lie, int $idl, string $objet_lien) : string
Parameters
$objet_source : string
$ids : int
$objet_lie : string
$idl : int
$objet_lien : string
Return values
string

lister_objets_liens()

Lister les liens en le memoizant dans une static pour utilisation commune par lister_objets_lies et retrouver_rang_lien dans un formulaire d'edition de liens (evite de multiplier les requetes)

lister_objets_liens(string $objet_source, string $objet, int $id_objet, string $objet_lien) : mixed
Parameters
$objet_source : string
$objet : string
$id_objet : int
$objet_lien : string
Tags
private

calculer_rang_smart()

Calculer la balise #RANG quand ce n'est pas un champ rang : peut etre le num titre, le champ rang_lien ou le rang du lien en edition des liens, a retrouver avec les infos du formulaire

calculer_rang_smart(string $titre, string $objet_source, int $id, array<string|int, mixed> $env) : int|string
Parameters
$titre : string
$objet_source : string
$id : int
$env : array<string|int, mixed>
Return values
int|string

calculer_balise_tri()

Calcul de la balise #TRI

calculer_balise_tri(string $champ_ou_sens, string $libelle, string $classe, string $tri_nom, string $tri_champ, string $tri_sens, array<string|int, mixed>|string|int $liste_tri_sens_defaut[, string $nom_pagination = '' ]) : string
Parameters
$champ_ou_sens : string
  • soit le nom de champ sur lequel effectuer le nouveau tri
  • soit < et > pour définir le sens du tri sur le champ actuel
$libelle : string

Texte du lien

$classe : string

Classe ajoutée au lien, telle que ajax

$tri_nom : string

Nom du paramètre définissant le tri

$tri_champ : string

Nom du champ actuel utilisé pour le tri

$tri_sens : string

Sens de tri actuel, 1 ou -1

$liste_tri_sens_defaut : array<string|int, mixed>|string|int

Soit la liste des sens de tri par défaut pour chaque champ Soit une valeur par défaut pour tous les champs (1, -1, inverse)

$nom_pagination : string = ''

Nom de la boucle

Return values
string

HTML avec un lien cliquable

tri_protege_champ()

Proteger les champs passes dans l'url et utiliser dans {tri ...} preserver l'espace pour interpreter ensuite num xxx et multi xxx on permet d'utiliser les noms de champ prefixes articles.titre et les propriete json properties.gis[0].ville

tri_protege_champ(string $t) : string
Parameters
$t : string
Return values
string

tri_champ_order()

Interpreter les multi xxx et num xxx utilise comme tri pour la clause order 'multi xxx' devient simplement 'multi' qui est calcule dans le select

tri_champ_order(string $t[, array<string|int, mixed> $from = null ][, mixed $senstri = '' ]) : string
Parameters
$t : string
$from : array<string|int, mixed> = null
$senstri : mixed = ''
Return values
string

tri_champ_select()

Interpreter les multi xxx et num xxx utilise comme tri pour la clause select 'multi xxx' devient select "...." as multi les autres cas ne produisent qu'une chaine vide '' en select 'hasard' devient 'rand() AS hasard' dans le select

tri_champ_select(string $t) : string
Parameters
$t : string
Return values
string

formate_liste_critere_par_ordre_liste()

Fonction de mise en forme utilisee par le critere {par_ordre_liste..}

formate_liste_critere_par_ordre_liste(array<string|int, mixed> $valeurs[, string $serveur = '' ]) : string
Parameters
$valeurs : array<string|int, mixed>
$serveur : string = ''
Tags
see
critere_par_ordre_liste_dist()
Return values
string

filtre_styles_inline_page_login_pass_dist()

generer le style dynamique inline pour la page de login et spip_pass

filtre_styles_inline_page_login_pass_dist(array<string|int, mixed> &$Pile,  ...$dummy) : string
Parameters
$Pile : array<string|int, mixed>

Pile de données

$dummy :
Return values
string

format_boucle_html()

format_boucle_html(mixed $preaff, mixed $avant, mixed $nom, mixed $type, mixed $crit, mixed $corps, mixed $apres, mixed $altern, mixed $postaff, mixed $prof) : mixed
Parameters
$preaff : mixed
$avant : mixed
$nom : mixed
$type : mixed
$crit : mixed
$corps : mixed
$apres : mixed
$altern : mixed
$postaff : mixed
$prof : mixed

format_inclure_html()

format_inclure_html(mixed $file, mixed $args, mixed $prof) : mixed
Parameters
$file : mixed
$args : mixed
$prof : mixed

format_polyglotte_html()

format_polyglotte_html(mixed $args, mixed $prof) : mixed
Parameters
$args : mixed
$prof : mixed

format_idiome_html()

format_idiome_html(mixed $nom, mixed $module, mixed $args, mixed $filtres, mixed $prof) : mixed
Parameters
$nom : mixed
$module : mixed
$args : mixed
$filtres : mixed
$prof : mixed

format_champ_html()

format_champ_html(mixed $nom, mixed $boucle, mixed $etoile, mixed $avant, mixed $apres, mixed $args, mixed $filtres, mixed $prof) : mixed
Parameters
$nom : mixed
$boucle : mixed
$etoile : mixed
$avant : mixed
$apres : mixed
$args : mixed
$filtres : mixed
$prof : mixed

format_critere_html()

format_critere_html(mixed $critere) : mixed
Parameters
$critere : mixed

format_liste_html()

format_liste_html(mixed $fonc, mixed $args, mixed $prof) : mixed
Parameters
$fonc : mixed
$args : mixed
$prof : mixed

format_suite_html()

format_suite_html(mixed $args) : mixed
Parameters
$args : mixed

format_texte_html()

format_texte_html(mixed $texte) : mixed
Parameters
$texte : mixed

declarer_interfaces()

Déclarer les interfaces de la base pour le compilateur

declarer_interfaces() : void

On utilise une fonction qui initialise les valeurs, sans écraser d'eventuelles prédéfinition dans mes_options et les envoie dans un pipeline pour les plugins

decompose_champ_id_objet()

Décomposer un champ id_truc en (id_objet,objet,truc)

decompose_champ_id_objet(string $champ) : array<string|int, mixed>|string

Exemple : décompose id_article en (id_objet,objet,article)

Parameters
$champ : string

Nom du champ à décomposer

Return values
array<string|int, mixed>|string

Tableau si décomposable : 'id_objet', 'objet', Type de l'objet Chaine sinon : le nom du champ (non décomposable donc)

trouver_champs_decomposes()

Mapping d'un champ d'une jointure en deux champs id_objet,objet si nécessaire

trouver_champs_decomposes(string $champ, array<string|int, mixed> $desc) : array<string|int, mixed>

Si le champ demandé existe dans la table, on l'utilise, sinon on regarde si le champ se décompose en objet/id_objet et si la table possède ces champs, et dans ce cas, on les retourne.

Parameters
$champ : string

Nom du champ à tester (ex. id_article)

$desc : array<string|int, mixed>

Description de la table

Tags
uses
decompose_champ_id_objet()
used-by
calculer_chaine_jointures()
Return values
array<string|int, mixed>

Liste du/des champs. Soit

  • array($champ), si le champ existe dans la table ou si on ne peut décomposer.
  • array(id_objet, objet), si le champ n'existe pas mais qu'on peut décomposer

calculer_jointure()

Calculer et construite une jointure entre $depart et $arrivee

calculer_jointure(Boucle &$boucle, array<string|int, mixed> $depart, array<string|int, mixed> $arrivee[, string $col = '' ][, bool $cond = false ][, int $max_liens = 5 ]) : string

L'objet boucle est modifié pour compléter la requête. La fonction retourne l'alias d'arrivée une fois la jointure construire, en general un "Lx"

Parameters
$boucle : Boucle

Description de la boucle

$depart : array<string|int, mixed>

Table de départ, sous la forme (nom de la table, description de la table)

$arrivee : array<string|int, mixed>

Table d'arrivée, sous la forme (nom de la table, description de la table)

$col : string = ''

Colonne cible de la jointure

$cond : bool = false

Flag pour savoir si le critère est conditionnel ou non

$max_liens : int = 5

Nombre maximal de liaisons possibles pour trouver la jointure.

Tags
uses
calculer_chaine_jointures()
uses
fabrique_jointures()
used-by
trouver_jointure_champ()
Return values
string

Alias de la table de jointure (Lx)

fabrique_jointures()

Fabriquer une jointure à l'aide d'une liste descriptive d'étapes

fabrique_jointures(Boucle &$boucle, array<string|int, mixed> $res[, bool $cond = false ][, array<string|int, mixed> $desc = [] ][, string $nom = '' ][, string $col = '' ][, bool $echap = true ]) : string

Ajoute

  • la jointure dans le tableau $boucle->join,
  • la table de jointure dans le from
  • un modificateur 'lien'
Parameters
$boucle : Boucle

Description de la boucle

$res : array<string|int, mixed>

Chaîne des jointures $res = array( array(table_depart,array(table_arrivee,desc),jointure), ... ) Jointure peut être un tableau pour les jointures sur champ decomposé array('id_article','id_objet','objet','article') array('id_objet','id_article','objet','article')

$cond : bool = false

Flag pour savoir si le critère est conditionnel ou non

$desc : array<string|int, mixed> = []

Description de la table de départ

$nom : string = ''

Nom de la table de départ

$col : string = ''

Colonne cible de la jointure

$echap : bool = true

Écrire les valeurs dans boucle->join en les échappant ou non ?

Tags
uses
nogroupby_if()
uses
liste_champs_jointures()
used-by
calculer_jointure()
Return values
string

Alias de la table de jointure (Lx)

nogroupby_if()

Condition suffisante pour qu'un Group-By ne soit pas nécéssaire

nogroupby_if(array<string|int, mixed> $depart, array<string|int, mixed> $arrivee, string|array<string|int, mixed> $col) : bool

À améliorer, notamment voir si calculer_select ne pourrait pas la réutiliser lorsqu'on sait si le critere conditionnel est finalement present

Parameters
$depart : array<string|int, mixed>
$arrivee : array<string|int, mixed>
$col : string|array<string|int, mixed>
Tags
used-by
fabrique_jointures()
Return values
bool

liste_champs_jointures()

Lister les champs candidats a une jointure, sur une table si un join est fourni dans la description, c'est lui qui l'emporte sauf si cle primaire explicitement demandee par $primary

liste_champs_jointures(string $nom, array<string|int, mixed> $desc[, bool $primary = false ]) : array<string|int, mixed>

sinon on construit une liste des champs a partir de la liste des cles de la table

Parameters
$nom : string
$desc : array<string|int, mixed>
$primary : bool = false
Tags
uses
split_key()
used-by
fabrique_jointures()
used-by
calculer_chaine_jointures()
used-by
trouver_champ_exterieur()
Return values
array<string|int, mixed>

split_key()

Eclater une cle composee en plusieurs champs

split_key(string $v[, array<string|int, mixed> $join = [] ]) : array<string|int, mixed>
Parameters
$v : string
$join : array<string|int, mixed> = []
Tags
used-by
liste_champs_jointures()
Return values
array<string|int, mixed>

calculer_chaine_jointures()

Constuire la chaine de jointures, de proche en proche

calculer_chaine_jointures(objetc &$boucle, array<string|int, mixed> $depart, array<string|int, mixed> $arrivee[, array<string|int, mixed> $vu = [] ][, array<string|int, mixed> $milieu_exclus = [] ][, int $max_liens = 5 ]) : array<string|int, mixed>
Parameters
$boucle : objetc
$depart : array<string|int, mixed>

sous la forme array(nom de la table, description)

$arrivee : array<string|int, mixed>

sous la forme array(nom de la table, description)

$vu : array<string|int, mixed> = []

tables deja vues dans la jointure, pour ne pas y repasser

$milieu_exclus : array<string|int, mixed> = []

cles deja utilisees, pour ne pas les reutiliser

$max_liens : int = 5

nombre maxi d'etapes

Tags
uses
liste_champs_jointures()
uses
trouver_champs_decomposes()
used-by
calculer_jointure()
Return values
array<string|int, mixed>

trouver_cles_table()

applatit les cles multiples redondance avec split_key() ? a mutualiser

trouver_cles_table(array<string|int, mixed> $keys) : array<string|int, mixed>
Parameters
$keys : array<string|int, mixed>
Return values
array<string|int, mixed>

chercher_champ_dans_tables()

Indique si une colonne (ou plusieurs colonnes) est présente dans l'une des tables indiquée.

chercher_champ_dans_tables(string|array<string|int, mixed> $cle, array<string|int, mixed> $tables, string $connect[, bool|string $checkarrivee = false ]) : array<string|int, mixed>|false
Parameters
$cle : string|array<string|int, mixed>

Nom de la ou des colonnes à trouver dans les tables indiquées

$tables : array<string|int, mixed>

Liste de noms de tables ou des couples (alias => nom de table).

  • $boucle->from (alias => nom de table) : les tables déjà utilisées dans une boucle
  • $boucle->jointures : les tables utilisables en tant que jointure
  • $boucle->jointures_explicites les jointures explicitement indiquées à l'écriture de la boucle
$connect : string

Nom du connecteur SQL

$checkarrivee : bool|string = false

false : peu importe la table, si on trouve le/les champs, c'est bon. string : nom de la table où on veut trouver le champ.

Return values
array<string|int, mixed>|false

false : on n'a pas trouvé array : infos sur la table trouvée. Les clés suivantes sont retournés :

  • 'desc' : tableau de description de la table,
  • 'table' : nom de la table
  • 'alias' : alias utilisé pour la table (si pertinent. ie: avec $boucle->from transmis par exemple)

trouver_champ_exterieur()

Cherche une colonne (ou plusieurs colonnes) dans les tables de jointures possibles indiquées.

trouver_champ_exterieur(string|array<string|int, mixed> $cle, array<string|int, mixed> $joints, Boucle &$boucle[, bool|string $checkarrivee = false ]) : array<string|int, mixed>|string
Parameters
$cle : string|array<string|int, mixed>

Nom de la ou des colonnes à trouver dans les tables de jointures

$joints : array<string|int, mixed>

Liste des jointures possibles (ex: $boucle->jointures ou $boucle->jointures_explicites)

$boucle : Boucle

Description de la boucle

$checkarrivee : bool|string = false

false : peu importe la table, si on trouve le/les champs, c'est bon. string : nom de la table jointe où on veut trouver le champ.

Tags
uses
chercher_champ_dans_tables()
uses
decompose_champ_id_objet()
uses
liste_champs_jointures()
used-by
trouver_jointure_champ()
Return values
array<string|int, mixed>|string

chaîne vide : on n'a pas trouvé liste si trouvé : nom de la table, description de la table, clé(s) de la table

trouver_jointure_champ()

Cherche a ajouter la possibilite d'interroger un champ sql dans une boucle.

trouver_jointure_champ(string $champ, object &$boucle[, array<string|int, mixed> $jointures = false ][, bool $cond = false ][, bool|string $checkarrivee = false ]) : string

Cela construira les jointures necessaires si une possibilite est trouve et retournera le nom de l'alias de la table contenant ce champ (L2 par exemple pour 'spip_mots AS L2' dans le FROM),

Parameters
$champ : string

Nom du champ cherche (exemple id_article)

$boucle : object

Informations connues de la boucle

$jointures : array<string|int, mixed> = false

Liste des tables parcourues (articles, mots) pour retrouver le champ sql et calculer la jointure correspondante. En son absence et par defaut, on utilise la liste des jointures connues par SPIP pour la table en question ($boucle->jointures)

$cond : bool = false

flag pour savoir si le critere est conditionnel ou non

$checkarrivee : bool|string = false

false : peu importe la table, si on trouve le/les champs, c'est bon. string : nom de la table jointe où on veut trouver le champ.

Tags
uses
trouver_champ_exterieur()
uses
calculer_jointure()
Return values
string

phraser_vieux_modele()

phraser_vieux_modele(mixed $p) : mixed
Parameters
$p : mixed

phraser_vieux_inclu()

phraser_vieux_inclu(mixed $p) : mixed
Parameters
$p : mixed

normaliser_args_inclumodel()

Accepte la syntaxe historique {arg1=val1}{arg2=val2}... dans les INCLURE au lieu de {arg1=val1,arg2=val2,...}

normaliser_args_inclumodel(Champ|Inclure $p) : void
Parameters
$p : Champ|Inclure

normaliser_inclure()

Trim les arguments de <INCLURE> et repère l'argument spécial fond=

normaliser_inclure(Inclure $champ) : void
Parameters
$champ : Inclure

public_parametrer_dist()

public_parametrer_dist(mixed $fond[, mixed $contexte = '' ][, mixed $cache = '' ][, string $connect = '' ]) : mixed
Parameters
$fond : mixed
$contexte : mixed = ''
$cache : mixed = ''
$connect : string = ''

presenter_contexte()

Retourne une présentation succincte du contexte pour les logs

presenter_contexte(array<string|int, mixed> $contexte[, mixed $profondeur_max = 1 ][, mixed $max_lines = 0 ]) : string
Parameters
$contexte : array<string|int, mixed>
$profondeur_max : mixed = 1
$max_lines : mixed = 0
Return values
string

tester_redirection()

Si le champ virtuel est non vide c'est une redirection.

tester_redirection(string $fond, array<string|int, mixed> $contexte, string $connect) : array<string|int, mixed>|bool

avec un eventuel raccourci Spip

si le raccourci a un titre il sera pris comme corps du 302

Parameters
$fond : string
$contexte : array<string|int, mixed>
$connect : string
Tags
uses
public_tester_redirection_dist()
Return values
array<string|int, mixed>|bool

public_tester_redirection_dist()

Si le champ virtuel est non vide c'est une redirection.

public_tester_redirection_dist(string $fond, array<string|int, mixed> $contexte, string $connect) : array<string|int, mixed>|bool

avec un eventuel raccourci Spip

si le raccourci a un titre il sera pris comme corps du 302

Parameters
$fond : string
$contexte : array<string|int, mixed>
$connect : string
Tags
used-by
tester_redirection()
Return values
array<string|int, mixed>|bool

phraser_inclure()

Parser les <INCLURE> dans le texte

phraser_inclure(string $texte, int $ligne, array<string|int, mixed> $result) : array<string|int, mixed>
Parameters
$texte : string
$ligne : int
$result : array<string|int, mixed>
Return values
array<string|int, mixed>

phraser_polyglotte()

Phraser les <multi>...</multi> on passe en dernier de toutes les analyses : a ce stade il ne reste que des morceaux de texte entre balises/boucles, donc une <multi> ne peut pas contenir de balises

phraser_polyglotte(string $texte, int $ligne, array<string|int, mixed> $result) : array<string|int, mixed>
Parameters
$texte : string
$ligne : int
$result : array<string|int, mixed>
Tags
use

Spip\Texte\Collecteur\Multis

used-by
phraser_champs()
Return values
array<string|int, mixed>

phraser_idiomes()

Repérer les balises de traduction (idiomes)

phraser_idiomes(string $texte, int $ligne, array<string|int, mixed> $result) : array<string|int, mixed>

Phrase les idiomes tel que

  • <:chaine:>
  • <:module:chaine:>
  • <:module:chaine{arg1=texte1,arg2=#BALISE}|filtre1{texte2,#BALISE}|filtre2:>
Parameters
$texte : string
$ligne : int
$result : array<string|int, mixed>
Tags
note

chaine peut etre vide si =texte1 est present et arg1 est vide sinon ce n'est pas un idiome

Return values
array<string|int, mixed>

phraser_champs()

Repère et phrase les balises SPIP tel que `#NOM` dans un texte

phraser_champs(string $texte, int $ligne, array<string|int, mixed> $result) : array<string|int, mixed>

Phrase également ses arguments si la balise en a (#NOM{arg, ...})

Parameters
$texte : string
$ligne : int
$result : array<string|int, mixed>
Tags
uses
phraser_polyglotte()
uses
phraser_args()
uses
phraser_vieux()
Return values
array<string|int, mixed>

phraser_champs_etendus()

Phraser les champs etendus

phraser_champs_etendus(string $texte, int $ligne, array<string|int, mixed> $result) : array<string|int, mixed>
Parameters
$texte : string
$ligne : int
$result : array<string|int, mixed>
Tags
note

C'est phraser_champs_interieurs() qui va le faire. On lui fournit un marqueur $sep qui n'est pas contenu dans le texte et qu'il peut utiliser de manière sûre pour remplacer au fur et à mesure les champs imbriquées qu'il va trouver

see
phraser_champs_interieurs()
Return values
array<string|int, mixed>

phraser_args()

Analyse les filtres d'un champ etendu et affecte le resultat renvoie la liste des lexemes d'origine augmentee de ceux trouves dans les arguments des filtres (rare) sert aussi aux arguments des includes et aux criteres de boucles Tres chevelu

phraser_args(string $texte, string $fin, string $sep, array<string|int, mixed> $result, Champ|Inclure|Idiome|Boucle &$pointeur_champ, int &$pos_debut) : array<string|int, mixed>
Parameters
$texte : string
$fin : string
$sep : string
$result : array<string|int, mixed>
$pointeur_champ : Champ|Inclure|Idiome|Boucle
$pos_debut : int
Tags
used-by
phraser_champs()
Return values
array<string|int, mixed>

phraser_arg()

phraser_arg(mixed &$texte, mixed $sep, mixed $result, mixed &$pointeur_champ) : mixed
Parameters
$texte : mixed
$sep : mixed
$result : mixed
$pointeur_champ : mixed

phraser_champs_exterieurs()

Reconstruire un tableau de resultat ordonné selon l'ordre d'apparition dans le texte issu de phraser_champs_interieurs() et phraser les inclure sur les morceaux intermédiaires

phraser_champs_exterieurs(string $texte, int $ligne, string $sep, array<string|int, mixed> $nested_res) : array<string|int, mixed>
Parameters
$texte : string
$ligne : int
$sep : string
$nested_res : array<string|int, mixed>
Return values
array<string|int, mixed>

phraser_champs_interieurs()

Parser un texte pour trouver toutes les balises complètes `[...(#TRUC)...]` en gérant les imbrications possibles

phraser_champs_interieurs(string $texte, int $no_ligne, string $sep) : array<string|int, mixed>

Pour cela on commence par les plus profondes, sans rien dedans, on les remplace par un placehoder inactif %###N@ ou N indexe un tableau comportant le resultat de leur analyse et on recommence jusqu'à ce qu'on ne trouve plus rien

Parameters
$texte : string
$no_ligne : int
$sep : string
Return values
array<string|int, mixed>

phraser_vieux()

Gerer les derogations de syntaxe historiques Ne concerne plus que #MODELE et <INCLURE> / #INCLURE

phraser_vieux(Champ|Inclure &$champ) : void
Parameters
$champ : Champ|Inclure
Tags
used-by
phraser_champs()

phraser_criteres()

Analyse les critères de boucle

phraser_criteres(array<string|int, mixed> $params, Boucle &$result) : void

Chaque paramètre de la boucle (tel que {id_article>3}) est analysé pour construire un critère (objet Critere) de boucle.

Un critère a une description plus fine que le paramètre original car on en extrait certaines informations tel que la négation et l'opérateur utilisé s'il y a.

La fonction en profite pour déclarer des modificateurs de boucles en présence de certains critères (tout, plat) ou initialiser des variables de compilation (doublons)...

Parameters
$params : array<string|int, mixed>

Tableau de description des paramètres passés à la boucle. Chaque paramètre deviendra un critère

$result : Boucle

Description de la boucle Elle sera complété de la liste de ses critères

phraser_critere_infixe()

phraser_critere_infixe(mixed $arg1, mixed $arg2, mixed $args, mixed $op, mixed $not, mixed $cond) : mixed
Parameters
$arg1 : mixed
$arg2 : mixed
$args : mixed
$op : mixed
$not : mixed
$cond : mixed

public_compte_ligne()

Compter le nombre de lignes dans une partie texte

public_compte_ligne(string $texte[, int $debut = 0 ][, int|null $fin = null ]) : int
Parameters
$texte : string
$debut : int = 0
$fin : int|null = null
Return values
int

public_trouver_premiere_boucle()

Trouver la boucle qui commence en premier dans un texte On repere les boucles via <BOUCLE_xxx( et ensuite on regarde son vrai debut soit <B_xxx> soit <BB_xxx>

public_trouver_premiere_boucle(string $texte, string $id_parent, array<string|int, mixed> $descr[, int $pos_debut_texte = 0 ]) : array<string|int, mixed>|null
Parameters
$texte : string
$id_parent : string
$descr : array<string|int, mixed>
$pos_debut_texte : int = 0
Return values
array<string|int, mixed>|null

public_trouver_fin_boucle()

Trouver la fin de la boucle (balises </B <//B </BB) en faisant attention aux boucles anonymes qui ne peuvent etre imbriquees

public_trouver_fin_boucle(string $texte, string $id_parent, array<string|int, mixed> $boucle, int $pos_debut_texte, object $result) : array<string|int, mixed>
Parameters
$texte : string
$id_parent : string
$boucle : array<string|int, mixed>
$pos_debut_texte : int
$result : object
Return values
array<string|int, mixed>

la description de la boucle dans un tableau associatif

phraser_boucle_placeholder()

phraser_boucle_placeholder(object|string &$champ[, string|null $boucle_placeholder = null ][, null|object $boucle = null ]) : mixed
Parameters
$champ : object|string
$boucle_placeholder : string|null = null
$boucle : null|object = null

public_generer_boucle_placeholder()

Generer une balise placeholder qui prend la place de la boucle pour continuer le parsing des balises

public_generer_boucle_placeholder(string $id_boucle, Boucle &$boucle, string $boucle_placeholder, int $nb_lignes) : string
Parameters
$id_boucle : string
$boucle : Boucle
$boucle_placeholder : string
$nb_lignes : int
Return values
string

public_phraser_html_dist()

Analyseur syntaxique des squelettes HTML SPIP On commence par analyser les boucles, les mémoriser, et les remplacer dans le texte par des placeholder qui ne genent pas la suite de l'analyse des balises et autres

public_phraser_html_dist(string $texte, string $id_parent, array<string, Boucle&$boucles, array<string|int, mixed> $descr[, int $ligne_debut_texte = 1 ][, string|null $boucle_placeholder = null ]) : array<string|int, mixed>
Parameters
$texte : string
$id_parent : string
$boucles : array<string, Boucle>
$descr : array<string|int, mixed>
$ligne_debut_texte : int = 1
$boucle_placeholder : string|null = null
Tags
throws
JsonException
Return values
array<string|int, mixed>

quete_virtuel()

Retourne l'URL de redirection d'un article virtuel, seulement si il est publié

quete_virtuel(int $id_article, string $connect) : array<string|int, mixed>|bool|null
Parameters
$id_article : int
$connect : string
Return values
array<string|int, mixed>|bool|null

quete_parent_lang()

Retourne le couple `parent,lang` pour toute table

quete_parent_lang(string $table, int $id[, string $connect = '' ]) : array<string|int, mixed>

En pratique id_rubrique si présent (ou id_parent pour table rubriques) et champ lang si présent

Parameters
$table : string
$id : int
$connect : string = ''
Return values
array<string|int, mixed>

quete_parent()

Retourne le parent d'une rubrique

quete_parent(int $id_rubrique[, string $connect = '' ]) : int

Repose sur la fonction quete_parent_lang pour la mutualisation +mise en cache SQL des requêtes

Parameters
$id_rubrique : int
$connect : string = ''
Tags
uses
quete_parent_lang()
used-by
quete_profondeur()
Return values
int

quete_rubrique()

Retourne la rubrique d'un article

quete_rubrique(int $id_article, string $serveur) : int

Repose sur la fonction quete_parent_lang pour la mutualisation +mise en cache SQL des requêtes

Parameters
$id_article : int
$serveur : string
Tags
uses
quete_parent_lang()
Return values
int

quete_profondeur()

Retourne la profondeur d'une rubrique

quete_profondeur(int $id[, string $connect = '' ]) : int
Parameters
$id : int
$connect : string = ''
Tags
uses
quete_parent()
Return values
int

quete_condition_postdates()

Retourne la condition sur la date lorsqu'il y a des post-dates

quete_condition_postdates(string $champ_date[, string $serveur = '' ][, bool $ignore_previsu = false ]) : string
Parameters
$champ_date : string

Nom de la colonne de date dans la table SQL

$serveur : string = ''
$ignore_previsu : bool = false

true pour forcer le test même en prévisu

Return values
string

Morceau de la requête SQL testant la date

quete_condition_statut()

Calculer la condition pour filtrer les status,

quete_condition_statut(string $mstatut, string $previsu, string $publie[, string $serveur = '' ][, bool $ignore_previsu = false ]) : array<string|int, mixed>|string
Parameters
$mstatut : string

Le champ de la table sur lequel porte la condition

$previsu : string

Mode previsu : statut ou liste des statuts séparés par une virgule

$publie : string

Mode publie : statut ou liste des statuts séparés par une virgule

$serveur : string = ''

Serveur de BDD

$ignore_previsu : bool = false

true pour forcer le test même en prévisu

Return values
array<string|int, mixed>|string

quete_fichier()

Retourne le fichier d'un document

quete_fichier(int $id_document[, string $serveur = '' ]) : array<string|int, mixed>|bool|null
Parameters
$id_document : int
$serveur : string = ''
Return values
array<string|int, mixed>|bool|null

quete_document()

Toute les infos sur un document

quete_document(int $id_document[, string $serveur = '' ]) : array<string|int, mixed>|bool
Parameters
$id_document : int
$serveur : string = ''
Return values
array<string|int, mixed>|bool

quete_meta()

Récuperer une meta sur un site (spip) distant (en local il y a plus simple)

quete_meta(string $nom, string $serveur) : array<string|int, mixed>|bool|null
Parameters
$nom : string

Nom de la méta

$serveur : string

Connecteur

Return values
array<string|int, mixed>|bool|null

Retourne le logo d'un objet, éventuellement par héritage

quete_logo(string $cle_objet, string $onoff, int $id, int $id_rubrique[, mixed $flag = false ]) : array<string|int, mixed>|string

Si flag != false, retourne le chemin du fichier, sinon retourne un tableau de 3 elements : le chemin du fichier, celui du logo de survol, l'attribut style=w/h.

Parameters
$cle_objet : string

Nom de la clé de l'objet dont on veut chercher le logo.

$onoff : string

Sélectionne quel(s) logo(s) : "on" pour le logo normal, "off" pour le logo de survol, ou "ON" pour l'ensemble.

$id : int

Identifiant de l'objet dont on veut chercher le logo.

$id_rubrique : int

Identifiant de la rubrique parente si l'on veut aller chercher son logo dans le cas où l'objet demandé n'en a pas.

$flag : mixed = false
Tags
deprecated

@param bool $flag Lorsque le drapeau est évalué comme "true", la fonction ne renvoie que le chemin du fichier, sinon elle renvoie le tableau plus complet.

used-by
generer_code_logo()
Return values
array<string|int, mixed>|string

Retourne soit un tableau, soit le chemin du fichier.

quete_logo_objet()

Chercher le logo d'un contenu précis

quete_logo_objet(int $id_objet, string $objet, string $mode) : bool|array<string|int, mixed>
Parameters
$id_objet : int

Idenfiant de l'objet dont on cherche le logo

$objet : string

Type de l'objet dont on cherche le logo

$mode : string

"on" ou "off" suivant le logo normal ou survol

Return values
bool|array<string|int, mixed>

quete_logo_file()

Retourne le logo d’un fichier (document spip) sinon la vignette du type du fichier

quete_logo_file(array<string|int, mixed> $row[, string $connect = null ]) : bool|string

Fonction appeleé par la balise #LOGO_DOCUMENT

Parameters
$row : array<string|int, mixed>
$connect : string = null
Return values
bool|string

quete_logo_document()

Trouver l'image logo d'un document

quete_logo_document(array<string|int, mixed> $row,  $lien,  $align,  $mode_logo,  $x,  $y[, string $connect = '' ]) : string
Parameters
$row : array<string|int, mixed>

description du document, issue de la base

$lien :

url de lien

$align :

alignement left/right

$mode_logo :

mode du logo : '' => automatique (vignette sinon apercu sinon icone) icone => icone du type du fichier apercu => apercu de l'image exclusivement, meme si une vignette existe vignette => vignette exclusivement, ou rien si elle n'existe pas

$x :

largeur maxi

$y :

hauteur maxi

$connect : string = ''

serveur

Return values
string

Recuperer le HTML du logo d'apres ses infos

quete_html_logo(array<string|int, mixed> $logo, string $align, string $lien) : string
Parameters
$logo : array<string|int, mixed>
$align : string
$lien : string
Tags
used-by
generer_code_logo()
Return values
string

document_spip_externe()

Retourne le chemin d’un document lorsque le connect est précisé

document_spip_externe(string $fichier, string $connect) : string|false

Sur un connecteur distant, voir si on connait l’adresse du site (spip distant) et l’utiliser le cas échéant.

Parameters
$fichier : string

Chemin

$connect : string

Nom du connecteur

Return values
string|false

vignette_logo_document()

Retourne la vignette explicitement attachee a un document le resutat est un fichier local existant, ou une URL ou vide si pas de vignette

vignette_logo_document(array<string|int, mixed> $row[, string $connect = '' ]) : string
Parameters
$row : array<string|int, mixed>
$connect : string = ''
Return values
string

calcul_exposer()

Calcul pour savoir si un objet est expose dans le contexte fournit par $reference

calcul_exposer(int $id, string $prim, array<string|int, mixed> $reference, int $parent, string $type[, string $connect = '' ]) : bool|string
Parameters
$id : int
$prim : string
$reference : array<string|int, mixed>
$parent : int
$type : string
$connect : string = ''
Return values
bool|string

quete_debut_pagination()

Trouver le numero de page d'une pagination indirecte lorsque debut_xxx=@123 on cherche la page qui contient l'item dont la cle primaire vaut 123

quete_debut_pagination(string $primary, int|string $valeur, int $pas, object $iter) : int
Parameters
$primary : string
$valeur : int|string
$pas : int
$iter : object
Return values
int

is_whereable()

Retourne true si ce where doit être appliqué, dans le cas des critères avec ? tel que `{id_article ?}`

is_whereable(mixed $value) : bool
Parameters
$value : mixed
Return values
bool

index_boucle()

Retrouver l'index de la boucle d'une balise

index_boucle(Champ $p) : string

Retrouve à quelle boucle appartient une balise, utile dans le cas où une référence explicite est demandée

  • #MABALISE : l'index est celui de la première boucle englobante
  • #_autreboucle:MABALISE : l'index est celui de la boucle _autreboucle
Parameters
$p : Champ

AST au niveau de la balise

Tags
example

Dans une balise dynamique ou calculée :

$idb = index_boucle($p);
Return values
string
  • Identifiant de la boucle possédant ce champ.
  • '' si une référence explicite incorrecte est envoyée

index_boucle_mere()

Retrouve la boucle mère d’une balise, sauf si son nom est explicité

index_boucle_mere(Champ $p) : string
  • #MABALISE : l'index sera celui de la boucle parente
  • #_autreboucle:MABALISE : l'index est celui de la boucle _autreboucle, si elle existe
Parameters
$p : Champ

AST au niveau de la balise

Tags
example

Dans une balise dynamique ou calculée :

$idb = index_boucle_mere($p);
Return values
string
  • Identifiant de la boucle parente possédant ce champ, ou '' si pas de parent.
  • '' si une référence explicite incorrecte est envoyée

index_pile()

Retourne la position dans la pile d'un champ SQL

index_pile(string $idb, string $nom_champ, array<string|int, mixed> &$boucles[, string $explicite = '' ][, null|string $defaut = null ][, bool $remonte_pile = true ][, bool $select = true ]) : string

Retourne le code PHP permettant de récupérer un champ SQL dans une boucle parente, en prenant la boucle la plus proche du sommet de pile (indiqué par $idb).

Si on ne trouve rien, on considère que ça doit provenir du contexte (par l'URL ou l'include) qui a été recopié dans Pile[0] (un essai d'affinage a débouché sur un bug vicieux)

Si ca référence un champ SQL, on le mémorise dans la structure $boucles afin de construire un requête SQL minimale (plutôt qu'un brutal 'SELECT *')

Parameters
$idb : string

Identifiant de la boucle

$nom_champ : string

Nom du champ SQL cherché

$boucles : array<string|int, mixed>

AST du squelette

$explicite : string = ''

Indique que le nom de la boucle est explicite dans la balise #_nomboucletruc:CHAMP

$defaut : null|string = null

Code par defaut si le champ n'est pas trouvé dans l'index. Utilise ($Pile[0][$nom_champ] ?? null) si non fourni

$remonte_pile : bool = true

Permettre de remonter la pile des boucles ou non (dans ce cas on ne cherche que dans la 1ère boucle englobante)

$select : bool = true

Pour ajouter au select de la boucle, par defaut true

Return values
string

Code PHP pour obtenir le champ SQL

index_compose()

Reconstuire la cascade de condition de recherche d'un champ

index_compose(array<string|int, mixed> $conditionnel, string $defaut) : string

On ajoute la valeur finale par défaut pour les balises dont on ne saura qu'à l'exécution si elles sont definies ou non (boucle DATA)

Parameters
$conditionnel : array<string|int, mixed>

Liste de codes PHP pour retrouver un champ

$defaut : string

Valeur par défaut si aucun des moyens ne l'a trouvé

Return values
string

Code PHP complet de recherche d'un champ

index_tables_en_pile()

Cherche un champ dans une boucle

index_tables_en_pile(string $idb, string $nom_champ, array<string|int, Boucle&$boucles, bool &$joker) : array<string|int, mixed>

Le champ peut être :

  • un alias d'un autre : il faut alors le calculer, éventuellement en construisant une jointure.
  • présent dans la table : on l'utilise
  • absent, mais le type de boucle l'autorise (joker des itérateurs DATA) : on l'utilise et lève le drapeau joker
  • absent, on cherche une jointure et on l'utilise si on en trouve.
Parameters
$idb : string

Identifiant de la boucle

$nom_champ : string

Nom du champ SQL cherché

$boucles : array<string|int, Boucle>

AST du squelette

$joker : bool

Le champ peut-il être inconnu à la compilation ? Ce drapeau sera levé si c'est le cas.

Tags
todo

Ici la recherche de jointure sur l'absence d'un champ ne cherche une jointure que si des jointures explicites sont demandées, et non comme à d'autres endroits sur toutes les jointures possibles. Il faut homogénéiser cela.

Return values
array<string|int, mixed>

Liste (Nom du champ véritable, nom du champ demandé). Le nom du champ véritable est une expression pour le SELECT de la boucle tel que "rubriques.titre" ou "mots.titre AS titre_mot". Les éléments de la liste sont vides si on ne trouve rien.

index_exception()

Retrouve un alias d'un champ dans une boucle

index_exception(Boucle &$boucle, array<string|int, mixed> $desc, string $nom_champ, array<string|int, mixed> $excep) : array<string|int, mixed>

Référence à une entite SPIP alias d'un champ SQL. Ça peut même être d'un champ dans une jointure qu'il faut provoquer si ce n'est fait

Parameters
$boucle : Boucle

Boucle dont on prend un alias de champ

$desc : array<string|int, mixed>

Description de la table SQL de la boucle

$nom_champ : string

Nom du champ original demandé

$excep : array<string|int, mixed>

Description de l'exception pour ce champ. Peut être :

  • string : nom du champ véritable dans la table
  • array :
    • liste (table, champ) indique que le véritable champ est dans une autre table et construit la jointure dessus
    • liste (table, champ, fonction) idem, mais en passant un nom de fonction qui s'occupera de créer la jointure.
Return values
array<string|int, mixed>

Liste (nom du champ alias, nom du champ). Le nom du champ alias est une expression pour le SELECT de la boucle du style "mots.titre AS titre_mot"

champ_sql()

Demande le champ '$champ' dans la pile

champ_sql(string $champ, Champ $p[, null|string $defaut = null ][, bool $remonte_pile = true ]) : string

Le champ est cherché dans l'empilement de boucles, sinon dans la valeur par défaut (qui est l'environnement du squelette si on ne la précise pas).

Parameters
$champ : string

Champ recherché

$p : Champ

AST au niveau de la balise

$defaut : null|string = null

Code de la valeur par défaut si on ne trouve pas le champ dans une des boucles parentes. Sans précision, il sera pris dans l'environnement du squelette. Passer $defaut = '' pour ne pas prendre l'environnement.

$remonte_pile : bool = true

Permettre de remonter dans la pile des boucles pour trouver le champ

Return values
string

Code PHP pour retrouver le champ

calculer_champ()

Calcule et retourne le code PHP d'exécution d'une balise SPIP et des ses filtres

calculer_champ(Champ $p) : string

Cette fonction qui sert d'API au compilateur demande à calculer le code PHP d'une balise, puis lui applique les filtres (automatiques et décrits dans le squelette)

Parameters
$p : Champ

AST au niveau de la balise

Tags
uses
calculer_balise()
uses
applique_filtres()
Return values
string

Code PHP pour d'exécution de la balise et de ses filtres

calculer_balise()

Calcule et retourne le code PHP d'exécution d'une balise SPIP

calculer_balise(string $nom, Champ $p) : Champ

Cette fonction qui sert d'API au compilateur demande à calculer le code PHP d'une balise (cette fonction ne calcule pas les éventuels filtres de la balise).

Pour une balise nommmée NOM, elle demande à charger_fonction() de chercher s'il existe une fonction balise_NOM ou balise_NOM_dist éventuellement en chargeant le fichier balise/NOM.php.

Si la balise est de la forme PREFIXE_SUFFIXE (cf LOGO_* et URL_*) elle fait de même avec juste le PREFIXE.

S'il n'y a pas de fonction trouvée, on considère la balise comme une référence à une colonne de table SQL connue, sinon à l'environnement (cf. calculer_balise_DEFAUT_dist()).

Les surcharges des colonnes SQL via charger_fonction sont donc possibles.

Parameters
$nom : string

Nom de la balise

$p : Champ

AST au niveau de la balise

Tags
uses
calculer_balise_DEFAUT_dist()

Lorsqu'aucune fonction spécifique n'est trouvée, ou que ces fonctions spécifiques ont retourné null.

see
charger_fonction()

Pour la recherche des fonctions de balises

used-by
calculer_champ()
used-by
collecter_balise_dynamique()

Pour obtenir le code d'éxécution de chaque argument.

Return values
Champ

Pile complétée par le code PHP pour l'exécution de la balise et de ses filtres

calculer_balise_DEFAUT_dist()

Calcule et retourne le code PHP d'exécution d'une balise SPIP non déclarée

calculer_balise_DEFAUT_dist(string $nom, Champ $p) : string

Cette fonction demande à calculer le code PHP d'une balise qui n'a pas de fonction spécifique.

On considère la balise comme une référence à une colonne de table SQL connue, sinon à l'environnement.

Parameters
$nom : string

Nom de la balise

$p : Champ

AST au niveau de la balise

Tags
uses
index_pile()

Pour la recherche de la balise comme colonne SQL ou comme environnement

note

Le texte de la balise est retourné si il ressemble à une couleur et qu'aucun champ correspondant n'a été trouvé, comme #CCAABB

used-by
calculer_balise()

Lorsqu'aucune fonction spécifique n'est trouvée, ou que ces fonctions spécifiques ont retourné null.

Return values
string

Code PHP pour d'exécution de la balise et de ses filtres

calculer_balise_dynamique()

Calcule le code PHP d'exécution d'une balise SPIP dynamique

calculer_balise_dynamique(Champ $p, string $nom, array<string|int, mixed> $l[, array<string|int, mixed> $supp = [] ]) : Champ

Calcule les balises dynamiques, notamment les formulaire_*.

Inclut le fichier associé à son nom, qui contient la fonction homonyme donnant les arguments à chercher dans la pile, et qui sont donc compilés.

On leur adjoint les arguments explicites de la balise (cf #LOGIN{url}) et d'éventuelles valeurs transmises d'autorité par la balise. (cf https://core.spip.net/issues/1728)

La fonction executer_balise_dynamique() définie par la constante CODE_EXECUTER_BALISE recevra à l'exécution la valeur de tout ca.

Parameters
$p : Champ

AST au niveau de la balise

$nom : string

Nom de la balise dynamique

$l : array<string|int, mixed>

Liste des noms d'arguments (balises) à collecter

$supp : array<string|int, mixed> = []

Liste de données supplémentaires à transmettre au code d'exécution.

Tags
uses
collecter_balise_dynamique()

Qui calcule le code d'exécution de chaque argument de la balise

see
executer_balise_dynamique()

Code PHP produit qui chargera les fonctions de la balise dynamique à l'exécution, appelée avec les arguments calculés.

see
executer_balise_dynamique_dans_un_modele()
Return values
Champ

Balise complétée de son code d'exécution

collecter_balise_dynamique()

Construction du tableau des arguments d'une balise dynamique.

collecter_balise_dynamique(array<string|int, mixed> $l, Champ &$p, string $nom) : array<string|int, mixed>

Pour chaque argument (un nom de balise), crée le code PHP qui le calculera.

Parameters
$l : array<string|int, mixed>

Liste des noms d'arguments (balises) à collecter (chaque argument de la balise dynamique est considéré comme étant un nom de balise)

$p : Champ

AST au niveau de la balise

$nom : string

Nom de la balise

Tags
note

Ces arguments peuvent être eux-même des balises (cf FORMULAIRE_SIGNATURE) mais gare au bouclage (on peut s'aider de $nom pour le réperer au besoin)

En revanche ils n'ont pas de filtres, donc on appelle calculer_balise() qui ne s'occupe pas de ce qu'il y a dans $p (mais qui va y ecrire le code)

uses
calculer_balise()

Pour obtenir le code d'éxécution de chaque argument.

used-by
calculer_balise_dynamique()

Qui calcule le code d'exécution de chaque argument de la balise

Return values
array<string|int, mixed>

Liste des codes PHP d'éxecution des balises collectées

trouver_nom_serveur_distant()

Récuperer le nom du serveur

trouver_nom_serveur_distant(Champ $p) : string

Mais pas si c'est un serveur spécifique dérogatoire

Parameters
$p : Champ

AST positionné sur la balise

Return values
string

Nom de la connexion

balise_distante_interdite()

Teste si une balise est appliquée sur une base distante

balise_distante_interdite(Champ $p) : bool

La fonction loge une erreur si la balise est utilisée sur une base distante et retourne false dans ce cas.

Parameters
$p : Champ

AST positionné sur la balise

Tags
note

Il faudrait savoir traiter les formulaires en local tout en appelant le serveur SQL distant. En attendant, cette fonction permet de refuser une authentification sur quelque-chose qui n'a rien a voir.

Return values
bool
  • true : La balise est autorisée
  • false : La balise est interdite car le serveur est distant

champs_traitements()

champs_traitements(mixed $p) : mixed
Parameters
$p : mixed

compose_filtres()

compose_filtres(mixed &$p, mixed $code) : mixed
Parameters
$p : mixed
$code : mixed

filtre_logique()

filtre_logique(mixed $fonc, mixed $code, mixed $arg) : mixed
Parameters
$fonc : mixed
$code : mixed
$arg : mixed

compose_filtres_args()

compose_filtres_args(mixed $p, mixed $args, mixed $sep) : mixed
Parameters
$p : mixed
$args : mixed
$sep : mixed

calculer_argument_precedent()

Réserve les champs necessaires à la comparaison avec le contexte donné par la boucle parente.

calculer_argument_precedent(string $idb, string $nom_champ, array<string|int, mixed> &$boucles[, null|string $defaut = null ]) : mixed

Attention en recursif il faut les réserver chez soi-même ET chez sa maman

Parameters
$idb : string

Identifiant de la boucle

$nom_champ : string
$boucles : array<string|int, mixed>

AST du squelette

$defaut : null|string = null

rindex_pile()

rindex_pile(mixed $p, mixed $champ, mixed $motif) : mixed
Parameters
$p : mixed
$champ : mixed
$motif : mixed

zbug_presenter_champ()

Retourne le nom de la balise indiquée pour les messages d’erreurs

zbug_presenter_champ(Pile $p[, string $champ = '' ]) : string
Parameters
$p : Pile

Description de la balise

$champ : string = ''

Nom du champ

Return values
string

Nom de la balise, avec indication de boucle explicite si présent.

sandbox_composer_texte()

Composer le code d'exécution d'un texte

sandbox_composer_texte(string $texte, Champ &$p) : string

En principe juste un echappement de guillemets sauf si on veut aussi echapper et interdire les scripts serveurs dans les squelettes

Parameters
$texte : string

texte à composer

$p : Champ

Balise qui appelle ce texte

Return values
string

texte

sandbox_composer_filtre()

Composer le code d'exécution d'un filtre

sandbox_composer_filtre(string $fonc, string $code, string $arglist, Champ &$p[, int $nb_arg_droite = 1000 ]) : string
Parameters
$fonc : string
$code : string
$arglist : string
$p : Champ
$nb_arg_droite : int = 1000

nb d'arguments à droite du filtre dans le source spip |fff{a,b,c} Balise qui appelle ce filtre

Return values
string

sandbox_composer_inclure_php()

Composer le code d'inclusion PHP

sandbox_composer_inclure_php(string $fichier, Champ &$p, string $_contexte) : string
Parameters
$fichier : string
$p : Champ

Balise créant l'inclusion

$_contexte : string

Chaine PHP qui écrira le contexte 'array(...)'

Return values
string

sandbox_composer_interdire_scripts()

Composer le code de sécurisation anti script

sandbox_composer_interdire_scripts(string $code, Champ &$p) : string
Parameters
$code : string
$p : Champ

Balise sur laquelle s'applique le filtre

Return values
string

sandbox_filtrer_squelette()

Appliquer des filtres sur un squelette complet

sandbox_filtrer_squelette(array<string|int, mixed> $skel, string $corps, array<string|int, mixed> $filtres) : mixed|string

La fonction accèpte plusieurs tableaux de filtres à partir du 3ème argument qui seront appliqués dans l'ordre

Parameters
$skel : array<string|int, mixed>
$corps : string
$filtres : array<string|int, mixed>

Tableau de filtres à appliquer.

Tags
uses
echapper_php_callback()
Return values
mixed|string

echapper_php_callback()

Callback pour échapper du code PHP (les séquences `<?php ... ?>`)

echapper_php_callback([array<string|int, mixed>|null $r = null ]) : string|array<string|int, mixed>

Rappeler la fonction sans paramètre pour obtenir les substitutions réalisées.

Parameters
$r : array<string|int, mixed>|null = null
  • array : ce sont les captures de la regex à échapper
  • NULL : demande à dépiler tous les échappements réalisés
Tags
see
sandbox_filtrer_squelette()
used-by
sandbox_filtrer_squelette()
Return values
string|array<string|int, mixed>
  • string : hash de substitution du code php lorsque $r est un array
  • array : Liste( liste des codes PHP, liste des substitutions )

public_styliser_dist()

Déterminer le squelette qui sera utilisé pour rendre la page ou le bloc à partir de `$fond` et du `$contetxe`

public_styliser_dist(string $fond, array<string|int, mixed> $contexte[, string $lang = '' ][, string $connect = '' ]) : array<string|int, mixed>

Actuellement tous les squelettes se terminent par .html pour des raisons historiques, ce qui est trompeur

Parameters
$fond : string
$contexte : array<string|int, mixed>
$lang : string = ''
$connect : string = ''
Return values
array<string|int, mixed>

styliser_par_objets()

Cherche à échafauder un squelette générique pour un objet éditorial si aucun squelette approprié n'a été trouvé

styliser_par_objets(array<string|int, mixed> $flux) : array<string|int, mixed>

Échaffaude seulement pour des appels à prive/objets/liste/ ou prive/objets/contenu/ pour lesquels aucun squelette n'a été trouvé, et uniquement si l'on est dans l'espace privé.

Parameters
$flux : array<string|int, mixed>

Données du pipeline styliser

Tags
see
prive_echafauder_dist()
Return values
array<string|int, mixed>

Données du pipeline styliser

quete_rubrique_fond()

Calcul de la rubrique associée à la requête (sélection de squelette spécifique par id_rubrique & lang)

quete_rubrique_fond(array<string|int, mixed> $contexte) : array<string|int, mixed>|false

Êttention, on repète cela à chaque inclusion, on optimise donc pour ne faire la recherche qu'une fois par contexte semblable du point de vue des id_xx

Parameters
$contexte : array<string|int, mixed>
Tags
staticvar

array $liste_objets

Return values
array<string|int, mixed>|false

public_styliser_par_z_dist()

Recherche automatique d'un squelette Page à partir de `contenu/xx`

public_styliser_par_z_dist(array<string|int, mixed> $flux) : array<string|int, mixed>
Parameters
$flux : array<string|int, mixed>

Données du pipeline

Return values
array<string|int, mixed>

Données modifiées du pipeline

z_blocs()

Lister les blocs de la page selon le contexte prive/public

z_blocs([bool $espace_prive = false ]) : array<string|int, mixed>
Parameters
$espace_prive : bool = false
Return values
array<string|int, mixed>

z_contenu_disponible()

Vérifie qu'un type à un contenu disponible, soit parcequ'il a un fond, soit parce qu'il est echafaudable

z_contenu_disponible(string $prefix_path, string $z_contenu, string $type, string $ext[, bool $echafauder = true ]) : mixed
Parameters
$prefix_path : string
$z_contenu : string
$type : string
$ext : string
$echafauder : bool = true

z_fond_valide()

Teste si le fond de squelette trouvé est autorisé

z_fond_valide(string $squelette) : bool

Compare le chemin du squelette trouvé avec les chemins exclus connus.

Parameters
$squelette : string

Un chemin de squelette

Return values
bool

true si on peut l'utiliser, false sinon.

z_trouver_bloc()

Trouve un bloc qui peut être sous le nom `contenu/article.html` ou `contenu/contenu.article.html`

z_trouver_bloc(string $prefix_path, string $bloc, string $fond, string $ext) : string
Parameters
$prefix_path : string

chemin de base qui prefixe la recherche

$bloc : string

nom du bloc cherche

$fond : string

nom de la page (ou 'dist' pour le bloc par defaut)

$ext : string

extension du squelette

Return values
string

z_echafaudable()

Tester si un type est echafaudable c'est à dire s'il correspond bien à un objet en base

z_echafaudable(string $type) : bool
Parameters
$type : string
Tags
staticvar

array $echafaudable

Return values
bool

prive_echafauder_dist()

Generer a la volee un fond a partir d'un contenu connu tous les squelettes d'echafaudage du prive sont en fait explicites dans prive/echafaudage on ne fait qu'un mini squelette d'inclusion pour reecrire les variables d'env

prive_echafauder_dist(string $exec, string $table, string $table_sql, array<string|int, mixed> $desc_exec, string $ext) : string
Parameters
$exec : string
$table : string
$table_sql : string
$desc_exec : array<string|int, mixed>
$ext : string
Return values
string

z_sanitize_var_zajax()

Recuperer et verifier var_zajax si demande dans l'url

z_sanitize_var_zajax() : bool|string
Return values
bool|string

trace_query_end()

trace_query_end(mixed $query, mixed $start, mixed $result, mixed $erreur[, mixed $serveur = '' ]) : mixed
Parameters
$query : mixed
$start : mixed
$result : mixed
$erreur : mixed
$serveur : mixed = ''

trace_query_chrono()

trace_query_chrono(mixed $dt, mixed $query, mixed $result[, mixed $serveur = '' ]) : mixed
Parameters
$dt : mixed
$query : mixed
$result : mixed
$serveur : mixed = ''

chrono_requete()

chrono_requete(mixed $temps) : mixed
Parameters
$temps : mixed

req_mysql_dist()

Crée la première connexion à un serveur MySQL via MySQLi

req_mysql_dist(string $host, int $port, string $login, string $pass[, string $db = '' ][, string $prefixe = '' ]) : array<string|int, mixed>|bool
Parameters
$host : string

Chemin du serveur

$port : int

Port de connexion

$login : string

Nom d'utilisateur

$pass : string

Mot de passe

$db : string = ''

Nom de la base

$prefixe : string = ''

Préfixe des tables SPIP

Return values
array<string|int, mixed>|bool
  • false si la connexion a échoué
  • tableau décrivant la connexion sinon

Retrouver un link d'une connexion MySQL via MySQLi

_mysql_link([string $serveur = '' ]) : object
Parameters
$serveur : string = ''

Nom du serveur

Return values
object

Information de connexion pour mysqli

spip_mysql_set_charset()

Définit un charset pour la connexion avec Mysql

spip_mysql_set_charset(string $charset[, string $serveur = '' ][, bool $requeter = true ]) : mysqli_result|bool
Parameters
$charset : string

Charset à appliquer

$serveur : string = ''

Nom de la connexion

$requeter : bool = true

inutilisé

Return values
mysqli_result|bool

Jeu de résultats pour fetch()

spip_mysql_get_charset()

Teste si le charset indiqué est disponible sur le serveur SQL

spip_mysql_get_charset([array<string|int, mixed>|string $charset = [] ][, string $serveur = '' ][, bool $requeter = true ]) : array<string|int, mixed>
Parameters
$charset : array<string|int, mixed>|string = []

Nom du charset à tester.

$serveur : string = ''

Nom de la connexion

$requeter : bool = true

inutilisé

Return values
array<string|int, mixed>

Description du charset (son nom est dans 'charset')

spip_mysql_query()

Exécute une requête MySQL, munie d'une trace à la demande

spip_mysql_query(string $query[, string $serveur = '' ][, bool $requeter = true ]) : mysqli_result|bool|string|array<string|int, mixed>
Parameters
$query : string

Requête

$serveur : string = ''

Nom de la connexion

$requeter : bool = true

Exécuter la requête, sinon la retourner

Return values
mysqli_result|bool|string|array<string|int, mixed>
  • mysqli_result|bool : Si requête exécutée
  • string : texte de la requête si on ne l'exécute pas
  • array : Tableau décrivant requête et temps d'exécution si var_profile actif pour tracer.

spip_mysql_alter()

Modifie une structure de table MySQL

spip_mysql_alter(string $query[, string $serveur = '' ][, bool $requeter = true ]) : array<string|int, mixed>|bool|string
Parameters
$query : string

Requête SQL (sans 'ALTER ')

$serveur : string = ''

Nom de la connexion

$requeter : bool = true

Exécuter la requête, sinon la retourner

Return values
array<string|int, mixed>|bool|string
  • string : texte de la requête si on ne l'exécute pas
  • bool : Si requête exécutée
  • array : Tableau décrivant requête et temps d'exécution si var_profile actif pour tracer.

spip_mysql_optimize()

Optimise une table MySQL

spip_mysql_optimize(string $table[, string $serveur = '' ][, bool $requeter = true ]) : bool
Parameters
$table : string

Nom de la table

$serveur : string = ''

Nom de la connexion

$requeter : bool = true

inutilisé

Return values
bool

Toujours true

spip_mysql_explain()

Retourne une explication de requête (Explain) MySQL

spip_mysql_explain(string $query[, string $serveur = '' ][, bool $requeter = true ]) : array<string|int, mixed>
Parameters
$query : string

texte de la requête

$serveur : string = ''

Nom de la connexion

$requeter : bool = true

inutilisé

Return values
array<string|int, mixed>

Tableau de l'explication

spip_mysql_select()

Exécute une requête de sélection avec MySQL

spip_mysql_select(string|array<string|int, mixed> $select, string|array<string|int, mixed> $from[, string|array<string|int, mixed> $where = '' ][, string|array<string|int, mixed> $groupby = '' ][, string|array<string|int, mixed> $orderby = '' ][, string $limit = '' ][, string|array<string|int, mixed> $having = '' ][, string $serveur = '' ][, bool $requeter = true ]) : array<string|int, mixed>|bool|resource|string

Instance de sql_select (voir ses specs).

Parameters
$select : string|array<string|int, mixed>

Champs sélectionnés

$from : string|array<string|int, mixed>

Tables sélectionnées

$where : string|array<string|int, mixed> = ''

Contraintes

$groupby : string|array<string|int, mixed> = ''

Regroupements

$orderby : string|array<string|int, mixed> = ''

Tris

$limit : string = ''

Limites de résultats

$having : string|array<string|int, mixed> = ''

Contraintes posts sélections

$serveur : string = ''

Nom de la connexion

$requeter : bool = true

Exécuter la requête, sinon la retourner

Tags
see
sql_select()
note

Les \n et \t sont utiles au debusqueur.

Return values
array<string|int, mixed>|bool|resource|string
  • string : texte de la requête si on ne l'exécute pas
  • ressource si requête exécutée, ressource pour fetch()
  • false si la requête exécutée a ratée
  • array : Tableau décrivant requête et temps d'exécution si var_profile actif pour tracer.

spip_mysql_order()

Prépare une clause order by

spip_mysql_order(string|array<string|int, mixed> $orderby) : string

Regroupe en texte les éléments si un tableau est donné

Parameters
$orderby : string|array<string|int, mixed>

texte du orderby à préparer

Tags
note

0+x avec un champ x commencant par des chiffres est converti par MySQL en le nombre qui commence x. Pas portable malheureusement, on laisse pour le moment.

Return values
string

texte du orderby préparé

calculer_mysql_where()

Prépare une clause WHERE pour MySQL

calculer_mysql_where(array<string|int, mixed>|string $v) : string

Retourne une chaîne avec les bonnes parenthèses pour la contrainte indiquée, au format donnée par le compilateur

Parameters
$v : array<string|int, mixed>|string

Description des contraintes

  • string : texte du where
  • sinon tableau : A et B peuvent être de type string ou array, OP et C sont de type string :
    • array(A) : A est le texte du where
    • array(OP, A) : contrainte OP( A )
    • array(OP, A, B) : contrainte (A OP B)
    • array(OP, A, B, C) : contrainte (A OP (B) : C)
Return values
string

Contrainte pour clause WHERE

calculer_mysql_expression()

Calcule un expression pour une requête, en cumulant chaque élément avec l'opérateur de liaison ($join) indiqué

calculer_mysql_expression(string $expression, array<string|int, mixed>|string $v[, string $join = 'AND' ]) : string

Renvoie grosso modo "$expression join($join, $v)"

Parameters
$expression : string

Mot clé de l'expression, tel que "WHERE" ou "ORDER BY"

$v : array<string|int, mixed>|string

Données de l'expression

$join : string = 'AND'

Si les données sont un tableau, elles seront groupées par cette jointure

Return values
string

texte de l'expression, une partie donc, du texte la requête.

spip_mysql_select_as()

Renvoie des `nom AS alias`

spip_mysql_select_as(array<string|int, mixed> $args) : string
Parameters
$args : array<string|int, mixed>
Return values
string

Sélection de colonnes pour une clause SELECT

_mysql_traite_query()

Prépare le texte d'une requête avant son exécution

_mysql_traite_query(string $query[, string $db = '' ][, string $prefixe = '' ][, bool $echappe_textes = true ]) : string

Change les préfixes de tables SPIP par ceux véritables

Parameters
$query : string

Requête à préparer

$db : string = ''

Nom de la base de donnée

$prefixe : string = ''

Préfixe de tables à appliquer

$echappe_textes : bool = true

Pour ne pas essayer de re-echapper une chaine deja echappee qu'on traite en recursif

Return values
string

Requête préparée

spip_mysql_selectdb()

Sélectionne une base de données

spip_mysql_selectdb(string $db[, string $serveur = '' ][, bool $requeter = true ]) : bool
Parameters
$db : string

Nom de la base à utiliser

$serveur : string = ''

Nom du connecteur

$requeter : bool = true

Inutilisé

Return values
bool
  • True cas de succès.
  • False en cas d'erreur.

spip_mysql_listdbs()

Retourne les bases de données accessibles

spip_mysql_listdbs([string $serveur = '' ][, bool $requeter = true ]) : array<string|int, mixed>

Retourne un tableau du nom de toutes les bases de données accessibles avec les permissions de l'utilisateur SQL de cette connexion.

Attention on n'a pas toujours les droits !

Parameters
$serveur : string = ''

Nom du connecteur

$requeter : bool = true

Inutilisé

Return values
array<string|int, mixed>

Liste de noms de bases de données

spip_mysql_create()

Crée une table SQL

spip_mysql_create(string $nom, array<string|int, mixed> $champs, array<string|int, mixed> $cles[, bool $autoinc = false ][, bool $temporary = false ][, string $serveur = '' ][, bool $requeter = true ]) : array<string|int, mixed>|null|resource|string

Crée une table SQL nommee $nom à partir des 2 tableaux $champs et $cles

Parameters
$nom : string

Nom de la table SQL

$champs : array<string|int, mixed>

Couples (champ => description SQL)

$cles : array<string|int, mixed>

Couples (type de clé => champ(s) de la clé)

$autoinc : bool = false

True pour ajouter un auto-incrément sur la Primary Key

$temporary : bool = false

True pour créer une table temporaire

$serveur : string = ''

Nom de la connexion

$requeter : bool = true

inutilisé

Tags
note

Le nom des caches doit être inferieur à 64 caractères

Return values
array<string|int, mixed>|null|resource|string
  • null si champs ou cles n'est pas un tableau
  • true si la requête réussie, false sinon.

_mysql_remplacements_definitions_table()

Adapte pour Mysql la déclaration SQL d'une colonne d'une table

_mysql_remplacements_definitions_table(string|array<string|int, mixed> $query) : string|array<string|int, mixed>
Parameters
$query : string|array<string|int, mixed>

Définition SQL d'un champ de table ou liste de déclarations

Tags
used-by
maj_timestamp_mysql()
Return values
string|array<string|int, mixed>

Définition SQL adaptée pour MySQL d'un champ de table

spip_mysql_create_base()

Crée une base de données MySQL

spip_mysql_create_base(string $nom[, string $serveur = '' ][, bool $requeter = true ]) : bool
Parameters
$nom : string

Nom de la base

$serveur : string = ''

Nom de la connexion

$requeter : bool = true

Exécuter la requête, sinon la retourner

Return values
bool

true si la base est créee.

spip_mysql_create_view()

Crée une vue SQL nommée `$nom`

spip_mysql_create_view(string $nom, string $query_select[, string $serveur = '' ][, bool $requeter = true ]) : bool|string
Parameters
$nom : string

Nom de la vue à creer

$query_select : string

texte de la requête de sélection servant de base à la vue

$serveur : string = ''

Nom du connecteur

$requeter : bool = true

Effectuer la requete, sinon la retourner

Return values
bool|string
  • true si la vue est créée
  • false si erreur ou si la vue existe déja
  • string texte de la requête si $requeter vaut false

spip_mysql_drop_table()

Supprime une table SQL

spip_mysql_drop_table(string $table[, bool $exist = false ][, string $serveur = '' ][, bool $requeter = true ]) : bool|string
Parameters
$table : string

Nom de la table SQL

$exist : bool = false

True pour ajouter un test d'existence avant de supprimer

$serveur : string = ''

Nom de la connexion

$requeter : bool = true

Exécuter la requête, sinon la retourner

Return values
bool|string
  • string texte de la requête si demandé
  • true si la requête a réussie, false sinon

spip_mysql_drop_view()

Supprime une vue SQL

spip_mysql_drop_view(string $view[, bool $exist = false ][, string $serveur = '' ][, bool $requeter = true ]) : bool|string
Parameters
$view : string

Nom de la vue SQL

$exist : bool = false

True pour ajouter un test d'existence avant de supprimer

$serveur : string = ''

Nom de la connexion

$requeter : bool = true

Exécuter la requête, sinon la retourner

Return values
bool|string
  • string texte de la requête si demandé
  • true si la requête a réussie, false sinon

spip_mysql_showbase()

Retourne une ressource de la liste des tables de la base de données

spip_mysql_showbase(string $match[, string $serveur = '' ][, bool $requeter = true ]) : mysqli_result|bool|string
Parameters
$match : string

Filtre sur tables à récupérer

$serveur : string = ''

Connecteur de la base

$requeter : bool = true

true pour éxecuter la requête false pour retourner le texte de la requête.

Return values
mysqli_result|bool|string

Ressource à utiliser avec sql_fetch()

spip_mysql_repair()

Répare une table SQL

spip_mysql_repair(string $table[, string $serveur = '' ][, bool $requeter = true ]) : bool|string|array<string|int, mixed>

Utilise REPAIR TABLE ... de MySQL

Parameters
$table : string

Nom de la table SQL

$serveur : string = ''

Nom de la connexion

$requeter : bool = true

Exécuter la requête, sinon la retourner

Return values
bool|string|array<string|int, mixed>
  • string texte de la requête si demandée,
  • true si la requête a réussie, false sinon

spip_mysql_table_exists()

Indique si une table existe dans la base de données

spip_mysql_table_exists(string $table[, string $serveur = '' ][, bool $requeter = true ]) : bool|string
Parameters
$table : string

Table dont on cherche l’existence

$serveur : string = ''

Connecteur de la base

$requeter : bool = true

true pour éxecuter la requête false pour retourner le texte de la requête.

Return values
bool|string
  • true si la table existe, false sinon
  • string : requete sql, si $requeter = true

spip_mysql_showtable()

Obtient la description d'une table ou vue MySQL

spip_mysql_showtable(string $nom_table[, string $serveur = '' ][, bool $requeter = true ]) : array<string|int, mixed>|string

Récupère la définition d'une table ou d'une vue avec colonnes, indexes, etc. au même format que la définition des tables SPIP, c'est à dire un tableau avec les clés

  • field (tableau colonne => description SQL) et
  • key (tableau type de clé => colonnes)
Parameters
$nom_table : string

Nom de la table SQL

$serveur : string = ''

Nom de la connexion

$requeter : bool = true

Exécuter la requête, sinon la retourner

Return values
array<string|int, mixed>|string
  • chaîne vide si pas de description obtenue
  • string texte de la requête si demandé
  • array description de la table sinon

spip_mysql_fetch()

Rècupère une ligne de résultat

spip_mysql_fetch(mysqli_result $r[, string $t = '' ][, string $serveur = '' ][, bool $requeter = true ]) : array<string|int, mixed>|null|false

Récupère la ligne suivante d'une ressource de résultat

Parameters
$r : mysqli_result

Jeu de résultats (issu de sql_select)

$t : string = ''

Structure de résultat attendu (défaut MYSQLI_ASSOC)

$serveur : string = ''

Nom de la connexion

$requeter : bool = true

Inutilisé

Return values
array<string|int, mixed>|null|false
  • array Ligne de résultat
  • null Pas de résultat
  • false Erreur

spip_mysql_seek()

Place le pointeur de résultat sur la position indiquée

spip_mysql_seek(mysqli_result $r, int $row_number[, string $serveur = '' ][, bool $requeter = true ]) : bool
Parameters
$r : mysqli_result

Jeu de résultats

$row_number : int

Position. Déplacer le pointeur à cette ligne

$serveur : string = ''

Nom de la connexion

$requeter : bool = true

Inutilisé

Return values
bool

True si déplacement réussi, false sinon.

spip_mysql_countsel()

Retourne le nombre de lignes d'une sélection

spip_mysql_countsel([array<string|int, mixed>|string $from = [] ][, array<string|int, mixed>|string $where = [] ][, array<string|int, mixed>|string $groupby = '' ][, array<string|int, mixed>|string $having = [] ][, string $serveur = '' ][, bool $requeter = true ]) : int|string
Parameters
$from : array<string|int, mixed>|string = []

Tables à consulter (From)

$where : array<string|int, mixed>|string = []

Conditions a remplir (Where)

$groupby : array<string|int, mixed>|string = ''

Critère de regroupement (Group by)

$having : array<string|int, mixed>|string = []

Tableau des des post-conditions à remplir (Having)

$serveur : string = ''

Nom de la connexion

$requeter : bool = true

Exécuter la requête, sinon la retourner

Return values
int|string
  • string texte de la requête si demandé
  • int Nombre de lignes (0 si la requête n'a pas réussie)

spip_mysql_error()

Retourne la dernière erreur generée

spip_mysql_error([string $query = '' ][, string $serveur = '' ][, bool $requeter = true ]) : string
Parameters
$query : string = ''

Requête qui était exécutée

$serveur : string = ''

Nom de la connexion

$requeter : bool = true

Inutilisé

Tags
note

Bien spécifier le serveur auquel on s'adresse, mais à l'install la globale n'est pas encore complètement définie.

uses
sql_error_backtrace()
Return values
string

Erreur eventuelle

spip_mysql_errno()

Retourne le numero de la dernière erreur SQL

spip_mysql_errno([string $serveur = '' ][, bool $requeter = true ]) : int
Parameters
$serveur : string = ''

Nom de la connexion

$requeter : bool = true

Inutilisé

Return values
int

0, pas d'erreur. Autre, numéro de l'erreur.

spip_mysql_count()

Retourne le nombre de lignes d’une ressource de sélection obtenue avec `sql_select()`

spip_mysql_count(Ressource $r[, string $serveur = '' ][, bool $requeter = true ]) : int
Parameters
$r : Ressource

Ressource de résultat

$serveur : string = ''

Nom de la connexion

$requeter : bool = true

Inutilisé

Return values
int

Nombre de lignes

spip_mysql_free()

Libère une ressource de résultat

spip_mysql_free(mysqli_result $r[, string $serveur = '' ][, bool $requeter = true ]) : bool

Indique à MySQL de libérer de sa mémoire la ressource de résultat indiquée car on n'a plus besoin de l'utiliser.

Parameters
$r : mysqli_result

Jeu de résultats

$serveur : string = ''

Nom de la connexion

$requeter : bool = true

Inutilisé

Return values
bool

True si réussi

spip_mysql_insert()

Insère une ligne dans une table

spip_mysql_insert(string $table, string $champs, string $valeurs[, array<string|int, mixed> $desc = [] ][, string $serveur = '' ][, bool $requeter = true ]) : bool|string|int|array<string|int, mixed>
Parameters
$table : string

Nom de la table SQL

$champs : string

Liste des colonnes impactées,

$valeurs : string

Liste des valeurs,

$desc : array<string|int, mixed> = []

Tableau de description des colonnes de la table SQL utilisée (il sera calculé si nécessaire s'il n'est pas transmis).

$serveur : string = ''

Nom du connecteur

$requeter : bool = true

Exécuter la requête, sinon la retourner

Return values
bool|string|int|array<string|int, mixed>
  • int|true identifiant de l'élément inséré (si possible), ou true, si réussite
  • texte de la requête si demandé,
  • false en cas d'erreur,
  • Tableau de description de la requête et du temps d'exécution, si var_profile activé

spip_mysql_insertq()

Insère une ligne dans une table, en protégeant chaque valeur

spip_mysql_insertq(string $table[, string $couples = [] ][, array<string|int, mixed> $desc = [] ][, string $serveur = '' ][, bool $requeter = true ]) : bool|string|int|array<string|int, mixed>
Parameters
$table : string

Nom de la table SQL

$couples : string = []

Couples (colonne => valeur)

$desc : array<string|int, mixed> = []

Tableau de description des colonnes de la table SQL utilisée (il sera calculé si nécessaire s'il n'est pas transmis).

$serveur : string = ''

Nom du connecteur

$requeter : bool = true

Exécuter la requête, sinon la retourner

Return values
bool|string|int|array<string|int, mixed>
  • int|true identifiant de l'élément inséré (si possible), ou true, si réussite
  • texte de la requête si demandé,
  • false en cas d'erreur,
  • Tableau de description de la requête et du temps d'exécution, si var_profile activé

spip_mysql_insertq_multi()

Insère plusieurs lignes d'un coup dans une table

spip_mysql_insertq_multi(string $table[, array<string|int, mixed> $tab_couples = [] ][, array<string|int, mixed> $desc = [] ][, string $serveur = '' ][, bool $requeter = true ]) : int|bool|string
Parameters
$table : string

Nom de la table SQL

$tab_couples : array<string|int, mixed> = []

Tableau de tableaux associatifs (colonne => valeur)

$desc : array<string|int, mixed> = []

Tableau de description des colonnes de la table SQL utilisée (il sera calculé si nécessaire s'il n'est pas transmis).

$serveur : string = ''

Nom du connecteur

$requeter : bool = true

Exécuter la requête, sinon la retourner

Return values
int|bool|string
  • int|true identifiant du dernier élément inséré (si possible), ou true, si réussite
  • texte de la requête si demandé,
  • false en cas d'erreur.

spip_mysql_update()

Met à jour des enregistrements d'une table SQL

spip_mysql_update(string $table, array<string|int, mixed> $champs[, string|array<string|int, mixed> $where = '' ][, array<string|int, mixed> $desc = [] ][, string $serveur = '' ][, bool $requeter = true ]) : array<string|int, mixed>|bool|string
Parameters
$table : string

Nom de la table

$champs : array<string|int, mixed>

Couples (colonne => valeur)

$where : string|array<string|int, mixed> = ''

Conditions a remplir (Where)

$desc : array<string|int, mixed> = []

Tableau de description des colonnes de la table SQL utilisée (il sera calculé si nécessaire s'il n'est pas transmis).

$serveur : string = ''

Nom de la connexion

$requeter : bool = true

Exécuter la requête, sinon la retourner

Return values
array<string|int, mixed>|bool|string
  • string : texte de la requête si demandé
  • true si la requête a réussie, false sinon
  • array Tableau décrivant la requête et son temps d'exécution si var_profile est actif

spip_mysql_updateq()

Met à jour des enregistrements d'une table SQL et protège chaque valeur

spip_mysql_updateq(string $table, array<string|int, mixed> $champs[, string|array<string|int, mixed> $where = '' ][, array<string|int, mixed> $desc = [] ][, string $serveur = '' ][, bool $requeter = true ]) : array<string|int, mixed>|bool|string

Protège chaque valeur transmise avec sql_quote(), adapté au type de champ attendu par la table SQL

Parameters
$table : string

Nom de la table

$champs : array<string|int, mixed>

Couples (colonne => valeur)

$where : string|array<string|int, mixed> = ''

Conditions a remplir (Where)

$desc : array<string|int, mixed> = []

Tableau de description des colonnes de la table SQL utilisée (il sera calculé si nécessaire s'il n'est pas transmis).

$serveur : string = ''

Nom de la connexion

$requeter : bool = true

Exécuter la requête, sinon la retourner

Tags
note

Les valeurs sont des constantes à mettre entre apostrophes sauf les expressions de date lorsqu'il s'agit de fonctions SQL (NOW etc)

Return values
array<string|int, mixed>|bool|string
  • string : texte de la requête si demandé
  • true si la requête a réussie, false sinon
  • array Tableau décrivant la requête et son temps d'exécution si var_profile est actif

spip_mysql_delete()

Supprime des enregistrements d'une table

spip_mysql_delete(string $table[, string|array<string|int, mixed> $where = '' ][, string $serveur = '' ][, bool $requeter = true ]) : bool|string
Parameters
$table : string

Nom de la table SQL

$where : string|array<string|int, mixed> = ''

Conditions à vérifier

$serveur : string = ''

Nom du connecteur

$requeter : bool = true

Exécuter la requête, sinon la retourner

Return values
bool|string
  • int : nombre de suppressions réalisées,
  • texte de la requête si demandé,
  • false en cas d'erreur.

spip_mysql_replace()

Insère où met à jour une entrée d’une table SQL

spip_mysql_replace(string $table, array<string|int, mixed> $couples[, array<string|int, mixed> $desc = [] ][, string $serveur = '' ][, bool $requeter = true ]) : bool|string

La clé ou les cles primaires doivent être présentes dans les données insérés. La fonction effectue une protection automatique des données.

Préférez updateq ou insertq.

Parameters
$table : string

Nom de la table SQL

$couples : array<string|int, mixed>

Couples colonne / valeur à modifier,

$desc : array<string|int, mixed> = []

Tableau de description des colonnes de la table SQL utilisée (il sera calculé si nécessaire s'il n'est pas transmis).

$serveur : string = ''

Nom du connecteur

$requeter : bool = true

Exécuter la requête, sinon la retourner

Return values
bool|string
  • true si réussite
  • texte de la requête si demandé,
  • false en cas d'erreur.

spip_mysql_replace_multi()

Insère où met à jour des entrées d’une table SQL

spip_mysql_replace_multi(string $table, array<string|int, mixed> $tab_couples[, array<string|int, mixed> $desc = [] ][, string $serveur = '' ][, bool $requeter = true ]) : bool|string

La clé ou les cles primaires doivent être présentes dans les données insérés. La fonction effectue une protection automatique des données.

Préférez insertq_multi et sql_updateq

Parameters
$table : string

Nom de la table SQL

$tab_couples : array<string|int, mixed>

Tableau de tableau (colonne / valeur à modifier),

$desc : array<string|int, mixed> = []

Tableau de description des colonnes de la table SQL utilisée (il sera calculé si nécessaire s'il n'est pas transmis).

$serveur : string = ''

Nom du connecteur

$requeter : bool = true

Exécuter la requête, sinon la retourner

Return values
bool|string
  • true si réussite
  • texte de la requête si demandé,
  • false en cas d'erreur.

spip_mysql_multi()

Retourne l'instruction SQL pour obtenir le texte d'un champ contenant une balise `<multi>` dans la langue indiquée

spip_mysql_multi(string $objet, string $lang) : string

Cette sélection est mise dans l'alias multi (instruction AS multi).

Parameters
$objet : string

Colonne ayant le texte

$lang : string

Langue à extraire

Return values
string

texte de sélection pour la requête

spip_mysql_hex()

Prépare une chaîne hexadécimale

spip_mysql_hex(string $v) : string

Par exemple : FF ==> 0xFF en MySQL

Parameters
$v : string

Chaine hexadecimale

Return values
string

Valeur hexadécimale pour MySQL

spip_mysql_quote()

Échapper une valeur selon son type ou au mieux comme le fait `_q()` mais pour MySQL avec ses spécificités

spip_mysql_quote(string|array<string|int, mixed>|number $v[, string $type = '' ]) : string|number
Parameters
$v : string|array<string|int, mixed>|number

texte, nombre ou tableau à échapper

$type : string = ''

Description du type attendu (par exemple description SQL de la colonne recevant la donnée)

Return values
string|number

Donnée prête à être utilisée par le gestionnaire SQL

spip_mysql_date_proche()

Tester si une date est proche de la valeur d'un champ

spip_mysql_date_proche(string $champ, int $interval, string $unite) : string
Parameters
$champ : string

Nom du champ a tester

$interval : int

Valeur de l'intervalle : -1, 4, ...

$unite : string

Utité utilisée (DAY, MONTH, YEAR, ...)

Return values
string

Expression SQL

spip_mysql_in()

Retourne une expression IN pour le gestionnaire de base de données

spip_mysql_in(string $val, string $valeurs[, string $not = '' ][, string $serveur = '' ][, bool $requeter = true ]) : string

IN (...) est limité à 255 éléments, d'où cette fonction assistante

Parameters
$val : string

Colonne SQL sur laquelle appliquer le test

$valeurs : string

Liste des valeurs possibles (séparés par des virgules)

$not : string = ''
  • '' sélectionne les éléments correspondant aux valeurs
  • 'NOT' inverse en sélectionnant les éléments ne correspondant pas aux valeurs
$serveur : string = ''

Nom du connecteur

$requeter : bool = true

Inutilisé

Return values
string

Expression de requête SQL

spip_mysql_cite()

Renvoie les bons echappements (mais pas sur les fonctions comme NOW())

spip_mysql_cite(string|number $v, string $type) : string|number
Parameters
$v : string|number

texte ou nombre à échapper

$type : string

Type de donnée attendue, description SQL de la colonne de destination

Return values
string|number

texte ou nombre échappé

spip_versions_mysql()

Teste si on a les fonctions MySQLi (pour l'install)

spip_versions_mysql() : bool
Return values
bool

True si on a les fonctions, false sinon

test_rappel_nom_base_mysql()

Tester si mysql ne veut pas du nom de la base dans les requêtes

test_rappel_nom_base_mysql(string $server_db) : string
Parameters
$server_db : string
Return values
string
  • chaîne vide si nom de la base utile
  • chaîne : code compilé pour le faire désactiver par SPIP sinon

test_sql_mode_mysql()

Teste si on peut changer les modes de MySQL

test_sql_mode_mysql(string $server_db) : string
Parameters
$server_db : string

Nom de la connexion

Tags
link
http://dev.mysql.com/doc/refman/5.0/fr/server-sql-mode.html
Return values
string
  • chaîne vide si on ne peut pas appliquer de mode
  • chaîne : code compilé pour l'indiquer le résultat du test à SPIP

req_pg_dist()

req_pg_dist(mixed $addr, mixed $port, mixed $login, mixed $pass[, mixed $db = '' ][, mixed $prefixe = '' ]) : mixed
Parameters
$addr : mixed
$port : mixed
$login : mixed
$pass : mixed
$db : mixed = ''
$prefixe : mixed = ''

spip_pg_trace_query()

spip_pg_trace_query(mixed $query[, mixed $serveur = '' ]) : mixed
Parameters
$query : mixed
$serveur : mixed = ''

spip_pg_query()

spip_pg_query(mixed $query[, mixed $serveur = '' ][, mixed $requeter = true ]) : mixed
Parameters
$query : mixed
$serveur : mixed = ''
$requeter : mixed = true

spip_pg_query_simple()

spip_pg_query_simple(mixed $link, mixed $query) : mixed
Parameters
$link : mixed
$query : mixed

spip_pg_ajouter_champs_timestamp()

spip_pg_ajouter_champs_timestamp(mixed $table, mixed $couples[, mixed $desc = '' ][, mixed $serveur = '' ]) : mixed
Parameters
$table : mixed
$couples : mixed
$desc : mixed = ''
$serveur : mixed = ''

spip_pg_alter()

spip_pg_alter(mixed $query[, mixed $serveur = '' ][, mixed $requeter = true ]) : mixed
Parameters
$query : mixed
$serveur : mixed = ''
$requeter : mixed = true

spip_pg_alter_change()

spip_pg_alter_change(mixed $table, mixed $arg[, mixed $serveur = '' ][, mixed $requeter = true ]) : mixed
Parameters
$table : mixed
$arg : mixed
$serveur : mixed = ''
$requeter : mixed = true

spip_pg_alter_add()

spip_pg_alter_add(mixed $table, mixed $arg[, mixed $serveur = '' ][, mixed $requeter = true ]) : mixed
Parameters
$table : mixed
$arg : mixed
$serveur : mixed = ''
$requeter : mixed = true

spip_pg_alter_drop()

spip_pg_alter_drop(mixed $table, mixed $arg[, mixed $serveur = '' ][, mixed $requeter = true ]) : mixed
Parameters
$table : mixed
$arg : mixed
$serveur : mixed = ''
$requeter : mixed = true

spip_pg_alter_modify()

spip_pg_alter_modify(mixed $table, mixed $arg[, mixed $serveur = '' ][, mixed $requeter = true ]) : mixed
Parameters
$table : mixed
$arg : mixed
$serveur : mixed = ''
$requeter : mixed = true

spip_pg_alter_rename()

spip_pg_alter_rename(mixed $table, mixed $arg[, mixed $serveur = '' ][, mixed $requeter = true ]) : mixed
Parameters
$table : mixed
$arg : mixed
$serveur : mixed = ''
$requeter : mixed = true

spip_pg_create_index()

Fonction de creation d'un INDEX

spip_pg_create_index(string $nom, string $table, mixed $champs[, string $serveur = '' ][, bool $requeter = true ]) : bool
Parameters
$nom : string

: nom de l'index

$table : string

: table sql de l'index

$champs : mixed
$serveur : string = ''

: nom de la connexion sql utilisee

$requeter : bool = true

: true pour executer la requete ou false pour retourner le texte de la requete

Return values
bool

ou requete

spip_pg_explain()

spip_pg_explain(mixed $query[, mixed $serveur = '' ][, mixed $requeter = true ]) : mixed
Parameters
$query : mixed
$serveur : mixed = ''
$requeter : mixed = true

spip_pg_selectdb()

Sélectionne une base de données

spip_pg_selectdb(string $db[, string $serveur = '' ][, bool $requeter = true ]) : bool|string
Parameters
$db : string

Nom de la base à utiliser

$serveur : string = ''

Nom du connecteur

$requeter : bool = true

Inutilisé

Return values
bool|string
  • Nom de la base en cas de succès.
  • False en cas d'erreur.

spip_pg_listdbs()

spip_pg_listdbs(mixed $serveur) : mixed
Parameters
$serveur : mixed

spip_pg_select()

spip_pg_select(mixed $select, mixed $from[, mixed $where = '' ][, mixed $groupby = [] ][, mixed $orderby = '' ][, mixed $limit = '' ][, mixed $having = '' ][, mixed $serveur = '' ][, mixed $requeter = true ]) : mixed
Parameters
$select : mixed
$from : mixed
$where : mixed = ''
$groupby : mixed = []
$orderby : mixed = ''
$limit : mixed = ''
$having : mixed = ''
$serveur : mixed = ''
$requeter : mixed = true

spip_pg_from()

spip_pg_from(mixed $from, mixed $prefixe) : mixed
Parameters
$from : mixed
$prefixe : mixed

spip_pg_orderby()

spip_pg_orderby(mixed $order, mixed $select) : mixed
Parameters
$order : mixed
$select : mixed

spip_pg_groupby()

spip_pg_groupby(mixed $groupby, mixed $from, mixed $select) : mixed
Parameters
$groupby : mixed
$from : mixed
$select : mixed

spip_pg_frommysql()

spip_pg_frommysql(mixed $arg) : mixed
Parameters
$arg : mixed

spip_pg_fromfield()

spip_pg_fromfield(mixed $arg) : mixed
Parameters
$arg : mixed

calculer_pg_where()

calculer_pg_where(mixed $v) : mixed
Parameters
$v : mixed

calculer_pg_expression()

calculer_pg_expression(mixed $expression, mixed $v[, mixed $join = 'AND' ]) : mixed
Parameters
$expression : mixed
$v : mixed
$join : mixed = 'AND'

spip_pg_select_as()

spip_pg_select_as(mixed $args) : mixed
Parameters
$args : mixed

spip_pg_fetch()

spip_pg_fetch(mixed $res[, mixed $t = '' ][, mixed $serveur = '' ][, mixed $requeter = true ]) : mixed
Parameters
$res : mixed
$t : mixed = ''
$serveur : mixed = ''
$requeter : mixed = true

spip_pg_seek()

spip_pg_seek(mixed $r, mixed $row_number[, mixed $serveur = '' ][, mixed $requeter = true ]) : mixed
Parameters
$r : mixed
$row_number : mixed
$serveur : mixed = ''
$requeter : mixed = true

spip_pg_countsel()

spip_pg_countsel([mixed $from = [] ][, mixed $where = [] ][, mixed $groupby = [] ][, mixed $having = [] ][, mixed $serveur = '' ][, mixed $requeter = true ]) : mixed
Parameters
$from : mixed = []
$where : mixed = []
$groupby : mixed = []
$having : mixed = []
$serveur : mixed = ''
$requeter : mixed = true

spip_pg_count()

spip_pg_count(mixed $res[, mixed $serveur = '' ][, mixed $requeter = true ]) : mixed
Parameters
$res : mixed
$serveur : mixed = ''
$requeter : mixed = true

spip_pg_free()

spip_pg_free(mixed $res[, mixed $serveur = '' ][, mixed $requeter = true ]) : mixed
Parameters
$res : mixed
$serveur : mixed = ''
$requeter : mixed = true

spip_pg_delete()

spip_pg_delete(mixed $table[, mixed $where = '' ][, mixed $serveur = '' ][, mixed $requeter = true ]) : mixed
Parameters
$table : mixed
$where : mixed = ''
$serveur : mixed = ''
$requeter : mixed = true

spip_pg_insert()

spip_pg_insert(mixed $table, mixed $champs, mixed $valeurs[, mixed $desc = [] ][, mixed $serveur = '' ][, mixed $requeter = true ]) : mixed
Parameters
$table : mixed
$champs : mixed
$valeurs : mixed
$desc : mixed = []
$serveur : mixed = ''
$requeter : mixed = true

spip_pg_insertq()

spip_pg_insertq(mixed $table[, mixed $couples = [] ][, mixed $desc = [] ][, mixed $serveur = '' ][, mixed $requeter = true ]) : mixed
Parameters
$table : mixed
$couples : mixed = []
$desc : mixed = []
$serveur : mixed = ''
$requeter : mixed = true

spip_pg_insertq_multi()

spip_pg_insertq_multi(mixed $table[, mixed $tab_couples = [] ][, mixed $desc = [] ][, mixed $serveur = '' ][, mixed $requeter = true ]) : mixed
Parameters
$table : mixed
$tab_couples : mixed = []
$desc : mixed = []
$serveur : mixed = ''
$requeter : mixed = true

spip_pg_update()

spip_pg_update(mixed $table, mixed $couples[, mixed $where = '' ][, mixed $desc = '' ][, mixed $serveur = '' ][, mixed $requeter = true ]) : mixed
Parameters
$table : mixed
$couples : mixed
$where : mixed = ''
$desc : mixed = ''
$serveur : mixed = ''
$requeter : mixed = true

spip_pg_updateq()

spip_pg_updateq(mixed $table, mixed $couples[, mixed $where = '' ][, mixed $desc = [] ][, mixed $serveur = '' ][, mixed $requeter = true ]) : mixed
Parameters
$table : mixed
$couples : mixed
$where : mixed = ''
$desc : mixed = []
$serveur : mixed = ''
$requeter : mixed = true

spip_pg_replace()

spip_pg_replace(mixed $table, mixed $values, mixed $desc[, mixed $serveur = '' ][, mixed $requeter = true ]) : mixed
Parameters
$table : mixed
$values : mixed
$desc : mixed
$serveur : mixed = ''
$requeter : mixed = true

spip_pg_replace_multi()

spip_pg_replace_multi(mixed $table, mixed $tab_couples[, mixed $desc = [] ][, mixed $serveur = '' ][, mixed $requeter = true ]) : mixed
Parameters
$table : mixed
$tab_couples : mixed
$desc : mixed = []
$serveur : mixed = ''
$requeter : mixed = true

spip_pg_sequence()

spip_pg_sequence(mixed $table[, mixed $raw = false ]) : mixed
Parameters
$table : mixed
$raw : mixed = false

spip_pg_cite()

spip_pg_cite(mixed $v, mixed $t) : mixed
Parameters
$v : mixed
$t : mixed

spip_pg_hex()

spip_pg_hex(mixed $v) : mixed
Parameters
$v : mixed

spip_pg_quote()

spip_pg_quote(mixed $v[, mixed $type = '' ]) : mixed
Parameters
$v : mixed
$type : mixed = ''

spip_pg_date_proche()

spip_pg_date_proche(mixed $champ, mixed $interval, mixed $unite) : mixed
Parameters
$champ : mixed
$interval : mixed
$unite : mixed

spip_pg_in()

spip_pg_in(mixed $val, mixed $valeurs[, mixed $not = '' ][, mixed $serveur = '' ]) : mixed
Parameters
$val : mixed
$valeurs : mixed
$not : mixed = ''
$serveur : mixed = ''

spip_pg_error()

spip_pg_error([mixed $query = '' ][, mixed $serveur = '' ][, mixed $requeter = true ]) : mixed
Parameters
$query : mixed = ''
$serveur : mixed = ''
$requeter : mixed = true

spip_pg_errno()

spip_pg_errno([mixed $serveur = '' ]) : mixed
Parameters
$serveur : mixed = ''

spip_pg_drop_table()

spip_pg_drop_table(mixed $table[, mixed $exist = false ][, mixed $serveur = '' ][, mixed $requeter = true ]) : mixed
Parameters
$table : mixed
$exist : mixed = false
$serveur : mixed = ''
$requeter : mixed = true

spip_pg_drop_view()

spip_pg_drop_view(mixed $view[, mixed $exist = false ][, mixed $serveur = '' ][, mixed $requeter = true ]) : mixed
Parameters
$view : mixed
$exist : mixed = false
$serveur : mixed = ''
$requeter : mixed = true

spip_pg_showbase()

Retourne une ressource de la liste des tables de la base de données

spip_pg_showbase(string $match[, string $serveur = '' ][, bool $requeter = true ]) : ressource
Parameters
$match : string

Filtre sur tables à récupérer

$serveur : string = ''

Connecteur de la base

$requeter : bool = true

true pour éxecuter la requête false pour retourner le texte de la requête.

Return values
ressource

Ressource à utiliser avec sql_fetch()

spip_pg_showtable()

spip_pg_showtable(mixed $nom_table[, mixed $serveur = '' ][, mixed $requeter = true ]) : mixed
Parameters
$nom_table : mixed
$serveur : mixed = ''
$requeter : mixed = true

spip_pg_create()

spip_pg_create(mixed $nom, mixed $champs, mixed $cles[, mixed $autoinc = false ][, mixed $temporary = false ][, mixed $serveur = '' ][, mixed $requeter = true ]) : mixed
Parameters
$nom : mixed
$champs : mixed
$cles : mixed
$autoinc : mixed = false
$temporary : mixed = false
$serveur : mixed = ''
$requeter : mixed = true

spip_pg_create_base()

spip_pg_create_base(mixed $nom[, mixed $serveur = '' ][, mixed $requeter = true ]) : mixed
Parameters
$nom : mixed
$serveur : mixed = ''
$requeter : mixed = true

spip_pg_create_view()

spip_pg_create_view(mixed $nom, mixed $query_select[, mixed $serveur = '' ][, mixed $requeter = true ]) : mixed
Parameters
$nom : mixed
$query_select : mixed
$serveur : mixed = ''
$requeter : mixed = true

spip_pg_set_connect_charset()

spip_pg_set_connect_charset(mixed $charset[, mixed $serveur = '' ][, mixed $requeter = true ]) : mixed
Parameters
$charset : mixed
$serveur : mixed = ''
$requeter : mixed = true

spip_pg_optimize()

Optimise une table SQL

spip_pg_optimize(string $table[, string $serveur = '' ][, bool $requeter = true ]) : bool|string
Parameters
$table : string

nom de la table a optimiser

$serveur : string = ''

nom de la connexion

$requeter : bool = true

effectuer la requete ? sinon retourner son code

Return values
bool|string

true / false / requete

spip_pg_multi()

spip_pg_multi(mixed $objet, mixed $lang) : mixed
Parameters
$objet : mixed
$lang : mixed

mysql2pg_type()

mysql2pg_type(mixed $v) : mixed
Parameters
$v : mixed

req_sqlite3_dist()

req_sqlite3_dist(mixed $addr, mixed $port, mixed $login, mixed $pass[, mixed $db = '' ][, mixed $prefixe = '' ]) : mixed
Parameters
$addr : mixed
$port : mixed
$login : mixed
$pass : mixed
$db : mixed = ''
$prefixe : mixed = ''

spip_sqlite3_constantes()

spip_sqlite3_constantes() : mixed

_sqlite_init_functions()

Déclarer à SQLite des fonctions spécifiques utilisables dans les requêtes SQL

_sqlite_init_functions(PDO|resource &$sqlite) : false|void

SQLite ne supporte nativement que certaines fonctions dans les requêtes SQL. Cependant, il permet d'étendre très facilement celles-ci en déclarant de nouvelles fonctions.

C'est ce qui est fait ici, en ajoutant des fonctions qui existent aussi dans d'autres moteurs, notamment en MySQL.

Parameters
$sqlite : PDO|resource

Représente la connexion Sqlite

Tags
link

Liste des fonctions natives

link

Liste des évolutions

Return values
false|void

_sqlite_add_function()

Déclare une fonction à SQLite

_sqlite_add_function(PDO &$sqlite, string &$f, array<string|int, mixed> &$r) : mixed
Parameters
$sqlite : PDO

Représente la connexion Sqlite

$f : string

Nom de la fonction à créer

$r : array<string|int, mixed>

Tableau indiquant :

  • le nom de la fonction à appeler,
  • le nombre de paramètres attendus de la fonction (-1 = infini, par défaut)
Tags
note

Permet au besoin de charger des fonctions ailleurs par _sqlite_init_functions();

uses
_sqlite_is_version()

_sqlite_func_ceil()

Mapping de `CEIL` pour SQLite

_sqlite_func_ceil(float $a) : int
Parameters
$a : float
Return values
int

_sqlite_func_concat()

Mapping de `CONCAT` pour SQLite

_sqlite_func_concat(array<string|int, string> ...$args) : string
Parameters
$args : array<string|int, string>
Return values
string

_sqlite_func_find_in_set()

Mapping de `FIND_IN_SET` pour SQLite

_sqlite_func_find_in_set(string $num, string $set) : int
Parameters
$num : string
$set : string
Return values
int

_sqlite_func_floor()

Mapping de `FLOOR` pour SQLite

_sqlite_func_floor(float $a) : int
Parameters
$a : float
Return values
int

_sqlite_func_if()

Mapping de `IF` pour SQLite

_sqlite_func_if(bool $bool, string|int|float $oui, string|int|float $non) : mixed
Parameters
$bool : bool
$oui : string|int|float
$non : string|int|float

_sqlite_func_insert()

Mapping de `INSERT` pour SQLite

_sqlite_func_insert(string $s, int $index, int $longueur, string $chaine) : string

Retourne une chaine de caractères à partir d'une chaine dans laquelle "chaine" à été inserée à la position "index" en remplacant "longueur" caractères.

Parameters
$s : string
$index : int
$longueur : int
$chaine : string
Return values
string

_sqlite_func_instr()

Mapping de `INSTR` pour SQLite

_sqlite_func_instr(string $s, string $search) : int
Parameters
$s : string
$search : string
Return values
int

_sqlite_func_least()

Mapping de `LEAST` pour SQLite

_sqlite_func_least(array<string|int, int> ...$args) : int
Parameters
$args : array<string|int, int>
Return values
int

_sqlite_func_greatest()

Mapping de `GREATEST` pour SQLite

_sqlite_func_greatest(array<string|int, int> ...$args) : int
Parameters
$args : array<string|int, int>
Return values
int

_sqlite_func_left()

Mapping de `LEFT` pour SQLite

_sqlite_func_left(string $s, int $lenght) : string
Parameters
$s : string
$lenght : int
Return values
string

_sqlite_func_now()

Mappnig de `NOW` pour SQLite

_sqlite_func_now([bool $force_refresh = false ]) : string
Parameters
$force_refresh : bool = false
Return values
string

_sqlite_func_preg_replace()

Mapping de `PREG_REPLACE` pour SQLite

_sqlite_func_preg_replace(string $quoi, string $cherche, string $remplace) : string
Parameters
$quoi : string
$cherche : string
$remplace : string
Return values
string

_sqlite_func_extraire_multi()

Mapping pour `EXTRAIRE_MULTI` de SPIP pour SQLite

_sqlite_func_extraire_multi(string $quoi, string $lang) : string

Extrait une langue d'un texte [fr] xxx [en] yyy

Parameters
$quoi : string

le texte contenant ou non un multi

$lang : string

la langue a extraire

Return values
string

l'extrait trouve.

_sqlite_func_rand()

Mapping de `RAND` pour SQLite

_sqlite_func_rand() : float
Return values
float

_sqlite_func_right()

Mapping de `RIGHT` pour SQLite

_sqlite_func_right(string $s, int $length) : string
Parameters
$s : string
$length : int
Return values
string

_sqlite_func_regexp_match()

Mapping de `REGEXP` pour SQLite

_sqlite_func_regexp_match(string $cherche, string $quoi) : bool
Parameters
$cherche : string
$quoi : string
Return values
bool

_sqlite_func_date_format()

Mapping de `DATE_FORMAT` pour SQLite

_sqlite_func_date_format(string $date, string $conv) : string

Transforme un un appel à DATE_FORMAT() via strftime de PHP, mais les motifs de remplacements ne sont pas toujours identiques. On essaie de les contertir.

Parameters
$date : string
$conv : string
Return values
string

_sqlite_func_strftime_format_converter()

Convertit un format demandé pour DATE_FORMAT() de mysql en un format adapté à strftime() de php.

_sqlite_func_strftime_format_converter(string $conv) : void

Certains paramètres ne correspondent pas et doivent être remplacés, d'autres n'ont tout simplement pas d'équivalent dans strftime : dans ce cas là on loggue, car il y a de grandes chances que le résultat soit inadapté.

Parameters
$conv : string

_sqlite_func_substring()

Mapping de `SUBSTRING` pour SQLite

_sqlite_func_substring(string $string, int $start[, int $len = null ]) : string
Parameters
$string : string
$start : int
$len : int = null
Return values
string

_sqlite_func_unix_timestamp()

Mapping de `UNIX_TIMESTAMP` pour SQLite

_sqlite_func_unix_timestamp(string $d) : int
Parameters
$d : string
Return values
int

req_sqlite_dist()

Connecteur à une base SQLite

req_sqlite_dist(string $addr, int $port, string $login, string $pass[, string $db = '' ][, string $prefixe = '' ][, string $sqlite_version = '' ]) : array<string|int, mixed>|bool
Parameters
$addr : string
$port : int
$login : string
$pass : string
$db : string = ''
$prefixe : string = ''
$sqlite_version : string = ''
Return values
array<string|int, mixed>|bool

spip_sqlite_open()

Ouvre une base SQLite avec PDO en spécifiant une classe spécifique pour les résultats

spip_sqlite_open(string $file) : PDO
Parameters
$file : string
Tags
see
PDOStatement
Return values
PDO

spip_sqlite_query()

Fonction de requete generale, munie d'une trace a la demande

spip_sqlite_query(string $query[, string $serveur = '' ][, bool $requeter = true ]) : PDOStatement|bool|string|array<string|int, mixed>
Parameters
$query : string

Requete a executer

$serveur : string = ''

Nom du connecteur

$requeter : bool = true

Effectuer la requete ?

  • true pour executer
  • false pour retourner le texte de la requete
Return values
PDOStatement|bool|string|array<string|int, mixed>

Resultat de la requete

spip_sqlite_alter()

Modifie une structure de table SQLite

spip_sqlite_alter(string $query[, string $serveur = '' ][, bool $requeter = true ]) : bool
Parameters
$query : string

Requête SQL (sans 'ALTER ')

$serveur : string = ''

Nom de la connexion

$requeter : bool = true

inutilisé

Return values
bool

False si erreur dans l'exécution, true sinon

spip_sqlite_create()

Crée une table SQL

spip_sqlite_create(string $nom, array<string|int, mixed> $champs, array<string|int, mixed> $cles[, bool $autoinc = false ][, bool $temporary = false ][, string $serveur = '' ][, bool $requeter = true ]) : array<string|int, mixed>|null|resource|string

Crée une table SQL nommee $nom à partir des 2 tableaux $champs et $cles

Parameters
$nom : string

Nom de la table SQL

$champs : array<string|int, mixed>

Couples (champ => description SQL)

$cles : array<string|int, mixed>

Couples (type de clé => champ(s) de la clé)

$autoinc : bool = false

True pour ajouter un auto-incrément sur la Primary Key

$temporary : bool = false

True pour créer une table temporaire

$serveur : string = ''

Nom de la connexion

$requeter : bool = true

Exécuter la requête, sinon la retourner

Tags
note

Le nom des caches doit être inferieur à 64 caractères

Return values
array<string|int, mixed>|null|resource|string
  • string texte de la requête si demandée
  • true si la requête réussie, false sinon.

spip_sqlite_create_base()

Crée une base de données SQLite

spip_sqlite_create_base(string $nom[, string $serveur = '' ][, string $option = true ]) : bool
Parameters
$nom : string

Nom de la base (sans l'extension de fichier)

$serveur : string = ''

Nom de la connexion

$option : string = true

Options

Return values
bool

true si la base est créee.

spip_sqlite_create_view()

Crée une vue SQL nommée `$nom`

spip_sqlite_create_view(string $nom, string $query_select[, string $serveur = '' ][, bool $requeter = true ]) : bool|string
Parameters
$nom : string

Nom de la vue a creer

$query_select : string

texte de la requête de sélection servant de base à la vue

$serveur : string = ''

Nom du connecteur

$requeter : bool = true

Effectuer la requete, sinon la retourner

Return values
bool|string
  • true si la vue est créée
  • false si erreur ou si la vue existe déja
  • string texte de la requête si $requeter vaut false

spip_sqlite_create_index()

Fonction de création d'un INDEX

spip_sqlite_create_index(string $nom, string $table, string|array<string|int, mixed> $champs[, string|bool $unique = '' ][, string $serveur = '' ][, bool $requeter = true ]) : bool|string
Parameters
$nom : string

Nom de l'index

$table : string

Table SQL de l'index

$champs : string|array<string|int, mixed>

Liste de champs sur lesquels s'applique l'index

$unique : string|bool = ''

Créer un index UNIQUE ?

$serveur : string = ''

Nom de la connexion sql utilisee

$requeter : bool = true

true pour executer la requête ou false pour retourner le texte de la requête

Return values
bool|string

string : requête, false si erreur, true sinon.

spip_sqlite_count()

Retourne le nombre de lignes d’une ressource de sélection obtenue avec `sql_select()`

spip_sqlite_count(PDOStatement $r[, string $serveur = '' ][, bool $requeter = true ]) : int

En PDO/sqlite3, il faut calculer le count par une requete count(*) pour les resultats de SELECT.

Parameters
$r : PDOStatement

Jeu de résultats

$serveur : string = ''

Nom de la connexion

$requeter : bool = true

Inutilisé

Return values
int

Nombre de lignes

spip_sqlite_countsel()

Retourne le nombre de lignes d'une sélection

spip_sqlite_countsel([array<string|int, mixed>|string $from = [] ][, array<string|int, mixed>|string $where = [] ][, array<string|int, mixed>|string $groupby = '' ][, array<string|int, mixed>|string $having = [] ][, string $serveur = '' ][, bool $requeter = true ]) : int|bool|string
Parameters
$from : array<string|int, mixed>|string = []

Tables à consulter (From)

$where : array<string|int, mixed>|string = []

Conditions a remplir (Where)

$groupby : array<string|int, mixed>|string = ''

Critère de regroupement (Group by)

$having : array<string|int, mixed>|string = []

Tableau des des post-conditions à remplir (Having)

$serveur : string = ''

Nom de la connexion

$requeter : bool = true

Exécuter la requête, sinon la retourner

Return values
int|bool|string
  • string texte de la requête si demandé
  • int Nombre de lignes
  • false si la requête a échouée

spip_sqlite_delete()

Supprime des enregistrements d'une table

spip_sqlite_delete(string $table[, string|array<string|int, mixed> $where = '' ][, string $serveur = '' ][, bool $requeter = true ]) : bool|string
Parameters
$table : string

Nom de la table SQL

$where : string|array<string|int, mixed> = ''

Conditions à vérifier

$serveur : string = ''

Nom du connecteur

$requeter : bool = true

Exécuter la requête, sinon la retourner

Return values
bool|string
  • int : nombre de suppressions réalisées,
  • texte de la requête si demandé,
  • false en cas d'erreur.

spip_sqlite_drop_table()

Supprime une table SQL

spip_sqlite_drop_table(string $table[, bool $exist = false ][, string $serveur = '' ][, bool $requeter = true ]) : bool|string
Parameters
$table : string

Nom de la table SQL

$exist : bool = false

True pour ajouter un test d'existence avant de supprimer

$serveur : string = ''

Nom de la connexion

$requeter : bool = true

Exécuter la requête, sinon la retourner

Return values
bool|string
  • string texte de la requête si demandé
  • true si la requête a réussie, false sinon

spip_sqlite_drop_view()

Supprime une vue SQL

spip_sqlite_drop_view(string $view[, bool $exist = false ][, string $serveur = '' ][, bool $requeter = true ]) : bool|string
Parameters
$view : string

Nom de la vue SQL

$exist : bool = false

True pour ajouter un test d'existence avant de supprimer

$serveur : string = ''

Nom de la connexion

$requeter : bool = true

Exécuter la requête, sinon la retourner

Return values
bool|string
  • string texte de la requête si demandé
  • true si la requête a réussie, false sinon

spip_sqlite_drop_index()

Fonction de suppression d'un INDEX

spip_sqlite_drop_index(string $nom, string $table[, string $serveur = '' ][, bool $requeter = true ]) : bool
Parameters
$nom : string

: nom de l'index

$table : string

: table sql de l'index

$serveur : string = ''

: nom de la connexion sql utilisee

$requeter : bool = true

: true pour executer la requête ou false pour retourner le texte de la requête

Return values
bool

ou requete

spip_sqlite_error()

Retourne la dernière erreur generée

spip_sqlite_error([string $query = '' ][, string $serveur = '' ]) : string
Parameters
$query : string = ''

Requête qui était exécutée

$serveur : string = ''

Nom de la connexion

Tags
uses
sql_error_backtrace()
Return values
string

Erreur eventuelle

_sqlite_last_error_from_link(mixed $link) : mixed
Parameters
$link : mixed

spip_sqlite_errno()

Retourne le numero de la dernière erreur SQL

spip_sqlite_errno([string $serveur = '' ]) : int|string

Le numéro (en sqlite3/pdo) est un retour ODBC tel que (très souvent) HY000 http://www.easysoft.com/developer/interfaces/odbc/sqlstate_status_return_codes.html

Parameters
$serveur : string = ''

nom de la connexion

Return values
int|string

0 pas d'erreur 1 ou autre erreur (en sqlite 2) 'HY000/1' : numéro de l'erreur SQLState / numéro d'erreur interne SQLite (en sqlite 3)

spip_sqlite_explain()

Retourne une explication de requête (Explain) SQLite

spip_sqlite_explain(string $query[, string $serveur = '' ][, bool $requeter = true ]) : array<string|int, mixed>|string|bool
Parameters
$query : string

texte de la requête

$serveur : string = ''

Nom de la connexion

$requeter : bool = true

Exécuter la requête, sinon la retourner

Return values
array<string|int, mixed>|string|bool
  • array : Tableau de l'explication
  • string si on retourne le texte de la requête
  • false si on a pas pu avoir d'explication

spip_sqlite_fetch()

Rècupère une ligne de résultat

spip_sqlite_fetch(PDOStatement $r[, string $t = '' ][, string $serveur = '' ][, bool $requeter = true ]) : array<string|int, mixed>|null|false

Récupère la ligne suivante d'une ressource de résultat

Parameters
$r : PDOStatement

Jeu de résultats (issu de sql_select)

$t : string = ''

Structure de résultat attendu (défaut ASSOC)

$serveur : string = ''

Nom de la connexion

$requeter : bool = true

Inutilisé

Return values
array<string|int, mixed>|null|false
  • array Ligne de résultat
  • null Pas de résultat
  • false Erreur

spip_sqlite_seek()

Place le pointeur de résultat sur la position indiquée

spip_sqlite_seek(PDOStatement $r, int $row_number[, string $serveur = '' ][, bool $requeter = true ]) : bool
Parameters
$r : PDOStatement

Jeu de résultats

$row_number : int

Position. Déplacer le pointeur à cette ligne

$serveur : string = ''

Nom de la connexion

$requeter : bool = true

Inutilisé

Return values
bool

True si déplacement réussi, false sinon.

spip_sqlite_free()

Libère une ressource de résultat

spip_sqlite_free(PDOStatement &$r[, string $serveur = '' ][, bool $requeter = true ]) : bool

Indique à SQLite de libérer de sa mémoire la ressoucre de résultat indiquée car on n'a plus besoin de l'utiliser.

Parameters
$r : PDOStatement

Jeu de résultats

$serveur : string = ''

Nom de la connexion

$requeter : bool = true

Inutilisé

Return values
bool

True si réussi

spip_sqlite_get_charset()

Teste si le charset indiqué est disponible sur le serveur SQL (aucune action ici)

spip_sqlite_get_charset([array<string|int, mixed>|string $charset = [] ][, string $serveur = '' ][, bool $requeter = true ]) : void

Cette fonction n'a aucune action actuellement

Parameters
$charset : array<string|int, mixed>|string = []

Nom du charset à tester.

$serveur : string = ''

Nom de la connexion

$requeter : bool = true

inutilisé

spip_sqlite_hex()

Prépare une chaîne hexadécimale

spip_sqlite_hex(string $v) : string

Par exemple : FF ==> 255 en SQLite

Parameters
$v : string

Chaine hexadecimale

Return values
string

Valeur hexadécimale pour SQLite

spip_sqlite_in()

Retourne une expression IN pour le gestionnaire de base de données

spip_sqlite_in(string $val, string $valeurs[, string $not = '' ][, string $serveur = '' ][, bool $requeter = true ]) : string
Parameters
$val : string

Colonne SQL sur laquelle appliquer le test

$valeurs : string

Liste des valeurs possibles (séparés par des virgules)

$not : string = ''
  • '' sélectionne les éléments correspondant aux valeurs
  • 'NOT' inverse en sélectionnant les éléments ne correspondant pas aux valeurs
$serveur : string = ''

Nom du connecteur

$requeter : bool = true

Inutilisé

Return values
string

Expression de requête SQL

spip_sqlite_insert()

Insère une ligne dans une table

spip_sqlite_insert(string $table, string $champs, string $valeurs[, array<string|int, mixed> $desc = [] ][, string $serveur = '' ][, bool $requeter = true ]) : bool|string|int|array<string|int, mixed>
Parameters
$table : string

Nom de la table SQL

$champs : string

Liste des colonnes impactées,

$valeurs : string

Liste des valeurs,

$desc : array<string|int, mixed> = []

Tableau de description des colonnes de la table SQL utilisée (il sera calculé si nécessaire s'il n'est pas transmis).

$serveur : string = ''

Nom du connecteur

$requeter : bool = true

Exécuter la requête, sinon la retourner

Return values
bool|string|int|array<string|int, mixed>
  • int|true identifiant de l'élément inséré (si possible), ou true, si réussite
  • texte de la requête si demandé,
  • false en cas d'erreur,
  • Tableau de description de la requête et du temps d'exécution, si var_profile activé

spip_sqlite_insertq()

Insère une ligne dans une table, en protégeant chaque valeur

spip_sqlite_insertq(string $table[, array<string|int, mixed> $couples = [] ][, array<string|int, mixed> $desc = [] ][, string $serveur = '' ][, bool $requeter = true ]) : bool|string|int|array<string|int, mixed>
Parameters
$table : string

Nom de la table SQL

$couples : array<string|int, mixed> = []

Couples (colonne => valeur)

$desc : array<string|int, mixed> = []

Tableau de description des colonnes de la table SQL utilisée (il sera calculé si nécessaire s'il n'est pas transmis).

$serveur : string = ''

Nom du connecteur

$requeter : bool = true

Exécuter la requête, sinon la retourner

Return values
bool|string|int|array<string|int, mixed>
  • int|true identifiant de l'élément inséré (si possible), ou true, si réussite
  • texte de la requête si demandé,
  • false en cas d'erreur,
  • Tableau de description de la requête et du temps d'exécution, si var_profile activé

spip_sqlite_insertq_multi()

Insère plusieurs lignes d'un coup dans une table

spip_sqlite_insertq_multi(string $table[, array<string|int, mixed> $tab_couples = [] ][, array<string|int, mixed> $desc = [] ][, string $serveur = '' ][, bool $requeter = true ]) : bool|string
Parameters
$table : string

Nom de la table SQL

$tab_couples : array<string|int, mixed> = []

Tableau de tableaux associatifs (colonne => valeur)

$desc : array<string|int, mixed> = []

Tableau de description des colonnes de la table SQL utilisée (il sera calculé si nécessaire s'il n'est pas transmis).

$serveur : string = ''

Nom du connecteur

$requeter : bool = true

Exécuter la requête, sinon la retourner

Return values
bool|string
  • true en cas de succès,
  • texte de la requête si demandé,
  • false en cas d'erreur.

spip_sqlite_preferer_transaction()

Retourne si le moteur SQL préfère utiliser des transactions.

spip_sqlite_preferer_transaction([string $serveur = '' ][, bool $requeter = true ]) : bool
Parameters
$serveur : string = ''

Nom du connecteur

$requeter : bool = true

Inutilisé

Return values
bool

Toujours true.

spip_sqlite_demarrer_transaction()

Démarre une transaction

spip_sqlite_demarrer_transaction([string $serveur = '' ][, bool $requeter = true ]) : bool|string

Pratique pour des sql_updateq() dans un foreach, parfois 100* plus rapide s'ils sont nombreux en sqlite !

Parameters
$serveur : string = ''

Nom du connecteur

$requeter : bool = true

true pour exécuter la requête ou false pour retourner le texte de la requête

Return values
bool|string

string si texte de la requête demandé, true sinon

spip_sqlite_terminer_transaction()

Clôture une transaction

spip_sqlite_terminer_transaction([string $serveur = '' ][, bool $requeter = true ]) : bool|string
Parameters
$serveur : string = ''

Nom du connecteur

$requeter : bool = true

true pour exécuter la requête ou false pour retourner le texte de la requête

Return values
bool|string

string si texte de la requête demandé, true sinon

spip_sqlite_listdbs()

Liste les bases de données disponibles

spip_sqlite_listdbs([string $serveur = '' ][, bool $requeter = true ]) : array<string|int, mixed>
Parameters
$serveur : string = ''

Nom du connecteur

$requeter : bool = true

Inutilisé

Return values
array<string|int, mixed>

Liste des noms de bases

spip_sqlite_multi()

Retourne l'instruction SQL pour obtenir le texte d'un champ contenant une balise `<multi>` dans la langue indiquée

spip_sqlite_multi(string $objet, string $lang) : string

Cette sélection est mise dans l'alias multi (instruction AS multi).

Parameters
$objet : string

Colonne ayant le texte

$lang : string

Langue à extraire

Return values
string

texte de sélection pour la requête

spip_sqlite_optimize()

Optimise une table SQL

spip_sqlite_optimize(string $table[, string $serveur = '' ][, bool $requeter = true ]) : bool|string
Parameters
$table : string

nom de la table a optimiser

$serveur : string = ''

nom de la connexion

$requeter : bool = true

effectuer la requete ? sinon retourner son code

Tags
note

Sqlite optimise TOUT un fichier sinon rien. On évite donc 2 traitements sur la même base dans un hit.

Return values
bool|string

true / false / requete

spip_sqlite_quote()

Échapper une valeur selon son type mais pour SQLite avec ses spécificités

spip_sqlite_quote(string|array<string|int, mixed>|number $v[, string $type = '' ]) : string|number
Parameters
$v : string|array<string|int, mixed>|number

texte, nombre ou tableau à échapper

$type : string = ''

Description du type attendu (par exemple description SQL de la colonne recevant la donnée)

Return values
string|number

Donnée prête à être utilisée par le gestionnaire SQL

spip_sqlite_date_proche()

Tester si une date est proche de la valeur d'un champ

spip_sqlite_date_proche(string $champ, int $interval, string $unite) : string
Parameters
$champ : string

Nom du champ a tester

$interval : int

Valeur de l'intervalle : -1, 4, ...

$unite : string

Utité utilisée (DAY, MONTH, YEAR, ...)

Return values
string

Expression SQL

spip_sqlite_repair()

Répare une table SQL

spip_sqlite_repair(string $table[, string $serveur = '' ][, bool $requeter = true ]) : array<string|int, string>

Il n'y a pas de fonction native repair dans sqlite, mais on profite pour vérifier que tous les champs (text|char) ont bien une clause DEFAULT

Parameters
$table : string

Nom de la table SQL

$serveur : string = ''

Nom de la connexion

$requeter : bool = true

Exécuter la requête, sinon la retourner

Return values
array<string|int, string>

Tableau avec clé 0 pouvant avoir " OK " ou " ERROR " indiquant l'état de la table après la réparation

spip_sqlite_replace()

Insère où met à jour une entrée d’une table SQL

spip_sqlite_replace(string $table, array<string|int, mixed> $couples[, array<string|int, mixed> $desc = [] ][, string $serveur = '' ][, bool $requeter = true ]) : bool|string

La clé ou les cles primaires doivent être présentes dans les données insérés. La fonction effectue une protection automatique des données.

Préférer à cette fonction updateq ou insertq.

Parameters
$table : string

Nom de la table SQL

$couples : array<string|int, mixed>

Couples colonne / valeur à modifier,

$desc : array<string|int, mixed> = []

Tableau de description des colonnes de la table SQL utilisée (il sera calculé si nécessaire s'il n'est pas transmis).

$serveur : string = ''

Nom du connecteur

$requeter : bool = true

Exécuter la requête, sinon la retourner

Return values
bool|string
  • true si réussite
  • texte de la requête si demandé,
  • false en cas d'erreur.

spip_sqlite_replace_multi()

Insère où met à jour des entrées d’une table SQL

spip_sqlite_replace_multi(string $table, array<string|int, mixed> $tab_couples[, array<string|int, mixed> $desc = [] ][, string $serveur = '' ][, bool $requeter = true ]) : bool|string

La clé ou les cles primaires doivent être présentes dans les données insérés. La fonction effectue une protection automatique des données.

Préférez insertq_multi et sql_updateq

Parameters
$table : string

Nom de la table SQL

$tab_couples : array<string|int, mixed>

Tableau de tableau (colonne / valeur à modifier),

$desc : array<string|int, mixed> = []

Tableau de description des colonnes de la table SQL utilisée (il sera calculé si nécessaire s'il n'est pas transmis).

$serveur : string = ''

Nom du connecteur

$requeter : bool = true

Exécuter la requête, sinon la retourner

Return values
bool|string
  • true si réussite
  • texte de la requête si demandé,
  • false en cas d'erreur.

spip_sqlite_select()

Exécute une requête de sélection avec SQLite

spip_sqlite_select(string|array<string|int, mixed> $select, string|array<string|int, mixed> $from[, string|array<string|int, mixed> $where = '' ][, string|array<string|int, mixed> $groupby = '' ][, string|array<string|int, mixed> $orderby = '' ][, string $limit = '' ][, string|array<string|int, mixed> $having = '' ][, string $serveur = '' ][, bool $requeter = true ]) : array<string|int, mixed>|bool|resource|string

Instance de sql_select (voir ses specs).

Parameters
$select : string|array<string|int, mixed>

Champs sélectionnés

$from : string|array<string|int, mixed>

Tables sélectionnées

$where : string|array<string|int, mixed> = ''

Contraintes

$groupby : string|array<string|int, mixed> = ''

Regroupements

$orderby : string|array<string|int, mixed> = ''

Tris

$limit : string = ''

Limites de résultats

$having : string|array<string|int, mixed> = ''

Contraintes posts sélections

$serveur : string = ''

Nom de la connexion

$requeter : bool = true

Exécuter la requête, sinon la retourner

Tags
see
sql_select()
Return values
array<string|int, mixed>|bool|resource|string
  • string : texte de la requête si on ne l'exécute pas
  • ressource si requête exécutée, ressource pour fetch()
  • false si la requête exécutée a ratée
  • array : Tableau décrivant requête et temps d'exécution si var_profile actif pour tracer.

spip_sqlite_selectdb()

Sélectionne un fichier de base de données

spip_sqlite_selectdb(string $db[, string $serveur = '' ][, bool $requeter = true ]) : bool|string
Parameters
$db : string

Nom de la base à utiliser

$serveur : string = ''

Nom du connecteur

$requeter : bool = true

Inutilisé

Return values
bool|string
  • Nom de la base en cas de success.
  • False en cas d'erreur.

spip_sqlite_set_charset()

Définit un charset pour la connexion avec SQLite (aucune action ici)

spip_sqlite_set_charset(string $charset[, string $serveur = '' ][, bool $requeter = true ]) : void

Cette fonction n'a aucune action actuellement.

Parameters
$charset : string

Charset à appliquer

$serveur : string = ''

Nom de la connexion

$requeter : bool = true

inutilisé

spip_sqlite_showbase()

Retourne une ressource de la liste des tables de la base de données

spip_sqlite_showbase(string $match[, string $serveur = '' ][, bool $requeter = true ]) : PDOStatement|bool|string|array<string|int, mixed>
Parameters
$match : string

Filtre sur tables à récupérer

$serveur : string = ''

Connecteur de la base

$requeter : bool = true

true pour éxecuter la requête false pour retourner le texte de la requête.

Return values
PDOStatement|bool|string|array<string|int, mixed>

Ressource à utiliser avec sql_fetch()

spip_sqlite_table_exists()

Indique si une table existe dans la base de données

spip_sqlite_table_exists(string $table[, string $serveur = '' ][, bool $requeter = true ]) : bool|string
Parameters
$table : string

Table dont on cherche l’existence

$serveur : string = ''

Connecteur de la base

$requeter : bool = true

true pour éxecuter la requête false pour retourner le texte de la requête.

Return values
bool|string
  • true si la table existe, false sinon
  • string : requete sql, si $requeter = true

spip_sqlite_showtable()

Obtient la description d'une table ou vue SQLite

spip_sqlite_showtable(string $nom_table[, string $serveur = '' ][, bool $requeter = true ]) : array<string|int, mixed>|string

Récupère la définition d'une table ou d'une vue avec colonnes, indexes, etc. au même format que la définition des tables SPIP, c'est à dire un tableau avec les clés

  • field (tableau colonne => description SQL) et
  • key (tableau type de clé => colonnes)
Parameters
$nom_table : string

Nom de la table SQL

$serveur : string = ''

Nom de la connexion

$requeter : bool = true

Exécuter la requête, sinon la retourner

Return values
array<string|int, mixed>|string
  • chaîne vide si pas de description obtenue
  • string texte de la requête si demandé
  • array description de la table sinon

spip_sqlite_update()

Met à jour des enregistrements d'une table SQL

spip_sqlite_update(string $table, array<string|int, mixed> $champs[, string|array<string|int, mixed> $where = '' ][, array<string|int, mixed> $desc = '' ][, string $serveur = '' ][, bool $requeter = true ]) : array<string|int, mixed>|bool|string
Parameters
$table : string

Nom de la table

$champs : array<string|int, mixed>

Couples (colonne => valeur)

$where : string|array<string|int, mixed> = ''

Conditions a remplir (Where)

$desc : array<string|int, mixed> = ''

Tableau de description des colonnes de la table SQL utilisée (il sera calculé si nécessaire s'il n'est pas transmis).

$serveur : string = ''

Nom de la connexion

$requeter : bool = true

Exécuter la requête, sinon la retourner

Return values
array<string|int, mixed>|bool|string
  • string : texte de la requête si demandé
  • true si la requête a réussie, false sinon
  • array Tableau décrivant la requête et son temps d'exécution si var_profile est actif

spip_sqlite_updateq()

Met à jour des enregistrements d'une table SQL et protège chaque valeur

spip_sqlite_updateq(string $table, array<string|int, mixed> $champs[, string|array<string|int, mixed> $where = '' ][, array<string|int, mixed> $desc = [] ][, string $serveur = '' ][, bool $requeter = true ]) : array<string|int, mixed>|bool|string

Protège chaque valeur transmise avec sql_quote(), adapté au type de champ attendu par la table SQL

Parameters
$table : string

Nom de la table

$champs : array<string|int, mixed>

Couples (colonne => valeur)

$where : string|array<string|int, mixed> = ''

Conditions a remplir (Where)

$desc : array<string|int, mixed> = []

Tableau de description des colonnes de la table SQL utilisée (il sera calculé si nécessaire s'il n'est pas transmis).

$serveur : string = ''

Nom de la connexion

$requeter : bool = true

Exécuter la requête, sinon la retourner

Return values
array<string|int, mixed>|bool|string
  • string : texte de la requête si demandé
  • true si la requête a réussie, false sinon
  • array Tableau décrivant la requête et son temps d'exécution si var_profile est actif

_sqlite_is_version()

Teste la version sqlite du link en cours

_sqlite_is_version([string $version = '' ][, string $link = '' ][, string $serveur = '' ][, bool $requeter = true ]) : bool|int
Parameters
$version : string = ''
$link : string = ''
$serveur : string = ''
$requeter : bool = true
Tags
used-by
_sqlite_add_function()
Return values
bool|int

Retrouver un link d'une connexion SQLite

_sqlite_link([string $serveur = '' ]) : PDO|null
Parameters
$serveur : string = ''

Nom du serveur

Return values
PDO|null

Information de connexion pour SQLite

_sqlite_calculer_cite()

Renvoie les bons echappements (mais pas sur les fonctions comme NOW())

_sqlite_calculer_cite(string|number $v, string $type) : string|number
Parameters
$v : string|number

texte ou nombre à échapper

$type : string

Type de donnée attendue, description SQL de la colonne de destination

Return values
string|number

texte ou nombre échappé

_sqlite_calculer_expression()

Calcule un expression pour une requête, en cumulant chaque élément avec l'opérateur de liaison ($join) indiqué

_sqlite_calculer_expression(string $expression, array<string|int, mixed>|string $v[, string $join = 'AND' ]) : string

Renvoie grosso modo "$expression join($join, $v)"

Parameters
$expression : string

Mot clé de l'expression, tel que "WHERE" ou "ORDER BY"

$v : array<string|int, mixed>|string

Données de l'expression

$join : string = 'AND'

Si les données sont un tableau, elles seront groupées par cette jointure

Return values
string

texte de l'expression, une partie donc, du texte la requête.

_sqlite_calculer_order()

Prépare une clause order by

_sqlite_calculer_order(string|array<string|int, mixed> $orderby) : string

Regroupe en texte les éléments si un tableau est donné

Parameters
$orderby : string|array<string|int, mixed>

texte du orderby à préparer

Tags
note

Pas besoin de conversion pour 0+x comme il faudrait pour mysql.

Return values
string

texte du orderby préparé

_sqlite_calculer_select_as()

Renvoie des `nom AS alias`

_sqlite_calculer_select_as(array<string|int, mixed> $args) : string
Parameters
$args : array<string|int, mixed>
Return values
string

Sélection de colonnes pour une clause SELECT

_sqlite_calculer_where()

Prépare une clause WHERE pour SQLite

_sqlite_calculer_where(array<string|int, mixed>|string $v) : string

Retourne une chaîne avec les bonnes parenthèses pour la contrainte indiquée, au format donnée par le compilateur

Parameters
$v : array<string|int, mixed>|string

Description des contraintes

  • string : texte du where
  • sinon tableau : A et B peuvent être de type string ou array, OP et C sont de type string :
    • array(A) : A est le texte du where
    • array(OP, A) : contrainte OP( A )
    • array(OP, A, B) : contrainte (A OP B)
    • array(OP, A, B, C) : contrainte (A OP (B) : C)
Return values
string

Contrainte pour clause WHERE

_sqlite_charger_version()

Charger les modules SQLite

_sqlite_charger_version([string $version = '' ]) : array<string|int, mixed>|bool

Si possible et juste la version demandée, ou, si aucune version, on renvoie les versions sqlite disponibles sur ce serveur dans un tableau

Parameters
$version : string = ''
Return values
array<string|int, mixed>|bool

_sqlite_modifier_table()

Gestion des requêtes ALTER non reconnues de SQLite

_sqlite_modifier_table(string|array<string|int, mixed> $table, string|array<string|int, mixed> $colonne[, array<string|int, mixed> $opt = [] ][, string $serveur = '' ]) : bool

Requêtes non reconnues :

ALTER TABLE table DROP column
ALTER TABLE table CHANGE [COLUMN] columnA columnB definition
ALTER TABLE table MODIFY column definition
ALTER TABLE table ADD|DROP PRIMARY KEY

MODIFY est transformé en CHANGE columnA columnA par spip_sqlite_alter()

  1. Créer une table B avec le nouveau format souhaité
  2. Copier la table d'origine A vers B
  3. Supprimer la table A
  4. Renommer la table B en A
  5. Remettre les index (qui sont supprimés avec la table A)
Parameters
$table : string|array<string|int, mixed>
  • string : Nom de la table table,
  • array : couple (nom de la table => nom futur)
$colonne : string|array<string|int, mixed>
  • string : nom de la colonne,
  • array : couple (nom de la colonne => nom futur)
$opt : array<string|int, mixed> = []

options comme les tables SPIP, qui sera mergé à la table créee : array('field'=>array('nom'=>'syntaxe', ...), 'key'=>array('KEY nom'=>'colonne', ...))

$serveur : string = ''

Nom de la connexion SQL en cours

Return values
bool

true si OK, false sinon.

_sqlite_ref_fonctions()

Nom des fonctions

_sqlite_ref_fonctions() : array<string|int, mixed>
Return values
array<string|int, mixed>

_sqlite_remplacements_definitions_table()

Adapte les déclarations des champs pour SQLite

_sqlite_remplacements_definitions_table(string|array<string|int, mixed> $query[, bool $autoinc = false ]) : mixed
Parameters
$query : string|array<string|int, mixed>

Déclaration d’un champ ou liste de déclarations de champs

$autoinc : bool = false

_sqlite_collate_ci()

Definir la collation d'un champ en fonction de si une collation est deja explicite et du par defaut que l'on veut NOCASE

_sqlite_collate_ci(string $champ) : string
Parameters
$champ : string
Return values
string

_sqlite_requete_create()

Creer la requete pour la creation d'une table retourne la requete pour utilisation par sql_create() et sql_alter()

_sqlite_requete_create( $nom,  $champs,  $cles[, bool $autoinc = false ][, bool $temporary = false ][, bool $_ifnotexists = true ][, string $serveur = '' ][, bool $requeter = true ]) : bool|string
Parameters
$nom :
$champs :
$cles :
$autoinc : bool = false
$temporary : bool = false
$_ifnotexists : bool = true
$serveur : string = ''
$requeter : bool = true
Return values
bool|string

_sqlite_ajouter_champs_timestamp()

Retrouver les champs 'timestamp' pour les ajouter aux 'insert' ou 'replace' afin de simuler le fonctionnement de mysql

_sqlite_ajouter_champs_timestamp( $table,  $couples[, string $desc = '' ][, string $serveur = '' ]) : mixed

stocke le resultat pour ne pas faire de requetes showtable intempestives

Parameters
$table :
$couples :
$desc : string = ''
$serveur : string = ''

spip_versions_sqlite()

Renvoyer la liste des versions sqlite disponibles sur le serveur

spip_versions_sqlite() : array<string|int, mixed>|bool
Return values
array<string|int, mixed>|bool

typographie_en_dist()

typographie_en_dist(mixed $letexte) : mixed
Parameters
$letexte : mixed

typographie_fr_dist()

typographie_fr_dist(mixed $letexte) : mixed
Parameters
$letexte : mixed

urls_page_generer_url_objet_dist()

Generer l'url d'un objet SPIP

urls_page_generer_url_objet_dist(int $id, string $objet[, string $args = '' ][, string $ancre = '' ]) : string
Parameters
$id : int
$objet : string
$args : string = ''
$ancre : string = ''
Return values
string

urls_page_decoder_url_dist()

Decoder une url page retrouve le fond et les parametres d'une URL abregee le contexte deja existant est fourni dans args sous forme de tableau ou query string

urls_page_decoder_url_dist(string $url, string $entite[, array<string|int, mixed> $contexte = [] ]) : array<string|int, mixed>
Parameters
$url : string
$entite : string
$contexte : array<string|int, mixed> = []
Return values
array<string|int, mixed>

[$contexte_decode, $type, $url_redirect, $fond]

charger_dtd()

charger_dtd(mixed $grammaire, mixed $avail, mixed $rotlvl) : mixed
Parameters
$grammaire : mixed
$avail : mixed
$rotlvl : mixed

analyser_dtd()

analyser_dtd(mixed $loc, mixed $avail, mixed &$dtc) : mixed
Parameters
$loc : mixed
$avail : mixed
$dtc : mixed

analyser_dtd_comment()

analyser_dtd_comment(mixed $dtd, mixed &$dtc, mixed $grammaire) : mixed
Parameters
$dtd : mixed
$dtc : mixed
$grammaire : mixed

analyser_dtd_pi()

analyser_dtd_pi(mixed $dtd, mixed &$dtc, mixed $grammaire) : mixed
Parameters
$dtd : mixed
$dtc : mixed
$grammaire : mixed

analyser_dtd_lexeme()

analyser_dtd_lexeme(mixed $dtd, mixed &$dtc, mixed $grammaire) : mixed
Parameters
$dtd : mixed
$dtc : mixed
$grammaire : mixed

analyser_dtd_data()

analyser_dtd_data(mixed $dtd, mixed &$dtc, mixed $grammaire) : mixed
Parameters
$dtd : mixed
$dtc : mixed
$grammaire : mixed

analyser_dtd_notation()

analyser_dtd_notation(mixed $dtd, mixed &$dtc, mixed $grammaire) : mixed
Parameters
$dtd : mixed
$dtc : mixed
$grammaire : mixed

analyser_dtd_entity()

analyser_dtd_entity(mixed $dtd, mixed &$dtc, mixed $grammaire) : mixed
Parameters
$dtd : mixed
$dtc : mixed
$grammaire : mixed

analyser_dtd_element()

analyser_dtd_element(mixed $dtd, mixed &$dtc, mixed $grammaire) : mixed
Parameters
$dtd : mixed
$dtc : mixed
$grammaire : mixed

analyser_dtd_attlist()

analyser_dtd_attlist(mixed $dtd, mixed &$dtc, mixed $grammaire) : mixed
Parameters
$dtd : mixed
$dtc : mixed
$grammaire : mixed

expanserEntite()

Remplace dans la chaîne `$val` les sous-chaines de forme `%NOM;` par leur definition dans le tableau `$macros`

expanserEntite(string $val[, array<string|int, mixed> $macros = [] ]) : string|array<string|int, mixed>

Si le premier argument n'est pas une chaîne, retourne les statistiques (pour debug de DTD, inutilise en mode normal)

Parameters
$val : string
$macros : array<string|int, mixed> = []
Return values
string|array<string|int, mixed>

xml_indenter_dist()

xml_indenter_dist(mixed $page[, mixed $apply = false ]) : mixed
Parameters
$page : mixed
$apply : mixed = false

xml_entites_html()

Encoder les entites

xml_entites_html(string $texte) : string
Parameters
$texte : string
Return values
string

xml_debutElement()

xml_debutElement(mixed $phraseur, mixed $name, mixed $attrs) : mixed
Parameters
$phraseur : mixed
$name : mixed
$attrs : mixed

xml_finElement()

xml_finElement(mixed $phraseur, mixed $name[, mixed $fusion_bal = false ]) : mixed
Parameters
$phraseur : mixed
$name : mixed
$fusion_bal : mixed = false

xml_textElement()

xml_textElement(mixed $phraseur, mixed $data) : mixed
Parameters
$phraseur : mixed
$data : mixed

xml_piElement()

xml_piElement(mixed $phraseur, mixed $target, mixed $data) : mixed
Parameters
$phraseur : mixed
$target : mixed
$data : mixed

xml_defaultElement()

xml_defaultElement(mixed $phraseur, mixed $data) : mixed
Parameters
$phraseur : mixed
$data : mixed

xml_parsestring()

xml_parsestring(mixed $phraseur, mixed $data) : mixed
Parameters
$phraseur : mixed
$data : mixed

coordonnees_erreur()

coordonnees_erreur(mixed $phraseur, mixed $msg) : mixed
Parameters
$phraseur : mixed
$msg : mixed

xml_sax_dist()

xml_sax_dist(mixed $page[, mixed $apply = false ][, mixed $phraseur = null ][, mixed $doctype = '' ][, mixed $charset = null ]) : mixed
Parameters
$page : mixed
$apply : mixed = false
$phraseur : mixed = null
$doctype : mixed = ''
$charset : mixed = null

sax_bug()

sax_bug(mixed $data, mixed $dtc[, mixed $charset = null ]) : mixed
Parameters
$data : mixed
$dtc : mixed
$charset : mixed = null

analyser_doctype()

analyser_doctype(mixed $data) : mixed
Parameters
$data : mixed

xml_valider_dist()

Retourne une structure ValidateurXML, dont le champ "err" est un tableau ayant comme entrees des sous-tableaux [message, ligne, colonne]

xml_valider_dist(mixed $page[, mixed $apply = false ][, mixed $process = false ][, mixed $doctype = '' ][, mixed $charset = null ]) : mixed
Parameters
$page : mixed
$apply : mixed = false
$process : mixed = false
$doctype : mixed = ''
$charset : mixed = null

deplacement_restreint()

Tester le deplacement restreint ou non de l'objet en fonction de son statut

deplacement_restreint(string $objet, string $statut) : bool
Parameters
$objet : string
$statut : string
Return values
bool

formulaires_configurer_ecran_connexion_data()

formulaires_configurer_ecran_connexion_data() : array<string|int, mixed>
Return values
array<string|int, mixed>

formulaires_configurer_flux_charger_dist()

formulaires_configurer_flux_charger_dist() : mixed

formulaires_configurer_flux_traiter_dist()

formulaires_configurer_flux_traiter_dist() : mixed

afficher_langues_choix()

afficher_langues_choix(mixed $langues, mixed $name, mixed $id, mixed $selected) : mixed
Parameters
$langues : mixed
$name : mixed
$id : mixed
$selected : mixed

formulaires_configurer_logos_charger_dist()

formulaires_configurer_logos_charger_dist() : mixed

formulaires_configurer_logos_traiter_dist()

formulaires_configurer_logos_traiter_dist() : mixed

table_supporte_lang()

Tester si une table supporte les langues (champ lang)

table_supporte_lang(string $table_sql) : string
Parameters
$table_sql : string
Return values
string

table_supporte_trad()

Tester si une table supporte les traductions (champ id_trad)

table_supporte_trad(string $table_sql) : string
Parameters
$table_sql : string
Return values
string

formulaires_configurer_preferences_charger_dist()

Chargement du formulaire de préférences d'un auteur dans l'espace privé

formulaires_configurer_preferences_charger_dist() : array<string|int, mixed>
Return values
array<string|int, mixed>

Environnement du formulaire

formulaires_configurer_preferences_traiter_dist()

Traitements du formulaire de préférences d'un auteur dans l'espace privé

formulaires_configurer_preferences_traiter_dist() : array<string|int, mixed>
Return values
array<string|int, mixed>

Retours des traitements

formulaires_configurer_preferences_menus_charger_dist()

Chargement du formulaire de préférence des menus d'un auteur dans l'espace privé

formulaires_configurer_preferences_menus_charger_dist() : array<string|int, mixed>
Return values
array<string|int, mixed>

Environnement du formulaire

formulaires_configurer_preferences_menus_traiter_dist()

Traitements du formulaire de préférence des menus d'un auteur dans l'espace privé

formulaires_configurer_preferences_menus_traiter_dist() : array<string|int, mixed>
Return values
array<string|int, mixed>

Retours des traitements

formulaires_configurer_reducteur_charger_dist()

Chargement du formulaire de configuration de la librairie graphique

formulaires_configurer_reducteur_charger_dist() : array<string|int, mixed>
Return values
array<string|int, mixed>

Environnement du formulaire

formulaires_configurer_reducteur_traiter_dist()

Traitements du formulaire de configuration de la librairie graphique

formulaires_configurer_reducteur_traiter_dist() : array<string|int, mixed>
Return values
array<string|int, mixed>

Retours des traitements

url_vignette_choix()

Indique si une librairie graphique peut être utilisée et retourne alors une URL pour tester la librairie

url_vignette_choix(string $process) : string
Parameters
$process : string

Code de la libriairie, parmi gd2, netpbm, imagick ou convert

Return values
string

URL d'action pour tester la librairie graphique en créant une vignette

relayeur_saisie_ou_config()

relayeur_saisie_ou_config(mixed $http_proxy, mixed $default) : mixed
Parameters
$http_proxy : mixed
$default : mixed

formulaires_dater_charger_dist()

Chargement du formulaire d'édition d'une date

formulaires_dater_charger_dist(string $objet, int $id_objet[, string $retour = '' ][, array<string|int, mixed>|string $options = [] ]) : array<string|int, mixed>|false
Parameters
$objet : string

Type d'objet

$id_objet : int

Identifiant de l'objet

$retour : string = ''

URL de redirection après le traitement

$options : array<string|int, mixed>|string = []

Options. Si string, unserialize pour obtenir un tableau.

  • date_redac : Permet de modifier en plus la date de rédaction antérieure
  • champ_date : permet de preciser le champ date qu'on utilise
  • label_date : label optionnel pour la saisie du champ date
  • champ_date_redac : permet de preciser le champ date_redac qu'on utilise
  • label_date_redac : label optionnel pour la saisie du champ date_redac
  • texte_sans_date_redac : texte optionnel affiche pour vider la date_redac
  • class : une classe ajoutable au formulaire pour le distinguer si on a plusieurs occurences
Return values
array<string|int, mixed>|false

Environnement du formulaire

dater_formater_saisie_jour()

Formate la date

dater_formater_saisie_jour(string|int $jour, string|int $mois, string|int $annee[, string $sep = '/' ]) : string
Parameters
$jour : string|int

Numéro du jour

$mois : string|int

Numéro du mois

$annee : string|int

Année

$sep : string = '/'

Séparateur

Return values
string

Date formatée tel que 02/10/2012

formulaires_dater_identifier_dist()

Identifier le formulaire en faisant abstraction des paramètres qui ne représentent pas l'objet edité

formulaires_dater_identifier_dist(string $objet, int $id_objet[, string $retour = '' ][, array<string|int, mixed>|string $options = [] ]) : string
Parameters
$objet : string

Type d'objet

$id_objet : int

Identifiant de l'objet

$retour : string = ''

URL de redirection après le traitement

$options : array<string|int, mixed>|string = []

Options.

Return values
string

Hash du formulaire

formulaires_dater_verifier_dist()

Vérifications avant traitements du formulaire d'édition d'une date

formulaires_dater_verifier_dist(string $objet, int $id_objet[, string $retour = '' ][, array<string|int, mixed>|string $options = [] ]) : array<string|int, mixed>
Parameters
$objet : string

Type d'objet

$id_objet : int

Identifiant de l'objet

$retour : string = ''

URL de redirection après le traitement

$options : array<string|int, mixed>|string = []

Options.

Return values
array<string|int, mixed>

Tableau des erreurs

formulaires_dater_traiter_dist()

Traitement du formulaire d'édition d'une date

formulaires_dater_traiter_dist(string $objet, int $id_objet[, string $retour = '' ][, array<string|int, mixed>|string $options = [] ]) : array<string|int, mixed>
Parameters
$objet : string

Type d'objet

$id_objet : int

Identifiant de l'objet

$retour : string = ''

URL de redirection après le traitement

$options : array<string|int, mixed>|string = []

Options.

Return values
array<string|int, mixed>

Retours des traitements

dater_recuperer_date_saisie()

Récupérer annee, mois, jour sur la date saisie

dater_recuperer_date_saisie(string $post[, string $quoi = 'date' ]) : array<string|int, mixed>|string
Parameters
$post : string
$quoi : string = 'date'
Return values
array<string|int, mixed>|string

Chaîne vide si date invalide, tableau (année, mois, jour) sinon.

dater_recuperer_heure_saisie()

Récupérer heures,minutes sur l'heure saisie

dater_recuperer_heure_saisie(string $post) : array<string|int, mixed>
Parameters
$post : string
Return values
array<string|int, mixed>

formulaires_declarer_bases_charger_dist()

formulaires_declarer_bases_charger_dist() : mixed

formulaires_declarer_bases_verifier_1_dist()

formulaires_declarer_bases_verifier_1_dist() : mixed

formulaires_declarer_bases_verifier_2_dist()

formulaires_declarer_bases_verifier_2_dist() : mixed

formulaires_declarer_bases_verifier_3_dist()

formulaires_declarer_bases_verifier_3_dist() : mixed

formulaires_declarer_bases_traiter_dist()

formulaires_declarer_bases_traiter_dist() : mixed

formulaires_editer_article_charger_dist()

Chargement du formulaire d'édition d'article

formulaires_editer_article_charger_dist([int|string $id_article = 'new' ][, int $id_rubrique = 0 ][, string $retour = '' ][, int $lier_trad = 0 ][, string $config_fonc = 'articles_edit_config' ][, array<string|int, mixed> $row = [] ][, string $hidden = '' ]) : array<string|int, mixed>
Parameters
$id_article : int|string = 'new'

Identifiant de l'article. 'new' pour une nouvel article.

$id_rubrique : int = 0

Identifiant de la rubrique parente

$retour : string = ''

URL de redirection après le traitement

$lier_trad : int = 0

Identifiant éventuel d'un article source de traduction

$config_fonc : string = 'articles_edit_config'

Nom de la fonction ajoutant des configurations particulières au formulaire

$row : array<string|int, mixed> = []

Valeurs de la ligne SQL de l'article, si connu

$hidden : string = ''

Contenu HTML ajouté en même temps que les champs cachés du formulaire.

Tags
uses
formulaires_editer_objet_charger()
Return values
array<string|int, mixed>

Environnement du formulaire

formulaires_editer_article_identifier_dist()

Identifier le formulaire en faisant abstraction des paramètres qui ne représentent pas l'objet édité

formulaires_editer_article_identifier_dist([int|string $id_article = 'new' ][, int $id_rubrique = 0 ][, string $retour = '' ][, int $lier_trad = 0 ][, string $config_fonc = 'articles_edit_config' ][, array<string|int, mixed> $row = [] ][, string $hidden = '' ]) : string
Parameters
$id_article : int|string = 'new'

Identifiant de l'article. 'new' pour une nouvel article.

$id_rubrique : int = 0

Identifiant de la rubrique parente

$retour : string = ''

URL de redirection après le traitement

$lier_trad : int = 0

Identifiant éventuel d'un article source de traduction

$config_fonc : string = 'articles_edit_config'

Nom de la fonction ajoutant des configurations particulières au formulaire

$row : array<string|int, mixed> = []

Valeurs de la ligne SQL de l'article, si connu

$hidden : string = ''

Contenu HTML ajouté en même temps que les champs cachés du formulaire.

Return values
string

Hash du formulaire

articles_edit_config()

Choix par défaut des options de présentation

articles_edit_config(array<string|int, mixed> $row) : array<string|int, mixed>
Parameters
$row : array<string|int, mixed>

Valeurs de la ligne SQL d'un article, si connu return array Configuration pour le formulaire

Return values
array<string|int, mixed>

formulaires_editer_article_verifier_dist()

Vérifications du formulaire d'édition d'article

formulaires_editer_article_verifier_dist([int|string $id_article = 'new' ][, int $id_rubrique = 0 ][, string $retour = '' ][, int $lier_trad = 0 ][, string $config_fonc = 'articles_edit_config' ][, array<string|int, mixed> $row = [] ][, string $hidden = '' ]) : array<string|int, mixed>
Parameters
$id_article : int|string = 'new'

Identifiant de l'article. 'new' pour une nouvel article.

$id_rubrique : int = 0

Identifiant de la rubrique parente

$retour : string = ''

URL de redirection après le traitement

$lier_trad : int = 0

Identifiant éventuel d'un article source de traduction

$config_fonc : string = 'articles_edit_config'

Nom de la fonction ajoutant des configurations particulières au formulaire

$row : array<string|int, mixed> = []

Valeurs de la ligne SQL de l'article, si connu

$hidden : string = ''

Contenu HTML ajouté en même temps que les champs cachés du formulaire.

Tags
uses
formulaires_editer_objet_verifier()
Return values
array<string|int, mixed>

Erreurs du formulaire

formulaires_editer_article_traiter_dist()

Traitements du formulaire d'édition d'article

formulaires_editer_article_traiter_dist([int|string $id_article = 'new' ][, int $id_rubrique = 0 ][, string $retour = '' ][, int $lier_trad = 0 ][, string $config_fonc = 'articles_edit_config' ][, array<string|int, mixed> $row = [] ][, string $hidden = '' ]) : array<string|int, mixed>
Parameters
$id_article : int|string = 'new'

Identifiant de l'article. 'new' pour une nouvel article.

$id_rubrique : int = 0

Identifiant de la rubrique parente

$retour : string = ''

URL de redirection après le traitement

$lier_trad : int = 0

Identifiant éventuel d'un article source de traduction

$config_fonc : string = 'articles_edit_config'

Nom de la fonction ajoutant des configurations particulières au formulaire

$row : array<string|int, mixed> = []

Valeurs de la ligne SQL de l'article, si connu

$hidden : string = ''

Contenu HTML ajouté en même temps que les champs cachés du formulaire.

Tags
uses
formulaires_editer_objet_traiter()
Return values
array<string|int, mixed>

Retours des traitements

formulaires_editer_auteur_charger_dist()

Chargement du formulaire d'édition d'un auteur

formulaires_editer_auteur_charger_dist([int|string $id_auteur = 'new' ][, string $retour = '' ][, string $associer_objet = '' ][, string $config_fonc = 'auteurs_edit_config' ][, array<string|int, mixed> $row = [] ][, string $hidden = '' ]) : array<string|int, mixed>
Parameters
$id_auteur : int|string = 'new'

Identifiant de l'auteur. 'new' pour une nouvel auteur.

$retour : string = ''

URL de redirection après le traitement

$associer_objet : string = ''

Éventuel 'objet|x' indiquant de lier le mot créé à cet objet, tel que 'article|3'

$config_fonc : string = 'auteurs_edit_config'

Nom de la fonction ajoutant des configurations particulières au formulaire

$row : array<string|int, mixed> = []

Valeurs de la ligne SQL de l'auteur, si connu

$hidden : string = ''

Contenu HTML ajouté en même temps que les champs cachés du formulaire.

Tags
see
formulaires_editer_objet_charger()
Return values
array<string|int, mixed>

Environnement du formulaire

formulaires_editer_auteur_identifier_dist()

Identifier le formulaire en faisant abstraction des paramètres qui ne représentent pas l'objet édité

formulaires_editer_auteur_identifier_dist([int|string $id_auteur = 'new' ][, string $retour = '' ][, string $associer_objet = '' ][, string $config_fonc = 'auteurs_edit_config' ][, array<string|int, mixed> $row = [] ][, string $hidden = '' ]) : string
Parameters
$id_auteur : int|string = 'new'

Identifiant de l'auteur. 'new' pour une nouvel auteur.

$retour : string = ''

URL de redirection après le traitement

$associer_objet : string = ''

Éventuel 'objet|x' indiquant de lier le mot créé à cet objet, tel que 'article|3'

$config_fonc : string = 'auteurs_edit_config'

Nom de la fonction ajoutant des configurations particulières au formulaire

$row : array<string|int, mixed> = []

Valeurs de la ligne SQL de l'auteur, si connu

$hidden : string = ''

Contenu HTML ajouté en même temps que les champs cachés du formulaire.

Return values
string

Hash du formulaire

auteurs_edit_config()

Choix par défaut des options de présentation

auteurs_edit_config(array<string|int, mixed> $row) : array<string|int, mixed>
Parameters
$row : array<string|int, mixed>

Valeurs de la ligne SQL d'un auteur, si connu return array Configuration pour le formulaire

Return values
array<string|int, mixed>

formulaires_editer_auteur_verifier_dist()

Vérifications du formulaire d'édition d'un auteur

formulaires_editer_auteur_verifier_dist([int|string $id_auteur = 'new' ][, string $retour = '' ][, string $associer_objet = '' ][, string $config_fonc = 'auteurs_edit_config' ][, array<string|int, mixed> $row = [] ][, string $hidden = '' ]) : array<string|int, mixed>

Vérifie en plus des vérifications prévues :

  • qu'un rédacteur ne peut pas supprimer son adresse mail,
  • que le mot de passe choisi n'est pas trop court et identique à sa deuxième saisie
Parameters
$id_auteur : int|string = 'new'

Identifiant de l'auteur. 'new' pour une nouvel auteur.

$retour : string = ''

URL de redirection après le traitement

$associer_objet : string = ''

Éventuel 'objet|x' indiquant de lier le mot créé à cet objet, tel que 'article|3'

$config_fonc : string = 'auteurs_edit_config'

Nom de la fonction ajoutant des configurations particulières au formulaire

$row : array<string|int, mixed> = []

Valeurs de la ligne SQL de l'auteur, si connu

$hidden : string = ''

Contenu HTML ajouté en même temps que les champs cachés du formulaire.

Tags
see
formulaires_editer_objet_verifier()
Return values
array<string|int, mixed>

Erreurs des saisies

formulaires_editer_auteur_traiter_dist()

Traitements du formulaire d'édition d'un auteur

formulaires_editer_auteur_traiter_dist([int|string $id_auteur = 'new' ][, string $retour = '' ][, string $associer_objet = '' ][, string $config_fonc = 'auteurs_edit_config' ][, array<string|int, mixed> $row = [] ][, string $hidden = '' ]) : array<string|int, mixed>

En plus de l'enregistrement normal des infos de l'auteur, la fonction traite ces cas spécifiques :

  • Envoie lorsqu'un rédacteur n'a pas forcément l'autorisation changer seul son adresse email, un email à la nouvelle adresse indiquée pour vérifier l'email saisi, avec un lien dans le mai sur l'action 'confirmer_email' qui acceptera alors le nouvel email.

  • Crée aussi une éventuelle laision indiquée dans $associer_objet avec cet auteur.

Parameters
$id_auteur : int|string = 'new'

Identifiant de l'auteur. 'new' pour une nouvel auteur.

$retour : string = ''

URL de redirection après le traitement

$associer_objet : string = ''

Éventuel 'objet|x' indiquant de lier le mot créé à cet objet, tel que 'article|3'

$config_fonc : string = 'auteurs_edit_config'

Nom de la fonction ajoutant des configurations particulières au formulaire

$row : array<string|int, mixed> = []

Valeurs de la ligne SQL de l'auteur, si connu

$hidden : string = ''

Contenu HTML ajouté en même temps que les champs cachés du formulaire.

Tags
see
formulaires_editer_objet_traiter()
Return values
array<string|int, mixed>

Retour des traitements

auteur_reset_password()

auteur_reset_password(mixed $id_auteur[, mixed $erreurs = [] ]) : mixed
Parameters
$id_auteur : mixed
$erreurs : mixed = []

auteur_regenerer_identifiants()

Renvoyer des identifiants

auteur_regenerer_identifiants(int $id_auteur[, bool $notifier = true ][, array<string|int, mixed> $contexte = [] ]) : string
Parameters
$id_auteur : int
$notifier : bool = true
$contexte : array<string|int, mixed> = []
Return values
string

determine_source_lien_objet()

Retrouve la source et l'objet de la liaison

determine_source_lien_objet(string $a, string|int $b, int|string $c) : array<string|int, mixed>

À partir des 3 premiers paramètres transmis au formulaire, la fonction retrouve :

  • l'objet dont on utilise sa table de liaison (table_source)
  • l'objet et id_objet sur qui on lie des éléments (objet, id_objet)
  • l'objet que l'on veut lier dessus (objet_lien)
Parameters
$a : string
$b : string|int
$c : int|string
Return values
array<string|int, mixed>

($table_source,$objet,$id_objet,$objet_lien)

formulaires_editer_liens_charger_dist()

Chargement du formulaire d'édition de liens

formulaires_editer_liens_charger_dist(string $a, string|int $b, int|string $c[, array<string|int, mixed>|bool $options = [] ]) : array<string|int, mixed>|false

#FORMULAIRE_EDITER_LIENS{auteurs,article,23} pour associer des auteurs à l'article 23, sur la table pivot spip_auteurs_liens #FORMULAIRE_EDITER_LIENS{article,23,auteurs} pour associer des auteurs à l'article 23, sur la table pivot spip_articles_liens #FORMULAIRE_EDITER_LIENS{articles,auteur,12} pour associer des articles à l'auteur 12, sur la table pivot spip_articles_liens #FORMULAIRE_EDITER_LIENS{auteur,12,articles} pour associer des articles à l'auteur 12, sur la table pivot spip_auteurs_liens

Parameters
$a : string
$b : string|int
$c : int|string
$options : array<string|int, mixed>|bool = []
  • Si array, tableau d'options
  • Si bool : valeur de l'option 'editable' uniquement
Return values
array<string|int, mixed>|false

formulaires_editer_liens_traiter_dist()

Traiter le post des informations d'édition de liens

formulaires_editer_liens_traiter_dist(string $a, string|int $b, int|string $c[, array<string|int, mixed>|bool $options = [] ]) : array<string|int, mixed>

Les formulaires peuvent poster dans quatre variables

  • ajouter_lien et supprimer_lien
  • remplacer_lien
  • qualifier_lien
  • ordonner_lien
  • desordonner_liens

Les deux premières peuvent être de trois formes différentes : ajouter_lien[]="objet1-id1-objet2-id2" ajouter_lien[objet1-id1-objet2-id2]="nimportequoi" ajouter_lien['clenonnumerique']="objet1-id1-objet2-id2" Dans ce dernier cas, la valeur ne sera prise en compte que si _request('clenonnumerique') est vrai (submit associé a l'input)

remplacer_lien doit être de la forme remplacer_lien[objet1-id1-objet2-id2]="objet3-id3-objet2-id2" ou objet1-id1 est celui qu'on enleve et objet3-id3 celui qu'on ajoute

qualifier_lien doit être de la forme, et sert en complément de ajouter_lien qualifier_lien[objet1-id1-objet2-id2][role] = array("role1", "autre_role") qualifier_lien[objet1-id1-objet2-id2][valeur] = array("truc", "chose") produira 2 liens chacun avec array("role"=>"role1","valeur"=>"truc") et array("role"=>"autre_role","valeur"=>"chose")

ordonner_lien doit être de la forme, et sert pour trier les liens ordonner_lien[objet1-id1-objet2-id2] = nouveau_rang

desordonner_liens n'a pas de forme précise, il doit simplement être non nul/non vide

Parameters
$a : string
$b : string|int
$c : int|string
$options : array<string|int, mixed>|bool = []
  • Si array, tableau d'options
  • Si bool : valeur de l'option 'editable' uniquement
Return values
array<string|int, mixed>

lien_gerer__oups()

Fonction de regroupement pour gerer le _oups de façon sécurisée sans passer par une globale ni par une _request

lien_gerer__oups(string $form, string $action[, array<string|int, mixed>|null $valeur = null ]) : array<string|int, mixed>|string|null
Parameters
$form : string
$action : string
$valeur : array<string|int, mixed>|null = null
Return values
array<string|int, mixed>|string|null

lien_gerer__oups_collecter_args()

Collecter les args du form utilisant la fonction lien_gerer__oups()

lien_gerer__oups_collecter_args(string $form, array<string|int, mixed> $trace) : string
Parameters
$form : string
$trace : array<string|int, mixed>
Return values
string

formulaires_editer_logo_charger_dist()

Chargement du formulaire d'édition de logo

formulaires_editer_logo_charger_dist(string $objet, int $id_objet[, string $retour = '' ][, array<string|int, mixed> $options = [] ]) : array<string|int, mixed>|false
Parameters
$objet : string

Objet SPIP auquel sera lie le document (ex. article)

$id_objet : int

Identifiant de l'objet

$retour : string = ''

Url de redirection apres traitement

$options : array<string|int, mixed> = []

Tableau d'option (exemple : image_reduire => 50)

Return values
array<string|int, mixed>|false

Variables d'environnement pour le fond

formulaires_editer_logo_identifier_dist()

Identifier le formulaire en faisant abstraction des parametres qui ne representent pas l'objet edite

formulaires_editer_logo_identifier_dist(string $objet, int $id_objet[, string $retour = '' ][, array<string|int, mixed> $options = [] ]) : string
Parameters
$objet : string

Objet SPIP auquel sera lie le document (ex. article)

$id_objet : int

Identifiant de l'objet

$retour : string = ''

Url de redirection apres traitement

$options : array<string|int, mixed> = []

Tableau d'option (exemple : image_reduire => 50)

Return values
string

Hash du formulaire

formulaires_editer_logo_verifier_dist()

Verification avant traitement du formulaire d'édition de logo

formulaires_editer_logo_verifier_dist(string $objet, int $id_objet[, string $retour = '' ][, array<string|int, mixed> $options = [] ]) : array<string|int, mixed>

On verifie que l'upload s'est bien passe et que le document recu est une image (d'apres son extension)

Parameters
$objet : string

Objet SPIP auquel sera lie le document (ex. article)

$id_objet : int

Identifiant de l'objet

$retour : string = ''

Url de redirection apres traitement

$options : array<string|int, mixed> = []

Tableau d'option (exemple : image_reduire => 50)

Return values
array<string|int, mixed>

Erreurs du formulaire

formulaires_editer_logo_traiter_dist()

Traitement de l'upload d'un logo

formulaires_editer_logo_traiter_dist(string $objet, int $id_objet[, string $retour = '' ][, array<string|int, mixed> $options = [] ]) : array<string|int, mixed>

Il est affecte au site si la balise n'est pas dans une boucle, sinon a l'objet concerne par la boucle ou indiquee par les parametres d'appel

Parameters
$objet : string

Objet SPIP auquel sera lie le document (ex. article)

$id_objet : int

Identifiant de l'objet

$retour : string = ''

Url de redirection apres traitement

$options : array<string|int, mixed> = []

Tableau d'option (exemple : image_reduire => 50)

Return values
array<string|int, mixed>

Retour des traitements

formulaire_editer_logo_get_sources()

Extraction des sources des fichiers uploadés correspondant aux 2 logos (normal + survol) si leur upload s'est bien passé

formulaire_editer_logo_get_sources() : array<string|int, mixed>
Return values
array<string|int, mixed>

Sources des fichiers dans les clés on ou off

formulaires_editer_rubrique_charger_dist()

Chargement du formulaire d'édition d'une rubrique

formulaires_editer_rubrique_charger_dist([int|string $id_rubrique = 'new' ][, int $id_parent = 0 ][, string $retour = '' ][, int $lier_trad = 0 ][, string $config_fonc = 'rubriques_edit_config' ][, array<string|int, mixed> $row = [] ][, string $hidden = '' ]) : array<string|int, mixed>
Parameters
$id_rubrique : int|string = 'new'

Identifiant de la rubrique. 'new' pour une nouvelle rubrique

$id_parent : int = 0

Identifiant de la rubrique parente

$retour : string = ''

URL de redirection après le traitement

$lier_trad : int = 0

Identifiant éventuel d'une rubrique source de traduction

$config_fonc : string = 'rubriques_edit_config'

Nom de la fonction ajoutant des configurations particulières au formulaire

$row : array<string|int, mixed> = []

Valeurs de la ligne SQL de la rubrique, si connue

$hidden : string = ''

Contenu HTML ajouté en même temps que les champs cachés du formulaire.

Tags
see
formulaires_editer_objet_charger()
Return values
array<string|int, mixed>

Environnement du formulaire

rubriques_edit_config()

Choix par défaut des options de présentation

rubriques_edit_config(array<string|int, mixed> $row) : array<string|int, mixed>
Parameters
$row : array<string|int, mixed>

Valeurs de la ligne SQL d'une rubrique, si connue return array Configuration pour le formulaire

Return values
array<string|int, mixed>

formulaires_editer_rubrique_identifier_dist()

Identifier le formulaire en faisant abstraction des paramètres qui ne représentent pas l'objet édité

formulaires_editer_rubrique_identifier_dist([int|string $id_rubrique = 'new' ][, int $id_parent = 0 ][, string $retour = '' ][, int $lier_trad = 0 ][, string $config_fonc = 'rubriques_edit_config' ][, array<string|int, mixed> $row = [] ][, string $hidden = '' ]) : string
Parameters
$id_rubrique : int|string = 'new'

Identifiant de la rubrique. 'new' pour une nouvelle rubrique

$id_parent : int = 0

Identifiant de la rubrique parente

$retour : string = ''

URL de redirection après le traitement

$lier_trad : int = 0

Identifiant éventuel d'une rubrique source de traduction

$config_fonc : string = 'rubriques_edit_config'

Nom de la fonction ajoutant des configurations particulières au formulaire

$row : array<string|int, mixed> = []

Valeurs de la ligne SQL de la rubrique, si connue

$hidden : string = ''

Contenu HTML ajouté en même temps que les champs cachés du formulaire.

Return values
string

Hash du formulaire

formulaires_editer_rubrique_verifier_dist()

Vérifications du formulaire d'édition d'une rubrique

formulaires_editer_rubrique_verifier_dist([int|string $id_rubrique = 'new' ][, int $id_parent = 0 ][, string $retour = '' ][, int $lier_trad = 0 ][, string $config_fonc = 'rubriques_edit_config' ][, array<string|int, mixed> $row = [] ][, string $hidden = '' ]) : array<string|int, mixed>
Parameters
$id_rubrique : int|string = 'new'

Identifiant de la rubrique. 'new' pour une nouvelle rubrique

$id_parent : int = 0

Identifiant de la rubrique parente

$retour : string = ''

URL de redirection après le traitement

$lier_trad : int = 0

Identifiant éventuel d'une rubrique source de traduction

$config_fonc : string = 'rubriques_edit_config'

Nom de la fonction ajoutant des configurations particulières au formulaire

$row : array<string|int, mixed> = []

Valeurs de la ligne SQL de la rubrique, si connue

$hidden : string = ''

Contenu HTML ajouté en même temps que les champs cachés du formulaire.

Tags
see
formulaires_editer_objet_verifier()
Return values
array<string|int, mixed>

Erreurs du formulaire

formulaires_editer_rubrique_traiter_dist()

Traitements du formulaire d'édition d'une rubrique

formulaires_editer_rubrique_traiter_dist([int|string $id_rubrique = 'new' ][, int $id_parent = 0 ][, string $retour = '' ][, int $lier_trad = 0 ][, string $config_fonc = 'rubriques_edit_config' ][, array<string|int, mixed> $row = [] ][, string $hidden = '' ]) : array<string|int, mixed>
Parameters
$id_rubrique : int|string = 'new'

Identifiant de la rubrique. 'new' pour une nouvelle rubrique

$id_parent : int = 0

Identifiant de la rubrique parente

$retour : string = ''

URL de redirection après le traitement

$lier_trad : int = 0

Identifiant éventuel d'une rubrique source de traduction

$config_fonc : string = 'rubriques_edit_config'

Nom de la fonction ajoutant des configurations particulières au formulaire

$row : array<string|int, mixed> = []

Valeurs de la ligne SQL de la rubrique, si connue

$hidden : string = ''

Contenu HTML ajouté en même temps que les champs cachés du formulaire.

Tags
see
formulaires_editer_objet_traiter()
Return values
array<string|int, mixed>

Retour des traitements

choisir_rubriques_admin_restreint()

Afficher le formulaire de choix de rubrique restreinte pour insertion dans le formulaire

choisir_rubriques_admin_restreint(int $id_auteur[, string $label = '' ][, string $sel_css = '#liste_rubriques_restreintes' ][, string $img_remove = '' ]) : string
Parameters
$id_auteur : int
$label : string = ''
$sel_css : string = '#liste_rubriques_restreintes'

Sélecteur CSS déterminant le conteneur de l'input reçevant les rubriques sélectionnées

$img_remove : string = ''

Balise <img...> pour enlever des rubriques

Return values
string

Code HTML et javascript

formulaires_inscription_charger_dist()

#FORMULAIRE_INSCRIPTION #FORMULAIRE_INSCRIPTION{6forum} #FORMULAIRE_INSCRIPTION{1comite,#ARRAY{id,#ENV{id_rubrique}}}

formulaires_inscription_charger_dist([string $mode = '' ][, array<string|int, mixed> $options = [] ][, string $retour = '' ]) : array<string|int, mixed>|false

Pour rediriger l'utilisateur apres soumission du formulaire vers une page qui lui dit de verifier ses mails par exemple : #FORMULAIRE_INSCRIPTION{6forum,'',#URL_PAGE{verifiez-vos-mails}}

Pour rediriger l'utilisateur apres Clic dans le lien du mail de confirmation, pour lui confirmer son inscription par exemple #FORMULAIRE_INSCRIPTION{6forum,#ARRAY{redirect,#URL_PAGE{confirmation-inscription}}}

Tout ensemble #FORMULAIRE_INSCRIPTION{6forum,#ARRAY{redirect,#URL_PAGE{confirmation-inscription}}, #URL_PAGE{verifiez-vos-mails}}

Syntaxe legacy : #FORMULAIRE_INSCRIPTION{1comite,#ENV{id_rubrique}}

Parameters
$mode : string = ''
$options : array<string|int, mixed> = []
$retour : string = ''
Return values
array<string|int, mixed>|false

formulaires_inscription_verifier_dist()

Si inscriptions pas autorisees, retourner une chaine d'avertissement

formulaires_inscription_verifier_dist([string $mode = '' ][, array<string|int, mixed> $options = [] ][, string $retour = '' ]) : array<string|int, mixed>
Parameters
$mode : string = ''
$options : array<string|int, mixed> = []
$retour : string = ''
Return values
array<string|int, mixed>

formulaires_inscription_traiter_dist()

Si inscriptions pas autorisees, retourner une chaine d'avertissement

formulaires_inscription_traiter_dist([string $mode = '' ][, array<string|int, mixed> $options = [] ][, string $retour = '' ]) : array<string|int, mixed>
Parameters
$mode : string = ''
$options : array<string|int, mixed> = []
$retour : string = ''
Return values
array<string|int, mixed>

lister_statuts_proposes()

Filtres les statuts utilisable selon les droits de publication

lister_statuts_proposes(array<string|int, mixed> $desc[, bool $publiable = true ]) : array<string|int, mixed>
Parameters
$desc : array<string|int, mixed>
$publiable : bool = true
Return values
array<string|int, mixed>

formulaires_instituer_objet_charger_dist()

Chargement du formulaire instituer objet

formulaires_instituer_objet_charger_dist(string $objet, int $id_objet[, string $retour = '' ][, bool $editable = true ]) : array<string|int, mixed>|bool
Parameters
$objet : string

Type d'objet

$id_objet : int

Identifiant de l'objet

$retour : string = ''

URL de redirection après le traitement

$editable : bool = true

Indique si le statut est éditable ou non. Dans tous les cas, si l'on n'a pas la permission de modifier l'objet, cette option sera mise à false.

Tags
uses
formulaires_editer_objet_charger()
Return values
array<string|int, mixed>|bool

Environnement du formulaire ou false si aucun affichage à faire.

formulaires_instituer_objet_verifier_dist()

Vérifications du formulaire instituer objet

formulaires_instituer_objet_verifier_dist(string $objet, int $id_objet[, string $retour = '' ][, bool $editable = true ]) : array<string|int, mixed>
Parameters
$objet : string

Type d'objet

$id_objet : int

Identifiant de l'objet

$retour : string = ''

URL de redirection après le traitement

$editable : bool = true

Indique si le statut est éditable ou non.

Tags
uses
formulaires_editer_objet_charger()
Return values
array<string|int, mixed>

Tableau des erreurs

formulaires_instituer_objet_traiter_dist()

Traitements du formulaire instituer objet

formulaires_instituer_objet_traiter_dist(string $objet, int $id_objet[, string $retour = '' ][, bool $editable = true ]) : array<string|int, mixed>
Parameters
$objet : string

Type d'objet

$id_objet : int

Identifiant de l'objet

$retour : string = ''

URL de redirection après le traitement

$editable : bool = true

Indique si le statut est éditable ou non.

Return values
array<string|int, mixed>

Retour des traitements

is_url_prive()

Teste si une URL est une URL de l'espace privé (administration de SPIP) ou de l'espace public

is_url_prive(string $cible) : bool
Parameters
$cible : string

URL

Return values
bool

true si espace privé, false sinon.

formulaires_login_charger_dist()

Chargement du formulaire de login

formulaires_login_charger_dist([string $cible = '' ][, array<string|int, mixed> $options = [] ][, null $deprecated = null ]) : array<string|int, mixed>

Si on est déjà connecté, on redirige directement sur l'URL cible !

Parameters
$cible : string = ''

URL de destination après identification. Cas spécifique : la valeur @page_auteur permet d'être redirigé après connexion sur le squelette public de l'auteur qui se connecte.

$options : array<string|int, mixed> = []

string $login : Login de la personne à identifier (si connu) null|bool $prive : Identifier pour l'espace privé (true), public (false) ou automatiquement (null) en fonction de la destination de l'URL cible.

$deprecated : null = null
Tags
uses
auth_informer_login()
uses
is_url_prive()
uses
login_auth_http()
Return values
array<string|int, mixed>

Environnement du formulaire

login_auth_http()

Identification via HTTP (si pas de cookie)

login_auth_http() : string

Gére le cas où un utilisateur ne souhaite pas de cookie : on propose alors un formulaire pour s'authentifier via http

Tags
used-by
formulaires_login_charger_dist()
Return values
string
  • Si connection possible en HTTP : URL pour réaliser cette identification,
  • chaîne vide sinon.

formulaires_login_verifier_dist()

Vérifications du formulaire de login

formulaires_login_verifier_dist([string $cible = '' ][, array<string|int, mixed> $options = [] ][, null $deprecated = null ]) : array<string|int, mixed>

Connecte la personne si l'identification réussie.

Parameters
$cible : string = ''

URL de destination après identification. Cas spécifique : la valeur @page_auteur permet d'être redirigé après connexion sur le squelette public de l'auteur qui se connecte.

$options : array<string|int, mixed> = []

string $login : Login de la personne à identifier (si connu) null|bool $prive : Identifier pour l'espace privé (true), public (false) ou automatiquement (null) en fonction de la destination de l'URL cible.

$deprecated : null = null
Tags
uses
auth_identifier_login()
uses
auth_loger()
uses
login_autoriser()
Return values
array<string|int, mixed>

Erreurs du formulaire

login_autoriser()

Teste l'autorisation d'accéder à l'espace privé une fois une connexion réussie, si la cible est une URL privée.

login_autoriser() : array<string|int, mixed>

Dans le cas contraire, un message d'erreur est retourné avec un lien pour se déconnecter.

Tags
used-by
formulaires_login_verifier_dist()
Return values
array<string|int, mixed>
  • Erreur si un connecté n'a pas le droit d'acceder à l'espace privé
  • tableau vide sinon.

formulaires_login_traiter_dist()

Traitements du formulaire de login

formulaires_login_traiter_dist([string $cible = '' ][, array<string|int, mixed> $options = [] ][, null $deprecated = null ]) : array<string|int, mixed>

On arrive ici une fois connecté. On redirige simplement sur l'URL cible désignée.

Parameters
$cible : string = ''

URL de destination après identification. Cas spécifique : la valeur @page_auteur permet d'être redirigé après connexion sur le squelette public de l'auteur qui se connecte.

$options : array<string|int, mixed> = []

string $login : Login de la personne à identifier (si connu) null|bool $prive : Identifier pour l'espace privé (true), public (false) ou automatiquement (null) en fonction de la destination de l'URL cible.

$deprecated : null = null
Return values
array<string|int, mixed>

Retours du traitement

retrouve_auteur()

retrouve_auteur(mixed $id_auteur[, mixed $jeton = '' ]) : mixed
Parameters
$id_auteur : mixed
$jeton : mixed = ''

formulaires_mot_de_passe_charger_dist()

Chargement de l'auteur qui peut changer son mot de passe.

formulaires_mot_de_passe_charger_dist([int $id_auteur = null ][, mixed $jeton = null ]) : array<string|int, mixed>

Soit un cookie d'oubli fourni par #FORMULAIRE_OUBLI est passe dans l'url par &p= Soit un id_auteur est passe en parametre #FORMULAIRE_MOT_DE_PASSE{#ID_AUTEUR} Dans les deux cas on verifie que l'auteur est autorise

Parameters
$id_auteur : int = null
$jeton : mixed = null
Return values
array<string|int, mixed>

formulaires_mot_de_passe_verifier_dist()

Verification de la saisie du mot de passe.

formulaires_mot_de_passe_verifier_dist([int $id_auteur = null ][, mixed $jeton = null ]) : mixed

On verifie qu'un mot de passe est saisi, et que sa longuer est suffisante Ce serait le lieu pour verifier sa qualite (caracteres speciaux ...)

Parameters
$id_auteur : int = null
$jeton : mixed = null

formulaires_mot_de_passe_traiter_dist()

Modification du mot de passe d'un auteur.

formulaires_mot_de_passe_traiter_dist([int $id_auteur = null ][, mixed $jeton = null ]) : mixed

Utilise le cookie d'oubli fourni en url ou l'argument du formulaire pour identifier l'auteur

Parameters
$id_auteur : int = null
$jeton : mixed = null

formulaires_oubli_charger_dist()

formulaires_oubli_charger_dist() : mixed

message_oubli()

message_oubli(mixed $email, mixed $param) : mixed
Parameters
$email : mixed
$param : mixed

formulaires_oubli_traiter_dist()

formulaires_oubli_traiter_dist() : mixed

test_oubli_dist()

test_oubli_dist(mixed $email) : mixed
Parameters
$email : mixed

formulaires_oubli_verifier_dist()

formulaires_oubli_verifier_dist() : mixed

formulaires_oubli_mail()

formulaires_oubli_mail(mixed $email) : mixed
Parameters
$email : mixed

formulaires_recherche_ecrire_charger_dist()

Chargement des valeurs par defaut des champs du formulaire de recherche de l'espace privé

formulaires_recherche_ecrire_charger_dist([string $action = '' ][, string $class = '' ]) : array<string|int, mixed>

Le formulaire dirige son action directement sur la page de l'action demandée. Il n'y a pas de vérification ni de traitement dans ce formulaire.

Parameters
$action : string = ''

URL de la page exec qui reçoit la recherche. Par défaut l'URL de l'exec 'recherche'.

$class : string = ''

Classe CSS supplémentaire appliquée sur le formulaire

Return values
array<string|int, mixed>

Environnement du formulaire

formulaires_rediriger_article_charger_dist()

formulaires_rediriger_article_charger_dist(mixed $id_article[, mixed $retour = '' ]) : mixed
Parameters
$id_article : mixed
$retour : mixed = ''

formulaires_rediriger_article_verifier_dist()

formulaires_rediriger_article_verifier_dist(mixed $id_article[, mixed $retour = '' ]) : mixed
Parameters
$id_article : mixed
$retour : mixed = ''

formulaires_rediriger_article_traiter_dist()

formulaires_rediriger_article_traiter_dist(mixed $id_article[, mixed $retour = '' ]) : mixed
Parameters
$id_article : mixed
$retour : mixed = ''

formulaires_traduire_charger_dist()

Charger les données de #FORMULAIRE_TRADUIRE

formulaires_traduire_charger_dist(string $objet, int $id_objet[, string $retour = '' ][, bool $traduire = true ]) : array<string|int, mixed>|bool
Parameters
$objet : string

Type d'objet

$id_objet : int

Identifiant de l'objet

$retour : string = ''

URL de retour

$traduire : bool = true

Permet de désactiver la gestion de traduction sur un objet ayant id_trad

Return values
array<string|int, mixed>|bool

False si l'identifiant n'est pas numérique ou si l'objet n'a pas de langue Contexte à transmettre au squelette du formulaire sinon

formulaires_traduire_verifier_dist()

Vérifier les saisies des valeurs du #FORMULAIRE_TRADUIRE

formulaires_traduire_verifier_dist(string $objet, int $id_objet[, string $retour = '' ][, bool $traduire = true ]) : array<string|int, mixed>
Parameters
$objet : string

Type d'objet

$id_objet : int

Identifiant de l'objet

$retour : string = ''

URL de retour

$traduire : bool = true

Permet de désactiver la gestion de traduction sur un objet ayant id_trad

Return values
array<string|int, mixed>

Erreurs des saisies

formulaires_traduire_traiter_dist()

Enregistrer en base les saisies du #FORMULAIRE_TRADUIRE

formulaires_traduire_traiter_dist(string $objet, int $id_objet[, string $retour = '' ][, bool $traduire = true ]) : array<string|int, mixed>
Parameters
$objet : string

Type d'objet

$id_objet : int

Identifiant de l'objet

$retour : string = ''

URL de retour

$traduire : bool = true

Permet de désactiver la gestion de traduction sur un objet ayant id_trad

Return values
array<string|int, mixed>

Retour des traitements

informer_auteur()

Retrouve pour le formulaire de login les informations d'un login qui permettront de crypter le mot de passe saisi

informer_auteur(string $bof) : string

Si le login n'est pas trouvé, retourne de fausses informations, sauf si la constante _AUTORISER_AUTH_FAIBLE est déclarée à true.

Parameters
$bof : string

Date de la demande

Tags
note

Le parametre var_login n'est pas dans le contexte pour optimiser le cache il faut aller le chercher à la main

uses
auth_informer_login()
Return values
string

JSON des différentes informations

defaut_tri_par()

defaut_tri_par(mixed $par, mixed $defaut) : mixed
Parameters
$par : mixed
$defaut : mixed

critere_compteur_articles_filtres_dist()

Compter les articles publies lies a un auteur, dans une boucle auteurs pour la vue prive/liste/auteurs.html

critere_compteur_articles_filtres_dist(string $idb, array<string|int, mixed> &$boucles, Critere $crit[, bool $left = false ]) : mixed
Parameters
$idb : string
$boucles : array<string|int, mixed>
$crit : Critere
$left : bool = false

balise_COMPTEUR_ARTICLES_dist()

Compter les articles publiés liés à un auteur, dans une boucle auteurs pour la vue `prive/liste/auteurs.html`

balise_COMPTEUR_ARTICLES_dist(Champ $p) : Champ

Nécessite le critère compteur_articles_filtres

Parameters
$p : Champ

Pile au niveau de la balise

Tags
balise
see
critere_compteur_articles_filtres_dist()
Return values
Champ

Pile complétée par le code à générer

afficher_initiale()

Afficher l'initiale pour la navigation par lettres

afficher_initiale(string $url, string $initiale, int $compteur, int $debut, int $pas) : string
Parameters
$url : string
$initiale : string
$compteur : int
$debut : int
$pas : int
Tags
staticvar

string $memo

Return values
string

auteur_lien_messagerie()

Calculer l'url vers la messagerie : - si l'auteur accepte les messages internes et que la messagerie est activee et qu'il est en ligne, on propose le lien vers la messagerie interne - sinon on propose un lien vers un email si possible - sinon rien

auteur_lien_messagerie(int $id_auteur, string $en_ligne, string $statut, string $imessage[, string $email = '' ]) : string
Parameters
$id_auteur : int
$en_ligne : string

Date

$statut : string
$imessage : string
$email : string = ''
Tags
staticvar

string $time

Return values
string

lister_traductions()

lister_traductions(mixed $id_trad, mixed $objet) : mixed
Parameters
$id_trad : mixed
$objet : mixed

job_queue_display_call()

Prévisu d'un appel à une fonction avec ses arguments

job_queue_display_call(string $function, string $args) : string
Parameters
$function : string
$args : string
Return values
string

inclure_liste_recherche_par_id()

inclure_liste_recherche_par_id(mixed $table, mixed $id, mixed $statut, mixed $env) : mixed
Parameters
$table : mixed
$id : mixed
$statut : mixed
$env : mixed

spip_generer_variables_css_typo()

Génère les variables CSS relatif à la typo et langue pour l'espace privé

spip_generer_variables_css_typo(array<string|int, mixed> $Pile) : Collection
Parameters
$Pile : array<string|int, mixed>
Return values
Collection

spip_generer_variables_css_couleurs_theme()

Génère les variables CSS d'un thème de couleur pour l'espace privé

spip_generer_variables_css_couleurs_theme(string $couleur) : Collection
Parameters
$couleur : string

Couleur hex

Return values
Collection

spip_generer_variables_css_couleurs()

Génère les variables CSS de couleurs, dont celles dépendantes des couleurs du thème actif.

spip_generer_variables_css_couleurs() : Collection
Return values
Collection

Search results