From da2c3c1b6f2d39386a508189cc29994eeb579534 Mon Sep 17 00:00:00 2001 From: Ad Schellevis Date: Fri, 13 Mar 2015 08:39:47 +0100 Subject: [PATCH] add revisiondata to getBackups for config class --- .../mvc/app/library/OPNsense/Core/Config.php | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/opnsense/mvc/app/library/OPNsense/Core/Config.php b/src/opnsense/mvc/app/library/OPNsense/Core/Config.php index 755ac566b..c530594eb 100644 --- a/src/opnsense/mvc/app/library/OPNsense/Core/Config.php +++ b/src/opnsense/mvc/app/library/OPNsense/Core/Config.php @@ -319,15 +319,30 @@ class Config extends Singleton /** * return list of config backups + * @param bool $fetchRevisionInfo fetch revision information and return detailed information. (key/value) * @return array list of backups */ - public function getBackups() + public function getBackups($fetchRevisionInfo = false) { $target_dir = dirname($this->config_file)."/backup/"; if (file_exists($target_dir)) { $backups = glob($target_dir."config*.xml"); + // sort by date (descending) rsort($backups); - return $backups; + if (!$fetchRevisionInfo) { + return $backups; + } else { + $result = array (); + foreach ($backups as $filename) { + // try to read backup info from xml + $xmlNode = simplexml_load_file($filename, "SimpleXMLElement", LIBXML_NOERROR | LIBXML_ERR_NONE); + if (isset($xmlNode->revision)) { + $result[$filename] = $this->toArray($xmlNode->revision); + } + } + + return $result; + } } return array();