Calendar Modul Popup Frage
Eingetragen von sspind (51)
am 06.06.2010 - 09:38 Uhr in
am 06.06.2010 - 09:38 Uhr in
Liebe Drupalforum-Members,
Wer kann mir zu meinen Calendar Modul weiterhelfen?
Bei meinem Calendar Standard-View wird ein Popup eingeblendet, ich denke das ist das "Calendar Popup", das einem mit
ein paar mehr Infos zu einem Signup-Formular bringt.
Ich möchte dieses Popup konfiguieren, beispielsweise den Text "Weiter" in "Anmelden" umstellen. Wie kann ich das hinkriegen?
Vielen Dank!
- Anmelden oder Registrieren um Kommentare zu schreiben
Dieses PopUp ist der
am 06.06.2010 - 12:17 Uhr
Dieses PopUp ist der jCalendar und gehört zum Calendar-Modul.
im Modul-Ordner von Calendar findest du einen Ordner namens "jcalendar", darin öffnest du die .module-Datei und dürftest alles nötige finden.
den "weiter"-Link kannst du zum Beispiel ganz unten in der Funktion "theme_jcalendar_view" ändern, an der Stelle "t('more', array(), $node->language)". Man könnte das einfach durch "Anmelden" ersetzen.
Dort kannst du sicher auch ein paar andere Anpassungen vornehmen.
Aber die Frage ist: Was genau willst du alles ändern? Denn einige Änderungen musst du evtl. am Node selbst durchführen und nicht am jCalendar.
Danke!
am 07.06.2010 - 09:02 Uhr
Eigentlich will ich vorher eh nur das ändern, ich denke mit deinen Angeben finde ich mich dann zurecht.
Vielen Dank!!
geht nicht
am 07.06.2010 - 09:21 Uhr
Leider funktionierts nicht, ich hab folgendes probiert:
$output .= '
';
sowie
$output .= '
';
Beides ohne Erfolg!
Kannst du mir die präzise Zeichenkette schicken?
Zitat: Kannst du mir die
am 07.06.2010 - 12:48 Uhr
Kannst du mir die präzise Zeichenkette schicken?
Ich denke schon.
Ich kann jetzt nur vermuten, was bei dir der Fehler ist, aber wenn die Zeilen wirklich genau so bei dir im Code stehen, dann ist auf jeden Fall das Komma vor "calendar_get_node_link" fehl am Platz.
Also:
<?php
//Dieser Code steht standardmäßig drin
function theme_jcalendar_view($node) {
$output = node_view($node, TRUE);
$output .= '<div id="nodelink">'. l(t('more', array(), $node->language), calendar_get_node_link($node)) .'</div>';
return $output;
}
//das ganze ersetzt man so
function theme_jcalendar_view($node) {
$output = node_view($node, TRUE);
$output .= '<div id="nodelink">'. l(t('Anmelden', array(), $node->language), calendar_get_node_link($node)) .'</div>';
return $output;
}
//Also einfach den Text 'more' durch 'Anmelden' ersetzen
//alternativ kann man die t()-Funktion auch komplett weglassen
//dann kann der Text aber nicht mehr durch die Oberflächen-Übersetzung von Drupal geändert werden
function theme_jcalendar_view($node) {
$output = node_view($node, TRUE);
$output .= '<div id="nodelink">'. l('Anmelden', calendar_get_node_link($node)) .'</div>';
return $output;
}
?>
Danke
am 07.06.2010 - 17:25 Uhr
Super, das hat geholfen
Popup abschalten?
am 13.07.2010 - 15:23 Uhr
Hallo zusammen,
ich bin gerade auch nach der Suche wie man mit diesem Popup umgeht. Weisst jemand, wie dieses Popup komplett abschaltet werden kann?
Zu der obigen Frage: Der Ansatz finde ich nicht richtig (Anpassungen direkt im jcalendar module vornehmen).
Ich gehe davon aus, dass sspind einen eigenen Modul entwickelt. Und das ist eine schlechte Praxis irgendwas in
einem bestehenden Module ändern. Man sollte lieber aus eigenem Modul heraus bestimmte hooks implementieren
und damit die Funktionalität anderer Module überschreiben. Leider habe ich keine konkrete Tipps für die Umsetzung,
weil ich mich mit javascript nicht auskenne.
Liebe Grüße
jetzt weiss ich wie man
am 13.07.2010 - 16:00 Uhr
jetzt weiss ich wie man dieses Popup komplett abschaltet: einfach den Calendar Popup Module deaktivieren :-)
Wobei das auch nicht sooo toll ist: was ist, wenn eine Web-Site mehrere Kalender-Ansichten hat, und manche benutzen
popup und andere nicht?
Ja, ich gebe zu, dass dieser
am 13.07.2010 - 17:09 Uhr
Ja, ich gebe zu, dass dieser Tipp, das dort zu ändern, schlampig von mir war. Ich könnte mich jetzt damit rausreden, dass doch jeder Drupaler weiß, dass man sowas nicht macht und sich die Lösung an entsprechender Stelle implementiert, aber nichtsdestotrotz war das da oben "falsch erklärt", Asche auf mein Haupt =(
Und um das ganze gleich mal korrekt darzustellen:
Da es sich dabei um eine Theme-Funktion handelt, überschreiben wir sie einfach ;-)
<?php
//Dieser Code steht standardmäßig in der jcalendar.module
function theme_jcalendar_view($node) {
$output = node_view($node, TRUE);
$output .= '<div id="nodelink">'. l(t('more', array(), $node->language), calendar_get_node_link($node)) .'</div>';
return $output;
}
//den überschreiben wir in der template.php
//also rufen wir den Ordner unseres Themes, suchen die template.php und öffnen diese
//darin fügen wir an irgendeiner Stelle diesen Code ein:
function theme-name_jcalendar_view($node) {
$output = node_view($node, TRUE);
$output .= '<div id="nodelink">'. l(t('Anmelden', array(), $node->language), calendar_get_node_link($node)) .'</div>';
return $output;
}
//Anstelle von theme-name fügen wir den Namen unseres Themes ein. Bei Garland würde das z.B. so aussehen:
function garland_jcalendar_view($node) {
$output = node_view($node, TRUE);
$output .= '<div id="nodelink">'. l(t('Anmelden', array(), $node->language), calendar_get_node_link($node)) .'</div>';
return $output;
}
?>
Ich gelobe Besserung, es soll nicht mehr vorkommen ;-)
Wobei das auch nicht sooo toll ist: was ist, wenn eine Web-Site mehrere Kalender-Ansichten hat, und manche benutzen popup und andere nicht?
Ich vermute mal, dann muss man seine View mit den entsprechenden Files themen und bei den gewünschten Views das class="popup" bei den Links entfernen.
popup
am 13.07.2010 - 17:39 Uhr
hi Exterior,
dieser Code sieht echt gut aus! Danke sehr!
Man kann bestimmt auf $node zugreifen und das Aussehen komplett verändern... echt toll
Grüße