F-d-ration_de_groupes/balint_fonctions.php

83 lines
No EOL
2.3 KiB
PHP

<?php
/**
* Fonctions utiles au plugin balint
*
* @plugin balint
* @copyright 2020
* @author Gamuza[informatique]
* @licence GNU/GPL
* @package SPIP\Fip\Fonctions
*/
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
/**
* function qui permet d'afficher une image svg inline en y ajoutant un id et 2 balises : title et alt
* La fonction supprime tout ce qui se trouve au dessus de la balise <svg>
* ex : [(#CHEMIN{IMG/rubon#ID_RUBRIQUE.svg}|afficher_svg{#ID_RUBRIQUE,#GET{class},#GET{titre},#GET{titre}})]
*
*
* @param $url_relative de l'image
* @param $id = numero de l'id
* @param $class
* @param $title
* @param $alt
*
* @return $svg (le code svg)
* @author tofulm
**/
function afficher_svg($url_relative, $id=0, $class = '', $title='', $alt=''){
// nettoyer $url_relative des ?timestamp et vérifier que le ficher existe
$url_relative = explode('?', $url_relative)[0];
if (!file_exists($url_relative)) {
return;
}
$svg = file_get_contents($url_relative);
if ($id) {
$id = "id_$id";
$class = ' class="'.$class.'" ';
$pattern = '/(.+?<svg)(.+?id=")(.+?)(".+?)(<\/svg>)/s';
$replace = '<svg'.$class.'${2}'.$id.'${4}';
if ($title) {
$title = "<title>$title</title>";
$replace .= $title;
}
if ($alt) {
$alt = "<alt>$alt</alt>";
$replace .= $alt;
}
$replace .= '${5}';
$svg = preg_replace($pattern,$replace,$svg,1);
}
return $svg;
}
if (!function_exists('array_column')) {
function array_column($array, $columnKey, $indexKey = null)
{
$result = array();
foreach ($array as $subArray) {
if (is_null($indexKey) && array_key_exists($columnKey, $subArray)) {
$result[] = is_object($subArray)?$subArray->$columnKey: $subArray[$columnKey];
} elseif (array_key_exists($indexKey, $subArray)) {
if (is_null($columnKey)) {
$index = is_object($subArray)?$subArray->$indexKey: $subArray[$indexKey];
$result[$index] = $subArray;
} elseif (array_key_exists($columnKey, $subArray)) {
$index = is_object($subArray)?$subArray->$indexKey: $subArray[$indexKey];
$result[$index] = is_object($subArray)?$subArray->$columnKey: $subArray[$columnKey];
}
}
}
return $result;
}
}
function info_param($arg){
list($objet,$id_objet,$param)=explode('/',$arg);
return sql_getfetsel($param,'spip_' .$objet. 's',"id_$objet=$id_objet");
}