it-swarm-id.com

Pengembangan plugin - kesalahan parse: kesalahan sintaksis, tak terduga 's' (T_STRING)

Saya mencoba mengembangkan plugin pertama saya untuk Joomla, ini hanya sebuah plugin sederhana yang menempatkan beberapa javascript tepat sebelum tutup tubuh. Javascript berfungsi dengan baik jika saya menempatkannya langsung di index.php untuk template jadi saya percaya diri dalam js. Namun plugin saya melempar kesalahan

Parse error: syntax error, unexpected 's' (T_STRING) in C:\xampp\blah\blah\plugins\system\reftagger\reftagger.php on line 50

Saya pikir itu ada hubungannya dengan penggunaan tanda kutip ganda pada baris 49 (di mana menambahkan g.src) yang membuang hal-hal yang rusak. Cuplikan di bawah ini menunjukkan skrip yang ingin saya tambahkan yang mencakup tanda kutip ganda

 $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>

    ";      

Saya sudah berusaha

  1. untuk mengubah g.src ke kurung tunggal
  2. membuatnya menjadi "" untuk g.src
2
rowanwins

Ini adalah tanda kutip ganda dalam skrip/string. Coba ini:

<?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>
";
?>

Atau jika Anda ingin tanda kutip ganda, lewati saja seperti ini:

$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>
";
4
GDP

Saya sadar Anda telah memecahkan masalah kesalahan sintaks, tetapi cara yang tepat untuk menyelesaikan masalah ini adalah dengan tidak memasukkan javascript dengan PHP dengan cara ini.

Yang harus Anda lakukan adalah:

1) buat file javascript Anda di media/plg_yourplugin/js/your-js-file.js

2) di PHP menggunakan API perpustakaan JHTML untuk menambahkan file javascript ke area index.php.

Berikut ini posting blog oleh @Michael tentang cara melakukan ini dengan benar: http://www.babdev.com/blog/139-use-the-media-folder-allow-overridable-media

3
Chad Windnagle

Anda memiliki kesalahan parsing PHP.

Jika string Anda dimulai dengan " dan diakhiri dengan ". Semua internal " harus \".

0
Anibal