Extra Form
자료 소개 게시판 스킨에서 간단한 조작만 하고, 이 애드온을 사용하면 게시판 목록에서 카테고리 및 확장변수를 바로 업데이트할 수 있습니다.
설치 경로 ./addons/ap_extra_update
테스트 환경 Rhymix 2.0
라이선스 GPL v2
이름 버전 날짜 다운수
ap_extra_update.0.1.3.zip 0.1.3 2022-03-20 118
ap_extra_update.0.1.2.zip 0.1.2 2022-03-19 42
ap_extra_update.0.1.1.zip 0.1.1 2022-03-19 41
ap_extra_update.0.1.0.zip 0.1.0 2022-03-19 42
ap_extra_update.0.0.1.zip 0.0.1 2022-03-18 62

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="<[email protected]($val->eid=='link_url')-->link_url<[email protected]>m_no<[email protected]>">~~~~~~~~~~~~

 

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

제작자 윤삼

profile
아무래도 중급 초반 수준의 코딩 오타쿠인 것 같습니다.
  • ?
    좋은 자료 잘 사용하고 있습니다. 편하고 정말 좋네요.
    저는 목록 뿐만 아니라 읽기 페이지에서도 적용해서 사용하고 있습니다.

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

    <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
  • ? profile
    오 역시. 꿀팁 감사합니다!
    읽기 페이지에서도 되는군요.
    정작 저는 전혀 생각도 못했던 사실입니다ㅎㅎㅎ
  • ?
    댓글주신내용보고 달려왔습니다! 해결했지만 더 유용하게 사용할 수 있을 듯 합니다 감사합니다!!
  • profile

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

    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.

     

  • profile
    왜 안되는지 알았습니다.

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

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

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

    좀더 이것저것 시도를 해봐야 할것같아요
  • ?

    고마움의 표시로 스킨 하나 만들어 봅니다.

    버턴 색상, 팝업 그림자

    그리고 팝업창이 마우스 드래그시 움직입니다.(필요하려나~)

    2022-03-20 110333.jpg

    Atachment
    첨부
  • ? profile
    ㅎㅎ 예쁩니다~ (공개자료실에는 댓글 추천이 불가능하다니!)
    제작/사용 중인 게시판 스킨과 어울리게 이렇게 활용하면 딱이죠.
    감사합니다!!
  • profile

    카테고리도 잘 동작하네요. 훌륭합니다~

     

    관리자 게시판 관리 / 확장변수 에서는 "확장변수 ID" 라는 이름으로 쓰고 있으니까, 애드온에서도 확장변수 eid 보다는 확장변수 ID라고 써주면 통일감이 있을것 같습니다(그냥 제 의견~ㅎㅎ).

     

    애드온 설정에서 확장변수 ID를 지정하지 않으면(비어 있으면),  $extra_keys_for_update = $extra_keys 로 해서 모든 확장변수를 편집 가능하게 해주면 편할것도 같네요.

  • profile profile
    좋은 의견이십니다!
    그리고 생각해보니 $extra_keys는 목록으로 설정된 것에서만 가져오는 것도 좋을 것 같은데 정말로 그런지는 좀 더 깊은 생각을 해봐야겠어요.
    또 게시판 스킨에서 onclick으로 실행하는 것도 그냥 array변수로 eid를 직접 코딩하는 것보다는 $extra_keys_for_update를 그냥 가져오는 것이 나을 것 같구요.
    의견을 주시니 저도 개선사항이 더 눈에 들어오는 것 같습니다ㅎㅎ
  • ?

    0.0.1 버전에서는 잘 작동 했었는데요.
    0.1 버전부터는 카테고리 부분은 잘 작동하는데
    확장변수 부분이 팝업창이 출력이 안됩니다.

    onclick 부분에서 작동을 안하는 듯합니다.

    0.0.1 버전때 코드를 사용하면 팝업은 출력되는데 안에 내용이 없이 백지입니다.

  • ? profile
    콘솔 에러를 보면 좋겠는데요.
    서로 사용하는 jQuery버전이 다르거나 브라우저가 다를 수 있는데 제가 놓친 부분이 있을지 모르겠습니다.

    확장변수 onclick 속성을
    onclick="showUpdateExtraModal(this, {$document->document_srl}, {$val->idx})"|cond="$grant->manager && $use_extra_vars_update && in_array($val->eid, array('name', 'date'))"
    에서
    onclick="showUpdateExtraModal(this, {$document->document_srl}, {$val->idx}, '')"|cond="$grant->manager && $use_extra_vars_update && in_array($val->eid, array('name', 'date'))"
    으로 혹시 해봐주실 수 있을까요?
  • profile ?
    콘솔 에러 내용입니다.
    sale:5455 Uncaught ReferenceError: showUpdateExtraModal is not defined
    at HTMLTableCellElement.onclick (sale:5455:690)

    수정해 주신 코드도 작동 안되는데요
  • ? profile

    함수 정의가 안 된 거면... 혹시 캐시파일 재생성이나 브라우저 캐시 삭제도 해보셨을까요?

  • profile ?
    캐시파일 재생성이나 브라우저 캐시 삭제 다 해도 안되는데요ㅠㅠ
  • ? profile
    카테고리에선 모달창이 뜨는데 확장변수에는 모달창이 안 뜬다....
    딱히 이렇다 할 생각이 안 떠오릅니다.
    상황 재연도 되질 않으니 막막하구요ㅜ
    혹시 다른 js나 css와 충돌 같은 문제이려나요...
  • profile ?
    저도 스케치북 스킨을 너무 많이 커스터마이징 해서
    어디서 어떻게 잘못된 것인지 모르겠네요
    솔직히 카테고리 수정은 딱히 필요한 기능이 아니라 0.0.1 버전 사용해야 겠네요.
    신경 써 주셔서 감사합니다.
  • profile ?
    스케치북 스킨의 문제는 아닌 듯 하네요.
    오리지날 버전으로 테스트 해봐도 같은 증상이네요.
    오리무중입니다~~~
  • ? profile

    혹시 스크립트 압축해서 운영하시나요?

    간혹 스크립트 압축 기능과 충돌이 나타나기도 하던데, 설마 또 그런 건 아니겠죠;;;

  • profile ?
    스크립트 압축 기능 사용중이었는데 해제해도 안되요
  • ? profile

    이유를 찾은 것 같습니다.


    ap_extra_update.addon.php 파일애서 $extra_keys 변수 정의가 누락됐었어요;;;
    이게 다른 서드파티에 의해 $extra_keys가 설정되어 있던 것을 처음부터 설정된 변수로 착각하고서는ㅜ 애드온 업데이트 과정에서 삭제를 했었던 것 같아요.

     

    0.1.3 버전을 적용해보시면 될 것 같습니다.

  • profile ?
    잘 됩니다. Good👍
    고생 하셨을걸 생각하니 왠지 죄송하네요
    거듭 감사합니다.
  • ? profile
    아닙니다. 말씀 안 해주셨으면 낭패 볼 뻔했어요ㅎㅎㅎ
  • profile ?

    재미 있는 증상이 있어서 글 남깁니다.

    화면 캡처 2022-03-20 084049.jpg

    확장변수가 2개이상이거나

    확장변수 + 분류가 있을시

    첫 실행시 2개가 동시에 출력됩니다.

    다음 부터는 정상적으로 1개만 출력되네요.

    근데 2개 이상이 같이 출력되어도 괜찮겠는데요

  • ? profile
    엇, 저는 재미가 ㅡㅜ ㅋㅋㅋㅋㅋ
    애초에 하나만 뜨게 설계가 된 거여서...
    근데 이것 또한 재연이 어럽네요ㅠ
    버그가 나오는데 어디서 나오는지ㄷㄷㄷ

    확장변수들을 한번에 처리하는 게 나은가요?
    그러면 문서목록에서 기존 확장변수값을 가져오고 ajax 실행에 따라 실시간으로 값을 업데이트해주고 등등등을 해야 해서 간단하지만은 않을 작업이 될 것 같습니다.

    만약 그런 기능이 필요하다면 애드온 스킨에서 처리가 가능할 테니, 이것은 운영자들 또는 개발의뢰의 몫으로 넘기렵니다;;;

    암튼 버그를 또 찾아보겠습니다~
  • profile
    굿굿 또 좋은 자료를 올리셨군
  • profile

    놀랍네요. 정말 원하던 기능입니다. 감사합니다

    관련기능에 카테고리도 같은 방법으로 가능하지 않을까하는 생각이 드네요. 제목도? ... ㅎ 갑자기 드는 생각이었습니다. 날짜도? ㅎㅎ 죄송합니다...

  • profile profile

    카테고리 정도는 고려해볼 만하겠네요.
    근데 그 이상의 기능 추가는 작업의뢰 쪽으로 추천드립니다요;;

     

    근데 생각해보니 카테고리 수정도 일이 커질 것 같은데... (아 어떻게 하지ㅜㅜ)

  • profile profile
    작품을 보니 머리속에 떠오른것을 적어보았어요^^; 부담드리려는 것은 아니였습니다. ㅜㅜ 현재 기능으로도 엄청 대단하고 감사해요. 늘 응원합니다~^^ 식사 맛있게하세요~
  • profile profile
    근데 또 카테고리는 도전의식이 생겨요ㅠㅠㅠㅠ
  • profile profile
    카테고리... 정말 유용할것 같죠? ㅠㅠ 죄송합니다. 이렇게 말만해서 ㅠㅠ
    조용히 외쳐봅니다.

    윤삼님 화이팅!!
  • profile profile
    카테고리 수정 기능도 추가했어요.
    애드온 스킨에서는 메뉴 트리 구분 없이 주르륵 뜨는 형태로 되어 있는데요.
    보시고 좋은 아이디어 있으시면 나눠주세요~
  • profile profile
    와.. 역시!! 월요일 출근을 위해 pcr검사하허 나왔는데 집에 돌아가면 바로 적용해보겠습니다. 감사합니다.
  • profile profile

    우선 적용해보았는데요~ 리스트에서는 잘 변경되는데,
    카테고리 갯수가 변경이 안되네요. 새로고침을 해도 이전 카테고리 숫자가 그대로 적용됩니다.

    예를 들어

    '접수(10개)' 카테고리 문서를 '완료(10개)' 카테고리로 변경하면
    '접수(11개)' , 완료(9개)로 되어야 하는데 변경하기 전과 동일하게 적용되며,
    새로고침하여도 수정이 되지 않는 문제가 있는것같습니다~

  • profile profile

    카테고리 수정이 이렇게 까다롭습니다ㅋㅋㅋ 어떤 상황인지 대강 알겠어요 :)

    1. 캐시파일 재생성을 해야 해서 그럴 거예요.

    2. 근데 해당 버그를 수정하더라도 새로고침 없이 카테고리 문서 숫자 변경은 어렵습니다.
    스킨들마다 문서 숫자의 위치가 달라서 포지션을 잡을 수가 없거든요.

     

    3. 쿼리 업데이트 후 캐시파일 수정하고 강제로 새로고침을 하게 하는 것도 방법일 텐데, 다만 그게 바람직할지는 잘 모르겠네요.

  • profile profile
    그렇군요 ㅎ
    역시 쉽지 않네요.

    1. 캐시파일 재생성을 해도... 변하지가 않네요.
    2. 새로고침없이 카테고리 문서 숫자 변경은 안되더라도 새로고침 후 변경이 된다면 사용상 문제는 크게 없을 것 같아요.
    2. 글을 선택하고 윤삼님 문서관리 애드온을 이용하여 카테고리 변경해주거나, 직접 글을 수정해서 카테고리 변경을 두번정도 해주면 문서 숫자에 반영이 되네요.
  • profile profile

    네, 문서관리 애드온이나 직접 글 수정은 캐시 수정이 이루어진 후에 새로고침이 돼서 그래요.
    아무래도 이번 애드온에서도 카테고리 수정은 수정 후에 바로 페이지 새로고침이 있어야 할 것 같습니다.

     

    여기 댓글의 첨부파일을 덮어씌워서 테스트해봐주시겠어요?

    여러 게시판 스킨을 직접 테스트할 수 없다보니 아무래도 도움이 필요합니다 ^^;;

     

    Atachment
    첨부
  • profile profile
    지금 확인해보았는데요.
    너무 잘 됩니다~
    윤삼님 정말 최고네요!!
  • profile profile
    네, 확인 감사합니다. 덕분에 0.1.1로 판올림했어요~!
  • profile
    오오... 짱입니다..!
  • profile
    워메 이런이런.. ㅋ
  • ?
    와! 정말 정말 필요했던 기능인데
    이렇게 만들어 주시다니 감사합니다.
    최고👍💕
  • ? profile
    언제나 잘 써주셔서 제가 감사하죠ㅎㅎ
  • ?
    와..대박이네요.. 윤삼님은 정말 후원배너라도 달아 놓으셔야 겠어요.
  • ? profile
    재밌어서 하는 거라 괜찮긴 한데 가난하긴 합니다ㅋㅋㅋㅋ
  • profile

    훌륭합니다~. 잘 되네요. 테스트해보고 있는데, 확장변수 팝업창을 띄울때 각 문서의 현재 값을 표시해주면 더 편할 것 같은데, showUpdateExtraModal 에서 스킨으로 document_srl을 전달해주면 가능할것 같습니다. ㅎㅎ  PS: 감사 표시로, 팝업창 css를 조금 바꿔봤습니다~ (날짜 버튼 크기가 않맞고 얼라인 안맞는 것이 있어 재업로드합니다~)

    Atachment
    첨부
  • profile profile
    한밤에 번거로워서 빼먹었던 건데 딱 집어내시네요 :)
    그리고, 쿼리 실패로 null값 들어오는 경우에 대비해 경고창도 띄워야 하고 해서 어차피 0.0.2를 가긴 가야겠어요.
    css 선물 감사합니다. 감동ㅡㅜ
  • profile profile

    어라? 다운 받고 적용하려 했는데 다운로드가 안 되네요;;;

    타운 관리자님께 문의를 드려야 하는 것인지..

    0.png

  • profile profile

    어라… 제가해도 다운로드가 안되네요. (zip 으로 바꾸니까 다운로드 되네요)

  • profile profile

    아... 감사합니다!

     

    덧. 글자가 커지고 버튼이 예뻐졌어요. ㅎㅎ 감사합니다~!

  • profile profile

    form을 미리 만들어뒀다가 java script로 띄워주는 방식이라, 기존값을 보여주는 것이 성가신 일이겠네요. 괜찮습니다. 기존값 안나와도 쓰는데는 불편은 없네요~~.

  • profile profile
    네, 해보려고 다시 들여다보긴 했었는데 애로사항이 많았어요ㅜㅜ
    제 생각에도 큰 지장은 없겠다싶어 그냥 진행을 했습니다~
  • profile
    와우~ 멋집니다. 개인적으로도 유용하게 사용할 수 있는 자료일 것 같습니다.
  • profile profile
    혹시 쓰시게 되면 피드백도 부탁드려요~
  • profile
    오옷 좋은 자료네요.
  • profile profile
    ㅎㅎ 격려 감사합니다~ 오랜만이에요!