2014-02-10 39 views
0

是否有Moodle的中的任何選項傳遞$course另一個功能是

function sectiontext_survey_display($data) {}

function sectiontext_survey_display($data, $course) {}

其實我只是想過濾的基礎上,一些項目課程編號和類別

回答

0

看起來像問卷是一個活動Ÿ插件,而不是Moodle的核心部分

https://moodle.org/plugins/view.php?plugin=mod_questionnaire

我猜你可以嘗試這樣的事情來獲得課程ID

$coursed id = $this->course->id; 
+0

感謝您的回覆。我在'questiontypes.class.php'你的代碼是否在頁面中工作? – Muhammed

+0

不確定,沒有使用插件,只是看看代碼。它看起來像父類擁有一個課程對象,所以你應該能夠以某種方式訪問​​它。你可以使用調試器遍歷代碼,然後檢查屬性嗎?或者只是在函數中做一個var_dump($ this)。 –

0

終於找到了解決方案:)

global $course; 
var_dump($course) 
+0

這是當前的課程 - 它可能*與調查問卷中的課程不盡相同,但謹慎使用。 –

+0

@Russell英格蘭真的嗎?我正在使用'if()'是否可以? – Muhammed

+0

global $ COURSE;是目前正在觀看的課程 - 這是正確的。 (雖然當沒有課程被查看時,它也可以是$ SITE)但是任何插件都可以作爲參數傳遞課程 - 所以問卷插件可能會查看與正在查看的課程不同的課程 - 我不會不依賴於全球$課程對象 - 嘗試在家長問卷調查課程中使用課程屬性。 –

0

奇怪的是,sectiontext_survey_display似乎是調查問卷插件中的一個未使用的私人函數(至少在我看過的版本中) - 我是n確保延長它會很有幫助。

不幸的是,有問題的班級與一項調查相關聯,該調查可用於調查問卷模塊的多個實例,這意味着可以在多個課程中使用同一調查。您無法直接從questionnaire_question類返回課程。

最好的,你可以管理(和,在現實中,這將可能永久有效),是爲使用:

global $COURSE; 

global $PAGE; 
$PAGE->course; 

這兩個應該工作(雖然第二在更新版本的Moodle中受到鼓勵)。