Fixed last added chmod to octal mode + can only update a diplome specifically

This commit is contained in:
xdrm-brackets 2017-09-15 08:38:39 +02:00
parent a70267ea06
commit ea77b64c32
2 changed files with 55 additions and 4 deletions

View File

@ -7,6 +7,8 @@
die("Missing argument (server url)\n"); die("Missing argument (server url)\n");
$_SERVER = [ 'SERVER_NAME' => $argv[1] ]; $_SERVER = [ 'SERVER_NAME' => $argv[1] ];
$upd = new Updater();
// If 2nd argument -> diplome id to update only
$upd = new Updater(isset($argv[2]) ? $argv[2] : null);
$upd->update(); $upd->update();

View File

@ -11,14 +11,17 @@
/* [1] Attributes /* [1] Attributes
=========================================================*/ =========================================================*/
private $config = null; private $config = null;
private $d_data = null;
/* (1) Constructs and initialise an updater /* (1) Constructs and initialise an updater
* *
* @d_id<String> Diplome id to update (only)
*
* @return instance<Updater> New Updater * @return instance<Updater> New Updater
* *
---------------------------------------------------------*/ ---------------------------------------------------------*/
public function __construct(){ public function __construct($d_id=null){
/* [1] Fetch config /* [1] Fetch config
=========================================================*/ { =========================================================*/ {
@ -32,6 +35,11 @@
} }
$d_list = $this->config->getDiplomes();
if( !is_null($d_id) && isset($d_list[$d_id]) )
$this->d_data = [ $d_id, $d_list[$d_id] ];
} }
@ -43,7 +51,48 @@
---------------------------------------------------------*/ ---------------------------------------------------------*/
public function update(){ public function update(){
/* [1] Browse ech diplome
/* [1] If only 1 diplome to update -> do it
=========================================================*/
if( is_array($this->d_data) ){
$d_id = $this->d_data[0];
$d_name = $this->d_data[1];
file_put_contents(__ROOT__."/tmp/$d_id.ics", "BEGIN:VCALENDAR\nVERSION:2.0\nPRODID:-//xdrm.io//NONSGML v1.0//EN\nMETHOD:PUBLISH\nX-WR-CALNAME: UPPA $d_name\n");
\chmod(__ROOT__."/tmp/$d_id.ics", 0775);
/* (1) Browse each date
---------------------------------------------------------*/
foreach($this->config->getPeriods() as $p_id=>$p_date){
/* (1) Load image in the extractor */
$calext = new CalendarExtractor($d_id, "http://sciences.univ-pau.fr/edt/diplomes/${d_id}${p_id}.png", $p_date);
/* (2) Extract calendar data */
$calext->process();
/* (3) Get ICS events representation */
$EVENTS = $calext->toIcs();
/* (4) Add to file */
file_put_contents(__ROOT__."/tmp/$d_id.ics", $EVENTS, FILE_APPEND);
}
file_put_contents(__ROOT__."/tmp/$d_id.ics", "END:VCALENDAR", FILE_APPEND);
/* (2) Register update
---------------------------------------------------------*/
$sqlr = DatabaseDriver::getPDO()->prepare("UPDATE diplome SET updated_at = CURRENT_TIMESTAMP WHERE id_diplome = :idd");
$sqlr->execute([ ':idd' => $d_id ]);
return;
}
/* [2] Else -> Browse each diplome
=========================================================*/ =========================================================*/
foreach($this->config->getDiplomes() as $d_id=>$d_name){ foreach($this->config->getDiplomes() as $d_id=>$d_name){