2012-03-26 2 views
0

코스 폴더에서 lib.php를 확인했지만 어떻게 진행되는지 이해할 수 없으므로 여기서 질문 할 것입니다.PHP로 무들로 코스를 만들 때 데이터베이스로 무엇을해야합니까?

무들 API가 아닌 PHP와 MySQL 코드로 코스를 만들려고합니다. 무들 데이터베이스에 연결합니다.

지금까지 mdl_course 테이블에 값을 삽입하여 코스를 만드는 방법을 작성했지만 과정 홈 페이지에는 아무 것도 나타나지 않았습니다. 데이터베이스에 있으며 등록 할 수 있으며 표시되지만 표시되지 않습니다.

새로운 코스를 만들 때 course_sections 및 course_category가 영향을 받지만 각 필드에 입력 할 값을 계산하는 방법은 알고 있습니까?

mdl_course의 modinfo는 무엇입니까? 어떻게 계산합니까?

mdl_course에서 sortorder를 어떻게 계산합니까? 지금은 코스를 배치 할 카테고리를 찾고 있는데 그 카테고리의 모든 정렬을 찾은 다음 새 정렬 순서 값으로 1 씩 늘립니다. 그것이 맞는지 확실하지 않습니다.

는 지금이 분명히이 완료 근처에 아무 곳입니다, 과정을 만드는 내 방법 : 내 경험에

public function createCourse() 
{ 
    //find category 
    //calculate sortorder i.e. search in mdl course for all course with category. select sortorder MAX then ++ 
    require "/mysqli_connect.php"; 
    $t = time(); 
    $insert_q = "INSERT INTO mdl_course 
    (category, fullname, shortname, summary, startdate, maxbytes, 
    timecreated, newsitems, numsections, expirythreshold) 
    VALUES (30, 'Fullname', 'shortname', 'This is the summary', '$t', 268435456, '$t', 5, 10, 864000)"; 

    $insert_r = mysqli_query($mysqli, $insert_q); 
    $insert_n = mysqli_affected_rows($mysqli); 
    //var_dump($insert_n); 
    if($insert_n == 1) 
    { 
     return true; //insert successful 
    } 
    else 
    { 
     return false; 
    }  
} 
+0

일부 코드는 도움이 필요합니다. –

답변

4

, 무들은에 자신의 코드를 접목 할 수있는 가장 투명한 시스템이없는 간단한 또는이다 . 개별 엔터티에는 여러 가지 테이블 항목이 있습니다. 예를 들어, mdl_lessons, mdl_course_modules, mdl_grade 항목 및 기타에 수업이 표시됩니다. Moodle의 API를 가능한 한 많이 사용하도록 제안합니다. 그렇게 할 수 없다면 표준 인터페이스를 통해 코스를 추가 한 다음 SQL 로그를 검사하여 테이블 항목을 확인하여 리버스 엔지니어링을 시도 할 수 있습니다.

modinfo 어리둥절한 혼란에 관해서는, this post on the moodle forums는 그것이 자동적으로 생성된다고 말한다. This post은 코스의 수업과 활동이 모두 완료되면 rebuild_course_cache($courseid)으로 전화하여 modinfo를 다시 채울 수 있다고 설명합니다.

+0

우리는 API를 사용하지 않고 무들 데이터베이스에 연결하여 온라인 개인 교습 과정을 완전히 개설했습니다. 다시 말하면, 역 엔지니어링 (reverse engineering)과 같은 일이 일어나면 무들의 데이터베이스를 이해할 수 있습니다. 이해하는데 일주일 정도 걸립니다. 그러나 무언가를 코드로 데이터베이스에 집어 넣을 때, 무들의 대다수는 자동적으로 자동적으로 탐지하고 업데이트 할 것이기 때문에 괜찮을 것입니다. –