Extra Form
PHP PHP 7.4
CMS Rhymix 1.x

안녕하세요. xe에서 시작해 라이믹스로 업데이트한 사이트를 운영 중입니다.

html에서 작성한 if문을 php구문에 맞게 변환시키는 방법에 대해 여쭤보고자 질문 올립니다.

 

아래는 카테고리url 10005 의 글일 경우에는 Administrator, Stand1, Stand2 그룹에게만 글 제목을 보여주고,

그외의 경우에는 [Stand 회원에게만 공개된 글입니다.] 라는 문장이 제목 대신 노출되도록 만들어본 if문입니다.

(카테고리url 10005가 아닌 경우에는 모든 회원에게 정상적으로 제목을 노출해주고 있습니다.)

 

이 문장을 php 구문에 맞게 변환하여 사용하고자 하다가 장벽에 부딪혔습니다...

 \

<!--@if($document->get('category_srl')==10005)-->
      <!--@foreach($logged_info->group_list as $key => $val)-->
            <!--@if($val=="Administrator" || $val=="Stand1" || $val=="Stand2")-->
                 <a href="{$oDocument->getPermanentUrl()}">{$document->getTitle($mi->subject_cut_size)}</a>
              <!--@end-->
       <!--@else--><span style="color: #9b8ec2;">Stand 회원에게만 공개된 글입니다.</span>
        <!--@end--></b></a>

<!--@else-->
<a href="{$oDocument->getPermanentUrl()}">{$document->getTitle($mi->subject_cut_size)}</a>
<!--@end-->

 

구글링을 통해 html을 php에 삽입할 때는 에코로 감싸라는 말씀대로 해보기도 하고,

특수문자를 php에 맞게 변환해보기도 하고,

php구문들을 분석하며 엇비슷하게 문장구조를 바꿔보기도 했지만 요지부동입니다..ㅠ

 

이건 제가 변환해보다가 실패한 예시 중 하나입니다.. 

 

if($document->get('category_srl')==10005){
@foreach($logged_info->group_list as $key => $val) {
if($val=="Administrator" || $val=="Stand1" || $val=="Stand2") continue;
echo "
<a href="'{$oDocument->getPermanentUrl()}'">'{$oDocument->getTitleText}''</a>
";
exit;
} else {
    echo "
    <span style="'color: #9b8ec2;">Stand 회원에게만 공개된 글입니다.</span>
";
exit;
} else {
echo "
<a href="'.$document->getPermanentUrl().'">'.$document->getTitleText().'</a>
";
exit;
}

 

 

어떤 식으로 구문을 구성해야 좋을지 도와주시면 정말 감사하겠습니다.

  • Lv36

    원래 있던 html이 훨씬 깔끔한 것 같은데 왜 바꾸려고 하시나요?

     

    1. @foreach는 템플릿 문법이고, 순정 PHP에서는 @를 붙이지 않습니다.
    2. {$oDocument->getPermanentUrl()} 이런 것도 다 echo로 바꿔주셔야 하고

    3. echo " ... "; 안에다가 태그를 넣느라 쌍따옴표를 써서 에러날 것 같네요.

    템플릿 문법 없이 HTML을 출력하려면 굉장히 귀찮습니다. ㅎㅎ

     

    다 수정하고 중괄호 짝 맞는지 확인하셔도 안 되면 어디가 어떻게 깨지는지 자세히 설명해 주세요.

    절반쯤 나오다 말았는지, 조건이 잘못 적용됐는지, 아예 백지화면인지...

    질문 전에 에러메시지(로그)를 찾아보면 더욱 시간이 절약됩니다.

  • Lv1
    저 기능을 넣어야 하는 문서가 php라서 시도중이었어요. 다 쪼개서 수정해주어야 하는군요 세상에… 답변 감사합니다. 말씀대로 다시 시도해볼게요.