Einblendung bei login
am 08.04.2008 - 17:34 Uhr in
hallo zusammen,
ich suche nach einer möglichkeit, eine kurze einblendung eines bildes für eine gewisse dauer nach dem login zu ermöglichen. D.h. also wenn sich der user einloggt, kommt er auf die seite mit dem bild, und gelangt erst nach einer einstellbaren anzahl von sekunden (z.b. 5s.) weiter. (so im stil von "In 5sek. werden sie auf die Hauptseite weitergeleitet") Während dieser 5 sek sollte der user keine links aufrufen können, sondern erst danach.
mfg
- Anmelden oder Registrieren um Kommentare zu schreiben

Idee
am 09.04.2008 - 16:16 Uhr
Also ein Modul das dies macht kenne ich zwar nicht, aber
wie wäre es, du legst einen Node an, auf den du dann mit Login-Redirect (ist
ein Modul) weiterleitest und du baust in den Node neben dem Bild noch ein wenig Javascript bzw. einen Link ein der dann auf die Hauptseite weiterleitet.
Ich weiß das war keine direkte Antwort auf deine Frage, aber vielleicht hilf es ja
trotzdem.
Gruß
macco
Schon eingeladen?
FussballNZ - Das Fussballnetzwerk (http://www.fussballnz.de)
@macco, es ist die direkte
am 09.04.2008 - 16:41 Uhr
@macco,
es ist die direkte Antwort. Denn genau so wuerde ich es auch machen.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Damit man kein Javascript reinfummeln muss.
am 09.04.2008 - 16:48 Uhr
Damit man kein Javascript reinfummeln muss.
Im Nodetype-Template, welches das Bild ausgibt das dem User nach dem Login kurz gezeigt wird, koennte man mit
drupal_set_header('Der Meta Tag Refresh');sauber und ohne Komplikationen die Weiterleitung auf die Seite nach dem Ablauf der gewuenschten Zeit steuern.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
vielen dank für eure
am 09.04.2008 - 17:46 Uhr
vielen dank für eure antworten!
@quiptime: könntest du mir bitte zeigen (so à la schritt für schritt ;-)), wie ich das realisiere kann? kenne mich in dem gebiet leider zu wenig aus :-( habe einfach die nötigsten kenntnisse über drupal. das modul "login-redirect" habe ich schon in betrieb. wie baue ich jetzt diese weiterleitung in den neuen node ein?
vielen dank schon im voraus!
mfg
Fuer den speziellen Node zur
am 09.04.2008 - 18:48 Uhr
Fuer den speziellen Node zur Anzeige nach dem Login benoetigst Du ein extra Nodetype - wegen dem dazugehoerigen Template.
Dein Nodetyp: Bezeichnung ist "Loginimage", URL ist "loginimage".
In diesem Nodetyp entferne das normale Texteingabefeld dadurch das Du die Zeile "Textkoerper" leer laesst. Dann ein CCK Imagefeld einfuegen.
In der Feldanzeige dieses Imagefeldes das Label verstecken.
Erstelle eine Node mit dem neuen Nodetype. Weise diese Node keiner Kategorie und keinem Menue zu. Merke Dir die Node ID. Beispiel:
node/361
Auf diese Node musst Du mit "Login Redirect" umleiten.
Nun das Template des extra Nodetype.
Im Themeordner neue Datei mit Bezeichnung "node-loginimage.tpl.php". Dort kommt erst mal der Inhalt der "node.tpl.php" rein. Im oberen Teil des Template erstellst Du einen PHP Codebereich. In diesem Bereich wird drupal_set_header() eingefuegt.
Dein Tempate sieht ungefaehr so aus:
<?php /* $Id: node-loginimage.tpl.php, v 1.0 2008/04/10 quiptime Exp $ */
drupal_set_header('meta http-equiv="refresh" content="5; URL=/wohin_du_willst"');
?>
<?php phptemplate_comment_wrapper(NULL, $node->type); ?>
<div id="node-<?php print $node->nid; ?>" class="node<?php if ($sticky) { print ' sticky'; } ?><?php if (!$status) { print ' node-unpublished'; } ?>">
<div class="clear-block clear">
<?php print $picture ?>
<?php if ($page == 0): ?>
<h2><a href="<?php print $node_url ?>" title="<?php print $title ?>"><?php print $title ?></a></h2>
<?php endif; ?>
<?php if ($submitted): ?>
<div class="submitted">
<?php print $submitted; ?>
</div>
<?php endif; ?>
<div class="content">
<?php print $content;?>
</div>
</div>
<div class="clear-block clear">
<div class="meta">
<?php if ($taxonomy): ?>
<div class="terms"><?php print $terms ?></div>
<?php endif;?>
</div>
<?php if ($links): ?>
<div class="links"><?php print $links; ?></div>
<?php endif; ?>
</div>
</div>
Den unteren Teil musst Du aus der "node.tpl.php" des von Dir verwendeten Themes entnehmen. Er kann unter Umstaensden von meinem Beispiel abweichen.
URL in drupal_set_header() ist die auf welcher die User nach dem Refresh landen sollen.
Falls der Refresh nicht klappt muss an der URL in drupal_set_header() korrigiert werden. Sie muss als relative URL mit einem Slash beginnen.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
hab das alles mal so wie
am 09.04.2008 - 21:45 Uhr
hab das alles mal so wie beschrieben gemacht, doch die weiterleitung nach 5sek will nicht klappen!
hier mal meine "node-loginimage.tpl.php"
<?php/* $Id: node-loginimage.tpl.php, v 1.0 2008/04/10 quiptime Exp $ */
drupal_set_header('meta http-equiv="refresh" content="5; URL=blog/1"');
?>
<?phpphptemplate_comment_wrapper(NULL, $node->type);
?>
<?phpprint $node->nid;
?>
<?phpif ($sticky) { print ' sticky'; }
?>
<?phpif (!$status) { print ' node-unpublished'; }
?>
<?phpprint $picture
?>
<?phpif ($page == 0):
?>
<?php" title="print $node_url
?>
<?phpprint $title
?>
<?phpprint $title
?>
<?phpendif;
?>
<?phpif ($submitted):
?>
<?phpprint t('!date — !username', array('!username' => theme('username', $node), '!date' => format_date($node->created)));
?>
<?phpendif;
?>
<?phpprint $content
?>
<?phpif ($taxonomy):
?>
<?phpprint $terms
?>
<?phpendif;
?>
<?phpif ($links):
?>
<?phpprint $links;
?>
<?phpendif;
?>
hab ich in dieser datei
am 09.04.2008 - 21:46 Uhr
hab ich in dieser datei irgendwo einen fehler gemacht? sieht irgendwie komisch aus :-))
um den php code herum muss
am 09.04.2008 - 21:54 Uhr
um den php code herum muss du
< code > < /code > um den phpcode rum
und halt leerzeichen weg
--------------
Mein Blog: www.freeblogger.org: May the source be with you
Deutscher IRC-Channel: irc.freenode.net #drupal.de je mehr desto besser
... Jabber-me: dwehner@im.calug.de Warum Jabb
So, jetzt siehts normal aus
am 09.04.2008 - 22:11 Uhr
So, jetzt siehts normal aus ^^.
@quiptime: was könnte falsch sein dass die weiterleitung nach 5sek nicht funktioniert (Oben bei "URL=blog/1"" habe ich auch schon mit "URL=/blog/1"" versucht, hat auch nicht geklappt)?
hier mal meine "node-loginimage.tpl.php"
<?php /* $Id: node-loginimage.tpl.php, v 1.0 2008/04/10 quiptime Exp $ */drupal_set_header('meta http-equiv="refresh" content="5; URL=blog/1"');
?>
<?php phptemplate_comment_wrapper(NULL, $node->type); ?>
<div id="node-<?php print $node->nid; ?>" class="node<?php if ($sticky) { print ' sticky'; } ?><?php if (!$status) { print ' node-unpublished'; } ?>">
<?php print $picture ?>
<?php if ($page == 0): ?>
<h2><a href="<?php print $node_url ?>" title="<?php print $title ?>"><?php print $title ?></a></h2>
<?php endif; ?>
<?php if ($submitted): ?>
<span class="submitted"><?php print t('!date — !username', array('!username' => theme('username', $node), '!date' => format_date($node->created))); ?></span>
<?php endif; ?>
<div class="content">
<?php print $content ?>
</div>
<div class="clear-block clear">
<div class="meta">
<?php if ($taxonomy): ?>
<div class="terms"><?php print $terms ?></div>
<?php endif;?>
</div>
<?php if ($links): ?>
<div class="links"><?php print $links; ?></div>
<?php endif; ?>
</div>
</div>
probier mal /* $Id:
am 09.04.2008 - 22:14 Uhr
probier mal /* $Id: node-loginimage.tpl.php, v 1.0 2008/04/10 quiptime Exp $ */
drupal_set_header('meta http-equiv="refresh" content="5; URL='.base_path().'blog/1"');
--------------
Mein Blog: www.freeblogger.org: May the source be with you
Deutscher IRC-Channel: irc.freenode.net #drupal.de je mehr desto besser
... Jabber-me: dwehner@im.calug.de Warum Jabb
hmm das hat leider bei mir
am 17.04.2008 - 22:24 Uhr
hmm das hat leider bei mir auch nicht funktioniert :-( die seite erscheint zwar, aber nach 5 sek. und mehr passiert nichts.. Schön wäre ausser dass diese weiterleitung funktionieren würde noch einen Button zu haben, auf dem steht "In 5 Sekunden geht's weiter" , und der dann die Sek. runterzählt.. irgendwie muss soetwas doch gehen?! gäbe es eine alternative mit javascript? schön wäre aber schon wenn es ohne javascript realisierbar wäre!
mfg
Moment bitte, lese mich
am 17.04.2008 - 22:31 Uhr
Moment bitte, lese mich gerade rein.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Was passiert nun und was nicht?
am 17.04.2008 - 22:34 Uhr
hmm das hat leider bei mir auch nicht funktioniert :-( die seite erscheint zwar, aber nach 5 sek. und mehr passiert nichts.. Schön wäre ausser dass diese weiterleitung funktionieren würde noch einen Button zu haben, auf dem steht "In 5 Sekunden geht's weiter" , und der dann die Sek. runterzählt.. irgendwie muss soetwas doch gehen?! gäbe es eine alternative mit javascript? schön wäre aber schon wenn es ohne javascript realisierbar wäre!
mfg
Etwas missverstaendlich.
Was passiert nun und was nicht?
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Pruefe bitte im
am 17.04.2008 - 23:10 Uhr
Pruefe bitte im HTML-Quellcode ob der mit
drupal_set_header('meta http-equiv="refresh" content="5; URL='.base_path().'blog/1"');erzeugte Meta-Tag korrekt erscheint. Wenn er erscheint dann poste mal die Ausgabezeile dieses Meta-Tag's.
Und was Deine Frage mit
betrifft.
Deine graue Masse mal kreativ werden zu lassen ist nicht Deine Starke? ;-)
Wenn Du dies als Texthinweis moechtest dann baue es im Template ein.
Wenn Du es animiert mit Counterfunktion haben willst geht wohl an Javascript kein weg vorbei.
Ohne Javascript,
aber mit einem gewissen Aktivitaetseffekt, geht es auch.
Verwende eine kleine animierte Grafik. Aber sie muss wirklich eine kleine Dateigroesse haben. Sonst sind die 5 Sekunden um bevor diese Grafik zur Anzeige geladen ist.
Dies ist simpel aber wirkungsvoll: Die Grafik zeigt Aktivitaet, die Weiterleitung ist erfolgt, Grafik nicht mehr da. Beipiel:
Sie werden in 5 Sekunden automatisch weitergeleitet.
PS
Das Beipiel mit der Progressgrafik hat aber nun nichts mit Drupal zu tun. Ist graue kreative Masse.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Falls Dir meine
am 17.04.2008 - 23:22 Uhr
Falls Dir meine Beispielgrafik nicht gefaellt. Baue Dir online einfach eine andere: Ajaxload
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
quiptime schriebDeine
am 18.04.2008 - 10:44 Uhr
Deine graue Masse mal kreativ werden zu lassen ist nicht Deine Starke? ;-)
vielen dank für deine erläuterungen. das mit der animierten gif-grafik ist mir echt nicht in den sinn gekommen gestern abend. :-) ich beschäftige meine graue masse im moment mit dem stoff der bevorstehenden semesterprüfungen, deshalb bleibt wenig platz für kreativität ;-)
werde es am wochenende mithilfe der genannten vorschläge nochmals versuchen und mich dann melden.
und wenn dann semesterferien sind werde ich mich ausführlich in die tiefen von drupal einarbeiten ;-)
mfg
OK, nichts fuer ungut mit
am 18.04.2008 - 10:53 Uhr
OK, nichts fuer ungut mit der grauen Masse und so.
Ich druecke Dir die Daumen fuer Deine Semesterpruefungen.
Und melde Dich fall es immer noch nicht klappen sollte.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
also, hab jetzt nochmals von
am 18.04.2008 - 17:35 Uhr
also, hab jetzt nochmals von vorne begonnen. nodetype "Loginimage" erstellt, danach damit diese "Einblendeseite mit dem Bild" kreiert, der die Url "loginimage" gegeben und mithilfe des moduls "login direction" eingestellt, dass man nach dem login uf "loginimage" gelangt.
Danach habe ich im ordner "Theme/Garland" die datei "node-loginimage.tpl.php" erstellt und dort mal alles von der "node.tpl.php" vom Garlandtheme hineinkopiert. danach habe ich in der datei "node-loginimage.tpl.php" zuoberst folgenden code eingefügt:
<?php /* $Id: node-loginimage.tpl.php, v 1.0 2008/04/10 quiptime Exp $ */drupal_set_header('meta http-equiv="refresh" content="5; URL='.base_path().'blog/1"');
?>
die weiterleitung klappt noch nicht. im html-quelltext habe ich gesehen, dass dieser meta-tag gar nicht erscheint. bei mir siehts so aus:
<title>Hinweis | Drupal</title><meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
das ist alles was im quelltext oben ersichtlich ist.. wo versteckt sich der fehler? :-) hat jemand von euch das schon mal auf der eigenen seite ausprobiert?
mfg
Mach mal einen Test in
am 18.04.2008 - 18:26 Uhr
Mach mal einen Test in "node-loginimage.tpl.php".
<?php/* $Id: node-loginimage.tpl.php, v 1.0 2008/04/10 quiptime Exp $ */
drupal_set_header('meta http-equiv="refresh" content="5; URL='.base_path().'blog/1"');
print 'Hallo Welt';
?>
PS
Ein Nodetype hat einen Namen UND einen Typ! Bei der Bezeichnung des Template: Welche Angabe vom Nodetyp verwendest Du? Den Namen oder den Typ?
Fuer die Bezeichnung des Nodetyp Templates MUSST Du den Typ verwenden.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
der neu erstellte nodetype
am 18.04.2008 - 18:51 Uhr
der neu erstellte nodetype hat den Namen "Loginimage" und als typ "loginimage". Die .tpl.php heisst "node-loginimage.tpl.php".
Wenn ich diesen zusätzlichen code mit "Hallo Welt" einbaue, erscheint im quelltext wieder dasselbe wie vorher gepostet.. (Hallo Welt wird nicht angezeigt)
Templatedatei im richtigen Ordner?
am 18.04.2008 - 19:14 Uhr
Mhm, irgendwie der Wald und die Baeume.
Wenn er das Meta-Tag nicht ausgibt und auch mit print 'Hallo Welt' keine Ausgabe erzeugt bedeutet dies eigentlich, das Template wird nicht verwendet.
Der von Dir genannte Themeordner "/themes/garland" ist eigentlich korrekt. Kann die Templatedatei gelesen werden? Was hat sie fuer Rechte?
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
die
am 18.04.2008 - 20:34 Uhr
die "node-loginimage.tpl.php" hat die gleiche berechtigung wie die "node.tpl.php", also 644.
ich habe jetzt nochmals schritt für schritt den neuen inhaltstyp erstellt und dabei screenshots gemacht, denn vielleicht liegt dort irgendwo der fehler?
hier wären die 4 screenshots, der letzte davon zeigt den quelltext, so wie er jetzt erscheint.
Bild 1: http://img86.imageshack.us/img86/5396/neuerinhaltstypap9.jpg
Bild 2: http://img64.imageshack.us/img64/531/neuerinhaltstyp2iy5.jpg
Bild 3: http://img146.imageshack.us/img146/2141/neuerinhaltstyp3cu5.jpg
Bild 4: http://img156.imageshack.us/img156/8296/neuerinhaltstyp4kl8.jpg
vielen dank schon im voraus für gute ratschläge :-)
Nodetype-Template manuell einbinden
am 18.04.2008 - 20:53 Uhr
DerLogik von Drupal folgend ist alles korrekt. Ich kann nichts entdecken was falsch waere.
Die Namensschematik fuer Nodetype-Templates sollte so wie von Dir angewendet auch funktionieren.
Es gibt noch eine Alternative, in der "node.tpl.php" zu erzwingen das bei einem bestimmten Nodetyp eine bestimmte Datei als Template verwendet wird.
Ist eher ungewoehnlich dies anzuwenden aber Niemand sagt das man es nicht machen koennte. Die "node.tpl.php" ueber dem bereits vorhandenen Code damit erweitern:
<?phpif ( $node->type == 'loginimage' ) {
include 'node-loginimage.tpl.php';
return;
}
?>
Das ist nichts weiter als den normalen und automativen PHP-TemplateEngine Mechanismus zum Einbinden von Templates fuer Nodetypes gewissermassen manuell zu praktizieren.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
es will einfach nicht
am 18.04.2008 - 22:43 Uhr
es will einfach nicht klappen! wieso wird denn dieser weiterleitungs-metatag nicht generiert? Könnte man den evtl. manuell auf dieser seite anbringen?
falls es dir zu grossen aufwand macht lassen wirs lieber bleiben, wegen einer simplen gedachten automatischen weiterleitung die dann in stunden rumbasteln endet, dass ist doch die mühe nicht wert. das ist jetzt das erste mal dass mich drupal enttäuscht. aber wahrscheinlich liegts wie meistens an demjenigen, der vor der kiste hockt - an mir ^^
mfg
Probiere es drastisch aus
am 18.04.2008 - 23:53 Uhr
Es gibt da so nen Satz: Es kann nicht sein was nicht sein darf.
Wie gesagt, ich denke das Template wird gar nicht verwendet. Wieso auch immer.
Probiere es drastisch aus und speichere diese Nodetype Templatedatei "node-loginimage.tpl.php" ohne Inhalt.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.