déplacement code dans functions.php

This commit is contained in:
nicosomb 2013-04-15 09:04:23 +02:00
parent 421b65ebaf
commit 3c8d80aec5
2 changed files with 35 additions and 23 deletions

View file

@ -109,4 +109,35 @@ function get_external_file($url, $timeout)
else { else {
return FALSE; return FALSE;
} }
}
function prepare_url($url)
{
$parametres = array();
$url = html_entity_decode(trim($url));
// We remove the annoying parameters added by FeedBurner and GoogleFeedProxy (?utm_source=...)
// from shaarli, by sebsauvage
$i=strpos($url,'&utm_source='); if ($i!==false) $url=substr($url,0,$i);
$i=strpos($url,'?utm_source='); if ($i!==false) $url=substr($url,0,$i);
$i=strpos($url,'#xtor=RSS-'); if ($i!==false) $url=substr($url,0,$i);
$title = $url;
if (!preg_match('!^https?://!i', $url))
$url = 'http://' . $url;
$html = Encoding::toUTF8(get_external_file($url,15));
if (isset($html) and strlen($html) > 0)
{
$r = new Readability($html, $url);
if($r->init())
{
$title = $r->articleTitle->innerHTML;
}
}
$parametres['title'] = $title;
$parametres['content'] = $r->articleContent->innerHTML;
return $parametres;
} }

View file

@ -14,41 +14,22 @@ $db = new db(DB_PATH);
$action = (isset ($_GET['action'])) ? htmlspecialchars($_GET['action']) : ''; $action = (isset ($_GET['action'])) ? htmlspecialchars($_GET['action']) : '';
$view = (isset ($_GET['view'])) ? htmlspecialchars($_GET['view']) : ''; $view = (isset ($_GET['view'])) ? htmlspecialchars($_GET['view']) : '';
$id = (isset ($_GET['id'])) ? htmlspecialchars($_GET['id']) : ''; $id = (isset ($_GET['id'])) ? htmlspecialchars($_GET['id']) : '';
$url = (isset ($_GET['url'])) ? $_GET['url'] : '';
switch ($action) switch ($action)
{ {
case 'add': case 'add':
$url = (isset ($_GET['url'])) ? $_GET['url'] : '';
if ($url == '') if ($url == '')
continue; continue;
$url = html_entity_decode(trim($url)); $parametres_url = prepare_url($url);
// We remove the annoying parameters added by FeedBurner and GoogleFeedProxy (?utm_source=...)
// from shaarli, by sebsauvage
$i=strpos($url,'&utm_source='); if ($i!==false) $url=substr($url,0,$i);
$i=strpos($url,'?utm_source='); if ($i!==false) $url=substr($url,0,$i);
$i=strpos($url,'#xtor=RSS-'); if ($i!==false) $url=substr($url,0,$i);
$title = $url;
if (!preg_match('!^https?://!i', $url))
$url = 'http://' . $url;
$html = Encoding::toUTF8(get_external_file($url,15));
if (isset($html) and strlen($html) > 0)
{
$r = new Readability($html, $url);
if($r->init())
{
$title = $r->articleTitle->innerHTML;
}
}
try try
{ {
# insert query # insert query
$query = $db->getHandle()->prepare('INSERT INTO entries ( url, title, content ) VALUES (?, ?, ?)'); $query = $db->getHandle()->prepare('INSERT INTO entries ( url, title, content ) VALUES (?, ?, ?)');
$query->execute(array($url, $title, $r->articleContent->innerHTML)); $query->execute(array($url, $parametres_url['title'], $parametres_url['content']));
} }
catch (Exception $e) catch (Exception $e)
{ {