Load config from cache on user interface + <table> display

This commit is contained in:
xdrm-brackets 2017-09-12 21:35:45 +02:00
parent 5b0666e89b
commit 6b7baa8729
2 changed files with 64 additions and 6 deletions

View File

@ -30,7 +30,7 @@
=========================================================*/
/* (1) Get config */
try{
$config = Config::load("http://sciences.univ-pau.fr/edt/_ressource.js", "http://sciences.univ-pau.fr/edt/_periode.js");
$config = Config::loadCached();
/* (2) Error management */
}catch(\Exception $e){
@ -44,17 +44,22 @@
/* [2] Display the links
=========================================================*/
echo "<table><thead><tr><td>Diplome</td><td>Link</td></tr></thead><tbody>";
foreach($diplomes as $id=>$name){
echo "<span>$name</span>";
echo "<tr><td>$name</td>";
$link = $_SERVER['HTTP_HOST']."/ics/$id.ics";
if( file_exists(__ROOT__."/tmp/$id.ics") )
echo " -> <a href='/ics/$id.ics'>https://$link</a><br>";
echo "<td><a href='/ics/$id.ics'>https://$link</a></td>";
echo "</tr>";
}
echo "</tbody></table>";
}
/* POST-CALL

View File

@ -171,7 +171,60 @@
/* [4] Return the instance
/* [4] Return the instance + cache
=========================================================*/
/* (1) Cache */
file_put_contents(__ROOT__."/tmp/diplomes.cache", json_encode($d_list));
file_put_contents(__ROOT__."/tmp/periods.cache", json_encode($p_list));
/* (2) Return the instance */
return new Config($d_list, $p_list);
}
/* (3) Loads the configuration from URL
*
* @return instance<Config> The created instance
* NULL on error
*
---------------------------------------------------------*/
public static function loadCached(){
/* [1] Load cache
=========================================================*/ {
/* (1) Check files */
if( !file_exists(__ROOT__."/tmp/diplomes.cache") )
throw new \Exception("Diplomes cache is missing");
if( !file_exists(__ROOT__."/tmp/periods.cache") )
throw new \Exception("Periods cache is missing");
/* (2) Read files */
if( !($d_list=@file_get_contents(__ROOT__."/tmp/diplomes.cache")) )
throw new \Exception("Diplomes cache is not readable");
if( !($p_list=@file_get_contents(__ROOT__."/tmp/periods.cache")) )
throw new \Exception("Periods cache is not readable");
/* (3) Parse files */
if( is_null(( $d_list = json_decode($d_list, true) )) )
throw new \Exception("Cannot parse diplome list");
if( is_null(( $p_list = json_decode($p_list, true) )) )
throw new \Exception("Cannot parse periods list");
}
/* [2] Return the instance
=========================================================*/
return new Config($d_list, $p_list);
@ -180,7 +233,7 @@
/* (3) Getter diplomes
/* (4) Getter diplomes
*
* @return diplomes<Array> Diplome list
*
@ -192,7 +245,7 @@
/* (4) Getter periods
/* (5) Getter periods
*
* @return periods<Array> Period list
*