자료실

게시판 목록에서 카테고리/확장변수 바로 수정 애드온

2022.03.17 17:04
19,968
11
자료 유형 애드온
간단한 소개 게시판 스킨에서 간단한 조작만 하고, 이 애드온을 사용하면 게시판 목록에서 카테고리 및 확장변수를 바로 업데이트할 수 있습니다.
설치 경로 ./addons/ap_extra_update
코어 지원 범위 Rhymix 2.0
PHP 지원 범위 기타
자료 구분 공개 자료
라이선스 GPL v2
파일명버전날짜용량다운로드 수
ap_extra_update.0.1.5.zip 0.1.5 2023.06.08 11.3KB 644
ap_extra_update.0.1.4.zip 0.1.4 2023.06.08 7.4KB 445
ap_extra_update.0.1.3.zip 0.1.3 2022.03.19 7.1KB 592
ap_extra_update.0.1.2.zip 0.1.2 2022.03.19 7.0KB 502
ap_extra_update.0.1.1.zip 0.1.1 2022.03.19 6.9KB 500
ap_extra_update.0.1.0.zip 0.1.0 2022.03.19 6.8KB 502
ap_extra_update.0.0.1.zip 0.0.1 2022.03.17 5.4KB 522

0.1.5 업데이트 (2023. 06. 08)

- 확장변수 수정시 화면에 수정된 값이 반영되지 않는 문제 수정 (현님님)

- 수정된 파일

  • conf/info.xml

 

0.1.4 업데이트 (2023. 06. 08)

- 확장변수가 빈값일 때 수정이 되지 않는 문제 수정 (현님님)

- 확장변수 값을 입력하지 않고 '수정'하면 (1) 필수항목이면 경고문 출력, (2) 필수항목이 아니면 빈 값 전달

- 카테고리도 아무 것도 선택하지 않은 채 '수정'하면 -> 카테고리값을 0으로 전달

- 확장변수 수정이 거부될 경우(필수항목인데 빈 값을 전달하는 경우) 해당 input 필드가 감춰지지 않고 남게 되는 문제 수정

- 수정된 파일

  • update_extra_vars.php
  • skins/default/js/default.js
  • conf/info.xml

 

0.1.3 업데이트 (2022. 03. 20)

- 게시판 스킨의 확장변수에 onclick 속성이 부여되지 않는 문제 수정 (미이라님)

- default 스킨에서 카테고리 입력 필드에 2차 분류까지 트리 구조 구현

 

0.1.2 업데이트 (2022. 03. 19)

- 기능적 측면으로는 아래의 0.1.1과 다르지 않습니다.

- 다만, 새로고침 없는 카테고리 수정이 필요한 경우에 대비하여 카테고리 번호 업데이트 직후에 관련 json값을 반환하도록 하였습니다.

- 자세한 내용은 https://xetown.com/thirdpartynews/1667415 의 2번 항목을 참조해주세요.

 

0.1.1 업데이트 (2022. 03. 19)

- 카테고리 수정 뒤 카테고리별 문서 갯수가 업데이트 되지 않는 문제 수정 (category count 및 document 캐시 재생성, 산소아빠님)

- 이번 업데이트로 default 스킨에서는 카테고리 수정시 페이지 새로고침이 이뤄집니다.

- 새로고침을 원하지 않으시는 분들은 애드온 스킨의 js를 통해 새로고침 구문을 삭제하시면 됩니다.

 

0.1.0 업데이트 (2022. 03. 19)

- 카테고리 수정 기능을 추가했습니다(산소아빠님). 참고로 저는 스케치북 게시판 스킨 목록 유형에서 다음과 같이 해봤습니다.

<td cond="!$mi->show_cate && $mi->use_category=='Y'" onclick="showUpdateExtraModal(this, {$document->document_srl}, {$document->get('category_srl')}, 'category')"|cond="$grant->manager && $use_category_update" class="cate">~~~~~

- 애드온 설정에서 수정 커맨드 스킨을 지정할 수 있습니다. 단, 현재 자료에서는 default 스킨만 제공됩니다.

- 업데이트 쿼리에 실패할 경우에 대비하여 오류 가능성을 최대한 회피했습니다.

- 기타 몇 가지 동작 개선이 있었고 몇몇 불필요한 코드를 정리했습니다.

 

 

사용 설명

 

가끔씩 게시판 목록에서 카테고리나 확장변수를 바로 수정하고자 하는 질문들이 있어서 관련된 팁을 써볼까 하다가 그냥 애드온으로 만들어봤습니다.

 

 

1. 먼저 애드온을 설치합니다.

 

2. 애드온 설정에서 '카테고리 수정'을 선택하거나 수정할 확장변수의 eid를 기입(복수 기입 가능)한 뒤, 이 설정을 적용할 대상 모듈을 체크합니다.

5d3bf246ee449fbef56b410854d751cd.png

 

3. 목록에서 카테고리를 바로 수정하고자 하는 경우, 게시판 스킨에서 문서 목록의 카테고리 출력 부분에 다음과 같은 onclick 속성을 추가합니다. onclick="showUpdateExtraModal(this, {$document->document_srl}, {$document->get('category_srl')}, 'category')"|cond="$grant->manager && $use_category_update"

예컨대 저는 스케치북 스킨의 목록형에서 다음과 같이 해봤습니다.

<td cond="!$mi->show_cate && $mi->use_category=='Y'" onclick="showUpdateExtraModal(this, {$document->document_srl}, {$document->get('category_srl')}, 'category')"|cond="$grant->manager && $use_category_update" class="cate">~~~~~

 

4. 목록에서 확장변수를 바로 수정하고자 하는 경우, 게시판 스킨에서 문서 목록의 확장변수 출력 부분에 다음과 같은 onclick 속성을 추가합니다. onclick="showUpdateExtraModal(this, {$document->document_srl}, {$val->idx})"|cond="$grant->manager && $use_extra_vars_update && $val->eid === $extra_keys_for_update[$val->idx]->eid"

예컨대 저는 스케치북 스킨의 목록형에서 다음과 같이 해봤습니다.

<td cond="$val->idx!=-1" onclick="showUpdateExtraModal(this, {$document->document_srl}, {$val->idx})"|cond="$grant->manager && $use_extra_vars_update && $val->eid === $extra_keys_for_update[$val->idx]->eid" class="<!--@if($val->eid=='link_url')-->link_url<!--@else-->m_no<!--@end-->">~~~~~~~~~~~~

 

5. 이제 다음과 같이 카테고리 및 확장변수를 바로 수정할 수 있습니다.

 

6. 입력창이 html 형태로 된 템플릿 스킨에서 출력됩니다. 기본으로 default 스킨이 제공되며, default 스킨을 참고하여 사용자 취향에 따라 별도의 스킨을 제작하거나 커스터마이징해서 사용하실 수 있습니다.

예. 미이라님의 별도제작 mh 스킨

예. 토비리님의 default 스킨의 css 커스터마이징 

 

7. 작동 방식 소개

- 애드온에서 설정된 카테고리 수정 옵션 및 입력된 eid들에 따라 관련 변수를 생성

- 변수 수정 커맨드 진행을 위한 모달 요소를 출력하는 템플릿 스킨을 삽입

- 목록에서 클릭을 하면 모달이 show되고 클릭 지점으로부터 전달된 인자값을 통해 해당 변수만의 입력 필드가 디스플레이

- 입력값을 전송하면 애드온의 외부 php 파일을 통해 카테고리 및 확장변수 update 쿼리 실행

- 완료 후 간단한 조작 및 getValueHTML 메소드를 통해 새로운 입력값을 게시판 목록에 반영. 그리고 모달 창 닫음

 

8. 꿀팁

- 카테고리/확장변수 바로 수정 애드온을 관리자뿐 아니라 작성자도 사용할 수 있게 하기 https://xetown.com/tips/1713479

- 본문 읽기 페이지에서도 확장변수 수정하는 방법 https://xetown.com/download/1666779#comment_1674628

윤삼 Lv. 19
아무래도 중급 초반 수준의 코딩 오타쿠인 것 같습니다.

댓글 99

  • 2022.03.20 12:40 #1667761

    지금 사용하다 알게 된 부분인데,
    게시판 확장변수 다중검색 애드온과 충돌이 나는 것 같습니다.
    확장변수 다중검색 애드온이 활성화 되어 있는 페이지에서는
    수정하기 위한 팝업이 나타나질 않네요.
    오류는 아래와 같고

    Uncaught ReferenceError: showUpdateExtraModal is not defined
    at HTMLTableCellElement.onclick

    해당페이지의 확장변수 다중검색 애드온에서 페이지를 제외하면 잘됩니다.
    확장변수를 사용하는 페이지여서 혹시 두 애드온을 모두 사용할 수 있는 방법이 있을까요?

     

    ※ 추가로 팝업은 뜨는데 수정을 하려고 하면 

    "서버와의 통신이 원활하지 않습니다" 라는 메시지와 함께 수정이 되질 않네요 ㅡ.,ㅡ 

    산넘어 산이네요 ㅎ

     

    Failed to load resource: the server responded with a status of 404 (Not Found)

     

    Not Found

    The requested URL /addons/ap_extra_update/update_extra_vars.php was not found on this server.

     

  • 2022.03.20 13:09 #1667798
    왜 안되는지 알았습니다.

    라이믹스 설치 폴더가 www/폴더/ 설치되어 있어서 안되는가봅니다.
    그래서 update_extra_vars.php 파일을 찾을 수 없다고 나오는 것 같아요.
  • 2022.03.20 13:49 #1667818
    $.ajax({
    url: '../addons/ap_extra_update/update_extra_vars.php',

    경로 문제라면 이 부분인데요.
    그럼에도 다른 게시판은 되는데, 다중검색 애드온 게시판에선 안 되는 건 이상하네요.
    저도 시간될 때 한번 테스트해보겠습니다.
  • 2022.03.21 02:18 #1668033
    파일 경로 수정해서 해보셨나요?
    (제가 이걸 늘 못 맞춰요ㅜㅜ)

    일단 확장변수 다중검색 애드온과 여기 애드온 사이의 충돌은 재연이 안 됐습니다.
  • 2022.03.21 05:24 #1668124
    네 경로에 폴더 추가하였더니 잘 됩니다.
    그리고 다중검색애드온이 한싸이트에서 켜져있어도 되는데 다른 사이트에선 안되네요.

    좀더 이것저것 시도를 해봐야 할것같아요
  • 2022.03.24 15:59 #1669553
    댓글주신내용보고 달려왔습니다! 해결했지만 더 유용하게 사용할 수 있을 듯 합니다 감사합니다!!
  • 2022.04.07 02:50 #1674628
    좋은 자료 잘 사용하고 있습니다. 편하고 정말 좋네요.
    저는 목록 뿐만 아니라 읽기 페이지에서도 적용해서 사용하고 있습니다.

    스케치북 기준 확장변수 출력되는 부분에서

    <td cond="$val->eid!='rating'" onclick="showUpdateExtraModal(this, {$oDocument->document_srl}, {$val->idx})"|cond="$grant->manager && $use_extra_vars_update && $val->eid === $extra_keys_for_update[$val->idx]->eid" >{$val->getValueHTML()}</td>

    목록하고, 읽기페이지하고 문서번호 가져오는 변수명이 다르다보니...혹시나 다른분들도 적용 하실려면 변수명만 변경해서 적용하시면 되겠네요.

    목록페이지 : $document->document_srl
    읽기페이지 : $oDocument->document_srl
  • 2022.04.07 03:38 #1674634
    오 역시. 꿀팁 감사합니다!
    읽기 페이지에서도 되는군요.
    정작 저는 전혀 생각도 못했던 사실입니다ㅎㅎㅎ
  • 2023.06.07 04:08 #1766732
    윤삼님 감사하게 잘쓰고 있습니다.~!
    확장변수 입력 값이 없으면 바로 수정이 안 되던데..
    확정변수 입력 값이 없어도 수정 되게 할 수는 없을까요?

    https://youtu.be/eyss9mfm89A

    혹시 몰라 영상으로 남겨 봅니다~!
    감사합니다. 윤삼님!!!!
  • 2023.06.07 05:27 #1766761
    버그네요ㅜ 제보 감사합니다 :)
    그런데 당장에는 작업할 시간이 없어서 자료 패치를 언제까지 할 수 있는지 말씀드리기가 어렵습니다. 시간이 급하시다면 다른 분께 작업 의뢰를 맡기시는 게 좋을 것 같아요.
  • 2023.06.07 06:57 #1766791
    아~ 그런가요~~^^;;
    시간이 급하진 않습니다~!
    윤삼님 개발 덕분에 많은 도움 받고 있습니다.
    저도 이 기회에 XE, 라이믹스 조금 더 공부해 보겠습니다~~!
    감사합니다.~~~!!
  • 2023.06.08 11:56 #1767212
    해당 부분 패치해서 업데이트 파일(0.1.4) 올렸습니다.

    유튜브 영상을 봤을 때 mh 스킨을 쓰셨던 것 같은데, 스킨의 js/default.js 파일에도 수정이 필요합니다.
    특히 default 스킨의 js/default.js 파일을 참조하셔서 수정을 하셔야 합니다.

    success: function(data) {
    ~~~~
    },
    complete: function() {
    위의 부분을 default 스킨의 js/default.js 파일의 것으로 바꿔보세요.
  • 2023.06.08 12:22 #1767222
    윤삼님 패치 업데이트 감사합니다~~!
    https://youtu.be/6qdMKxCEEAY
    패치 적용 했습니다.
    그런데 위 영상처럼 수정 후 새로고침을 해야 변경이 되는 부분이 있습니다.^^
    개발해 주신 것도 감사한데 이렇게 피드백도 해주시니 몸둘바를 모르겠네요..ㅠ
    감사합니다~~~!!!
  • 2023.06.08 12:43 #1767228
    해당 문제 수정해서 0.1.5로 올렸습니다.
    확인 부탁드릴게요 :)
  • 2023.06.08 12:53 #1767231

    넵 감사합니다~!
    저도 방금..... chat GPT를 활용해서 해당 JS에 location.reload(); 추가 후 작동 확인했습니다.
    소중한 시간 내어 주셔서 정말 정말 진심으로 감사합니다.~~!!!!!

  • 2023.06.08 12:57 #1767234

    이 애드온은 수정된 확장변수값만 ajax로 반영해주는 것이어서 페이지 전체를 새로고침하는 것보다는 리소스를 좀 덜 잡아먹을 거예요. 뭐 커다란 차이는 없겠지만요ㅎㅎ
    (다만 카테고리 수정의 경우는 게시판에 있는 카테고리 count 요소를 특정하기 어렵기 때문에 location.reload();가 적용되어 있답니다.)

  • 2023.06.08 12:58 #1767240
    넵~!
    윤삼님 업데이트 한 부분으로 수정했습니다.~!
    감사합니다~~!!!!
  • 2023.06.08 13:06 #1767243
    이번에는...
    값이 있는 상태에서 없는 상태로 변경 하면 아래 영상과 같이 오류가 발생 하네요..ㅠ

    https://youtu.be/nm-U035g-Rs

    확장 변수 값이 있는 상태에서 없는 값으로 변경 후 - '페이지를 수정할 수 없습니다' 경고문 발생 - 새로 고침(F5)하면 값은 정상적으로 삭제 됨...

    자꾸 에러 말씀드려서 송구스럽네요..
    수정 안 해주셔도 충분히 훌륭하지만~!
    참고 하시면 좋을 것 같아서 댓글 남겨 봅니다.
    감사합니다~~!!!
  • 2023.06.08 13:34 #1767248
    기본 스킨에서도 그런가요?
    저는 해당 문제가 재연되질 않아서요.
  • 2023.06.08 13:44 #1767251

    앗~!!

    기본 스킨에서 잘 되네요~!
    기본 스킨까지 확인 해봤어야 했는데..
    못했네요.ㅠ
    늦은시간 까지 답변 감사합니다 윤삼님~!!1f44d.png1f44d.png1f44d.png

  • 2023.07.25 06:40 #1777313
    php 7.4버전 업그레이드 하고 나서 작동을 안하는 부분이 있네요.
    확장변수 타입이 select, date,address, radio, textarea, checkbox 은 작동을 안하는걸 확인을 했고,
    text, phone타입은 작동을 하네요.

    기존에 7.4이하버전에서 잘 사용하고 있다가, php7.4 버전으로 업그레이드 후 작동을 안해서 테스트해보고 있는중입니다. 라이믹스 2.0.24 , 2.1.2버전에서 테스트를 해봤습니다.
  • 2023.07.25 08:03 #1777324
    다 확인을 해볼 수는 없었지만 select, date, radio, checkbox 특별히 문제는 안 보였습니다.
    저는
    rhymix_version : 2.1.2
    php : 7.4.33 (64-bit)
    에서 테스트 했어요.
  • 2023.07.25 12:57 #1777351

    혹시 확장변수 id 부분에 빈값으로 테스트를 해보셨을까요?
    아이디값을 넣으면 작동을 하고 넣지 않으면 작동을 하지 않네요.
    이리저리 테스트 해보다 보니 아이디값이 없는 경우 작동을 안하는것 같습니다.

    일부 작동 된다고 한건 제가 여러 사이트 테스트 하면서 확장변수를 일부만 넣고 테스트 한곳이 있었나 보네요.

    더운 날씨에 힘드시게 한것 같아 죄송합니다. 

     

  • 2023.07.25 13:55 #1777368
    애드온 설정에서 확장변수 id 말씀이시군요.
    저도 테스트해보니 애드온 설정에 값이 없으니 의도와 다르게 작동을 안 하네요.
    시간이 날 때 점검해보겠습니다.
  • 2023.08.13 01:54 #1780337

    확장변수 다중검색 애드온과 함께 사용시, 확장변수 옵션에 검색이 활성화 되어야만 바로 수정이 가능하네요.

    라이믹스 2.1.2버전과 2.0.24 버전 / php 7.4 버전에서 확인 했습니다.

    사용하다 이런 현상이 있어 글 남겨 봅니다.

  • 2023.08.13 08:54 #1780412
    그거는 아마 의도된 동작이 아니었을까 싶은데요.
    검색 가능한 확장변수만 다중검색을 가능하게 했던 건 확실하게 기억 나고요.
    '목록에서 바로 수정'의 경우도 그런 제한이 있었던 것 같아요.
    근데 생각해보니 후자의 경우는 그렇게 할 필요가 없을 것도 같네요.
  • 2023.08.14 00:55 #1780459
    네..다중검색의 경우 검색옵션이 활성화 되어야 검색 노출되는게 맞을듯 합니다.
    목록에서 바로 수정 애드온의 경우 다중검색과 같이 사용하지 않으면 검색 옵션이 활성화 되지 않아도 작동을 하는데, 다중검색 애드온과 같이 사용하면 작동을 안합니다.

    확장변수 수정 애드온
    단독 사용시 : 검색옵션 활성화 상관없이 작동 됨.
    다중검색 애드온과 같이 사용시 : 검색옵션이 활성화 되어야만 작동 됨.
  • 2023.08.14 01:16 #1780463
    ap_extra_search.addon.php 파일에서 131라인정도에
    // 검색 불가 확장변수면 통과
    if ( $val->search !== 'Y' )
    {
    continue;
    }
    이 코드가 영향을 주는것 같네요. 일단 저는 이 코드를 제거하고 확장변수 다중검색 애드온 검색 스킨에서 해당 조건을 부여해서 사용중에 있습니다.
    ap_extra_search/skins/sketchbook5/extra.html 42라인정도에

    <tr loop="$extra_keys => $key, $val" cond="$val->search=='Y'">
    와 같이 수정.

    cond="$val->search=='Y'" 이 조건문 줘서 처리하는 형태로.
  • 2023.08.14 01:45 #1780466
    다중검색이 바로수정에 간섭을 주는 모양이군요.

    그래도 작동하는 방법을 찾으셨다니 다행입니다.
    근데 수정하신 방향으로 하면 다중검색에 부하가 좀 있을 것도 같아요. (이것도 불분명한 기억에 의존한 추측입니다)

    저도 검토를 해봐야 하는데 좀처럼 시간이 나질 않네요.
    짬이 나면 쉬기 바쁘고요ㅠㅠ

    암튼 알려주셔서 감사합니다!!
  • 2023.08.14 02:24 #1780469
    네. 검색량이 많지 않은 게시판이라 임시적으로 적용해서 사용중입니다.
  • 2024.07.02 14:18 #1829810

    이 부분 목록에 추가안하고 작동되게 수정할 수있을까요?
    본문에만 표시되면 되는 내용인데 목록에 나오지 않게 설정하면 수정이 불가하네요 ㅠㅠ

    메인 애드온 php 파일에서 게시판 리스트에  보여지는 부분이 어딘가 있을것 같은데 ㅎㅎ 까막눈이된것처럼 찾아지지가 않네요.

  • 2024.03.20 09:03 #1815582
    감사합니다.
  • 2024.03.24 08:00 #1816179

    1. XE1에서도 잘 돌아갑니까?
    2. 목록에서 특정 확장변수 를 수정을 하면 원문댓글에 자동등록이 되도록 하는것이 가능하신지요? 수정한 이력을 기록으로 남기려는 목적입니다.

    ps.쪽지로 문의하려고 했었는데, 정회원이 아니라서 쪽지를 사용할수 없어서,이렇게 이곳에 문의성글 남깁니다. xetown정책에 어긋나면 삭제하겠습니다.
    정회원 신청은 7일이상 방문후에 가능하다고 하니깐 ,오늘 신청도 할수 없네요.

    참좋은 애드온을 공개를 하셨는데... 생각해보니깐 실사무에 엄청유용하게 사용될것 같아서...추천 한번 꾹~누르려고 해도 추천도 정회원이라야 누를수 있고...
    빨리 정회원 등업이 되야 될텐데...아직입니다.

  • 2024.03.24 08:35 #1816193
    1. XE1에선 테스트를 하지 않았는데 아마 안 될 겁니다.
    2. 댓글 자동 등록은 조금 더 보완하면 가능할 거예요.
  • 2024.03.24 09:01 #1816196

    혹시 제작 의뢰는 받는지요? 연락할수 있는 방법은 있는지요? (VPN을 이용해서 카톡은 사용할수 있어요.)

    ps.삭제를 하려니깐 댓글달려서 삭제가 않되네요. 글수정으로 민감한내용 삭제했습니다.

  • 2024.03.24 14:12 #1816215
    연락처를 함부로 노출하시면 사기꾼이 쉽게 접근할 수 있습니다. 누군가(글쓴이, 네임드)를 사칭할지도 모릅니다.
  • 2024.03.24 13:34 #1816210
    저는 취미생활자여서 제작 의뢰는 받지 않습니다.
    작업의뢰 게시판을 이용하시면 더 실력 있고 책임감 있는 개발자님들과 작업하실 수 있을 거예요.
    https://xetown.com/request
  • 2024.07.02 13:45 #1829805
    혹시 게시물 본문에서
    커스텀으로 뽑아낸
    {$oDocument->getExtraEidValue('abc')} 값이 있다면 이값에 수정기능을 적용할 수 있는방법도 있을까요?
  • 2024.07.03 04:00 #1829864
    해당 값이 확장변수 필드에 저장이 되어 있다면 가능할 것 같은데용
  • 2024.07.03 04:25 #1829875
    넵 지금은
    순차적으로 반복되는 td 행 전체에 적용하는방식으로 되어있는데

    저걸 커스텀으로 값을 뽑아낸경우에도 클릭하여 수정하게끔해주고싶어서요.

    저는 본문에서 순차적으로 반복되는 행으로 말고 커스텀으로 필요한 부분만 뽑아내게끔 쓰고있다보니 적용에 어려움이 있네요.

    자바 if문 엄청 떄려넣어서 abc랑 일치하는 행이외는 display:none로 나오게 하는방법도 있겠지만 너무 비정상적인 방법같아서요.
    저도 연구 한번 해보겠습니다. ㅎㅎ
  • 2024.07.02 14:34 #1829815

    기능 개선 요청이 하나 있는데 기존에 선택되어있는 값이 보여지지 않고 공백으로 나오는 증상이 있어 불편합니다.
    현재상태를 그대로 보여주면 좋겠습니다.

     

    image.png

  • 2024.07.03 04:04 #1829867
    스킨 따라 다르지 않을까 하는 생각도 드는데 한번 체크해봐야겠네요
  • 2024.07.03 04:23 #1829872
    답변 감사합니다.
    제작 시연영상그리고
    https://xetown.com/download/1666779#comment_1666833
    요 댓글을 확인해봐도
    그리고 여타 댓글들의 스크린샷을 보아도
    구현이 안되어있는것 같습니다. 먼 훗날 시간이되면 ㅎㅎ 패치해주시면 감사드리겠습니다.
  • 2024.07.03 04:40 #1829888

    몇몇가지 불편사항이 더 있어서 또 댓글 남겨 봅니다.

     

    https://xetown.com/download/1666779#comment_1674628

    저는 위 댓글처럼 본문 내에서 사용하고자하여 적용하였는데

     

     

    image.png

    위처럼 게시판 설정에서 목록에서 무조건 추가 해야지 애드온이 반영됩니다.

    목록말고 본문에서만 작동되면 되는상황이라서 목록에 추가를 안하고 이용하고 싶습니다.

     

     

    그리고 

     

    image.png

     

     

    아무것도 입력하지 않으면 모든 확장변수가 수정대상이 된다고 하였지만 아무것도 입력하지 않으면 아무것도 작동하지 않습니다.

     

    감사합니다.

  • 2025.02.27 04:41 #1860871

    image.png

     

    1. 애드온 설정에서 빈 값이면 적용이 되어야 한다고 나오는데 이게 false로 뜹니다.

    아무 것도 입력하지 않으면 모든 확장변수가 수정대상이 되게 하려면..

    1.1. addons/ap_extra_update/ap_extra_update.addon.php:52

    if ( empty($extra_keys_for_update) ) { $use_extra_vars_update = true; }

    여기가 false로 되어있는걸 true로 변경합니다.

    1.2. 그리고 해당 스킨에서 조건문을 아래와 같이 수정해줬습니다.

    ($grant->manager && $use_extra_vars_update) || ($grant->manager && $val->eid === $extra_keys_for_update[$val->idx]->eid)

    1.3. addons/ap_extra_update/skins/default/update.html:43

    기존코드

    <!--@foreach($extra_keys_for_update as $key => $val)--> <div class="ap_extra_update_element" rel="{$val->idx}"> <div class="ap_extra_update_name">{$val->name}</div> <div class="ap_extra_update_formHTML">{$val->getFormHTML()}</div> </div> <!--@endforeach-->

     

    이 코드 아래에 아래 코드를 추가로 작성해넣습니다.

     

    <!--@if(empty($extra_keys_for_update))--> <!--@foreach($extra_keys as $key => $val)--> <div class="ap_extra_update_element" rel="{$val->idx}"> <div class="ap_extra_update_name">{$val->name}</div> <div class="ap_extra_update_formHTML">{$val->getFormHTML()}</div> </div> <!--@endforeach--> <!--@end-->

     

    <!--@if(empty($extra_keys_for_update))--> <!--@foreach($list_config as $key => $val)--> <!--@if($val->idx!==-1)--> <div class="ap_extra_update_element" rel="{$val->idx}"> <div class="ap_extra_update_name">{$val->name}</div> <div class="ap_extra_update_formHTML">{$val->getFormHTML()}</div> </div> <!--@endif--> <!--@endforeach--> <!--@end-->

     

    1.4.addons/ap_extra_update/skins/default/js/default.js:82

    이렇게 추가하면 현재 설치된 경로가 서브디렉토리여도 php 파일을 제대로 찾아줍니다.

    var location = window.location.href;

    $.ajax({ url: location + 'addons/ap_extra_update/update_extra_vars.php',

     

    1.5. localhost에서 테스트 중인데 이런 오류가 발생

    Warning: Undefined array key "HTTP_REFERER" in /Users/eond/PhpstormProjects/eond/addons/ap_extra_update/update_extra_vars.php on line 4 Deprecated: strstr(): Passing null to parameter #1 ($haystack) of type string is deprecated in /Users/eond/PhpstormProjects/eond/addons/ap_extra_update/update_extra_vars.php on line 4 Warning: Undefined array key "HTTP_REFERER" in /Users/eond/PhpstormProjects/eond/addons/ap_extra_update/update_extra_vars.php on line 4 Deprecated: strstr(): Passing null to parameter #1 ($haystack) of type string is deprecated in /Users/eond/PhpstormProjects/eond/addons/ap_extra_update/update_extra_vars.php on line 4

     

    아래와 같이 수정함

    addons/ap_extra_update/update_extra_vars.php:3

    if (empty($_SERVER['HTTP_REFERER']) || (!str_contains($_SERVER['HTTP_REFERER'], $_SERVER['SERVER_NAME']) && !str_contains($_SERVER['HTTP_REFERER'], 'update_extra_vars.php'))) { exit; }

     

    include RX_BASEDIR.'common/autoload.php';

  • 2025.02.27 04:48 #1860874
    우왕굳입니다!!!
  • 2025.02.27 06:42 #1860891

    오류가 좀 있는거 같은데 같이 테스트 도와주실 수 있으신가요?;;

    1. 환경

    1) 라디오 체크박스

    2) 텍스트 박스

    2)만 수정할 땐 잘됨. 1)만 수정할 땐 2가 빈 값으로 나와서 수정이 안됨.

    radio는 value값이 첫번째 값으로 선택되어져있는데 text는 빈 값으로 나와있음. 기존 값을 못 불러오는 듯.

    스킨 문제가 아님. 모든 스킨 동일함. 애드온 자체에서 못 불러오는 거 같음.

     

     

    경로 : addons/ap_extra_update
    자료설명 : 게시판 스킨에서 리스트에서 바로 확장변수, 카테고리를 변경할 수 있는 애드온

     

    문제 : 아래와 같음.
    1. 확장변수 type이 text 박스인 경우 value 값을 못 가져옴
    - text, date 다 못 불러옴. (작년 7월에 라이믹스 업데이트 관련해서 톰캣님 보고랑 동일한 현상.)
    2. radio type은 문제없음
    3. 수정할 때 display:none 방식으로 다른 확장변수들을 감췄다 보였다 하고 있음. 
    그래서 type=text를 수정할 땐 radio가 value를 인식해서 괜찮은데, 
    radio인 항목을 수정하면 다른 확장변수가 text value가 없어서

    그냥 수정할 값만 ajax로 불러온다거나 하는 방식이면 1도 상관없음.
    3번에 추가. 확장변수 설정에 필수인 항목이 있어서 그럼. 필수지정이 아니면 해당 값을 못 불러와도 저장 잘됨

  • 2025.02.27 07:47 #1860899
    작년이면 아마도 코어의 확장변수 관련 업데이트가 있으면서 동반된 문제가 아닌가 싶어요,
    한번 발본적으로다가 검토해보겠습니다!
  • 2025.02.27 14:23 #1860965

    확인해보니,
    1. 오류가 아니라 애드온 자체에서 확장변수값을 불러오는 부분에 해당하는 코드가 원래 없습니다.
    2. 확장변수값을 가져오려면 게시물 자체의 document_srl 값을 알아야 하는데, 애드온에서 알 수 있는 방도가 없기 때문에
    (카톡방 판다님 말씀 : ontext::get('document_list') 해서 각각 확장변수 로딩해서 배열만들고 update.html 에 넘어가게하던지, 아니면 default.js 에서 켜질대에 ajax 로 불러오게 해야될것같아요)

    3. 기본 동작 자체도 보니깐, 게시판 스킨에서
    onclick="showUpdateExtraModal(this, {$document->document_srl}, {$val->idx})
    이렇게 전달하고 있는데, 여기서 extra_vars 값도 추가해서 전달하도록 만드는 방법이 코드 부담이 적을 듯 합니다.

     

    https://eond.com/xemarket/474553