$content_header . $res
));
- $res = <<__EOF__;
-<script type="text/javascript" src="@{[ $app->static_path ]}plugins/Lovers/js/CryptoCipherCamellia.js"></script>
-<script type="text/javascript">
-function love_letter_decrypt_$love_letter_id(k) {
- var j = jQuery;
-
- if (! k) {
- k = '';
- }
-
- k = j.map(k.split(''), function(v, k) {
- return v.charCodeAt(0);
- }).join('');
- k += '00000000000000000000000000000000';
- k = k.substr(0, 32);
-
- var iv = '00000000000000000000000000000000';
- var cipher = new CryptoCipherCamellia();
- try {
- var cbc = new CryptoModeCBC(cipher,
- CryptoUtil.arrayFromHex(k),
- CryptoUtil.arrayFromHex(iv));
- var res = cbc.decrypt(CryptoUtil.arrayFromBase64(
- j.trim(j('#love_letter_encrypted_$love_letter_id').text())
- ));
- var contents = CryptoUtil.stringFromArray(res);
- var match = contents.match(/^$content_header/);
- if (match) {
- j('#love_letter_encrypted_$love_letter_id').html(
- contents.replace(/^$content_header/, '')
- ).show();
- setTimeout(love_letter_init_form_$love_letter_id, 0);
- return true;
- }
- else {
- alert('@{[ $plugin->translate('wrong password') ]}');
- }
- }
- catch (e) {
- alert(e);
- }
-
- return false;
-}
-
-jQuery(function() {
- var j = jQuery;
- var k = '';
-
- if (document.location.hash.match(/password/i)) {
- /*
- k = window.prompt('password');
- love_letter_decrypt_$love_letter_id(k);
- */
- var prompt = j('#love_letter_prompt_$love_letter_id');
- var pass = prompt.find('input[name="password"]');
- prompt.show();
- prompt.find('input[name="password_input"]').focus(function() {
- j(this).hide();
- pass.show().get(0).focus();
- });
- prompt.find('input[type="submit"]').click(function() {
- if (love_letter_decrypt_$love_letter_id(pass.val())) {
- prompt.hide();
- }
- return false;
- });
- }
-});
-</script>
-<div id="love_letter_prompt_$love_letter_id" style="display:none">
-<input name="password_input" value="@{[ $plugin->translate('Please input password.') ]}" style="color: #999"/>
-<input type="password" name="password" value="" style="display: none;"/>
-<br />
-<input type="submit" value="@{[ $plugin->translate('show love letter') ]}" />
-</div>
-<div id="love_letter_encrypted_$love_letter_id" style="display:none">$res</div>
-__EOF__
- ;
- }
-
- $res = <<__EOF__;
-<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js"></script>
-<script type="text/javascript">
-jQuery.noConflict();
-function love_letter_init_form_$love_letter_id() {
- var j = jQuery;
- var speed = 'normal';
-
- var container = j('#love_letter_container_$love_letter_id');
- var loading = j('#love_letter_loading_$love_letter_id');
- if (loading.length == 0) {
- container.append(
- '<div id="love_letter_loading_$love_letter_id" style="background: white url(\\'@{[ $app->static_path ]}plugins/Lovers/img/loading.gif\\') center center no-repeat; display: none; height: ' + container.height() + 'px; width: ' + container.width() + 'px;"></div>'
+ my $tmpl = $plugin->load_tmpl('loveletter_encrypt.tmpl');
+ $res = MT->translate_templatized(
+ $tmpl->output({
+ 'love_letter_id' => $love_letter_id,
+ 'content_header' => $content_header,
+ 'contents' => $res,
+ })
);
- loading = j('#love_letter_loading_$love_letter_id');
- }
- function show_loading() {
- loading.width(container.width());
- loading.height(container.height());
- loading.fadeIn();
}
- var form = j('#love_letter_form_$love_letter_id');
-
- function send(type, callback) {
- var param = form.serializeArray();
- param.push({
- 'name': type,
- 'value': 1
- });
- j.post(form.attr('action'), param, function() {
- var args = arguments;
- setTimeout(function() {
- callback.apply(null, args);
- }, 2000);
- });
+ {
+ my $tmpl = $plugin->load_tmpl('loveletter_script.tmpl');
+ $res = MT->translate_templatized(
+ $tmpl->output({
+ 'love_letter_id' => $love_letter_id,
+ 'entry_id' => $entry_id,
+ 'template_id' => $template_id,
+ 'class' => $args->{'class'} || 'love_letter',
+ 'contents' => $res,
+ })
+ );
}
- form.find('textarea[name="response"]').show();
-
- form.find('input[name="ok"]').show().click(function() {
- send('ok', function(data) {
- var message = data.match(/<message>(.*?)<\\/message/i);
- if (! message) {
- alert('@{[ $plugin->translate('unknown error') ]}');
- }
- else if (message[1].match(/^\\s+ok\\s+\$/i)) {
- alert(message[1]);
- }
- else {
- loading.fadeOut(
- speed,
- function() {
- form.find('[name="if_love_letter_ok"]').show();
- }
- );
- }
- });
-
- form.find(
- 'textarea[name="response"], input[name="ok"], input[name="cancel"]'
- ).fadeOut(speed, show_loading);
-
- return false;
- });
-
- form.find('input[name="cancel"]').show().click(function() {
- send('cancel', function(data) {
- var message = data.match(/<message>(.*?)<\\/message/i);
- if (! message) {
- alert('@{[ $plugin->translate('Unknown error.') ]}');
- }
- else if (message[1].match(/^\\s+ok\\s+\$/i)) {
- alert(message[1]);
- }
- else {
- loading.fadeOut(
- speed,
- function() {
- form.find('[name="if_love_letter_cancel"]').show();
- }
- );
- }
- });
-
- form.find(
- 'textarea[name="response"], input[name="ok"], input[name="cancel"]'
- ).fadeOut(speed, show_loading);
-
- return false;
- });
-}
-
-jQuery(function() {
- love_letter_init_form_$love_letter_id();
-});
-</script>
-<form
- class="@{[ $args->{'class'} || 'love_letter' ]}"
- action="@{[ $app->base . $app->mt_uri ]}"
- method="post"
- id="love_letter_form_$love_letter_id"
->
-<input type="hidden" name="__mode" value="love_letter" />
-<input type="hidden" name="entry_id" value="$entry_id" />
-<input type="hidden" name="template_id" value="$template_id" />
-<input type="hidden" name="love_letter_id" value="$love_letter_id" />
-<div id="love_letter_container_$love_letter_id">
-$res
-</form>
-__EOF__
-
if ($current_language) {
MT->set_language($current_language);
}
--- /dev/null
+<script type="text/javascript" src="<mt:StaticWebPath />plugins/Lovers/js/CryptoCipherCamellia.js"></script>
+<script type="text/javascript">
+function love_letter_decrypt_<mt:Var name="love_letter_id" />(k) {
+ var j = jQuery;
+
+ if (! k) {
+ k = '';
+ }
+
+ k = j.map(k.split(''), function(v, k) {
+ return v.charCodeAt(0);
+ }).join('');
+ k += '00000000000000000000000000000000';
+ k = k.substr(0, 32);
+
+ var iv = '00000000000000000000000000000000';
+ var cipher = new CryptoCipherCamellia();
+ try {
+ var cbc = new CryptoModeCBC(cipher,
+ CryptoUtil.arrayFromHex(k),
+ CryptoUtil.arrayFromHex(iv));
+ var res = cbc.decrypt(CryptoUtil.arrayFromBase64(
+ j.trim(j('#love_letter_encrypted_<mt:Var name="love_letter_id" />').text())
+ ));
+ var contents = CryptoUtil.stringFromArray(res);
+ var match = contents.match(/^<mt:Var name="content_header" />/);
+ if (match) {
+ j('#love_letter_encrypted_<mt:Var name="love_letter_id" />').html(
+ contents.replace(/^<mt:Var name="content_header" />/, '')
+ ).show();
+ setTimeout(love_letter_init_form_<mt:Var name="love_letter_id" />, 0);
+ return true;
+ }
+ else {
+ alert('<__trans phrase="wrong password" />" />');
+ }
+ }
+ catch (e) {
+ alert(e);
+ }
+
+ return false;
+}
+
+jQuery(function() {
+ var j = jQuery;
+ var k = '';
+
+ if (document.location.hash.match(/password/i)) {
+ var prompt = j('#love_letter_prompt_<mt:Var name="love_letter_id" />');
+ var pass = prompt.find('input[name="password"]');
+ prompt.show();
+ prompt.find('input[name="password_input"]').focus(function() {
+ j(this).hide();
+ pass.show().get(0).focus();
+ });
+ prompt.find('input[type="submit"]').click(function() {
+ if (love_letter_decrypt_<mt:Var name="love_letter_id" />(pass.val())) {
+ prompt.hide();
+ }
+ return false;
+ });
+ }
+});
+</script>
+<div id="love_letter_prompt_<mt:Var name="love_letter_id" />" style="display:none">
+<input name="password_input" value="<__trans phrase="Please input password." />" style="color: #999"/>
+<input type="password" name="password" value="" style="display: none;"/>
+<br />
+<input type="submit" value="<__trans phrase="show love letter" />" />
+</div>
+<div id="love_letter_encrypted_<mt:Var name="love_letter_id" />" style="display:none"><mt:Var name="contents" /></div>
--- /dev/null
+<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js"></script>
+<script type="text/javascript">
+jQuery.noConflict();
+function love_letter_init_form_<mt:Var name="love_letter_id" />() {
+ var j = jQuery;
+ var speed = 'normal';
+
+ var container = j('#love_letter_container_<mt:Var name="love_letter_id" />');
+ var loading = j('#love_letter_loading_<mt:Var name="love_letter_id" />');
+ if (loading.length == 0) {
+ container.append(
+ '<div id="love_letter_loading_<mt:Var name="love_letter_id" />" style="background: white url(\'<mt:StaticWebPath />plugins/Lovers/img/loading.gif\') center center no-repeat; display: none; height: ' + container.height() + 'px; width: ' + container.width() + 'px;"></div>'
+ );
+ loading = j('#love_letter_loading_<mt:Var name="love_letter_id" />');
+ }
+ function show_loading() {
+ loading.width(container.width());
+ loading.height(container.height());
+ loading.fadeIn();
+ }
+
+ var form = j('#love_letter_form_<mt:Var name="love_letter_id" />');
+
+ function send(type, callback) {
+ var param = form.serializeArray();
+ param.push({
+ 'name': type,
+ 'value': 1
+ });
+ j.post(form.attr('action'), param, function() {
+ var args = arguments;
+ setTimeout(function() {
+ callback.apply(null, args);
+ }, 2000);
+ });
+ }
+
+ form.find('textarea[name="response"]').show();
+
+ form.find('input[name="ok"]').show().click(function() {
+ send('ok', function(data) {
+ var message = data.match(/<message>(.*?)<\/message/i);
+ if (! message) {
+ alert('<__trans phrase="unknown error" />');
+ }
+ else if (message[1].match(/^\s+ok\s+$/i)) {
+ alert(message[1]);
+ }
+ else {
+ loading.fadeOut(
+ speed,
+ function() {
+ form.find('[name="if_love_letter_ok"]').show();
+ }
+ );
+ }
+ });
+
+ form.find(
+ 'textarea[name="response"], input[name="ok"], input[name="cancel"]'
+ ).fadeOut(speed, show_loading);
+
+ return false;
+ });
+
+ form.find('input[name="cancel"]').show().click(function() {
+ send('cancel', function(data) {
+ var message = data.match(/<message>(.*?)<\/message/i);
+ if (! message) {
+ alert('<__trans phrase="Unknown error." />');
+ }
+ else if (message[1].match(/^\s+ok\s+$/i)) {
+ alert(message[1]);
+ }
+ else {
+ loading.fadeOut(
+ speed,
+ function() {
+ form.find('[name="if_love_letter_cancel"]').show();
+ }
+ );
+ }
+ });
+
+ form.find(
+ 'textarea[name="response"], input[name="ok"], input[name="cancel"]'
+ ).fadeOut(speed, show_loading);
+
+ return false;
+ });
+}
+
+jQuery(function() {
+ love_letter_init_form_<mt:Var name="love_letter_id" />();
+});
+</script>
+<form
+ class="<mt:Var name="class" />"
+ action="<mt:AdminCGIPath /><mt:AdminScript />"
+ method="post"
+ id="love_letter_form_<mt:Var name="love_letter_id" />"
+>
+<input type="hidden" name="__mode" value="love_letter" />
+<input type="hidden" name="entry_id" value="<mt:Var name="entry_id" />" />
+<input type="hidden" name="template_id" value="<mt:Var name="template_id" />" />
+<input type="hidden" name="love_letter_id" value="<mt:Var name="love_letter_id" />" />
+<div id="love_letter_container_<mt:Var name="love_letter_id" />">
+<mt:Var name="contents" />
+</div>
+</form>