[NEUES MODUL] Email / SMS Live Ticker
Verfasst: Mi 27. Okt 2004, 22:03
Dieses Modul Wandelt SMS beziehungsweise Emails in den Ticker um.
BESCHREIBUNG:
INPUT:
OUTPUT:
BEISPIEL:
http://www.bandwebsite.de/bandwebsite/c ... &idart=114
BESCHREIBUNG:
Code: Alles auswählen
SMS Live Ticker like http://www.fraikin.net/sms2email-liveticker/
/**
* Email / SMS Ticker
*
* Beschreibung
*
* @autor DJ W. Eventservice <markus@dj-w.de>
* @copyright DJ W. Eventservice 27.10.2004
*
*
*
* Wandelt SMS beziehungsweise Emails in den Ticker um
*
*
*
*** ALLGEMEINES ***
*HTML-Nachrichten und mehrteilige Nachrichten im MIME-Format (z. B. E-Mails mit Anhang) werden nicht dekodiert! Bitte nur reine Text-Nachrichten versenden!
* Bei Änderungen bitte Namen und Kontakt zur Beschreibung hinzufügen und Autor benachrichtigen
* Verbesserungsvorschläge bitte im Contenido Forum oder direkt an den Autor (markus@dj-w.de)
*
*
*
*
*
*** EINSTELLUNGEN (in der Template Konfiguration) ***
*
* [Allgemein]
* Aktualisierung an/aus:
* Verzögerung in Sec:
* Lauftext / Normale Anzeige:
* Statisch - zeigt die Nachrichten Statisch an (mit Datum)
* Marquee Lauftext (Nur Internet Explorer)
* Javascript Lauftext - Funktioniert nur bei aktiviertem Javascript auf mehreren Browsern)
* Datumsformat: Datumsformat (siehe http://www.dynamicwebpages.de/php/function.date.php)
* Anzahl der angezeigten Nachrichten: Wieviele Nachrichten sollen angezeigt werden
*
*
* [Javascript Lauftext Einstellungen] - nur wenn Javascript Lauftext aktiveirt ist
* Breite: Die angezeigte Breite des Textes
* Höhe: Die angezeigte Höhe des Textes
* Geschwindigkeit: Die Geschwindigkeit des Textes
* Hintergrundfarbe: Die Hintergrundfarbe des Tickers (zB #FFFFFF)
* Pause bei MausOver
*
* [Sicherheit]
* Erlaubte Absender: (Komma getrennt): Absender Emailadressen mit Komma getrennt mail@domain.de,mail2@domain.de
* AnfangsZeichen: Der Text nach diesen Zeichen wird ausgegeben
* EndZeichen: Der Text vor diesen Zeichen wird ausgegeben
*
* [E Mail Konfiguration]
* POP3 Server: POP3 Server des E-Mail Providers (zB: pop.1und1.de)
* Postfach: Postfach der E-Mailadresse (mail1-2)
* Passwort: Passwort des E-Mailkontos
*
*** BACKEND ***
*
* Hier kann man im Artikel Editor die Nachrichten löschen (Vorsicht - dies löscht die Mails im POP3 Postfach
* Man sieht hier auch von welcher Mailadresse die Nachrichten kommen
*
*
*
*
*
*
**** SMS AN SCRIPT ****
*
*
* Allgemein:
* Da der E-Mail Versand und Empfang über SMS läuft, kann man nicht mehr als 160 Zeichen senden und Emfangen !
* Beim versenden einer E-Mail aus einem E-Mail Client (zB. Outlook) wird nur die Betreffzeile mit übertragen, dort auch * wieder nur die ersten 160 Zeichen.
*
*
*** [D1 T-Mobile] ***
*
* Empfangen von E-Mails
* eMail - Adresse 01711234567@t-d1-sms.de
* Aktivieren SMS-Message "OPEN" an 8000
* Deaktivieren SMS-Message "CLOSE" an 8000
*
* Senden von E-Mails
* Du wählst im Menü die Funktion "SMS verfassen" bzw. "Meldung senden" oder "Text verfassen" (je nach Typ).
* Nun musst Du die eMail Adresse des Empfängers eingeben.
* Der Text wird nach der eMail Adresse gefolgt von einem Leerzeichen über die Handy Tastatur eingegeben.
* Diese SMS bzw. E-Mail wird dann an die T-D1 Kurzwahl 8000 gesendet und somit als E-Mail weitergegeben.
*
*
*
*** [D2 Vodafone] ***
*
* Empfangen von E-Mails
* eMail - Adresse 01721234567@d2-message.de
* Aktivieren SMS-Message "OPEN" an 3400
* Voraussetzung ist der Dienst D2MessagePlus mit der SMS-Zentrale 2270333.
* Deaktivieren SMS-Message "CLOSE" an 3400
*
* Senden von E-Mails
* Du wählst im Menü die Funktion "SMS verfassen" bzw. "Meldung senden" oder "Text verfassen" (je nach Typ).
* Nun musst Du die eMail Adresse des Empfängers eingeben.
* Der Text wird nach der eMail Adresse gefolgt von einem Leerzeichen über die Handy Tastatur eingegeben.
* Diese SMS bzw. E-Mail wird dann an die D2 Kurzwahl 3400 gesendet und somit als E-Mail weitergegeben.
*
* Info:
* Der Text erscheint beim Empfänger im Textfeld der E-Mail. In der Betreffzeile erscheint der Standard-Text "D2-Message-Plus- Mail". Hinweis: Soll der Text in der Betreffzeile erscheinen, muss vor dem Mitteilungstext *S# (bitte auf die Großschreibung achten) ein. Beispiel: mrx@mrx.de: *S#Hallo wie geht's..
*
*
*
*** [E-plus] ***
*
* Empfangen von E-Mails
* eMail - Adresse 01771234567@smsmail.eplus.de
* Aktivieren SMS-Message "start" an 7676245
* Deaktivieren SMS-Message "stop" an 7676245
*
* Senden von E-Mails
* Du wählst im Menü die Funktion "SMS verfassen" bzw. "Meldung senden" oder "Text verfassen" (je nach Typ).
* Nun musst Du die eMail Adresse des Empfängers eingeben.
* Der Text wird nach der eMail Adresse gefolgt von einem Leerzeichen über die Handy Tastatur eingegeben.
* Diese SMS bzw. E-Mail wird dann an die E+ Kurzwahl 7676245 (Vanity: SMS-Mail) gesendet und somit als E-Mail weitergegeben.
* Über den SMS/E-Mail-Gateway können alle E-Plus-Kunden (außer Free&Easy-Kunden) eine SMS als abgehende E-Mail weltweit verschicken.
*
*
*
*** [O2 Germany] ***
*
*
* Empfangen von E-Mails
* eMail - Adresse
* Aktivieren SMS-Message "start" an 6245
* Deaktivieren SMS-Message "stop" an 6245
*
* Senden von E-Mails
* Du wählst im Menü die Funktion "SMS verfassen" bzw. "Meldung senden" oder "Text verfassen" (je nach Typ).
* Nun musst Du die eMail Adresse des Empfängers eingeben.
* Der Text wird nach der eMail Adresse gefolgt von einem Leerzeichen über die Handy Tastatur eingegeben.
* Diese SMS bzw. E-Mail wird dann an die Viag Kurzwahl 6245 (Vanity: MAIL) gesendet und somit als E-Mail weitergegeben.
*
*
*
*** [FAX] ***
*
* SMS als Fax versenden (Wer ein Fax -> E-Mail Gateway besitzt)
* Schicke dazu dann Deine normale SMS an folgende Nummern:
*
* D1: 99... (99 vor die Nummer des Empfängers) Kosten: 1,29DM
* D2: 99... (99 vor die Nummer des Empfängers) Kosten: 1,29DM
* E+: 1551... (1551 vor die Nummer des Empfängers) Kosten: 1,79DM
* Genion: 329... (329 (Vanity: FAX) vor die Nummer des Empfängers) Kosten: 1,39DM
*
*
*
*
*
*/
Code: Alles auswählen
/**
* Email / SMS Ticker
*
* INPUT
*
* @autor DJ W. Eventservice <markus@dj-w.de>
* @copyright DJ W. Eventservice 27.10.2004
*/
/*
if ("CMS_VAR[12]" == "") {
"CMS_VALUE[12]" = "300px";
}
if ("CMS_VAR[13]" == "") {
"CMS_VALUE[13]" = "25px";
}
if ("CMS_VAR[14]" == "") {
"CMS_VALUE[14]" = "2";
}
if ("CMS_VAR[15]" == "") {
"CMS_VALUE[15]" = "#EEEEEE";
}
if ( $pauseOnMausOver == "") {
$pauseOnMausOver = 1;
}
*/
if ("CMS_VALUE[16]" == 1){
$CheckMouseOver = "checked";
}
if ("CMS_VALUE[1]" == 1){
$CheckAktualisierung = "checked";
}
if ("CMS_VALUE[9]" == 1){
$CheckMarqueeON = "checked";
} elseif("CMS_VALUE[9]" == 2) {
$CheckMarqueeOFF = "checked";
} else {
$CheckMarqueeJS = "checked";
}
echo '
<table border="0" align="center">
<tr>
<td colspan="2"><div align="center"><strong>Allgemein</strong></div></td>
</tr>
<tr>
<td><strong>Aktualisierung an/aus:</strong></td>
<td><input type="checkbox" name="CMS_VAR[1]" value="1" '.$CheckAktualisierung.'></td>
</tr>
<tr>
<td><strong>Verzögerung in Sec:</strong></td>
<td><input type="text" name="CMS_VAR[2]" value="CMS_VALUE[2]"></td>
</tr>
<tr>
<td><strong>Lauftext / Normale Anzeige:</strong></td>
<td><p>
<input type="radio" name="CMS_VAR[9]" value="2" '.$CheckMarqueeOFF.'>
Statisch</p>
<p>
<input type="radio" name="CMS_VAR[9]" value="1"'.$CheckMarqueeON.'>
Marquee Lauftext (Nur Internet Explorer)</p>
<p>
<input type="radio" name="CMS_VAR[9]" value="3" '.$CheckMarqueeJS.'>
Javascript Lauftext</p></td>
</tr>
<tr>
<td><strong>Datumsformat:</strong></td>
<td><input type="text" name="CMS_VAR[10]" value="CMS_VALUE[10]"></td>
</tr>
<tr>
<td height="26"><strong>Anzahl der angezeigten Nachrichten:</strong></td>
<td><input type="text" name="CMS_VAR[11]" value="CMS_VALUE[11]"></td>
</tr>
</table>
<br>
<table width="40%" border="0" align="center">
<tr bordercolor="0">
<td colspan="2">
<div align="center"><strong>Javascript Lauftext Einstellungen</strong></div></td>
</tr>
<tr bordercolor="0">
<td>
<p><strong>Breite:</strong></p></td>
<td>
<input type="text" name="CMS_VAR[12]" value="CMS_VALUE[12]"></td>
</tr>
<tr bordercolor="0">
<td><strong>Höhe:</strong></td>
<td>
<input type="text" name="CMS_VAR[13]" value="CMS_VALUE[13]"></td>
</tr>
<tr bordercolor="0">
<td><strong>Geschwindigkeit:</strong></td>
<td>
<input type="text" name="CMS_VAR[14]" value="CMS_VALUE[14]"></td>
</tr>
<tr bordercolor="0">
<td><strong>Hintergrundfarbe</strong></td>
<td>
<input type="text" name="CMS_VAR[15]" value="CMS_VALUE[15]"></td>
</tr>
<tr bordercolor="0">
<td><strong>Pause bei MausOver</strong></td>
<td>
<div align="center">
<input type="checkbox" name="CMS_VAR[16]" value="1" '.$CheckMouseOver.'>
</div></td>
</tr>
</table>
<br>
<table width="40%" border="0" align="center">
<tr>
<td colspan="2"><div align="center"><strong>Sicherheit</strong></div></td>
</tr>
<tr>
<td><strong>Erlaubte Absender (Komma getrennt):</strong></td>
<td><input type="text" name="CMS_VAR[3]" value="CMS_VALUE[3]"></td>
</tr>
<tr>
<td><strong>AnfangsZeichen:</strong></td>
<td><input type="text" name="CMS_VAR[4]" value="CMS_VALUE[4]"></td>
</tr>
<tr>
<td><strong>EndZeichen:</strong></td>
<td><input type="text" name="CMS_VAR[5]" value="CMS_VALUE[5]"></td>
</tr>
</table>
<br>
<div align="center">
<table border="0">
<tr>
<td colspan="2"><div align="center"><strong>E Mail Konfiguration</strong></div></td>
</tr>
<tr>
<td><strong>POP3 Server:</strong></td>
<td><input type="text" name="CMS_VAR[6]" value="CMS_VALUE[6]"></td>
</tr>
<tr>
<td><strong>Postfach:</strong></td>
<td><input type="text" name="CMS_VAR[7]" value="CMS_VALUE[7]"></td>
</tr>
<tr>
<td><strong>Passwort:</strong></td>
<td><input type="text" name="CMS_VAR[8]" value="CMS_VALUE[8]"></td>
</tr>
</table>
</div>
';
Code: Alles auswählen
<?php
/**
* Email / SMS Ticker
*
* OUTPUT
*
* @autor DJ W. Eventservice <markus@dj-w.de>
* @copyright DJ W. Eventservice 27.10.2004
*/
// Konfiguration
$aktualisierung = "CMS_VALUE[1]"; // Automatische Aktualisierung: 1 => ja, 0 => nein
$verzoegerung = "CMS_VALUE[2]"; // Intervall der automatischen Aktualisierung in Sekunden
$erlaubte_absender = explode(",","CMS_VALUE[3]");
$pop3_server = "CMS_VALUE[6]"; // Pop3-Server
$postfach = "CMS_VALUE[7]"; // Pop3 Postfach
$passwort = "CMS_VALUE[8]"; // Pop3 Passwort
$StartSigns = "CMS_VALUE[4]"; // Anfangswort jeder E-Mail eingeben (zur Sicherheit, sonst einfach leer lassen)
$StopSigns = "CMS_VALUE[5]"; // Endwort jeder E-Mail eingeben (der restliche Text wird abgeschnitten).
// Achtung! Auch Wörter, die das Endwort enthalten, führen zum Abschneiden
// Wenn die E-Mail bei dem Endwort "ende" z. B. das Wort "Absender" enthält,
// ist nach "Abs" Schluss!
// KEINE Sonderzeichen, die mit "\" maskiert werden müssen (wie z. B. "*", "+", "." etc.)!
$MarqueeOn= "CMS_VALUE[9]"; // Marquee oder nicht
$DateFormat = "CMS_VALUE[10]"; //"H:i M d.D.F.m.y"
$NumberOfMessages = "CMS_VALUE[11]"; // Anzahl der angezeigten Nachrichten
// Javascript Ticker
$marqueewidth = "CMS_VALUE[12]";
$marqueeheight = "CMS_VALUE[13]";
$marqueespeed = "CMS_VALUE[14]";
$marqueebgcolor = "CMS_VALUE[15]";
$pauseOnMausOver = "CMS_VALUE[16]" ;
$InputArray = array();
// URL Umwandeln
function URLDecoden ($Inputstring) {
$Inputstring = preg_replace("/(^|[ \n])([a-zA-Z]+):\/\/([^ ,\"\n]+)/",'\1<a href="\2://\3" target="_blank">\2://\3</a>', $Inputstring);
$Inputstring = preg_replace("/(^|[ \n])www\.([^ ,\"\n]+)/i",'\1<a href="http://www.\2" target="_blank">www.\2</a>', $Inputstring);
return $Inputstring ;
}
// Quoted-Printable- und Base64-Kodierung umwandeln und HTML-Sonderzeichen kodieren
function ZeichenKonvert ($Inputstring,$Code) {
if ($Code == 4){
$Inputstring = htmlentities(quoted_printable_decode($Inputstring), ENT_QUOTES);
}elseif ($Code == 3){
$Inputstring = htmlentities(base64_decode($Inputstring), ENT_QUOTES);
}else{
$Inputstring = htmlentities($Inputstring, ENT_QUOTES);
}
return $Inputstring ;
}
// input Umwandeln
function DecodeString ($InputArray) {
$InputArray["String"] = nl2br ($InputArray["String"]);// Zeilenumbrüche einfügen
$InputArray["String"] = ZeichenKonvert ($InputArray["String"],$InputArray["Code"]);
$InputArray["String"] = URLDecoden ($InputArray["String"]);
return $InputArray["String"] ;
}
if($aktualisierung == 1) {
echo "<meta http-equiv=\"refresh\" content=$verzoegerung>\n";
}
// Überprüfung auf Admin Modus
$accessGranted = false;
$permissions = $auth->auth["perm"];
$permissions = explode(',', $permissions);
foreach ($permissions as $perm)
if ($perm == "sysadmin" || $perm == "admin[".$client."]")
$accessGranted = true;
// Postfach öffnen
$mbox = imap_open ("{".$pop3_server."/pop3:110}INBOX",$postfach,$passwort);
$headers = imap_headers ($mbox);
$max = count($headers);
$min = 0;
if ($max > $NumberOfMessages) {
$min = $max-$NumberOfMessages;
}
if ( $accessGranted == true) {
echo "<form action=\"".$_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING']."\" method=\"post\">";
}
echo "<table border=\"0\" cellspacing=\"30\" cellpadding=\"0\">\n";
if ( $accessGranted == true) {
// ------------------------- ADMIN -------------------------
$checkbox = $_POST["checkbox"];
if ($checkbox){
for ($k = 0; $k < $max; $k++) {
if ($checkbox[$k+1] == "yes") {
imap_delete ($mbox, $k+1);
}
}
imap_expunge ($mbox);
$max = $max - count($checkbox);
}
echo "<tr><td> </td><td><b>Nr.</b></td><td><b>Datum</b></td><td><b>Absender</b></td><td><b>Body</b></td></tr>";
}
for ($i = $max; $i > $min; $i--) {
$header = imap_header ($mbox,$i);
$from = $header->from;
$email = $from[0]->mailbox."@".$from[0]->host;
$subject = $header->subject;
$struktur = imap_fetchstructure ($mbox,$i);
$kodierung = $struktur->encoding;
if ($DateFormat != "") {
$date = date ( $DateFormat,(strtotime($header->date)));
} else {
$date = date ( "H:i d.j.y",(strtotime($header->date)));
}
$InputArray["Code"] = $kodierung;
if ( $accessGranted == true) {
echo "<tr>\n";
echo "<td valign=\"top\"><input type=\"checkbox\" value=\"yes\" name=\"checkbox[".$i."]\"></td>\n";
echo "<td valign=\"top\"><b>".$i.".</b></td>\n";
echo "<td nowrap valign=\"top\"><b>".$date."</b></td>\n";
echo "<td valign=\"top\">".$email."</td>\n";
$body = imap_body ($mbox,$i);
$InputArray["String"] = $body;
$body = DecodeString ($InputArray);
echo "<td valign=\"top\">".$body."</td>\n</tr>\n";
} else {
if ($StopSigns){
$ende = strpos(imap_body ($mbox,$i),$StopSigns);
}
if ($StartSigns){
$anfang = ereg($StartSigns,imap_body ($mbox,$i));
$start = strpos(imap_body ($mbox,$i),$StartSigns);
if ($ende){
$body = substr(imap_body ($mbox,$i),$start+strlen($StartSigns),$ende-$start-strlen($StopSigns));
}else{
$body = substr(imap_body ($mbox,$i),$start+strlen($StartSigns));
}
}else{
$anfang = true;
if ($ende){
$body = substr(imap_body ($mbox,$i),0,$ende);
}else{
$body = imap_body ($mbox,$i);
}
}
if (in_array ($email,$erlaubte_absender) && $anfang){
$InputArray["String"] = $body;
$body = DecodeString ($InputArray);
if ($MarqueeOn == 2) {
if ($DateFormat != "") {
echo '<tr><td colspan="2">'.$date.'</td><td> </td></tr>';
}
echo '<tr><td > </td><td colspan="2">'.$body.'</td></tr>';
}
$anfang = false;
$var1 .= $body." +++ ";
}
}
}
if ( $accessGranted == true) {
echo "<input type=\"submit\" value=\"Löschen\">\n</form>\n";
}
echo "</table>\n";
imap_close ($mbox);
if ($MarqueeOn == 1) {
echo '<marquee><font face=verdana size=2>+++ '.$var1.'</font></marquee>';
echo "<br>";
} elseif ($MarqueeOn == 3) {
$var1 = eregi_replace("\r\n"," ",$var1);
$var1 = eregi_replace("\n"," ",$var1);
$var1 = eregi_replace("\r"," ",$var1);
$var1 = eregi_replace("'","\'",$var1);
/*
Cross browser Marquee script- © Dynamic Drive (www.dynamicdrive.com)
For full source code, 100\'s more DHTML scripts, and Terms Of Use, visit http://www.dynamicdrive.com
Credit MUST stay intact
*/
echo '
<script language="JavaScript1.2">
var marqueewidth="'.$marqueewidth.'"
var marqueeheight="'.$marqueeheight .'"
var marqueespeed='.$marqueespeed.'
var marqueebgcolor="'.$marqueebgcolor.'"
var pauseit='.$pauseOnMausOver.'
';
echo "
var marqueecontent='<nobr>".$var1."</nobr>'
marqueespeed=(document.all)? marqueespeed : Math.max(1, marqueespeed-1) //slow speed down by 1 for NS
var copyspeed=marqueespeed
var pausespeed=(pauseit==0)? copyspeed: 0
var iedom=document.all||document.getElementById
";
?>
if (iedom)
document.write('<span id="temp" style="visibility:hidden;position:absolute;top:-100px;left:-9000px">'+marqueecontent+'</span>')
var actualwidth=''
var cross_marquee, ns_marquee
function populate(){
if (iedom){
cross_marquee=document.getElementById? document.getElementById("iemarquee") : document.all.iemarquee
cross_marquee.style.left=parseInt(marqueewidth)+8+"px"
cross_marquee.innerHTML=marqueecontent
actualwidth=document.all? temp.offsetWidth : document.getElementById("temp").offsetWidth
} else if (document.layers){
ns_marquee=document.ns_marquee.document.ns_marquee2
ns_marquee.left=parseInt(marqueewidth)+8
ns_marquee.document.write(marqueecontent)
ns_marquee.document.close()
actualwidth=ns_marquee.document.width
}
lefttime=setInterval("scrollmarquee()",20)
}
window.onload=populate
function scrollmarquee(){
if (iedom){
if (parseInt(cross_marquee.style.left)>(actualwidth*(-1)+8))
cross_marquee.style.left=parseInt(cross_marquee.style.left)-copyspeed+"px"
else
cross_marquee.style.left=parseInt(marqueewidth)+8+"px"
} else if (document.layers){
if (ns_marquee.left>(actualwidth*(-1)+8))
ns_marquee.left-=copyspeed
else
ns_marquee.left=parseInt(marqueewidth)+8
}
}
if (iedom||document.layers){
with (document){
document.write('<table border="0" cellspacing="0" cellpadding="0"><td>')
if (iedom){
write('<div style="position:relative;width:'+marqueewidth+';height:'+marqueeheight+';overflow:hidden">')
write('<div style="position:absolute;width:'+marqueewidth+';height:'+marqueeheight+';background-color:'+marqueebgcolor+'" onMouseover="copyspeed=pausespeed" onMouseout="copyspeed=marqueespeed">')
write('<div id="iemarquee" style="position:absolute;left:0px;top:0px"></div>')
write('</div></div>')
} else if (document.layers){
write('<ilayer width='+marqueewidth+' height='+marqueeheight+' name="ns_marquee" bgColor='+marqueebgcolor+'>')
write('<layer name="ns_marquee2" left=0 top=0 onMouseover="copyspeed=pausespeed" onMouseout="copyspeed=marqueespeed"></layer>')
write('</ilayer>')
}
document.write('</td></table>')
}
}
</script>
<?php
} elseif ($MarqueeOn == 2) {
} else {
echo "Keine News vorhanden";
}
?>
http://www.bandwebsite.de/bandwebsite/c ... &idart=114