MyShaarli/doc/Datastore-hacks.md
2016-04-14 15:18:25 +02:00

1.1 KiB

#Datastore hacks

Decode datastore content

To display the array representing the data saved in data/datastore.php, use the following snippet:

$data = "tZNdb9MwFIb... <Commented content inside datastore.php>";
$out = unserialize(gzinflate(base64_decode($data)));
echo "<pre>"; // Pretty printing is love, pretty printing is life
print_r($out);
echo "</pre>";
exit;

This will output the internal representation of the datastore, "unobfuscated" (if this can really be considered obfuscation).

Alternatively, you can transform to JSON format (and pretty-print if you have jq installed):

php -r 'print(json_encode(unserialize(gzinflate(base64_decode(preg_replace("!.*/\* (.+) \*/.*!", "$1", file_get_contents("data/datastore.php")))))));' | jq .
  • Look for <input type="hidden" name="lf_linkdate" value="{$link.linkdate}"> in tpl/editlink.tpl (line 14)
  • Replace type="hidden" with type="text" from this line
  • A new date/time field becomes available in the edit/new link dialog.
  • You can set the timestamp manually by entering it in the format YYYMMDD_HHMMS.