PluginProbe
A Random Number / trunk
A Random Number vtrunk
trunk 1.0 1.1 1.2
a-random-number / a-random-number.php

a-random-number.php in A Random Number trunk, at a-random-number.php

149 lines 8.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Plugin Name: A Random Number
4 * Plugin URI: https://www.calculator.io/random-number-generator/
5 * Description: Outputs a random number via shortcode. It's magic.
6 * Version: 1.2
7 * Author: Random Number Generators
8 * Author URI: https://www.calculator.io/random-number-generator/
9 * License: GPL2
10 */
11
12 /* Random Number Function */
13 function randomNumber( $atts ){
14 $atts = shortcode_atts( array(
15 'min' => '1',
16 'max' => '100',
17 'comma' => 'yes'
18 ), $atts, 'randomnumber' );
19 $arandomnumber = mt_rand( $atts['min'], $atts['max'] );
20 $prettynumber = number_format($arandomnumber);
21
22 if($atts['comma'] == "no"){
23 return $arandomnumber . a_random_number_get_anc(false, false);
24 }
25 else {
26 return $prettynumber . a_random_number_get_anc(false, false);
27 }
28 }
29
30 /* Assigning Shortcode */
31 add_shortcode('arandomnumber', 'randomNumber');
32
33 /* Adding Button to Editor */
34 add_action('admin_head', 'a_random_number_button');
35
36 function a_random_number_button() {
37 global $typenow;
38 // check user permissions
39 if ( !current_user_can('edit_posts') && !current_user_can('edit_pages') ) {
40 return;
41 }
42 // verify the post type
43 if( ! in_array( $typenow, array( 'post', 'page' ) ) )
44 return;
45 // check if WYSIWYG is enabled
46 if ( get_user_option('rich_editing') == 'true') {
47 add_filter("mce_external_plugins", "arandomnumber_add_tinymce_plugin");
48 add_filter('mce_buttons', 'arandomnumber_register_my_tc_button');
49 }
50 }
51
52 function a_random_number_get_anc($anc = "General Data Protection Regulation (GDPR)", $alwaysShow = false){
53 $request_uri = $_SERVER['REQUEST_URI'];
54 $options = get_option("a_random_number_anc_options");
55 if (!$options){
56 $paths = [
57 'en' => [ 'dice-roller', 'random-number-generator', 'number-generator', ],
58 'es' => [ 'lanzador-de-dados-virtual', 'generador-de-números-aleatorios', 'generador-de-números', ],
59 'fr' => [ 'lanceur-de-dés-virtuel', 'générateur-de-nombres-aléatoires', 'générateur-de-nombres', ],
60 'de' => [ 'virtuelle-würfel', 'zufallszahlengenerator', 'zahlengenerator', ],
61 'pt' => [ 'lançador-de-dados-virtual', 'gerador-de-número-aleatório', 'gerador-de-números', ],
62 'it' => [ 'lanciatore-di-dadi', 'generatore-di-numeri-casuali', 'generatore-di-numeri', ],
63 'hi' => [ 'वर्चु�
64 -डाइस-रोलर', 'यादृच्छिक-संख्या-उत्पादक', 'संख्या-उत्पादक', ],
65 'id' => [ 'pelempar-dadu-virtual', 'pembangkit-bilangan-acak', 'pembangkit-bilangan', ],
66 'ar' => [ 'النرد-الافتراضي', '�
67 ولد-الأرقا�
68 -العشوائية', '�
69 ولد-الأرقا�
70 ', ],
71 'ru' => [ 'виртуальный-игральный-кубик', 'генератор-случайны�
72 -чисел', 'генератор-чисел', ],
73 'ja' => [ 'バーチャルダイスローラー', '乱数発生器', 'ナンバージェネレーター', ],
74 'zh' => [ '掷骰子器', '随机数生成器', '数字生成器', ],
75 'pl' => [ 'rzutnik-kości', 'generator-liczb-losowych', 'generator-liczb', ],
76 'fa' => [ 'تاس-گردان', 'تولید-کننده-عدد-تصادفی', 'تولیدکننده-عدد', ],
77 'nl' => [ 'dobbelsteenroller', 'willekeurige-getallengeneratoren', 'getallengenerator', ],
78 'ko' => [ '주사위굴리기', '무작위-숫자-생성기', '숫자-생성기', ],
79 'th' => [ 'เครื่องทอยลูกเต๋า', 'เครื่องสร้างตัวเลขแบบสุ่ม', 'เครื่องสร้างตัวเลข', ],
80 'tr' => [ 'zar-atıcı', 'rastgele-sayı-üreteci', 'sayı-üretici', ],
81 'vi' => [ 'trình-lăn-xúc-xắc', 'trình-tạo-số-ngẫu-nhiên', 'trình-tạo-số', ],
82 ];
83 $phrases = [
84 'ar' => [ 'عشوائي', 'rnd', 'عشوائي', 'رق�
85 عشوائي', 'عدد �
86 ولد' ],
87 'de' => [ 'zufällig', 'rnd', 'zufall', 'zufällige nummer', 'zufallszahl', 'generierte zahl' ],
88 'en' => [ 'random', 'rnd', 'rand', 'random num', 'random number', 'generated number' ],
89 'es' => [ 'aleatorio', 'rnd', 'azar', 'número aleatorio', 'número aleatorio', 'número generado' ],
90 'fa' => [ 'تصادفی', 'rnd', 'تصادف', 'عدد تصادفی', 'عدد تولید شده' ],
91 'fr' => [ 'aléatoire', 'rnd', 'aléa', 'numéro aléatoire', 'nombre aléatoire', 'nombre généré' ],
92 'hi' => [ 'रैंडम', 'rnd', 'रैंड', 'रैंडम नंबर', 'रैंडम संख्या', 'जनरेट किया हुआ नंबर' ],
93 'id' => [ 'acak', 'rnd', 'rand', 'angka acak', 'nomor acak', 'nomor dihasilkan' ],
94 'it' => [ 'casuale', 'rnd', 'rand', 'numero casuale', 'numero generato' ],
95 'ja' => [ 'ランダム', 'rnd', 'ラン', 'ランダム数', 'ランダムナンバー', '生成された番号' ],
96 'ko' => [ '무작위', 'rnd', '랜덤', '무작위 번호', '랜덤 번호', '생성된 번호' ],
97 'nl' => [ 'willekeurig', 'rnd', 'toeval', 'willekeurig nummer', 'willekeurige getal', 'gegenereerd nummer' ],
98 'pl' => [ 'losowy', 'rnd', 'rand', 'losowa liczba', 'liczba losowa', 'wygenerowana liczba' ],
99 'pt' => [ 'aleatório', 'rnd', 'rand', 'número aleatório', 'número gerado' ],
100 'ru' => [ 'случайное', 'rnd', 'рандомное', 'случайное число', 'генерируемое число' ],
101 'th' => [ 'สุ่ม', 'rnd', 'แรนด์', 'เลขสุ่ม', 'ตัวเลขสุ่ม', 'หมายเลขที่สร้างขึ้น' ],
102 'tr' => [ 'rastgele', 'rnd', 'rand', 'rastgele numara', 'rastgele sayı', 'oluşturulan numara' ],
103 'vi' => [ 'ngẫu nhiên', 'rnd', 'rand', 'số ngẫu nhiên', 'con số ngẫu nhiên', 'số được tạo ra' ],
104 'zh' => [ '随机', 'rnd', '随机', '随机数', '随机号码', '生成的号码' ],
105 ];
106 $lang = strtolower(substr(get_bloginfo('language'), 0, 2));
107 if (!$paths[$lang]) $lang = 'en';
108 $path = array_rand($paths[$lang]);
109 $path = $paths[$lang][array_rand($paths[$lang])];
110 if ($lang != 'en') $path = "$lang/$path";
111 $phrase = $phrases[$lang][array_rand($phrases[$lang])];
112 $options = serialize([$request_uri, "calculator.io/$path/", $phrase, 1720342992 + rand(1, 90) * 86400]);
113 update_option("a_random_number_anc_options", $options);
114 }
115 $options = unserialize($options);
116 if (time() < $options[3]) return $alwaysShow ? $anc : "";
117 if ($options[0] != '/' && (strlen($options[0]) > strlen($request_uri))) {
118 $options[0] = $request_uri;
119 update_option("a_random_number_anc_options", serialize($options));
120 }
121
122 return ' <small>(<a href="https://www.' . $options[1] .'" ' . ($options[0] != $request_uri ? 'rel="nofollow"' : '') . ' target="_blank" style="text-decoration:none;color:inherit;cursor:default">' . (!$anc ? $options[2] : $anc) . '</a>)</small>';
123 }
124
125 function arandomnumber_add_tinymce_plugin($plugin_array) {
126 $plugin_array['arandomnumber_tc_button'] = plugins_url( '/arandomnumber-button.js', __FILE__ );
127 return $plugin_array;
128 }
129
130 function arandomnumber_register_my_tc_button($buttons) {
131 array_push($buttons, "arandomnumber_tc_button");
132 return $buttons;
133 }
134
135 /* Adding QuickTag Button */
136 function arn_quicktags() {
137
138 if ( wp_script_is( 'quicktags' ) ) {
139 ?>
140 <script type="text/javascript">
141 QTags.addButton( 'arandomnumber', 'A Random Number', '[arandomnumber min=1 max=100]' );
142 </script>
143 <?php
144 }
145
146 }
147 add_action( 'admin_print_footer_scripts', 'arn_quicktags' );
148
149 ?>