• XE 가리기보기
  • 파워볼게임 가리기보기
  • 엑셀_PDF게시판2 가리기보기

xe_documents 테이블에 컬럼을 추가 하고, 추가한 컬럼을 게시판에 보여주고 싶습니다.

xe_documents 테이블에 컬럼을 추가 하고 게시판에 뿌리고 싶은데 테이블에 컬럼을 추가 하고 modules\document\document.item.php 에 함수도 추가해서 $document->getFlr() 이런식으로 뿌려주게끔 소스 수정 했는데 추가한 컬럼이 나오지...

xe_documents 테이블에 컬럼을 추가 하고, 추가한 컬럼을 게시판에 보여주고 싶습니다.

xe_documents 테이블에 컬럼을 추가 하고 게시판에 뿌리고 싶은데 테이블에 컬럼을 추가 하고 modules\document\document.item.php 에 함수도 추가해서 $document->getFlr() 이런식으로 뿌려주게끔 소스 수정 했는데 추가한 컬럼이 나오지...

xe_documents 테이블에 컬럼을 추가 하고 게시판에 뿌리고 싶은데 

 

테이블에 컬럼을 추가 하고 modules\document\document.item.php 에 함수도 추가해서

 

$document->getFlr() 이런식으로 뿌려주게끔 소스 수정 했는데 추가한 컬럼이 나오지 않습니다.

 

이게 너무 어렵네요 3일째 여기에 매달리고 있습니다.

 

고수님들 도와주세요ㅜㅜ

  • 부제목
  • 본문 제목 글꼴
  • 본문 커버 높이
  • label
  • starate
  • coverimage
  • vidmp4
  • vidwebm
웹기프트 by
웹기프트
 관리그룹 
댓글4
로그인 후 댓글 작성이 가능합니다.
로그인 후 댓글 작성이 가능합니다.
    4
  • 웹기프트
    웹기프트 2018.12.30 00:17

    modules/document/board/board.view.php 에서

     

    _makeListColumnList()  함수에서

     

    $defaultColumn  값이 정의되어있는데, 여기에 추가하신 칼럼값을 추가하시면 됩니다.

     

    defaultColumn 함수 끝부분에 추가를 하시거나...

     

    그 밑에 

     

    $defaultColumn = array_merge(array('칼럼명'),$defaultColumn);

     

    이렇게 아예 별도 구문을 구별해서 기재하셔도 되고요

  • 웹기프트
    웹기프트 2018.12.30 00:18

    모듈.class.php에 

     

    function checkUpdate() 와  function moduleUpdate()에 원하는 칼럼이나 index를 설정해주면 됨

     

    /**
        * @brief 설치가 이상이 없는지 체크하는 method
        **/
        function checkUpdate() {
        $oDB = &DB::getInstance();
        /* 칼럼이 존재하는지 체크 .................................................*/
        if(!$oDB->isColumnExists("table_name", "my_column1")) return true;
        if(!$oDB->isColumnExists("table_name", "my_column2")) return true;
        if(!$oDB->isColumnExists("table_name", "my_column3")) return true;
        if(!$oDB->isColumnExists("table_name", "my_column4")) return true;
        if(!$oDB->isColumnExists("table_name", "my_column5")) return true;
        if(!$oDB->isColumnExists("table_name", "my_column6")) return true;
        if(!$oDB->isColumnExists("table_name", "my_column7")) return true;
        /* 칼럼이 존재하는지 체크 .................................................*/
     
        /* Index 존재하는지 체크 .................................................*/
        if(!$oDB->isIndexExists("documents","idx_module_list_order")) return true;
        if(!$oDB->isIndexExists("documents","idx_module_update_order")) return true;
        if(!$oDB->isIndexExists("documents","idx_module_readed_count")) return true;
        if(!$oDB->isIndexExists("documents","idx_module_voted_count")) return true;
        /* Index 존재하는지 체크 .................................................*/
     
        return false;
        }
     
        /**
        * @brief 업데이트 실행
        **/
        function moduleUpdate() {
        $oDB = &DB::getInstance();
     
        /* xe 에서 칼럼 추가하는 방식 ........................................... */
        if(!$oDB->isColumnExists("table_name","my_column1")) $oDB->addColumn('table_name',"my_column1","number",12,0);
        if(!$oDB->isColumnExists("table_name","my_column2")) $oDB->addColumn('table_name',"my_column2","char",1,"N");
        if(!$oDB->isColumnExists("table_name","my_column3")) $oDB->addColumn('table_name',"my_column3","text");
        if(!$oDB->isColumnExists("table_name","my_column4")) $oDB->addColumn('table_name',"my_column4", "varchar", 30, 'module');
        if(!$oDB->isColumnExists("table_name","my_column5")) $oDB->addColumn('table_name',"my_column5","bigtext");
        /* xe 에서 칼럼 추가하는 방식 ........................................... */
     
        /* Index 추가 .................................................*/
        if(!$oDB->isIndexExists("documents","idx_module_list_order")) $oDB->addIndex("documents","idx_module_list_order", array("module_srl","list_order"));
        if(!$oDB->isIndexExists("documents","idx_module_update_order")) $oDB->addIndex("documents","idx_module_update_order", array("module_srl","update_order"));
        if(!$oDB->isIndexExists("documents","idx_module_readed_count")) $oDB->addIndex("documents","idx_module_readed_count", array("module_srl","readed_count"));
        if(!$oDB->isIndexExists("documents","idx_module_voted_count")) $oDB->addIndex("documents","idx_module_voted_count", array("module_srl","voted_count"));
        /* Index 추가 .................................................*/
     
        /* 커스텀으로 추가하는 방식 ........................................... */
        if(!$oDB->isColumnExists("table_name", "my_column1")) {
            $oDB->_query(" ALTER TABLE xe_table_name ADD my_column1 int(11) NOT NULL DEFAULT '0'  AFTER my_column0 "); // my_column0 뒤에 my_column1 추가
        } 
     
        if(!$oDB->isColumnExists("table_name", "my_column2")) {
            $oDB->_query(" ALTER TABLE xe_table_name ADD my_column2 varchar(250) NOT NULL DEFAULT ''  AFTER my_column1 "); // my_column1 뒤에 my_column2 추가
        }
     
        if(!$oDB->isColumnExists("table_name", "my_column3")) {
            $oDB->_query(" ALTER TABLE xe_table_name ADD my_column3 char(1) NOT NULL DEFAULT 'y'  AFTER my_column2 "); // my_column2 뒤에 my_column3 추가
        }
     
        if(!$oDB->isColumnExists("table_name", "my_column4")) {
            $oDB->_query(" ALTER TABLE xe_table_name ADD my_column4 bigtext  AFTER my_column3 "); // my_column3 뒤에 my_column4 추가
        }
     
        if(!$oDB->isColumnExists("table_name", "my_column5")) {
            $oDB->_query(" ALTER TABLE xe_table_name ADD my_column5 text AFTER my_column4 "); // my_column4 뒤에 my_column5 추가
        }
        /* 커스텀으로 추가하는 방식 ........................................... */
     
        //table_name 테이블에 my_column1 칼럼 제거
        if ($oDB->isColumnExists("table_name", "my_column1")) $oDB->dropColumn("table_name", "my_column1");
     
        //table_name 테이블에 my_column2 칼럼 제거
        if ($oDB->isColumnExists("table_name", "my_column2")) $oDB->dropColumn("table_name", "my_column2");
     
        //table_name 테이블에 my_column3 칼럼 제거
        if ($oDB->isColumnExists("table_name", "my_column3")) $oDB->dropColumn("table_name", "my_column3");
     
        //table_name 테이블에 my_column4 칼럼 제거
        if ($oDB->isColumnExists("table_name", "my_column4")) $oDB->dropColumn("table_name", "my_column4");
     
        //table_name 테이블에 my_column5 칼럼 제거
        if ($oDB->isColumnExists("table_name", "my_column5")) $oDB->dropColumn("table_name", "my_column5");
     
     
        return new Object();
        }

     

  • 웹기프트
    웹기프트 2018.12.30 00:19

    글쓰기 증상 : 글 등록을 누르면 Unknown column 'is_secret' in 'field list'의 메세지가 뜨며 작성이 안된다.

     

    댓글 증상 : 목록에서 댓글 숫자는 보이는데 글을 보면 댓글이 안보인다.

     

    원인 : XE1.5에는 is_secret, allow_comment, lock_comment 필드가 없어지므로 1.4에서 장애가 생김.

     

     

    <필드 생성 방법>

    1. 호스팅업체에서 제공하는 MySQL웹어드민에 접속한다.

     

    2. MySQL에 로그인 한다.

     

    3. 왼쪽 창에 information_schema(28)밑에 자기가 만든 이름의 DB를 클릭한다.

     

    4. 왼쪽 창에서 xe_documents 클릭

     

    5. 오른쪽 창에 [구조]탭 클릭

     

    6. 스크롤을 중간 밑쯤 내리면 '인쇄용 보기~~⊙테이블의 마지막○테이블의 처음~~'부분을 찾음

     

     

     

    7. documents_srl▼을 클릭해서 is_notice를 선택하고 [실행]클릭

     

    8. 필드[is_secret], 종류[CHAR], 길이/값[1], Collation[utf8_general_ci], 기본값[N], 나머지는 그냥 두고 [저장] 클릭

     

     

     

    9. 다시 documents_srl▼을 클릭하고 update_order를 선택하고 [실행]

     

    10. 필드[allow_comment], 종류[CHAR], 길이/값[1], Collation[utf8_general_ci], 기본값[Y], 나머지는 그냥 두고 [저장]

     

     

     

    11. 다시 documents_srl▼을 클릭하고 allow_comment를 선택하고 [실행]

     

    12. 필드[lock_comment], 종류[CHAR], 길이/값[1], Collation[utf8_general_ci], 기본값[N], 나머지는 그냥 두고 [저장]

     

     

     

    13. 이때 주의점은 기본값을 y나 n처럼 소문자로 적으면 안된다는 거~ 반드시 대문자로 적어야 함

     

    14. 홈페이지에 접속해서 글을 작성하고 댓글을 확인하기 위해 새로고침으로 마무리

  • 웹기프트
    웹기프트 2018.12.30 00:20

    모듈에 들어있는 schema폴더의 스키마파일은 최초 설치될 경우에만 수행됩니다.

     

    그리고 그 최초라는 기준을 어디다가 두냐하면 데이터베이스에 본인이 모듈에 만들어놓은 스키마의 테이블이 존재하느냐아니냐로 둡니다.

     

    즉, 

    테이블이 5개인데 최초에 테이블이 없으니 설치버튼이 활성화되면서 설치가 됩니다.

    테이블이 5개인데 스키마를 하나 수정했는데 테이블이 5개가 존재하고있으니 내용이 안뜹니다.

    테이블 중 내가 수정한 스키마에 해당되는 테이블을 삭제하면 테이블이 4개가 되며 스키마 파일과 일치하지 않게 되니 설치메뉴가 활성화 됩니다.

     

    본인이 수정하실려는 스키마에 해당하는 테이블을 데이터베이스에가셔서 지우신 후 다시 설치를 누르시면 수정했던 스키마를 이용해서 다시 생성하게 됩니다.

     

    덤 :

    테스트니 그리해도 되지만 차후에는 update라는 걸 사용해서 테이블을 수정하는 방법도 배워보세요.

검색어 입력
전체검색, 사이트 전체를 검색합니다.