글쓰기 시점 첫번째 사용자정의 에서 받은 이메일 주소 값 input에 자동으로 넣고 싶습니다.
CMS/프레임워크 | XE 1.x |
---|---|
개발 언어 | PHP 7.2 |
<input type="hidden" name="email_address" value="" />
글 쓰고 난 이후가 아닌 글 작성 하면서 첫번째 사용자정의에서 이미 입력받은 email 주소를 자동으로 넣으려고 합니다.
사용자정의에 메일 주소를 넣고 개발자도구로 보면..
<input type="text" name="extra_vars1" value="메일@gmail.com" class="email_address">
이 상태로 입력을 해서 form 전송시 저 값으로 사용자정의 들어갑니다.
위 타이핑 내용을 email_address input 의 값으로 자동으로 넣게 하고 있습니다.
어차피 한번 입력받은 이메일 주소로 자동으로 넣게 하고 비회원 글작성자의 이메일 입력을 별도로 받지 않도록 하려고 하는 목적이 있습니다.
댓글 9
예전에 비슷한걸로 사용자정의 1번의 내용을 제목으로 보냈던게있어요 글등록시점이긴한데...
document.controller에서
function insertDocument(
내용안에
if($obj->title == '') $obj->title = 'Untitled'; <----해당부분밑에
// 확장변수에 제목을 입력 mid값 필수변경
if((Context::get('category_srl') =='') && ((context::get('mid') == 'SG') || (context::get('mid') == 'romance') || (context::get('mid') == 'fantasy') || (context::get('mid') == 'CD') || (context::get('mid') == 'RT')))
{
$obj->extra_vars1 = $obj->document_srl;
}
이런식으로 넣은게있는데
email부분을 찾아보니
if(Context::get('is_logged') && !$manual_inserted && !$isRestore) 내용 안에
$obj->email_address = $logged_info->email_address; 있어요 아마 웹지기님이시라면 로그인한상대를 대상일거고 특정 mid에서만 사용하실거같으니(?)
if((Contet::get('mid') == '미드값')){
$obj->extra_vars1 = $obj->email_address;
}else{
$obj->email_address = $logged_info->email_address;
} 로 변경하시면 되지 않을까 싶어요
그런데 이미 사용자정의에서 이메일을 입력받고 있어 작성자 항목의 이메일을 두번 타이핑 하지 않고 이미 입력한 사용자정의 이메일 값을 가져오려고 합니다.
게시글이 db에 들어가기 전이고 코어를 건드리지 않는 스크립트로 하고 싶어서요.
https://datamod.tistory.com/89
만약에 안되서 코어건드실거같으시면
if(Context::get('is_logged') && !$manual_inserted && !$isRestore) 끝에
elseif(!Context::get('is_logged') && Context::get('mid')=='미드값'){
$obj->extra_vars1 = $obj->email_address;
}
이렇게 되지싶어요
사용자정의 input은 제가 임의로 id를 넣기 어려울 것 같습니다.
var value = $('input[name=test_name]').val();
이렇게 특정 input을 name 값으로 특정해서 가져올 수 있는 것 같습니다.
이걸 어찌 다른 input 인 name 이 email_adress 의 vaule 로 집어 넣는 스크립트가 되면 될 것 같은데 구글링으로는 찾기 어렵네요.
submit시점에 잡아서 제이쿼리로 넣어주면 될꺼같습니다
이메일 검증도 필요할꺼구요
<script>
jQuery(function(){
var formSubmit = xe.createPlugin("formSubmit", {
API_BEFORE_VALIDATE : function(sender, params){
var ext_value = $('input[name=extra_vars1]').val();
$('input[name=email_address]').attr('value',ext_value);
}
});
var oFormSubmit = new formSubmit();
xe.getApp("Validator")[0].registerPlugin(oFormSubmit);
});
</script>
기존에 폼전송시 사용했던 스크립트 중에 안쪽 내용만 바꿔서 시도하니 잘 되네요.
물론 이 중 불필요한 부분이 있을 것 같지만 그래도 잘 되니 그냥 써도 될 것 같습니다.