포럼
확장변수 귀신....
2012.04.06 16:19
아.....
게시판에 확장변수를 6개정도 용감하게 사용하고 있는데...
헉....
필요에 의해서 게시판 관리자모드에서 확장변수의 위치를 이동시키니...
확장변수 값이 복사 되듯 위로 덮히는 현상은 과연....
확장변수1:확장변수값1
확장변수2:확장변수값2
확장변수3:확장변수값3
확장변수4:확장변수값4
확장변수5:확장변수값5
를
확장변수1:확장변수값1
확장변수5:확장변수값5
확장변수4:확장변수값4
확장변수3:확장변수값2
확장변수2:확장변수값2
이렇게 되는건... 흠.. 확장변수 귀신인가요?
DB의 xe_document_extra_vars를 보면 확장변수값들이 제대로 들어 있는데...
왜!!!! 게시판에선 위와 같은 현상이 일어날까요?
정말로 XE 확장변수 귀신이 있는걸까요? T,.T
댓글 14
-
브레인630
2012.04.06 17:04
-
씨지크
2012.04.06 18:00
한 벌 더 써진다는 말씀에 비슷한 경험을 적어봅니다.
같은 구조의 확장변수를 사용하는 게시판 A,B가 있을 때
A게시판의 게시물을 B로 이전시키면
확장변수는 A에서 B로 module_slr 만 '변경' 되는게 아니라
A에있던 변수레코드는 그대로 남기고 B로 '복제'되는 증상이 있었는데 최근 바빠서 최신버젼을 안쓰고있다보니 해결 되었는지는 잘 모르겠네요. -
sejin7940
2012.04.06 18:06
해당버그에대해 2주전쯤 버그패치를 제가 제출해 두었습니다. 아직소식은없는데 인정되면 다음에 패치가되어있겠죠? ^^ -
난다날아
2012.04.06 18:17
해당 버그에 대해 자세히 말씀해 주실 수 있나요?
재현이 안 되는데요.
뭐 확장변수를 몇개, 어떤 타입, 어떻게 추가해서 글을 적을 때 어떻게 적었고 다음에 확장변수 위치를 어떻게 바꿨다 구체적으로 있으면 도움이 될 것 같습니다.
ps. 제가 확장변수 순서 변경하는 쪽에 건드린 것이 있어서 관심이 갑니다.
-
브레인630
2012.04.06 18:20
맞습니다. 이 같은 현상으로 인해... 가끔 확장변수에 등록한 글이 수정이 안됩니다. 오늘 DB 뒤져서 다 살펴보니.. 확장변수 중복이 되면 수정 자체가 안되는 현상도 발생하더군요...^^;
-
sejin7940
2012.04.06 19:23
메인 글의 증상에도 해당되는건진 모르지만, 씨지크 님과 브레인630 님의 현상애 관해. 적혀있고
난다날아님이 구현에 관해 언급을 하셔서 (이게 댓글쪽 현상을 말하는건지 모르지만..)
제가 아는걸 써드리면...
이 버그는 확장변수가 있는체로 이동할때 발생하는 것이고
그냥 눈으로 볼땐 버그가 없는 것처럼 제대로 이동되는것처럼 보이지만.
이동 한 후, 확장변수를 수정해서 저장하면 저장이 안 됩니다.
원인은 글을 이동시키면
xe_documents 에서 해당 글의 module_srl 값은 바뀌는데
xe_document_extra_vars 에 있는module_srl 값이 안 바뀌어서 그럽니다.
그러나 실제 글에서 확장변수 출력시 document_srl 값을 기준으로 출력하니 실제 module_srl 값이 달라도 정상적으로 출력되는 것처럼 보입니다.
문제는, 이동한 글을 저장하게 되면
document_srl 과 module_srl 이 모두 같아야 update 가 되는데
module_srl 값이 다르다보니, 이중으로 새로 등록이 되어버립니다.
(확장변수 저장하고 DB에서 해당 글을 조회해보면, 똑같은 확장변수가 이전전의 module_srl 값으로 하나, 이동된 module_srl 값으로 하나 존재함을 확인할 수 있다)
이렇게 이중으로 기록이 되면서, 그 후에 실제 view 화면등에서 확장변수를 출력할때, module_srl 값까지 확인을 안 하다보니, 최초 기제되었던 이전전의 화장변수 기준으로 읽어오게 되어 실제 변경되어 수정된 내역이계속 안 나타나게 되는겁니다
이 현상을 해결하기 위해서는, 글이동될때 xe_document_extra_vars 에서 module_srl 값까지도 다 바꿔주면 됩니다.
사용할 수 있는 쿼리문이 있을까해서 찾아봤지만, 쿼리를 차지 못해서
쿼리문을 하나 추가하고, document 모듈의 파일 한군데를 수정해서 이 현상을 해결했습니다.자세한 패치는
http://code.google.com/p/xe-core/issues/detail?id=1818&q=sejin7940 보시면 나와있습니다.
-
난다날아
2012.04.06 22:05
본문 글에 대한 문의였습니다. 본문 글 내용은 글 복사가 아니라 확장변수 순서 변경 시 문제가 발생한다는 내용 같습니다. 제가 이해하기로요. 근데 그 부분에 제가 얼마 전에 건드려 놓은 것이 있어서요. ㅎㅎ
-
씨지크
2012.04.09 20:20
멋지십니당
-
브레인630
2012.04.06 19:48
sejin7940님 글대로 패치 실행을 시켜보았는데... srl값은 그대로 가져오는걸 확인했는데 해당 부분의 빈 확장변수값을 입력하기 위해서 수정을 하면 수정이 안되는건 여전합니다. T.T. 수정이 안된 글의 DB를 확인해보니 역시나 확장변수가 또 겹쳐서 들어가더군요... T.T
-
sejin7940
2012.04.06 19:56
그 패치를 한 이후에는, 그런 문제가 안 생긴답니다.
문제는, 그 패치를 하기 이전에 수정한 글들인데..
phpmyadmin 등으로 접속해서, xe_document_extra_vars 테이블에서
해당 글 번호 (document_srl) 로 조회하시면, 확장변수가 2형태로 중복해서 나올겁니다.
거기서 module_srl 값이 틀린걸 찾아서 직접 삭제를 하시고 나면.
그 글들은 그 다음부터 정상적으로 작동합니다.
뭐, 이 버그에 영향받은 (즉 확장변수가 두개 이상 달린) 글들을
일괄적으로 정리하는 쿼리문 을 만들어서 실행시켜 버그에 영향받은 걸 수정하는 패치도 만들 수 있겠지만.
사실 전 그거까지 만들진 않았거든요 (개발 도중에 테스트하다 버그를 찾아서 수정한거여서)
해당 버그가 나타나느 글이 많지 않으면
phpmyadmin 으로 검색해서 지우세요 ^^;
-
라르게덴
2012.04.06 23:55
이 문제게시판간 이동/복사는 예전에 제가 작업하려다가 제로님께서 확장변수의 이동/복사는 의미적으로 맞지 않는다고 하여 진행을 중단한 내용입니다. 이동/복사의 제일 큰 이유는 A,B 게시판간 이동을 할때 var_idx가 서로 틀린 게시판간의 이동의 경우 확장변수 순서가 바뀌게 되고 B의 기존에 양식과 A에서 가져온 양식이 서로 엉킬 수 있는 문제점 입니다.
난다날아님이 우려하고계신 게시판내의 var_idx 변경이 제대로 안되는 문제점만 조사하는게 맞는 것 같습니다.
-
sejin7940
2012.04.07 00:34
그렇죠. 게시판 자체의 확장변수 설정이 서로 유사하지 않으면 꼬이는 현상이 발생할 수 있죠
그러면, 아예 복사할때처럼, 이동에서도 확장변수가 이전이 안 되어야하는데..
문제는.. 복사할때는 이전이 안 되는데, 이동할때는 이전이 된다는 점이죠
즉, 둘 다 이동이 되게 처리를 하든지, 아예 둘 다 이동이 안 되게 처리를 해야하는데..
오히려 어정쩡하게 되어서 이동시 수정이 안 먹는 꽤 심각한 버그가 되어버린 상황이 발생하게 된거죠 ^^
(더 큰 문제는, 이동시 제대로 이전된것처럼 오해하기 딱 좋게 버그가 형성되어있다는 점이죠. 수정해보기전엔 눈치도 못 채거든요. 제대로 이전된줄 알게 되는거죠)
사실, 게시글 복사 / 이동 기능이 제대로만 쓰면 관리 면에서 정말 유용한 기능이거든요
특히, 뉴스 홈페이지 등, 별도 게시판에서 유저의 글을 받고 이를 관리자가 정리해서 실제 메인게시판으로 이전시키는 형태의 사이트에서는, 관리의 용이성을 위해 필수적인 기능이거든요.
게시판들 확장변수 구조를 서로 유사하게 구성해야하는게 최우선 전제인데..
사실 이건 제대로 인지만 시켜주면, 확장변수를 똑같이 생성해두는건 유저도 가능하겠죠
(관리자가 이동/복사 버튼 클릭시 confirm 형태로 안내를 주거나, 안내문을 써둔가해서 우려를 최소화 할 수는 있겠죠)
실제 저의 경우, 사이트의 기능적인 요소에 따라서
글이동시 버그는 앞에 제출한 소스 수정으로 버그를 막을 수 있고
게시글 복사가 필요할 경우 확장변수들이 그대로 복사되도록 소스를 추가해서 처리하고 있긴합니다만...
단지 이게 Core 에 그대로 정착하기에 우려가 많아서 이 좋은 기능을 널리 알릴 수 없다는게 안타까울뿐이랍니다 ^^;
그래도 현재 지금 이동 기능의 버그는 버그가 고쳐지든지, 이동시 확장변수 이동을 아예 막든지..
뭔가 조치는 있어야할꺼예요 ^^; (지금은 수정안 되는 버그가 되어버렸으니)
-
HolyJohn
2012.04.10 03:33
우어... 무언가 고수들의 대화... 초보가 감히 낄수 없는 ㅠ.ㅠ
-
브레인630
2012.04.10 09:38
솔직히 XE가 멀티 카테고리를 지원한다면 확장변수를 굳이 이동, 복사할 필요가 없었습니다.
하지만 멀티 카테고리를 지원하지 않다보니... 각각의 게시글들을 필요에 따라 복사나 이동을 시켜 카테고리를 변동시켜야 했고, 이래서 빈번하게 이동, 복사가 필요하게 된 듯 합니다.
초기에는 이걸 확장변수로 대체해보려고 했으나, 바로 확장변수라는 것 때문에 좌절...^^;
컨텐츠를 중심으로 다루는 사이트에서 컨텐츠 자체를 어떤 한 분류에 집어 넣는다는 것이 이제는 답답해보인다는...^^;
흠... DB를 보아하니... 확장변수 순서를 바꿔주면... DB에 var_idx값이 한 벌 더 써지면서 충돌이 나서 저런 현상이 일어나는 듯... 맞나? 암튼... 한 벌 더 써진 녀석들 DB에서 지우니 제대로 표시가 되네요...헐.. - - ;