Extra Form
PHP PHP 7.4
CMS Rhymix 2.0

현재 CSV의 내용을 토대로 글을 자동 등록 시키기 위해서 PHP를 만들고 있는 상황입니다.

 

현재 코드는

<?php

include '../common/autoload.php';
$handle = fopen($_GET['id'] . '.csv', 'r');

while (($data = fgetcsv($handle, 300, ",")) !== FALSE) {

        $obj = Context::getRequestVars();
        $obj->document_srl = getNextSequence();
        $obj->module_srl = '20592';
        $obj->title = $data[1];
        $obj->content = $data[1];
        $obj->allow_comment = 'Y';
        $obj->allow_trackback = 'Y';
        $obj->user_id = 'ID';
        $obj->user_name = '이름';
        $obj->nick_name = '닉네임';
        $obj->member_srl = '4';
        $obj->email_address = '이메일';
        $obj->extra_vars1 = '1';
        getController('document')->insertDocument($obj, true);

        $document_srl= $obj->document_srl;

        $obj->document_srl = $document_srl;
        $obj->module_srl = '20592';
        $obj->lang_code = 'ko';
        $obj->var_idx = 1;
        $obj->eid = 'test';
        $obj->value = '145';
        getController('document')->insertDocumentExtraVar($obj, true);

break;
}


?>

이렇게 돼있고 (user_id, user_name, nick_name, email_address은 실제 값이 드러나나 가려놓은 겁니다)

 

이 코드를 토대로 라이믹스 설치 폴더에 csv라는 폴더를 만들고 그 안에 csv 파일들과 php 파일을 올려서 php 파일을 실행시켜보니 원하는 대로 데이터를 불러와 글 등록은 정상적으로 돼나, 확장변수 부분이

 

"ArgumentCountError #0 "Too few arguments to function documentController::insertDocumentExtraVar(), 2 passed in /home/user/web/csv/upload.php on line 41 and at least 4 expected" in modules/document/document.controller.php on line 1520"

 

라는 오류를 뿜으며 되지가 않네요.

 

원하는 바는 'test'라는 ID를 가진 'test'라는 이름의 확장변수에 145라는 값을 나오게 하는 부분입니다.

 

어떤 부분이 부족한지 알려주실 수 있나요?

 

감사합니다.

 

 

  • profile
    https://github.com/rhymix/rhymix/blob/56e94fac7db9bc46c3294c6cc5d2c3a4371c7936/modules/document/document.controller.php#L1574

    오류 메세지에도 인자 수가 적다고 나와있는데... 소스코드를 보셨으면 바로 아실수 있으셨을텐데요.
  • profile ?
    저걸 보긴 봤으나
    $module_srl, $document_srl, $idx_or_eid, $value, $eid = null, $lang_code = null
    $obj->document_srl = $document_srl;
    $obj->module_srl = '20592';
    $obj->lang_code = 'ko';
    $obj->var_idx = 1;
    $obj->eid = 'test';
    $obj->value = '145';

    그 5개가 전부 들어있는게 아닌가 싶어서요.
  • profile

    함수 파라미터가 이렇게 전달되어야 할 걸요.

    getController('document')->insertDocumentExtraVar($obj->module_srl, $obj->document_srl, $obj->var_idx, $obj->value, $obj->eid, $obj->lang_code);

    eid랑 lang_code는 없어도 될 거구요.

  • profile ?
    앗 감사합니다. 한번 테스트해보겠습니다!
  • profile ?
    앗 잘 되는거 같습니다. 감사합니다!ㅎㅎ