Thickbox mit Link erweitern
Eingetragen von DrupalFan (1646)
am 12.10.2007 - 11:41 Uhr in
am 12.10.2007 - 11:41 Uhr in
Hallo,
ich möchte beim Popup eines Image Gallery Bildes, welches mit Thickbox (und inagecache) realisiert ist, beim Popup-Bild unten einen Link hinzufügen.
Der Link soll heißen "Kommentar hinzfügen" und soll zum Node des Bildes führen, wo ja darunter schon das "Kommentar hinzufügen"-Formular vorhanden ist.
Wie geht das? Hat jemand einen Tipp oder einen Link? Wär wichtig.
Vielen Dank.
- Anmelden oder Registrieren um Kommentare zu schreiben
Hat jemand noch eine
am 16.10.2007 - 10:23 Uhr
Hat jemand noch eine Idee?
vielen dank!
da schliesse ich mich glatt
am 16.11.2007 - 10:30 Uhr
da schliesse ich mich glatt Deiner Suche an...
Das Popup hat doch HTML
am 16.11.2007 - 10:44 Uhr
Das Popup hat doch HTML Code. Findet man im HTML Code keinen Ansatzpunkt um herauszufinden, wo der Code im Popup erzeugt wird. Wenn Glueck, dann passiert dies in einer Theme Funktion.
Ist eigentlich egal ob Popup oder nicht. Es gibt in jedem Fall HTML Code mit dem Thickboxbilder ausgegeben werden.
Wenn Du aus dem Popup heraus auf eine Node linken willst musst Du dies mit Javascript tun, um das Browserfenster anzusprechen welches das Popup geoeffnet hat. Ansonsten wuerde der Linkverweis im Popup oeffnen.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Da geht noch was.
Kann man es evtl. über das
am 16.11.2007 - 11:01 Uhr
Kann man es evtl. über das title Attribute übergeben?
___________________________
it's easier than you think
Raphael Schär
http://www.schaerwebdesign.ch
Facebook Gruppe Schweiz-CH: http://www.facebook.com/group.php?gid=5683015414
______________________________
Yet Another Drupal Site (YADS)
http://www.rapsli.ch
******************************
Eventuell schon. Ich muesste
am 16.11.2007 - 11:19 Uhr
Eventuell schon. Ich muesste mir mal den Code des Modules Thickbox reinziehen um Dir konkreter antworten zu koennen.
Falls Du online entwickelst
Kannst Du einen Link zu solch einem "Thickbox Nodetype" posten. Will mal den HTML Code sehen.
Edit
Ich meine den Link zu einer Seite wo man auf ein Blid klickt und Thickbox anspringt.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Da geht noch was.
thickbox.js ist Dein Kumpel
am 16.11.2007 - 11:36 Uhr
Die Datei "thickbox.js" ist Dein Kumpel.
In der Funktion function tb_show() wird z. Bsp. der Code der "Prev Next" Navigation erzeugt. Und dort koennte man den Code fuer Link "comment this" platzieren.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Da geht noch was.
Danke
am 21.11.2007 - 15:49 Uhr
Danke, werde ich mir dann genau anschaun.
Hat man aber in der js-Datei den Pfad zum Beitrag, so dass man den Link setzen kann?
und Anzahl Kommentare ..
am 21.11.2007 - 16:00 Uhr
Und ich will auch dort hinschreiben, wie viel Kommentare schon geschrieben wurden.
Bekommt man all diese Info in die javascript-Funktion?
Vielen Dank.
PHP zu Javascript
am 21.11.2007 - 19:03 Uhr
Von der Sache her geht das schon. Man muss PHP Variablen bzw. deren Inhalte an Javascriptvariablen uebergeben. Aber um die zu tun gibt es keine dierekte Verbindung von einer PHP Datei zu einer Javascriptdatei. Ausser man uebergibt die Inhalte der PHP VAriablen per GET und nimmt sie mit Javascript auf. Das ist umstaendlich und auch sicherheitsbelastet.
Eine andere Variante ist Javascript Inlinecode. Da sich in diesem Falle der Javascriptcode innerhalb von PHP Code befindet kann man direkt Inhalte von PHP Variablen an Javascript uebergeben.
Um solch einen Javacript enthaltenden PHP Code in die Seite zu injizieren hat Drupal die Funktion drupal_add_js(). Beispielcode:
<?php
$lat = '51.072996';
$lng = '13.787287';
function my_function_blabla() {
$inline = '
//<![CDATA[
// Call this function when the page has been loaded
function initialize() {
if (GBrowserIsCompatible()) {
// create your map
var map = new GMap2(document.getElementById("map_search"));
map.setCenter(new GLatLng(' . $lat . ',' . $lng . '), 10);
}
}
GSearch.setOnLoadCallback(initialize);
//]]>
';
drupal_add_js($inline, 'inline', 'header');
?>
Hier werden die Inhalte der PHP Variablen $lat und $lng dierekt an die Javascriptfunktion initialize() uebergeben.
Ich hoffe das hilft Dir weiter.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Da geht noch was.
Danke. Jetzt fehlt mir nur
am 21.11.2007 - 22:33 Uhr
Danke.
Jetzt fehlt mir nur noch, wie ich dies oder ähnliches bei dem Thickbox-Modul einsetzen kann.
Die Antwort habe ich Dir
am 22.11.2007 - 00:28 Uhr
Die Antwort habe ich Dir bereits gegeben. Hier nochmal:
Die Datei "thickbox.js" ist Dein Kumpel.
In der Funktion function tb_show() wird z. Bsp. der Code der "Prev Next" Navigation erzeugt. Und dort koennte man den Code fuer Link "comment this" platzieren.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Da geht noch was.
wer "thickbox.js" zum Kumpel hat...
am 30.11.2007 - 15:57 Uhr
möge sich doch bitte herablassen, etwas Lehrreiches aus dieser Beziehung zum Besten zu geben ;-)
Die Kombination aus cck/imagefield + imagecache + views + thickbox ist ja wirklich eine ideale Bildergalerie-Lösung. Vielen fehlt allein die Verlinkung zum node (und wieder zurück) zur idealen Abrundung, z.B. zur Ansicht des Bildes mitsamt angehängter Story (oder sonstiger dem imagefield angehängten Infos), für Kommentare usw.
Ich glaube kaum, dass ich der Einzige bin, dessen Kumpelverhältnis zu "thickbox.js" definitiv zu wünschen übrig lässt :-(
@quicktime: Wäre es Dir möglich, an dieser Stelle ein konkretes Code-Beispiel für Dummies zu posten?
alles Notwendige gesagt um Handeln zu koennen
am 30.11.2007 - 16:24 Uhr
@marcel
In der Funktion function tb_show() wird z. Bsp. der Code der "Prev Next" Navigation erzeugt. Und dort koennte man den Code fuer Link "comment this" platzieren.
Ich habe mich bemueht den Ansatz zur Loesung zu geben weil ich davon ausgegangen bin das man damit weiter kommt.
Deswegen kann ich auch kein konkretes Code-Beispiel posten. Denn das waere ja auch wieder keine konkrete Loesung des Problemes.
Was man da reinschreibt ist zunaechst reiner Javascriptcode - man schreibt mit Javascript HTML-Code. Ergo, man brauchst
Javascriptkenntnisse.
Mit Javascript HTML schreiben:
<script type="text/javascript">
document.write("<pre>kein Umbruch ");
document.writeln("erste Zeile");
document.writeln("zweite Zeile <\/pre>");
document.writeln("dritte Zeile");
document.writeln("vierte Zeile");
</script>
Dann habe ich gesagt wie man den Inhalt von PHP Variablen nach Javascript transportieren kann. Ergo, man brauchst PHP-kenntnisse.
Insgesamt gesehen weiss man mit meinen Posts eigentlich alles Notwendige um Handeln zu koennen. Das hat eigentlich wenig mit herablassen zu tun.
Ich kann auch nicht mal eben ein Gemisch aus Javascript und PHP Code verbunden mit strategischen Vorgehensweisen aus dem Aermel schutteln. Dafuer muesste ich mich konkret mit dem Modul und der angefragten Funktionlitaet auseinandersetzen. Da kann ich dann gleich die Loesung produzieren. Dazu habe ich gerade keine Zeit/Lust. Eventuell findet sich Jemand der eine fertige Loesung postet oder bereits irgendwo gepostet hat. Denn das ist es doch was Du suchst und Dich nicht so konkret danach zu fragen getraust. Oder?
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Da geht noch was.
War ich nicht konkret genug?
am 30.11.2007 - 17:07 Uhr
Da kann ich dann gleich die Loesung produzieren.
Das wäre schön ;-)
Dazu habe ich gerade keine Zeit/Lust.
Das ist doch in Ordnung!
Eventuell findet sich Jemand der eine fertige Loesung postet oder bereits irgendwo gepostet hat. Denn das ist es doch was Du suchst
Exakt! (Oder ein Tutorial, aus dem sich solche Lösungen anschaulich ableiten lassen)
und Dich nicht so konkret danach zu fragen getraust. Oder?
Dachte eigentlich, konkret (siehe letzte Zeile meines Kommentars!) gefragt zu haben...
theme_imagefield_imagechache_thickbox
am 12.12.2007 - 17:00 Uhr
Hi Marcel,
Wie wäre es wenn du mal mit dieser funktion hier dein Glück versuchtst.
:/**
* Implementation of theme_imagefield_image_imagecache_thickbox().
*/
function theme_imagefield_image_imagecache_thickbox($namespace, $field, $path, $alt = '', $title = '', $attributes = NULL) {
$attributes = drupal_attributes($attributes);
$imagecache_path = file_create_url(file_directory_path() .'/imagecache/'. $namespace .'/'. $path);
$image = '<img src="'. $imagecache_path .'" alt="'. check_plain($alt) .'" '. $attributes .' />';
return l($image, file_create_url($path), array('title' => $title, 'class' => 'thickbox', 'rel' => $field['type_name']), NULL, NULL, FALSE, TRUE);
}
Diese Funktion kannst du über deine template.php überschreiben. Hier kannst du dann neue Inhalte reinfummeln. Die Funktion kommt aus dem thickbox module.
Dirk
vielen Dank für den Vorschlag!
am 20.12.2007 - 15:53 Uhr
Hi Dirk,
werde mein Glück mit dieser Funktion versuchen und Bescheid geben, ob oder was ich damit zustande bringen konnte ;-)
Danke nochmals!
Marcel
ich habe in meinem
am 21.01.2008 - 17:34 Uhr
ich habe in meinem galleriebild-inhaltstyp auch einen link zu einem downloadbaren file. wie kann ich diesen denn in die thickbox-vorschau einschmuggeln?, z.b. unter den titel...
danke!