웹마스터 팁

제로보드XE와 트랙을 같이 사용하는 사이트를 구성하다가.
항상 두가지를 따로 따로 가입해야 된다는 점이 매우 매우 불편하여 어제 밤새도록 삽질을 시도해서 성공했습니다.

우선 저는 TOW를 사용하여 Trac을 설치하였고 TOW의 Apache\htdoc 폴더에 웹페이지를 구동하였습니다.

1. 회원 가입 폼에 필수 항목으로 JoinTrac이라는 이름으로 트랙 가입 여부 체크 박스를 추가하였습니다.

2. /zbxe/modules/member/member.admin.comtroller.php  (관리자 페이지에서 회원 가입)
-- line 21
 $args = Context::gets('member_srl','user_id','user_name','nick_name','homepage','blog','birthday','email_address','password','allow_mailing','allow_message','denied','is_admin','description','group_srl_list','limit_date');
--->
 $args = Context::gets('member_srl','user_id','user_name','nick_name','homepage','blog','birthday','email_address','password','allow_mailing','allow_message','denied','is_admin','description','group_srl_list','limit_date','jointrac');
$pass = $args->password;  // 패스워드값이 암호화 되기 전에 미리 변수에 저장(암호화는 Trac가입시에)

--line 56 ~ 71
 // 서명 저장
            $signature = Context::get('signature');
            $oMemberController->putSignature($args->member_srl, $signature);

            // 결과 리턴
            $this->add('member_srl', $args->member_srl);
            $this->setMessage($msg_code);

-->

 // 서명 저장
            $signature = Context::get('signature');
            $oMemberController->putSignature($args->member_srl, $signature);
   $fp = popen('D:\\TOW\\Apache\\bin\htpasswd -b D:\\TOW\\SvnRepo\\Projects\\trac.htpasswd '.$args->user_id.' '.$pass,'w');
   pclose($fp);
   if($args->jointrac=="AA"){
    $fp = popen('D:\\TOW\\add-perm AA '.$args->user_id.' dev2','w');
    pclose($fp);
   }else if($args->jointrac=="BB"){
    $fp = popen('D:\\TOW\\add-perm BB '.$args->user_id.' dev','w');
    pclose($fp);
   }
// htpasswd 실행하여 회원 정보 저장
// 필수 항목 체크 박스인 JoinTrac 항목에서 프로젝트AA에 체크 되어있으면 AA프로젝트의 Dev2 그룹 권한 추가
// BBB 프로젝트에 체크되어있으면 BB프로젝트의 Dev3 그룹 권한 추가

            // 결과 리턴
            $this->add('member_srl', $args->member_srl);
            $this->setMessage($msg_code);


회원 개인적으로 가입 기능을 사용 안해서 관리자 쪽만 수정했지만 member.controller 를 사용하면 일반회원이 가입폼을 통해서도 Trac가입이 가능할 것으로 생각됩니다~


이제 로그인 연동도 가능하면 알아봐야 겠네요 ^^;;