'; $header .= $this->getBreadcrumb($breadcrumb); $header .= ''; // Begin Tools $header .= '
'; $header .= $this->getLicenseInfo(); // End Tools $header .= '
'; $header = '
'.$header.'
'; return $this->getLastNews().$header; } private function getLastNews() { $lastNewsCheck = $this->config->get('last_news_check', 0); if ($lastNewsCheck < time() - 7200) { $context = stream_context_create(['http' => ['timeout' => 1]]); $news = @file_get_contents(ACYC_ACYMAILLING_WEBSITE.'acymnews.xml', false, $context); $this->config->save( [ 'last_news_check' => time(), 'last_news' => base64_encode($news), ], false ); } else { $news = $this->config->get('last_news', ''); if (!empty($news)) $news = base64_decode($news); } if (empty($news)) return ''; $news = @simplexml_load_string($news); if (empty($news->news)) return ''; $currentLanguage = Language::getLanguageTag(); $latestNews = null; $doNotRemind = json_decode($this->config->get('remindme', '[]')); foreach ($news->news as $oneNews) { // If we found a news more recent, it means we found the latest available one if (!empty($latestNews) && strtotime($latestNews->date) > strtotime($oneNews->date)) break; // If the news isn't published or that the language isn't correct, leave $language = strtolower($oneNews->language); if (empty($oneNews->published) || ($language != strtolower($currentLanguage) && ($language != 'default' || !empty($latestNews)))) { continue; } // If the extension isn't correct, leave if (!empty($oneNews->extension) && strtolower($oneNews->extension) != 'acychecker') continue; // If the CMS isn't correct, leave if (!empty($oneNews->cms) && strtolower($oneNews->cms) != strtolower('wordpress')) continue; // If the level of the extension isn't correct, leave if (!empty($oneNews->level) && strtolower($oneNews->level) != strtolower($this->config->get('level'))) continue; // If the version of the extension isn't correct, leave if (!empty($oneNews->version)) { list($version, $operator) = explode('_', $oneNews->version); if (!version_compare($this->config->get('version'), $version, $operator)) continue; } if (in_array($oneNews->name, $doNotRemind)) continue; $latestNews = $oneNews; } if (empty($latestNews)) return ''; $newsDisplay = '
'; if (!empty($latestNews)) { $newsDisplay .= $latestNews->content; } $newsDisplay .= '
'; return $newsDisplay; } private function getBreadcrumb($breadcrumb) { $links = []; foreach ($breadcrumb as $oneLevel => $link) { if (!empty($link)) { $oneLevel = ''.$oneLevel.''; } $links[] = '
  • '.$oneLevel.'
  • '; } if (count($links) > 1) { $links[count($links) - 1] = str_replace('
  • ', '