Page 2 of 2

Posted: Thu Feb 22, 2007 10:49 am
by garvinhicking
Hi!

Ja, aber so ist das halt mit Framesets :-)

Viele Grüße,
Garvin

Posted: Thu Feb 22, 2007 11:04 am
by ostfriese2004
Garvin,

kann man denn irgendwo etwas einfügen, dass beispielsweise auf "allen Unterseiten" eine Standardgrafik statt des Headers eingelesen wird? Oder dass beispielsweise eine zweite index.tpl (index2.tpl) im Anschluss immer aufgerufen wird, in der anstelle des Flashfilms nur eine Grafik drin ist? Also beim ersten Aufruf der Seite wird standardmäßig index.tpl geladen, und wenn sonst irgendwo etwas aufgerufen wird eben index2.tpl?

Posted: Thu Feb 22, 2007 11:07 am
by garvinhicking
Hi!
kann man denn irgendwo etwas einfügen, dass beispielsweise auf "allen Unterseiten" eine Standardgrafik statt des Headers eingelesen wird? Oder dass dann beispielsweise eine zweite index.tpl aufegrufen wird, in der anstelle des Flashfilms nur eine Grafik drin ist?
Nein, dann müsstest du ja aus dem Frameset komplett ausbrechen und kommst nicht "zurück".

Grüße,
Garvin

Posted: Thu Feb 22, 2007 11:08 am
by ostfriese2004
ne, ich meine jetzt wieder ohne Frameset, es muss doch irgendwo eine Funktion geben, die immer wieder index.tpl aufruft. Wenn man daraus einfach index2.tpl macht?

** Nachtrag: **

Ich rufe index2.tpl beim ersten Browser-Aufruf via htaccess auf. Dann habe ich noch eine zweite Dtaei im Verzeichnis namens index.tpl - die müsste ja dann sonst immer aufgerufen werden. Mal probieren ...

hmm, ne, es wird ja index.php aufgerufen...

Und wenn ich via htaccess eine index2.php zum ersten Start aufrufe, die index2.tpl aufruft? Vielleicht wird ja sonst immer wieder auf index.php verwiesen, die dann halt ganz normal index.tpl aufruft. Im Prinzip ist der Flashheader ja nur ne kleine Intro, die nur beim ersten Aufruf angezeigt werden soll; bei jedem weiteren Aufruf wird die Animation dann durch eine Grafik ersetzt...

Posted: Thu Feb 22, 2007 12:26 pm
by garvinhicking
Hi!

Bastel eine index.html die dein flashintro ausführt, und leite von der index.html dann auf index.php weiter?

Noch leichter ginge das wenn du s9y in einem unterverzeichnis deines servers installiert hast. Dann erstellst du im stammverzeichnis deine index.html mit Flash und leitest dann auf das s9y unterverzeichnis weiter. Dann hast Du nämlich auch keine Probleme mit URL-Rewriting...

Grüße,
Garvin

Posted: Thu Feb 22, 2007 12:58 pm
by ostfriese2004
Dann wird ja erst die Flash-Animation gespielt, und dann erst der restliche Kram geladen; so meinte ich das nicht. Guck mal hier: http://www.buchheister.net/ostfriesenblog-head.swf

Dieser Header wird gespielt, wenn jemand das Blog aufruft. Leider wird er ja immer wieder geladen, wenn irgendwo etwas angeklickt wird. Das ist beispielsweise nervig wegen des Tons, womöglich holt er sich die Datei auch immer wieder vom Server (60k). Meine Idee war nun, dass ich diese Animation praktisch mit dem letzten Bild ersetze. Etwa als statischer .JPG-Backgrounder oder aber als ganz kleines (zweites) Flashfile, wo nur das letzte Bild des Flashintros zu sehen ist.

Des Weiteren war die Idee, dass ich das realisiere, indem ich zunächst via htaccess eine neu erstellte Datei namens index2.php beim ersten Start aufrufen lasse. Also jemand gibt http://www.ostfriesenblog.de ein und dann wird eben index2.php mit dem in index2.tpl (ebenfalls eine Kopie der ursprünglichen index.tpl - da wird der Header ja eingeladen) angegeben Flashheader aufgerufen. Von irgendwo muss index.tpl mit der Header-Angabe ja eingelesen werden.

Wenn nun aber jemand irgendwo etwas anklickt, wird die möglicherwiese wieder die reguläre Seite mit index.php samt index.tpl ohne das eingebettene Flash-File (nur Grafik) geladen.

Insofern müsste ich doch nur in der index2.php einstellen, dass index2.tpl mit der Flashheader-Angabe geladen wird. Klickt dann jemand irgendwo im Blog etwas an, wird immer ganz regulär index.php mit index.tpl (ohne Flash) aufgerufen, weil das überall so von Natur bzw. von dir aus so angegeben ist...

Das war meine Idee, die aber natürlich nur funktioniert, wenn index.php auch index.tpl aufruft. So habe ich das nämlich verstanden. Geht das?

:D

Posted: Thu Feb 22, 2007 1:12 pm
by garvinhicking
Hi!

Das mit deiner index.php und so klappt nicht, da ist ein großer Denkfehler drin: Alles von serendipity wird über index.php abgehandelt, das template ist für alle folgeseiten immer gleich.

Du kannst ein PHP-Script entwickeln was einen Cookie oder eine Session-Variable setzt, wenn die Animation zum ersten mal gezeigt wurde, und dann bei jeder folgeseite nicht mehr. In index.tpl (Pseudocode):

Code: Select all

{if $smarty.cookies.animation_gemacht}
<img src="header.jpg" />
{else}
<flash>
<script type="text/javascript">
var today  = new Date();
var expire = new Date();
expire.setTime(today.getTime() + (60*60*24*30));
document.cookie = 'animation_gemacht=1;expires=' + expire.toGMTString();
</script>
{/if}
Grüße,
Garvin

Posted: Thu Feb 22, 2007 1:58 pm
by ostfriese2004
Herzlichen dank!
Okay, habe es eingebunden, klappt. Hier die Lösung aus der index.tpl für alle, die Ähnliches vorhaben:

<div id="header">
<div id="serendipity_banner">
{if $smarty.cookies.animation_gemacht}
<img src="http://www.buchheister.net/ostfriesenblog-head.jpg" />
{else}
<script type="text/javascript" src="http://www.buchheister.net/swfobject.js"></script> <div id="flashcontent"><img src="http://www.buchheister.net/ostfriesenbl ... jpg"></div> <script type="text/javascript"> var so = new SWFObject("http://www.buchheister.net/Ostfriesenblog-Head.swf", "Ostfriesenblog-Head", "900", "200", "6", "#336699"); so.write("flashcontent");
var today = new Date();
var expire = new Date();
expire.setTime(today.getTime() + (60*60*24*30));
document.cookie = 'animation_gemacht=1;expires=' + expire.toGMTString();
</script>
{/if}
</div>
</div>

Auf deutsch: :-)
überprüfe ob Cookie gesetzt; wenn ja, dann zeige Grafik. Wenn nicht, dann überprüfe ob Flashplayer installiert ist (via swfobject-js-code). Wenn ja, spiele Flash, wenn nein: zeige Hintergrundgrafik.

Dazu noch eine Frage: Was bedeuten die Expire-Settings? Kann man die so einstellen, dass die Variable nach fünf Minuten bereits wieder gelöscht wird? Unterhalb der oberen Navigationsleiste (aus dem coffeebar-theme) habe ich ein Menü. Ganz links steht Startseite/Homepage. Wenn die aufgerufen wird, gelangt man wieder auf die Startseite, vermutlich wird index.php aufgerufen. Kann ich da eine Abfrage reinsetzen, die den Cookie wieder auf null setzt? Also, wenn "Homepage" aufgerufen wird, dann setze Cookie wieder auf null, so dass dann die Flashanimation wieder gespielt wird?

Du hast damit übrigens ein Problem gelöst, das in zig Flashforen oder solchen von Content Management Systemen angesprochen wurde, bei denen ähnliches passiert. Und keiner wußte eine funktionierende Lösung. Mit anderen Worten: Hervorragend, setzen, Eins!