여분필드를 TXT 파일로 무한확장하는 스킨 > 그누보드5 스킨

그누보드5 스킨

좋은 댓글과 좋아요는 제작자에게 큰힘이 됩니다.

여분필드를 TXT 파일로 무한확장하는 스킨 정보

게시판 여분필드를 TXT 파일로 무한확장하는 스킨

첨부파일

txt_data.zip (29.0K) 64회 다운로드 2022-03-22 15:21:24 포인트 차감10
테스트한 버전5.5.4
호환 가능 버전5.4 이상

본문

대부분의 많은 유저들은 저렴한 웹호스팅을 이용하고 있는데 사실 웹호스팅은 제약이 많습니다.

특히 호스팅 회사에 따라 DB를 만지는 문제가 심히 고약해서 짜증이 날 때가 한 두번이 아니지요.

이 스킨은 따로 DB 를 핸들링하지 않고 게시글의 여분필드에 해당하는 정보를 텍스트 파일로 저장한 후

ajax 로 불러오는 형태를 취하고 있습니다.

그리고 그 확장력은 여분필드보다 훨씬 강력합니다.

 

----------

 

1. 첨부파일을 다운로드 받아 압축을 풀어줍니다. 두개의 폴더가 있습니다.

 

----------

 

2. wrdata 폴더는 그누루트로 업로드합니다. adm 폴더나 bbs 폴더 등과 동등한 항렬의 폴더여야 합니다.

이 폴더 안에는 wrdata_update.php 파일 하나만 들어 있습니다.

폴더를 업로드 한 후 디렉토리의 퍼미션을 반드시 707 로 바꾸어 주세요.

 

----------

 

3. txt_data_pc 폴더는 게시판의 pc용 스킨입니다. 모바일은 따로 응용해서 만드세요.

기본 basic 스킨으로 만들었습니다.

 

----------

 

4. write.skin.php 에서 제가 추가한 코드는

<!-- wittazzurri -->

추가코드

<!-- /wittazzurri -->

위와 같이 표현되어 있습니다.

글쓰기를 할 때에 5개의 input 가 있습니다.

이 input 는 1개로 줄여도 좋고 100개로 늘여도 상관이 없습니다.

단 아이디는 <input id=data_1> 이와같이 1부터 시작해야 하며

10개를 만든다면 중간에 빠지는 숫자 없이 1부터 10까지 아이디를 주어야 합니다.

name 은 필요 없습니다. type 는 라디오버튼이나 체크박스 등으로 바꾸어도 되구요.

css 나 style 은 본인들이 알아서 꾸며주세요.

이걸 여분필드처럼 원하는 문자나 숫자를 넣어줍니다.

이것으로 글쓰기 작성을 완료하면 그대로 땡입니다.

다만 주의사항이 있습니다. input 는 하나라도 있어야 합니다. 때문에 input 가 필요없는 경우는

<input type=hidden id=data_1> 의 형태로 하나만이라도 만들어 놓아야 삑사리가 나지 않습니다.

 

----------

 

5. view 에서 표현하기

뷰페이지에서는 html 태그로 표현합니다.

1번 정보는 <span class="_1"></span> 또는 <div class="_1"></div>

이와같이 데이터의 숫자대로 진공 엘레먼트를 만들고 언더바에 숫자를 붙이는 class 를 같이 넣어주면

페이지 로딩 후 빈 태그는 숫자대로의 정보로 채워지게 됩니다.

클래스로 처리하였기에 같은 정보를 몇번이나 사용해도 됩니다.

 

----------

 

6. html 로 표현되기 때문에 장점이 매우 많습니다. 대표적인 장점은

1) 게시글을 작성할 때 본문 안에도 넣을 수 있습니다. 에디터 모드에서 html 모드로 전환한 후

원하는 지점에 클래스를 기입한 진공 엘레먼트만 넣어주면 되겠지요.

2) html 이므로 유튜브 태그나 mp3 태그 및 mp4 태그를 input 에 기입하면 게시글 내에서 원하는 위치에

미디어를 삽입할 수 있습니다.

 

----------

 

7. 작동원리

1) txt 파일은 그누루트/wrdata/게시판명/wr_id.txt 로 저장됩니다.

wr_id 는 개별 게시글의 고유번호입니다. 게시글 작성 후 파일질라 등으로 확인해 보세요. 

2) 파일업로드 시점은 write 페이지에서 일어나지 않고 view 페이지에서 일어납니다.

그 이유는 최초 글쓰기시에는 wr_id 값이 확정되지 않은 상태이기 때문입니다.

물론 토탈값을 쿼리로 추출하여 더하기 1을 하면 되겠지만

나와 거의 동시에 게시글을 작성하는 사람이 있다면 순번이 바뀔 수도 있고 등등

오류의 위험이 있어서 아예 뷰페이지에서 업로드 로직을 넣었습니다.

3) 글쓰기 시에는 정보를 자바스크립트의 세션데이터에 담아서 뷰페이지로 넘깁니다.

넘길 때는 [|] 를 앞에 붙이면서 문자열을 분기하였습니다.

4) [|]을 뒤에 붙이지 않고 앞에 붙인 이유는 php의 explode 와 같은 역할을 하는

자바스크립트의 split 로 문자열을 분할할 때 0번을 버리고 1번부터 취하기 위함입니다.

1번부터 주어야 좀 덜 헷갈리니까요.

5) 라이트페이지에서 뷰페이지로 넘어간 정보는 최초 글쓰기시나 수정사항이 생길 경우에만

wrdata 의 wrdata_update.php 액션페이지로 넘어가면서 파일을 생성하거나 덮어씌우기 한 다음

뷰페이지로 돌아와 새로고침을 합니다.

6) 완성된 정보는 뷰페이지에 ajax 로 전송되어 원하는 정보를 class 이름으로 뿌려줍니다.

 

----------

 

8. 모바일 스킨의 경우 라이트페이지나 뷰페이지에서

<!-- wittazzurri -->/코드<!-- wittazzurri --> 하나의 블럭에 해당코드가 있으니

그대로 그 위치에 옮겨서 사용하세요.

 

----------

 

9. 보완사항

1) 게시글 삭제시 txt 파일은 같이 삭제되지 않습니다. 따라서 삭제 이벤트의 수정이 필요합니다.

이걸 고치기는 그리 어렵지 않으므로 회원님들께서 약간 수고를 해 주셔야 합니다.

2) input 글자에 [|] 가 들어가면 안 됩니다.

이건 input 의 onkeyup 이벤트에서 해당글자가 입력되면 빈 문자열로 치환하는 replace 로직을 본인들이 직접 넣어주셔야 합니다.

3) 첫째 둘째는 별로 어렵지 않지만 게시글 이동시 txt 파일의 디렉토리 위치와 wr_id 의 번호가 같이 바뀌는 코드는 많이 번거로운 작업이니 수고해 주시는 분이 있다면 저도 무임승차 하겠습니다.ㅋ

4) 조금 더 고급로직을 원하시는 분은 데이터를 저장할 때 json 형태로 치환시켜 저장하는 것도 강력할 것입니다.

 

----------

 

10. 그누순정 5.4 이상 크롬과 안드로이드 이외에서는 확인해 보지 않았습니다. 그리고 그 이외의 환경을 배려할 생각은 없습니다.

개인적으로 제가 배포한 스킨 중에서 회원님들께 가장 추천드리고 싶은 스킨입니다.

추천
20

댓글 전체

비타주니님은 못하는 게 없으십니다.
올려주신 스킨과 팁을 코드하나 하나 살펴보고 적용하곤 합니다.
물론 실력이 모자라 이해가 안되는 부분도 많지만요.
감사합니다.
선 추천
후 기다림~
뭔가 확장성이 높아 보이네요
글입력 시 체크박스로 다양하게 항목 체크해두고
글 목록 검색에서 적은 부하로 다양한 추출도 응용 가능할까요?
암튼 기대~
아니오 그런 건 아닙니다.ㅜㅠ
검색이 되는 대상은 제목이나 본문의 원래 정보입니다.
그건 이미 프론트로 넘어오기 전에 백에서 다 입력이 되어있는 거구요.
정보를 아작스로 땡길 때는 원래정보를 프론트에서 웹문서 로딩 후에 바뀌치기 하는 것이라 검색대상 자체가 되지 않습니다.
이 스킨은 게시글을 더 충실하고 풍족하게 꾸미는 스킨일 뿐이지 검색에 노출되게 하는 것과는 거리가 먼 스킨이에요.
원하시는 것을 구현하려면 어떤 경로를 거치거나 무조거 db에 저장을 시키거나 최초 웹문서 로딩과 동시에 일어나는 형태라야 합니다.

안 그러면 아작스를 동기식으로 바꿔야 하는데...
그럴 경우 결과는 나와도 크롬 관리자도구에서 경고창이 떠요.
너는 왜 아작스를 비동기식이 아니라 동기식으로 사용하고 있느냐는 질책성 메시지입니다.
커피 한잔 마시면서 생각해 보았는데
정보를 부를때 아작스로 땡기는 것이 아니라 curl 로 땡기면 되겠네요.
대신 본문을 출력할 때 지금 이 상태는 그대로 사용하면서 본문 출력 로직을 바꿔야 할 것 같습니다.

본문출력을
$wr_content = $wr_content."<div style=display:none>".curl정보."</div>";
이런 식으로요. 그럼 본문 검색에 노출 될 거에요.
아니요. 저는 컬을 끼울 생각이 없습니다.^^

저는 seo 나 검색 이런 것에는 제작의뢰가 아니면 정말로 정말로 관심이 없습니다.
컬을 끼우고 싶으시면 제가 지금 코드를 드릴게요.

<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, G5_URL."/wrdata/".$bo_table."/".$wr_id.".txt");    
curl_exec($ch);
curl_close($ch); 
?>

저 위에서 curl_exec($ch); 가 정보의 모든 내용입니다.
이 정보를 view.skin.php 에서 wr_content 에 저 정보를 합해 주는 로직을 선행을 시킨 후에 뷰페이지에서 다이렉트로 업뎃을 하십시오.
그럼 100% 검색에 반영됩니다.
음... 분명 보안상의 단점은 존재합니다. 하지만 그렇게 중요한 사항을 관리하는 홈페이지라면 서버 핸들링이 쉽지 않은 저가의 홈페이지가 아니라 직접 서버를 운영하는 체제를 갖추는 식이 되어야 하겠죠.
그럴 경우 텍스트파일에 정보를 담는 이런 우회방법은 의미 자체가 없겠지요.

그런데 제가 식견이 짧아서 그런지 모르겠지만 이것 때문에 모든 게시판을 누구나 볼 수 있다고 까지는 생각하지 못하겠는데요.ㅜㅠ
어떤 방식으로 권한을 가지지 못한 사람이 게시글을 볼 수 있는지 그 방법을 좀 설명해 주시길요.
세상에서 제일 좋은 것이 경제력이 있는 와이프더라구요.
적당히 구미만 맞추어주면 코딩을 직업이 아니라 취미로 즐길 수 있는 행복이 보장됩니다.ㅋ
그누 스킨은 만지면 만질수록 재미가 있어서 끊지를 못하겠네요.
처음 올라왔을때 어디에 어떻게 사용하는 물건인지 몰라서 인사말만 남겼다가 오늘 이벤트 스킨 검색하다가 여기 다시왔습니다. 그리고 찾던것 보다 이 스킨이 뭔지 궁금해서 설치히고 설명을 5번 정도 정독하니 대략적으로 어떤 의미인지 알것 같은데요. 제가 이해한게 맞는지 한번 봐주세요.

게시판 글쓰기할때 input 값으로 넣을 수 있게 되어 있다.
> 현재 기본은 5개 만들어져 있지만 무한 확장 가능(축소/증가)
> 1번째칸(input)에 내가 원하는 것을 넣은 후 글쓰기 html 모드에서 진공코드를 넣으면 내가 위에서 입력한 값이 나온다.
* 진공코드란: <span class="_1"></span> 또는 <div class="_1"></div>
> html 모드에서 글쓰기로 진공코드를 내가 원하는 위치에 삽입하면 되는데 class형태로 되어 있기 때문에 글쓸때 몇번을 넣어도 상관없다.


[예시 및 응용동작]
게시물을 포스팅 할때 글 소제목 앞에 공통으로 이미지(▣)를 아래와 같이 넣어야 할경우
▣를 input 1에 입력 해 두고 진공코드만 글쓰기 할때 넣어주면 아래와 같이 노출된다


▣ 소제목1
----
----

▣ 소제목2
----
----

▣ 소제목3
----
----
[제안]
글쓰기 할때 응용하면 효율적일 것 같습니다. 이런건 어떨까요?
테스트 하다가 생각나서 적습니다.부담 드릴 생각은 전혀 없습니다. ^^

input에 매번 입력하는 것도 좋지만 고정으로 css style을 넣어두고 글을쓸때 내가 원하는 스타일을 불러오는것 입니다.
input1에 녹색박스 sytle 의 css 값을 넣어두고
input2에 빨간색 글제목 sytle 의 css 값을 넣어두고
input3에 초록색박스 sytle 의 css 값을 넣어두고

글을 쓰다가 스타일을 넣고 싶을때 위에 저장되어 있는 스타일을 클릭하면 자동으로 입력 되어 편하게 사용한다.

이렇게 응용도 가능 하지 않을까요?
전체 2,423 |RSS
그누보드5 스킨 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT