diff --git a/htdocs/blockedlog/admin/blockedlog_list.php b/htdocs/blockedlog/admin/blockedlog_list.php
index 9410ef9be5e..e8b2dc8b73b 100644
--- a/htdocs/blockedlog/admin/blockedlog_list.php
+++ b/htdocs/blockedlog/admin/blockedlog_list.php
@@ -196,7 +196,7 @@ else if (GETPOST('downloadcsv','alpha'))
$block_static->user_fullname = $obj->user_fullname;
$block_static->fk_user = $obj->fk_user;
$block_static->signature = $obj->signature;
- $block_static->object_data = unserialize($obj->object_data);
+ $block_static->object_data = $block_static->dolDecodeBlockedData($obj->object_data);
$checksignature = $block_static->checkSignature($previoushash); // If $previoushash is not defined, checkSignature will search it
diff --git a/htdocs/blockedlog/ajax/block-info.php b/htdocs/blockedlog/ajax/block-info.php
index a092b13ca99..d4d4eef4e07 100644
--- a/htdocs/blockedlog/ajax/block-info.php
+++ b/htdocs/blockedlog/ajax/block-info.php
@@ -85,10 +85,16 @@ function formatObject($objtoshow, $prefix)
{
if (! is_object($val) && ! is_array($val))
{
+ // TODO $val can be '__PHP_Incomplete_Class', the is_object return false
$s.='
| '.($prefix?$prefix.' > ':'').$key.' | ';
$s.='';
if (in_array($key, array('date','datef','dateh','datec','datem','datep')))
{
+ /*var_dump(is_object($val));
+ var_dump(is_array($val));
+ var_dump(is_array($val));
+ var_dump(@get_class($val));
+ var_dump($val);*/
$s.=dol_print_date($val, 'dayhour');
}
else
diff --git a/htdocs/blockedlog/class/blockedlog.class.php b/htdocs/blockedlog/class/blockedlog.class.php
index 13a2840e360..ee41a139152 100644
--- a/htdocs/blockedlog/class/blockedlog.class.php
+++ b/htdocs/blockedlog/class/blockedlog.class.php
@@ -18,10 +18,23 @@
* See https://medium.com/@lhartikk/a-blockchain-in-200-lines-of-code-963cc1cc0e54
*/
+
+
+
+/*ini_set('unserialize_callback_func', 'mycallback');
+
+function mycallback($classname)
+{
+ //var_dump($classname);
+ include_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
+
+}*/
+
+
+
/**
* Class to manage Blocked Log
*/
-
class BlockedLog
{
/**
@@ -636,7 +649,7 @@ class BlockedLog
$this->fk_user = $obj->fk_user;
$this->user_fullname = $obj->user_fullname;
- $this->object_data = unserialize($obj->object_data);
+ $this->object_data = $this->dolDecodeBlockedData($obj->object_data);
$this->signature = $obj->signature;
$this->signature_line = $obj->signature_line;
@@ -658,6 +671,30 @@ class BlockedLog
}
+
+ /**
+ * Decode data
+ *
+ * @param string $mode 0=unserialize, 1=json_decode
+ * @return string Value unserialized
+ */
+ public function dolDecodeBlockedData($data, $mode=0)
+ {
+ try
+ {
+ //include_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
+ //include_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
+ $aaa = unserialize($data);
+ //$aaa = unserialize($data);
+ }
+ catch(Exception $e)
+ {
+ //print $e->getErrs);
+ }
+ return $aaa;
+ }
+
+
/**
* Set block certified by authority
*
|