그누보드 5.4 버전용 알림플러그인 > 그누보드5 플러그인

그누보드5 플러그인

그누보드는 다양한 기능을 추가하기 쉽습니다.

그누보드 5.4 버전용 알림플러그인 정보

그누보드 5.4 버전용 알림플러그인

첨부파일

noti54.plugin.tar.gz (16.7K) 1103회 다운로드 2021-01-07 12:41:45
테스트한 버전5.4.0.9
호환 가능 버전5.4.0.9

본문

 그누보드 5.4 버전용 알림플러그인 입니다.

 

그누보드 5.4.0.9 버전 이상에서 정상적으로 동작됩니다.

 

사용방법은 파일을 그대로 덮어쓰기하면 됩니다.

 

회원 로그인시 브라우저 왼쪽 하단에 알림 아이콘이 표시됩니다.

알림 아이콘을 누르면 위의 스크린샷처럼 나옵니다.

 

1794657427_1574763410.1631.png

 

기본으로 모든 회원이 다 알림을 받는것으로 설정되며,

각 회원이 회원정보 수정에서 알림을 사용함/사용안함을 설정할수 있습니다.

 

알림적용대상은

 

글답변,

글의 댓글,

댓글의 댓글,

쪽지,

1:1 문의

 

등에 적용됩니다.

 

수정내역 :

 

2019.11.26 최초업로드

2019.12.04 회원이 알림수신을 하지 않을 경우 모든알림페이지에서 알림 css 파일이 로드되지 않는 문제 수정

2019.12.06 비회원의 댓글에 회원이 대댓글이 달면, 해당 회원으로 알림이 잘못 오는 오류 수정

2020.02.05 해피정님이 댓글로 알려주신 내용 수정

2020.09.29 새로 회원가입시 자동으로 알림을 받을수 있게 적용

2021.01.07 PHP8 버전에서 경고메시지 뜨는 코드 수정

추천
28

댓글 전체

관리자로 접속하면 좌측하단에 잘 뜨는데 일반회원으로 접속하면 안뜨네요.
페이지 수정하면서 뭔가 관리자권한인곳에서만 뜨게 되버린것 같은데 혹시 어디를 확인해 봐야 할까요?
/plugin/noti54/notiview.php 페이지에서도 관리자는 잘 뜨는데
일반 회원은 css도 안먹고 리스트도 안뜨네요
head, index, tail  모두 수정을 했는데 아무래도 하나씩 원본 넣어보고 확인을 해봐야 할것 같네요. ^^;;
찾아 보고 안되면 다시 질문 드리겠습니다~
회원정보에 알림설정이 빠져있었네요. ^^;;
기본으로 알림설정이 들어간다고 해서 생각을 못했습니다.
잘 작동 됩니다!! 좋은 소스 감사합니다~ ^^
설치해보니 어디 부분이 에러인지는 파악은 못했고
디비가 생성이 되지 않는거 같습니다.

디비를 강제로 생성해 주니 잘 작동을 합니다. ^^*
CREATE TABLE IF NOT EXISTS `g5_noti_table` (
      `ph_id` int(11) unsigned NOT NULL AUTO_INCREMENT,
      `ph_to_case` varchar(50) NOT NULL DEFAULT '',
      `ph_from_case` varchar(50) NOT NULL DEFAULT '',
      `bo_table` varchar(20) NOT NULL DEFAULT '',
      `rel_bo_table` varchar(20) NOT NULL DEFAULT '',
      `wr_id` int(11) NOT NULL DEFAULT 0,
      `rel_wr_id` int(11) NOT NULL DEFAULT 0,
      `mb_id` varchar(255) NOT NULL DEFAULT '',
      `rel_mb_id` varchar(255) NOT NULL DEFAULT '',
      `rel_mb_nick` varchar(255) DEFAULT NULL,
      `rel_msg` varchar(255) NOT NULL DEFAULT '',
      `rel_url` varchar(200) NOT NULL DEFAULT '',
      `ph_readed` char(1) NOT NULL DEFAULT 'N',
      `ph_datetime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
      `parent_subject` varchar(255) NOT NULL,
      `wr_parent` int(11) DEFAULT 0,
      PRIMARY KEY (`ph_id`)
  ) ENGINE=MyISAM DEFAULT CHARSET=utf8;

동작하지 않는분들은 해당 쿼리를 날리셔서 디비를 생성 후 사용 해 보시기 바랍니다.
접두어를 변경하신분들은 접두어 변경을 해주세요
테이블생성하고, 플러그인 설치 다 했는데, 왜 알림이 마이페이지에서 안나올까요? 혹시나 게시판에 글을 등록해봐도, 디비에 입력이 입력되는 값은 없고요. ㅠㅠ 도움 요청드립니다.
plugin/noti54/skin/noti.skin.php 내용에서
add_stylesheet('<link rel="stylesheet" href="'.$noti_plugin_url.'/skin/noti.css">', 1);
를 아래와 같이 변경해야합니다.
add_stylesheet('<link rel="stylesheet" href="'.$noti_plugin_url.'skin/noti.css">', 1);

수정하지 않으면 아래와 같이 오류(?)가 발생합니다.
<link rel="stylesheet" href="http://도메인/plugin/noti54//skin/noti.css?ver=191202">
해피정님. 말씀하신대로 다 했는데, 왜 안나오는걸까요? /plugin/noti54/notiview.php 페이지를 찾은거 같은데, 알림나오는 게시판을 설정을 해야 나오는건가요? 알림 반응 로직을 모르니 헤맵니다.ㅠ 다시 한번, 정리하면, 위의 플러그인을 설치하고, 볼수있는 페이지를 찾았는데, 알림받고 싶은 게시판을 설정을 하면 오게 되는건가요? 그 설정은 어디서 하나요? 답변 부탁드립니다.


PHP Version 7.2.26
댓글내용 :  test  라고 짧게 내용을 입력했습니다.

Fatal error: Uncaught ArgumentCountError: Too few arguments to function cut_str(), 1 passed in /home/****/public_html/plugin/noti54/classes.php on line 762 and at least 2 expected in /home/****/public_html/lib/common.lib.php on line 1468

ArgumentCountError: Too few arguments to function cut_str(), 1 passed in /home/****/public_html/plugin/noti54/classes.php on line 762 and at least 2 expected in /home/****/public_html/lib/common.lib.php on line 1468

에러발생 순서
├ 댓글1 <작성자: A>
│    │  <== 댓글1-1 이 있는 상태에서 <작성자K>가 댓글을 작성하면 에러 발생
│    └ 댓글1-1  <작성자: B>
├ 댓글2 <작성자: C>
└ 댓글3 <작성자: D>

QnA : https://sir.kr/qa/343187
plugin/noti54/classes.php on line 762 줄의 내용 ...
parent_subject = '".sql_real_escape_string(cut_str(strip_tags($comment_wr['wr_content'])), 70)."',
를 아래와 같이 변경해서 오류 해결되었습니다.
parent_subject = '".sql_real_escape_string(cut_str(strip_tags($comment_wr['wr_content']), 70))."',
신규회원은 정보수정에서 사이트 내 알림을 사용할 경우 체크하세요 체크가 되어있지않은데

신규회원도 처음부터 알림을 받을수있게 체크되게 하려면 어떡해해야하는지 알려주시면 감사하겠습니다....
죄송합니다. 제가 착각을 했네요.

plugin/noti54/classes.php 파일에서

대략 147번째줄에 보면


$mb_is_noti = (isset($_POST['mb_is_noti']) && $_POST['mb_is_noti']) ? 1 : 0;
$sql = " update {$g5['member_table']} set mb_is_noti='$mb_is_noti' where mb_id = '$mb_id' ";


이렇게 되어 있는 것을 아래와 같이 수정해 주시면 됩니다.


if( $w === 'u' ){
    $mb_is_noti = (isset($_POST['mb_is_noti']) && $_POST['mb_is_noti']) ? 1 : 0;
    $sql = " update {$g5['member_table']} set mb_is_noti='$mb_is_noti' where mb_id = '$mb_id' ";
}
나리야 테마에서는

plugin/noti54/skin/noti.skin.php 파일의 32번째 줄


// 새창 환경에서는 작동되지 않게 한다.
if( $("#gnb_all").length || $("#wrapper").length || $("#hd").length || $("#tnb").length || $("#hd_wrapper").length || $("#ft").length || $("#aside").length ){
load_noti_ico();
}

위의 코드를 아래와 같이 수정하면 동작됩니다.

// 새창 환경에서는 작동되지 않게 한다.
if( $("#gnb_all").length || $("#wrapper").length || $("#hd").length || $("#tnb").length || $("#hd_wrapper").length || $("#ft").length || $("#aside").length || $("#nt_menu").length ){
load_noti_ico();
}
예를 들어서

<div>특정 위치 삽입</div>

이렇게 되어 있다면 특정 위치 삽입 이라고 되어 있는 부분에 <?php run_event('이벤트 이름'); ?> 을 지정합니다. ( 이벤트이름은 회원님이 아무렇게 지정해도 됩니다. 아래는 abcd_event 라고 하겠습니다. )

<div><?php run_event('abcd_event'); ?></div>

plugin/noti54/classes.php 파일에 보면은 37번째 줄에 아래 코드가 있습니다.

public function add_hooks(){
add_event('tail_sub', array($this, 'noti_init'), 1, 0);

위의 add_event('tail_sub', array($this, 'noti_init'), 1, 0); 코드에서 tail_sub 이라고 한 코드를 위에서 지정한 abcd_event 라고 수정합니다.
그러면 위의 <?php run_event('abcd_event'); ?>  한 위치에 출력됩니다.

public function add_hooks(){
//add_event('tail_sub', array($this, 'noti_init'), 1, 0);
       
        add_event('abcd_event', array($this, 'noti_init'), 1, 0);
비회원 추천 기능등을 사용해보니 알람에서 이름이 뜨지않습니다(비회원은 이름이 없어 당연하지만!)
비회원일경우 "비회원"이라는 내용이 뜨면 더욱 완벽할것 같습니다.
좋은 플러그인 감사합니다.
제가 포인트선물기능을 사용하고 있는데
포인트선물을 할 때 알려주려면 무엇을 추가하면 될까요?
classe.php에 추가해야 할 것 같은데, 답변 주시면 감사하겠습니다.
굉장히 좋은 플러그인 감사드립니다.  제 영카트 5.4.2.7.1 설치 후 플러그인을 삽입했는데
신규회원은 곧바로 알림종이 안나오더라고요.
회원정보수정에서 체크해야 나오는데...
신규회원가입완료후 곧바로 알림종을 나오게 할려면 어떻게 해야 하나요?
해당 플러그인 잘 사용하고 있습니다. 혹 모바일에서는 스크랩이나 쪽지창등 해당 플러그인때문에 창닫기같은 스크립트가 안되는데..일단은 해당 페이지는 예외처리를 해놓긴 했는데... 혹 개선이 가능할가요?
신규회원이 자동으로 알림 받을수 있게 적용하려면,

위의 2020년 9월 29일자로 변경한 위의 자료를 적용해 주시거나 아니면

아래 내용을 확인하여 적용해 주시면 됩니다.

대략 147번째줄에 보면


$mb_is_noti = (isset($_POST['mb_is_noti']) && $_POST['mb_is_noti']) ? 1 : 0;
$sql = " update {$g5['member_table']} set mb_is_noti='$mb_is_noti' where mb_id = '$mb_id' ";


이렇게 되어 있는 것을 아래와 같이 수정해 주시면 됩니다.


if( $w === 'u' ){
    $mb_is_noti = (isset($_POST['mb_is_noti']) && $_POST['mb_is_noti']) ? 1 : 0;
    $sql = " update {$g5['member_table']} set mb_is_noti='$mb_is_noti' where mb_id = '$mb_id' ";
}
그누보드 5.4.2.8 버전 사용중입니다. 위 파일 다운 받아서 업데이트 했는데 db도 안만들어지고 전혀 작동을 안하네요. 혹시나해서 db를 수동으로 만들어주었지만 마찬가지 입니다. 서버 환경은 PHP5.6, MySql5.6 사용중입니다.
사용하는 테마의 tail.sub.php 파일에

<?php run_event('tail_sub'); ?>

코드가 있는지 확인해 주세요.

없으면 기본 basic 테마의 tail.sub.php 파일을 참고하여 코드를 넣어 주세요.
안녕하세요 thisgun님
해당 소스 정말정말 잘 사용하고 있는 그누보드린이 입니다

9월 29일 소스가 바뀌기전 새로 가입한 회원 전부
알림창 표시하게 하려면 소스를 어떻게 변경해야 할까요?

아니면 회원분들 알림창 사용여부 결정권 없이
그냥 모두 알림창이 표시되게 하고 싶습니다.
알림의 사용여부는 회원테이블의 mb_is_noti 필드가 사용됩니다.
mb_is_noti 의 값이 0이면 사용안함이며, 1이면 사용함입니다.
그러므로 전부 1로 변경해 주시면 됩니다.

update {$g5['member_table']} set mb_is_noti = 1
관리자로 로그인하여 알림은 잘 오는데요..일반회원이 로그인햇을때 않릭은 쪽지가 있음에도 불구하고 알림표시에 0으로 나오는데 왜그럴가요? 알림받기 체크되어 있는데
관리자페이지에서 사용하려면
if( defined('G5_IS_ADMIN') ){ // 관리자페이지에서는 사용 안함
return;
}
에서 //return; 앞에 주석을 넣어주면 사용가능한것 아닌가요? 사용자페이지에서는 잘되는 관리자 페이지에서는 보이지를 않네요 ㅠ.ㅠ
extend 폴더에 있는데이터를 extend폴더에 넣고
plugin 폴더에 있는거를 plugin에 넣고

하면 끝인가요..? 왜 아무것도 안바뀌지 음..따로뭘해줘야 되는건지 ^^;;
초보라 너무기초적인 질문이라 죄송합니다!
제작자님 댓글이 있어서 참조해 적어보았습니다

1.
plugin/noti54/classes.php 파일에 보면은 37번째 줄에 아래 코드가 있습니다.

public function add_hooks(){
add_event('tail_sub', array($this, 'noti_init'), 1, 0);

2.
이 코드에서 tail_sub 코드를 위에서 abcd_event 라고 수정합니다.

3.
<div><?php run_event('abcd_event'); ?></div>
요걸 적당한 위치에 붙여넣기
(위치가 css로 고정돼있어서 코드 넣는 위치는 크게 상관없어 보입니다)
이런말 하면 좀 그렇치만  제작자님이 올리신 설명보단 님 댓글이 초보에겐 이해하기 쉽네요.
님 글 본뒤 thisgun님 글 보니까 그게 이뜻이였구나 이해가 가는..
제 무지를 탓해야겠지만 님같은 분들이 계셔서 초보도 줍줍해서 간간히 살림살이 살찌우고 있습니다.
아무도 초보설움?을 몰라주는데 댓글 인사도 없는거보니 제 기분도 않좋네요.
꼭 감사 댓글을 전하고 싶었습니다. 감사합니다.
하나님 은혜가 아닐까 생각합니다.. 저야말로 도움이 됐다니 기쁩니다. 감사합니다.
저는 현재 이쪽 일은 하지 않습니다만, 좋은 결과 바랍니다
3. 적당한 위치에 붙여넣는 부분은 동일한 classes.php 파일안에 아무곳에나 넣어주면 되는 건가요? 코드를 넣어준 이후로 unexpected < 에러로 페이지 접속 자체가 안되고 있습니다. 감사합니다 :)
안녕하세요. 샬롬. 답변이 늦었습니다...
3번은 표시하고 싶은 html 파일 안에 넣어주시면 됩니다. 저런 형식의 코드는 php 파일에서는 쓰지 않는 걸로 압니다.
classes.php: register_form_update_after() 함수에서
        if( $w === 'u' ){
            $mb_is_noti = (isset($_POST['mb_is_noti']) && $_POST['mb_is_noti']) ? 1 : 0;
            $sql = " update {$g5['member_table']} set mb_is_noti='$mb_is_noti' where mb_id = '$mb_id' ";
        }

                sql_query($sql, false);
        }
이렇게 되어 있는데
sql_query가 if 문 안으로 들어가야 하지 않을까요?
회원가입 했을때, 계속 500 오류가 나길래 뭔가 했더니 이 부분이 if 안으로 넣어줘야 문제없이 진행되더라구영.. 다른분들도 참고하세용
안녕하세요 . 감사히 잘사용하고있습니다.
테마를  기본테마 말고  변경테마 이용하면. 종이 사라지는데. 혹시 어느 구분에서 수정해야할까요 ? 아무리 찾아봐도 확인이 안되서요 ㅠㅠ
뭘 잘못했는지 위지시대로 다 했는데 무덤덤 하네요
아니면 경로를 잘못넣었는지 그냥 plugin 폴더 안에 위폴더를 넣었는데 틀렸나요 ? ㅠㅠ
꺼흐흙 ~~~개발자님꺼 한번 써보겠다고 요며칠 해봤더니 무덤덤합니다.

add_event('tail_sub', array($this, 'noti_init'), 1, 0);
원래 코드 그대로도 해보고

add_event('abcd_event', array($this, 'noti_init'), 1, 0);
가칭으로 수정해서 해봐도   
뭐가 문제인지 꼼짝도 안합니다.

물론 사용하는 테마의 tail.sub.php 파일에
<?php run_event('tail_sub'); ?> 코드도 있고요....
<?php run_event('가칭 이름'); ?>으로 전체적으로 바꿔봐도 무덤덤하네요. ㅠㅠ

혹여 성공하신분들 계시면 친절한 가르침을 부탁드립니다.
그누보드 5.5.7.5 버전입니다.
순정 버전에는 잘 됩니다.

hook 이 아닌 class method로 직접 호출하려면 테마 또는 스킨 파일에서

<?php G5_NOTI_54::getInstance()->noti_init(); ?>

이렇게 코드를 추가한 후에

브라우저 우클릭 소스보기 하고

/plugin/noti54/skin/noti.skin.php 파일의 코드가 있는지 확인해 보세요.
와 ~~ 제게 관심을 주시는 영자님이 계시다니 정말 감사합니다.
설마하니 누가 댓글을 달아 줄거란 생각은 못했는데 정말 감사합니다.
알려준데로 찾아보니 noti.skin.php 파일을 불러오지 못하나봅니다.
분명 그누 메인 디렉토리에는 plugin/noti54, extend/ 내부에 파일들 다 있습니다.
테마의 tail.sub.php에서 불렀는데도 못읽으면 제가 잘못한 부분이 있겠네요.
특별히 소스 수정한거라곤 우클릭 금지외에는 손댄게 없는데.....
아무튼 감사합니다.
좀 더 고민해보겠습니다.
베이직 테마에서 확인하니 알람 잘 들어옵니다.
테마에서 hook 지원 안하면 안되나봅니다. 여태 헤매고 있었네요.
안되시는 분들은 테마에서 지원을 안하는겁니다.
그누 5.5 php 7.2 입니다.
안녕하세요. 좋은 플러그인 감사합니다. 혹시 왼쪽 하단에서 임의로 위치를 정하려면 어떻게 해야하는지 알려주실 수 있으신가요?
Warning: Undefined variable $default in D:\xxamp\g5\bbs\register_form_update.php on line 534

Warning: Trying to access array offset on value of type null in D:\xxamp\g5\bbs\register_form_update.php on line 534

Warning: Undefined variable $sql in D:\xxamp\g5\plugin\noti54\classes.php on line 152

Fatal error: Uncaught ValueError: mysqli_query(): Argument #2 ($query) cannot be empty in D:\xxamp\g5\lib\common.lib.php:1717 Stack trace: #0 D:\xxamp\g5\lib\common.lib.php(1717): mysqli_query(Object(mysqli), '') #1 D:\xxamp\g5\plugin\noti54\classes.php(152): sql_query('', false) #2 D:\xxamp\g5\lib\Hook\hook.extends.class.php(26): G5_NOTI_54->register_form_update_after('test', '') #3 D:\xxamp\g5\lib\Hook\hook.class.php(188): GML_Hook->runAction(Array, Array) #4 D:\xxamp\g5\lib\hook.lib.php(64): Hook::doAction('register_form_u...', Array, false) #5 D:\xxamp\g5\bbs\register_form_update.php(590): run_event('register_form_u...', 'test', '') #6 {main} thrown in D:\xxamp\g5\lib\common.lib.php on line 1717

알림 플러그인 적용하니 잘 되는데

회원가입 창에서 회원가입을 마치면 이런 창이 뜨네요 (원래 가입을 축하합니다 가 떠야하는데..)
어떻게 해결을 하면 좋을까요?
전체 503
그누보드5 플러그인 내용 검색

회원로그인

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