git-svn-id: http://xe-core.googlecode.com/svn/trunk@761 201d5d3c-b55e-5fd7-737f-ddc643e51545

This commit is contained in:
zero 2007-03-29 05:34:54 +00:00
parent d43d5d8535
commit 7fe9fcaa52
9 changed files with 209 additions and 3 deletions

View file

@ -49,6 +49,17 @@
$this->add('redirect_url', $url);
}
/**
* @brief 현재 페이지를 refresh시킴
*
* 공통 tpl중 refresh.html을 실행할 ..
**/
function setRefreshPage() {
$this->setTemplatePath('./common/tpl');
$this->setTemplateFile('refresh');
}
/**
* @brief act값 지정
**/

View file

@ -15,8 +15,10 @@ function exec_xml(module, act, params, callback_func, response_tags, callback_fu
}
oXml.addParam("module", module);
oXml.addParam("act", act);
oXml.addParam("referer_url", location.href);
if(typeof(response_tags)=="undefined" || response_tags.length<1) response_tags = new Array('error','message');
response_tags[response_tags.length] = "redirect_url";
if(show_waiting_message) {

3
common/tpl/refresh.html Normal file
View file

@ -0,0 +1,3 @@
<script type="text/javascript">
top.location.href = top.location.href;
</script>

View file

@ -22,6 +22,8 @@
<action name="procUpdateJoinForm" type="controller" standalone="true" />
<action name="procInsertDeniedID" type="controller" standalone="true" />
<action name="procUpdateDeniedID" type="controller" standalone="true" />
<action name="procInsertImageName" type="controller" standalone="true" />
<action name="procInsertImageMark" type="controller" standalone="true" />
<action name="procDeleteImageName" type="controller" standalone="true" />
<action name="procDeleteImageMark" type="controller" standalone="true" />
</actions>

View file

@ -30,7 +30,11 @@
$lang->group_srl = '그룹번호';
$lang->image_name = '이미지 이름';
$lang->image_name_max_width = '가로 제한 크기';
$lang->image_name_max_height = '세로 제한 크기';
$lang->image_mark = '이미지 마크';
$lang->image_mark_max_width = '가로 제한 크기';
$lang->image_mark_max_height = '세로 제한 크기';
$lang->enable_join = '회원 가입 허가';
$lang->redirect_url = '회원 가입후 이동할 페이지';
$lang->agreement = '회원 가입 약관';
@ -54,6 +58,9 @@
$lang->msg_exists_email_address = '이미 존재하는 메일주소입니다. 다른 메일주소를 입력해주세요';
$lang->msg_exists_nick_name = '이미 존재하는 닉네임입니다. 다른 닉네임을 입력해주세요';
$lang->msg_not_uploaded_image_name = '이미지 이름을 등록할 수가 없습니다';
$lang->msg_not_uploaded_image_mark = '이미지 마크를 등록할 수가 없습니다';
$lang->about_user_id = '사용자 ID는 3~20자 사이의 영문+숫자로 이루어져야 하며 영문으로 시작되어야 합니다';
$lang->about_password = '비밀번호는 6~20자로 되어야 합니다';
$lang->about_user_name = '이름은 2~20자 이내여야 합니다';

View file

@ -135,8 +135,10 @@
**/
function procInsertConfig() {
// 기본 정보를 받음
$args = Context::gets('enable_join','redirect_url','agreement','image_name','image_mark');
$args = Context::gets('enable_join','redirect_url','agreement','image_name','image_mark', 'image_name_max_width', 'image_name_max_height','image_mark_max_width','image_mark_max_height');
if($args->enable_join!='Y') $args->enable_join = 'N';
if($args->image_name!='Y') $args->image_name = 'N';
if($args->image_mark!='Y') $args->image_mark = 'N';
// module Controller 객체 생성하여 입력
$oModuleController = &getController('module');
@ -648,6 +650,76 @@
return new Object();
}
/**
* @brief 이미지 이름을 추가
**/
function procInsertImageName() {
// 정상적으로 업로드 된 파일인지 검사
$file = $_FILES['image_name'];
if(!is_uploaded_file($file['tmp_name'])) return $this->stop('msg_not_uploaded_image_name');
// 회원 정보를 검사해서 회원번호가 없거나 관리자가 아니고 회원번호가 틀리면 무시
$member_srl = Context::get('member_srl');
if(!$member_srl) return $this->stop('msg_not_uploaded_image_name');
$logged_info = Context::get('logged_info');
if($logged_info->is_admin != 'Y' && $logged_info->member_srl != $member_srl) return $this->stop('msg_not_uploaded_image_name');
// 회원 모듈 설정에서 이미지 이름 사용 금지를 하였을 경우 관리자가 아니면 return;
$oModuleModel = &getModel('module');
$config = $oModuleModel->getModuleConfig('member');
if($logged_info->is_admin != 'Y' && $config->image_name != 'Y') return $this->stop('msg_not_uploaded_image_name');
// 정해진 사이즈를 구함
$max_width = $config->image_name_max_width;
if(!$max_width) $max_width = "80";
$max_height = $config->image_name_max_height;
if(!$max_height) $max_height = "20";
// 이미지 정보를 구함
list($width, $height, $type, $attrs) = getimagesize($file['tmp_name']);
// 이미지 정보가 정해진 크기보다 크면 크기를 바꿈
if($width>$max_width) $new_width = $max_width;
else $new_width = $width;
if($height>$max_height) $new_height = $max_height;
else $new_height = $height;
// 업로드한 파일을 옮기지 않고 gd를 이용해서 gif 이미지를 만듬 (gif, jpg, png, bmp가 아니면 역시 무시)
$thumb = imagecreatetruecolor($new_width, $new_height);
switch($type) {
// gif
case 1 :
$source = imagecreatefromgif($file['tmp_name']);
break;
// jpg
case 2 :
$source = imagecreatefromjpeg($file['tmp_name']);
break;
// png
case 3 :
$source = imagecreatefrompng($file['tmp_name']);
break;
// bmp
case 6 :
$source = imagecreatefromwbmp($file['tmp_name']);
break;
}
if(!$source) return $this->stop('msg_not_uploaded_image_name');
if(function_exists('imagecopyresampled')) imagecopyresampled($thumb, $source, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
else imagecopyresized($thumb, $source, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
// 파일을 쓰고 끝냄
$target_filename = sprintf('files/attach/image_name/%s%d.gif', getNumberingPath($member_srl), $member_srl);
imagegif($thumb, $target_filename, 100);
@unlink($file['tmp_name']);
// 페이지 리프레쉬
$this->setRefreshPage();
}
/**
* @brief 이미지 이름을 삭제
**/
@ -655,6 +727,10 @@
$member_srl = Context::get('member_srl');
if(!$member_srl) return new Object(0,'success');
$oModuleModel = &getModel('module');
$config = $oModuleModel->getModuleConfig('member');
if($config->image_mark == 'N') return new Object(0,'success');
$logged_info = Context::get('logged_info');
if($logged_info->is_admin == 'Y' || $logged_info->member_srl == $member_srl) {
$oMemberModel = &getModel('member');
@ -664,6 +740,75 @@
return new Object(0,'success');
}
/**
* @brief 이미지 마크를 추가
**/
function procInsertImageMark() {
// 정상적으로 업로드 된 파일인지 검사
$file = $_FILES['image_mark'];
if(!is_uploaded_file($file['tmp_name'])) return $this->stop('msg_not_uploaded_image_mark');
// 회원 정보를 검사해서 회원번호가 없거나 관리자가 아니고 회원번호가 틀리면 무시
$member_srl = Context::get('member_srl');
if(!$member_srl) return $this->stop('msg_not_uploaded_image_mark');
$logged_info = Context::get('logged_info');
if($logged_info->is_admin != 'Y' && $logged_info->member_srl != $member_srl) return $this->stop('msg_not_uploaded_image_mark');
// 회원 모듈 설정에서 이미지 마크 사용 금지를 하였을 경우 관리자가 아니면 return;
$oModuleModel = &getModel('module');
$config = $oModuleModel->getModuleConfig('member');
if($logged_info->is_admin != 'Y' && $config->image_mark != 'Y') return $this->stop('msg_not_uploaded_image_mark');
// 정해진 사이즈를 구함
$max_width = $config->image_mark_max_width;
if(!$max_width) $max_width = "80";
$max_height = $config->image_mark_max_height;
if(!$max_height) $max_height = "20";
// 이미지 정보를 구함
list($width, $height, $type, $attrs) = getimagesize($file['tmp_name']);
// 이미지 정보가 정해진 크기보다 크면 크기를 바꿈
if($width>$max_width) $new_width = $max_width;
else $new_width = $width;
if($height>$max_height) $new_height = $max_height;
else $new_height = $height;
// 업로드한 파일을 옮기지 않고 gd를 이용해서 gif 이미지를 만듬 (gif, jpg, png, bmp가 아니면 역시 무시)
$thumb = imagecreatetruecolor($new_width, $new_height);
switch($type) {
// gif
case 1 :
$source = imagecreatefromgif($file['tmp_name']);
break;
// jpg
case 2 :
$source = imagecreatefromjpeg($file['tmp_name']);
break;
// png
case 3 :
$source = imagecreatefrompng($file['tmp_name']);
break;
// bmp
case 6 :
$source = imagecreatefromwbmp($file['tmp_name']);
break;
}
if(!$source) return $this->stop('msg_not_uploaded_image_mark');
if(function_exists('imagecopyresampled')) imagecopyresampled($thumb, $source, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
else imagecopyresized($thumb, $source, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
// 파일을 쓰고 끝냄
$target_filename = sprintf('files/attach/image_mark/%s%d.gif', getNumberingPath($member_srl), $member_srl);
imagegif($thumb, $target_filename, 100);
// 페이지 리프레쉬
$this->setRefreshPage();
}
/**
* @brief 이미지 마크를 삭제
**/

View file

@ -127,6 +127,10 @@
// 설정 정보를 받아옴 (module model 객체를 이용)
$oModuleModel = &getModel('module');
$config = $oModuleModel->getModuleConfig('member');
if(!$config->image_name_max_width) $config->image_name_max_width = 80;
if(!$config->image_name_max_height) $config->image_name_max_height = 20;
if(!$config->image_mark_max_width) $config->image_mark_max_width = 20;
if(!$config->image_mark_max_height) $config->image_mark_max_height = 20;
Context::set('config',$config);
// 회원 관리 모듈의 스킨 목록을 구함

View file

@ -22,14 +22,22 @@
</tr>
<tr>
<th rowspan="2">{$lang->image_name}</th>
<td><input type="checkbox" name="image_name" value="Y" <!--@if($config->image_name=='Y')-->checked="true"<!--@end-->/></td>
<td>
<input type="checkbox" name="image_name" value="Y" <!--@if($config->image_name=='Y')-->checked="true"<!--@end-->/><br />
{$lang->image_name_max_width} : <input type="text" name="image_name_max_width" value="{$config->image_name_max_width}"/>px<br />
{$lang->image_name_max_height} : <input type="text" name="image_name_max_height" value="{$config->image_name_max_height}"/>px<br />
</td>
</tr>
<tr>
<td>{$lang->about_image_name}</td>
</tr>
<tr>
<th rowspan="2">{$lang->image_mark}</th>
<td><input type="checkbox" name="image_mark" value="Y" <!--@if($config->image_mark=='Y')-->checked="true"<!--@end-->/></td>
<td>
<input type="checkbox" name="image_mark" value="Y" <!--@if($config->image_mark=='Y')-->checked="true"<!--@end-->/><br />
{$lang->image_mark_max_width} : <input type="text" name="image_mark_max_width" value="{$config->image_mark_max_width}"/>px<br />
{$lang->image_mark_max_height} : <input type="text" name="image_mark_max_height" value="{$config->image_mark_max_height}"/>px<br />
</td>
</tr>
<tr>
<td>{$lang->about_image_mark}</td>

View file

@ -24,18 +24,40 @@
<th>{$lang->image_name}</th>
<td>
<!--@if($member_info->image_name->src)-->
<div>
<img src="{$member_info->image_name->src}" border="0" alt="image_name" />
[<a href="#" onclick="doDeleteImageName({$member_info->member_srl});return false;">{$lang->cmd_delete}</a>]
</div>
<!--@end-->
<div>
<form action="./" method="post" enctype="multipart/form-data" target="hidden_iframe">
<input type="hidden" name="member_srl" value="{$member_info->member_srl}" />
<input type="hidden" name="module" value="member" />
<input type="hidden" name="act" value="procInsertImageName" />
<input type="file" name="image_name" value="" />
<input type="submit" value="{$lang->cmd_submit}" />
</form>
</div>
</td>
</tr>
<tr>
<th>{$lang->image_mark}</th>
<td>
<!--@if($member_info->image_mark->src)-->
<div>
<img src="{$member_info->image_mark->src}" border="0" alt="image_mark" />
[<a href="#" onclick="doDeleteImageMark({$member_info->member_srl});return false;">{$lang->cmd_delete}</a>]
</div>
<!--@end-->
<div>
<form action="./" method="post" enctype="multipart/form-data" target="hidden_iframe">
<input type="hidden" name="member_srl" value="{$member_info->member_srl}" />
<input type="hidden" name="module" value="member" />
<input type="hidden" name="act" value="procInsertImageMark" />
<input type="file" name="image_mark" value="" />
<input type="submit" value="{$lang->cmd_submit}" />
</form>
</div>
</td>
</tr>
<tr>
@ -90,3 +112,5 @@
</td>
</tr>
</table>
<iframe name="hidden_iframe" frameborder="0" style="display:none"></iframe>