Seite empfehlen

Fragen zum Erstellen von Templates für webEdition.
Mike007

Seite empfehlen

Beitragvon Mike007 » Mi 27. Okt 2004, 02:53

Hallo,

ich möchte auf bestimmten Seiten, unten ein dezenten Button plazieren DIESE SEITE EMPFEHLEN. Wenn man auf diesen klickt soll ein POP UP Fenster aufgehen, in dem folgendes steht:

ABSENDER
Vorname:
Nachname:
E-Mail Adresse:

EMPFÄNGER
Vorname:
Nachname:
E-Mail Adresse:

Ihre persönliche Nachricht:

SENDEN

Nachdem dieses vom User eingegeben wurde und SENDEN gedrückt wurde, soll der Empfänger eine Nachricht bekommen in der der Link der Seite (die empfohlen wurde, nicht die Hauptdomain sondern die spezielle Seite, in der der Button angeklickt wurde) drinne steht, sowie der Name des Absenders und seine persönliche Nachricht.

Der Absender soll auch ein Bestätigunsnachricht bekommen (Sie haben diese Seite an folgende Peron weiterempfohlen, etc.).

So wie bei http://www.bild.de Artikel versenden auf manchen Seiten.

Das ganze soll natürlich automatisiert bzw. dynamisch sein, so das man dies einfach in entsprechenden Templates einbaut, und nicht das der Benutzer von WebEdition das selbst in jede neue Rubrik einbauen muss.

Ist sowas möglich . . . . . ?

Danke schon mal im Vorraus

Mike

petermann

noch ne anregung/frage

Beitragvon petermann » Sa 30. Okt 2004, 14:36

nett wäre auch ne lösung bei der nicht nur der link sondern auch der textinhalt der seite (oder nur ein definierter Teil) mitgeschickt werden könnte!

liebe grüße

Jan Gorba

Beitragvon Jan Gorba » Do 11. Nov 2004, 18:01

Hier eine barrierefreie objektorientierte PHP Lösung!

1) Grundsätzlich:
Ich habe hier eine Mail-Klasse in PHP geschrieben, die entweder via
<include();> einbezogen oder direkt in die Datei gecodet werden kann.

Im in Rede stehenden Beispiel ist letzteres der Fall. Natürlich kann man da noch einiges automatisieren- z.B. setzte ich hier den Ausgabe-String mittels PHP zusammen, was mit webedition-Bordmitteln eleganter lösbar ist, z.B. mit Input's oder textarea's.

2) Die Ausgabe wird ausschliesslich mit css gesteuert, also Aussehen, Format und Positionierung des Formulares etc. im Hinblick auf validen xhtml code und Barrierefreiheit.


So, zunächst die-Klassen, die das Aussehen des Formulares steuern:

###########################
z.B layout.css:

.fmail legend {
display: inline;
}

.fmail fieldset {
display: block;
width: 97.5%;
margin: 0em;
padding: 0em;
/* Test */
border:#7F9DB9 solid 1px!important;

} #nav>#fmail fieldset {width: 100%;} /* IE ~5 Hack */

.fmail label
{
width: 12em;
float: left;
text-align: right;
margin: 0 .5em .1em 0em;
clear: both;
}


.fmail input{
font-size:1em;
width: 12em;

}
.fmail select{
font-size:1em;
width: 12.5em;


}

.fmail .fmailBut{
margin-bottom:0em;
margin-right:0em;
/*
test
*/
font-size:.8em;

}
.fmail #fmailFloatTerm{
clear:both;

}


.fmailCheck input {
float: left;
width:1.5em;
margin:0em 0em 0em 1em;
}

.fmailCheck label {
width: 20em;
float: left;
margin: 0em;
vertical-align:top;

}
.fmailCheck .sm{
font-size:70%;
color:#006699;

}
###########################

Nun der PHP-Teil in einem template- z.B.: versenden.tmpl:

<?php

if ( ! defined( 'MAIL_CLASS_DEFINED' ) ) {
define('MAIL_CLASS_DEFINED', 1 );
class email {

// der constructor!
function email ( $subject, $message, $senderName, $senderEmail, $toList, $ccList=0, $bccList=0, $replyTo=0) {
$this->sender = $senderName . " <$senderEmail>";
$this->replyTo = $replyTo;
$this->subject = $subject;
$this->message = $message;

/* erzeugt den To: Empfänger(oder mehrere Empfänger)
dabei wird die eingetragen Email oder durch Komma getrennte mehrere Emails in ein Array geschrieben. und gegebenfalls zusammengesetzt..
*/
if ( is_array($toList) ) {
$this->to = join( $toList, "," );
} else {
$this->to = $toList;
}

/* erzeugt den Cc: Kopie-Empfänger(oder mehrere Empfänger)
dabei wird die eingetragen Email oder durch Komma getrennte mehrere Emails in ein Array geschrieben und gegebenfalls zusammengesetzt...
*/

if ( is_array($ccList) << sizeof($ccList) ) {
$this->cc = join( $ccList, "," );
} elseif ( $ccList ) {
$this->cc = $ccList;
}

/* erzeugt den BCc: Blind-Kopie-Empfänger(oder mehrere Empfänger)
dabei wird die eingetragen Email oder durch Komma getrennte mehrere Emails in ein Array geschrieben und gegebenfalls zusammengesetzt...- ja sogar das ist möglich.
*/

if ( is_array($bccList) << sizeof($bccList) ) {
$this->bcc = join( $bccList, "," );
} elseif ( $bccList ) {
$this->bcc = $bccList;
}

}


function send () {
// Erzeugt die Header, die PHP's mail() function benötigt

// sender
$this->headers = "From: " . $this->sender . "n";

// reply-to Adresse
if ( $this->replyTo ) {
$this->headers .= "Reply-To: " . $this->replyTo . "n";
}

// Cc: Empfänger
if ( $this->cc ) {
$this->headers .= "Cc: " . $this->cc . "n";
}

// Bcc: Empfänger
if ( $this->bcc ) {
$this->headers .= "Bcc: " . $this->bcc . "n";
}

return mail ( $this->to, $this->subject, $this->message, $this->headers );
}
}


}

/*
Zusammensetzten des Ausgabe-Strings- also wenn man auf einer Seite dem User seine Angaben nachdem er den URL vesendet hat, nochmal zeigen möchte.

*/

$way="Guten Tag,n"" .$senderN. "" war gerade auf der Homepage von webEdition.nund hat interessanten Inhalt gefunden. ";
$way.=""".$senderN."" möchte diese Seite gernnan Sie weiterempfehlen";
$way.="und hat folgende Daten hinterlassen:nn";
$way.="Hallo,n";
$way.="eben habe ich folgende interessante Seite gefunden:n";
$way.="URL:"" .$pfad.""n";
$way.="nName: "" .$senderN. ""n";
$way.="Email: "" .$senderM. ""n";
$way.="Nachricht: "" .$messageM. ""n";

$m = new email ( "Subjekt der Email hier eintragen", // subject
"$wayn", // message body
"$senderNn", // sender name
"$senderM", // sender'email
/*
To: Empänger array("bla@bla.de", "meier@schulze.de"),

*/
"$respM",
"$senderM", // Cc: Empfänger
"BCc email-Adresse", // Bcc: Empfänger
"$senderM" // replay-to: Empfänger
);

$m->send();

/*
Bestätigung der eingegebenen Daten

echo "Ihr Name:<span style='font-weight:bold; font-size:85%;'>".$senderN."</span><br/>n";
echo "Ihre Email:<span style='font-weight:bold; font-size:85%;'>".$senderM."</span><br/>n";
echo "Empfänger-Email:<span style='font-weight:bold; font-size:85%;'>".$respM."</span><br/>n";
echo "Sie haben folgende Daten versendet:n<br/>";
echo "URL: <span style='font-weight:bold; font-size:85%; font-color:#1c3a54;'>".$pfad."</span>n<br/>";
echo "Nachricht: <span style='font-weight:bold; font-size:85%;'>".$messageM."</span><br/>n";


?>

###########################

Nun baue ich das Formular barrierefrei zusammen. z.B. so:

empfehlung.tmpl:
<head>

<we:css id="ID des layout.css" rel="stylesheet" media="screen" xml="true" />

</head>
<body xml:lang="de">


blabla..
..
..
..

<?php
/*
Hier wird die Variable "finder", der Variablen $Pfad zugewiesen, die in dieser Datei weiterverarbeitet wird....
*/

$pfad = $HTTP_POST_VARS["finder"];

/*
..und nochmal ausgegeben, wenn beliebt :)..

*/

echo "<span style='font-weight:bold; font-size:85%; font-color:#1c3a54;'>".$pfad."</span>n<br/><br/>";
?>
<!-- start mailform -->
<we:form id="ID des Dokumentes, welches auf dem versenden.tmpl basiert" method="post" xml="true" class="fmail">
<fieldset>
<legend> Send2Friend </legend>
<!--
hier kommt der entscheidende Teil- in dem "hidden"-Feld wird der Wert der Variablen $pfad an die Email-Versenden-Klasse übergeben...
-->
<input type="hidden" name="pfad" value="<?php echo $pfad; ?>">
<p>
<label for="senderN">Mein Name * : </label>
<input id="senderN" type="text" name="senderN" />
</p>
<p>
<label for="senderM">Mein Email * : </label>
<input id="senderM" type="text" name="senderM" />
</p>
<p>
<label for="respM">Empfänger-Email : </label>
<input id="respM" type="text" name="respM" />
</p>
<p>
<label for="messageM">Ihre Nachricht* :</label>
<textarea id="messageM" name="messageM" rows="6" cols="40"></textarea>
</p>
<p>
<label for="send"> </label>
<input id="send" type="submit" value="Absenden" class="fmailBut" />
<label for="reset"> </label>
<input id="reset" type="reset" value="Löschen" name="zurückstellen" class="fmailBut" />
<hr style="clear: both; visibility: hidden;" />
</fieldset>
</we:form>
<!-- end mailform -->

###########################

Im vorigen Abschnitt wurde der Weiterverarbeitung die Variable "finder" übergeben. Diese muss nun in einer beliebigen Datei mit Inhalt versehen werden. Inhalt ist hier halt der aktuelle URL einer Seite....:

Wir bauen also für den Versende-Button, oder Link ein kleines Skript, welches den aktuellen URL der Seite aufnimmt und weitergibt....

In jene Seiten an geeigneter Stelle einbauen, dessen URLs versedndet werden sollen:

<!-- start send2friend -->
<we:form id="ID des Dokumentes, welches auf dem empfehlen.tmpl basiert" method="post" xml="true">

/*
Der entscheidene Teil:
hier wird der aktuelle URL ermittelt.
*/
<input type="hidden" name="finder" value="<?php echo "http://".$_SERVER['SERVER_NAME'].$GLOBALS['we_doc']->Path ; ?>">
<we:ifEditmode>
<we:img name="send2" showimage="false"/>
</we:ifEditmode>
<input type="image" class="e2fButton" src="<we:var name="send2" type="img"/>" alt="send2friend-Button" title="Diese Seite an einen Freund versenden" />
</we:form>
<!-- end send2friend -->
##########################

Fertig :)

Robyn

Beitragvon Robyn » Do 11. Nov 2004, 18:20

Hallo Jan!

Mit diesem Beispiel kann ich arbeiten, vielen Dank!

Ist es auch möglich, dass man da, wo die aktuelle URL ermittelt wird:

Code: Alles auswählen

<input type="hidden" name="finder" value="<?php echo "http://".$_SERVER['SERVER_NAME'].$GLOBALS['we_doc']->Path ; ?>">
statt des kompletten Pfads nur die ID des Dokuments übermittelt und mit dieser dann im verarbeitenden Script die URL zusammenbaut?
Ich versuche das gerade, z. B. so

Code: Alles auswählen

<we:url id="<we:var name="rec_id" type="global"/>"/>
aber offenbar kann man we-Tags nicht ineinander schachteln...

Ach ja, ist das we_doc-Objekt irgendwo dokumentiert? Sorry, falls ich offensichtliches frage, das sind gerade meine ersten Schritte mit webEdition.

Schöne Grüße
Robyn

Flavio Holdermann

Beitragvon Flavio Holdermann » Do 11. Nov 2004, 18:25

also schachtelen von we-tags geht nicht
eine docu zum WE-doc obejekt gibt es nciht, mann kann sich jedoch alles einfach mal per

Code: Alles auswählen

<?php p_r($GLOBALS['we_doc']) ; ?>

anzeigen lassen

kmd

Beitragvon kmd » Sa 13. Aug 2005, 17:23

Hallo Leute,

ich habe die Scripte auf meiner Seite eingebunden aber es funzt nicht richtig.
Es kommt zwar die Bestätigung der eingegebenen Daten aber es wird keine Email versendet.

Woran könnte es hängen?

Grüße KMD

Christoph Lütjen

Beitragvon Christoph Lütjen » So 14. Aug 2005, 01:49

Hallo,

sorry, aber das kann so wahrscheinlich keiner beantworten... Bitte etwas genauer beschreiben, wie eingebunden, usw.. geht denn eine Mail über ein normales Kontaktformular? Vielleicht ein Stückchen vom Quellcode ;-)

kmd

Beitragvon kmd » Mi 17. Aug 2005, 15:56

Hallo,

Folgende Dateien habe ich erstellt:


1.) im Ordner "css" die datei "mail.css" erstellt (ID 310). Dem Quellcode habe ich 1:1 von dieser Seite kopiert.


2.) im Ordner "mail" das Template "versenden.tmpl" (ID 108) mit folgendem Quellcode erstellt (Ebenfalls aus dieser Seite kopiert, bis auf die Kommentare):

<?php
if ( ! defined( 'MAIL_CLASS_DEFINED' ) ) {
define('MAIL_CLASS_DEFINED', 1 );
class email {

function email ( $subject, $message, $senderName, $senderEmail, $toList, $ccList=0, $bccList=0, $replyTo=0) {
$this->sender = $senderName . " <$senderEmail>";
$this->replyTo = $replyTo;
$this->subject = $subject;
$this->message = $message;

if ( is_array($toList) ) {
$this->to = join( $toList, "," );
} else {
$this->to = $toList;
}

if ( is_array($ccList) << sizeof($ccList) ) {
$this->cc = join( $ccList, "," );
} elseif ( $ccList ) {
$this->cc = $ccList;
}

if ( is_array($bccList) << sizeof($bccList) ) {
$this->bcc = join( $bccList, "," );
} elseif ( $bccList ) {
$this->bcc = $bccList;
}
}


function send () {
$this->headers = "From: " . $this->sender . "n";
if ( $this->replyTo ) {
$this->headers .= "Reply-To: " . $this->replyTo . "n";
}
if ( $this->cc ) {
$this->headers .= "Cc: " . $this->cc . "n";
}
if ( $this->bcc ) {
$this->headers .= "Bcc: " . $this->bcc . "n";
}
return mail ( $this->to, $this->subject, $this->message, $this->headers );
}
}
}

$way="Guten Tag,n"" .$senderN. "" war gerade auf der Homepage von webEdition.nund hat interessanten Inhalt gefunden. ";
$way.=""".$senderN."" möchte diese Seite gernnan Sie weiterempfehlen";
$way.="und hat folgende Daten hinterlassen:nn";
$way.="Hallo,n";
$way.="eben habe ich folgende interessante Seite gefunden:n";
$way.="URL:"" .$pfad.""n";
$way.="nName: "" .$senderN. ""n";
$way.="Email: "" .$senderM. ""n";
$way.="Nachricht: "" .$messageM. ""n";

$m = new email ( "Subjekt der Email hier eintragen", // subject
"$wayn", // message body
"$senderNn", // sender name
"$senderM", // sender'email
"$respM",
"$senderM", // Cc: Empfänger
"BCc email-Adresse", // Bcc: Empfänger
"$senderM" // replay-to: Empfänger
);

$m->send();

echo "Ihr Name:<span style='font-weight:bold; font-size:85%;'>".$senderN."</span><br/>n";
echo "Ihre Email:<span style='font-weight:bold; font-size:85%;'>".$senderM."</span><br/>n";
echo "Empfänger-Email:<span style='font-weight:bold; font-size:85%;'>".$respM."</span><br/>n";
echo "Sie haben folgende Daten versendet:n<br/>";
echo "URL: <span style='font-weight:bold; font-size:85%; font-color:#1c3a54;'>".$pfad."</span>n<br/>";
echo "Nachricht: <span style='font-weight:bold; font-size:85%;'>".$messageM."</span><br/>n";
?>


3.) im Ordner "mail" das Template "empfehlung.tmpl" (ID 109) mit folgendem Quellcode erstellt (Ebenfalls aus dieser Seite kopiert, bis auf die Kommentare):

<html><head>
<we:css id="310" rel="stylesheet" media="screen" xml="true" />
</head>
<body xml:lang="de">
<?php
$pfad = $HTTP_POST_VARS["finder"];
echo "<span style='font-weight:bold; font-size:85%; font-color:#1c3a54;'>".$pfad."</span>n<br/><br/>";
?>
<!-- start mailform -->
<we:form id="312" method="post" xml="true" class="fmail">
<fieldset>
<legend> Send2Friend </legend>
<!--
hier kommt der entscheidende Teil- in dem "hidden"-Feld wird der Wert der Variablen $pfad an die Email-Versenden-Klasse übergeben...
-->
<input type="hidden" name="pfad" value="<?php echo $pfad; ?>">
<p>
<label for="senderN">Mein Name * : </label>
<input id="senderN" type="text" name="senderN" />
</p>
<p>
<label for="senderM">Mein Email * : </label>
<input id="senderM" type="text" name="senderM" />
</p>
<p>
<label for="respM">Empfänger-Email : </label>
<input id="respM" type="text" name="respM" />
</p>
<p>
<label for="messageM">Ihre Nachricht* :</label>
<textarea id="messageM" name="messageM" rows="6" cols="40"></textarea>
</p>
<p>
<label for="send"> </label>
<input id="send" type="submit" value="Absenden" class="fmailBut" />
<label for="reset"> </label>
<input id="reset" type="reset" value="Löschen" name="zurückstellen" class="fmailBut" />
<hr style="clear: both; visibility: hidden;" />
</fieldset>
</we:form>
<!-- end mailform -->
</body></html>


4.) im Ordner "mail" das Dokument "versenden.php" (ID 312) mit dem Template "versenden.tmpl" verknüpft und unter Eigenschaften "Seite dynamisch generieren" aktiviert.


5.) im Ordner "mail" das Dokument "empfehlung.php" (ID 313) mit dem Template "empfehlung.tmpl" verknüpft und unter Eigenschaften "Seite dynamisch generieren" aktiviert.


6.) Auf den gewünschten Seiten wie beschrieben den Button "Seite empfehlen" eingebunden.


Wie schon gesagt, bekomme ich auf der versenden-Seite zwar die Ausgabe der eingegebenen Daten inkl. Pfad aber es geht keine Email raus.

Habe ich da etwas missverstanden? :confused:

Habe auch schon eine mail() Funktion ausprobiert, diese hat ohne probleme funktioniert.

Grüße KMD

kmd

Beitragvon kmd » Mi 17. Aug 2005, 16:21

GROOOOßES SORRY!!!!

solange im BCC-Feld ter Text "BCc email-Adresse" drin steht, und keine Emailadresse, scheint es nicht zu funktionieren. Allerdings ist es nun so, dass der BCC-Empfänger die Email nicht bekommt?

Schon wieder meine Dummheit? :confused:

Gruß KMD

kmd

Beitragvon kmd » Mi 17. Aug 2005, 18:09

Noch eine Frage ...

ist es möglich die Anfrage anstatt über ein Formular über einen Link zu übergeben?

Gruß KMD

chw
Senior Member
Beiträge: 164
Registriert: Do 1. Jan 1970, 02:00
Kontaktdaten:

Beitragvon chw » Mi 7. Sep 2005, 00:16

Hallo,

bei mir klappt alles super, aber eine Frage quält mich dennoch.
Ist es möglich den Button "Seite empfehlen" auch als Textlink zu gestalten? Ich habe schon etliche Varianten probiert, aber leider funktioniert nichts.

Grüße
Christian

Ralf Pospiech

Beitragvon Ralf Pospiech » Mi 7. Sep 2005, 09:35

Hallo,

könnte folgendermassen klappen:

<a href="javascript:document.forms.submit();">Seite empfehlen</a>

chw
Senior Member
Beiträge: 164
Registriert: Do 1. Jan 1970, 02:00
Kontaktdaten:

Beitragvon chw » Mo 19. Sep 2005, 09:16

Vielen Dank für den Hinweis, nur leider funktioniert der Link dann wieder nicht bei Usern, die Javascript deaktiviert haben.
Ich habe den Link als Image so wie die Textlinks drumherum gestaltet. Ist zwar nicht die beste Lösung, funktioniert aber und fällt kaum auf.

Grüße
Christian W.

mobby
Senior Member
Beiträge: 1164
Registriert: Do 1. Sep 2005, 05:07

Beitragvon mobby » Mo 3. Okt 2005, 02:32

Hallo,
habe versuch, das Script einzusetzen und habe es 1:1 übernommen, aber leider geht es nicht. Es kommt die Meldung:
Warning: Unexpected character in input: '' (ASCII=92) state=1 in /mnt/ja1/04/792/00000017/htdocs/webEdition/we/templates/usw/empfehlung/versenden.tmpl on line 115

Parse error: parse error in /mnt/ja1/04/792/00000017/htdocs/webEdition/we/templates/usw/empfehlung/versenden.tmpl on line 115

Woran kann das liegen?
Gruß
Viele Grüße
Mobby

webEdition 8.1.0 (Ahlberg) (8.1.0.0, Revision: 10599)

Pixeljockey
Member
Beiträge: 47
Registriert: Mo 7. Aug 2006, 14:46

Beitragvon Pixeljockey » Fr 18. Aug 2006, 15:12

Hallo!

Habe auch ein Problem damit. Wollte das einsetzen und bin schon seit einigen Stunden dabei meinen Fehler zu suchen, komme aber einfach nicht drauf. Ich bekomme meine Variablen einfach nicht übergeben. Auf der Seite mit dem Link wird der Pfad schön noch in finder geschrieben, aber die Empfehlen-Seite übernimmt ihn einfach nicht. Das selbe ist's dann bei der Übergabe der Usereingaben von der Empfehlen zur Senden Seite...

Bin schon mal testweise auf GET umgestiegen um zu sehen ob da überhaupt was passiert, und dann stehen die Infos schön im URL werden aber immer noch nich übernommen.

Weiß jemand, so spontan, woran das liegen könnte? Ich seh mal wieder den Wald nicht. Blöde Bäume aber auch!

Gruß, Pixeljockey


Zurück zu „webEdition Templates erstellen (we:Tags)“

Wer ist online?

Mitglieder in diesem Forum: Ahrefs [Bot], Google [Bot] und 25 Gäste