26.09.29
0
조회 193
26.09.26
1
조회 152
26.09.24
0
조회 182
26.09.23
0
조회 187
26.09.19
0
조회 507
26.09.11
0
조회 149
26.09.10
0
조회 147
26.09.10
0
조회 149
26.09.10
0
조회 116
26.09.10
0
조회 101
26.09.09
1
조회 102
26.09.04
0
조회 501
26.09.03
0
조회 340
26.09.01
1
조회 136
26.08.29
0
조회 179
26.08.22
0
조회 292
26.08.20
0
조회 322
26.08.13
0
조회 312
26.08.13
0
조회 364
26.08.13
0
조회 206
댓글 24
프로필 이미지가 있습니다. 제가 로그인 했는데 unknown 으로 나옵니다.
프로필 이미지가 없을 경우 대비도 해서 더미 프로필이미지로 지정했는데 모두 더미가 나옵니다.
디버깅을 위해 $logged_info를 출력해서 변수 세팅이 잘되어 있는지 확인 해 보세요.
{@ $logged_info = Context::get('logged_info');}
이게 적혀있는 부분이 없는데 저게 없어서 그런걸까요??
따라서 둘을 구분하여 사용할 필요는 없습니다.
출력되는 곳은 게시판 보드 스킨입니다. _read.html , _comment_write.html 파일 두곳 모두 코드를 넣어도 출력이 안되네요.
레이아웃에 넣어도 출력이 안되네요.
$oMemberModel = &getModel('member');
$profile_image = $oMemberModel->getProfileImage($logged_info->member_srl);
}
{$profile_image->src}
일단 이렇게 하면 프로필이미지주소를 불러오네요.....
본문에 코드는 왜 안되는건지... php5 쓸때는 제 기억에 문제가 없었던....
$logged_info->profile_image는 기본으로 세팅되는 변수가 아닌 것으로 기억합니다.
아마 예전에는 위와 같은 코드를 변수를 만들어 사용하는 애드온이나 모듈 등 서드파티 자료가 있었는데
최근에 해당 자료의 사용을 중단하셨거나, 해당 자료가 업데이트되어
내부적으로 사용하는 변수명이 바뀌어서 안 되고 있을 가능성이 높아 보입니다.
&는 10년 전의 적폐(?)이니 더이상 필요없고요, 더 줄여서 쓰시려면
{getModel('member')->getProfileImage($logged_info->member_srl)->src}
이렇게 한 줄로 하셔도 되긴 합니다 ^^
요렇게 코드 작성하지 않고
$logged_info 를 사용하는 것도 정상적이지 않은건가요? 이게 예전부터 궁금했던....
다른 댓글에서 말씀드린 것처럼 템플릿에서 사용하는 변수는 자동으로 Context와 연동됩니다. 컴파일된 결과물을 열어보시면 모조리 Context를 참조하도록 되어 있어요.
예: Context::set('webzigi', 1234); 해놓고 템플릿에서 {$webzigi} 하면 1234라고 나옵니다.
"이상적"인 상황은 아닙니다만 (아마 예전에 register_globals를 사용하여 모든 변수를 전역변수로 만들던 시절의 느낌을 살리고 싶어셨던 모양입니다) XE 템플릿 시스템이 이렇게 만들어진 지 워낙 오래되었기 때문에 굳이 "정상적"이냐고 물을 필요는 없을 것 같아요. XE 템플릿 시스템을 처음 개발하신 분들의 의도대로인 것은 맞습니다.
{@ $logged_info = Context::get('logged_info');}
이걸 넣어두고 이후 $logged_info 를 사용하는게 좋은가 해서요. 방금 사용하는 레이아웃 상단에 모두 넣긴 했습니다.
$logged_info = Context::get('logged_info');
Context::set('logged_info', $logged_info);
위의 코드를 실행하는 것과 100% 동일한 효과예요. 아무 의미가 없지요.
만약 로그인 상태인데도 템플릿에서 $logged_info 변수가 제대로 나오지 않는다면
서드파티 자료에서 뭔가 잘못 건드리고 있는 거예요.
그러나 말씀하신 증상으로 봐서는 $logged_info는 정상이고
프로필 이미지 부분만 정보가 없는 것 같습니다.
답변 감사합니다.
레이아웃에
<?php
$myname = 'xe';
?>
{@ $myname = 'town';}
이런 코드가 있다면 두개의 $myname 변수는 별개의 변수 입니다. 하단의 템플릿 문법은 php실행시 $__Context->myname으로 인식하기 때문입니다.
즉 최종 php실행시 하나는 $myname, 또하나는 $__Context->myname의 변수로 별개로 취급됩니다.
Context::get('logged_info') 이걸 풀어보면 xe에서만 사용하는 변수 $__Context->logged_info를 가져와라 정도(?) 입니다만...
템플릿 문법에서 $logged_info는 이미 $__Context->logged_info로 해석되기 때문에 무의미 하다고 봅니다.
레이아웃,보드스킨 에 몇 군데 제가 넣은것 제작자가 넣은 것이 있네요.