강좌/XPEnology 활용

제로보드 XE에 새글,새댓글 알람을 Telegram 으로 받기

acidpop 2015. 8. 13. 18:03
반응형

이 강좌를 보기전 Telegram 이 설치되어 있고 PHP를 이용해서 텍스트 파일을 전달 받을 수 있는 상태이어야 합니다.

 

그리고 당연히 제로보드XE 도 설치가 되어 있어야 합니다.

 

 

2015/08/13 - [강좌/RaspberryPI 활용] - 라즈베리파이 Telegram - PHP를 이용하여 메시지 보내기

 

 

필자는 XPenology 에 제로보드 XE 1.8.7을 올려서 사용중이다.

 

이 블로그의 질문 게시판도 XPenology 의 XE를 끌어다 붙여놓은 게시판이다.

 

알람을 받는 방법은 상당히 간단하다.

 

다음 경로의 파일을 백업해두자.

 

mv /var/www/xe/modules/board/board.controller.php /var/www/xe/modules/board/board.controller.php.bak

 

/var/www/xe 경로는 제로보드XE가 설치되어 있는 경로이다.

 

vi 또는 nano 등의 에디터로 위 파일을 열어보자.

 

function procBoardInsertDocument()

 

이  함수에서 아래 코드가 있는 부분 바로 위에 코드를 추가한다.

 

필자의 XE 에서는 161 라인 정도이다.

// if there is an error
if(!$output->toBool())
{
    return $output;
}

 

 

추가할 코드

 

 

// 월~금, 오전 8시~오후 9시59분까지만 알림
if( $week <= 5 && $curhour < 22 && $curhour > 8) {
	$newmsgtitle = $obj->nick_name."님이 새 글을 등록하였습니다";
	$newtitle = "제목 : ".$obj->title;
	$newemail = "E-Mail : ".$obj->email_address;
	//$newcontents = simpl_str($obj->content, 128);
	$newcontents = cut_str(strip_tags($obj->content), 128);
	$newtarget_url = getNotEncodedFullUrl('', 'document_srl', $obj->document_srl);

	$newboardmsg = "/tmp/sendboard.txt";
	$newboardfile = fopen($newboardmsg, "w");
	fwrite($newboardfile, $newmsgtitle."\r\n");
	fwrite($newboardfile, $newtitle."\r\n");
	fwrite($newboardfile, $newemail."\r\n");
	fwrite($newboardfile, "\r\n내용 :\r\n".$newcontents."\r\n");
	fclose($newboardfile);
	exec("curl --form userfile=@".$newboardmsg." --form password=5E884898DA28047151D0E56F8DC6292773603D0D6AABBDD62A11EF721D1542D8 http://192.168.0.199/tgcli.php
}

 

 

위 코드는 새글에 대한 알람이고 댓글에 대한 알람도 추가하자.

 

function procBoardInsertComment()

 

위 함수 내용 중 아래 코드 바로 위에 추가하자.

 

if(!$output->toBool())
{
    return $output;
}

 

 

 

// 월~금, 오전 8시~오후 9시59분까지만 알림
if( $week <= 5 && $curhour < 22 && $curhour > 8) {
    $document_srl = $obj->document_srl;
    $comment_srl = $obj->comment_srl;
    $newcontents = $obj->nick_name."님이 새 댓글을 등록하였습니다";
    $newtarget_url = getNotEncodedFullUrl('', 'document_srl', $document_srl, '_comment_srl', $comment_srl) . '#comment_'. $comment_srl;
    $newboardmsg = "/tmp/sendboard.txt";
    $newboardfile = fopen($newboardmsg, "w");
    fwrite($newboardfile, "\r\n내용 :\r\n".$newcontents."\r\n");
    fwrite($newboardfile, $newtarget_url."\r\n");
    fclose($newboardfile);
    exec("curl --form userfile=@".$newboardmsg." --form password=5E884898DA28047151D0E56F8DC6292773603D0D6AABBDD62A11EF721D1542D8 http://192.168.0.199/tgcli.php
}

 


 위 코드를 추가 하면 이제 게시판에 새글 또는 댓글이 달릴때 텔레그램으로 메시지를 전송 하게 된다.

 

게시물 폭탄 테러가 있다면 텔레그램이 난리가 나는건 함정...

반응형