Location: PHPKode > projects > Content*Builder > modules/newsletter/nlSubscriptionBox.php
<?php

if($community_check && $_SESSION[community_uid] != "") {
	/*
	* Austragung aus dem Newsletter
	*/
	if(isset($nlUnsubscribeID)) {
		/* Error Status noch auf false */
		$nlUnsubscribeError = false;
		$nlUnsubscribeErrorMessage = array();
		
		/* Check, ob der User bereits für diesen Newsletter eingetragen ist */
		$nlUnsubscriptionCheck = mysql_query("SELECT * FROM ".TABLE."_nl_subscription WHERE categoryID = '$nlUnsubscribeID' AND userID = '".$_SESSION[community_uid]."'");
		if(mysql_num_rows($nlUnsubscriptionCheck) == 0) {
			$nlUnsubscribeErrorMessage[] = "Für diesen Newsletter liegt keine Eintragung vor";
			$nlSubscribeError = true;
		}
		
		/* wenn es keine Fehler gab => Austragen */
		if(!$nlUnsubscribeError) {
			$result = mysql_query("DELETE FROM ".TABLE."_nl_subscription WHERE userID = '".$_SESSION[community_uid]."' AND categoryID = '$nlUnsubscribeID'");
		}
	}
	
	/*
	* Einschreibung in Datenbank eintragen
	*/
	if(isset($nlSubscribeSubmit)) {
		/* Error Status noch auf false */
		$nlSubscribeError = false;
		$nlSubscribeErrorMessage = array();
		
		/* Setzen der zu prüfenden Kategorie ID */
		if(empty($nlRestrictCategoryID)) {
			$nlSubscribeCategoryID = $_POST[nlSubscribeCategoryID];
		} else {
			$nlSubscribeCategoryID = $nlRestrictCategoryID;
		}
		
		/* Prüfen der ID, ob Kategorie existiert */
		$nlCategoryRow = "";
		$nlCategoryCheck = mysql_query("SELECT * FROM ".TABLE."_nl_category WHERE categoryID = '$nlSubscribeCategoryID'");
		if(mysql_num_rows($nlCategoryCheck) == 0) {
			$nlSubscribeErrorMessage[] = "Kategorie existiert nicht";
			$nlSubscribeError = true;
		} else {
			$nlCategoryRow = mysql_fetch_assoc($nlCategoryCheck);
		}
		
		/* prüfen, ob Kategorie online ist oder nicht */
		if(!(1 & $nlCategoryRow[options])) {
			$nlSubscribeErrorMessage[] = "Kategorie offline";
			$nlSubscribeError = true;
		}
		
		/* Prüfen, ob Newsletter Typ erlaubt ist */
		if($nlSubscribeTypeID != "1" && $nlSubscribeTypeID != "2") {
			$nlSubscribeErrorMessage[] = "Falscher Newsletter Typ";
			$nlSubscribeError = true;
		}
		
		/* Check, ob der User bereits für diesen Newsletter eingetragen ist */
		$nlSubscriptionCheck = mysql_query("SELECT * FROM ".TABLE."_nl_subscription WHERE categoryID = '$nlSubscribeCategoryID' AND userID = '".$_SESSION[community_uid]."'");
		if(mysql_num_rows($nlSubscriptionCheck) > 0) {
			$nlSubscribeErrorMessage[] = "Bereits eingetragen für diesen Newsletter";
			$nlSubscribeError = true;
		}
		
		/* wenn es keine Fehler gab => Eintragen */
		if(!$nlSubscribeError) {
			$result = mysql_query("INSERT INTO ".TABLE."_nl_subscription (userID, categoryID, typeID) VALUES ('".$_SESSION[community_uid]."', '$nlSubscribeCategoryID', '$nlSubscribeTypeID')");
		}
	}

	$nlCategoryID   = array();
	$nlCategoryName = array();
	$nlCategoryDesc = array();
	$nlSubscribedCategoryID   = array();
	$nlSubscribedCategoryName = array();
	$nlSubscribedCategoryDesc = array();
	
	/*
	* Herausfinden, wo sich der User bereits eingetragen hat
	*/
	$nlSubscriptCategory = array();
	$nlSubscriptionQuery = mysql_query("SELECT * FROM ".TABLE."_nl_subscription WHERE userID = '".$_SESSION[community_uid]."'");
	while($nlSubscriptionRow = mysql_fetch_assoc($nlSubscriptionQuery)) {
		$nlSubscriptCategory[] = $nlSubscriptionRow[categoryID];
	}
	
	/*
	* Kategorie Informationen auslesen
	*/
	if(empty($nlRestrictCategoryID)) {
		/*
		* Kategorien abfragen, wenn es keine Restriktion gibt
		*/
		$nlCategoryQuery = mysql_query("SELECT * FROM ".TABLE."_nl_category WHERE (1 & options)");
		$nlCategoryShow = 1;
	} else {
		$nlCategoryQuery = mysql_query("SELECT * FROM ".TABLE."_nl_category WHERE categoryID = '$nlRestrictCategoryID' AND (1 & options)");
		$nlCategoryShow = 0;
	}
			
	while($nlCategoryRow  = mysql_fetch_assoc($nlCategoryQuery)) {
		if(!in_array($nlCategoryRow[categoryID], $nlSubscriptCategory)) {
			$nlCategoryID[]   = $nlCategoryRow[categoryID];
			$nlCategoryName[] = $nlCategoryRow[name];
			$nlCategoryDesc[] = $nlCategoryRow[description];
		} else {
			$nlSubscribedCategoryID[]   = $nlCategoryRow[categoryID];
			$nlSubscribedCategoryName[] = $nlCategoryRow[name];
			$nlSubscribedCategoryDesc[] = $nlCategoryRow[description];
		}
	}
	
	/*
	* Wenn es keine Kategorien gibt (weil schon überall eingetragen), 
	* kann man sich nicht weiter eintragen
	*/
	$nlSubscriptionPossible = 1;
	if(count($nlCategoryID) == 0) {
		$nlSubscriptionPossible = 0;
	}
	
	/*
	* Info, ob man schon irgendwo eingetragen ist setzen
	*/
	$nlSubscriptionsSet = 1;
	if(count($nlSubscribedCategoryID) == 0) {
		$nlSubscriptionsSet = 0;
	}
	
	$tpl->assign("nlCategoryInfo", 
		array ( "id"          => $nlCategoryID,
				"name"        => $nlCategoryName,
				"description" => $nlCategoryDesc,
				"show"        => $nlCategoryShow,
				"subscriptionPossible" => $nlSubscriptionPossible
		)
	);
	
	$tpl->assign("nlSubscribedCategoryInfo", 
		array ( "id"          => $nlSubscribedCategoryID,
				"name"        => $nlSubscribedCategoryName,
				"description" => $nlSubscribedCategoryDesc,
				"show"        => $nlSubscriptionsSet
		)
	);
	
	$tpl->display("nlSubscriptionBox.template");
} else {
	$tpl->display("nlRegisterFirst.template");
}

?>
Return current item: Content*Builder