OSDN Git Service

Separated HTML to the file.
authorTaku Amano <taku@toi-planning.net>
Tue, 7 Jul 2009 08:22:01 +0000 (17:22 +0900)
committerTaku Amano <taku@toi-planning.net>
Wed, 2 Sep 2009 03:07:43 +0000 (12:07 +0900)
lib/Lovers/App/LoveLetter.pm
tmpl/loveletter_encrypt.tmpl [new file with mode: 0644]
tmpl/loveletter_script.tmpl [new file with mode: 0644]

index 1fc4b26..108b06e 100644 (file)
@@ -181,199 +181,29 @@ sub _hdlr_love_letter {
                        $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);
        }
diff --git a/tmpl/loveletter_encrypt.tmpl b/tmpl/loveletter_encrypt.tmpl
new file mode 100644 (file)
index 0000000..0d7df6f
--- /dev/null
@@ -0,0 +1,72 @@
+<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>
diff --git a/tmpl/loveletter_script.tmpl b/tmpl/loveletter_script.tmpl
new file mode 100644 (file)
index 0000000..116154a
--- /dev/null
@@ -0,0 +1,110 @@
+<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>