플러그인 path정보를 수정하고 싶습니다. 도움부탁드려요..
본문
제가 sagiga 라는 플러그인을 extend 폴더에 설치하고자 하는데, 기존 플러그인이 G5 버전으로
제작이 되있던 터라, Terrorboy 답변을 통해, extend 폴더에 들어갈 sagiga.push.php 파일의 path 정보만 바꾸면
될것같다고 하시더라구요..
그런데, G5 용이라, 정확하게 어떤 부분을 손봐야 할지 잘 모르겠어서, 도움을 구하고 싶습니다.
제 모자란 지식으로 , 바꿔야 할 부분을 부분부분 적으로나마 추려봤습니다.
제일 하단부분엔, 전체 소스를 첨부하여 보았습니다. 도움 부탁드립니다.
1. 우선 G5가 눈에 띄는 부분이 있습니다.
# 디바이스 아이디가 저장될 폴더
define('SAGIGA_DATA_DIR', G5_DATA_PATH.'/sagiga');
# 디렉토리가 없다면 생성합니다. (퍼미션도 변경하구요.)
@mkdir(SAGIGA_DATA_DIR, G5_DIR_PERMISSION);
@chmod(SAGIGA_DATA_DIR, G5_DIR_PERMISSION);
이부분인데, G4_DATA_PATH 라고 저장해도 무방할까요?
그 하단부분도 정확히 이해가 안가는 부분이, 디렉토리가 없다면 생성하라는 말씀같은데,
mkdir 폴더와 chmod 폴더를 루트폴더에 만들고, G4_DIR_PERMISSION 으로 ,.... (혹시 다를까봐 ...여쭤봅니다.)
2. 두번째로는, 기본함수, 등록요청 부분입니다.
# 등록 요청
if(!$_REQUEST['device_id']) {
echo '<script>location.href="sagiga:'.G5_URL.'"</script>';
return;
}
# 페이지 이동
echo '<script>location.href="'.G5_URL.'"</script>';
이부분인데요, 이부분도 동일하게 G4_URL 형식으로 바꿔주면 될까요?
이부분만 손보면 , path 부분은 더이상 없는거같은데, 혹~시 만약 제가 빠진게 있다면, 한번만 짚어주세요ㅠㅠ
<전체소스>
<?php
// PHP 5.2.1 이상
// PHP json_encode 필수
// Curl 필수
# http://www.sagiga.com/index.php?mid=reqeust_api 에서 신청 하세요.
define('SAGIGA_API', '');
# 디바이스 아이디가 저장될 폴더
define('SAGIGA_DATA_DIR', G5_DATA_PATH.'/sagiga');
# 디렉토리가 없다면 생성합니다. (퍼미션도 변경하구요.)
@mkdir(SAGIGA_DATA_DIR, G5_DIR_PERMISSION);
@chmod(SAGIGA_DATA_DIR, G5_DIR_PERMISSION);
# 환경 설정 파일 만듦
$sagiga = SagigaConfigMaking();
/* ===================================================== */
// 기본함수
/* ===================================================== */
function SagigaConfigMaking() {
global $is_admin;
# API 키가 없다면 리턴
if(SAGIGA_API == '') return;
# 정보 호출
if(is_file(SAGIGA_DATA_DIR.'/config.php')) {
include_once(SAGIGA_DATA_DIR.'/config.php');
return $Sagiga;
}
# 관리자가 아닐경우 등록요청 안함
if(!$is_admin) return;
# 등록 요청을 사기가 웹뷰에서만 진행
if(!preg_match('/Sagiga/i', $_SERVER['HTTP_USER_AGENT'])) return;
# 등록 요청
if(!$_REQUEST['device_id']) {
echo '<script>location.href="sagiga:'.G5_URL.'"</script>';
return;
}
# 반환값 기록
$handle = fopen(SAGIGA_DATA_DIR.'/config.php', 'w');
ob_start();
echo '<?php'.PHP_EOL;
echo '$Sagiga = array(';
foreach ($_GET as $a => $b) { echo '"'.$a.'"=>"'.$b.'",'.PHP_EOL; }
echo ');';
$Content = ob_get_contents();
ob_end_clean();
fwrite($handle, $Content);
fclose($handle);
# 페이지 이동
echo '<script>location.href="'.G5_URL.'"</script>';
}
// 사용법: sagiga_send('제목', '내용(선택)', '링크(선택)', '사이트이름(선택)');
function sagiga_send($Title, $Content='', $Url='', $SiteName='') {
global $config, $sagiga;
if(!$SiteName) $SiteName = $config['cf_title'];
if(!$Title ) return;
$apiKey = SAGIGA_API;
$device_id = $sagiga['device_id'];
$site_name = $SiteName;
$title = $Title;
$content = $Content;
$url = $Url;
$headers = array(
'Content-Type:application/json',
'Authorization:key='.$apiKey
);
$deviceTokens = array($device_id);
$messages = array('site_name' => $site_name, 'title'=>$title, 'content'=>$content, 'url'=>$url);
$sendData = array(
'registration_ids' => $deviceTokens,
'data' => $messages
);
curl_setopt_array($ch = curl_init(), array(
CURLOPT_URL=>'https://android.googleapis.com/gcm/send',
CURLOPT_HTTPHEADER=>$headers,
CURLOPT_POST=>true,
CURLOPT_RETURNTRANSFER=>true,
CURLOPT_SSL_VERIFYPEER=>false,
CURLOPT_POSTFIELDS=>json_encode($sendData)
));
curl_exec($ch);
curl_close($ch);
}
답변 1
G4 에는 G4_DATA_PATH 이런 상수는 없습니다
다른 부분 수정하지말고 화일 상단에 넣으세요
define(G5_DATA_PATH, $g4[path].'data');
define(G5_DIR_PERMISSION, 0755);
define(G5_URL, "$g4[path]");