Outils pour utilisateurs

Outils du site


php:autoblog2

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
php:autoblog2 [2012-12-13 22:26] mitsuphp:autoblog2 [2013-01-23 21:04] (Version actuelle) mitsu
Ligne 2: Ligne 2:
  
  
-Autoblog listing 2012-12-13 +Autoblog listing (développement en cours avec [[https://www.ecirtam.net|Oros]])
  
-<file php index.php> +Licence: Domaine Public
-<?php+
  
-function get_title_from_feed($url) +Le code est désormais sur Github: https://github.com/mitsukarenai/ferme-autoblog/
-+
- // get site title from feed +
- $data = file_get_contents("$url"); +
- if($data === false) { die('url error'); +
- $dom = new DOMDocument; +
- $dom->loadXML($data) or die('not xml'); +
- $title = $dom->getElementsByTagName('title'); +
- return $title->item(0)->nodeValue; +
-+
- +
-function get_link_from_feed($url) +
-+
- // get site link from feed +
- $data = file_get_contents("$url"); +
- $check = substr($data, 0, 5); +
- if($check !== '<?xml') { die('not a feed');+
- $xml = new SimpleXmlElement($data); +
- $channel['link'] = $xml->channel->link; +
- if($channel['link'] === NULL) +
-+
- $dom = new DOMDocument; +
- $dom->loadXML($data) or die('not xml'); +
- $link = $dom->getElementsByTagName('uri'); +
- return $link->item(0)->nodeValue; +
-+
- else +
-+
- return $channel['link']; +
-+
-+
- +
-if (isset($_GET['export'])) +
-// autoblog exporting +
-+
-header('Content-Type: application/json'); +
-$directory = "./"; +
-$subdirs = glob($directory . "*"); +
-foreach($subdirs as $unit) +
-+
-  if(is_dir($unit)) +
- +
- $unit=substr($unit, 2); +
- $ini = parse_ini_file($unit.'/vvb.ini'); +
- $config = new stdClass; +
- foreach ($ini as $key=>$value) +
-       +
- $key = strtolower($key); +
- $config->$key = $value; +
-+
- unset($ini); +
- $title=$config->site_title; +
- $url=$config->site_url; +
- $feed=$config->feed_url; +
- $reponse[$unit] = array("$title", "$url", "$feed"); +
- +
-+
-echo json_encode($reponse); +
-die; +
-+
- +
-define('ROOT_DIR', __DIR__); +
-function escape($str) +
-+
-    return htmlspecialchars($str, ENT_COMPAT, 'UTF-8', false); +
-+
- +
- +
-if( !empty($_POST) ) { +
-    $error = array(); +
-    if( !empty($_POST['rssurl']) && !empty($_POST['number']) ) { +
-        $rssurl = escape($_POST['rssurl']); +
-        if( $_POST['number'] !== '17' ) { +
-            $error[] = "Le chiffre. Écrivez le chiffre."; +
-        }  +
-    } +
-    else { +
-        $error[] = "Assurez vous de bien remplir tous les champs."; +
-    } +
- +
-    if( empty($error) ) { +
- $siteurl = get_link_from_feed($rssurl); +
- $foldername = sha1($siteurl); +
- $sitename = get_title_from_feed($rssurl); +
- $sitedomain1 = preg_split('/\//', $siteurl, 0);$sitedomain2=$sitedomain1[2];$sitedomain3=explode(".", $sitedomain2);$sitedomain3=array_reverse($sitedomain3); +
- $sitedomain = $sitedomain3[1].'.'.$sitedomain3[0]; +
-        if( !preg_match('#\.\.|/#', $foldername) ) { +
-            if(file_exists($foldername)) { die('Erreur: l\'autoblog <a href="./'.$foldername.'/">existe déjà</a>.');+
- if ( mkdir('./'. $foldername, 0755, false) ) { +
-                $fp = fopen('./'. $foldername .'/index.php', 'w+'); +
-                if( !fwrite($fp, "<?php require_once dirname(__DIR__) . '/autoblog.php'; ?>") ) +
-                    $error[] = "Impossible d'écrire le fichier index.php"; +
-                fclose($fp); +
-                $fp = fopen('./'. $foldername .'/vvb.ini', 'w+'); +
-                if( !fwrite($fp, '[VroumVroumBlogConfig] +
-SITE_TITLE="'. $sitename .'" +
-SITE_DESCRIPTION="Ce site n\'est pas le site officiel de '. $sitename .'<br>C\'est un blog automatis&eacute; qui r&eacute;plique les articles de <a href="'. $siteurl .'">'. $sitename .'</a>" +
-SITE_URL="'. $siteurl .'" +
-FEED_URL="'. $rssurl .'" +
-DOWNLOAD_MEDIA_FROM='.$sitedomain) ) +
-                    $error[] = "Impossible d'écrire le fichier vvb.ini"; +
-                fclose($fp); +
-            } +
-            else  +
-                $error[] = "Impossible de créer le répertoire."; +
-        } +
-        else  +
-            $error[] = "Nom de site invalide."; +
-    } +
-+
-?> +
-<!DOCTYPE html> +
-<html lang="en" dir="ltr"> +
- <head> +
- <meta charset="utf-8"> +
-    <title>Le Projet Autoblog</title> +
- <style type="text/css"> +
- body {background-color:#efefef;text-align:center;color:#333;+
- a {color:black;text-decoration:none;font-weight:bold;+
- a:hover {color:darkred;+
- h1 { text-align:center;font-size:40pt;text-shadow: #ccc 0px 5px 5px; } +
- h2 { text-align:center;font-size: 16pt;margin:0 0 1em 0;font-style:italic;text-shadow: #ccc 0px 5px 5px; } +
- .pbloc {background-color:white;padding: 12px 10px 12px 10px;border:1px solid #aaa;max-width:70em;margin:1em auto;word-wrap:break-word;hyphens:auto;-webkit-hyphens:auto;-moz-hyphens:auto;text-align:justify;box-shadow:0px 5px 7px #aaa;} +
- input {width:15em;+
- .vignette { width:20em;float:left;margin:0; padding:20px;background-color:#eee;border: 1px solid #888;} +
- .vignette .title { font-size: 16pt;font-style:italic;text-shadow: #ccc 0px 5px 5px;} +
- .vignette .title a:hover { color:darkred; text-decoration:none;+
- .vignette .source { font-style:italic;font-size:x-small;+
- .vignette .source a:hover { color:darkred; text-decoration:none;+
- .clear {clear:both;text-align:right;font-size:small;+
- #logo {float: right;} +
- </style> +
-</head> +
- <body> +
- <h1>Le Projet Autoblog</h1> +
- <div class="pbloc"> +
- <img id="logo" src="./logo.svg" alt=""> +
- <b>Note</b><br> +
- Voici une liste d'autoblogs hébergés sur <i><?php echo $_SERVER['SERVER_NAME']; ?></i> (<a href="http://sebsauvage.net/streisand.me/">plus d'infos sur le projet</a>).<br><br> +
- <b>Autres fermes</b><br> +
- &rarr; <a href="https://duckduckgo.com/?q=!g %22Voici une liste d'autoblogs hébergés%22">Rechercher</a><br><br> +
- <b>Ajouter votre site</b><br> +
-<?php +
-if( !empty( $error )) { +
-    echo '<p>Erreur(s) :</p><ul>'; +
-    foreach ( $error AS $value ) { +
-        echo '<li>'. $value .'</li>'; +
-    } +
-    echo '</ul>'; +
-+
-?> +
-Si vous souhaitez que <i><?php echo $_SERVER['SERVER_NAME']; ?></i> héberge un autoblog de votre site, remplissez le formulaire suivant:<br><br> +
-        <form method="POST"> +
-            <input placeholder="Adresse du flux RSS/ATOM" type="text" name="rssurl" id="rssurl"><br> +
-            <input placeholder="Antibot: 'dix sept' en chiffre" type="text" name="number" id="number"><br> +
-            <input type="submit" value="Créer"> +
-        </form> +
-</div> +
-<div class="pbloc"> +
-<h2>Autoblogs hébergés</h2> +
-<div class="clear"><a href="?export">export<sup> JSON</sup></a></div> +
-<?php +
-$directory = "./"; +
-$subdirs = glob($directory . "*"); +
-foreach($subdirs as $unit) +
-+
- if(is_dir($unit)) +
- { +
- $ini = parse_ini_file(ROOT_DIR . '/' . $unit . '/vvb.ini'); +
- $config = new stdClass; +
- $unit=substr($unit, 2); +
- foreach ($ini as $key=>$value) +
-        { +
-            $key = strtolower($key); +
-            $config->$key = $value; +
-        } +
-        unset($ini); +
- echo ' +
- <div class="vignette"> +
- <div class="title"><a href="'.$unit.'/">'.escape($config->site_title).'</a></div> +
- <div class="source">source: <a href="'.escape($config->site_url).'">'.escape($config->site_url).'</a></div> +
- </div>'; +
- } +
-+
-?> +
-<div class="clear"></div> +
-</div> +
-Autoblogs propulsés par <a href="http://autoblog.kd2.org/source.txt">VroumVroumBlog 0.2.10</a> [SQLite] (Domaine Public)<br><a href="http://wiki.suumitsu.eu/doku.php?id=php:autoblog2">index 2</a> inspiré de <a href="http://wiki.hoa.ro/doku.php?id=web%3Aferme-autoblog">Ferme d'Autoblog</a> (Arthur Hoaro, Creative Commons by 3.0) +
-</body> +
-</html> +
-</file>+
php/autoblog2.1355437593.txt.gz · Dernière modification : (modification externe)