2021-07-10 19:18:17 +01:00
< ? php
/*
* Paste < https :// github . com / jordansamuel / PASTE > - Bulma theme
* Theme by wsehl < github . com / wsehl > ( January , 2021 )
*
* This program is free software ; you can redistribute it and / or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation ; either version 3
* of the License , or ( at your option ) any later version .
*
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License in GPL . txt for more details .
*/
?>
< script src = " https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.min.js " ></ script >
< link rel = " stylesheet " href = " theme/bulma/css/bulma-tagsinput.min.css " />
< script src = " https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.min.js " ></ script >
< script src = " theme/bulma/js/bulma-tagsinput.min.js " ></ script >
< script >
document . addEventListener ( 'DOMContentLoaded' , function () {
BulmaTagsInput . attach ();
});
</ script >
< script >
document . addEventListener ( 'DOMContentLoaded' , function () {
const tagsInput = document . getElementById ( 'tags-with-source' );
new BulmaTagsInput ( tagsInput , {
autocomplete : {
<!-- Json to be completed -->
source : " " ,
}
});
}, false );
</ script >
< main class = " bd-main " >
< div class = " bd-side-background " ></ div >
< div class = " bd-main-container container " >
< div class = " bd-duo " >
< div class = " bd-lead " >
<!-- Guests -->
< ? php if ( isset ( $noguests ) && $noguests == " on " ) { // Site permissions
?>
< section class = " hero is-medium " >
< div class = " " >
< article class = " message is-info " >
< div class = " message-header " >
< p > Site News :</ p >
</ div >
< div class = " message-body " >
< div class = " content is-normal " >
< ul >
< li > Ponepaste has now a favorite system . You can now favorite pastes and bookmark them on your userpage under " Favorites " </ li >
< li > Report function and UI has been overhauled .</ li >
< li > The archive page has now been updated , tags are now clickable for a faster search .</ li >
< li > Tags UI has been overhauled . Tags containing " SAFE " and " NSFW " will appear green and red .</ li >
< li > When Creating paste the tag input box has been updated with a new visual style .</ li >
< li > Tags are now being canonized , if you see your tags change , it ' s just the admin working in the background </ li >
</ ul >
</ div >
</ div >
</ article >
< div class = " container " >
< div class = " columns is-multiline is-mobile " >
< div class = " column " >
< div class = " panel-body " >
< div class = " list-widget pagination-content " >
< ? php
$res = getrandom ( $conn , 10 );
foreach ( $res as $index => $row ) {
$title = Trim ( $row [ 'title' ]);
$titlehov = ( $row [ 'title' ]);
$p_member = Trim ( $row [ 'member' ]);
$p_id = Trim ( $row [ 'id' ]);
$p_date = Trim ( $row [ 'date' ]);
$p_time = Trim ( $row [ 'now_time' ]);
$nowtime = time ();
$oldtime = $p_time ;
$title = truncate ( $title , 24 , 60 );
?>
< p class = " no-margin " >
< ? php
if ( $mod_rewrite == '1' ) {
echo ' < header class = " bd-category-header my-1 " >
< a data - tooltip = " ' . $titlehov . ' " href = " ' . $p_id . ' " title = " ' . $title . ' " > ' . $title . ' </ a >
< a class = " icon is-pulled-right has-tooltip-arrow has-tooltip-left-mobile has-tooltip-bottom-desktop has-tooltip-left-until-widescreen " data - tooltip = " ' . $p_time . ' " >
< i class = " far fa-clock has-text-grey " aria - hidden = " true " ></ i >
</ a >
< p class = " subtitle is-7 " > ' . ' by ' . '
< i >< a href = " https://Ponepaste.org/user/' . $p_member . ' " > ' . $p_member . ' </ a ></ i >
</ p > ' .
'</header>' ;
} else {
echo '<a href="' . $p_id . '" title="' . $titlehov . '">' . ucfirst ( $title ) . '</a>' ;
}}
?>
</ p >
</ div >
</ div >
</ div >
< div class = " column " >
< div class = " panel-body " >
< div class = " list-widget pagination-content " >
< ? php
$res = getrandom ( $conn , 10 );
foreach ( $res as $index => $row ) {
$title = Trim ( $row [ 'title' ]);
$titlehov = ( $row [ 'title' ]);
$p_member = Trim ( $row [ 'member' ]);
$p_id = Trim ( $row [ 'id' ]);
$p_date = Trim ( $row [ 'date' ]);
$p_time = Trim ( $row [ 'now_time' ]);
$nowtime = time ();
$oldtime = $p_time ;
$title = truncate ( $title , 24 , 60 );
?>
< p class = " no-margin " >
< ? php
if ( $mod_rewrite == '1' ) {
echo ' < header class = " bd-category-header my-1 " >
< a data - tooltip = " ' . $titlehov . ' " href = " ' . $p_id . ' " title = " ' . $title . ' " > ' . $title . ' </ a >
< a class = " icon is-pulled-right has-tooltip-arrow has-tooltip-left-mobile has-tooltip-bottom-desktop has-tooltip-left-until-widescreen " data - tooltip = " ' . $p_time . ' " >
< i class = " far fa-clock has-text-grey " aria - hidden = " true " ></ i >
</ a >
< p class = " subtitle is-7 " > ' . ' by ' . '
< i >< a href = " https://Ponepaste.org/user/' . $p_member . ' " > ' . $p_member . ' </ a ></ i >
</ p > ' .
'</header>' ;
} else {
echo '<a href="' . $p_id . '" title="' . $titlehov . '">' . ucfirst ( $title ) . '</a>' ;
}}
?>
</ p >
</ div >
</ div >
</ div >
</ div >
</ div >
</ div >
</ section >
< ? php } else { ?>
<!-- Paste Panel -->
< ? php if ( $_SERVER [ 'REQUEST_METHOD' ] == 'POST' ) {
if ( isset ( $error )) { ?>
<!-- Error Panel -->
< i class = " fa fa-exclamation-circle " aria - hidden = " true " ></ i > < ? php echo $error ; ?>
< ? php }
}
?>
< h1 class = " subtitle is-4 " >
< ? php echo $lang [ 'newpaste' ]; ?>
</ h1 >
< form name = " mainForm " action = " <?php echo $_SERVER['PHP_SELF'] ; ?> " method = " POST " >
< nav class = " level " >
< div class = " level-left " >
<!-- Title -->
< div class = " level-item is-pulled-left " style = " margin-right: 5px; " >
< p class = " control has-icons-left " >
< input type = " text " class = " input " name = " title " onchange = " getFileName() " placeholder = " <?php echo $lang['pastetitle'] ; ?> " value = " <?php echo (isset( $_POST['title'] )) ? $_POST['title'] : ''; ?> " >
< span class = " icon is-small is-left " >
< i class = " fa fa-font " ></ i ></ a >
</ span >
</ p >
</ div >
<!-- Format -->
< div class = " level-item is-pulled-left mx-1 " >
< div class = " select " >
< select data - live - search = " true " name = " format " >
< ? php // Show popular GeSHi formats
foreach ( $geshiformats as $code => $name ) {
if ( in_array ( $code , $popular_formats )) {
if ( isset ( $_POST [ 'format' ])) {
$sel = ( $_POST [ 'format' ] == $code ) ? 'selected="selected"' : '' ; // Pre-populate if we come here on an error
} else {
$sel = ( $code == " markdown " ) ? 'selected="selected"' : '' ;
}
echo '<option ' . $sel . ' value="' . $code . '">' . $name . '</option>' ;
}
}
echo '<option value="text">__________________</option>' ;
// Show all GeSHi formats.
foreach ( $geshiformats as $code => $name ) {
if ( ! in_array ( $code , $popular_formats )) {
if ( isset ( $_POST [ 'format' ])) {
$sel = ( $_POST [ 'format' ] == $code ) ? 'selected="selected"' : '' ; // Pre-populate if we come here on an error
} else {
$sel = ( $code == " text " ) ? 'selected="selected"' : '' ;
}
echo '<option ' . $sel . ' value="' . $code . '">' . $name . '</option>' ;
}
}
?>
</ select >
</ div >
</ div >
< div class = " level-item is-pulled-left mx-1 " >
< a class = " button " onclick = " highlight(document.getElementById('code')); return false; " >< i class = " fas fa-indent " ></ i >& nbspHighlight </ a >
</ div >
< div class = " level-item is-pulled-left mx-1 " >
< input class = " button is-info " type = " submit " name = " submit " id = " submit " value = " Paste " />
</ div >
</ div >
</ nav >
<!-- Text area -->
< textarea class = " textarea " rows = " 15 " id = " code " name = " paste_data " onkeyup = " countChars(this); " onkeydown = " return catchTab(this,event) " placeholder = " Paste Or Drop Text File Here. " >< ? php echo ( isset ( $_POST [ 'paste_data' ])) ? $_POST [ 'paste_data' ] : '' ; ?> </textarea>
< p id = " charNum " >< b > File Size : </ b >< span style = " color: green; " > 1000 / 1000 Kb </ span ></ p >
< br >
<!-- Tag system -->
< div class = 'rows' >
< div class = 'row is-full' >
< div class = " columns " >
< div class = " column " >
< div class = " field " >
< label class = " label " > Tags </ label >
< div class = " control " >
< input id = " tags-with-source " name = " tags " class = " input " data - max - tags = " 10 " data - max - chars = " 40 " type = " text " data - item - text = " name " data - case - sensitive = " false " placeholder = " 10 Tags Maximum " value = " <?php echo ( isset( $_POST['tags'] ) )? $_POST['tags'] :''; // Pre-populate if we come here on an error " ?> ">
</ div >
</ div >
</ div >
</ div >
</ div >
</ div >
< div class = 'row is-full' >
< div class = " columns " >
< div class = " column is-5 " >
< nav class = " level " >
< div class = " level-left " >
< div class = " level-item is-pulled-left mr-1 " >
< div class = " field " >
< div class = " subtitle has-text-weight-semibold " style = " margin-left: 2px; margin-bottom: 0.6rem; font-size: 1rem; " >< ? php echo $lang [ 'expiration' ]; ?> </div>
< div class = " control " >
< div class = " select " >
< ? php
$post_expire = " " ;
if ( $_POST ) {
if ( isset ( $_POST [ 'paste_expire_date' ])) {
$post_expire = $_POST [ 'paste_expire_date' ];
}
}
?>
< select name = " paste_expire_date " >
< option value = " N " < ? php echo ( $post_expire == " N " ) ? 'selected="selected"' : '' ; ?> >Never</option>
< option value = " self " < ? php echo ( $post_expire == " self " ) ? 'selected="selected"' : '' ; ?> >View Once</option>
< option value = " 10M " < ? php echo ( $post_expire == " 10M " ) ? 'selected="selected"' : '' ; ?> >10 Minutes</option>
< option value = " 1H " < ? php echo ( $post_expire == " 1H " ) ? 'selected="selected"' : '' ; ?> >1 Hour</option>
< option value = " 1D " < ? php echo ( $post_expire == " 1D " ) ? 'selected="selected"' : '' ; ?> >1 Day</option>
< option value = " 1W " < ? php echo ( $post_expire == " 1W " ) ? 'selected="selected"' : '' ; ?> >1 Week</option>
< option value = " 2W " < ? php echo ( $post_expire == " 2W " ) ? 'selected="selected"' : '' ; ?> >2 Weeks</option>
< option value = " 1M " < ? php echo ( $post_expire == " 1M " ) ? 'selected="selected"' : '' ; ?> >1 Month</option>
</ select >
</ div >
</ div >
</ div >
</ div >
< div class = " level-item is-pulled-left mx-1 " >
< div class = " field " >
< div class = " subtitle has-text-weight-semibold " style = " margin-left: 2px; margin-bottom: 0.6rem; font-size: 1rem; " >< ? php echo $lang [ 'visibility' ]; ?> </div>
< div class = " control " >
< div class = " select " >
< ? php
$post_visibility = " " ;
if ( $_POST ) {
if ( isset ( $_POST [ 'visibility' ])) {
$post_visibility = $_POST [ 'visibility' ];
}
}
?>
< select name = " visibility " >
< option value = " 0 " < ? php echo ( $post_visibility == " 0 " ) ? 'selected="selected"' : '' ; ?> >Public</option>
< option value = " 1 " < ? php echo ( $post_visibility == " 1 " ) ? 'selected="selected"' : '' ; ?> >Unlisted</option>
< ? php if ( isset ( $_SESSION [ 'token' ])) { ?>
< option value = " 2 " < ? php echo ( $post_visibility == " 2 " ) ? 'selected="selected"' : '' ; ?> >Private</option>
< ? php } else { ?>
< option disabled > Private </ option >
< ? php } ?>
</ select >
</ div >
</ div >
</ div >
</ div >
</ div >
</ nav >
< nav >
< div class = " level-left " >
<!-- Password -->
< div class = " columns " >
< div class = " column " >
< input type = " text " class = " input " name = " pass " id = " pass " placeholder = " <?php echo $lang['pwopt'] ; ?> " value = " <?php echo (isset( $_POST['pass'] )) ? $_POST['pass'] : ''; ?> " >
</ div >
</ div >
</ div >
</ nav >
< br >
< nav >
< div class = " level-left " >
<!-- Encrypted -->
< div class = " field " >
< ? php
$encrypted_checked = " " ;
if ( $_POST ) {
// We came here from an error, carry the checkbox setting forward
if ( isset ( $_POST [ 'encrypted' ])) {
$encrypted_checked = " checked " ;
}
} else {
// Fresh paste. Default to encrypted on
$encrypted_checked = " checked " ;
}
?>
< input class = " is-checkradio is-info has-background-color " id = " encrypt " name = " encrypted " type = " checkbox " < ? php echo $encrypted_checked ; ?> >
< label for = " encrypt " >
< ? php echo $lang [ 'encrypt' ]; ?>
</ label >
</ div >
</ div >
</ nav >
</ div >
< div class = " column is-3 " >
2021-07-10 18:21:03 -04:00
<!-- $text_ads -->
< ? php
// don't display ads for logged in users.
2021-07-12 08:23:14 -04:00
if ( ! empty ( $site_ads ) && ! isset ( $_SESSION [ 'username' ])) {
2021-07-10 18:21:03 -04:00
echo $site_ads [ 'text_ads' ];
}
?>
2021-07-10 19:18:17 +01:00
</ div >
< div class = " column is-4 " >
<!-- ReCaptcha & Captcha -->
< ? php if ( $cap_e == " on " && ! isset ( $_SESSION [ 'username' ])) {
if ( $_SESSION [ 'captcha_mode' ] == " recaptcha " ) {
?>
< div class = " g-recaptcha " style = " float: right; right: 0; " data - sitekey = " <?php echo $_SESSION['captcha'] ; ?> " ></ div >
< br />
< ? php
} else {
?>
<!-- Captcha -->
< div class = " is-one-quarter " >
< div class = " notification " >
< span class = " tags are-large " >< ? php echo '<img src="' . $_SESSION [ 'captcha' ][ 'image_src' ] . '" alt="CAPTCHA" class="imagever">' ; ?> </span>
< input type = " text " class = " input " name = " scode " value = " " placeholder = " <?php echo $lang['entercode'] ; ?> " >
< p class = " is-size-6 has-text-grey-light has-text-left mt-2 " > and press " Enter " </ p >
</ div >
</ div >
< ? php }
} ?>
</ div >
</ div >
</ form >
</ div >
</ div >
< ? php } ?>
</ div >
</ div >
</ div >
</ div >
</ main >
</ div >
< script >
function roundToTwo ( num ) {
return + ( Math . round ( num + " e+2 " ) + " e-2 " );
}
function countChars ( obj ){
// True limit
var maxLength = 1000000 ;
var strLength = obj . value . length ;
var charRemain = ( maxLength - strLength );
var char2kb = charRemain / 1000 ;
var charDisplay = roundToTwo ( char2kb );
// Grace limit
var gracelimit = 11480 ;
var newstrLength = obj . value . length - 1000000 ;
var graceRemain = ( gracelimit - newstrLength );
var grace2kb = graceRemain / 1000 ;
var graceDisplay = roundToTwo ( grace2kb );
if ( graceRemain < 0 ){
document . getElementById ( " charNum " ) . innerHTML = '<b>File Size: </b><span style="color: red;">File Size limit reached</span>' ;
} else if (( charRemain < 0 )) {
document . getElementById ( " charNum " ) . innerHTML = '<b>File Size: </b><span style="color: orange;">' + graceDisplay + '/24Kb Grace Limit</span>' ;
} else {
document . getElementById ( " charNum " ) . innerHTML = '<b>File Size: </b><span style="color: green;">' + charDisplay + '/1000Kb</span>' ;
}
}
</ script >