Zum Inhalt springen

Workspaces email

Erstellt am 27. April 2006 · 2 Antworten · letzte Antwort am 24. April 2008

Tags: Frage

carsten_bonn ·

Da ich noch keine Hilfe in Foren zu diesem Problem gefunden habe, hab ich mich dran gesetzt mal die eMail-Benachrichtigung in den Workspaces bei TYPO3 4.0 zu übersetzen. Einfach in der Datei t3lib/class.t3lib_tcemain.php den folgenden Part ersetzen (steht fast ganz am Ende):

	function notifyStageChange($stat,$stageId,$table,$id,$comment)	{
		$workspaceRec = t3lib_BEfunc::getRecord('sys_workspace', $stat['uid']);

		if (is_array($workspaceRec))	{

				// Compile label:
			switch((int)$stageId)	{
				case 1:
					$newStage = 'Bereit zur Kontrolle';
				break;
				case 10:
					$newStage = 'Bereit zur Veröffentlichung';
				break;
				case -1:
					$newStage = 'Element wurde zurückgewiesen!';
				break;
				case 0:
					$newStage = 'Zurückgewiesenes Element wurde zur Kenntnis genommen und nicht überabeitet';
				break;
				default:
					$newStage = 'Unbekannte Statusänderung!?';
				break;
			}

				// Compile list of recipients:
			$emails = array();
			switch((int)$stat['stagechg_notification'])	{
				case 1:
					switch((int)$stageId)	{
						case 1:
							$emails = $this->notifyStageChange_getEmails($workspaceRec['reviewers']);
						break;
						case 10:
							$emails = $this->notifyStageChange_getEmails($workspaceRec['adminusers'], TRUE);
						break;
						case -1:
							$emails = $this->notifyStageChange_getEmails($workspaceRec['reviewers']);
							$emails = array_merge($emails,$this->notifyStageChange_getEmails($workspaceRec['members']));
						break;
						case 0:
							$emails = $this->notifyStageChange_getEmails($workspaceRec['members']);
						break;
 						default:
							$emails = $this->notifyStageChange_getEmails($workspaceRec['adminusers'], TRUE);
						break;
					}
				break;
				case 10:
					$emails = $this->notifyStageChange_getEmails($workspaceRec['adminusers'], TRUE);
					$emails = array_merge($emails,$this->notifyStageChange_getEmails($workspaceRec['reviewers']));
					$emails = array_merge($emails,$this->notifyStageChange_getEmails($workspaceRec['members']));
				break;
			}
			$emails = array_unique($emails);

				// Send email:
			if (count($emails))	{
				$message = sprintf('
Auf der Seite "%s" (Link zur Login-Seite %s)
im Workspace "%s" (#%s) wurde
der Status für das Element "%s" geändert:

==> %s

Kommentar:
"%s"

Der Status wurde von %s (username: %s) geändert
				',
				$GLOBALS['TYPO3_CONF_VARS']['SYS']['sitename'],
				t3lib_div::getIndpEnv('TYPO3_SITE_URL').TYPO3_mainDir,
				$workspaceRec['title'],
				$workspaceRec['uid'],
				$table.':'.$id,
				$newStage,
				$comment,
				$this->BE_USER->user['realName'],
				$this->BE_USER->user['username']);

				t3lib_div::plainMailEncoded(
					implode(',',$emails),
					'Workspace: Statusänderung in Element-ID '.$id,
					trim($message)
				);
			}
		}
	}
gstyleds ·

Ich habe ebenfalls Hilfe dazu gesucht und bin dabei auf Deinen Beitrag gestoßen. Klasse - hat mir sehr geholfen!

Besten Dank, Grüße,
Dirk