권한에 따라 에디터와 일반 글쓰기 동시 사용하기

· 2005-07-30 (토) 10:11:11 · 5581 · 9
게시판 설정에서 html사용권한 이라는 부분이 있습니다
이름 그대로 설정 권한 이상이여야만 html태그를 쓸 수 있게 하는 기능이죠.

이 기능을 이용하면 일반 글쓰기폼과 cheditor 글쓰기폼 둘 다 사용할 수 있습니다만
기본 cheditor스킨에서는 이건 무시하고 무조건 cheditor를 돌리도록 되어있죠.

스킨을 수정하면 간단합니다.


05년 7월 30일자로 다운받을 수 있는 그누4 최신버젼에 들어있는 기본 cheditor 스킨을 예로 설명합니다.


수정해야될 파일은 write.skin.php 입니다


맨 위

include_once("$g4[path]/lib/cheditor.lib.php");

if ($w == 'r') $content = '';


부분을


if ($is_html) {
include_once("$g4[path]/lib/cheditor.lib.php");

if ($w == 'r') $content = '';
}

로 수정

--------------------------------------------------------------------------------------------------


<script src="<?=$g4[editor_path]?>/cheditor.js"></script>
<?=cheditor1('wr_content', $write[wr_content]);?>

부분을

<? if ($is_html) { ?>
<script src="<?=$g4[editor_path]?>/cheditor.js"></script>
<?=cheditor1('wr_content', $write[wr_content]);?>
<? } ?>

로 수정



--------------------------------------------------------------------------------------------------

<?/* if ($is_html) { ?><INPUT onclick="html_auto_br(this);" type=checkbox value="<?=$html_value?>" name="html" <?=$html_checked?>><span class=w_title>HTML</span> <? } */?>
<input type='hidden' name='html' value='html1'>


부분을


<? if (!$is_html) { ?><INPUT onclick="html_auto_br(this);" type=checkbox value="<?=$html_value?>" name="html" <?=$html_checked?>><span class=w_title>HTML</span> <? } else { ?>
<input type='hidden' name='html' value='html1'>
<? } ?>


로 수정

--------------------------------------------------------------------------------------------------


<tr>
<td style='padding-left:20px; height:30px;'>· 제목</td>
<td><input class=ed style="width:100%;" name=wr_subject itemname="제목" required value="<?=$subject?>"></td></tr>
<tr><td colspan=2 height=1 bgcolor=#e7e7e7></td></tr>

부분 바로 아래 다음을 추가


<? if(!$is_html) { ?>
<tr>
<td style='padding-left:20px; height:30px;'></td>
<td>
<table border=0 cellpadding=0 cellspacing=0 width=95%>
<tr>
<td><span style="cursor: pointer;" onclick="textarea_decrease('wr_content', 10);"><img src="<?=$board_skin_path?>/img/up.gif"></span>
<span style="cursor: pointer;" onclick="textarea_original('wr_content', 10);"><img src="<?=$board_skin_path?>/img/start.gif"></span>
<span style="cursor: pointer;" onclick="textarea_increase('wr_content', 10);"><img src="<?=$board_skin_path?>/img/down.gif"></span></td>
<td align=right><? if ($write_min || $write_max) { ?><span id=char_count></span>글자<?}?></td>
</tr>
</table>
</td></tr>
<tr><td colspan=2 height=1 bgcolor=#e7e7e7></td></tr>
<? } ?>


--------------------------------------------------------------------------------------------------

<?=cheditor2('fwrite', 'wr_content', '100%', '350');?>

부분을

<? if($is_html) { ?>
<?=cheditor2('fwrite', 'wr_content', '100%', '350');?>
<? } else { ?>
<textarea id=wr_content name=wr_content class='tx' style='word-break:break-all;width:95%' rows=20 itemname="내용" required
<? if ($write_min || $write_max) { ?>onkeyup="check_byte('wr_content', 'char_count');"<?}?>><?=$content?></textarea>
<? if ($write_min || $write_max) { ?><script language="javascript"> check_byte('wr_content', 'char_count'); </script><? } ?>
<? } ?>

로 수정

--------------------------------------------------------------------------------------------------

if (char_min > 0 || char_max > 0)
{
var cnt = parseInt(document.getElementById('char_count').innerHTML);
if (char_min > 0 && char_min > cnt)
{
alert("내용은 "+char_min+"글자 이상 쓰셔야 합니다.");
return;
} else if (char_max > 0 && char_max < cnt)
{
alert("내용은 "+char_max+"글자 이하로 쓰셔야 합니다.");
return;
}
}

부분을


<? if(!$is_html) { ?>
if (char_min > 0 || char_max > 0)
{
var cnt = parseInt(document.getElementById('char_count').innerHTML);
if (char_min > 0 && char_min > cnt)
{
alert("내용은 "+char_min+"글자 이상 쓰셔야 합니다.");
return;
} else if (char_max > 0 && char_max < cnt)
{
alert("내용은 "+char_max+"글자 이하로 쓰셔야 합니다.");
return;
}
}
<? } ?>

로 수정
--------------------------------------------------------------------------------------------------


<?=cheditor3('wr_content');?>

부분을

<? if ($is_html) echo cheditor3('wr_content'); ?>

로 수정





--------------------------------------------------------------------------------------------------
원리는 간단합니다.
두 글쓰기폼을 동시에 두고 html사용권한에 따라 두 부분중 선택 적용 하는것이죠.

이렇게 바꿀 경우 예를들어 html권한을 2로 하면 비회원은 일반글쓰기폼
회원은 cheditor 글쓰기폼을 사용할 수 있습니다

기존처럼 모두에게 에디터를 쓰게 한다면 html권한 1로 놓으면 되겠고
관리자를 제한 모두에게 텍스트모드만 쓰게 한다면 html권한 10으로 하면 되겠죠?


*위 내용대로 수정된 파일 첨부합니다.

첨부파일

write.skin.php (9.6 KB) 45회 2005-07-30 10:11
|

댓글 9개

알려드립니다
2005-07-30 (토) 10:54:13
test
teset
2005-08-02 (화) 23:55:36
이거 저는 처음에 흥분해서 팁을 바로 적용했다가 제가 원하는 것이 아니라는 것을 알고 뒤늦게 실망했지요. 제가 원하는 것은 회원등급에 따라 에디터와 일반 글쓰기가 나누어지는 것이 아니라 누구나 에디터든 일반 글쓰기든지 선택할 수 있는 자유선택권을 갖는 겁니다.
'고냉이'님께서 서두에 밝히셨는데, 읽어보지 않으셨던가요?

> 게시판 설정에서 html사용권한 이라는 부분이 있습니다
> 이름 그대로 설정 권한 이상이여야만 html태그를 쓸 수 있게 하는 기능이죠.
> 이 기능을 이용하면 일반 글쓰기폼과 cheditor 글쓰기폼 둘 다 사용할 수 있습니다만
> 기본 cheditor스킨에서는 이건 무시하고 무조건 cheditor를 돌리도록 되어있죠

즉, 권한(회원레벨에 의해 제어되는)에 따른 선택적 입력폼을 사용하는 팁입니다.

> 이거 저는 처음에 흥분해서 팁을 바로 적용했다가 제가 원하는 것이 아니라는 것을 알고 뒤늦게 실망했지요. 제가 > 원하는 것은 회원등급에 따라 에디터와 일반 글쓰기가 나누어지는 것이 아니라 누구나 에디터든 일반 글쓰기든지 > 선택할 수 있는 자유선택권을 갖는 겁니다. 이거 저는 처음에 흥분해서 팁을 바로 적용했다가 제가 원하는 것이 아> 니라는 것을 알고 뒤늦게 실망했지요. 제가 원하는 것은 회원등급에 따라 에디터와 일반 글쓰기가 나누어지는 것> 이 아니라 누구나 에디터든 일반 글쓰기든지 선택할 수 있는 자유선택권을 갖는 겁니다.

이 부분과는 전혀 의미가 다른 내용이군요.
'고냉이'님 게시물에는 그 어떤 부분에도 직전에 상기한 바와 같은 내용은
언급되지 않았습니다.

> 제가 원하는 것은 회원등급에 따라 에디터와 일반 글쓰기가 나누어지는 것이 아니라 누구나 에디터든 일반 글쓰기> 든지 선택할 수 있는 자유선택권을 갖는 겁니다.

>> 기존 gnu3.xx 버전에서 이미 배포된 스킨이 있습니다.
>> 찾아보시고 그런 말씀을 하시기 바랍니다.
>> 혹시라도 찾아보셨는데, 그런 자료를 'g4로 컨버팅 할 수 없겠는가?!'라는 질문내용이
>> 원하는 내용에 좀 더 직접적으로 접근할 수 있는 부분이라고 보여집니다만...
나스카님께서 부연설명을 잘 해주셨네요
두 폼을 선택적으로 쓰려면 글쓰기 버튼 하나 더 맹글고 버튼에서 변수 하나를 맹글어 넘겨 주면 간단하게 될것같으니 그다지 어렵지는 않습니다.
내일쯤 팁 올려 드릴게요(친절한 고냉씨 ? ㅎㅎ)
권한에 따라 에디터와 일반 글쓰기 동시 사용하기
고맙습니다 ^^
ㄳㄳ
감사합니다 ^^
댓글을 작성하시려면 로그인이 필요합니다.

그누4 팁자료실

3,309건

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요. 나누면 즐거움이 커집니다.

+
제목 글쓴이 날짜 조회
05-08-02 조회 4,836
05-08-02 조회 6,279
05-08-02 조회 7,911
05-08-02 조회 3,851
05-07-31 조회 5,494
05-07-31 조회 4,051
05-07-30 조회 5,582
05-07-27 조회 1.1만
05-07-24 조회 6,242
05-07-23 조회 3,902
05-07-23 조회 3,402
05-07-23 조회 6,285
05-07-22 조회 1.5만
05-07-22 조회 4,251
bbbking
05-07-22 조회 5,713
05-07-21 조회 8,965
05-07-21 조회 3,637
05-07-20 조회 4,648
05-07-18 조회 5,440
05-07-15 조회 7,483