Welcome, Guest. Please login or register.
Did you miss your activation email?
May 26, 2012, 10:42:27 PM

Login with username, password and session length
Search:     Advanced search
Interested in joining the WebsiteBaker team?
For more Information read here or on our new website.
155556 Posts in 21715 Topics by 7737 Members
Latest Member: gx-world
* Home Help Search Login Register
Pages: [1]   Go Down
Print
Author Topic: Advendskalender mit zeitgesteuerten Wysiwyg-Abschnitten  (Read 617 times)
bakerling

Offline Offline

Posts: 340



« on: October 20, 2011, 11:38:49 AM »

Hallo

Ich möchte gerne einen einfachen Adventskalender erstellen. Beim anklicken der Bilder oder Zahlen soll sich kein Türchen öffnen, sondern eine neue interne Seite. Ich stelle mir das so vor::
  • Div Container mit Weihnachts-Hintergrundbild
  • 24 Seiten anlegen mit zeitgesteuerter Veröffentlichung
  • Eine Wysiwyg Seite "Adventskalender" anlegen
  • in "Adventskalender" die einzelnen Bilder oder Zahlen einfügen und auf die Seiten 1-24 verlinken

Wenn ich nun auf ein Bild mit einem späteren Veröffentlichungsdatum klicke, erscheint eine Systemmeldung:
Quote
Kein aktiver Inhalt auf dieser Seite
Nun hierzu meine Fragen:
  • Ist es möglich dass ich für diese Fälle auf eine andere interne Seite verlinken kann? Diese Seite könnte ich dann frei gestalten und mit einem witzigen Hinweis versehen.
  • Eine andere Möglichkeit wäre, dass bei noch nicht erreichtem Veröffentlichungsdatum ein Tooltip mit einem Hinweistext aufgeht.
  • Eine andere Variante wäre, dass der Link bei noch nicht erreichtem Veröffentlichungsdatum nicht anklickbar ist.

Im Forum habe ich leider keine Antworten auf diese Fragen gefunden. Ist überhaupt eine dieser Varianten möglich?

Für Hinweise bin ich echt dankbar.

LG Harry
 
Logged
badknight
Moderator
**
Offline Offline

Posts: 246



WWW
« Reply #1 on: October 20, 2011, 11:46:01 AM »

Sollten PHP Kentnisse vorhanden sein, kannst du das auch über die index.php deines Templates lösen:

if(AKTUELLER TAG == GEWÜNSCHTER TAG FÜR AUSGABE) {
 echo "<a href=\"WB_URL."/xxxx"\">TAG</a>";
}

sprich: du verlinkst nur die tage die du wünscht..
Logged

Ich würde gern die Welt verändern, doch Gott gibt mir den Quellcode nicht...
mr-fan

Offline Offline

Posts: 1556


WWW
« Reply #2 on: October 20, 2011, 12:07:23 PM »

Gleiche Möglichkeit anderer Weg wäre die Links per Droplet zu erstellen...

also [[link?url=http://www.meine-seite.de/pages/12.php]]

und im Droplet prüfst du ob der heutige Tag dem PAGE_TITLE entspricht sollte klappen...

dann gibts einen Link oder halt nur eine Zahl ohne Link...

Gruß Martin

PS: alter Threat...http://www.websitebaker2.org/forum/index.php/topic,11919.0.html
Logged

 
bakerling

Offline Offline

Posts: 340



« Reply #3 on: October 20, 2011, 03:46:42 PM »

Hallo badknight und Martin

Vielen Dank für Eure Ratschläge. Leider bin ich ein absolutes PHP-Greenhorn. Deshalb auch mein Lösungsversuch über zeitgesteuerte Veröffentlichung.

@badknight
Quote
if(AKTUELLER TAG == GEWÜNSCHTER TAG FÜR AUSGABE) {
 echo "<a href=\"WB_URL."/xxxx"\">TAG</a>";
}
Da bin ich schon überfordert. Das einzige, was ich glaube zu verstehen, ist, dass dieser Code wahrscheinlich 24x eingebunden werden muss. Aber wo und wie? Wie kommt die Verbindung zu den einzelnen Kalenderbildchen zustande?

@martin
Ein Droplet ohne PHP-Kenntnisse zu erstellen, ist wahrscheinlich ein zum Scheitern verurteiltes Vorhaben.
Es ist nicht das erste Mal dass ich mit PHP anstehe. Ich glaube ich muss mich auf meine alten Tage doch noch damit befassen.
Quote
Diesen Thread hatte ich mir schon angeschaut, aber auch da das gleiche Problem mit PHP. Übrigens schade, dass der Link von Jürgen nicht mehr funktioniert, wäre evtl eine einfache Lösung gewesen.

Muss ich, da Ihr Beide PHP-Lösungen vorschlagen, davon ausgehen, dass die Lösung mit zeitgesteuerter Veröffentlichung und Ersatz der Systemmeldung
Quote
Kein aktiver Inhalt auf dieser Seite
durch eine gestaltbare Seite, nicht möglich ist?

LG Harry

Logged
mr-fan

Offline Offline

Posts: 1556


WWW
« Reply #4 on: October 20, 2011, 04:47:44 PM »

OK los gehts...

ich habe ein Droplet ausgegraben und mit ausnahmsweise mit ausführlichen deutschen Kommentaren ergänzt....damit das auch für dich kein Problem ist damit zu arbeiten.

Seiten wie beschrieben anlegen:

-Überseite für den Adventskalender (in dem Beispiel "advent")
   --1.php
   --2.php
   --3.php

usw.

Dann Droplet einfügen (siehe Anhang für den Import -> aktuelles DropletModul von AMASP/Bianke würde ich empfehlen auch unbedingt für WB Versionen < 2.8.2)

Falls kein Import möglich hier kurz der Code:
Code:
<?php // diese Zeile nicht kopieren macht nur das Beispiel farbig!

/*
*  Advent Droplet für versteckte Seiten 
*  Am besten versteckte Seiten anlegen
*  www.webseite.de/pages/advent/1.php   bis /24.php
*  
*  $tag Parameter dient der Anzeige des "Link-Tages" Droplet im WYSIWYG-Editor
*  oder wo gewünscht setzen...ihr braucht in der Regel 24x das Droplet
*/

// Überseite aller Kalenderseiten
$verzeichnis 'advent';

//Page Title und Page Extension im Droplet verfügbar machen
$seite PAGE_TITLE;
$anhang PAGE_EXTENSION;

// WB Pfad verfügbar machen
$url WB_URL;
$seiten_verzeichnis PAGES_DIRECTORY;

$aktueller_tag date("d");

// Vergleich des aktuellen Tages mit dem Linktag
if ($tag == $aktueller_tag) {

// wenn true dann Ausgabe Link
    
$ausgabe '<h3 class="advent"><a target="_self" href="'.$url.$seiten_verzeichnis.'/'.$verzeichnis.'/'.$tag.$anhang.'" title="'.$tag.'" alt="'.$tag.'">'.$tag.'</a></h3>';
//    $ausgabe = '<h3>Link<h3>';
} else {

// wenn false dann nur Ausgabe Text als H3 mit der Klasse advent
    
$ausgabe '<h3 class="advent">'.$tag.'</h3>';
}

return 
$ausgabe;

==> Formatieren über die HTML Tags und die CSS Klasse "advent"

==> Falls du das ganze in einer Imagemap brauchst ist nur die Ausgabe des Links zu ändern so das er z.B. nur
Code:
href="PHP Code so lassen"
ausgibt und dann das Droplet im HTML Quelltext mit den AREAS hrefs ersetzen
Generatoren für Imagemaps die dir den HTML Code erzeugen gibts bei google Wink

Hoffe das klappt soweit

Gruß Martin
« Last Edit: October 20, 2011, 10:41:25 PM by mr-fan » Logged

 
bakerling

Offline Offline

Posts: 340



« Reply #5 on: October 21, 2011, 09:58:24 AM »

Hallo Martin

So schnelle und ausführliche Hilfe ist der Hammer! smiley Vielen herzlichen Dank. Ich werde es über das Wochenende gleich ausprobieren. Ich hoffe, ich kriege das hin. Wäre zwar eine Schande, wenn ich das mit einem fertigen Droplet nicht hinkriegen würde.

Nochmals vielen herzlichen Dank und liebe Grüsse
Harry
Logged
mr-fan

Offline Offline

Posts: 1556


WWW
« Reply #6 on: October 21, 2011, 10:13:24 AM »

...naja habe eigentlich nur die Kommentare eingebaut und ein paar andere Teile ersetzt hatte das für ein anderes Projekt rumliegen...

denke mit den Kommentaren kommst du klar und weist was genau wo passiert ist nicht so schwer...

sehe grad (beim tageslicht Wink ) das ich noch eine Zeile vergessen hab zu löschen...$seite = PAGE_TITLE; braucht man hierbei nicht....ist aber egal wenn du das nicht löscht ist auch nichts kaputt.

Bei Fragen melden bin leider erst nächste Woche wieder mehr "richtig" online (nicht nur zum mitlesen)

Viel Spaß damit und Gruß Martin

//EDIT ...kann sein das date() nicht die optimale PHP Funktion ist das die Geschichte mit Zeitzonen/Serverzeit/Winter- und Sommerzeit ein wenig komplizierter ist....eventuell kann hier ein "richtiger" PHP Profi mal kommentieren ob das passt oder eine andere Funktion besser wäre...?
« Last Edit: October 21, 2011, 10:16:22 AM by mr-fan » Logged

 
bakerling

Offline Offline

Posts: 340



« Reply #7 on: October 23, 2011, 03:16:51 PM »

Hallo Martin

Ich habe es leider nicht hingekriegt.  huh Ich habe beim Einfügen der Bilder in den Wysiwyg-Editor anstelle des Links den Dropletaufruf [[advent?tag=12]] anstelle eines Links eingefügt. (Natürlich angepasst von tag=1 bis tag=24) Mal ohne Protoll mal mit http://
Das Resultat war eine Verlinkung auf
Code:
../pages/<h3 class=
Ich habe dann den Tag h3 entfernt. Das Resultat war ein Link
Code:
<a target=
Wenn ich den a Tag entferne geht gar nichts mehr (der Droplet Tropfen blinkt rot.)

Ich habe dann parallel einen Adventskalender mit zeitverzögerten Wysiwyg-Dateien (1.php bis 24.php) erstellt. Würde eigentlich klappen. Nur bei noch nicht aktuellen Tagen ist es eine Bastelei. Ich habe im Verzeichnis "languages" die Meldung:
Quote
Kein aktiver Inhalt auf dieser Seite vorhanden
abgeändert
 
Code:
// Success/error messages
$MESSAGE['FRONTEND']['SORRY_NO_ACTIVE_SECTIONS'] = '<div class="spaeter"><h1 class="spaeter">Z&uuml;geln Sie Ihre Neugier, Sie sind zu fr&uuml;h.</h1></div>'; //Kein aktiver Inhalt auf dieser Seite vorhanden';


Es würde funktionieren. Nur ist das Ändern dieser error message wahrscheinlich etwas unschön.

Ich habe die beiden Seiten auf versteckt gestellt. Du kannst sie Dir anschauen unter:
Mit zeitgesteuerten Wysiwiyg Dateien:
http://testseite-wb.dramatik.ch/pages/advent2.php
Mit Droplet advent
http://testseite-wb.dramatik.ch/pages/advent.php

Bitte achte nicht auf die Gestaltung. Es ist meine Bastelumgebung.  wink

Ich hoffe Du kannst mir einen Hinweis geben, was ich mit dem Droplet falsch mache.

LG Harry



 


Logged
mr-fan

Offline Offline

Posts: 1556


WWW
« Reply #8 on: October 24, 2011, 07:32:57 AM »

Hallo Harry,

wie gesagt das Droplet gibt einen kompletten HTML Tag samt Link aus....das klappt natürlich nicht mit Bildern!!

mach mal aus:
Code:
// wenn true dann Ausgabe Link
    $ausgabe = '<h3 class="advent"><a target="_self" href="'.$url.$seiten_verzeichnis.'/'.$verzeichnis.'/'.$tag.$anhang.'" title="'.$tag.'" alt="'.$tag.'">'.$tag.'</a></h3>';
//    $ausgabe = '<h3>Link<h3>';

// wenn true dann Ausgabe Link      
    $ausgabe = $url.$seiten_verzeichnis.'/'.$verzeichnis.'/'.$tag.$anhang;
Code:

Bloß zum Test.....

natürlich musst du analog bei

Code:
// wenn false dann nur Ausgabe Text als H3 mit der Klasse advent
    $ausgabe = '<h3 class="advent">'.$tag.'</h3>';

etwas in der Art ergänzen damit nicht verlinkt wird...
Code:
// wenn false dann nur Ausgabe #
    $ausgabe = '#';

...und wegen eines "Adventskalenders" das language file zu ändern hält hier glaub ich niemand für eine gute Idee. Wink

Gruß Martin
Logged

 
bakerling

Offline Offline

Posts: 340



« Reply #9 on: October 24, 2011, 08:30:02 AM »

Hallo Martin

Vielen Dank! Scheint zu funktionieren. Muss jetzt weg. Melde mich nachher.

LG Harry
Logged
bakerling

Offline Offline

Posts: 340



« Reply #10 on: October 24, 2011, 01:41:06 PM »

Hallo Martin

Heureka! Es funktioniert wirklich.
Ich habe das Droplet noch etwas abgeändert, sodass:
  • auch zurückliegende Tage angezeigt werden
  • bei künftigen Tagen sich eine Seite mit einer Mitteilung öffnet

Das Droplet sieht nun so aus:
Code:
/*
*  Advent Droplet für versteckte Seiten
*  Am besten versteckte Seiten anlegen
*  www.webseite.de/pages/advent/1.php   bis /24.php

*  $tag Parameter dient der Anzeige des "Link-Tages" Droplet im WYSIWYG-Editor
*  oder wo gewünscht setzen...ihr braucht in der Regel 24x das Droplet
*/

// Überseite aller Kalenderseiten
$verzeichnis = 'advent';
$later = 'later';

//Page Title und Page Extension im Droplet verfügbar machen
$seite = PAGE_TITLE;
$anhang = PAGE_EXTENSION;

// WB Pfad verfügbar machen
$url = WB_URL;
$seiten_verzeichnis = PAGES_DIRECTORY;

$aktueller_tag = date("d");

// Vergleich des aktuellen Tages mit dem Linktag
if ($tag <= $aktueller_tag) {

// wenn true dann Ausgabe Link
    $ausgabe = $url.$seiten_verzeichnis.'/'.$verzeichnis.'/'.$tag.$anhang;
//    $ausgabe = '<h3>Link<h3>';
} else {

// wenn false dann Ausgabe einer Seite mit einem Hinweistext
    $ausgabe = $url.$seiten_verzeichnis.'/'.$verzeichnis.'/'.$later.$anhang;
}

return $ausgabe;

Wäre es eigentlich auch möglich, wenn false, den Link auf inaktiv zu setzen? So dass das Bild gar nicht anklickbar ist?


Ich bin sehr froh über Deine kompetente Hilfe und danke Dir herzlich.

LG Harry


Logged
pcwacht
AddOn Development
*
Offline Offline

Posts: 2859



WWW
« Reply #11 on: October 24, 2011, 01:58:18 PM »

Code:
// wenn false dann Ausgabe einer Seite mit einem Hinweistext
    $ausgabe = $url.$seiten_verzeichnis.'/'.$verzeichnis.'/'.$later.$anhang;
}

Wenn false allso kein geschiktes tag, mach einfach ausgabe = '#';
Dieses fall wirds kein link geben

Code:
// wenn false dann Ausgabe einer Seite mit einem Hinweistext
    $ausgabe = '#';
}


Spass,
John
Logged

http://www.ictwacht.nl = Dutch ICT info
http://www.pcwacht.nl = My first
both still work in progress, since years.....
bakerling

Offline Offline

Posts: 340



« Reply #12 on: October 24, 2011, 02:49:50 PM »

Hallo John

Danke für Deine Antwort.
Quote
$ausgabe = '#';
Dies hatte ich schon ausprobiert. Gibt leider doch einen Link, das heisst die gleiche Seite "advent" öffnet sich beim Anklicken noch einmal in einem neuen Fenster. Wahrscheinlich weil bei Links der Bilder als Zielseite target_blank ausgewählt ist. Die Seiten 1.php bis 24.php müssen sich aber in einem neuen Fenster öffnen.

LG Harry
 
Logged
pcwacht
AddOn Development
*
Offline Offline

Posts: 2859



WWW
« Reply #13 on: October 24, 2011, 03:20:23 PM »

Dann wird die <a href=....
irgendwo gesetzt?

Die < a href=... soll nur gesetzt wirden wenn es muss, sonst nichts oder nur ein ' ' (space)

Ins letzte droplet ist gar kein <a href=...

Ich weiss nicht ob die droplet zwisschen <a href=.... </a> steht.

John
« Last Edit: October 24, 2011, 03:23:29 PM by pcwacht » Logged

http://www.ictwacht.nl = Dutch ICT info
http://www.pcwacht.nl = My first
both still work in progress, since years.....
bakerling

Offline Offline

Posts: 340



« Reply #14 on: October 24, 2011, 04:41:21 PM »

Hallo John

Der Droplet-Aufruf ist im Wysiwyg Editor bei Einfügen Bild als Link eingetragen.

LG Harry
Logged
mr-fan

Offline Offline

Posts: 1556


WWW
« Reply #15 on: October 24, 2011, 05:04:42 PM »

Hallo John

Der Droplet-Aufruf ist im Wysiwyg Editor bei Einfügen Bild als Link eingetragen.

LG Harry

Das macht für diese Lösung nur Probleme - dann wenn z.B. der WYSIWYG statt der schönen Droplet & ein &amp; macht usw. usw.

Deshalb habe ich die erste Variante des Droplets für reine Textlinks gemacht und diese klappen einwandfrei!

Mach dir diesen Kalender manuell und nicht per Wysiwyg, dann klappt das auch mit den Links...wenn es für einen Kunden sein sollte....mach es als Modul! z.B. eignet sich Members dazu....aber das wird dann etwas aufwändiger...Wink

Gruß Martin
Logged

 
bakerling

Offline Offline

Posts: 340



« Reply #16 on: October 25, 2011, 08:45:53 PM »

Hallo Martin

Danke für Deinen Hinweis betr. Wysiwyg-Editor.  Ich werde es mal mit dem Members Modul versuchen. Ich habe dieses geniale Modul schon mal eingesetzt. Ich denke ich werde es damit hinkriegen. Ich habe ja auch noch etwas Zeit bis zum Advent.

LG Harry
Logged
Pages: [1]   Go Up
Print
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.16 | SMF © 2011, Simple Machines Valid XHTML 1.0! Valid CSS!