PHP 布局文件中的代码未执行

PHP code inside layout file not executed

我在布局文件 (default.htm) 顶部定义的一些 PHP 代码有问题,这些代码不执行。 它只是逐字打印在页面上。 布局文件是插件的默认布局。 这是源文件(default.htm):

title = "default"
==
<?

use Config;

function onStart() {
    $this['select2_Api_Url'] = Config::get('tudordanes.select2::select2_Api_Url');
}

?>
==
<form action="#" method="POST">
    <div id='my-selects' >
        <label for='select-codes'>Code de loi:</label>
        <select id='select-codes' class='select2' name='select-codes'>
            <option value="">Choisir un code</option>
        </select>
        <label for='select-articles'>Numero:</label>
        <select id='select-articles' name='select-articles'>
            <option value="">Numero d'article</option>
        </select>
    </div>
</form>

{% put scripts %}
<script type="text/javascript">
    $(document).ready(function() {
        console.log('ready!');
        console.log('{{ cfg_API_URL }}');        
</script>    
{% endput %}

你确定你有并且没有注释:

AddType application/x-httpd-php .htm

在您的 httpd.conf 文件中?

"short tags" 是一个坏习惯,如果你真的需要使用它们,请确保你有并且没有注释:

short_open_tag=On

在你的php.ini

实际上,您的 default.htm 文件位于 'tudordanes' 插件中名为 'select2' 的组件中。规则是您不能访问组件中的 PHP 代码部分。请参考Building components instructions以获得更好的解释。

根据相关代码,您可以在 Select2.php 文件中定义 onRun() 函数。

use Config;
public function onRun()
{
    $this->page['select2_Api_Url'] = Config::get('tudordanes.select2::select2_Api_Url');
}