gamutable/gamutable_fonctions.php

147 lines
3.1 KiB
PHP

<?php
/**
* Fonctions utiles au plugin GamuTable
*
* @plugin GamuTable
* @copyright 2020
* @author tofulm
* @licence GNU/GPL
* @package SPIP\Gamutable\Fonctions
*/
if (!defined("_ECRIRE_INC_VERSION")) {
return;
}
include_spip("inc/vite");
/**
* fonction pour forcer un hit pour un objet
* un hit => maj de champ maj
*
* @param string $objet
* @param int $id_objet
* @param string $table (optional) pour forcer sur une table spécifique ou le test se fait sur la cle primaire de $objet
* si $table est renseigné : ex :
* $objet = rubrique
* $id_objet = 4
* $table = 'spip_articles'
* => le hit sur l'id_rubrique 4 de spip_articles
*
* @return void [TODO:description]
*/
function forcer_hit(string $objet, int $id_objet, string $table = null):void {
include_spip('inc/invalideur');
$id = id_table_objet($objet);
if (!$table) {
$table = table_objet_sql($objet);
} else {
$id_c = id_table_objet($table);
suivre_invalideur("id='$id_c/1'");
}
sql_updateq($table, ['maj' => date("Y-m-d H:i:s")], "$id=".$id_objet);
suivre_invalideur("id='$id/1'");
}
if (!function_exists('tsEnDate')) {
/**
* retour la date d'un timestamp
*
* @param $ts
*
* @return string
*/
function tsEnDate($ts) {
$ts = intval($ts);
return date('Y-m-d H:i:s', $ts);
}
}
function gamutable_fermer_modalbox($id_objet = 9999999999, $num = null) {
if ($num) {
$num = "_deux";
}
$js = gamutable_generer_js($id_objet, $num);
$html = <<<EOJS
<script type="text/javascript">
$js;
</script>
EOJS;
return $html;
}
function gamutable_generer_js($id_objet, $num){
if (intval($num) === 2) {
$num = "_deux";
} else {
$num = null;
}
$html = <<<EOJS
id = "$id_objet";
if (id === 'maj' || !id) {
if (typeof app !== 'undefined') {
app.rechargerJson(id);
}
if (typeof app_deux !== 'undefined') {
app_deux.rechargerJson(id);
}
} else {
id = parseInt(id);
if (id === 9999999999) {
if (typeof app$num !== 'undefined') {
app$num.rechargerJson();
}
} else {
if (typeof app$num !== 'undefined') {
app$num.rechargerJson(id);
}
}
}
$.modalboxclose();
delete id;
EOJS;
return $html;
}
/**
* fonction que l'on peut appeler comme filtre dans une vues des crayons
* ex:
* [(#ID_APP_HORAIRE|gamutable_recharger_tableau)]
*
* @param $id_objet (optional)
* @param $num (optional) (si on veut recharger qu'un tableau préciséemnt)
*
* @return string $html
*/
function gamutable_recharger_tableau($id_objet = 9999999999, $num = null):string {
if ($num) {
$num = "_deux";
}
$html = <<<EOJS
<script type="text/javascript">
id = "$id_objet";
if (id === 'maj' || !id) {
if (typeof app !== 'undefined') {
app.rechargerJson(id);
}
if (typeof app_deux !== 'undefined') {
app_deux.rechargerJson(id);
}
} else {
id = parseInt(id);
if (id === 9999999999) {
if (typeof app$num !== 'undefined') {
app$num.rechargerJson();
}
} else {
if (typeof app$num !== 'undefined') {
app$num.rechargerJson(id);
}
}
}
delete id;
</script>
EOJS;
return $html;
}