| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195 |
- <?php
- // vérifie qu'on est connecté
- function is_logged () {
- return Session::param ('mail') != false;
- }
- // vérifie que le système d'authentification est configuré
- function login_is_conf ($conf) {
- return $conf->mailLogin () != false;
- }
- // tiré de Shaarli de Seb Sauvage
- function small_hash ($txt) {
- $t = rtrim (base64_encode (hash ('crc32', $txt, true)), '=');
- $t = str_replace ('+', '-', $t); // Get rid of characters which need encoding in URLs.
- $t = str_replace ('/', '_', $t);
- $t = str_replace ('=', '@', $t);
- return $t;
- }
- function timestamptodate ($t, $hour = true) {
- $jour = date ('d', $t);
- $mois = date ('m', $t);
- $annee = date ('Y', $t);
-
- switch ($mois) {
- case 1:
- $mois = 'janvier';
- break;
- case 2:
- $mois = 'février';
- break;
- case 3:
- $mois = 'mars';
- break;
- case 4:
- $mois = 'avril';
- break;
- case 5:
- $mois = 'mai';
- break;
- case 6:
- $mois = 'juin';
- break;
- case 7:
- $mois = 'juillet';
- break;
- case 8:
- $mois = 'août';
- break;
- case 9:
- $mois = 'septembre';
- break;
- case 10:
- $mois = 'octobre';
- break;
- case 11:
- $mois = 'novembre';
- break;
- case 12:
- $mois = 'décembre';
- break;
- }
-
- $date = $jour . ' ' . $mois . ' ' . $annee;
- if ($hour) {
- return $date . date (' \à H\:i', $t);
- } else {
- return $date;
- }
- }
- function sortEntriesByDate ($entry1, $entry2) {
- return $entry2->date (true) - $entry1->date (true);
- }
- function sortReverseEntriesByDate ($entry1, $entry2) {
- return $entry1->date (true) - $entry2->date (true);
- }
- function get_domain ($url) {
- return parse_url($url, PHP_URL_HOST);
- }
- function opml_export ($cats) {
- $txt = '';
-
- foreach ($cats as $cat) {
- $txt .= '<outline text="' . $cat['name'] . '">' . "\n";
-
- foreach ($cat['feeds'] as $feed) {
- $txt .= "\t" . '<outline text="' . cleanText ($feed->name ()) . '" type="rss" xmlUrl="' . htmlentities ($feed->url ()) . '" htmlUrl="' . htmlentities ($feed->website ()) . '" />' . "\n";
- }
-
- $txt .= '</outline>' . "\n";
- }
-
- return $txt;
- }
- function cleanText ($text) {
- return preg_replace ('/&[\w]+;/', '', $text);
- }
- function opml_import ($xml) {
- $opml = @simplexml_load_string ($xml);
- if (!$opml) {
- return array (array (), array ());
- }
- $categories = array ();
- $feeds = array ();
- foreach ($opml->body->outline as $outline) {
- if (!isset ($outline['xmlUrl'])) {
- // Catégorie
- $title = '';
-
- if (isset ($outline['text'])) {
- $title = (string) $outline['text'];
- } elseif (isset ($outline['title'])) {
- $title = (string) $outline['title'];
- }
-
- if ($title) {
- $catDAO = new CategoryDAO ();
- $cat = $catDAO->searchByName ($title);
- if ($cat === false) {
- $cat = new Category ($title);
- }
- $categories[] = $cat;
-
- $feeds = array_merge ($feeds, getFeedsOutline ($outline, $cat->id ()));
- }
- } else {
- // Flux rss
- $feeds[] = getFeed ($outline, '');
- }
- }
- return array ($categories, $feeds);
- }
- /**
- * import all feeds of a given outline tag
- */
- function getFeedsOutline ($outline, $cat_id) {
- $feeds = array ();
-
- foreach ($outline->children () as $child) {
- if (isset ($child['xmlUrl'])) {
- $feeds[] = getFeed ($child, $cat_id);
- } else {
- $feeds = array_merge(
- $feeds,
- getFeedsOutline ($child, $cat_id)
- );
- }
- }
-
- return $feeds;
- }
- function getFeed ($outline, $cat_id) {
- $url = (string) $outline['xmlUrl'];
- $feed = new Feed ($url);
- $feed->_category ($cat_id);
- return $feed;
- }
- /* permet de récupérer le contenu d'un article pour un flux qui n'est pas complet */
- function get_content_by_parsing ($url, $path) {
- $html = file_get_contents ($url);
-
- if ($html) {
- $doc = phpQuery::newDocument ($html);
- $content = $doc->find ($path);
- $content->find ('*')->removeAttr ('style')
- ->removeAttr ('id')
- ->removeAttr ('class')
- ->removeAttr ('onload')
- ->removeAttr ('target');
- $content->removeAttr ('style')
- ->removeAttr ('id')
- ->removeAttr ('class')
- ->removeAttr ('onload')
- ->removeAttr ('target');
- return $content->__toString ();
- } else {
- throw new Exception ();
- }
- }
|