라이믹스 글쓰기 확장변수 관련 질의드립니다.
CMS/프레임워크 | Rhymix 2.0 |
---|---|
개발 언어 | PHP 7.4 |
문제 페이지 주소 | 비공개 (작성 후 5일 경과) |
http://localhost/index.php?mid=TEST&category=242&act=dispBoardWrite&extravalue1=TEST
위 빨갛게 표시된것처럼 저런 방식으로 링크를 클릭하게되면 확장변수1 내용 입력값에 TEST라는 내용을 입력하게할 수 있는 방법이 있나요..?
댓글 18
확장변수 입력을 출력하는 반복문이 등장하는 코드가 있을 겁니다.
해당 부분에서 확장변수1 에 해당하는 eid와 $extravalue1 값이 있을때 라는 조건을 걸어서 해당 조건이 만족할때 value 값을 $extravalue1 로 넣어주는 코드를 써주면 될 것 같습니다.
두분다 답변 감사드립니다.!!!!
{$val->getFormHTML()}
이부분이 확장변수 입력을 자동으로 만들어주는 코드로 확인되네요.
<!--@if($extravalue1 && $val->eid=='ABCD')--><input type="text" name="extra_vars1" value="{$extravalue1}" class="homepage"><!--@else-->{$val->getFormHTML()}<!--@end-->
이런식으로 하면 될 것 같다는 생각이 듭니다.
extra_vars1 는 확장변수 순번에 따라 바뀔 수 있구요.
class="homepage" 도 입력 형삭에 따라 바뀔 수 있을 것 같습니다.
그런데 이렇게해서 입력(글등록)이 정상적으로 되는지는 테스트가 필요해 보이긴 하네요.
원래 잘못된 형식으로 입력하면 입력을 뱉어내게 되어있으니...
오!!!!!!!!! 감사합니다 ㅠㅠ
이해해버렸습니다
지금 적용해야할 확장변수의 id 입니다. 확장변수 생성할때 id를 입력하셨을 겁니다. 모든 확장변수가 아닌 내가 원하는 확장변수에만 적용되도록 추가적으로 조건을 거는 겁니다.
물론 name="extra_vars1" 에서 한번더 순서로 특정해야 하긴 합니다.
$val->eid=='ABCD' 이 아이디면으로 조건을 걸지 않으면 모든 확장변수에 다 적용이 되어버립니다.
eid로 특정해주어 해당 확장변수만 적용되도록 해주면 추가한 소스에서 확장변수 순서도 자동화 할 수 있을 것 같습니다.
<!--@if($extravalue1 && $val->eid=='ABCD')--><input type="text" name="extra_vars{$key}" value="{$extravalue1}" class="homepage"><!--@else-->{$val->getFormHTML()}<!--@end-->
물론 $key 가 가능한지는 스킨에 따라 다를 수도 있습니다.
아.. 제가 지식이 부족해서 스킨단에서 write_form 확인 시
<table cond="count($extra_keys)" class="ed extra-form" id="CMO">
<tr loop="$extra_keys=>$key,$val">
<th>
{$val->name}
<span class="ed label-danger margin-left-xxsmall" cond="$val->is_required=='Y'">{$lang->is_required}</span>
</th>
<td>{$val->getFormHTML()}</td>
</tr>
</table>
위 내용으로 확인되고 있습니다..
td값 안에있는 곳을 <!--@if($extravalue1 && $val->eid=='ABCD')--><input type="text" name="extra_vars{$key}" value="{$extravalue1}" class="homepage"><!--@else-->{$val->getFormHTML()}<!--@end-->
으로 변경하면되는걸까요?
[+] checkbox 랑 radio, 그리고 select(option)도 쓰고싶습니다!
형식은 뭐로 만드셨나요?
그에 맞게 응용을 하셔야죠.
[+] checkbox 랑 radio, 그리고 select(option)도 쓰고싶습니다!
이게 url에서 더 받아서 추가를 하고 싶다면 위 조건문에서 else if 로 추가 분기를 계속 하셔야 합니다.
제가 도움을 드릴수 있는 상황이 아닌것 같네요. 조금 더 학습을 하신 후 구현하시거나 의뢰를 해보세요.
{$extravalue{$key}} 라고하면 오류가나서요 ㅠㅠ 혹시 방법이 있을까요?
{} 자체가 <php 을 실행해주는 여 닫이로 활용되고 있으므로 {{ }} 이렇게 하면 문법이 틀어지게 되거든요.
템플릿에서는 절대로 해당 문구처럼 사용이 거의 힘들다고 보시고, 해당 값을 룩업테이블을 만들어 배열상태의 키값을 정렬하는 방법을 사용하세요.
템플릿에서는 이중괄호를 사용할 수 없습니다.
그런데 지금 질문이 약간 이해가 안가는게
어차피 value 값도 자동으로 키 순번에 맞춰서 입력한다해도 게시판에 사용된 확장변수 형식이 모두 일치하는 경우에나 사용에 의미가 있을텐데요.
확장변수1 은 text, 확장변수2는 check 이런경우라면 의미도 없을 겁니다.
그리고 특정 확장변수를 eid로 특정했기 때문에 더더욱 의미도 없어 보입니다.
어찌 되었던 제가 생각하는 최선은 다소 수동적이지만
<table cond="count($extra_keys)" class="ed extra-form" id="CMO">
{@
$extravalue = [];
$extravalue[1] = $extravalue1;
$extravalue[2] = $extravalue2;
$extravalue[3] = $extravalue3;
$extravalue[4] = $extravalue4;
}
<tr loop="$extra_keys=>$key,$val">
<th>
{$val->name}
<span class="ed label-danger margin-left-xxsmall" cond="$val->is_required=='Y'">{$lang->is_required}</span>
</th>
<td><!--@if($extravalue[$key] && $val->eid=='ABCD')--><input type="text" name="extra_vars{$key}" value="{$extravalue[$key]}" class="homepage"><!--@else-->{$val->getFormHTML()}<!--@end--></td>
</tr>
</table>
이정도로 해야 하지 않을까 생각이 되네요.
확장변수 4번째 순번까지 사용한다고 가정을 하고 수동으로 배열변수를 만들어 주었습니다.
그런데 지금 확장변수 자체를 특정해야하고 특정했기 때문에 의미도 없습니다.
Extravar.class.php 파일을 수정하는게 더 낫지 않을까요??
default :
$buff[] =' <input type="text" name="' . $column_name . '" value="' . ($value ? $value : $default) . '" class="text" placeholder="'.$placeholder.'" autocomplete="off"/>';
<input type="text"~~~~~~ value="{$extravalue1}" />
<!--@end-->
이런식으로 하시면 될것 같네요.