it-swarm-tr.com

Eklenti geliştirme - ayrıştırma hatası: sözdizimi hatası, beklenmeyen 's' (T_STRING)

Joomla için ilk eklentimi geliştirmeye çalışıyorum, sadece vücudun kapanmasından hemen önce bazı javascript yerleştiren basit bir eklenti. Şablon için doğrudan index.php yerleştirirseniz js eminim javascript iyi çalışıyor. Ancak eklentim bir hata veriyor

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

Sanırım 49 satırındaki çift tırnakların kullanımı ile ilgili olduğunu düşünüyorum (burada onun g.src eklenmesi), bu da balinadan bir şeyler atıyor. Aşağıdaki snippet, çift tırnak işareti içeren eklemeye çalıştığım komut dosyasını gösteriyor

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

    ";      

Denedim

  1. .src'yi tek parantez olarak değiştirmek için
  2. g.src için a/"yap
2
rowanwins

Bu, kod/dizgideki çift tırnaktır. Bunu dene:

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

Veya çift tırnakları istiyorsanız, bunları şu şekilde kaçar:

$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

Sözdizimi hata sorununu çözdüğünüzün farkındayım, ancak bu sorunu çözmenin doğru yolu javascript'i PHP bu şekilde eklememek).

Yapmanız gereken şey:

1) javascript dosyanızı media/plg_yourplugin/js/your-js-file.js

2) PHP javascript dosyasını index.php alanına eklemek için JHTML kitaplığı API'sini kullanın.

@Michael tarafından düzgün bir şekilde nasıl yapılacağına dair bir blog yazısı: http://www.babdev.com/blog/139-use-the-media-folder-allow-overridable-media

3
Chad Windnagle

PHP ayrıştırma hatası var.

Dizeniz " İle başlayıp " İle bitiyorsa. Tüm dahili ", \" Olmalıdır.

0
Anibal