parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Шифровка mailto или Антиробот ala Artlebedev :)

Никита Козин 27.12.2005 12:37

Может кому-нибудь пригодиться ;)

Метод шифрует переданный e-mail в строчку вида:
<script type="text/javascript">document.write('e-m'+'ail')</script>
Код метода:
@mailto[email;lparams][params;_string;_encoded;_random;_script;i]
$params[^hash::create[]]
^if($lparams is hash){
	$params[
		$.subject[$lparams.subject]
		$.attributes[$lparams.attributes]
		^if(def $lparams.title){
			$.title[$lparams.title]
		}{
			$.title[$email]
		}
	]
}{
	^if(def $lparams){
		$params.title[$lparams]
	}{
		$params.title[$email]
	}
}
^if(^is_email[$email]){
	$_string[<a href="mailto:$email^if(def $params.subject){?subject=$params.subject}"^if(def $params.attributes){ $params.attributes}>$params.title</a>]
}{
	$_string[$email]
}
$i(0)
^while($i < ^_string.length[]){
	$_random(^math:random(5) + 3)
	$_encoded[$_encoded^_string.mid($i;$_random)^if($i + $_random < ^_string.length[]){'+'}]
	^i.inc($_random)
}
$result[<script type="text/javascript">document.write('$_encoded')^;</script>]
# end @mailto[]
Примеры вызова:
^mailto[wonder@nightmail.ru]
^mailto[wonder@nightmail.ru][Никита Козин]
^mailto[wonder@nightmail.ru][
	$.title[Никита Козин]
	$.subject[from-parser3-site]
	$.attributes[style="font-weight:bold"]
]