Benachrichtigung bei neuen Terminen (Cal-Lite)

Snippets, Add-Ons und Fixes zum Calendar lite/pro Keine Anfragen
Benutzeravatar
oxpus
Administrator
Administrator
Beiträge: 29107
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus » So 25.Dez, 2005 19:50

Prüfe einfach nochmal alle geänderten Dateien und lade die Kalender-Dateien nochmal neu hoch.
Diese Version ist bei korrekter Installation fehlerfrei...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per ICQ, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per ICQ, Email or PM. Each unasked message will be ignored!

Benjamin
User
User
Beiträge: 9
Registriert: So 25.Dez, 2005 15:52
Wohnort: Miltenberg
Kontaktdaten:

Beitrag von Benjamin » So 25.Dez, 2005 21:37

also nun funktioniert der Kalender mit seinen eigenen Funktionen, also in Bezug auf die Benutzerlevels.

jetzt habe ich nur noch das Problem mit dem Snippet...

- alle Nachrichten, also die an den Admin zur Freigabe, und die an den Admin nach Bestätigung werden doppelt verschickt, der Empfänger steht auch doppelt im "An: Feld" in der Email <--- was macht die zweite eigentlich für einen Sinn? der Admin weiss doch selbst das er etwas freigegeben hat!

- die Mail an den Admin zur Freigabe wird auch verschickt, wenn der Eintragende das Recht hat selbst einzutragen, also garkeine Freigabe nötig ist

- in beiden mails ist jeweils ein Link, einmal zum Forum und einmal zum Kalender... dieser Link enthält aber nicht die Homepageadresse sondern den Boardnamen.. ich vermute es liegt jeweils an dieser Zeile

Code: Alles auswählen

$site = $board_config ['sitename'];
wie muss es richtig heissen, damit nicht der Boardname, sondern die URL übernommen wird?

gibt es für die drei Punkte noch Abhilfe?
Zuletzt geändert von Benjamin am So 25.Dez, 2005 22:36, insgesamt 4-mal geändert.

Benutzeravatar
oxpus
Administrator
Administrator
Beiträge: 29107
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus » Mo 26.Dez, 2005 11:28

Bei dem Snippet muss ich erst einmal passen, das ist nicht von mir...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per ICQ, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per ICQ, Email or PM. Each unasked message will be ignored!

Benjamin
User
User
Beiträge: 9
Registriert: So 25.Dez, 2005 15:52
Wohnort: Miltenberg
Kontaktdaten:

Beitrag von Benjamin » Mo 26.Dez, 2005 12:59

alles klar, Dankeschön auf jeden Fall

dann werde ich wohl warten müssen, bis sich bce mal meldet...

Benutzeravatar
bce
User
User
Beiträge: 876
Registriert: Do 14.Okt, 2004 17:46
Kontaktdaten:

Beitrag von bce » Mi 04.Jan, 2006 13:44

[quote="Benjamin - 26/12/2005, 12:59";p="51038"]alles klar, Dankeschön auf jeden Fall

dann werde ich wohl warten müssen, bis sich bce mal meldet...[/quote]
hallo benjamin.. war ne ganze zeit lang nicht online ^d

hab das snippet noch ein wenig erweitert, dass der user auch eine mail bekommt wenn der termin abgelehnt wurde.

es werden also max. 3 mails versandt... eine an den admin das ein termin auf veröffentlichung wartet.. eine wenn der termin freigegeben wurde oder eine wenn der termin abgelehnt wurde...

entferne am besten den alten snippet code, da in der neuen eine funktion zum senden verwendet wird...

einbau-anleitung siehe anhang
Dateianhänge
notify_cal-lite.rar
Benachrichtigung bei neuen Terminen (Cal-Lite)
(2.28 KiB) 126-mal heruntergeladen

Benjamin
User
User
Beiträge: 9
Registriert: So 25.Dez, 2005 15:52
Wohnort: Miltenberg
Kontaktdaten:

Beitrag von Benjamin » Mi 04.Jan, 2006 14:32

Hallo bce,

also folgende Fehler sind mir aufgefallen:

- die Mail an den Admin wird zweimal versendet

- in der Mail an den Admin ist ein Link zum Kalender, in diesem Link ist allerdings nicht die URL zum Forum vorhanden, sondern der Forumname

- wenn ich nun als Admin einen Termin freischalten oder löschen möchte, bekomme ich folgende Fehlermeldung:
Allgemeiner Fehler

Kann user-id nicht auslesen

DEBUG MODE

SQL Error : 1064 You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3

SELECT user_id FROM phpbb_easycalendar WHERE id =

Line : 292
File : cal_lite.php
weiter bin ich noch nicht gekommen, zu der Mail an den User kann ich deshalb noch nichts sagen
Zuletzt geändert von Benjamin am Mi 04.Jan, 2006 14:34, insgesamt 2-mal geändert.

Benutzeravatar
bce
User
User
Beiträge: 876
Registriert: Do 14.Okt, 2004 17:46
Kontaktdaten:

Beitrag von bce » Mi 04.Jan, 2006 16:57

SELECT user_id FROM phpbb_easycalendar WHERE id =
denke du hast einen anderen kalender lite im einstatz!

bei mir gibt es diese tabelle "phpbb_easycalendar" nicht!

meine lauten: phpbb_calendar und phpbb_cal_config

Benjamin
User
User
Beiträge: 9
Registriert: So 25.Dez, 2005 15:52
Wohnort: Miltenberg
Kontaktdaten:

Beitrag von Benjamin » Mi 04.Jan, 2006 17:01

nee nee *g* das ist schon die richtige Version

easy ist mein Tabellenprefix ;-)

kannst du die Fehler nachvollziehen?

Benutzeravatar
bce
User
User
Beiträge: 876
Registriert: Do 14.Okt, 2004 17:46
Kontaktdaten:

Beitrag von bce » Mi 04.Jan, 2006 17:27

hmmm... die userid wird ja als parameter übermittelt...

Code: Alles auswählen

				//funtkionsaufruf
				 email_an_user($thisid, 'yes', $userdata[username]);
die meldung zeigt an dass keine id drin steht im sql-befehl...


suche mal
function email_an_user($userid, $valid, $name)
{

und füge danach
echo "id: " . $userid;
ein...

müsste ja ne zahl ausgegeben werden...

Benjamin
User
User
Beiträge: 9
Registriert: So 25.Dez, 2005 15:52
Wohnort: Miltenberg
Kontaktdaten:

Beitrag von Benjamin » Mi 04.Jan, 2006 18:28

ich hab den Fehler gefunden :)

$thisid <--- das ist falsch

$this_id <--- es muss so heissen ;-)

zweimal ersetzen, dann klappts


den Fehler im Link zum Kalender in der Mail an den Admin habe ich auch gefunden:

falsch: <p><br><a href="http://'. $site .'/cal_lite.php">zum Kalender</a></p>
richtig: <p><br><a href="http://'. $board_config['server_name'] .'/cal_lite.php">zum Kalender</a></p>

nun aber noch zur Verschickung der Mails:

- die Mails werden generell zweimal verschickt, sowohl die Mail an den Admin, sowie auch die Mail an den User

- die Mail an den Admin, zwecks Freischaltung, wird auch verschickt, wenn der Eintragende das Recht zum sofortigen Eintragen hat. Auch wenn der Admin selbst etwas einträgt bekommt er eine Mail das er sich freischalten soll.

Gibt es für die zwei Probleme noch Abhilfe?

Benutzeravatar
bce
User
User
Beiträge: 876
Registriert: Do 14.Okt, 2004 17:46
Kontaktdaten:

Beitrag von bce » Mi 04.Jan, 2006 18:57

[quote="Benjamin - 4/1/2006, 18:28";p="51516"]ich hab den Fehler gefunden :)

$thisid <--- das ist falsch

$this_id <--- es muss so heissen ;-)

zweimal ersetzen, dann klappts[/quote]

:eek: das ist aber komisch... bei mir lautet die variable $thisid ... ohne unterstrich...


[quote="Benjamin - 4/1/2006, 18:28";p="51516"]
den Fehler im Link zum Kalender in der Mail an den Admin habe ich auch gefunden:

falsch: <p><br><a href="http://'. $site .'/cal_lite.php">zum Kalender</a></p>
richtig: <p><br><a href="http://'. $board_config['server_name'] .'/cal_lite.php">zum Kalender</a></p>

nun aber noch zur Verschickung der Mails:

- die Mails werden generell zweimal verschickt, sowohl die Mail an den Admin, sowie auch die Mail an den User

- die Mail an den Admin, zwecks Freischaltung, wird auch verschickt, wenn der Eintragende das Recht zum sofortigen Eintragen hat. Auch wenn der Admin selbst etwas einträgt bekommt er eine Mail das er sich freischalten soll.

Gibt es für die zwei Probleme noch Abhilfe?[/quote]
jupp, die mail erhält auch der admin... mit diesem "problem" habe ich mich allerding noch nicht beschäftigt... ¦2

Benjamin
User
User
Beiträge: 9
Registriert: So 25.Dez, 2005 15:52
Wohnort: Miltenberg
Kontaktdaten:

Beitrag von Benjamin » Mi 04.Jan, 2006 21:06

und das Problem mit den doppelten Mails?

Benutzeravatar
bce
User
User
Beiträge: 876
Registriert: Do 14.Okt, 2004 17:46
Kontaktdaten:

Beitrag von bce » Do 08.Feb, 2007 23:01

[quote="Benjamin";p="51561"]und das Problem mit den doppelten Mails?[/quote]bin grad dabei altes zeugs aufzuarbeiten..

evtl. könnte das dein prob lösen:

Code: Alles auswählen

#  
#-----[ OPEN ]----------------------------------------------------------------  
#  
 
cal_lite.php

#  
#-----[ FIND ]----------------------------------------------------------------  
# 

		//--------------------------------------------------------------------//
		// E-Mail an Admin, dass ein Termin auf Bestätigung wartet	
		// Autor: Marcus - www.bcerlbach.de
		//--------------------------------------------------------------------//	   
		
		/* Empfänger */	          		
		$to = $board_config ['board_email']; //board-admin
		
		/* Adresse vom Forum */
		$site = $board_config ['sitename'];
		
		/* Betreff */
		$subject2 = "Termin wartet auf Bestätigung";
		
		/* Nachricht */
		$message2 = '
		<html>
		<head>
		 <title>'. $subject . '</title>
		</head>
		<body>
		<FONT face=Arial size=2>
		<p><br><b>'.$lang['Cal_add4valid'].'</b></p>
		<p><br>User:  '. $userdata[username] . '</p>
		<p><br>Titel: '. $subject . '</p>
		<p><br>Beschreibung: '. $description . '</p>
		
		<p><br><a href="http://'. $site .'/cal_lite.php">zum Kalender</a></p>
		
		</body>
		</html>
		';
		
		$from = "From: Termin <$to>\n";
		
		if ($ccText != "") $ccText="cc: $ccText <$ccText>\n";
		if ($bccText != "") $bccText="Bcc: $bccText <$bccText>\n";
		
		mail($to, $subject2, $message2,     "To: $to <$to>\n" .     $from .$ccText.$bccText.     "MIME-Version: 1.0\n" .     "Content-type: text/html; charset=iso-8859-1");
		
		//--------------------------------------------------------------------//
		// ENDE  -> E-Mail an Admin, dass Termin auf Freigabe wartet	
		//--------------------------------------------------------------------//


#  
#-----[ REPLACE WITH ]--------------------------------------------------------  
#  

		//info-email wird nur verschickt, wenn user kein admin ist
		if ($userdata['user_level'] != 1) {
		    
		//--------------------------------------------------------------------//
		// E-Mail an Admin, dass ein Termin auf Bestätigung wartet	
		// Autor: Marcus - www.bcerlbach.de
		//--------------------------------------------------------------------//	   
		
		/* Empfänger */	          		
		$to = $board_config ['board_email']; //board-admin
		
		/* Adresse vom Forum */
		$site = $board_config ['sitename'];
		
		/* Betreff */
		$subject2 = "Termin wartet auf Bestätigung";
		
		/* Nachricht */
		$message2 = '
		<html>
		<head>
		 <title>'. $subject2 . '</title>
		</head>
		<body>
		<FONT face=Arial size=2>
		<p><br><b>'.$lang['Cal_add4valid'].'</b></p>
		<p><br>User:  '. $userdata[username] . '</p>
		<p><br>Titel: '. $subject . '</p>
		<p><br>Beschreibung: '. $description . '</p>
		
		<p><br><a href="http://'. $site .'/cal_lite.php">zum Kalender</a></p>
		
		</body>
		</html>
		';
		
		$from = "From: Termin <$to>\n";
		
		if ($ccText != "") $ccText="cc: $ccText <$ccText>\n";
		if ($bccText != "") $bccText="Bcc: $bccText <$bccText>\n";
		
		mail($to, $subject2, $message2,     "To: $to <$to>\n" .     $from .$ccText.$bccText.     "MIME-Version: 1.0\n" .     "Content-type: text/html; charset=iso-8859-1");
		
		//--------------------------------------------------------------------//
		// ENDE  -> E-Mail an Admin, dass Termin auf Freigabe wartet	
		//--------------------------------------------------------------------//
	
		}//end if ($userdata['user_level'] != 1)
info: bisher wurde immer eine mail versandt, dass ein termin auf freigabe wartet. auch beim admin. war aber quatsch, weil wenn der admin einen eintrag tätigt, so ist dieser gleich freigegeben..

ps: Die aktuellste Version findest du hier

Benutzeravatar
tom10
User
User
Beiträge: 1112
Registriert: Sa 29.Jan, 2005 14:58
Kontaktdaten:

Beitrag von tom10 » So 11.Mär, 2007 08:29

Hab die aktuelle Version ins Orion eingebaut. Allerdings in die Calendar.php und ich bekomme leider keine Mail beim erstellen neuer Calender einträge...
Woran könnte das denn liegen ?
Zuletzt geändert von tom10 am So 11.Mär, 2007 08:41, insgesamt 1-mal geändert.
Der Versuch was neues zu versuchen....
http://simson-le.de.vu

Benutzeravatar
bce
User
User
Beiträge: 876
Registriert: Do 14.Okt, 2004 17:46
Kontaktdaten:

Beitrag von bce » Mo 12.Mär, 2007 10:43

da ich das orion selber nicht am start habe ist es schwierig zu sagen an was es genau liegen könnte.. evtl. an nicht gefüllten variablen..

ps: werds mir mal testweise lokal einrichten..

edit: ok. habs nun ma eingerichtet und getestet. funktioniert.

folgenden änderung:
#
#-----[ OPEN ]------------------------------------------------------------------
#

calendar.php


#
#-----[ FIND (line 894) ]-------------------------------------------------------
#

// Success the event is now pending or actually added

#
#-----[ AFTER, ADD ]---------------------------------------------------------
#

//info-email wird nur verschickt, wenn user kein admin ist
if ($userdata['user_level'] != 1) {

//--------------------------------------------------------------------//
// E-Mail an Admin, dass ein Termin auf Bestätigung wartet
// Autor: Marcus - www.bcerlbach.de
//--------------------------------------------------------------------//

/* Empfänger */
$to = $board_config ['board_email']; //board-admin

/* Adresse vom Forum */
$site = $board_config ['sitename'];

/* Betreff */
$subject2 = "Termin wartet auf Bestätigung";

/* Nachricht */
$message2 = '
<html>
<head>
<title>'. $subject2 . '</title>
</head>
<body>
<FONT face=Arial size=2>
<p><br><b>'.$lang['Cal_add4valid'].'</b></p>
<p><br>User: '. $userdata[username] . '</p>
<p><br>Titel: '. $subject . '</p>
<p><br>Beschreibung: '. $description . '</p>

<p><br><a href="http://'. $site .'/cal_lite.php">zum Kalender</a></p>

</body>
</html>
';

$from = "From: Termin <$to>\n";

if ($ccText != "") $ccText="cc: $ccText <$ccText>\n";
if ($bccText != "") $bccText="Bcc: $bccText <$bccText>\n";

mail($to, $subject2, $message2, "To: $to <$to>\n" . $from .$ccText.$bccText. "MIME-Version: 1.0\n" . "Content-type: text/html; charset=iso-8859-1");

//--------------------------------------------------------------------//
// ENDE -> E-Mail an Admin, dass Termin auf Freigabe wartet
//--------------------------------------------------------------------//

}//end if ($userdata['user_level'] != 1)

Zuletzt geändert von bce am Mo 12.Mär, 2007 17:09, insgesamt 2-mal geändert.

Benutzeravatar
oxpus
Administrator
Administrator
Beiträge: 29107
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus » Mo 12.Mär, 2007 17:12

Sofern sendmail() verwendet werden kann ;)
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per ICQ, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per ICQ, Email or PM. Each unasked message will be ignored!

Benutzeravatar
bce
User
User
Beiträge: 876
Registriert: Do 14.Okt, 2004 17:46
Kontaktdaten:

Beitrag von bce » Mo 12.Mär, 2007 17:55

also die mail besser übers phpbb verschicken?!
muss ich ma guggn wie ich das geht...

Benutzeravatar
tom10
User
User
Beiträge: 1112
Registriert: Sa 29.Jan, 2005 14:58
Kontaktdaten:

Beitrag von tom10 » Mo 12.Mär, 2007 18:01

Wow, super.. nett ! :respect:
Klappt mit 1-2 Änderungen nun perfekt.
Hab ein Problem mit dem Link in der Mail gehabt die der Admin bekommt... der klappte nicht, bzw. war nicht als Link in der Mail anwählbar. Hab direkt die URL angegeben und nun klappts.
Weiterhin ist der Link in dem Code .....nicht korrekt und sollte statt: cal_lite.php doch eher calendar.php lauten. :)
Aber wie gesagt herzlichen Dank ! Das hatte mir gefehlt!
Zuletzt geändert von tom10 am Mo 12.Mär, 2007 18:39, insgesamt 3-mal geändert.
Der Versuch was neues zu versuchen....
http://simson-le.de.vu

Benutzeravatar
bce
User
User
Beiträge: 876
Registriert: Do 14.Okt, 2004 17:46
Kontaktdaten:

Beitrag von bce » Mo 12.Mär, 2007 18:16

der andere code vorher ist auch noch einzubauen.

der von post 40 ist die änderung.

Benutzeravatar
tom10
User
User
Beiträge: 1112
Registriert: Sa 29.Jan, 2005 14:58
Kontaktdaten:

Beitrag von tom10 » Mo 12.Mär, 2007 18:37

Ich hab jetzt nur den code aus Post 40 drin und so funktioniert es bestens...Wozu ist denn der andere Code dann noch da? ^1
Muss ich den wirklich einbauen? ^2
Der Versuch was neues zu versuchen....
http://simson-le.de.vu

Benutzeravatar
bce
User
User
Beiträge: 876
Registriert: Do 14.Okt, 2004 17:46
Kontaktdaten:

Beitrag von bce » Mo 12.Mär, 2007 18:43

der code von post 40 sendet dem board-admin eine mail das eine termin auf freigabe wartet.

der restliche code bewirkt, dass eine Info-E-Mail an den user, der den termin vorgeschlagen hat, verschickt wird.
darin steht als info ob termin freigegeben oder abgelehnt wurde.

Benutzeravatar
tom10
User
User
Beiträge: 1112
Registriert: Sa 29.Jan, 2005 14:58
Kontaktdaten:

Beitrag von tom10 » Mo 12.Mär, 2007 18:45

Alles klar, habs eingebaut.. Recht vielen Dank für die Mühe ! Sollte nun alles klappen.... :respect:
Der Versuch was neues zu versuchen....
http://simson-le.de.vu

Benutzeravatar
bce
User
User
Beiträge: 876
Registriert: Do 14.Okt, 2004 17:46
Kontaktdaten:

Beitrag von bce » Mo 12.Mär, 2007 18:55

ok. gern geschehen.

die variante, das die mail direkt über phpbb verschickt wird funktioniert schon. nur noch der feinschliff. poste es dann hier rein wenns fertig ist ^a

Benutzeravatar
oxpus
Administrator
Administrator
Beiträge: 29107
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus » Mo 12.Mär, 2007 19:20

@bce
mail() (PHP-Befehl) verwendet sendmail() (Linux-Programm), was auch das phpBB macht, wenn der Admin das so eingestellt hat.
Da es aber besser ist, die phpBB-eigene Funktion zu verwenden, die eben nach den ACP-Einstellungen arbeitet und auch Fehler sauber abfängt (und leider dann auch nur anzeigt), sollte man mail() nur für die Entwicklung verwenden.

Aber Du willst das ja bereits umsetzen, daher lege ich mich hier auch wieder gleich mal schlafen ;)
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per ICQ, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per ICQ, Email or PM. Each unasked message will be ignored!

Benutzeravatar
bce
User
User
Beiträge: 876
Registriert: Do 14.Okt, 2004 17:46
Kontaktdaten:

Beitrag von bce » Mo 12.Mär, 2007 20:03

@oxpus: thx. jetzt leuchtet mir das alles mehr ein!

hab mir dazu die downloads.php zu rate gezogen.
mein vorschlag dazu:

Code: Alles auswählen

		$email_template = 'calendar_notify_admin';

		$script_path = $board_config['script_path'];
		$server_name = trim($board_config['server_name']);
		$server_protocol = ( $board_config['cookie_secure'] ) ? 'https%u3a//' %u3a 'http%u3a//';
		$server_port = ( $board_config['server_port'] <> 80 ) ? '%u3a' . trim($board_config['server_port']) . '/' %u3a '/';

		$server_url = $server_name . $server_port . $script_path;
		$server_url = $server_protocol . str_replace('//', '/', $server_url);
				    
		include($phpbb_root_path . 'includes/emailer.'.$phpEx);		    
		
		
		$username = (!$userdata['session_logged_in']) ? $lang['Dl_a_guest'] %u3a $userdata['username']; 

		$emailer = new emailer($board_config['smtp_delivery']);

		$emailer->from($board_config['board_email']);
		$emailer->replyto($board_config['board_email']);

		$email_headers = 'X-AntiAbuse%u3a Board servername - ' . $board_config['server_name'] . "\n";
		$email_headers .= 'X-AntiAbuse%u3a User_id - ' . $userdata['user_id'] . "\n";
		$email_headers .= 'X-AntiAbuse%u3a Username - ' . $userdata['username'] . "\n";
		$email_headers .= 'X-AntiAbuse%u3a User IP - ' . decode_ip($user_ip) . "\n";

		$emailer->use_template($email_template, $row['user_lang']);
		//$emailer->email_address($row['user_email']);
		$emailer->email_address($board_config ['board_email']);//board-admin
		$emailer->set_subject("Termin wartet auf Bestätigung");
		$emailer->extra_headers($email_headers);

		$start = "$cl_d.$cl_m.$cl_y - $cl_time Uhr";
		$end = "$cl_ed.$cl_em.$cl_ey";

		$emailer->assign_vars(array(
			'POSTERNAME' => $username,
			'TITEL' => $subject,
			'MESSAGE' => $description,
			'LINK' => $server_url."cal_lite.$phpEx",
			'START' => $start,
			'END' => $end
			)
		);
			
		$emailer->send();
		$emailer->reset();	
erstmal der code.
die tpl befindet sich bei mir im ordner \language\lang_german\email\
evtl. hat ja oxpus noch verbesserungsvorschläge bzw. findet was das so nicht sein soll :cool:
habs bei mir getestet und es funktioniert prima.

die genaue einbauanleitung kann ja später nachgereicht werden ;)

Gesperrt