12937e9a5SAnna Dabrowska<?php 22937e9a5SAnna Dabrowska 32937e9a5SAnna Dabrowskaclass helper_plugin_recommend_log 42937e9a5SAnna Dabrowska{ 52937e9a5SAnna Dabrowska protected $path; 62937e9a5SAnna Dabrowska 72937e9a5SAnna Dabrowska /** 82937e9a5SAnna Dabrowska * @param $month 92937e9a5SAnna Dabrowska */ 10*c6f9d3d5SAnna Dabrowska public function __construct($month) 11*c6f9d3d5SAnna Dabrowska { 122937e9a5SAnna Dabrowska $this->path = DOKU_INC . 'data/cache/recommend'; 132937e9a5SAnna Dabrowska if (!file_exists($this->path)) { 142937e9a5SAnna Dabrowska mkdir($this->path); 152937e9a5SAnna Dabrowska } 162937e9a5SAnna Dabrowska $this->path .= '/' . $month . '.log'; 172937e9a5SAnna Dabrowska } 182937e9a5SAnna Dabrowska 192937e9a5SAnna Dabrowska public function getLogs() 202937e9a5SAnna Dabrowska { 21*c6f9d3d5SAnna Dabrowska return array_map([$this, 'recommendStripExtension'], glob(DOKU_INC . 'data/cache/recommend/*.log')); 222937e9a5SAnna Dabrowska } 232937e9a5SAnna Dabrowska 242937e9a5SAnna Dabrowska public function getEntries() 252937e9a5SAnna Dabrowska { 262937e9a5SAnna Dabrowska return @file($this->path); 272937e9a5SAnna Dabrowska } 282937e9a5SAnna Dabrowska 292937e9a5SAnna Dabrowska public function writeEntry($page, $sender, $receiver, $comment) 302937e9a5SAnna Dabrowska { 31ffb17f7fSAnna Dabrowska $comment = str_replace(["\n", '"'], ['', '\''], $comment); 322937e9a5SAnna Dabrowska $logfile = fopen($this->path, 'a'); 332937e9a5SAnna Dabrowska fwrite($logfile, date('r') . ': ' . 342937e9a5SAnna Dabrowska "“${sender}” recommended “${page}” to " . 352937e9a5SAnna Dabrowska "“${receiver}” with comment “${comment}”.\n"); 362937e9a5SAnna Dabrowska fclose($logfile); 372937e9a5SAnna Dabrowska } 382937e9a5SAnna Dabrowska 392937e9a5SAnna Dabrowska 40*c6f9d3d5SAnna Dabrowska protected function recommendStripExtension($str) 41*c6f9d3d5SAnna Dabrowska { 422937e9a5SAnna Dabrowska return substr(basename($str), 0, -4); 432937e9a5SAnna Dabrowska } 442937e9a5SAnna Dabrowska} 45