Wiki의 늦바람에 빠져서 왠만한 자료들과 메모 사항을 모두 Dokuwiki에 작성하여 저장하고 있다. (남들은 원노트나 에버노트를 많이 활용하던데, 내 생활 패턴안에서는 Dokuwiki로도 충분한 듯 하다.) 주로 윈도우나 맥 환경에서 작성을 하고 외부에서는 필요하면 아이폰이나 아이패트를 활용하여 검색을 하는데, 하나 불편한 것이 있다면 아이폰에서 Dokuwiki에 로그인하고 검색하는 창이 너무 작아 보기가 힘들고 불필요한 작업이 많아 번거롭다는 것이다. 그림으로 한번 볼까?

왼쪽의 그림이 사파리에서 본 내 Dokuwiki 화면이다.. 음.. 로그인은 어디있을까? 열심히 두손가락을 놀려야 한다. 그리고 아이디 치고 패스워드 치고.. 그리고 검색은 어디에 있을까?

처음에는 별 불편한 생각이 안들었는데, 한번씩 바쁜데, 손가락으로 늘리고 있으니 참 한심하다는 생각이 들었다. 그리고  제일 많이 하는 실수는 Dokuwiki 상에서 검색을 해야 하는데 위쪽에 구글에서 검색을 해서 Dokuwiki로 다시 접속하는 짓을 하는 경우이다.. 


 이것에 대한 아주 쉬운 대안은 템플릿을 모바일 전용으로 셋팅하는 것이다. 하지만, 이것은 글자가 커지는 대신에 전체적인 화면구성이 원래 보던 것들과 달라질 수 있다.  그래서 모바일 전용으로 만드는 것은 싫다. 나는 순정이 좋다. ^^

 
 그러면 어떻게 할 것인가?  차근차근 하나씩 해결을 해나가자.. 일단 로그인부터 쉽게 처리해보자. 


 작년에 아이폰을 처음 사고 Dokuwiki를 셋팅할 때 알게되었는데 Dokuwiki의 로그인을 자동화할 수 있는 링크가 있다. http header을 보니깐 암호화도 안하고 그냥 get방식으로 보내더라. 보안은 밥에 말아서 먹자. 

dokuwiki에 직접 로그인 하는 Url은 다음과 같다. 다시한번 강조하지만 보안은 밥말아 먹었다. 

 ht_tp://위키주소/doku.php?id=start&do=login&u=아이디&p=비번

 자 이제 아이폰에서 위의 주소를 치면 로그인된 WIKI가 뜰 것이다. 그리고 홈스크린에 등록하기 하면 홈스크린에 아이콘이 하나 생기고 그거 클릭하면 WIKI에 로그인된 화면이 바로 뜬다.



 음.. 한 일년은 이렇게 썼다.. 그땐 자료가 별로 없었던 때.. 이제 방대한 자료가 쌓이다 보니.. 검색이 중요해 졌다. 검색할려면 핀치해서 또 키워야 한다. 검색을 쉽게 할 수 있는 방법은 없을까?  10분만에 jQuery  mobile 를 이용하여 뚝딱 만들었다. ajax를 이용하여 로그인을 한다. 

 방식은 간단하다.    내가만든 페이지에서 검색어를 치고 GO하면   => ajax로 wiki로그인 => wiki로 search 파라미터 전달 => 검색된 wiki페이지 로딩

jQuery Mobile에서 form을 사용하게 되면 기본적으로 AJAX로 쿼리를 날린후 결과를 WebApp안에 Attach하는 방식으로 작동한다. 내 경우는 wiki 페이지로 화면이 바뀌어야 하니깐 form문 안에다가 꼭 data-ajax='false'의 파라미터를 써서 form의 전송시 페이지가 전환되도록 해야 한다. 

그리고.. 아이폰에서 apple-mobile-web-app-capable 속성을 줘서 화면상단의 주소줄과 아래의 버튼을 없애고. 아이콘의 이미지를 등록시켜서 홈스크린에 예쁘게 프로그램이 등록될 수 있게 한다. 

 자 그러면..  두둥~! 아래와 같다.. Mobile wiki for 4D의 디자인은 참.. 공돌이 티가 팍팍난다. jQuery Mobile 기본 테마다... 괜찮아~~ 나 혼자 쓸텐데뭐... 소스코드는... 밥말아 먹을 보안문제가 있어서 공개하면 좀 그렇다. 리플로 요청하면 드리지요~!

 약간의 보안규칙을 넣는다면, Header의 User-agent는 아이폰이나 아이패드만 받아주고, wiki 로그인 코드를 암호자체 암호화해서 넘겨주면 서버에서 암호화해서 다시 로그인 한다던지(물론, wiki 로그인할 때 보안을 밥말아 먹겠지만..) 뭐.. 그런식으로 강화하면 될듯.. 아직 안했다. 그래서 소스코드를 공개 못하겠다. 홍홍...

 막상 쓰니깐 맘에 든다.. 

 




  
 
 
Posted by 4D :

Connected by DNS server, DNS service