diff --git a/autoblogs/autoblog.php b/autoblogs/autoblog.php index 9b9031d..f0d6c45 100644 --- a/autoblogs/autoblog.php +++ b/autoblogs/autoblog.php @@ -1,14 +1,14 @@ =')) @@ -34,9 +34,9 @@ else die("Functions file not found."); if (!defined('ROOT_DIR')) define('ROOT_DIR', __DIR__); -if (!defined('CONFIG_FILE')) define('CONFIG_FILE', ROOT_DIR . '/vvb.ini'); -if (!defined('ARTICLES_DB_FILE')) define('ARTICLES_DB_FILE', ROOT_DIR . '/articles.db'); -if (!defined('MEDIA_DIR')) define('MEDIA_DIR', ROOT_DIR . '/media'); +if (!defined('CONFIG_FILE')) define('CONFIG_FILE', ROOT_DIR . '/vvb.ini'); +if (!defined('ARTICLES_DB_FILE')) define('ARTICLES_DB_FILE', ROOT_DIR . '/articles.db'); +if (!defined('MEDIA_DIR')) define('MEDIA_DIR', ROOT_DIR . '/media'); if (!defined('LOCAL_URL')) { @@ -74,7 +74,7 @@ class VroumVroum_Feed_Exception extends Exception foreach ($errors as $error) { - $return = $xml[$error->line - 1] . "\n"; + $return = $xml[$error->line - 1] . "\n"; $return .= str_repeat('-', $error->column) . "^\n"; switch ($error->level) { @@ -90,11 +90,11 @@ class VroumVroum_Feed_Exception extends Exception } $return .= trim($error->message) . - "\n Line: ".$error->line . - "\n Column: ".$error->column; + "\n Line: ".$error->line . + "\n Column: ".$error->column; if ($error->file) { - $return .= "\n File: ".$error->file; + $return .= "\n File: ".$error->file; } $out[] = $return; @@ -145,7 +145,6 @@ class VroumVroum_Config public $site_type = ''; public $site_title = ''; public $site_description = ''; - public $site_meta_description = ''; public $site_url = ''; public $feed_url = ''; public $articles_per_page = 10; @@ -227,23 +226,23 @@ class VroumVroum_Blog if ($create_articles_db) { $this->articles->exec(' - CREATE TABLE articles ( - id INTEGER PRIMARY KEY, - feed_id TEXT, - title TEXT, - uri TEXT, - url TEXT, - date INT, - content TEXT - ); - CREATE TABLE update_log ( - date INT PRIMARY KEY, - success INT, - log TEXT - ); - CREATE UNIQUE INDEX feed_id ON articles (feed_id); - CREATE INDEX date ON articles (date); - '); +CREATE TABLE articles ( +id INTEGER PRIMARY KEY, +feed_id TEXT, +title TEXT, +uri TEXT, +url TEXT, +date INT, +content TEXT +); +CREATE TABLE update_log ( +date INT PRIMARY KEY, +success INT, +log TEXT +); +CREATE UNIQUE INDEX feed_id ON articles (feed_id); +CREATE INDEX date ON articles (date); +'); } $this->articles->createFunction('countintegers', array($this, 'sql_countintegers')); @@ -257,7 +256,7 @@ class VroumVroum_Blog protected function log_update($success, $log = '') { $this->articles->exec('INSERT INTO update_log (date, success, log) VALUES (\''.time().'\', \''.(int)(bool)$success.'\', - \''.$this->articles->escapeString($log).'\');'); +\''.$this->articles->escapeString($log).'\');'); // Delete old log $this->articles->exec('DELETE FROM update_log WHERE date > (SELECT date FROM update_log ORDER BY date DESC LIMIT 100,1);'); @@ -281,9 +280,9 @@ class VroumVroum_Blog $content = $this->mirrorMediasForArticle($content, $url); $this->articles->exec('INSERT INTO articles (id, feed_id, title, uri, url, date, content) VALUES (NULL, - \''.$this->articles->escapeString($feed_id).'\', \''.$this->articles->escapeString($title).'\', - \''.$this->articles->escapeString($uri).'\', \''.$this->articles->escapeString($url).'\', - \''.(int)$date.'\', \''.$this->articles->escapeString($content).'\');'); +\''.$this->articles->escapeString($feed_id).'\', \''.$this->articles->escapeString($title).'\', +\''.$this->articles->escapeString($uri).'\', \''.$this->articles->escapeString($url).'\', +\''.(int)$date.'\', \''.$this->articles->escapeString($content).'\');'); $id = $this->articles->lastInsertRowId(); @@ -305,8 +304,8 @@ class VroumVroum_Blog $content = $this->mirrorMediasForArticle($content, $url); $this->articles->exec('UPDATE articles SET title=\''.$this->articles->escapeString($title).'\', - url=\''.$this->articles->escapeString($url).'\', content=\''.$this->articles->escapeString($content).'\', - date=\''.(int)$date.'\' WHERE id = \''.(int)$id.'\';'); +url=\''.$this->articles->escapeString($url).'\', content=\''.$this->articles->escapeString($content).'\', +date=\''.(int)$date.'\' WHERE id = \''.(int)$id.'\';'); $title = self::removeHTML($title); $content = self::removeHTML($content); @@ -328,9 +327,9 @@ class VroumVroum_Blog return true; } - + public function mustUpdateXsaf() - { + { return file_exists('import.json'); } @@ -338,10 +337,10 @@ class VroumVroum_Blog { return stream_context_create( array( - 'http' => array( - 'method' => 'GET', - 'timeout' => $this->config->update_timeout, - 'header' => "User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:20.0; Autoblogs; +https://github.com/mitsukarenai/Projet-Autoblog/) Gecko/20100101 Firefox/20.0\r\n", + 'http' => array( + 'method' => 'GET', + 'timeout' => $this->config->update_timeout, + 'header' => "User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:20.0; Autoblogs; +https://github.com/mitsukarenai/Projet-Autoblog/) Gecko/20100101 Firefox/20.0\r\n", ) ) ); @@ -380,10 +379,10 @@ class VroumVroum_Blog { $date = isset($item->published) ? (string) $item->published : (string) $item->updated; $guid = !empty($item->id) ? (string)$item->id : (string)$item->link['href']; - + if( count($item->content->children()) > 0 ) $content = (string)$item->content->asXML(); else $content = (string)$item->content; - + $id = $this->insertOrUpdateArticle($guid, (string)$item->title, (string)$item->link['href'], strtotime($date), $content ); @@ -433,33 +432,33 @@ class VroumVroum_Blog return $updated; } - + public function updateXsaf() { if($this->mustUpdateXsaf()) { - $json = json_decode(file_get_contents('import.json'), true); - $count = count($json['files']); - file_put_contents('import.lock', $count); /* one-process locking */ - $remoteurl = $json['url']; - if (!file_exists('media')) { - mkdir('media'); + $json = json_decode(file_get_contents('import.json'), true); + $count = count($json['files']); + file_put_contents('import.lock', $count); /* one-process locking */ + $remoteurl = $json['url']; + if (!file_exists('media')) { + mkdir('media'); } - $time = time(); - $maxtime = $time + 3; /* max exec time: 3 seconds */ - - while ($time <= $maxtime) { - $file = array_shift($json['files']); /* get first element while unstacking */ - if(!empty($file)) { - $this->_copy($remoteurl.$file, "media/$file"); - file_put_contents('import.json', json_encode($json)); + $time = time(); + $maxtime = $time + 3; /* max exec time: 3 seconds */ + + while ($time <= $maxtime) { + $file = array_shift($json['files']); /* get first element while unstacking */ + if(!empty($file)) { + $this->_copy($remoteurl.$file, "media/$file"); + file_put_contents('import.json', json_encode($json)); } - else { - unlink('import.json'); - break; - } /* first element empty: import finished */ - $time = time(); - } - unlink('import.lock'); - } + else { + unlink('import.json'); + break; + } /* first element empty: import finished */ + $time = time(); +} + unlink('import.lock'); +} } public function listArticlesByPage($page = 1) @@ -501,11 +500,11 @@ class VroumVroum_Blog public function searchArticles($query) { $res = $this->articles->query('SELECT id, uri, title, content - FROM articles - WHERE content LIKE \'%'.$this->articles->escapeString($query).'%\' - OR title LIKE \'%'.$this->articles->escapeString($query).'%\' - ORDER BY id DESC - LIMIT 0,100;'); +FROM articles +WHERE content LIKE \'%'.$this->articles->escapeString($query).'%\' +OR title LIKE \'%'.$this->articles->escapeString($query).'%\' +ORDER BY id DESC +LIMIT 0,100;'); $out = array(); @@ -526,7 +525,7 @@ class VroumVroum_Blog } $schemes = array('http', 'https'); - $extensions = explode(',', preg_quote('jpg,jpeg,png,apng,gif,svg,pdf,odt,ods,epub,webp,wav,mp3,ogg,aac,wma,flac,opus,mp4,webm', '!')); +$extensions = explode(',', preg_quote('jpg,jpeg,png,apng,gif,svg,pdf,odt,ods,epub,webp,wav,mp3,ogg,aac,wma,flac,opus,mp4,webm', '!')); $extensions = implode('|', $extensions); $from = parse_url($url); @@ -574,7 +573,7 @@ class VroumVroum_Blog } return $content; } - + public function getXsafCounter() { if($this->mustUpdateXsaf()) { $json = json_decode(file_get_contents('import.json'), true); @@ -604,36 +603,36 @@ if (isset($_GET['feed'])) // FEED { header('Content-Type: application/atom+xml; charset=UTF-8'); echo ' - - '.escape($config->site_title).' - '.escape(html_entity_decode(strip_tags($config->site_description), ENT_COMPAT, 'UTF-8')).' - '.date(DATE_ATOM, filemtime(ARTICLES_DB_FILE)).' - - '.LOCAL_URL.' - - Projet Autoblog'; + +'.escape($config->site_title).' +'.escape(html_entity_decode(strip_tags($config->site_description), ENT_COMPAT, 'UTF-8')).' +'.date(DATE_ATOM, filemtime(ARTICLES_DB_FILE)).' + +'.LOCAL_URL.' + +Projet Autoblog'; foreach($vvb->listLastArticles() as $art) { echo ' - - - '.escape($config->site_title).' - '.escape($config->site_url).' - - <![CDATA['.escape($art['title']).']]> - - '.str_replace('?feed', '?', LOCAL_URL).urlencode(str_replace('./?', '', $vvb->getLocalURL($art))).' - '.date(DATE_ATOM, $art['date']).' + + +'.escape($config->site_title).' +'.escape($config->site_url).' + +<![CDATA['.escape($art['title']).']]> + +'.str_replace('?feed', '?', LOCAL_URL).urlencode(str_replace('./?', '', $vvb->getLocalURL($art))).' +'.date(DATE_ATOM, $art['date']).' - - source)
'.escape_content($art['content']).']]> -
-
'; + +source)
'.escape_content($art['content']).']]> +
+
'; } echo ' -
'; +
'; exit; } @@ -641,7 +640,7 @@ if (isset($_GET['opml'])) // OPML { //header('Content-Type: application/octet-stream'); header('Content-type: text/xml'); - header('Content-Disposition: attachment; filename="'.escape($config->site_title).'.xml"'); +header('Content-Disposition: attachment; filename="'.escape($config->site_title).'.xml"'); $opmlfile = new SimpleXMLElement(''); $opmlfile->addAttribute('version', '1.0'); $opmlhead = $opmlfile->addChild('head'); @@ -663,7 +662,7 @@ if (isset($_GET['media'])) // MEDIA header('Content-Type: application/json'); if(is_dir(MEDIA_DIR)) { - $url = str_replace('?media', 'media/', LOCAL_URL); +$url = str_replace('?media', 'media/', LOCAL_URL); $files = scandir(MEDIA_DIR); unset($files[0]); // . unset($files[1]); // .. @@ -692,214 +691,127 @@ if (!$search && !empty($_SERVER['QUERY_STRING']) && !is_numeric($_SERVER['QUERY_ } } -// common CSS -<<<<<<< HEAD -$css=' * { margin: 0; padding: 0; } - body { font-family:sans-serif; background-color: #efefef; padding: 1%; color: #333; } - img { max-width: 100%; height: auto; } - a { text-decoration: none; color: #000;font-weight:bold; } - .header a { text-decoration: none; color: #000;font-weight:bold; } - .header { text-align:center; padding: 30px 3%; max-width:70em;margin:0 auto; } - .article .title { margin-bottom: 1em; } - .article .title h2 a:hover { color:#403976; } - .article h4 { font-weight: normal; font-size: small; color: #666; } - .article .source a { color: #666; } - .searchForm { float:right; } - .searchForm input { } - .pagination { background-color:white;padding: 12px 10px 12px 10px;border:1px solid #aaa;max-width:70em;margin:1em auto;box-shadow:0px 5px 7px #aaa; } - .pagination b { font-size: 1.2em; color: #333; } - .pagination a { color:#000; margin: 0 0.5em; } - .pagination a:hover { color:#333; } - .footer a { color:#000; } - .footer a:hover { color:#333; } - .content ul, .content ol { margin-left: 2em; } - .content h1, .content h2, .content h3, .content h4, .content h5, .content h6, - .content ul, .content ol, .content p, .content object, .content div, .content blockquote, - .content dl, .content pre { margin-bottom: 0.8em; } - .content pre, .content blockquote { background: #ddd; border: 1px solid #999; padding: 0.2em; max-width: 100%; overflow: auto; } - .content h1 { font-size: 1.5em; } - .content h2 { font-size: 1.4em;color:#000; } - .result h3 a { color: darkblue; text-decoration: none; text-shadow: 1px 1px 1px #fff; } - #error { position: fixed; top: 0; left: 0; right: 0; padding: 1%; background: #fff; border-bottom: 2px solid red; color: darkred; } -||||||| merged common ancestors -$css=' * { margin: 0; padding: 0; } - body { font-family:sans-serif; background-color: #efefef; padding: 1%; color: #333; } - img { max-width: 100%; height: auto; } - a { text-decoration: none; color: #000;font-weight:bold; } - .header a { text-decoration: none; color: #000;font-weight:bold; } - .header { text-align:center; padding: 30px 3%; max-width:70em;margin:0 auto; } - .article .title { margin-bottom: 1em; } - .article .title h2 a:hover { color:#403976; } - .article h4 { font-weight: normal; font-size: small; color: #666; } - .article .source a { color: #666; } - .searchForm { float:right; } - .searchForm input { } - .pagination { background-color:white;padding: 12px 10px 12px 10px;border:1px solid #aaa;max-width:70em;margin:1em auto;box-shadow:0px 5px 7px #aaa; } - .pagination b { font-size: 1.2em; color: #333; } - .pagination a { color:#000; margin: 0 0.5em; } - .pagination a:hover { color:#333; } - .footer a { color:#000; } - .footer a:hover { color:#333; } - .content ul, .content ol { margin-left: 2em; } - .content h1, .content h2, .content h3, .content h4, .content h5, .content h6, - .content ul, .content ol, .content p, .content object, .content div, .content blockquote, - .content dl, .content pre { margin-bottom: 0.8em; } - .content pre, .content blockquote { background: #ddd; border: 1px solid #999; padding: 0.2em; max-width: 100%; overflow: auto; } - .content h1 { font-size: 1.5em; } - .content h2 { font-size: 1.4em;color:#000; } - .result h3 a { color: darkblue; text-decoration: none; text-shadow: 1px 1px 1px #fff; } - #error { position: fixed; top: 0; left: 0; right: 0; padding: 1%; background: #fff; border-bottom: 2px solid red; color: darkred; } -======= +// common CSS $css='* { margin: 0; padding: 0; } - body { font-family:sans-serif; background-color: #efefef; padding: 1%; color: #333; } - img { max-width: 100%; height: auto; } - a { text-decoration: none; color: #000;font-weight:bold; } - body > header a { text-decoration: none; color: #000;font-weight:bold; } - body > header { text-align:center; padding: 30px 3%; max-width:70em;margin:0 auto; } - body > article > header { margin-bottom: 1em; } - body > article > header h2 a:hover { color:#403976; } - body > article h4 { font-weight: normal; font-size: small; color: #666; } - body > article .source a { color: #666; } - body > header > form { float:right; } - body > header > form input { } - body > nav { background-color:white;padding: 12px 10px 12px 10px;border:1px solid #aaa;max-width:70em;margin:1em auto;box-shadow:0px 5px 7px #aaa; } - body > nav strong { font-size: 1.2em; color: #333; } - body > nav a { color:#000; margin: 0 0.5em; } - body > nav a:hover { color:#333; } - body > footer a { color:#000; } - body > footer a:hover { color:#333; } - .content ul, .content ol { margin-left: 2em; } - .content h1, .content h2, .content h3, .content h4, .content h5, .content h6, - .content ul, .content ol, .content p, .content object, .content div, .content blockquote, - .content dl, .content pre { margin-bottom: 0.8em; } - .content pre, .content blockquote { background: #ddd; border: 1px solid #999; padding: 0.2em; max-width: 100%; overflow: auto; } - .content h1 { font-size: 1.5em; } - .content h2 { font-size: 1.4em;color:#000; } - .result h3 a { color: darkblue; text-decoration: none; text-shadow: 1px 1px 1px #fff; } - #error { position: fixed; top: 0; left: 0; right: 0; padding: 1%; background: #fff; border-bottom: 2px solid red; color: darkred; } ->>>>>>> master +body { font-family:sans-serif; background-color: #efefef; padding: 1%; color: #333; } +img { max-width: 100%; height: auto; } +a { text-decoration: none; color: #000;font-weight:bold; } +body > header a { text-decoration: none; color: #000;font-weight:bold; } +body > header { text-align:center; padding: 30px 3%; max-width:70em;margin:0 auto; } +body > article > header { margin-bottom: 1em; } +body > article > header h2 a:hover { color:#403976; } +body > article h4 { font-weight: normal; font-size: small; color: #666; } +body > article .source a { color: #666; } +body > header > form { float:right; } +body > header > form input { } +body > nav { background-color:white;padding: 12px 10px 12px 10px;border:1px solid #aaa;max-width:70em;margin:1em auto;box-shadow:0px 5px 7px #aaa; } +body > nav strong { font-size: 1.2em; color: #333; } +body > nav a { color:#000; margin: 0 0.5em; } +body > nav a:hover { color:#333; } +body > footer a { color:#000; } +body > footer a:hover { color:#333; } +.content ul, .content ol { margin-left: 2em; } +.content h1, .content h2, .content h3, .content h4, .content h5, .content h6, +.content ul, .content ol, .content p, .content object, .content div, .content blockquote, +.content dl, .content pre { margin-bottom: 0.8em; } +.content pre, .content blockquote { background: #ddd; border: 1px solid #999; padding: 0.2em; max-width: 100%; overflow: auto; } +.content h1 { font-size: 1.5em; } +.content h2 { font-size: 1.4em;color:#000; } +.result h3 a { color: darkblue; text-decoration: none; text-shadow: 1px 1px 1px #fff; } +#error { position: fixed; top: 0; left: 0; right: 0; padding: 1%; background: #fff; border-bottom: 2px solid red; color: darkred; } '; switch($site_type) { case 'microblog': case 'twitter': - $css .= "\n".' /* twitter/microblog style */ - body > header h1 a { color: #333;font-size:40pt;text-shadow: #ccc 0px 5px 5px; } - body > article > header h2 { width: 10em;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;font-size: 0.7em;margin: 0; color:#333; text-shadow: 1px 1px 1px #fff; } - body > article > header h2 a { color:#333; text-decoration:none; } - body > article { background-color:white;padding: 12px 10px 33px;border:1px solid #aaa;max-width:70em;margin:0 auto;box-shadow:0px 5px 7px #aaa; } - body > article .source { font-size: 0.8em; color: #666; } - body > footer { margin-top:1em;text-align:center; font-size: small; color:#333; clear: both; } - .content {font-size:0.9em;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;}'; + $css .= "\n".' /* twitter/microblog style */ +body > header h1 a { color: #333;font-size:40pt;text-shadow: #ccc 0px 5px 5px; } +body > article > header h2 { width: 10em;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;font-size: 0.7em;margin: 0; color:#333; text-shadow: 1px 1px 1px #fff; } +body > article > header h2 a { color:#333; text-decoration:none; } +body > article { background-color:white;padding: 12px 10px 33px;border:1px solid #aaa;max-width:70em;margin:0 auto;box-shadow:0px 5px 7px #aaa; } +body > article .source { font-size: 0.8em; color: #666; } +body > footer { margin-top:1em;text-align:center; font-size: small; color:#333; clear: both; } +.content {font-size:0.9em;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;}'; break; case 'shaarli': - $css .= "\n".' /* shaarli style */ - body > header h1 a { color: #333;font-size:40pt;text-shadow: #ccc 0px 5px 5px; } - body > article > header title h2 { margin: 0; color:#333; text-shadow: 1px 1px 1px #fff; } - body > article > header h2 a { color:#000; text-decoration:none; } - body > article { background-color:white;padding: 12px 10px 33px;border:1px solid #aaa;max-width:70em;margin:1em auto;box-shadow:0px 5px 7px #aaa; } - body > article footer.source { margin-top:1em;font-size: 0.8em; color: #666; } - body > footer { text-align:center; font-size: small; color:#333; clear: both; }'; + $css .= "\n".' /* shaarli style */ +body > header h1 a { color: #333;font-size:40pt;text-shadow: #ccc 0px 5px 5px; } +body > article > header title h2 { margin: 0; color:#333; text-shadow: 1px 1px 1px #fff; } +body > article > header h2 a { color:#000; text-decoration:none; } +body > article { background-color:white;padding: 12px 10px 33px;border:1px solid #aaa;max-width:70em;margin:1em auto;box-shadow:0px 5px 7px #aaa; } +body > article footer.source { margin-top:1em;font-size: 0.8em; color: #666; } +body > footer { text-align:center; font-size: small; color:#333; clear: both; }'; break; case 'generic': case 'youtube': default: - $css .= "\n".' /* youtube style */ - body > header h1 a { color: #333;font-size:40pt;text-shadow: #ccc 0px 5px 5px;text-transform:uppercase; } - body > article > header h2 { margin: 0; color:#333; text-shadow: 1px 1px 1px #fff; } - body > article > header h2 a { color:#000; text-decoration:none; } - body > article footer.source { font-size: 0.8em; color: #666; } - body > article { background-color:white;padding: 12px 10px 33px;border:1px solid #aaa;max-width:70em;margin:1em auto;box-shadow:0px 5px 7px #aaa; } - body > footer { text-align:center; font-size: small; color:#333; clear: both; }'; + $css .= "\n".' /* youtube style */ +body > header h1 a { color: #333;font-size:40pt;text-shadow: #ccc 0px 5px 5px;text-transform:uppercase; } +body > article > header h2 { margin: 0; color:#333; text-shadow: 1px 1px 1px #fff; } +body > article > header h2 a { color:#000; text-decoration:none; } +body > article footer.source { font-size: 0.8em; color: #666; } +body > article { background-color:white;padding: 12px 10px 33px;border:1px solid #aaa;max-width:70em;margin:1em auto;box-shadow:0px 5px 7px #aaa; } +body > footer { text-align:center; font-size: small; color:#333; clear: both; }'; } // HTML HEADER echo ' - - - '.escape($config->site_title).' - - - - - -
-

PROJET AUTOBLOG'. (strlen(HEAD_TITLE) > 0 ? ' ~ '. HEAD_TITLE : '') .'

-
-

'.escape($config->site_title).'

'; - -if (!empty($config->site_description)){ - echo '

'.$config->site_description.'
⇐ retour index

'; -} - echo '

'.$config->site_meta_description.'

'; -||||||| merged common ancestors - '.$css.' - - - -
-

PROJET AUTOBLOG'. (strlen(HEAD_TITLE) > 0 ? ' ~ '. HEAD_TITLE : '') .'

-
-

'.escape($config->site_title).'

'; - -if (!empty($config->site_description)) - echo '

'.$config->site_description.'
⇐ retour index

'; - -======= - '.$css.' - '; + + +'.escape($config->site_title).' + + +'; if( $vvb->mustUpdateXsaf()) { - echo ' '; + echo ' '; } echo ' - - -
-

PROJET AUTOBLOG'. (strlen(HEAD_TITLE) > 0 ? ' ~ '. HEAD_TITLE : '') .'

-
-

'.escape($config->site_title).'

'; - + + +
+

PROJET AUTOBLOG'. (strlen(HEAD_TITLE) > 0 ? ' ~ '. HEAD_TITLE : '') .'

+
+

'.escape($config->site_title).'

'; + if (!empty($config->site_description)) echo ' -

'.$config->site_description.'

-

⇐ retour index

'; +

'.$config->site_description.'

+

⇐ retour index

'; ->>>>>>> master echo ' -
- - -
-
+
+ + +
+
'; if( $vvb->mustUpdateXsaf()) { echo ' -
-
-

'.__('Update').'

-
-
- '.__('Import running: '). $vvb->getXsafCounter() . __(' files remaining').'
- '.__('The page should refresh every second. If not, refresh manually.').' -
-
'; +
+
+

'.__('Update').'

+
+
+'.__('Import running: '). $vvb->getXsafCounter() . __(' files remaining').'
+'.__('The page should refresh every second. If not, refresh manually.').' +
+
'; } elseif ($vvb->mustUpdate()) { echo ' -
-
-

'.__('Update').'

-
-
- '.__('Updating database... Please wait.').' -
-
'; +
+
+

'.__('Update').'

+
+
+'.__('Updating database... Please wait.').' +
+
'; } if (!empty($search)) @@ -907,22 +819,22 @@ if (!empty($search)) $results = $vvb->searchArticles($search); $text = sprintf(__('%d results for %s'), count($results), escape($search)); echo ' -
-
-

'.__('Search').'

- '.$text.' -
-
'; +
+
+

'.__('Search').'

+'.$text.' +
+
'; foreach ($results as $art) { echo ' - '; +'; } } elseif (!is_null($article)) @@ -930,13 +842,13 @@ elseif (!is_null($article)) if (!$article) { echo ' -
-
-

'.__('Not Found').'

- '.(!empty($uri) ? '

'.escape($vvb->getLocalURL($uri)) . '

' : '').' - '.__('Article not found.').' -
-
'; +
+
+

'.__('Not Found').'

+'.(!empty($uri) ? '

'.escape($vvb->getLocalURL($uri)) . '

' : '').' +'.__('Article not found.').' +
+
'; } else { @@ -959,29 +871,29 @@ else $max = $vvb->countArticles(); if ($max > $config->articles_per_page) { - echo "\n".' '; } } echo ' - '; +'; if( $vvb->mustUpdateXsaf() ) { try { @@ -999,9 +911,9 @@ if( $vvb->mustUpdateXsaf() ) { catch (VroumVroum_Feed_Exception $e) { echo ' -
- '.escape($e->getMessage()).' -
'; +
+'.escape($e->getMessage()).' +
'; $updated = 0; } } @@ -1022,34 +934,34 @@ elseif ($vvb->mustUpdate()) catch (VroumVroum_Feed_Exception $e) { echo ' -
- '.escape($e->getMessage()).' -
'; +
+'.escape($e->getMessage()).' +
'; $updated = 0; } if ($updated > 0) { echo ' - '; +'; } else { echo ' - '; +'; } } echo ' - + '; @@ -1065,14 +977,14 @@ function display_article($article) { global $vvb, $config; echo ' - '; +'; } -?> +?> \ No newline at end of file