私はJoomlaの最初のプラグインを開発しているところです。これは、本体を閉じる直前にJavaScriptを配置する単純なプラグインです。 JavaScriptをテンプレートのindex.phpに直接配置すると、JavaScriptは正常に機能するため、jsに自信があります。しかし、私のプラグインはエラーをスローしています
Parse error: syntax error, unexpected 's' (T_STRING) in C:\xampp\blah\blah\plugins\system\reftagger\reftagger.php on line 50
私は、49行目(g.srcを追加する場所)で二重引用符を使用することに関係していると思います。以下のスニペットは、二重引用符を含む、イムが追加しようとしているスクリプトを示しています
$ReftaggerOut = "
<script type='text/javascript'>
var refTagger = {
settings: {
bibleVersion: ".$BibleTranslation."
}
};
(function(d, t) {
var g = d.createElement(t), s = d.getElementsByTagName(t)[0];
g.src = "//api.reftagger.com/v2/RefTagger.js";
s.parentNode.insertBefore(g, s);
}(document, "script"));
</script>
";
私が試みました
スクリプト/文字列内の二重引用符です。これを試して:
<?php
$ReftaggerOut = "
<script type='text/javascript'>
var refTagger = {
settings: {
bibleVersion: ".$BibleTranslation."
}
};
(function(d, t) {
var g = d.createElement(t), s = d.getElementsByTagName(t)[0];
g.src = '//api.reftagger.com/v2/RefTagger.js';
s.parentNode.insertBefore(g, s);
}(document, 'script'));
</script>
";
?>
または、二重引用符が必要な場合は、次のようにエスケープします。
$ReftaggerOut = "
<script type='text/javascript'>
var refTagger = {
settings: {
bibleVersion: ".$BibleTranslation."
}
};
(function(d, t) {
var g = d.createElement(t), s = d.getElementsByTagName(t)[0];
g.src = \"//api.reftagger.com/v2/RefTagger.js\";
s.parentNode.insertBefore(g, s);
}(document, \"script\"));
</script>
";
構文エラーの問題は解決したと思いますが、この問題を解決する正しい方法は、PHPを使用してJavaScriptを挿入しないことです。
あなたがしなければならないことは:
1)media/plg_yourplugin/js/your-js-file.js
にJavaScriptファイルを作成します
2)PHP JHTMLライブラリAPIを使用して、javascriptファイルをindex.php領域に追加します。
これを正しく行う方法に関する@Michaelのブログ投稿は次のとおりです。 http://www.babdev.com/blog/139-use-the-media-folder-allow-overridable-media
PHP解析エラーがあります。
文字列が"
で始まり、"
で終わる場合。すべての内部"
は\"
でなければなりません。