ottschoottscho MemberComments: 2623 Received thanks: 265 Member since: October 2010 edited May 2015
Hallo zusammen,

wenn ich wie in den Docs versuche in mein Plugin ein Javascript einhubinden, so wird es nicht geladen:
/**
* Registers all necessary events and hooks.
*/
private function subscribeEvents()
{
// Subscribe the needed event for js merge and compression
$this->subscribeEvent(
'Theme_Compiler_Collect_Plugin_Javascript',
'addJsFiles'
);
}

/**
* Provide the file collection for js files
*
* @param Enlight_Event_EventArgs $args
* @return \Doctrine\Common\Collections\ArrayCollection
*/
public function addJsFiles(Enlight_Event_EventArgs $args)
{
$jsFiles = array(__DIR__ . '/Views/responsive/frontend/_public/src/js/script.js');
return new Doctrine\Common\Collections\ArrayCollection($jsFiles);
}
Mache ich ein var_dump zum Test, so bekomme ich auch keine Ausgabe.

Im Gegenzug zur Less Anbindung, da klappt es und ich bekomme mit var_dump auch eine Ausgabe.

Sicher, dass der Code so stimmt?

Danke

Comments

  • ottschoottscho MemberComments: 2623 Received thanks: 265 Member since: October 2010
    klappt das bei euch anderen?
  • ottschoottscho MemberComments: 2623 Received thanks: 265 Member since: October 2010
    ich muss hier noch mal nachhaken. Ich bekomme einfach keine Javascript Datei eingehängt.
    Ich mache es so wie im Beispiel.

    Aber nichts passiert.

    Ein var_dump oder die() in der ausführenden Methode sollte sich doch auf jeden Fall bemerkbar machen, oder?
  • ThomasThomas EmployeeComments: 481 Received thanks: 70 Member since: March 2014
    Folgender Code klappt bei mir einwandfrei:
    <?php
    use Doctrine\Common\Collections\ArrayCollection;
    class Shopware_Plugins_Frontend_Thomas_Bootstrap extends Shopware_Components_Plugin_Bootstrap
    {
        public function install()
        {
            $this->subscribeEvent(
                'Theme_Compiler_Collect_Plugin_Javascript',
                'addJavascriptFiles'
            );
            return true;
        }
    
        /**
         * Provides an ArrayCollection for js compressing
         * @param Enlight_Event_EventArgs $args
         *
         * @return ArrayCollection
         */
        public function addJavascriptFiles(\Enlight_Event_EventArgs $args)
        {
            $js = __DIR__ . '/Views/frontend/_public/src/js/test.js';
    
            return new ArrayCollection(array($js));
    
        }
    }
    
  • ottschoottscho MemberComments: 2623 Received thanks: 265 Member since: October 2010
    okay, mit die() sprenge ich die Anzeige. Also wird die Funktion ansich wohl aufgerufen.
    Aber meine Javascript Datei befindet sich einfach nicht in der modernizr Datei.

    Wie kann ich weiter debuggen?
  • ThomasThomas EmployeeComments: 481 Received thanks: 70 Member since: March 2014
    ottscho wrote:
    Wie kann ich weiter debuggen?
    Die Javascript Datei wird doch im web/cache/$timestamp_$var1_$var2.js gespeichert?

    Teste doch in deiner js Datei mal mit einem alert('test');
  • ottschoottscho MemberComments: 2623 Received thanks: 265 Member since: October 2010
    danke, es geht nun. Manchmal sieht man den Wald vor lauter Bäumen nicht.
    Buchstabendreher :(
Sign In or Register to comment.