Add a list of last paste sent
This commit is contained in:
parent
75f83329af
commit
4649253774
@ -16,17 +16,10 @@ foreach ($_GET as $k => $t)
|
|||||||
if (preg_match("#^([a-zA-Z0-9]{".RGXP_NB."})(:([a-zA-Z0-9]{".RGXP_NB."}))?$#", $k, $kout)
|
if (preg_match("#^([a-zA-Z0-9]{".RGXP_NB."})(:([a-zA-Z0-9]{".RGXP_NB."}))?$#", $k, $kout)
|
||||||
&& is_file(Paste::get_path($kout[1])))
|
&& is_file(Paste::get_path($kout[1])))
|
||||||
{
|
{
|
||||||
require_once("../geshi/geshi.php");
|
|
||||||
|
|
||||||
$paste = new Paste($kout[1]);
|
$paste = new Paste($kout[1]);
|
||||||
|
|
||||||
$geshi = new GeSHi($paste->content, $paste->language);
|
|
||||||
|
|
||||||
if (!empty($kout[3]) && is_file(Paste::get_path($kout[3])))
|
if (!empty($kout[3]) && is_file(Paste::get_path($kout[3])))
|
||||||
$diff = new Paste($kout[3]);
|
$diff = new Paste($kout[3]);
|
||||||
|
|
||||||
$geshi->enable_line_numbers(GESHI_FANCY_LINE_NUMBERS, 5);
|
|
||||||
|
|
||||||
?>
|
?>
|
||||||
<div id="corps" style="text-align: center;">
|
<div id="corps" style="text-align: center;">
|
||||||
<h1>
|
<h1>
|
||||||
@ -42,7 +35,7 @@ foreach ($_GET as $k => $t)
|
|||||||
if (isset($diff))
|
if (isset($diff))
|
||||||
echo $paste->get_diff($diff);
|
echo $paste->get_diff($diff);
|
||||||
else
|
else
|
||||||
echo $geshi->parse_code();
|
echo $paste->get_code();
|
||||||
?>
|
?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -120,6 +113,9 @@ else
|
|||||||
<input type="submit" value="Envoyer">
|
<input type="submit" value="Envoyer">
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</form>
|
</form>
|
||||||
|
<?php
|
||||||
|
include("list.php");
|
||||||
|
?>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
57
htdocs/list.php
Normal file
57
htdocs/list.php
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
<h1>Dernières publications</h1>
|
||||||
|
<?php
|
||||||
|
|
||||||
|
require_once("../common.php");
|
||||||
|
|
||||||
|
if ($dh = opendir(DESTINATION))
|
||||||
|
{
|
||||||
|
$list = array();
|
||||||
|
while (($file = readdir($dh)) !== false)
|
||||||
|
$list[] = array(filemtime(DESTINATION.$file), $file);
|
||||||
|
closedir($dh);
|
||||||
|
|
||||||
|
array_multisort($list, SORT_DESC);
|
||||||
|
?>
|
||||||
|
<ul id="list">
|
||||||
|
<?php
|
||||||
|
if (empty($_GET["s"]))
|
||||||
|
$_GET["s"] = 0;
|
||||||
|
$s = intval($_GET["s"]);
|
||||||
|
$i = 0;
|
||||||
|
foreach($list as $f)
|
||||||
|
{
|
||||||
|
if ($s > 0)
|
||||||
|
{
|
||||||
|
$s--;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($i++ > 10)
|
||||||
|
{
|
||||||
|
print '<li><a href="./?s='.(intval($_GET["s"])+10).'#list">Plus anciens ...</a></li>';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (preg_match("#^([a-zA-Z0-9]{".RGXP_NB."}).xml$#", $f[1], $fout))
|
||||||
|
{
|
||||||
|
$paste = new Paste($fout[1]);
|
||||||
|
|
||||||
|
if (empty($paste->title))
|
||||||
|
$title = "Sans titre";
|
||||||
|
else
|
||||||
|
$title = htmlentities($paste->title);
|
||||||
|
|
||||||
|
if (empty($paste->author))
|
||||||
|
$author = "<em>un anonyme</em>";
|
||||||
|
else
|
||||||
|
$author = htmlentities($paste->author);
|
||||||
|
|
||||||
|
print '<li><a href="./?'.$paste->fileref.'">'.$title."</a> par ".$author.", le ".date("d/m/Y H:i:s", $paste->date)."</li>";
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</ul>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
?>
|
@ -31,7 +31,7 @@ header h2
|
|||||||
p,ul
|
p,ul
|
||||||
{
|
{
|
||||||
margin: auto;
|
margin: auto;
|
||||||
width: 400px;
|
text-align: left;
|
||||||
}
|
}
|
||||||
|
|
||||||
label {
|
label {
|
||||||
@ -68,6 +68,7 @@ input.erreur:hover, select.erreur:hover {
|
|||||||
|
|
||||||
h1 {
|
h1 {
|
||||||
color: #75903b;
|
color: #75903b;
|
||||||
|
text-align: center;
|
||||||
}
|
}
|
||||||
h2 {
|
h2 {
|
||||||
color: #7f9a48;
|
color: #7f9a48;
|
||||||
@ -83,7 +84,7 @@ form {
|
|||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
fieldset, div#content {
|
fieldset, div#content, ul#list {
|
||||||
background: #e3e3e3;
|
background: #e3e3e3;
|
||||||
border: none;
|
border: none;
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
@ -93,6 +94,11 @@ fieldset, div#content {
|
|||||||
width: 750px;
|
width: 750px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ul#list
|
||||||
|
{
|
||||||
|
padding: 10px 10px 10px 20px;
|
||||||
|
}
|
||||||
|
|
||||||
div#content {
|
div#content {
|
||||||
padding: 5px;
|
padding: 5px;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
|
@ -52,7 +52,10 @@ class Paste
|
|||||||
else
|
else
|
||||||
$this->ref = NULL;
|
$this->ref = NULL;
|
||||||
$this->ip = $doc->getElementsByTagName("ip")->item(0)->textContent;
|
$this->ip = $doc->getElementsByTagName("ip")->item(0)->textContent;
|
||||||
$this->hash = $doc->getElementsByTagName("hash")->item(0)->textContent;
|
if ($doc->getElementsByTagName("hash")->length > 0)
|
||||||
|
$this->hash = $doc->getElementsByTagName("hash")->item(0)->textContent;
|
||||||
|
else
|
||||||
|
$this->hash = NULL;
|
||||||
|
|
||||||
//Check the lang exists
|
//Check the lang exists
|
||||||
if (empty($this->language) || !is_file(GESHI_DIR.$this->language.".php"))
|
if (empty($this->language) || !is_file(GESHI_DIR.$this->language.".php"))
|
||||||
@ -143,6 +146,9 @@ class Paste
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set attributes from an dictionnary like _POST
|
||||||
|
*/
|
||||||
function create($dict)
|
function create($dict)
|
||||||
{
|
{
|
||||||
$this->title = $dict["title"];
|
$this->title = $dict["title"];
|
||||||
@ -155,6 +161,9 @@ class Paste
|
|||||||
$this->content = $dict["content"];
|
$this->content = $dict["content"];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generate a subtitle
|
||||||
|
*/
|
||||||
function get_subtitle()
|
function get_subtitle()
|
||||||
{
|
{
|
||||||
if (empty($this->author))
|
if (empty($this->author))
|
||||||
@ -166,6 +175,9 @@ class Paste
|
|||||||
$this->date);
|
$this->date);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the ref HTML part of the paste
|
||||||
|
*/
|
||||||
function get_ref($is_diff)
|
function get_ref($is_diff)
|
||||||
{
|
{
|
||||||
if (!empty($this->ref))
|
if (!empty($this->ref))
|
||||||
@ -180,6 +192,22 @@ class Paste
|
|||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the parsed code
|
||||||
|
*/
|
||||||
|
function get_code()
|
||||||
|
{
|
||||||
|
require_once("geshi/geshi.php");
|
||||||
|
|
||||||
|
$geshi = new GeSHi($this->content, $this->language);
|
||||||
|
$geshi->enable_line_numbers(GESHI_FANCY_LINE_NUMBERS, 5);
|
||||||
|
|
||||||
|
return $geshi->parse_code();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the parsed code with diff
|
||||||
|
*/
|
||||||
function get_diff($diff)
|
function get_diff($diff)
|
||||||
{
|
{
|
||||||
require_once("geshi/geshi.php");
|
require_once("geshi/geshi.php");
|
||||||
|
Reference in New Issue
Block a user