<?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");
}