<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
	<channel>
				<title><![CDATA[Kboard(케이보드) 읽기 및 쓰기 권한 관련하여 질문입니다.]]></title>
		<link>https://www.cosmosfarm.com/threads/rss/document/41620</link>
		<description><![CDATA[<p>안녕하세요, 좋은 제품 항상 잘 쓰고 있습니다.</p>

<p>현재 저는 코스모스팜 회원관리 플러그인 그리고 케이보드를 함께 사용하고 있습니다. </p>

<p>최근에 케이보드에 쓴 글을 '특정 역할(Role)'을 가진 분들만 읽도록 변경하고자 합니다.</p>

<p>이는 워드프레스 관리자 패널에 있는 케이보드에 들어가면 가능한 것으로 확인되었습니다.</p>

<p>아래 사진처럼 '<strong>Permission</strong>' 에 있는 '<strong>읽기 권한</strong>'에서 특정 역할(Role)을 선택하면 되기 때문입니다.</p>

<p>하지만 여기서 한 가지 궁금한 점이 있습니다.</p>

<p>저는 케이보드에 쓰는 글 중 <strong>카테고리가 '공지사항'인 것은 역할에 상관없이 누구나 읽을 수 있도록 하고 싶습니다.</strong></p>

<p>즉, 모든 글은 '읽기 권한'을 통하여 관리자와 구독자만 읽을 수 있도록 하고 오로지 카테고리가 '공지사항'으로 분리되는 글만 역할에 상관없이 읽을 수 있도록 하고 싶습니다.</p>

<p>현재 시스템에서 이것이 가능할까요?</p>

<p>가능하지 않다면, 유료 기술 지원으로라도 이 기능을 구현하고 싶은데 그것은 가능할까요?</p>

<p>____</p>

<p>케이보드 관련 질문이 하나 더 있어 여기에 덧 붙입니다.</p>

<p>현재 저는 케이보드에 글을 쓸 수 있는 사람을 '로그인을 한 사람'으로 설정해두었습니다.</p>

<p>따라서 비 로그인자가 글쓰기를 누르면 아래 사진 같이 '권한이 없습니다.'라는 말일 뜨면서 로그인 페이지로 넘어갑니다.</p>

<p>저는 이 '권한이 없습니다.' 라는 문구를 '로그인이 필요합니다.' 라는 문구로 바꾸고 싶습니다.</p>

<p>어떻게 하면 가능할까요?</p>

<p> </p>

<p>항상 감사드립니다.</p>]]></description>
		<copyright>Copyright 2026, 코스모스팜</copyright>
				<item>
			<title><![CDATA[안녕하세요.

is_user_logged_in 함수로 로그인 여부를 체크하기 때문에

다른 방법으로 체크를 해보셔...]]></title>
			<link>https://www.cosmosfarm.com/threads/document/41772</link>
			<description><![CDATA[<p>안녕하세요.</p>

<p>is_user_logged_in 함수로 로그인 여부를 체크하기 때문에</p>

<p>다른 방법으로 체크를 해보셔야 할 듯합니다.</p>

<p><a href="https://developer.wordpress.org/reference/functions/wp_get_current_user/" target="_blank">wp_get_current_user</a> 함수 등을 활용해서 사용자 역할을 체크해보시겠어요?</p>

<p>아래 관련 링크를 참고해보세요.</p>

<p><a href="https://wordpress.stackexchange.com/questions/5047/how-to-check-if-a-user-is-in-a-specific-role" target="_blank">https://wordpress.stackexchange.com/questions/5047/how-to-check-if-a-user-is-in-a-specific-role</a></p>

<p>고맙습니다.</p>]]></description>
			<author>스레드봇</author>
			<pubDate>Wed, 11 Mar 2020 00:06:25 +0000</pubDate>
			<category>KBoard</category>
		</item>
				<item>
			<title><![CDATA[안녕하세요, 말씀하신 부분을 수정하니 공지시항을 모두 볼 수 있게 되었습니다.

정말 감사합니다.

마...]]></title>
			<link>https://www.cosmosfarm.com/threads/document/41762</link>
			<description><![CDATA[<p>안녕하세요, 말씀하신 부분을 수정하니 공지시항을 모두 볼 수 있게 되었습니다.</p>

<p>정말 감사합니다.</p>

<p>마지막으로 하나만 더 여쭙고 싶습니다.</p>

<p>현재 저는 포럼 게시판을 읽을 수 있는 권한을 관리자와 구독자에게만 주었습니다. (아래 사진 참조)</p>

<p><a href="https://imgur.com/mFswj7P">https://imgur.com/mFswj7P</a></p>

<p> </p>

<p>그래서 알려주신 코드를 사용하여 <strong>비로그인자가 포럼 게시판을 클릭</strong>했을 때,</p>

<p>"구독자만 볼 수 있습니다." 라는 문구가 나오도록 만들었습니다. (아래 코드 참조)</p>

<pre>
<code class="language-php">add_action('kboard_skin_header', 'kboard_skin_header_2020_03_09', 10, 1);
function kboard_skin_header_2020_03_09($builder){
	$board = $builder-&gt;board;
	if($board-&gt;id == '1' &amp;&amp; kboard_mod() == 'editor' &amp;&amp; !is_user_logged_in()){ // 실제 게시판 id로 적용해보세요.
		add_filter('gettext', 'gettext_2020_03_09', 10, 3);
	}
}

function gettext_2020_03_09($translated_text, $text, $domain){
	if($domain == 'kboard'){
		switch ($translated_text){
			case '권한이 없습니다.': $translated_text = '구독자만 볼 수 있습니다.'; break;
		}
	}

	return $translated_text;
}</code></pre>

<p> </p>

<p>그런데, 문제는<strong> '로그인을 한 사용자'가 포럼 게시판을 클릭했을 때는 여전히 '권한이 없습니다.' 라고 나온다는 것 입니다.</strong></p>

<p>로그인을 한 사용자에게도 '권한이 없습니다.'가 아니라 '구독자만 볼 수 있습니다.' 라고 나오게 할 수 있을까요?</p>

<p>항상 감사드립니다!</p>]]></description>
			<author>yoois</author>
			<pubDate>Tue, 10 Mar 2020 18:12:04 +0000</pubDate>
			<category>KBoard</category>
		</item>
				<item>
			<title><![CDATA[최신 버전의 KBoard 플러그인에는 올려주신 것처럼

아래의 코드로 적용되어 있습니다.


$allow_docume...]]></title>
			<link>https://www.cosmosfarm.com/threads/document/41752</link>
			<description><![CDATA[<p>최신 버전의 KBoard 플러그인에는 올려주신 것처럼</p>

<p>아래의 코드로 적용되어 있습니다.</p>

<pre>
<code class="language-php">$allow_document = false;
		if(!$content-&gt;isReader()){
			if($this-&gt;board-&gt;permission_read != 'all' &amp;&amp; !is_user_logged_in()){</code></pre>

<p>위의 코드를 찾아서</p>

<p>아래의 코드로 교체해서 확인해보시겠어요?</p>

<pre>
<code class="language-php">$allow_document = false;
if($content-&gt;notice){
	$allow_document = true;
}
else if(!$content-&gt;isReader()){
	if($this-&gt;board-&gt;permission_read != 'all' &amp;&amp; !is_user_logged_in()){</code></pre>

<p>고맙습니다.</p>]]></description>
			<author>스레드봇</author>
			<pubDate>Tue, 10 Mar 2020 08:38:20 +0000</pubDate>
			<category>KBoard</category>
		</item>
				<item>
			<title><![CDATA[안녕하세요! 

말씀하신 부분을 찾아보니 제가 builderOrder 메소드를 고친 것으로 확인했습니다.

그래...]]></title>
			<link>https://www.cosmosfarm.com/threads/document/41751</link>
			<description><![CDATA[<p>안녕하세요! </p>

<p>말씀하신 부분을 찾아보니 제가 builderOrder 메소드를 고친 것으로 확인했습니다.</p>

<p>그래서 원래대로 되돌린 후, builderDocument 메소드 쪽을 수정하려고 하였는데 다음과 같은 어려움을 발견했습니다.</p>

<p>말씀해주신 링크에 있는 설명에 따르면, 아래와 같은 코드를 찾아야 합니다.</p>

<pre>
<code class="language-php">public function builderDocument(){

...

$allow_document = false;
if(!$this-&gt;board-&gt;isReader($content-&gt;member_uid, $content-&gt;secret)){

...

}</code></pre>

<p>그런데, 제가 builderDocument 메소드 쪽에서 찾은 코드는 아래와 같습니다.</p>

<pre>
<code>public function builderDocument(){

...


$allow_document = false;
if(!$content-&gt;isReader()){
if($this-&gt;board-&gt;permission_read != 'all' &amp;&amp; !is_user_logged_in()){

...

</code></pre>

<p>즉, &lt;$allow_document = false;&gt; 이 부분을 찾아서 고칠 수는 있겠는데, 아래에 있는 조건문이 링크에 걸린 것과 제가 가지고 있는 KBoardBuilder.class.php 파일에서 다르게 나와, 어떤 IF 앞에 else를 붙여야 하는지 모르겠습니다ㅠㅠ.</p>

<p>이 부분을 어떻게 해결하면 좋을까요? 감사합니다!</p>]]></description>
			<author>yoois</author>
			<pubDate>Tue, 10 Mar 2020 08:32:01 +0000</pubDate>
			<category>KBoard</category>
		</item>
				<item>
			<title><![CDATA[안녕하세요.

저희 쪽 테스트 서버에서는

이전 댓글에 안내해드린 링크의 코드를 적용했을 때

읽기권...]]></title>
			<link>https://www.cosmosfarm.com/threads/document/41742</link>
			<description><![CDATA[<p>안녕하세요.</p>

<p>저희 쪽 테스트 서버에서는</p>

<p>이전 댓글에 안내해드린 링크의 코드를 적용했을 때</p>

<p>읽기권한이 설정되어 있더라도 공지사항은 비회원 사용자도 볼 수 있는 것을 확인했습니다.</p>

<p>builderOrder 메소드에도 비슷한 코드가 있습니다.</p>

<p>builderDocument 메소드 쪽을 수정하신 게 맞는지요? </p>

<p> </p>

<p>KBoardBuilder.class.php 파일 전체가 아닌 수정하신 부분을</p>

<p>에디터의 코드 스니펫 삽입 기능으로 올려주시겠어요?</p>

<p>고맙습니다.</p>]]></description>
			<author>스레드봇</author>
			<pubDate>Tue, 10 Mar 2020 07:39:01 +0000</pubDate>
			<category>KBoard</category>
		</item>
				<item>
			<title><![CDATA[안녕하세요, 답변 감사드립니다.

글쓰기 버튼에 관련한 질문은 알려주신 코드로 해결하였습니다.

그런...]]></title>
			<link>https://www.cosmosfarm.com/threads/document/41733</link>
			<description><![CDATA[<p>안녕하세요, 답변 감사드립니다.</p>

<p>글쓰기 버튼에 관련한 질문은 알려주신 코드로 해결하였습니다.</p>

<p>그런데 케이보드 읽기 권한에 대한 부분이 제대로 작동하지 않습니다.</p>

<p>제가 설정한 케이보드 읽기 권한은 아래 이미지와 같습니다.</p>

<p>알려주신 링크(<a href="https://www.cosmosfarm.com/threads/document/17272" target="_blank">https://www.cosmosfarm.com/threads/document/17272</a>) 대로 코드를 변경하였으나, 여전히 공지사항을 '모든 사람'이 볼 수 없게 되어 있습니다.</p>

<p>즉, 여전히 '공지사항'은 제가 설정한 읽기 권한대로 구독자와 관리자만 볼 수 있습니다ㅠㅠ</p>

<p>코드를 분명히 제대로 고쳤는데 어떻게 된 것일까요ㅠㅠ! 원하신다면 KBoardBuilder.class.php를 보내드릴 수도 있습니다.</p>

<p>감사합니다!</p>]]></description>
			<author>yoois</author>
			<pubDate>Tue, 10 Mar 2020 05:40:41 +0000</pubDate>
			<category>KBoard</category>
		</item>
				<item>
			<title><![CDATA[안녕하세요~^^

KBoard 플러그인에서 공지사항은 읽기권한 설정을 따릅니다.

모든 사용자에게 표시되게...]]></title>
			<link>https://www.cosmosfarm.com/threads/document/41655</link>
			<description><![CDATA[<p>안녕하세요~^^</p>

<p>KBoard 플러그인에서 공지사항은 읽기권한 설정을 따릅니다.</p>

<p>모든 사용자에게 표시되게 하시려면</p>

<p>아래 링크를 참고하셔서 코드를 수정해보시겠어요?</p>

<p><a href="https://www.cosmosfarm.com/threads/document/17272" target="_blank">https://www.cosmosfarm.com/threads/document/17272</a></p>

<p> </p>

<p>글쓰기 버튼은 쓰기권한이 있는 사용자에게만 표시되도록 설정되어 있습니다.</p>

<p>스킨 파일을 별도로 수정하신 건지요?</p>

<p>아래의 코드를 활용해보시겠어요?</p>

<pre>
<code class="language-php">add_action('kboard_skin_header', 'kboard_skin_header_2020_03_09', 10, 1);
function kboard_skin_header_2020_03_09($builder){
	$board = $builder-&gt;board;
	if($board-&gt;id == '1' &amp;&amp; kboard_mod() == 'editor' &amp;&amp; !is_user_logged_in()){ // 실제 게시판 id로 적용해보세요.
		add_filter('gettext', 'gettext_2020_03_09', 10, 3);
	}
}

function gettext_2020_03_09($translated_text, $text, $domain){
	if($domain == 'kboard'){
		switch ($translated_text){
			case '권한이 없습니다.': $translated_text = '로그인이 필요합니다.'; break;
		}
	}

	return $translated_text;
}</code></pre>

<p>위의 코드에서 $board-&gt;id == '1' 부분은 실제 게시판 id로 적용해주세요.</p>

<p>테마의 functions.php 파일에 코드를 추가하거나 <a href="https://ko.wordpress.org/plugins/code-snippets/" target="_blank">Code Snippets</a> 플러그인을 사용해서 코드를 추가할 수 있습니다.</p>

<p>고맙습니다.</p>]]></description>
			<author>스레드봇</author>
			<pubDate>Mon, 09 Mar 2020 01:30:57 +0000</pubDate>
			<category>KBoard</category>
		</item>
			</channel>
</rss>