54 lines
1.2 KiB
PHP
Executable file
54 lines
1.2 KiB
PHP
Executable file
<?php
|
|
/**
|
|
* Fonctions utiles au plugin Block Log
|
|
*
|
|
* @plugin Block Log
|
|
* @copyright 2019
|
|
* @author tofulm
|
|
* @licence GNU/GPL
|
|
* @package SPIP\Blocklog\Fonctions
|
|
*/
|
|
|
|
if (!defined('_ECRIRE_INC_VERSION')) {
|
|
return;
|
|
}
|
|
|
|
function trouver_blocklog($id_objet, $objet, $id = false){
|
|
static $r;
|
|
|
|
if ($r == null) {
|
|
$from = array(
|
|
'spip_blocklogs as B',
|
|
'spip_blocklogs_liens as L'
|
|
);
|
|
$where = array(
|
|
'L.id_objet='.intval($id_objet),
|
|
'L.objet='.sql_quote($objet),
|
|
'L.id_blocklog=B.id_blocklog'
|
|
);
|
|
$r = sql_fetsel('B.id_blocklog, B.blockchaine, B.chaine', $from, $where, '', 'B.id_blocklog DESC', 1);
|
|
}
|
|
|
|
if ($id) {
|
|
return $r;
|
|
}
|
|
|
|
return $r['blockchaine'];
|
|
}
|
|
|
|
|
|
function blocklog_verifier_blockchaine($id_objet, $objet){
|
|
if (intval($id_objet) and $objet) {
|
|
$r = trouver_blocklog($id_objet, $objet, true);
|
|
$id_blocklog_pre = intval($r['id_blocklog']) - 1;
|
|
$blockchaine = sql_getfetsel('blockchaine', 'spip_blocklogs', 'id_blocklog='.intval($id_blocklog_pre));
|
|
|
|
if (! defined("_BLOCKLOG_ALGO")) {
|
|
define("_BLOCKLOG_ALGO", 'sha256');
|
|
}
|
|
$blockchaine .= "|" . $r['chaine'];
|
|
$blockchaine = hash(_BLOCKLOG_ALGO, $blockchaine);
|
|
|
|
return $blockchaine === $r['blockchaine'];
|
|
}
|
|
}
|