Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Anfängerfragen ›

[gelöst]JavaScript richtig einbinden

Eingetragen von AndyLicht (260)
am 22.08.2013 - 10:02 Uhr in
  • Anfängerfragen
  • Drupal 7.x oder neuer

Guten Morgen DrupalCenter,
ich habe folgendes Problem. Für einen bestimmten Node habe ich die node.tpl.php angepasst. Über das Nodetemplate wird eine HTML-Tabelle generiert, diese will ich durch Sortierfunktionen funktional aufbessern. Zu diesem Zweck habe ich mich entschieden DataTables zu verwenden, jedoch ohne das Modul(wobei ich jenes installiert habe).
Also habe ich mir gedacht dementsprechenden Code füge ich die DataTables-Library zu und einen entsprechenden javaScript Aufruf. Nur leider wird die Tabelle nicht entsprechend angezeigt, sprich sie wird angezeigt, aber eben nicht mit den gewünschten Funktionalitäten.
Die Bibliotheken werden anscheinend richtig geladen, denn ein entsprechender Alert wird mir angezeigt. Führe ich den entsprechenden Code nachträglich über Firebug aus, so wird die Tabelle dementsprechend angezeigt.
Hier einmal der JavaScript-Code:

(function ($)
{ 
alert("DataTables");
$("#htabelle").dataTable(
{
        "bPaginate": true,
        "bLengthChange": true,
        "bFilter": true,
        "bSort": true,
        "bInfo": true,
        "bAutoWidth": true,
        "aoColumns": [
            null,
            null,
null,
null,
null,
null//put as many null values as your columns
]
    });
})(jQuery);

und hier die Einbindung im node--tabelle.tpl.php

<article<?php print $attributes; ?>>
  <?php print $user_picture; ?>
  <?php print render($title_prefix); ?>
  <?php if (!$page && $title): ?>
  <header>
    <h2<?php print $title_attributes; ?>><a href="<?php print $node_url ?>" title="<?php print $title ?>"><?php print $title; echo "Marmelade" ?></a></h2>
  </header>
  <?php endif; ?>
  <?php print render($title_suffix); ?>
  <?php if ($display_submitted): ?>
  <footer class="submitted"><?php print $date; echo "Marmelade"?> -- <?php print $name;echo "Marmelade" ?></footer>
  <?php endif; ?> 

  <div<?php print $content_attributes; ?>>
    <?php
       
// We hide the comments and links now so that we can render them later.
       
hide($content['comments']);
       
hide($content['links']);
        print
render($content);
       
?>

<table id="htabelle" border="1">
  <tr>
    <th>Berlin</th>
    <th>Hamburg</th>
    <th>M&uuml;nchen</th>
  </tr>
  <tr>
    <td>Milj&ouml;h</td>
    <td>Kiez</td>
    <td>Bierdampf</td>
  </tr>
  <tr>
    <td>Buletten</td>
    <td>Frikadellen</td>
    <td>Fleischpflanzerl</td>
  </tr>
</table>

<?php

   
        drupal_add_js
('sites/all/libraries/datatables/media/js/jquery.dataTables.js','file');
       
drupal_add_js('sites/all/themes/geoportal_test/js/datatables_monitoring.js', 'file');
   
?>

  </div>
 
  <div class="clearfix">
    <?php if (!empty($content['links'])): ?>
      <nav class="links node-links clearfix"><?php print render($content['links']); ?></nav>
    <?php endif; ?>

    <?php print render($content['comments']); ?>
  </div>
</article>

‹ Drupal Blog als klassischen Feed anbieten [gelöst]JavaScript richtig einbinden ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Wenn die beiden JS wirklich

Eingetragen von quiptime (4972)
am 22.08.2013 - 10:37 Uhr

Wenn die beiden JS wirklich geladen werden dann eventuell zu spaet. Das Laden selbest kann man ja mit einem Browsertool pruefen.
JS eher laden: Im Template ganz oben.

Wobei aber die Frage entsteht warum Du nicht das Modul verwendest. Dann muesstest Du die JS nicht im Template laden und haettest auch nicht die Fragen ob geladen und zu spaet geladen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich kann das Modul leider

Eingetragen von AndyLicht (260)
am 22.08.2013 - 10:40 Uhr

Ich kann das Modul leider nicht verwenden, weil ich dazu ein View anlegen muss, wenn ich das richtig verstanden habe. Die Tabelle wird aber über eine php-Funktion generiert (kommt leider nicht aus Drupal und kann auch nicht geändert werden).
mfg
Andy

  • Anmelden oder Registrieren um Kommentare zu schreiben

quiptime schrieb Wenn die

Eingetragen von quiptime (4972)
am 22.08.2013 - 10:44 Uhr
quiptime schrieb

Wenn die beiden JS wirklich geladen werden dann eventuell zu spaet. Das Laden selbest kann man ja mit einem Browsertool pruefen.
JS eher laden: Im Template ganz oben.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Sorrie, habe ich vergessen zu

Eingetragen von AndyLicht (260)
am 22.08.2013 - 11:43 Uhr

Sorrie, habe ich vergessen zu erwähnen ich habe die Einbindung jetzt noch vor <articel.... eingebunden, jedoch ändert das nichts am Resultat.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Einbinden der beiden JS

Eingetragen von quiptime (4972)
am 22.08.2013 - 11:46 Uhr

Einbinden der beiden JS gecheckt mit Firebug oder Crome Developer Tools?

  • Anmelden oder Registrieren um Kommentare zu schreiben

JS bitte in template.php Datei einbinden

Eingetragen von quiptime (4972)
am 22.08.2013 - 11:50 Uhr

Guckst Du bitte hier: http://drupal.stackexchange.com/questions/20520/drupal-add-js-in-html-te...

  • Anmelden oder Registrieren um Kommentare zu schreiben

Guten Morgen Quiptime, ich

Eingetragen von AndyLicht (260)
am 23.08.2013 - 06:14 Uhr

Guten Morgen Quiptime,
ich habe mir den Link recht ordentlich durchgelesen und Code per Node ausprobiert, führt leider zum gleichen Ergebniss. Bei dem sonst vorgeschlagenen Import in der page.tpl.php gibt es leider das Problem, dass das Omega Theme keine page.php zu haben scheint.
ODer ich habe es doch noch nicht so verstanden.
mit freundlichem Gruß

  • Anmelden oder Registrieren um Kommentare zu schreiben

In der Datei template.php

Eingetragen von quiptime (4972)
am 23.08.2013 - 09:15 Uhr

Nicht in der page.tpl.php sondern in der Datei template.php. Diese Datei hat jedes Theme. Im Thread des geposteten Link ist es der Beitrag #4, welcher den Code zum Einfuegen nennt.

<?php
function MYTHEME_preprocess_page(&$variables) {
 
drupal_add_js(drupal_get_path('theme', 'MYTHEME') .'/mytheme.js', 'file');
}
?>

Vermutlich wird diese preprocess-Funktion in Deinem Omega Subtheme bereits verwendet. In diesem Fall die Zeilen mit drupal_add_js() einfach innerhalb der bereits existierenden Funktion einfuegen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Oh man, natürlich. Vielen

Eingetragen von AndyLicht (260)
am 23.08.2013 - 09:36 Uhr

Oh man, natürlich. Vielen Dank. Aber leider führt auch das nicht zu dem gewünschten erfolg, ich befürchte fast, dass das Script zu früh geladen wird. Ich lade ja zwei Dateien, einmal die der Bibliothek und einmal die meines Codes, der dem entsprechenden Table-Tag die DataTables zuweisst. Nun ist es so, dass die Tabelle erst aus einem Datenbankrequest aufgebaut wird. Und wenn ich meine Funktion über den Firebug aufsetze, dann funktioniert alles so wie es soll. Ich weiß einfach nicht mehr weiter mir fällt nichts mehr ein, was ich noch tun könnte.
mfg
Andy

  • Anmelden oder Registrieren um Kommentare zu schreiben

Oh Man, das tut mir wirklich

Eingetragen von AndyLicht (260)
am 23.08.2013 - 09:55 Uhr

Oh Man, das tut mir wirklich leid. ich habe das ganze erst manuell ausgeführt, also gänzlich ohne Drupal und dann importiert. Dabei habe ich natürlich vergessen, die JavaScript-Funktion in eine Drupal.behaviors zu packen.
mit besten Grüßen
Andy

  • Anmelden oder Registrieren um Kommentare zu schreiben

Soll heissen, Problem geloest?

Eingetragen von quiptime (4972)
am 23.08.2013 - 10:06 Uhr

Soll heissen, Problem geloest?

Wenn ja poste bitte eine kurze Zusammenfassung der Problem-Loesung (so das Andere es verstehen koennen) und markiere den Thread als geloest.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich bin gerade am

Eingetragen von AndyLicht (260)
am 26.08.2013 - 10:04 Uhr

Ich bin gerade am Zusammenschreiben-Also ein wenig Geduld.

Hier habe ich die Lösung gepostet-es ist erst die erste Version des Themas und auch erst meine erste Homepage (dient mir zur Erinnerung)

mit besten Grüßen
AndyLicht

  • 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 6 Tagen 9 Stunden
  • Hey danke
    vor 1 Woche 3 Stunden
  • Update: jetzt gibt's ein
    vor 1 Woche 21 Stunden
  • Hallo, im Prinzip habe ich
    vor 1 Woche 5 Tagen
  • Da scheint die Terminologie
    vor 1 Woche 5 Tagen
  • Kannst doch auch alles direkt
    vor 2 Wochen 2 Tagen
  • In der entsprechenden View
    vor 2 Wochen 2 Tagen
  • Dazu müsstest Du vermutlich
    vor 2 Wochen 2 Tagen
  • gelöst
    vor 4 Wochen 6 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 5 Wochen 4 Stunden

Statistik

Beiträge im Forum: 250233
Registrierte User: 20450

Neue User:

  • Mroppoofpaync
  • 4aficiona2
  • AppBuilder

» 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 11 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