2022-09-23 23:29:29 -07:00
< ? php include 'frontend/header.php' ; ?>
< body >
2022-12-16 19:47:11 -08:00
< ? php
2022-09-23 23:29:29 -07:00
// Start YOURLS engine
require_once ( dirname ( __FILE__ ) . '/includes/load-yourls.php' );
// URL of the public interface
$page = YOURLS_SITE . '/index.php' ;
// Make variables visible to function & UI
$shorturl = $message = $title = $status = '' ;
// Part to be executed if FORM has been submitted
if ( isset ( $_REQUEST [ 'url' ] ) && $_REQUEST [ 'url' ] != 'http://' ) {
if ( enableRecaptcha ) {
// Use reCAPTCHA
$token = $_POST [ 'token' ];
$action = $_POST [ 'action' ];
// call curl to POST request
$ch = curl_init ();
curl_setopt ( $ch , CURLOPT_URL , " https://www.google.com/recaptcha/api/siteverify " );
curl_setopt ( $ch , CURLOPT_POST , 1 );
curl_setopt ( $ch , CURLOPT_POSTFIELDS , http_build_query ( array ( 'secret' => recaptchaV3SecretKey , 'response' => $token )));
curl_setopt ( $ch , CURLOPT_RETURNTRANSFER , true );
$response = curl_exec ( $ch );
curl_close ( $ch );
$arrResponse = json_decode ( $response , true );
// verify the response
if ( $arrResponse [ " success " ] == '1' && $arrResponse [ " action " ] == $action && $arrResponse [ " score " ] >= 0.5 ) {
// reCAPTCHA succeeded
shorten ();
} else {
// reCAPTCHA failed
$message = " reCAPTCHA failed " ;
}
} else {
// Don't use reCAPTCHA
shorten ();
}
}
function shorten () {
// Get parameters -- they will all be sanitized in yourls_add_new_link()
$url = $_REQUEST [ 'url' ];
$keyword = isset ( $_REQUEST [ 'keyword' ] ) ? $_REQUEST [ 'keyword' ] : '' ;
$title = isset ( $_REQUEST [ 'title' ] ) ? $_REQUEST [ 'title' ] : '' ;
$text = isset ( $_REQUEST [ 'text' ] ) ? $_REQUEST [ 'text' ] : '' ;
// Create short URL, receive array $return with various information
$return = yourls_add_new_link ( $url , $keyword , $title );
// Make visible to UI
global $shorturl , $message , $status , $title ;
$shorturl = isset ( $return [ 'shorturl' ] ) ? $return [ 'shorturl' ] : '' ;
$message = isset ( $return [ 'message' ] ) ? $return [ 'message' ] : '' ;
$title = isset ( $return [ 'title' ] ) ? $return [ 'title' ] : '' ;
$status = isset ( $return [ 'status' ] ) ? $return [ 'status' ] : '' ;
// Stop here if bookmarklet with a JSON callback function ("instant" bookmarklets)
if ( isset ( $_GET [ 'jsonp' ] ) && $_GET [ 'jsonp' ] == 'yourls' ) {
$short = $return [ 'shorturl' ] ? $return [ 'shorturl' ] : '' ;
$message = " Short URL (Ctrl+C to copy) " ;
header ( 'Content-type: application/json' );
echo yourls_apply_filter ( 'bookmarklet_jsonp' , " yourls_callback( { 'short_url':' $short ','message':' $message '}); " );
die ();
}
}
?>
2022-12-16 19:47:11 -08:00
< div class = " container-fluid h-100 " >
< div class = " row justify-content-center align-items-center h-100 " >
< div class = " col-12 col-lg-10 col-xl-8 col-xxl-5 mt-5 " >
< div class = " card border-0 mt-5 " >
< ? php if ( isset ( $status ) && $status == 'success' ) : ?>
< ? php $url = preg_replace ( " (^https?://) " , " " , $shorturl ); ?>
2022-09-23 23:29:29 -07:00
2022-12-16 19:47:11 -08:00
< div class = " close-container text-end mt-3 me-3 " >
< button type = " button " class = " btn-close " id = " close-shortened-screen " aria - label = " Close " ></ button >
</ div >
2022-09-23 23:29:29 -07:00
2022-12-16 19:47:11 -08:00
< div class = " card-body px-5 pb-5 " >
< h2 class = " text-uppercase text-center " > Your shortened link </ h2 >
2022-09-23 23:29:29 -07:00
2022-12-16 19:47:11 -08:00
< div class = " row justify-content-center " >
< div class = " col-10 " >
< div class = " input-group input-group-block mt-4 mb-3 " >
< input type = " text " class = " form-control text-uppercase " value = " <?php echo $shorturl ; ?> " required >
< button class = " btn btn-primary text-uppercase py-2 px-5 mt-2 mt-md-0 " type = " submit " id = " copy-button " data - shorturl = " <?php echo $shorturl ; ?> " > Copy </ button >
</ div >
< span class = " info " > QR Code & amp ; See Link Preview < a href = " <?php echo $shorturl ; ?>~ " >< ? php echo $url ; ?> ~</a></span>
</ div >
</ div >
</ div >
< ? php else : ?>
< div class = " text-center " >
</ div >
< div class = " card-body px-md-5 " >
< img class = " center " src = " data:image/svg+xml;base64,PHN2ZyBkYXRhLXYtNDIzYmY5YWU9IiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNDE2IDkwIiBjbGFzcz0iaWNvbkxlZnQiPjwhLS0tLT48IS0tLS0+PCEtLS0tPjxnIGRhdGEtdi00MjNiZjlhZT0iIiBpZD0iYmE2MWJhOTctYjc5NS00N2RmLWEwMTUtM2NhNDU3ODE5ZTEyIiBmaWxsPSJ3aGl0ZSIgdHJhbnNmb3JtPSJtYXRyaXgoNC42MzMyMDQ3MDE0NDUwNzEsMCwwLDQuNjMzMjA0NzAxNDQ1MDcxLDE0NC40OTE4NzA2NTkyNDgxNSwtMS44NjQ4NjcyNjgyMzI2MjkzKSI+PHBhdGggZD0iTTQuMjQgMTMuOTJMNC4yNCAxMy45Mkw0LjI0IDEzLjkyUTMuNTMgMTMuOTIgMi44NSAxMy41N0wyLjg1IDEzLjU3TDIuODUgMTMuNTdRMi4xNyAxMy4yMyAxLjY5IDEyLjY3TDEuNjkgMTIuNjdMMi4zOCAxMi4wN0wyLjM4IDEyLjA3UTMuMjMgMTMuMDUgNC4zMyAxMy4wNUw0LjMzIDEzLjA1TDQuMzMgMTMuMDVRNC45NyAxMy4wNSA1LjM5IDEyLjc4TDUuMzkgMTIuNzhMNS4zOSAxMi43OFE1LjgxIDEyLjUwIDUuODEgMTIuMDFMNS44MSAxMi4wMUw1LjgxIDEyLjAxUTUuODEgMTEuNzAgNS42NiAxMS40Nkw1LjY2IDExLjQ2TDUuNjYgMTEuNDZRNS41MiAxMS4yMSA1LjIwIDExLjAxTDUuMjAgMTEuMDFMNS4yMCAxMS4wMVE0Ljg5IDEwLjgxIDQuNjQgMTAuNzBMNC42NCAxMC43MEw0LjY0IDEwLjcwUTQuNDAgMTAuNTggMy45NSAxMC40MkwzLjk1IDEwLjQyTDMuOTUgMTAuNDJRMy40MiAxMC4yMSAzLjA5IDEwLjA0TDMuMDkgMTAuMDRMMy4wOSAxMC4wNFEyLjc2IDkuODcgMi40MSA5LjYyTDIuNDEgOS42MkwyLjQxIDkuNjJRMi4wNiA5LjM3IDEuODkgOS4wMkwxLjg5IDkuMDJMMS44OSA5LjAyUTEuNzIgOC42OCAxLjcyIDguMjVMMS43MiA4LjI1TDEuNzIgOC4yNVExLjcyIDcuNDMgMi4zOSA2LjkzTDIuMzkgNi45M0wyLjM5IDYuOTNRMy4wNyA2LjQzIDQuMTIgNi40M0w0LjEyIDYuNDNMNC4xMiA2LjQzUTUuNTkgNi40MyA2LjUyIDcuNTJMNi41MiA3LjUyTDUuODggOC4wNkw1Ljg4IDguMDZRNS4wOCA3LjI5IDQuMDkgNy4yOUw0LjA5IDcuMjlMNC4wOSA3LjI5UTMuNDMgNy4yOSAzLjA0IDcuNTVMMy4wNCA3LjU1TDMuMDQgNy41NVEyLjY1IDcuODAgMi42NSA4LjIzTDIuNjUgOC4yM0wyLjY1IDguMjNRMi42NSA4LjQ0IDIuNzUgOC42MkwyLjc1IDguNjJMMi43NSA4LjYyUTIuODYgOC44MSAyLjk4IDguOTNMMi45OCA4LjkzTDIuOTggOC45M1EzLjExIDkuMDQgMy4zOSA5LjE5TDMuMzkgOS4xOUwzLjM5IDkuMTlRMy42NyA5LjM0IDMuODQgOS40MEwzLjg0IDkuNDBMMy44NCA5LjQwUTQuMDAgOS40NiA0LjM3IDkuNjBMNC4zNyA5LjYwTDQuMzcgOS42MFE0LjkzIDkuODEgNS4yMyA5Ljk2TDUuMjMgOS45Nkw1LjIzIDkuOTZRNS41MyAxMC4xMSA1Ljk0IDEwLjM5TDUuOTQgMTAuMzlMNS45NCAxMC4zOVE2LjM2IDEwLjY3IDYuNTQgMTEuMDVMNi41NCAxMS4wNUw2LjU0IDExLjA1UTYuNzMgMTEuNDQgNi43MyAxMS45Nkw2LjczIDExLjk2TDYuNzMgMTEuOTZRNi43MyAxMi44NSA2LjA2IDEzLjM4TDYuMDYgMTMuMzhMNi4wNiAxMy4zOFE1LjM5IDEzLjkyIDQuMjQgMTMuOTJaTTE1LjM0IDEyLjkyTDE1LjM0IDEyLjkyTDE1LjM0IDEyLjkyUTE0LjQzIDEzLjkyIDEyLjk0IDEzLjkyTDEyLjk0IDEzLjkyTDEyLjk0IDEzLjkyUTExLjQ0IDEzLjkyIDEwLjU0IDEyLjkzTDEwLjU0IDEyLjkzTDEwLjU0IDEyLjkzUTkuNjMgMTEuOTQgOS42MyAxMC4xOEw5LjYzIDEwLjE4TDkuNjMgMTAuMThROS42MyA4LjQzIDEwLjU0IDcuNDNMMTAuNTQgNy40M0wxMC41NCA3LjQzUTExLjQ0IDYuNDMgMTIuOTQgNi40M0wxMi45NCA2LjQzTDEyLjk0IDYuNDNRMTQuNDMgNi40MyAxNS4zNCA3LjQxTDE1LjM0IDcuNDFMMTUuMzQgNy40MVExNi4yNCA4LjQwIDE2LjI0IDEwLjE2TDE2LjI0IDEwLjE2TDE2LjI0IDEwLjE2UTE2LjI0IDExLjkxIDE1LjM0IDEyLjkyWk0xMi45NCAxMy4wM0wxMi45NCAxMy4wM0wxMi45NCAxMy4wM1ExNC4wMSAxMy4wMyAxNC42MiAxMi4yN0wxNC42MiAxMi4yN0wxNC42MiAxMi4yN1ExNS4yMiAxMS41MSAxNS4yMiAxMC4xNkwxNS4yMiAxMC4xNkwxNS4yMiAxMC4xNlExNS4yMiA4LjgxIDE0LjYzIDguMDZMMTQuNjMgOC4wNkwxNC42MyA4LjA2UTE0LjA0IDcuMzEgMTIuOTQgNy4zMUwxMi45NCA3LjMxTDEyLjk0IDcuMzFRMTEuODIgNy4zMSAxMS4yNCA4LjA0TDExLjI0IDguMDRMMTEuMjQgOC4wNFExMC42NSA4Ljc4IDEwLjY1IDEwLjE4TDEwLjY1IDEwLjE4TDEwLjY1IDEwLjE4UTEwLjY1IDExLjU0IDExLjI0IDEyLjI5TDExLjI0IDEyLjI5TDExLjI0IDEyLjI5UTExLjgzIDEzLjAzIDEyLjk0IDEzLjAzWk0xOS43NyAxNi4xMEwxOC43OSAxNi41OUwxOC43OSA2LjU5TDE5Ljc3IDYuNTlMMTkuNzcgNy4yNEwxOS43NyA3LjI0UTIwLjE5IDYuODUgMjAuNjQgNi42NEwyMC42NCA2LjY0TDIwLjY0IDYuNjRRMjEuMDggNi40MyAyMS43NyA2LjQzTDIxLjc3IDYuNDNMMjEuNzcgNi40M1EyMy4yMSA2LjQzIDI0LjA1IDcuNDRMMjQuMDUgNy40NEwyNC4wNSA3LjQ0UTI0Ljg4IDguNDYgMjQuODggMTAuMTZMMjQuODggMTAuMTZMMjQuODggMTAuMTZRMjQuODggMTEuOTMgMjQuMDMgMTIuOTJMMjQuMDMgMTIuOTJMMjQuMDMgMTIuOTJRMjMuMTggMTMuOTIgMjEuODMgMTMuOTJMMjEuODMgMTMuOTJMMjEuODMgMTMuOTJRMjAuNTQgMTMuOTIgMTkuNzcgMTMuMDJMMTkuNzcgMTMuMDJMMTkuNzcgMTYuMTBaTTIxLjcxIDEzLjAzTDIxLjcxIDEzLjAzTDIxLjcxIDEzLjAzUTIyLjc0IDEzLjAzIDIzLjMwIDEyLjI5TDIzLjMwIDEyLjI5TDIzLjMwIDEyLjI5UTIzLjg2IDExLjU1IDIzLjg2IDEwLjE2TDIzLjg2IDEwLjE2TDIzLjg2IDEwLjE2UTIzLjg2IDguODUgMjMuMjggOC4wOEwyMy4yOCA4LjA4TDIzLjI4IDguMDhRMjIuNjkgNy4zMSAyMS42NiA3LjMxTDIxLjY2IDcuMzFMMjEuNjYgNy4zMVEyMC4zOCA3LjMxIDE5Ljc3IDguNDFMMTkuNzcgOC40MUwxOS43NyAx
< ? php if ( isset ( $_REQUEST [ 'url' ] ) && $_REQUEST [ 'url' ] != 'http://' ) : ?>
< ? php if ( strpos ( $message , 'added' ) === false ) : ?>
< div class = " alert alert-danger alert-dismissible fade show " role = " alert " >
< span > Oh no , < ? php echo $message ; ?> !</span>
< button type = " button " class = " btn-close " data - bs - dismiss = " alert " aria - label = " Close " ></ button >
</ div >
< ? php endif ; ?>
< ? php endif ; ?>
2022-09-23 23:29:29 -07:00
2022-12-16 19:47:11 -08:00
< form id = " shortenlink " method = " post " action = " " >
< div class = " input-group input-group-block mt-4 mb-3 " >
< input type = " url " name = " url " id = " url " class = " form-control text-uppercase " placeholder = " PASTE URL, SHORTEN & SHARE " aria - label = " PASTE URL, SHORTEN & SHARE " aria - describedby = " shorten-button " required >
< input class = " btn btn-primary text-uppercase py-2 px-4 mt-2 mt-md-0 " type = " submit " id = " shorten-button " value = " Shorten " />
</ div >
< ? php if ( enableCustomURL ) : ?>
< a class = " btn btn-sm btn-white text-white-50 text-uppercase " data - bs - toggle = " collapse " href = " #customise-link " role = " button " aria - expanded = " false " aria - controls = " customise-link " >
< img src = " data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSIjZmZmIj48cGF0aCBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGw9Im5vbmUiIGQ9Ik0wIDBoMjR2MjRIMHoiLz48cGF0aCBkPSJNMjIuNyAxOWwtOS4xLTkuMWMuOS0yLjMuNC01LTEuNS02LjktMi0yLTUtMi40LTcuNC0xLjNMOSA2IDYgOSAxLjYgNC43Qy40IDcuMS45IDEwLjEgMi45IDEyLjFjMS45IDEuOSA0LjYgMi40IDYuOSAxLjVsOS4xIDkuMWMuNC40IDEgLjQgMS40IDBsMi4zLTIuM2MuNS0uNC41LTEuMS4xLTEuNHoiLz48L3N2Zz4= " alt = " Options " > Customise Link
</ a >
< div class = " collapse " id = " customise-link " >
< div class = " mt-2 card card-body " >
< div class = " d-flex align-items-center " >
< span class = " me-2 " >< ? php echo preg_replace ( " (^https?://) " , " " , YOURLS_SITE ); ?> /</span>
< input type = " text " name = " keyword " class = " form-control form-control-sm text-uppercase " placeholder = " CUSTOM URL " aria - label = " CUSTOM URL " >
</ div >
</ div >
</ div >
< ? php endif ; ?>
</ form >
</ div >
< ? php endif ; ?>
</ div >
< div class = " d-flex flex-column flex-md-row align-items-center my-3 " >
< span class = " text-white fw-light " >< i class = " fa fa-cc-cc " aria - hidden = " true " ></ i >< ? php echo date ( " Y " ); ?> <?php echo shortTitle ?></span>
< div class = " ms-3 " >
< ? php foreach ( $footerLinks as $key => $val ) : ?>
< a class = " bold-link me-3 text-white text-decoration-none " href = " <?php echo $val ?> " >< span >< ? php echo $key ?> </span></a>
< ? php endforeach ?>
</ div >
</ div >
</ div >
</ div >
</ div >
< ? php include 'frontend/footer.php' ; ?>
2022-09-23 23:29:29 -07:00
</ body >
2022-12-16 19:47:11 -08:00
</ html >