JS immer für bestimmte Seite laden - JS vom Module laden
Eingetragen von Apfel007 (143)
am 11.11.2010 - 15:10 Uhr in
am 11.11.2010 - 15:10 Uhr in
Hallo zusammen,
habe folgendes Module, welches ein Modal aufruft, wenn man einen Button drückt. Das JS wird beim Laden Seite korrekt geladen und man kann es einmal! ausführen. Beim 2. Mal ist das Js nicht mehr geladen! Woran liegt das? Wer kann mir eine Tip geben, wie ich das JS dauerhaft am Pfad "/node/%/diary" binden kann? Wenn ich mit mit Netbeans debugge bekommen ich beim 2. Mal immer sehr seltsame Pfade, die mit der bestehende url nichts zu tun haben.
// Button //
<a title="Save changes and continue" onclick="Drupal.open_upload_modal();" href="#upload">SAVE</a>
<?php
// $Id: automodal_upload.module,v 1.1.2.3 2009/06/17 12:55:55 KRAV Exp $
/**
* öffnet node/add/upload im modal mit automodal
* @file
*/
/**
* Add automodal conguration options to a page.
*
* Automodal options can be added to multiple selectors with different settings
* for each selector or group of selectors.
*
* Example Usage:
* @code
* automodal_add('.automodal', array('draggable' => FALSE));
* @endcode
*
* In the above examle the selector will have modalFrame setup on it with the
* default settings with the exception of draggable being set to false.
*
* @param string $selector
* The jQuery selector to add modalFrame to.
* @param array $settings
* The settings for this selector. Available options are:
* - autoFit: Whether the window should automatically fit to the window.
* Defautlts to TRUE.
* - draggable: If the dialog is draggable. Defaults to True.
* - width: The width of the dialog in px. Defaults to 600.
* - height: The heigh of the dialog in px. Defaults to 400.
* - automodalClose: On form submissions close the modal window. Default True.
* - automodalReload: Reload the page on form submission. Depends on automodalClose
* set to TRUE. Defaults to FALSE.
* - automodalRedirect: Redirect to a new location. Depends on automodalClose
* being set to TRUE. This should be a fully qualified url.
*/
function automodal_upload_init() {
if (!empty($_COOKIE['has_js'])) {
automodal_add('a[href="/de/node/add/upload"]', array('width' => 600));
$types = node_get_types();
$path = drupal_get_path_alias($_GET['q']);
if (strrpos($path, 'diary')) {
if (array_key_exists('upload', $types )){
drupal_add_js(drupal_get_path('module', 'automodal_upload') .'/automodal_upload.js');
automodal_upload_add_js();
modalframe_parent_js();
}}}}
function automodal_upload_add_js() {
global $base_url;
global $language;
$lang = $language->language;
$gid = arg(1);
drupal_add_js(array('automodal_upload' => array(
'url' => $base_url.'/'. $lang,
'gid' => $gid,
)), 'setting');
drupal_add_js(drupal_get_path('module', 'automodal_upload') .'/automodal_upload.js');
drupal_add_js($js_variables, 'setting');
}
// $Id: automodal_upload.js,v 1.1.2.7 2009/12/28 02:21:20 KRAV Exp $
(function ($) {
Drupal.behaviors.automodalupload = function() {
};
Drupal.open_upload_modal = function(){
var url = Drupal.settings.automodal_upload.url + '/node/add/upload?gids[]=' + Drupal.settings.automodal_upload.gid;
$('a[href="/de/node/add/upload"]').attr('href', url).click();
};
})(jQuery);
- Anmelden oder Registrieren um Kommentare zu schreiben
Hast Du nen Link wo man sich
am 11.11.2010 - 17:45 Uhr
Hast Du nen Link wo man sich das Ganze mal angucken kann?
sense-design | online solutions | Do not hack core!
Drupalcenter Verhaltensregeln | Threads bitte auf [gelöst] stellen.
leider nicht .. is lokal
am 11.11.2010 - 20:36 Uhr
leider nicht .. is lokal
Ich guck mir das nachher mal
am 12.11.2010 - 10:18 Uhr
Ich guck mir das nachher mal in Ruhe an
sense-design | online solutions | Do not hack core!
Drupalcenter Verhaltensregeln | Threads bitte auf [gelöst] stellen.
das ist nett.. habe mal den
am 12.11.2010 - 11:42 Uhr
das ist nett.. habe mal den Modul-Code etwas aufgeräumt. und "alerts" ins JS gesetzt. Bei jedem Click wird "Drupal.open_upload_modal = function()" aufgerufen und sogar mit dem richtigen Pfad. Nur wird die Click-Action ($('a[href="/de/node/add/upload"]').attr('href', url).click();) nur beim 1. Mal ausgelöst ...
...
function automodal_upload_init() {
automodal_add('a[href="/de/node/add/upload"]', array('width' => 600)); // add automodal class
// if (!empty($_COOKIE['has_js']) && stristr($_GET['q'], 'diary')) {
if (!empty($_COOKIE['has_js'])) {
$types = node_get_types();
if(array_key_exists('upload', $types )){
automodal_upload_add_js();
}
}
}
/**
* create link path for click action
*/
function automodal_upload_add_js() {
global $base_url;
global $language;
$lang = $language->language;
$gid = arg(1);
drupal_add_js(drupal_get_path('module', 'automodal_upload') .'/automodal_upload.js');
drupal_add_js(array(
'automodal_upload' => array(
'url' => $base_url.'/'. $lang,
'gid' => $gid,
)
),
'setting');
}
hiermit geht es
am 12.11.2010 - 16:07 Uhr
// $Id: automodal_upload.js,v 1.1.2.7 2009/12/28 02:21:20 x Exp $
(function ($) {
Drupal.behaviors.automodalupload = function() {
$('a[href="/node/add/upload"]').addClass("modal-upload");
};
Drupal.open_upload_modal = function(){
var url = Drupal.settings.automodal_upload.url + '/node/add/upload?gids[]=' + Drupal.settings.automodal_upload.gid;
$('a.modal-upload').attr('href', url).click();
};
})(jQuery);