Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Module › Modul-Entwicklung ›

Drupal Lib zur Verfügung stellen

Eingetragen von geoport (101)
am 15.03.2017 - 13:05 Uhr in
  • Modul-Entwicklung
  • Drupal 7.x

Hallo Forum,

in einem Modul stelle ich dem Client Javascript zur Verfügung, das klappt soweit auch. Nun möchte ich jedoch eine Javascript-Bib einbinden. Das Libraries-Modul habe ich installiert und meine *.module um den hook_libraries_info() erweitert. Die Bibliothek taucht auch unter Reports auf und wird als detected angezeigt. Ich habe gedacht mit hook_init() kann ich nun die Lib laden, mit

drupal_add_library('moduletest', 'libtest');

komme ich nicht weiter. Mein hauptziel ist es anschließend, die Bibliothek nur auf bestimmten Seiten zu laden.

Bin ich mit add_library überhaupt auf dem richtigen Dampfer oder muss ich doch eher libraries_load verwenden?
mfg
Tim

Mit folgendem Code konnte ich die Lib jetzt hinzufügen, leider wird sie zufrüh geladen:

public function attached() {
    $attached = parent::attached();

    $attached['libraries_load'][] = array(
      'libtest',
    );

    return $attached;
  }

‹ Menüpunkt unter Structure hinzufügen Drupal Lib zur Verfügung stellen ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Also meine Bibliotheken

Eingetragen von geoport (101)
am 29.03.2017 - 16:35 Uhr

Also meine Bibliotheken werden jetzt geladen, jedoch zu "früh", da die Abhängigkeit zu einer anderen Bibliothek besteht. Diese wird bereits erfolgreich durch ein anderes Modul (OpenLayers) geladen. Ich verstehe nicht, wie ich die Abhängigkeit angeben kann und ob mein Weg überhaupt der richtige ist, indem ich die init-Funktion verwende.
vielen Dank für eure Hilfe
mfg
Tim

<?php

function openlayers_customcontrols_libraries_info()
{
   
//\sites\all\libraries\wmchandlingol3
   
$libraries['wmchandlingol3'] = array(
       
'name' => 'Export und Import von standard WMC Dokumenten',
       
'vendor url' => 'https://ims.geoportal.de/git/summary/drupal!WMChandlingol3.git',
       
'download url' => 'https://ims.geoportal.de/git/summary/drupal!WMChandlingol3.git',
       
'version arguments' => array(
           
'file' => 'build/ol3-wmc-parser.min.js', // Could be any file with version info
           
'pattern' => '/.*?v([^)]+)/',
           
'lines' => 1,
        ),
       
'files' => array(
           
'js' => array('build/ol3-wmc-parser.min.js'), //this can be a path to the file location like array('lib/simple.js')
       
),
    );
   
   
   
$libraries['wmcgeoportalhandlingol3'] = array(
       
'name' => 'Export und Import von Geoportal.de Karten als spezifizierte WMC Dokumente',
       
'vendor url' => 'https://ims.geoportal.de/git/summary/drupal!WMChandlingol3.git',
       
'download url' => 'https://ims.geoportal.de/git/summary/drupal!WMChandlingol3.git',
       
'version arguments' => array(
           
'file' => 'build/ol3-wmc-parser-geoportal.min.js', // Could be any file with version info
           
'pattern' => '/.*?v([^)]+)/',
           
'lines' => 1,
        ),
       
'files' => array(
           
'js' => array('build/ol3-wmc-parser-geoportal.min.js'), //this can be a path to the file location like array('lib/simple.js')
       
),
    );
    return
$libraries;
   
   
}

function
openlayers_customcontrols_init()
{
   
libraries_load('wmchandlingol3');
   
libraries_load('wmcgeoportalhandlingol3');
}

?>

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo,

Eingetragen von Hyp1 (1463)
am 01.04.2017 - 11:32 Uhr

das ist nicht der richtige Weg in Drupal 8.
Schau mal in hook_libraries_info,
wie dort die abhängigen libraries geladen werden sollten:

$libraries['dependencies'] = array(
      // Load the 'example' library, regardless of the version available:
      'example',
      // Only load the 'example' library, if version 1.2 is available:
      'example (1.2)',
      // Only load a version later than 1.3-beta2 of the 'example' library:
      'example (>1.3-beta2)'
      // Only load a version equal to or later than 1.3-beta3:
      'example (>=1.3-beta3)',
      // Only load a version earlier than 1.5:
      'example (<1.5)',
      // Only load a version equal to or earlier than 1.4:
      'example (<=1.4)',
      // Combinations of the above are allowed as well:
      'example (>=1.3-beta2, <1.5)',
    );

Gruss

Robert

  • Anmelden oder Registrieren um Kommentare zu schreiben

geoport sucht, glaub ich, für

Eingetragen von Jenna (1883)
am 01.04.2017 - 13:46 Uhr

geoport sucht, glaub ich, für Drupal 7...(Versionsangabe)

Kann leider nicht helfen bei dem Thema.

Grüße Jenna

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi,

Eingetragen von Hyp1 (1463)
am 01.04.2017 - 15:02 Uhr

Danke Jenna, da hatte ich gar nicht drauf geachtet.
Macht aber keinen Unterscchied, da die API für libraries
von 7 direkt in 8 übernommen wurde wie es aussieht.
http://www.drupalcontrib.org/api/drupal/contributions!libraries!libraries.api.php/function/hook_libraries_info/7

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi, ich habe meine function

Eingetragen von geoport (101)
am 03.04.2017 - 09:16 Uhr

Hi,
ich habe meine function openlayers_customcontrols_libraries_info() jetzt einmal um libraries['dependencies'] erweitert und auch einmal die Abhängigkeit direkt eingehängt leider klappt das so nicht. Fällt jemandem eventuell noch etwas ein, oder sieht eventuell meinen Fehler? Vielen Dank

<?php

$libraries
['wmcgeoportalhandlingol3'] = array(
       
'name' => 'Export und Import von Geoportal.de Karten als spezifizierte WMC Dokumente',
       
'vendor url' => 'https://ims.geoportal.de/git/summary/drupal!WMChandlingol3.git',
       
'download url' => 'https://ims.geoportal.de/git/summary/drupal!WMChandlingol3.git',
       
'version arguments' => array(
           
'file' => 'build/ol3-wmc-parser-geoportal.min.js', // Could be any file with version info
           
'pattern' => '/.*?v([^)]+)/',
           
'lines' => 1,
        ),
       
'files' => array(
           
'js' => array('build/ol3-wmc-parser-geoportal.min.js'), //this can be a path to the file location like array('lib/simple.js')
       
),
//        'dependencies' => array(
//            'openlayers3',
//        ),
   
);
   
   
//Definiert die Abhängigkeit zu OpenLayers
   
$libraries['dependencies'] = array(
       
'openlayers3',
    );
   
   
    return
$libraries;   
?>

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo. Was klappt

Eingetragen von Hyp1 (1463)
am 03.04.2017 - 10:25 Uhr

Hallo.

Was klappt nicht?
findet er eine library nicht oder gibt es eine Fehelrmeldung ind der Javascript Konsole (Firebug)?
Ganz oben lädst du doch wmchandlingol3 => wmcgeoportalhandlingol3.
Wurde denn die openlayers3 Bibliezthek geladen?
Denn hier lädst Du wmcgeoportalhandlingol3 => openlayers3

MfG

Robert

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo. Was klappt

Eingetragen von Hyp1 (1463)
am 03.04.2017 - 10:58 Uhr

Hallo.

Was klappt nicht?
findet er eine library nicht oder gibt es eine Fehelrmeldung ind der Javascript Konsole (Firebug)?
Ganz oben lädst du doch wmchandlingol3 => wmcgeoportalhandlingol3.
Wurde denn die openlayers3 Bibliezthek geladen?
Denn hier lädst Du wmcgeoportalhandlingol3 => openlayers3

MfG

Robert

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi Robert, es wird alles

Eingetragen von geoport (101)
am 03.04.2017 - 14:43 Uhr

Hi Robert,

es wird alles geladen, jedoch in falscher Reihenfolge, die bibliothek OpenLayers wird aktuell erst nach dem wmchanldingol3 geladen.
OpenLayers ist eine externe Bibliothek, auf diese setzt das wmchandlingol3 auf, deswegen möchte ich gerne meiner bibliothek sagen, dass sie erst geladen werden darf, wenn openlayers bereits geladen ist.
mfg
Tim

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi, dann ist es, denke ich

Eingetragen von Hyp1 (1463)
am 03.04.2017 - 18:37 Uhr

Hi,

dann ist es, denke ich mal falsch, beides als Bibliotheken einzubinden.
Diese werden ziemlich früh eingebunden (bevor anderen Scripts)
Binde wmchandlingol3 doch als normales Script ein.
Schau mal hier unter weighted Javascript.
https://www.drupal.org/docs/7/api/javascript-api/managing-javascript-in-drupal-7

Gruss

Robert

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi Robert, genau so mache ich

Eingetragen von geoport (101)
am 04.04.2017 - 05:22 Uhr

Hi Robert,
genau so mache ich das aktuell, habe jedoch gedacht, dass das irgendwie eleganter geht, sprich das ich lediglich eine Abhängigkeit angebe und Drupal kümmert sich von alleine um die Reihenfolge.
vielen Dank für deine Hilfe.
mfg
Tim

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 2 Wochen 6 Stunden
  • Hey danke
    vor 2 Wochen 1 Tag
  • Update: jetzt gibt's ein
    vor 2 Wochen 1 Tag
  • Hallo, im Prinzip habe ich
    vor 2 Wochen 6 Tagen
  • Da scheint die Terminologie
    vor 2 Wochen 6 Tagen
  • Kannst doch auch alles direkt
    vor 3 Wochen 3 Tagen
  • In der entsprechenden View
    vor 3 Wochen 3 Tagen
  • Dazu müsstest Du vermutlich
    vor 3 Wochen 3 Tagen
  • gelöst
    vor 6 Wochen 3 Stunden
  • Ja natürlich. Dass ist etwas,
    vor 6 Wochen 1 Tag

Statistik

Beiträge im Forum: 250233
Registrierte User: 20453

Neue User:

  • ByteScrapers
  • Mroppoofpaync
  • 4aficiona2

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 25 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association