Wenn ich bei einem Element javascript hinzufügre kommen notices, weiß da jemand Abhilfe?
Eingetragen von maen (547)
am 24.02.2014 - 19:17 Uhr in
am 24.02.2014 - 19:17 Uhr in
Also:
Ich will Nodes in der Übersicht collapsible machen. Verwendet jquery Version: 1.8
Das Ding funktioniert auch einwandfrei, aber ich erhalte folgende notices:
Notice: Undefined index: data in drupal_process_attached() (Zeile 4507 von /home/duke/sites/kneipenkicker/includes/common.inc).
Notice: Undefined index: data in drupal_process_attached() (Zeile 4507 von /home/duke/sites/kneipenkicker/includes/common.inc).
Notice: Undefined index: data in drupal_process_attached() (Zeile 4507 von /home/duke/sites/kneipenkicker/includes/common.inc).
Notice: Undefined index: data in drupal_process_attached() (Zeile 4507 von /home/duke/sites/kneipenkicker/includes/common.inc).
Notice: Undefined index: data in drupal_process_attached() (Zeile 4507 von /home/duke/sites/kneipenkicker/includes/common.inc).
Notice: Undefined index: data in drupal_process_attached() (Zeile 4507 von /home/duke/sites/kneipenkicker/includes/common.inc).
Und hier der zugehörige Code:
<?php
hook_node_view(...){
$path = drupal_get_path('module', 'submissions');
// First we add listing.css
$node->content['#attached']['css'][] = $path . '/submissions.css';
// our js scripts
$node->content['#attached']['js'][] = drupal_add_js('misc/form.js');
$node->content['#attached']['js'][] = drupal_add_js('misc/collapse.js');
// Next we set our listing to use our theme
$node->content['#theme'] = 'submissions_function';
}
?>
<?php
function theme_submissions_function(&$variables)
{
...
$output[] = array(
'#theme' => 'table',
'#header' => array(t('Heimmannschaft'), t('Gastmannschaft'), t('aktuelles Ergebnis'),t('Wette'), t('Punkte')),
'#rows' =>$rows,
'#attributes' => array('class' => array('table-class'))
);
$output_new = '<fieldset class=" collapsible collapsed">
<legend><span class="fieldset-legend">'.check_plain($node->title).'</span></legend>
<div class="fieldset-wrapper">';
$output_new .= '<div id="listing_"' . $node->nid . '" class="listing">';
$output_new .= drupal_render($output);
$output_new .= '</div>';
$output_new .='</div></fieldset>';
return $output_new;
?>
Es muss irgendwie mit den js Skripten zu tun haben. Schalte ich die aus, dann kann ich zwar die Fieldsets nicht mehr öffnen, aber die notices sind weg!
Danke vorab,
maen
- Anmelden oder Registrieren um Kommentare zu schreiben
Versuche es mal mit einer
am 24.02.2014 - 19:26 Uhr
Versuche es mal mit einer niedrigeren Version von jQuery. Da gibt es gerne Probleme. Die dev-Version von jQuey Update erlaubt unterschiedliche Versionen für Frontend und Backend (Admin Seiten).
habe es jetzt mit 1.5, 1.7
am 25.02.2014 - 01:13 Uhr
habe es jetzt mit 1.5, 1.7 und 1.8 probiert. Nüscht...
Wie bist Du auf die Idee
am 25.02.2014 - 09:55 Uhr
Wie bist Du auf die Idee gekommen in Deiner Funktion drupal_add_js zu benutzen? Ich habe Deinen Code hier mal zitiert
<?php
hook_node_view(...){
$path = drupal_get_path('module', 'submissions');
// First we add listing.css
$node->content['#attached']['css'][] = $path . '/submissions.css';
// our js scripts
$node->content['#attached']['js'][] = drupal_add_js('misc/form.js');
$node->content['#attached']['js'][] = drupal_add_js('misc/collapse.js');
// Next we set our listing to use our theme
$node->content['#theme'] = 'submissions_function';
}
?>
Soweit ich das sehe, wird im Code in common.inc das drupal_add_js durchgeführt. Du darfst also nur den Pfad anhängen.
nope, habs gelöst. Steht
am 25.02.2014 - 11:03 Uhr
nope, habs gelöst. Steht nirgendwo aber als ich mi die common angesehen habe, adchte ich mal versuche ichs mal:
$node->content['#attached']['js']['data'] = drupal_add_js('misc/form.js');
$node->content['#attached']['js']['data'] = drupal_add_js('misc/collapse.js');
hats für mich gelöst. Soll mal einer verstehen. Ich tus nicht.
Trotzdem Danke!
Ich würde drupal_add_js auch
am 25.02.2014 - 11:15 Uhr
Ich würde drupal_add_js auch immer in einer preprocess-Funktion in der template.php-Datei im Theme einsetzen und nicht über den Umweg des Attachens an den Node gehen. Dort wird diese Funktion direkt aufgerufen und macht dann auch keine Probleme.
Ja, ich eigentlich auch, aber
am 25.02.2014 - 11:21 Uhr
Ja, ich eigentlich auch, aber da ich bisher noch kein theme ausgewählt hatte und ich ein fauler Sack bin und nichts doppelt machen will habe ich diesen Lösungsweg gewählt.
Werner, sei so gut und schau mal in meinen neuen Beitrag im theming. Auf Deine Meiung lege ich nämlich wert. ;)
#attached vs. drupal_add_js()
am 25.02.2014 - 17:40 Uhr
Ich würde drupal_add_js auch immer in einer preprocess-Funktion in der template.php-Datei im Theme einsetzen und nicht über den Umweg des Attachens an den Node gehen. Dort wird diese Funktion direkt aufgerufen und macht dann auch keine Probleme.
#attached
hat den Vorteil, dass die Seite damit dann weiterhin cachebar ist. Wenn man über eine preprocess-Funktion direkt [api:drupal_add_js:7] verwendet, ist das Caching für die Seite damit hinfällig.@maen: Wenn Du per
#attached
die Dateien reinziehen willst, ist [api:drupal_add_js:7] überflüssig (sogar falsch). "data" ist hier nur der Pfad zur Datei.Du Tier Du! Habe es
am 25.02.2014 - 17:52 Uhr
Du Tier Du! Habe es ausprobiert! Läuft ohne den Befehl!
Dann noch eine Frage zum Abschluss: Woher weißt Du das!???