2017-02-27 1 views
0

Moodle 3.1을 사용하고 있으며, Moodle 개발에 대해 처음으로 새롭게 추가 된 커스텀 버튼이나 링크를 추가하는 방법을 알고 싶습니다. 코스 뷰 페이지에서 마크 완성 체크 박스와 동일한 작업을하지만 개별 활동 (또는 리소스) 페이지에서 수행합니다.커스텀 기능을 가진 커스텀 버튼을 추가하는 방법 Activity/Resource

물론, 이상적인 모듈 식 무들 방식으로이 작업을 수행하여 업그레이드 후에도 기능이 지워지지 않도록해야합니다.

이 작업을 수행하기 위해 수행 할 수있는 설정 또는 구성이 있습니까? 아니면 본격적인 플러그인을 작성해야합니까?

플러그인을 사용하는 경우 해당 방향의 모든 단계가 도움이됩니다.

답변

0

사이트 관리의 모양 섹션에있는 추가 HTML 상자를 사용하여 DOM을 조작 할 JavaScript를 추가 할 수 있습니다.

Additional HTML link in Site Administration

그것은 키가 큰 순서의 비트가 모든 활동과 자원, 그리고 다른 무 기능을 대상으로하지만 내가 사용하는 방법은 find an ID that is unique to that page, and use JavaScript to insert the button and functionality that you want이었다.

예를 들어 뉴스 포럼 활동에 새 버튼을 추가한다고 가정 해 보겠습니다.

뉴스 포럼에 'forumaddnew'클래스가있는 div가 있으므로 새 버튼을 삽입 할 장소로 사용하겠습니다. screenshot of source code

var YourCustomButton = '<input type="button" id="mybutton" value="New Function Button" class="custom"/>'; 

/* make sure script only runs if div exists */ 
if (!document.getElementsByClassName('forumaddnew')[0]) { 
    /* do nothing */ 
} else { 
    var forum = document.getElementsByClassName('forumaddnew')[0]; 
    forum.insertAdjacentHTML('beforebegin', YourCustomButton); 
} 

/* EVENT LISTENER FOR CUSTOM BUTTON */ 
if (!document.getElementById('mybutton')) { 
    /* do nothing */ 
} else { 
    document.getElementById("mybutton").addEventListener('click', function() { 
     alert('custom button clicked'); 
     //stuff you want your custom button to do 
    }); 
} 
+1

고마워, 그거 좋은데! – user7616631

0

나는 약간 무들의 주위에 있었고, 나는 이것이 가능하지 않다는 것을 확신한다. 각 리소스와 활동은 서버의/mod 디렉토리에 저장됩니다. 각각의 파일에는 view.php 파일이 있습니다. 활동이 완료되고 항목이 prefix_course_modules_completion 테이블에 기록되면

사용자가 자체 완성을 활성화하지 않는 이유는 무엇입니까?

+0

답장을 보내 주셔서 감사합니다. 우리는 "자기 완성"옵션을 알고 있지만,이 특별한 경우에는 학생들이 그것을 직접 보았는지 확인하기 위해 수동으로 표시하도록 고의적으로 요구해야합니다. – user7616631

관련 문제