]> git.immae.eu Git - github/shaarli/Shaarli.git/blobdiff - tests/utils/ReferenceLinkDB.php
Add a page to update all thumbnails through AJAX requests in both templates
[github/shaarli/Shaarli.git] / tests / utils / ReferenceLinkDB.php
index f09eebc13b26f701ecc8944602794bc22adbc219..e887aa78c2251747c46cf37fab4359c782b32b36 100644 (file)
@@ -141,12 +141,34 @@ class ReferenceLinkDB
      */
     public function write($filename)
     {
+        $this->reorder();
         file_put_contents(
             $filename,
             '<?php /* '.base64_encode(gzdeflate(serialize($this->_links))).' */ ?>'
         );
     }
 
+    /**
+     * Reorder links by creation date (newest first).
+     *
+     * Also update the urls and ids mapping arrays.
+     *
+     * @param string $order ASC|DESC
+     */
+    public function reorder($order = 'DESC')
+    {
+        // backward compatibility: ignore reorder if the the `created` field doesn't exist
+        if (! isset(array_values($this->_links)[0]['created'])) {
+            return;
+        }
+
+        $order = $order === 'ASC' ? -1 : 1;
+        // Reorder array by dates.
+        usort($this->_links, function($a, $b) use ($order) {
+            return $a['created'] < $b['created'] ? 1 * $order : -1 * $order;
+        });
+    }
+
     /**
      * Returns the number of links in the reference data
      */
@@ -187,6 +209,7 @@ class ReferenceLinkDB
 
     public function getLinks()
     {
+        $this->reorder();
         return $this->_links;
     }