Exemple #1
0
  public function getCalendar() {
    global $cremote_calendar_ics_ttl;
    if (is_array($this->website)) {
      foreach($this->website as $website) {
        if ($website['label'][0] == 'CALURI') {
          $url = $website['url'];
          $file = "/tmp/".str_replace("/", "_", $url);
          $now = new Of_Date();
          if (file_exists($file) && ($now->getTimestamp() - filectime($file)) < $cremote_calendar_ics_ttl) {
            // get ics from stored file
            $f = fopen($file, 'r');
            $d = stream_get_contents($f);
            fclose($f);
          } else {
            // get ics from url
            $handle = @fopen($url, "r");
            if ($handle) {
              $d = stream_get_contents($handle);
              fclose($handle);

              // store ics file in filesystem
              $f = fopen($file, 'w');
              fwrite($f, $d);
              fclose($f);
            } else {
              return false;
            }
          }
          return Vpdi::decodeOne($d);
        }
      }
    }
    return false;
  }