PluginProbe
CryptX / 2.4.6
CryptX v2.4.6
4.2.0 4.1.1 trunk 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.9 2.0 2.1 2.2 2.3 2.3.1 2.3.2 2.3.3 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 All 92 releases
cryptx / cryptx.php

cryptx.php in CryptX 2.4.6, at cryptx.php

590 lines 19.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /*
3 Plugin Name: CryptX
4 Plugin URI: http://weber-nrw.de/wordpress/cryptx/
5 Description: No more SPAM by spiders scanning you site for email adresses. With CryptX you can hide all your email adresses, with and without a mailto-link, by converting them using javascript or UNICODE. Although you can choose to add a mailto-link to all unlinked email adresses with only one klick at the settings. That's great, isn't it?
6 Version: 2.4.6
7 Author: Ralf Weber
8 Author URI: http://weber-nrw.de/
9 */
10
11 /////////////////////////////////////////////////////////////////////////////
12
13 /**
14 * @internal prevent from direct calls
15 */
16 if (!defined('ABSPATH')) {
17 return ;
18 }
19
20 /**
21 * @internal prevent from second inclusion
22 */
23 if (!class_exists('cryptX')) {
24
25 /////////////////////////////////////////////////////////////////////////////
26
27 load_plugin_textdomain('cryptx', PLUGINDIR . '/' . dirname(plugin_basename (__FILE__)) . '/languages');
28
29 $cryptX_var = (array) get_option('cryptX');
30
31 /**
32 * "CryptX" WordPress Plugin
33 *
34 * @author Ralf Weber <ralf@weber-nrw.de>
35 * @license http://opensource.org/licenses/gpl-license.php GNU Public License
36 */
37 Class cryptX {
38
39 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40
41 /**
42 * Constructor
43 *
44 * This constructor attaches the needer plugin hook callbacks
45 */
46 function cryptX() {
47
48 global $cryptX_var;
49
50 // attach the converstion handlers
51 //
52 if (@$cryptX_var[theContent]) {
53 $this->filter('the_content');
54 }
55 if (@$cryptX_var[theExcerpt]) {
56 $this->filter('the_excerpt');
57 }
58 if (@$cryptX_var[commentText]) {
59 $this->filter('comment_text');
60 }
61 if (@$cryptX_var[widgetText]) {
62 $this->filter('widget_text');
63 }
64
65 // attach to admin menu
66 //
67 if (is_admin()) {
68 add_action('admin_menu',
69 array(&$this, 'menu')
70 );
71 }
72
73 // attach to plugin installation
74 //
75 add_action(
76 'activate_' . str_replace(
77 DIRECTORY_SEPARATOR, '/',
78 str_replace(
79 realpath(ABSPATH . PLUGINDIR) . DIRECTORY_SEPARATOR,
80 '', __FILE__
81 )
82 ),
83 array(&$this, 'install')
84 );
85
86 // attach javascript to Header
87 //
88 if (@$cryptX_var[java]) {
89 add_action(
90 'wp_head',
91 array(&$this, 'header')
92 );
93 }
94
95 add_action('admin_menu',
96 array(&$this, 'cryptx_meta_box')
97 );
98
99 add_action('wp_insert_post',
100 array(&$this, 'cryptx_insert_post')
101 );
102 add_action('wp_update_post',
103 array(&$this, 'cryptx_insert_post')
104 );
105
106 } // End function
107
108 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
109
110 function filter($apply)
111 {
112 global $cryptX_var, $shortcode_tags;
113
114 if (@$cryptX_var[autolink]) {
115 add_filter($apply, array(&$this, 'autolink'), 5);
116 }
117
118 if (!empty($shortcode_tags) || is_array($shortcode_tags)) {
119 add_filter($apply, array(&$this, 'autolink'), 11);
120 }
121
122 add_filter($apply, array($this, 'encryptx'), 12);
123 add_filter($apply, array($this, 'linktext'), 13);
124 }
125
126 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
127
128
129 function linktext($content)
130 {
131 global $post;
132 $cryptxoff = false;
133 $cryptxoffmeta = get_post_meta($post->ID,'cryptxoff',true);
134 if ($cryptxoffmeta == "true") {
135 $cryptxoff = true;
136 }
137 if ($cryptxoff == false) {
138 $content = preg_replace_callback("/([_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\.[a-zA-Z]{2,}))/i", array(get_class($this), '_Linktext'), $content );
139 }
140 return $content;
141 }
142
143 function _linktext($Match)
144 {
145 global $cryptX_var;
146 switch ($cryptX_var[opt_linktext]) {
147
148 case 1: // alternative text for mail link
149 $linktext = $cryptX_var[alt_linktext];
150 break;
151
152 case 2: // alternative image for mail link
153 $linktext = "<img src=\"" . $cryptX_var[alt_linkimage] . "\" class=\"cryptxImage\" alt=\"" . $cryptX_var[alt_linkimage_title] . "\" title=\"" . $cryptX_var[alt_linkimage_title] . "\">";
154 break;
155
156 case 3: // uploaded image for mail link
157 $imgurl = "/" . PLUGINDIR . "/" . dirname(plugin_basename (__FILE__)) . "/images/" . $cryptX_var[alt_uploadedimage];
158 $linktext = "<img src=\"" . $imgurl . "\" class=\"cryptxImage\" alt=\"" . $cryptX_var[http_linkimage_title] . "\" title=\"" . $cryptX_var[http_linkimage_title] . "\">";
159 break;
160
161 case 4: // text scrambled by antispambot
162 $linktext = antispambot($Match[1]);
163 break;
164
165 default:
166 $linktext = str_replace( "@", $cryptX_var[at], $Match[1]);
167 $linktext = str_replace( ".", $cryptX_var[dot], $linktext);
168
169 }
170 return $linktext;
171 }
172
173 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
174
175 function _dirImages()
176 {
177 $dir = $_SERVER["DOCUMENT_ROOT"].'/'.PLUGINDIR.'/'.dirname(plugin_basename (__FILE__)).'/images';
178 $fh = opendir($dir); //Verzeichnis
179 $verzeichnisinhalt = array();
180 while (true == ($file = readdir($fh)))
181 {
182 if ((substr(strtolower($file), -3)=="jpg") or (substr(strtolower($file), -3)=="gif"))
183 {
184 $verzeichnisinhalt[] = $file;
185 }
186 }
187 return $verzeichnisinhalt;
188 }
189
190 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
191
192 function encryptx($content)
193 {
194 global $post;
195 $cryptxoff = false;
196 $cryptxoffmeta = get_post_meta($post->ID,'cryptxoff',true);
197 if ($cryptxoffmeta == "true") {
198 $cryptxoff = true;
199 }
200 if ($cryptxoff == false) {
201 $content = preg_replace_callback('/<a (.*?)(href=("|\')mailto:(.*?)("|\')(.*?)|)>(.*?)<\/a>/i', array(get_class($this), 'mailtocrypt'), $content );
202 }
203 return $content;
204 }
205
206 function mailtocrypt($Match)
207 {
208 global $cryptX_var;
209 $return = $Match[0];
210 $mailto = "mailto:" . $Match[4];
211 //* If mailto contains no email adress, like a link from "Sociable" do nothing *//
212 if (substr($Match[4], 0, 9) =="?subject=") return $return;
213 if (@$cryptX_var[java]) {
214 $crypt = '';
215 $ascii = 0;
216 for ($i = 0; $i < strlen( $Match[4] ); $i++) {
217 $ascii = ord ( substr ( $Match[4], $i ) );
218 if (8364 <= $char) {
219 $ascii = 128;
220 }
221 $crypt .= chr($ascii + 1);
222 }
223 $javascript="javascript:DeCryptX('" . $crypt . "')";
224 $return = str_replace( "mailto:".$Match[4], $javascript, $return);
225 } else {
226 $return = str_replace( $mailto, antispambot($mailto), $return);
227 }
228 return $return;
229 }
230
231
232 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
233
234 function autolink($content) {
235
236 $src[]="/([\s])([_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\.[a-zA-Z]{2,}))/si";
237 $src[]="/(>)([_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\.[a-zA-Z]{2,}))(<)/si";
238 $src[]="/(>)([_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\.[a-zA-Z]{2,}))([\s])/si";
239 $src[]="/([\s])([_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\.[a-zA-Z]{2,}))(<)/si";
240 $src[]="/^([_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\.[a-zA-Z]{2,}))/si";
241 $src[]="/(<a[^>]*>)<a[^>]*>/";
242 $src[]="/(<\/A>)<\/A>/i";
243
244 $tar[]="\\1<a href=\"mailto:\\2\">\\2</a>";
245 $tar[]="\\1<a href=\"mailto:\\2\">\\2</a>\\6";
246 $tar[]="\\1<a href=\"mailto:\\2\">\\2</a>\\6";
247 $tar[]="\\1<a href=\"mailto:\\2\">\\2</a>\\6";
248 $tar[]="<a href=\"mailto:\\0\">\\0</a>";
249 $tar[]="\\1";
250 $tar[]="\\1";
251
252 $content = preg_replace($src,$tar,$content);
253
254 return $content;
255 }
256
257 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
258
259
260 function install() {
261 add_option(
262 'cryptX',
263 array(
264 'at' => ' [at] ',
265 'dot' => ' [dot] ',
266 'theContent' => 1,
267 'theExcerpt' => 0,
268 'commentText' => 1,
269 'widgetText' => 0,
270 'java' => 1,
271 'opt_linktext' => 0,
272 )
273 );
274 }
275
276 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
277
278 /**
279 * Attach the menu page to the `Options` tab
280 */
281 function header()
282 {
283 $cryptX_script.= "<script type=\"text/javascript\" src=\"" . site_url() . '/' . PLUGINDIR . '/' . dirname(plugin_basename (__FILE__)) . "/js/cryptx.js\"></script>\n";
284 print($cryptX_script);
285 }
286
287 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
288
289
290 function cryptx_meta() {
291 global $post;
292 $cryptxoff = false;
293 $cryptxoffmeta = get_post_meta($post->ID,'cryptxoff',true);
294 if ($cryptxoffmeta == "true") {
295 $cryptxoff = true;
296 }
297 ?>
298 <input type="checkbox" name="cryptxoff" <?php if ($cryptxoff) { echo 'checked="checked"'; } ?>/> Disable CryptX
299 <?php
300 }
301
302 function cryptx_option() {
303 global $post;
304 $cryptxoff = false;
305 $cryptxoffmeta = get_post_meta($post->ID,'cryptxoff',true);
306 if ($cryptxoffmeta == "true") {
307 $cryptxoff = true;
308 }
309 if ( current_user_can('edit_posts') ) { ?>
310 <fieldset id="cryptxoption" class="dbx-box">
311 <h3 class="dbx-handle">CryptX</h3>
312 <div class="dbx-content">
313 <input type="checkbox" name="cryptxon" <?php if ($cryptxoff) { echo 'checked="checked"'; } ?>/> CryptX disabled?
314 </div>
315 </fieldset>
316 <?php
317 }
318 }
319
320 function cryptx_meta_box() {
321 // Check whether the 2.5 function add_meta_box exists, and if it doesn't use 2.3 functions.
322 if ( function_exists('add_meta_box') ) {
323 add_meta_box('cryptx','CryptX', array(&$this, 'cryptx_meta'),'post');
324 add_meta_box('cryptx','CryptX', array(&$this, 'cryptx_meta'),'page');
325 } else {
326 add_action('dbx_post_sidebar', array(&$this, 'cryptx_option'));
327 add_action('dbx_page_sidebar', array(&$this, 'cryptx_option'));
328 }
329 }
330
331 //add_action('admin_menu', 'cryptx_meta_box');
332
333 function cryptx_insert_post($pID) {
334 if (isset($_POST['cryptxoff'])) {
335 add_post_meta($pID,'cryptxoff',"true", true) or update_post_meta($pID, 'cryptxoff', "true");
336 } else {
337 add_post_meta($pID,'cryptxoff',"false", true) or update_post_meta($pID, 'cryptxoff', "false");
338 }
339 }
340 //add_action('wp_insert_post', array(&$this, 'cryptx_insert_post'));
341
342
343
344
345 /**
346 * Attach the menu page to the `Options` tab
347 */
348 function menu() {
349 add_options_page(
350 'CryptX',
351 (version_compare($GLOBALS['wp_version'], '2.6.999', '>') ? '<img src="' .@plugins_url('cryptx/icon.png'). '" width="10" height="10" alt="CryptX Icon" />' : ''). 'CryptX',
352 9,
353 __FILE__,
354 array(
355 $this,
356 '_submenu'
357 )
358 );
359 }
360
361 /**
362 * Handles and renders the menu page
363 */
364 function _submenu() {
365 global $cryptX_var;
366
367 if (isset($_POST) && !empty($_POST)) {
368 if (function_exists('current_user_can') === true && (current_user_can('manage_options') === false || current_user_can('edit_plugins') === false)) {
369 wp_die("You don't have permission to access!");
370 }
371 check_admin_referer('cryptX');
372 update_option( 'cryptX', $_POST['cryptX_var']);
373 $cryptX_var = (array) get_option('cryptX'); // reread Options
374 ?>
375 <div id="message" class="updated fade">
376 <p><strong><?php _e('Settings saved.') ?></strong></p>
377 </div>
378 <?php } ?>
379
380 <div class="wrap">
381 <?php if (version_compare($GLOBALS['wp_version'], '2.6.999', '>')) { ?>
382 <div class="icon32" style="background: url(<?php echo @plugins_url('cryptx/icon32.png') ?>) no-repeat"><br /></div>
383 <?php } ?>
384 <h2>CryptX</h2>
385
386 <form method="post" action="">
387
388 <?php wp_nonce_field('cryptX') ?>
389
390 <div id="poststuff" class="ui-sortable">
391 <div class="postbox">
392
393 <h3><?php _e("Presentation",'cryptx'); ?></h3>
394
395 <div class="inside">
396 <table class="form-table">
397 <tr valign="top">
398 <td><input name="cryptX_var[opt_linktext]" type="radio" id="opt_linktext" value="0" <?php echo ($cryptX_var[opt_linktext] == 0) ? 'checked="checked"' : ''; ?> /></td>
399 <th scope="row"><label for="cryptX_var[at]"><?php _e("Replacement for '@'",'cryptx'); ?></label></th>
400 <td><input name="cryptX_var[at]" value="<?php echo $cryptX_var[at]; ?>" type="text" class="regular-text" /></td>
401 </tr>
402 <tr valign="top">
403 <td>&nbsp;</td>
404 <th scope="row"><label for="cryptX_var[dot]"><?php _e("Replacement for '.'",'cryptx'); ?></label></th>
405 <td><input name="cryptX_var[dot]" value="<?php echo $cryptX_var[dot]; ?>" type="text" class="regular-text" /></td>
406 </tr>
407 <tr valign="top">
408 <td scope="row"><input type="radio" name="cryptX_var[opt_linktext]" id="opt_linktext2" value="1" <?php echo ($cryptX_var[opt_linktext] == 1) ? 'checked="checked"' : ''; ?>/></td>
409 <th><label for="cryptX_var[alt_linktext]"><?php _e("Text for link",'cryptx'); ?></label></th>
410 <td><input name="cryptX_var[alt_linktext]" value="<?php echo $cryptX_var[alt_linktext]; ?>" type="text" class="regular-text" /></td>
411 </tr>
412 <tr valign="top">
413 <td scope="row"><input type="radio" name="cryptX_var[opt_linktext]" id="opt_linktext3" value="2" <?php echo ($cryptX_var[opt_linktext] == 2) ? 'checked="checked"' : ''; ?>/></td>
414 <th><label for="cryptX_var[alt_linkimage]"><?php _e("Image-URL",'cryptx'); ?></label></th>
415 <td><input name="cryptX_var[alt_linkimage]" value="<?php echo $cryptX_var[alt_linkimage]; ?>" type="text" class="regular-text" /></td>
416 </tr>
417 <tr valign="top">
418 <td scope="row">&nbsp;</td>
419 <th><label for="cryptX_var[http_linkimage_title]"><?php _e("Title-Tag for the Image",'cryptx'); ?></label></th>
420 <td><input name="cryptX_var[http_linkimage_title]" value="<?php echo $cryptX_var[http_linkimage_title]; ?>" type="text" class="regular-text" /></td>
421 </tr>
422 <tr valign="top">
423 <td scope="row"><input type="radio" name="cryptX_var[opt_linktext]" id="opt_linktext4" value="3" <?php echo ($cryptX_var[opt_linktext] == 3) ? 'checked="checked"' : ''; ?>/></td>
424 <th><label for="cryptX_var[alt_uploadedimage]"><?php _e("Select image from folder",'cryptx'); ?></label></th>
425 <td><select name="cryptX_var[alt_uploadedimage]" onchange="cryptX_bild_wechsel(this)">
426 <?php foreach($this->_dirImages() as $image) {
427 $FirstIMG = (!isset($FirstIMG))? plugins_url('cryptx/images/').$image : ($cryptX_var[alt_uploadedimage] == plugins_url('cryptx/images/').$image) ? plugins_url('cryptx/images/').$image : $FirstIMG;
428 ?>
429 <option value="<?php echo plugins_url('cryptx/images/').$image; ?>" <?php echo ($cryptX_var[alt_uploadedimage] == plugins_url('cryptx/images/').$image) ? 'selected' : ''; ?> ><?php echo $image; ?></option>
430 <?php } ?>
431 </select>&nbsp;&nbsp;<img src="<?php echo $FirstIMG; ?>" id="cryptXmailTo"></td>
432 </tr>
433 <tr valign="top">
434 <td>&nbsp;</td>
435 <th><label for="cryptX_var[alt_linkimage_title]"><?php _e("Title-Tag for the Image",'cryptx'); ?></label></th>
436 <td><input name="cryptX_var[alt_linkimage_title]" value="<?php echo $cryptX_var[alt_linkimage_title]; ?>" type="text" class="regular-text" />
437 <span class="setting-description"><?php _e("Upload your favorite email-image to ../plugins/cryptx/images. Only .jpg and .gif Supported!",'cryptx'); ?></span></td>
438 </tr>
439 <tr valign="top">
440 <td scope="row"><input type="radio" name="cryptX_var[opt_linktext]" id="opt_linktext" value="4" <?php echo ($cryptX_var[opt_linktext] == 4) ? 'checked="checked"' : ''; ?>/></td>
441 <th colspan="2"><?php _e("Text scrambled by AntiSpamBot (<small>Try it and look at your site and check the html source!</small>)",'cryptx'); ?></th>
442 </tr>
443 </table>
444 </div>
445 </div>
446 <p><input type="submit" name="cryptX" class="button-primary" value="<?php _e('Save Changes') ?>" /></p>
447
448 <div class="postbox">
449
450 <h3><?php _e("General",'cryptx'); ?></h3>
451
452 <div class="inside">
453 <table class="form-table">
454 <tr valign="top">
455 <th scope="row"><?php _e("Apply CryptX to...",'cryptx'); ?></th>
456 <td><input name="cryptX_var[theContent]" <?php echo ($cryptX_var[theContent]) ? 'checked="checked"' : ''; ?> type="checkbox" />&nbsp;&nbsp;<?php _e("Content",'cryptx'); ?> <?php _e("(<i>this can be disabled per Post by an Option</i>)",'cryptx'); ?><br/>
457 <input name="cryptX_var[theExcerpt]" <?php echo ($cryptX_var[theExcerpt]) ? 'checked="checked"' : ''; ?> type="checkbox" />&nbsp;&nbsp;<?php _e("Excerpt",'cryptx'); ?><br/>
458 <input name="cryptX_var[commentText]" <?php echo ($cryptX_var[commentText]) ? 'checked="checked"' : ''; ?> type="checkbox" />&nbsp;&nbsp;<?php _e("Comments",'cryptx'); ?><br/>
459 <input name="cryptX_var[widgetText]" <?php echo ($cryptX_var[widgetText]) ? 'checked="checked"' : ''; ?> type="checkbox" />&nbsp;&nbsp;<?php _e("Widgets",'cryptx'); ?> <?php _e("(<i>works only on all widgets, not on a single widget</i>!)",'cryptx'); ?></td>
460 </tr>
461 <tr valign="top">
462 <th scope="row"><?php _e("Type of decryption",'cryptx'); ?></th>
463 <td><input name="cryptX_var[java]" <?php echo ($cryptX_var[java]) ? 'checked="checked"' : ''; ?> type="radio" value="1" />&nbsp;&nbsp;<?php _e("Use javascript to hide the Email-Link.",'cryptx'); ?><br/>
464 <input name="cryptX_var[java]" <?php echo (!$cryptX_var[java]) ? 'checked="checked"' : ''; ?> type="radio" value="0" />&nbsp;&nbsp;<?php _e("Use Unicode to hide the Email-Link.",'cryptx'); ?></td>
465 </tr>
466 <tr valign="top">
467 <th scope="row" colspan="2"><input name="cryptX_var[autolink]" <?php echo ($cryptX_var[autolink]) ? 'checked="checked"' : ''; ?> type="checkbox" />&nbsp;&nbsp;<?php _e("Add mailto to all unlinked email addresses",'cryptx'); ?></th>
468 </tr>
469 </table>
470
471 </div>
472 </div>
473 <p><input type="submit" name="cryptX" class="button-primary" value="<?php _e('Save Changes') ?>" /></p>
474
475 <div class="postbox">
476
477 <h3><?php _e("How to use CryptX in your Template",'cryptx'); ?></h3>
478
479 <div class="inside">
480 <table class="form-table">
481 <tr>
482 <td>In your Template you can use the following function to encrypt a email address:
483 <p style="border:1px solid #000; background-color: #e9e9e9;padding: 10px;">
484 <i>
485 &lt;?php <br/>
486 &nbsp;&nbsp;&nbsp;&nbsp; $mail="name@example.com"; <br/>
487 &nbsp;&nbsp;&nbsp;&nbsp; $text="Contact"; <br/>
488 &nbsp;&nbsp;&nbsp;&nbsp; $css ="email"; <br/>
489 &nbsp;&nbsp;&nbsp;&nbsp; if (function_exists('cryptx')) { <br/>
490 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cryptx($mail, $text, $css, 1); <br/>
491 &nbsp;&nbsp;&nbsp;&nbsp; } else { <br/>
492 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo sprintf('&lt;a href="mailto:%s" class="%s"&gt;%s&lt;/a&gt;', $mail, $css, ($text != "" ? $text : $mail)); <br/>
493 &nbsp;&nbsp;&nbsp;&nbsp; } <br/>
494 ?&gt;
495 </i></p>
496 <ol><li>parameter is the email address.</li>
497 <li>parameter is the linktext. If none given the email address is used.</li>
498 <li>parameter is a css class added to the link.</li>
499 <li>parameter is 1 for echo the encrypted email address or 0 to return the redult to a variable.</li></ol></td>
500 </tr>
501 </table>
502
503 </div>
504 </div>
505
506 <div class="postbox">
507
508 <h3><?php _e("Information",'cryptx'); ?></h3>
509
510 <div class="inside">
511 <table class="form-table">
512 <tr>
513 <td><?php
514 $data = get_plugin_data(__FILE__);
515 echo sprintf(
516 '%1$s: %2$s | %3$s: %4$s | %5$s: <a href="http://weber-nrw.de" target="_blank">Ralf Weber</a> | <a href="http://twitter.com/Weber_NRW" target="_blank">%6$s</a><br />',
517 __('Plugin'),
518 'CryptX',
519 __('Version'),
520 $data['Version'],
521 __('Author'),
522 __('Follow on Twitter', 'cryptx'));
523 ?>
524 </td>
525 </tr>
526 </table>
527
528 </div>
529 </div>
530
531 </div>
532
533 </form>
534
535 <script type="text/javascript">
536 <!--
537 function cryptX_bild_wechsel(select){
538 document.getElementById("cryptXmailTo").src = select.options[select.options.selectedIndex].value;
539 return true;
540 } //-->
541 </script>
542
543 </div>
544 <?php
545 }
546
547 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
548
549
550 //--end-of-class
551 }
552
553 }
554
555 /////////////////////////////////////////////////////////////////////////////
556
557 /**
558 * Initiating the plugin...
559 * @see cryptX
560 */
561 new cryptX;
562
563 /**
564 * Create Template functions...
565 * $content = string to convert
566 * $text = string to replace linktext
567 * $css = assign a css class to the link
568 * $echo = 0: keep result in a variable, 1: show result
569 */
570 function cryptx( $content, $text="", $css="", $echo=1 )
571 {
572 global $cryptX_var;
573
574 $cryptX = new cryptX;
575
576 $content = $cryptX->autolink( $content );
577
578 $content = $cryptX->encryptx( $content );
579
580 if("" != $text) {
581 $content = preg_replace( "/(<a[^>]*>)(.*)(<\/a>)/i", '$1'.$text.'$3', $content );
582 }
583 if("" != $css) {
584 $content = preg_replace( "/(<a[^>]*)(>)/i", '$1 class="'.$css.'"$2', $content );
585 }
586 if(1 == $echo) echo $content;
587
588 return $content;
589 }
590 ?>