2015-05-24 47 views
2

我對Moodle dev非常陌生。我已經閱讀了API的基礎知識,現在開始通過製作tinymce插件讓我的手髒了。雖然這樣做,我遇到了以下問題:如何從javascript訪問settings.php。Moodle從JavaScript訪問設置

我知道如何從javascript訪問lan/en字符串,我也知道在php中,$layout_string = $this->get_config('statlayout');會提取'statlayout'設置。我想要的是從JavaScript訪問$layout_string

回答

0

我個人認爲這是真的哈克,我不會推薦它,但也許你可以做這樣的事情?

<?php 
    $layout_string = $this->get_config('statlayout'); 
    echo "<script> var my_var = '" . $layout_string . "';</script>"; 
?> 

<script> alert(my_var);</script> 

如果您在此期間找到了另一個答案,我很想知道您的想法。 :)

2

嗯,我認爲沒有這樣做的標準方式。

  • 如果你正在一個插件(不ATTO或TinyMCE的一個subplugin),那麼你可以簡單地調用

    全球$ PAGE; $ PAGE-> requires-> yui_module( /* frankenstyle named yui module /, / entry function */ );

  • 如果你正在一個subplugin,那麼你需要閱讀的主要插件本身來發現它是如何調用JavaScript函數,用於ATTO編輯器的情況下,我覺得我看到的主要插件之一以下:

    reqiure_once( 「插件/ $ pluginname/lib.php」); $ functionname =「atto _」。$ puginname。「params_for_js」; call_user_func($ functionname,/ * some args * /);

在這種情況下,你的ATTO subplugin的lib.php必須包含atto_pluginname_params_for_js功能,使得pluginname是你的插件的名稱。

從軟件工程的角度來看,這已經超出了噁心。我所能說的讓事情變得更好,就是在創建自己的插件時自己遵守軟件工程原則,並減少下一個人的智能行李。