[ Index ] |
PHP Cross Reference of YOURLS |
[Summary view] [Print] [Text view]
1 <?php 2 /* 3 Plugin Name: Random ShortURLs 4 Plugin URI: https://yourls.org/ 5 Description: Assign random keywords to shorturls, like bitly (sho.rt/hJudjK) 6 Version: 1.2 7 Author: Ozh 8 Author URI: https://ozh.org/ 9 */ 10 11 /* Release History: 12 * 13 * 1.0 Initial release 14 * 1.1 Added: don't increment sequential keyword counter & save one SQL query 15 * Fixed: plugin now complies to character set defined in config.php 16 * 1.2 Adopted as YOURLS core plugin under a new name 17 * Now configured via YOURLS options instead of editing plugin file 18 */ 19 20 // No direct call 21 if( !defined( 'YOURLS_ABSPATH' ) ) die(); 22 23 // Only register things if the old third-party plugin is not present 24 if( function_exists('ozh_random_keyword') ) { 25 yourls_add_notice( "<b>Random ShortURLs</b> plugin cannot function unless <b>Random Keywords</b> is removed first." ); 26 } else { 27 // filter registration happens conditionally, to avoid conflicts 28 // settings action is left out here, as it allows checking settings before deleting the old plugin 29 yourls_add_filter( 'random_keyword', 'ozh_random_shorturl' ); 30 yourls_add_filter( 'get_next_decimal', 'ozh_random_shorturl_next_decimal' ); 31 } 32 33 // Generate a random keyword 34 function ozh_random_shorturl() { 35 $possible = yourls_get_shorturl_charset() ; 36 $str=''; 37 while( strlen( $str ) < yourls_get_option( 'random_shorturls_length', 5 ) ) { 38 $str .= substr($possible, rand( 0, strlen( $possible ) - 1 ), 1 ); 39 } 40 return $str; 41 } 42 43 // Don't increment sequential keyword tracker 44 function ozh_random_shorturl_next_decimal( $next ) { 45 return ( $next - 1 ); 46 } 47 48 // Plugin settings page etc. 49 yourls_add_action( 'plugins_loaded', 'ozh_random_shorturl_add_settings' ); 50 function ozh_random_shorturl_add_settings() { 51 yourls_register_plugin_page( 'random_shorturl_settings', 'Random ShortURLs Settings', 'ozh_random_shorturl_settings_page' ); 52 } 53 54 function ozh_random_shorturl_settings_page() { 55 // Check if form was submitted 56 if( isset( $_POST['random_length'] ) ) { 57 // If so, verify nonce 58 yourls_verify_nonce( 'random_shorturl_settings' ); 59 // and process submission if nonce is valid 60 ozh_random_shorturl_settings_update(); 61 } 62 63 $random_length = yourls_get_option('random_shorturls_length', 5); 64 $nonce = yourls_create_nonce( 'random_shorturl_settings' ); 65 66 echo <<<HTML 67 <main> 68 <h2>Random ShortURLs Settings</h2> 69 <form method="post"> 70 <input type="hidden" name="nonce" value="$nonce" /> 71 <p> 72 <label>Random Keyword Length</label> 73 <input type="number" name="random_length" min="1" max="128" value="$random_length" /> 74 </p> 75 <p><input type="submit" value="Save" class="button" /></p> 76 </form> 77 </main> 78 HTML; 79 } 80 81 function ozh_random_shorturl_settings_update() { 82 $random_length = $_POST['random_length']; 83 84 if( $random_length ) { 85 if( is_numeric( $random_length ) ) { 86 yourls_update_option( 'random_shorturls_length', intval( $random_length ) ); 87 } else { 88 echo "Error: Length given was not a number."; 89 } 90 } else { 91 echo "Error: No length value given."; 92 } 93 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Mon Mar 31 05:10:02 2025 | Cross-referenced by PHPXref 0.7.1 |