용산철거민살인진압규탄
Monologue

MovableType Valid XHTML 1.1

2007년 02월 16일  오후 12시 36분

XHTML 1.0 Transitional에 맞춰져 있는데 이것을 XHTML 1.1로 바꾸려면 코멘트 템플릿에서 form 부분을 수정해야 합니다.

XHTML 1.0 Strict 부터는 form 속성에서 id만 유효하고 name이 없어졌는데 MovableType은 name값을 가지고 모든 것을 처리 합니다. 이 name을 id로 바꿨을 때, MovableType에서 쿠키를 읽어 들이지 못하는 문제가 발생합니다. 게다가 제 경우는 코멘트에 Dynamic Comment Previewing과 작은 에디터를 사용하고 있는데 이것 역시 쿠키 값을 기본으로 하기 때문에 이에 대한 해결책이 꼭 필요했습니다. XHTML 1.1 유효성 통과하자고 그간 만들어 놓은 것을 죄다 버릴 수는 없는 일이니까요.


이 문제를 해결하기 위한 방법입니다.


1. form에서 name을 id로 바꿔 줍니다.
<form method="post" action="<$MTCGIPath$><$MTCommentScript$>"
name="comments_form" onsubmit="if (this.bakecookie.checked) rememberMe(this)">
이 부분 에서 name="comments_form"id="comments_form"으로 바꿔줍니다.


2. <form method="post"..... > .....템플릿 내용.........</form> 을
<form ....><div> ........템플릿 내용.........</div></form>처럼 div를 넣어 줍니다. 혹은 <p>로 대신 해도 됩니다.

을 사용할 경우는 form이 두 번에 걸쳐서 나오고 기본 템플릿에서는 한 번 나옵니다.


여기까지만 하면 기본 템플릿에서는 을 통과하게 됩니다.

그런데 문제는 쿠키가 동작을 안 하게 되는 것입니다. 별 짓을 다 하다가 확 컴퓨터를 뽀샤버릴 즘에 Dynamic Comment Previewing에서 힌트를 얻어 쿠키설정 자바스크립트 소스를 수정했더니 잘 됩니다.


결론은 </MTEntryIfCommentsOpen> 다음에 아래 코드를 넣어줍니다.


어느 버전부터인지는 모르지만, mt-site.js 파일에 위 속성이 들어갔는데, 살펴보면 한 군데가 틀려졌습니다. 생각해보면 당연한 것인데, 자바스크립트에 무지하다보니 이걸 알아내는 데 종일 삽질을 해댔습니다.

document.comments_form.email.value = getCookie("mtcmtmail");

에서 comments_form.emailgetElementById('email')로 바꿔준 것입니다.

document.getElementById('email').value = getCookie("mtcmtmail");

mt-site.js내에서 수정을 하셔도 좋고, 템플릿 </MTEntryIfCommentsOpen> 다음에 위의 자바스크립트 소스를 그냥 가져다 붙여도 됩니다.

여기까지면 MovableType 기본 템플릿에서 코멘트가 제대로 동작하고, XHTML 1.1유효성 검사도 통과할 수 있습니다.



여기서부터는 Dynamic Comment Previewing작은 에디터를 사용할 경우에 수정해야 할 부분입니다.


Dynamic Comment Previewing 의 자바스크립트 소스에서
document.comments_form.comment-author.value;
부분을 찾아 document.getElementById('comments_form').author.value; 게 바꿔줍니다.

작은 에디터에서도 마찬가지로
onclick="return formatStr(document.comments_form.text, \'strong\')"
이 부분을
onclick="return formatStr(document.getElementById( \'comments_form\' ).text, \'strong\')" 게 수정해 줍니다.  총 6군데가 있을 것입니다.

이제는 Dynamic Comment Previewing과 작은 에디터를 즐기면서(?) XHTML 1.1 유효성 검사를 통과할 수 있을 것입니다.

 

» Dynamic Comment Previewing from The imperfect is our paradise
코멘트 미리보기 페이지를 따로 설정하지 않고 코멘트 할 때 바로 확인할 수 있게 나타내주는 스크립트 입니다. Gravatar 플러그인도 있지만 간략한 스크립트를 추가해주는 것이 더욱 유용하리라 봅니다. Learning MovableType에 소개가 되어 있습니다....
Tracked on 2007년 03월 29일  오전 11시 01분  Read More
» MovableType ATOM 1.0 and RSS 2.0 valid from The imperfect is our paradise
FEED Validator의 축하 메시지를 받기 위해 고생이 필요했습니다. 다름아닌 ATOM 1.0 때문입니다. 리터럴 에러를 무슨 수로 없앨까 궁리를 많이 하게 되었는데 신기하게도 어찌어찌 하다보니 해결되었습니다. 디폴트 ATOM 템플릿은 에러가 없어야 하는 것...
Tracked on 2007년 04월 14일  새벽 04시 08분  Read More

TrackBack URL : http://antimine.kr/mt-tb.cgi/604.

Category : Monologue
Recent Tag Cloud
Cutoff Parameter: -3 -1 +1 +3 0
Tags


oogle  AJAX Search