NOMO.asia

planner123 스킨에 확장 변수를 추가하여 그것을 목록에 출력하려는데
이곳저곳 뒤지다가 딱 알아듣게 설명해 둔 곳이 없길래 정리하는 겸 써본다.
경우에 따라 틀릴 수도 있으니 대충 참고만 하시라

1. 확장 변수의 추가
먼저 8번까지의 확장변수는 플래너123에서 사용하도록 설정되어 있으니 확장변수를 추가하려면 8번 이후로, 즉 9번부터 값을 주어야 한다.
이 점을 인지하고 확장 변수를 추가한다. 본인은 그냥 10번을 추가했다.



2. 만약 확장변수를 추가하고 글쓰기 화면이 깨진다면
write_form.html의 대략 207번째 라인에서

<!--@if($val->idx == 1 || $val->idx == 3 || $val->idx == 4 || $val->idx == 8 )-->

처럼 되어있는 부분에 다음과 같이 추가한 확장변수의 번호를 추가해보자.
본인은 따로 추가해주지 않았는데도 별 문제 없었다. 요건 잘 모르겠으니 문제 없다면 넘어가자.

<!--@if($val->idx == 1 || $val->idx == 3 || $val->idx == 4 || $val->idx == 8 || $val->idx == 10)-->



3. 확장변수를 추가한 뒤에는 자신이 설정한 보기 방식에 맞추어 _style.planner_뭐시기.html 파일을 수정해야한다.
"뭐시기"는 자신이 사용중인 타입을 고르면 되고 여하튼 파일을 열었다면 먼저 "확장변수값 얻기 끝"으로 검색해 다음과 같은 부분을 찾은 후

            <!--@if($val->idx == 7 )-->
            {@ $plan_time = $document->getExtraValueHTML($val->idx)}  <!--// 시작종료시간 (09:00, 09:30, 10:00,.. 형식)-->
            <!--@end-->
        <!--@end-->
    <!--@end-->  <!--// 확장변수값 얻기 끝 foreach  -->

필요한 부분을 알아서 잘 추가한다.
대충 딱 보고 반복되는 패턴을 복사&붙여넣기 한 후 확장 변수 숫자이름만 바꿔주면 된다.

            <!--@if($val->idx == 7 )-->
            {@ $plan_time = $document->getExtraValueHTML($val->idx)}  <!--// 시작종료시간 (09:00, 09:30, 10:00,.. 형식)-->
            <!--@end-->
            <!--@if($val->idx == 10 )-->
            {@ $plan_imageView = $document->getExtraValueHTML($val->idx)}  <!--// 이미지 표시 여부-->
            <!--@end-->
        <!--@end-->
    <!--@end-->  <!--// 확장변수값 얻기 끝 foreach  -->

요렇게.

본인은 불러올 확장 변수의 이름을 $plan_imageView 라고 붙였다.
여튼 다른 값과 겹치지 않게 알아서 잘 주면 된다.



4. 추가했다면 $arr_plan[$i][$j] 를 검색해 알아서 다음과 같은 부분을 찾는다.

            <!--@if($arr_repeat[$i][$j] == "*")-->
                <!--@if($arr_plan[$i][$j])--> <!--// 비어있지 않으면 일정 구분자(1차분리자) 추가-->
                    {@ $arr_plan[$i][$j] .="|#&Oslash;#|"}
                <!--@end-->
                    {@ $arr_plan[$i][$j] .=$plan_title."|&Oslash;|".$plan_url."|&Oslash;|".$plan_detail."|&Oslash;|".$plan_bgcolor."|&Oslash;|".$plan_flagicon."|&Oslash;|".$category_title."|&Oslash;|".$category_color."|&Oslash;|".$plan_reply."|&Oslash;|".$plan_time."|&Oslash;|".$plan_new."|&Oslash;|".$plan_img."|&Oslash;|".$plan_length."|&Oslash;|".$plan_docsrl."|&Oslash;|".$plan_start."|&Oslash;|".$plan_end;}  <!--// 어레이에 추가 1차분리자= "|#&Oslash;#|", 2차 분리자 "|&Oslash;|"-->
            <!--@end-->
        <!--@end--> <!--// for 끝-->
      <!--@end--> <!--// for 끝-->

뭔가 복잡해 보이는데 여기서 딱 하나만 추가하면 된다.

            <!--@if($arr_repeat[$i][$j] == "*")-->
                <!--@if($arr_plan[$i][$j])--> <!--// 비어있지 않으면 일정 구분자(1차분리자) 추가-->
                    {@ $arr_plan[$i][$j] .="|#&Oslash;#|"}
                <!--@end-->
                    {@ $arr_plan[$i][$j] .=$plan_title."|&Oslash;|".$plan_url."|&Oslash;|".$plan_detail."|&Oslash;|".$plan_bgcolor."|&Oslash;|".$plan_flagicon."|&Oslash;|".$category_title."|&Oslash;|".$category_color."|&Oslash;|".$plan_reply."|&Oslash;|".$plan_time."|&Oslash;|".$plan_new."|&Oslash;|".$plan_img."|&Oslash;|".$plan_length."|&Oslash;|".$plan_docsrl."|&Oslash;|".$plan_start."|&Oslash;|".$plan_imageView."|&Oslash;|".$plan_end;}  <!--// 어레이에 추가 1차분리자= "|#&Oslash;#|", 2차 분리자 "|&Oslash;|"-->
            <!--@end-->
        <!--@end--> <!--// for 끝-->
      <!--@end--> <!--// for 끝-->


다음과 같이 배열의 끝부분에 위에서 정한 값 이름을 위와 같은 형태로 추가해준다.
그리고 몇번째인지 숫자를 세야 하는데 $plan_title은 0번째, $plan_detail은 1번째, $plan_bgcolor는 2번째 이런식으로 세면 새로 추가한 값은 14번 째가 된다. 이미 앞에서부터 순서가 정해져 쓰이고 있기 때문에 끝부분에 추가해주는 것이 중요하다.




5. 다 끝났다.
그럼 이제 필요한 라인에 $tmparr7[14] 라고 적어주면 해당 확장 변수의 값이 적용된다.
값을 직접 출력하고 싶다면 {$tmparr7[14]}라 적어주면 된다.

<!--@if($tmparr7[14] == "Y")-->(~~생략~~)<!--@else--><img style='margin-left:10px; clear:both; float:left;' src='{$tmparr7[10]}'/><!--@end-->

본인은 위와 같이 확장 변수의 값이 Y면 섬네일 이미지를 출력하지 않도록 구성했다.
여튼 저렇게 배열로 등록해주어야 해당 일자의 확장 변수 값을 가져올 수 있다는 것이 포인트~


  • 2020.03.08 10:48

    비밀댓글입니다

    • Favicon of https://nomo.asia 노모 2020.03.08 10:59 신고

      아뇨,
      확장변수는 게시글에 저장될 수 있는 추가적인 데이터를 의미합니다.

      일반적으로 게시글에는 글 제목, 글 내용 등, 기존에 정해진 일부 데이터를 입력하는 공간만 존재합니다.

      예를 들어, 만약 내가 전화번호를 게시글에 추가로 입력하거나, 방문자로부터 입력받고 싶다면, 확장변수로 정의하여 입력란을 만들 수 있습니다. 이렇게 만들어진 확장변수는 자동적으로 db 에 저장됩니다.

    • Favicon of https://nomo.asia 노모 2020.03.08 11:01 신고

      캘린더에서는 날짜 등 캘린더에 필요한 정보를 입력받고 db에 저장하기 위하여 확장변수를 사용하고, 이것이 8번까지 사용됩니다.

      저는 개인적으로 추가적인 데이터를 입력하고, 캘린더에 표시하기 위해 확장변수를 추가한 것입니다.

      다만 본문에서 9번으로 정의하지 않은 이유는 혹시라도 패치 등으로 캘린더 개발자가 확장변수를 추가할 것을 대비하였기 때문입니다.

    • Favicon of https://nomo.asia 노모 2020.03.08 11:02 신고

      게시글에 추가로 입력하기 위한 데이터 입력란의 개수라고 보셔도 될듯합니다.

    • 2020.03.08 11:41

      비밀댓글입니다

    • Favicon of https://nomo.asia 노모 2020.03.08 12:42 신고

      딱히 게시판 갯수에 따른 제한은 없을 것 같은데요, 어떤 오류가 발생하시는지는 모르겠지만 저는 그런 문제를 경험한 적이 없어서 잘 모르겠습니다.

      순수하게 XE가 막 설치된 상태에 Planner123 스킨만 적용하시고 게시판 9개 만들어서 테스트 후 동일 문제가 발생하는지 확인하시면, 발생하시는 오류가 스킨 자체 문제인지, 아니면 기존에 구축하신 웹사이트의 다른 툴 or 설정과 충돌이 일어나 발생하는 문제인지를 확인하실 수 있을 것 같습니다.

Leave a comment