Location: PHPKode > projects > PhpMyContent > phpMyContent-0.1/artikel_update.php3
<?	require 'inc/config.php3';			// Variablen Deklaration
	require "$inc_path/db_connect.php3";	// Datenbank Verbindung
	require "$inc_path/auth.php3";		// Authentifizierung
	require "$inc_path/updatelog.php3";	// Update logging
	require "$inc_path/user_track.php3";	// User Logging


	$zeitstempel = time();
	$mailbenachrichtigung = false;	// sichere Initialisierung
	if (($aktiv == 'on') || ($aktiv == 1)) {	// Freischalten kann eh nur der Admin !
		$aktiv = 1;
	} else {
		$aktiv = 0;
	}

	$sqlquery = "	SELECT 	Dokument.mail
			FROM 	Dokument, DokInstanz
			WHERE 	Dokument.autoID = DokInstanz.dokID AND
				DokInstanz.autoID = $instanzID";
	$db_object->query_db($content_db, $sqlquery);
	$row = $db_object->getrow();
	if (@$row[0] == 1) {
		$mailbenachrichtigung = true;
	}

	$sqlquery = "
		SELECT 	DokDef.autoID,
			DokDef.name,
			DokDef.inhaltFeld,
			DokDef.typ,
			DokDef.linkerweiterung,
			DokDef.wysiwyg,
			Typ.mime,
                        Bereich.autoID,
                        Bereich.projektID
		FROM 	Dokument,
			DokDef,
			DokInstanz,
			Typ,
                        Bereich
		WHERE
			DokDef.dokID = Dokument.autoID AND
			DokInstanz.dokID = Dokument.autoID AND
			(DokInstanz.autoID = $instanzID OR DokInstanz.autoID IS NULL) AND
			DokDef.typ = Typ.autoID AND
                        Dokument.bereichID = Bereich.autoID
		ORDER BY
			DokDef.reihenfolge";
	$db_object->query_db($content_db, $sqlquery);
	$i=0;
	while ($row = $db_object->getrow()) {
# TYPE MAPPING STARTS HERE
		switch ($row[2]) {
			case 'binaer' :		$db_spalte = 'binaer';
						break;
			case 'shorttext' :		$db_spalte = 'shorttext';
						break;
			case 'text' :		$db_spalte = 'text';
						break;
			case 'single_liste' :	$db_spalte = 'text';
						break;
			case 'multi_liste' :		$db_spalte = 'text';
						break;
			case 'shortzahl' :		$db_spalte = 'shortzahl';
						break;
			case 'zeit' :		$db_spalte = 'shortzahl';
						break;
			case 'zahl' :		$db_spalte = 'zahl';
						break;
			default:			$db_spalte = $row[2];
						break;
		}
# TYPE MAPPING ENDS HERE

/*		if ($row[5] == 1) {
			TO DO: CHECK FOR IMAGES WITHIN THE WYSIWYG COMPONENT
		}
*/

                if (isset($HTTP_POST_FILES['element' . $row[0]])) {
//                      BINAERDATEN  BERPR FEN START
                        if ($HTTP_POST_FILES['element' . $row[0]]['size'] > $max_bin_size) {
                                // Datei zu gross!
				require "$inc_path/header.php3";
?>              		<b><u>Fehler:</u></b><br>
		                Die Datei ist zu gro&szlig;! Bitte w&auml;hlen Sie eine kleinere Datei.<br>
				Die Gr&ouml;&szlig;e ist <b><?echo $HTTP_POST_FILES['element' . $row[0]]['size']?></b> byte, es sind aber nur <b><?echo $max_bin_size?></b> byte zugelassen.
<?              		require 'inc/footer.php3';
		                exit;
                        } else if (@strpos($row[6], $HTTP_POST_FILES['element' . $row[0]]['type']) < 0) {
                		// Falscher Datentyp
		                require "$inc_path/header.php3";
?>				<b><u>Fehler:</u></b><br>
                		Das Dateiformat ist unbekannt (Format: <?echo $HTTP_POST_FILES['element' . $row[0]]['type']?>)!
		                G&uuml;ltige Formate sind: <b><?echo $row[6]?></b>.
<?				require 'inc/footer.php3';
                		exit;
                        }
	        	// BINAERDATEN  BERPR FEN ENDE
		}
		// Update oder Insert ?
		$sqlquery = "SELECT autoID FROM DokInhalt WHERE DokInhalt.instanzID = $instanzID AND DokInhalt.dokDefID = " . $row[0];
		$db_object->query_db($content_db, $sqlquery, 1);
		$row2 = $db_object->getrow(1);
		if (@$row2[0]) {
			// UPDATE
			if ($row[2] == 'zeit') {
				$zeit = split(' ', $HTTP_POST_VARS['element' . $row[0]]);
				// Deutsches Format - Datum
				$datum = $zeit[0];
				$dat = explode('.', $datum);
				$tag = $dat[0];
				$monat = $dat[1];
				$jahr = $dat[2];
				// Uhrzeit
				$uhrzeit = $zeit[1];
				$uhr = explode(':', $uhrzeit);
				$std = $uhr[0];
				$min = $uhr[1];
				$sek = $uhr[2];
				// Englisches Format - Datum
				if ((!($tag)) || (!($monat)) || (!($jahr))) {
					$datum = $zeit[0];
					$dat = explode('/', $datum);
					$tag = $dat[1];
					$monat = $dat[0];
					$jahr = $dat[2];
				}
				// nur Uhrzeit
				if ((!($tag)) || (!($monat)) || (!($jahr))) {
					$tag = '';
					$monat = '';
					$jahr = '';
					$uhrzeit = $zeit[0];
					$uhr = explode(':', $uhrzeit);
					$std = $uhr[0];
					$min = $uhr[1];
					$sek = $uhr[2];
				}
				// leer
				if ((!($std)) || (!($min))) {
					$std = '';
					$min = '';
					$sek = '';
					$zeitstpl = 0;
				}
				$zeitstpl = gmmktime($std, $min, $sek, $monat, $tag, $jahr, 1);
				$sqlquery = "UPDATE DokInhalt SET $db_spalte =  $zeitstpl WHERE DokInhalt.instanzID = $instanzID AND DokInhalt.dokDefID = " . $row[0];
				$db_object->query_db($content_db, $sqlquery, 2);
			} else if ( ($row[2] == 'zahl') || ($row[2] == 'shortzahl') ) {
				if (!($HTTP_POST_VARS['element' . $row[0]])) {
					$zahl = 0;
				} else {
					$zahl = $HTTP_POST_VARS['element' . $row[0]];
				}
				$sqlquery = "UPDATE DokInhalt SET $db_spalte = $zahl WHERE DokInhalt.instanzID = $instanzID AND DokInhalt.dokDefID = " . $row[0];
				$db_object->query_db($content_db, $sqlquery, 2);
				$sqlquery = "UPDATE DokInstanz SET lastupdate = $zeitstempel, aktiv = $aktiv, autor = $benutzerID  WHERE DokInstanz.autoID = $instanzID";
				$db_object->query_db($content_db, $sqlquery, 2);
			} else if ( ($row[2] == 'text') || ($row[2] == 'shorttext') || ($row[2] == 'single_liste')) {
				if ($row[5] == 1) {
					$inhalt = $db_object->escapeChar($HTTP_POST_VARS['element' . $row[0]]);
					if (@eregi("http:\/\/([a-zA-Z1-9\.\/-]+)?", $inhalt, $out)) {
#						$inhalt = ereg_replace($out[0], '<a href="'.$out[0].'">'.$out[0].'</a>', $inhalt);
					}
					if (eregi("mailto:([a-zA-Z1-9\hide@address.com\/-]+)?", $inhalt, $out)) {
#						$inhalt = ereg_replace($out[0], '<a href="'.$out[0].'">'.$out[0].'</a>', $inhalt);
					}
				} else {
					$inhalt = $db_object->escapeChar($HTTP_POST_VARS['element' . $row[0]]);
				}
				$sqlquery = "UPDATE DokInhalt SET $db_spalte = '" . $inhalt . "' WHERE DokInhalt.instanzID = $instanzID AND DokInhalt.dokDefID = " . $row[0];
				$db_object->query_db($content_db, $sqlquery, 2);
				$sqlquery = "UPDATE DokInstanz SET lastupdate = $zeitstempel, aktiv = $aktiv, autor = $benutzerID WHERE DokInstanz.autoID = $instanzID";
				$db_object->query_db($content_db, $sqlquery, 2);
			} else if ( ($row[2] == 'multi_liste')) {
				$inhalt = ${"element".$row[0]};
				$inhalt = join(', ', $inhalt);
				$inhalt = $db_object->unescapeChar($inhalt);
				$sqlquery = "UPDATE DokInhalt SET $db_spalte = '" . $inhalt . "' WHERE DokInhalt.instanzID = $instanzID AND DokInhalt.dokDefID = " . $row[0];
				$db_object->query_db($content_db, $sqlquery, 2);
				$sqlquery = "UPDATE DokInstanz SET lastupdate = $zeitstempel, aktiv = $aktiv, autor = $benutzerID WHERE DokInstanz.autoID = $instanzID";
				$db_object->query_db($content_db, $sqlquery, 2);
			} else if ( ($row[2] == 'binaer') && ($HTTP_POST_FILES['element' . $row[0]]['size'] > 0 )) {
				$mailnachricht = $mailnachricht . $row[1] . "\n" . $HTTP_POST_FILES['element' . $row[0]]."\n\n";
				if ( ($db_spalte == 'binaer') && ($HTTP_POST_FILES['element' . $row[0]]['size'] > 0)) {
					switch($HTTP_POST_FILES['element' . $row[0]]['type']) {
						case 'image/png':
							$fileName = $row2[0] . '.png';
							break;
						case 'image/gif':
							$fileName = $row2[0] . '.gif';
							break;
						case 'image/jpeg':
							$fileName = $row2[0] . '.jpg';
							break;
						case 'image/pjpeg':
							$fileName = $row2[0] . '.jpg';
							break;
						default:
							$fileName = $row2[0];
							break;
						}
				if (!is_dir("$output_path/images")) {
					require "$inc_path/header.php3";
?>					<b><u>Fehler:</u></b><br>
					Die Basispfadangabe ist nicht korrekt.<br>
					Bitte wenden Sie sich an den Systemadministrator.
<?					require 'inc/footer.php3';
					exit;
				} else if (!is_dir("$output_path/images/$row[8]")){
					mkdir("$output_path/images/$row[8]", 0755);
				} else if (!is_dir("$output_path/images/$row[8]/$row[7]")){
					mkdir("$output_path/images/$row[8]/$row[7]", 0755);
				}
				copy($HTTP_POST_FILES['element' . $row[0]]['tmp_name'], "$output_path/images/$row[8]/$row[7]/$fileName");
				if ($db_object->db_engine == 'mysql') {
	        			$sqlquery = '	UPDATE DokInhalt SET ' . $row[2] . " = '$fileName' WHERE DokInhalt.instanzID = $instanzID AND DokInhalt.dokDefID = " . $row[0];
		        	} else if ($db_object->db_engine == 'ora') {
					$sqlquery = '	UPDATE DokInhalt SET ' . $row[2] . " = '$fileName' WHERE DokInhalt.instanzID = $instanzID AND DokInhalt.dokDefID = " . $row[0];
			       	}  else {
			        	$sqlquery = '	UPDATE DokInhalt SET ' . $row[2] . " = '$fileName' WHERE DokInhalt.instanzID = $instanzID AND DokInhalt.dokDefID = " . $row[0];
        			}
	        		$db_object->query_db($content_db, $sqlquery, 2);
			}
			$sqlquery = "UPDATE DokInstanz SET lastupdate = $zeitstempel, aktiv = $aktiv, autor = $benutzerID WHERE DokInstanz.autoID = $instanzID";
			$db_object->query_db($content_db, $sqlquery, 2);
		} else {
			// INSERT
			if ($row[2] == 'zeit') {
				$zeit = split(' ', $HTTP_POST_VARS['element' . $row[0]]);
				// Deutsches Format - Datum
				$datum = $zeit[0];
				$dat = explode('.', $datum);
				$tag = $dat[0];
				$monat = $dat[1];
				$jahr = $dat[2];
				// Uhrzeit
				$uhrzeit = $zeit[1];
				$uhr = explode(':', $uhrzeit);
				$std = $uhr[0];
				$min = $uhr[1];
				$sek = $uhr[2];
				// Englisches Format - Datum
				if ((!($tag)) || (!($monat)) || (!($jahr))) {
					$datum = $zeit[0];
					$dat = explode('/', $datum);
					$tag = $dat[1];
					$monat = $dat[0];
					$jahr = $dat[2];
				}
				// nur Uhrzeit
				if ((!($tag)) || (!($monat)) || (!($jahr))) {
					$tag = '';
					$monat = '';
					$jahr = '';
					$uhrzeit = $zeit[0];
					$uhr = explode(':', $uhrzeit);
					$std = $uhr[0];
					$min = $uhr[1];
					$sek = $uhr[2];
				}
				// leer
				if ((!($std)) || (!($min))) {
					$std = '';
					$min = '';
					$sek = '';
					$zeitstpl = 0;
				}
				$zeitstpl = gmmktime($std, $min, $sek, $monat, $tag, $jahr, 1);
				if ($db_object->db_engine == 'mysql') { 
					$sqlquery = "	INSERT INTO DokInhalt ($db_spalte, dokDefID, erstellt, instanzID) VALUES (
								$zeitstpl, 
								" . $row[0] . ",
								$zeitstempel,
								$instanzID)"; 
				} else if ($db_object->db_engine == 'ora') { 
					$sqlquery = "	INSERT INTO DokInhalt (autoID, $db_spalte, dokDefID, erstellt, instanzID) VALUES (
								dokInhaltID.nextval,
								$zeitstpl, 
								" . $row[0] . ",
								$zeitstempel,
								$instanzID)";
				}  else {
					$sqlquery = "	INSERT INTO DokInhalt ($db_spalte, dokDefID, erstellt, instanzID) VALUES (
								$zeitstpl, 
								" . $row[0] . ",
								$zeitstempel,
								$instanzID)"; 
				} 
				$db_object->query_db($content_db, $sqlquery, 2); 
			} else if ( ($row[2] == 'zahl') || ($row[2] == 'shortzahl') ) {
				if (!($HTTP_POST_VARS['element' . $row[0]])) {
					$zahl = 0;
				} else {
					$zahl = $HTTP_POST_VARS['element' . $row[0]];
				}
				if ($db_object->db_engine == 'mysql') { 
					$sqlquery = "	INSERT INTO DokInhalt ($db_spalte, dokDefID, erstellt, instanzID) VALUES (
								$zahl,
								" . $row[0] . ",
								$zeitstempel,
								$instanzID)"; 
				} else if ($db_object->db_engine == 'ora') { 
					$sqlquery = "	INSERT INTO DokInhalt (autoID, $db_spalte, dokDefID, erstellt, instanzID) VALUES (
								dokInhaltID.nextval,
								$zahl, 
								" . $row[0] . ",
								$zeitstempel,
								$instanzID)"; 
				}  else { 
					$sqlquery = "	INSERT INTO DokInhalt ($db_spalte, dokDefID, erstellt, instanzID) VALUES (
								$zahl, 
								" . $row[0] . ",
								$zeitstempel,
								$instanzID)"; 
				}
				$db_object->query_db($content_db, $sqlquery, 2);
			} else if ( ($row[2] == 'text') || ($row[2] == 'shorttext') || ($row[2] == 'single_liste') ) {
				if ($db_object->db_engine == 'mysql') { 
					$sqlquery = "	INSERT INTO DokInhalt ($db_spalte, dokDefID, erstellt, instanzID) VALUES (
								'".$db_object->escapeChar($HTTP_POST_VARS['element' . $row[0]])."', 
								" . $row[0] . ",
								$zeitstempel,
								$instanzID)"; 
				} else if ($db_object->db_engine == 'ora') {
					$sqlquery = "	INSERT INTO DokInhalt (autoID, $db_spalte, dokDefID, erstellt, instanzID) VALUES (
								dokInhaltID.nextval,
								'".$db_object->escapeChar($HTTP_POST_VARS['element' . $row[0]])."',
								" . $row[0] . ",
								$zeitstempel,
								$instanzID)";
				}  else {
					$sqlquery = "	INSERT INTO DokInhalt ($db_spalte, dokDefID, erstellt, instanzID) VALUES (
								'".$db_object->escapeChar($HTTP_POST_VARS['element' . $row[0]])."',
								" . $row[0] . ",
								$zeitstempel,
								$instanzID)";
				}
				$db_object->query_db($content_db, $sqlquery, 2);
			} else if ( ($row[2] == 'binaer') && ($HTTP_POST_VARS['element' . $row[0]]['size']> 0 )) {
				$fname = $zeitstempel;
				$fname = $fname  . $row[0];
				switch($HTTP_POST_FILES['element' . $row[0]]['type']) {
					case 'image/png':
						$fileName = $fname . '.png';
						break;
                                        case 'image/gif':
                                                $fileName = $fname . '.gif';
                                                break;
                                        case 'image/jpeg':
                                                $fileName = $fname . '.jpg';
                                                break;
                                        case 'image/pjpeg':
                                                $fileName = $fname . '.jpg';
                                                break;
                                        default:
                                                $fileName = $fname;
                                                break;
                                        }
                                        if (!is_dir("$output_path/images")) {
                     				require "$inc_path/header.php3";
?>                                    		<b><u>Fehler:</u></b><br>
                                                Die Basispfadangabe ist nicht korrekt.<br>
                                                Bitte wenden Sie sich an den Systemadministrator.
<?                                    		require 'inc/footer.php3';
                    		                exit;
                                         } else if (!is_dir("$output_path/images/$row[8]")){
                                                mkdir("$output_path/images/$row[8]", 0755);
                                         } else if (!is_dir("$output_path/images/$row[8]/$row[7]")){
                                                mkdir("$output_path/images/$row[8]/$row[7]", 0755);
                                         }
                                         copy($HTTP_POST_FILES['element' . $row[0]]['tmp_name'], "$output_path/images/$row[8]/$row[7]/$fileName");
                                        if ($db_object->db_engine == 'mysql') {
						$sqlquery = "	INSERT INTO DokInhalt ($db_spalte, dokDefID, erstellt, instanzID) VALUES (
									'$content',
									" . $row[0] . ",
									$zeitstempel,
									$instanzID)";
 					} else if ($db_object->db_engine == 'ora') {
						$sqlquery = "	INSERT INTO DokInhalt (autoID, $db_spalte, dokDefID, erstellt, instanzID) VALUES (
									dokInhaltID.nextval,
									HEXTORAW('$content'),
									" . $row[0] . ",
									$zeitstempel,
									$instanzID)";
					}  else {
						$sqlquery = "	INSERT INTO DokInhalt ($db_spalte, dokDefID, erstellt, instanzID) VALUES (
									'$content',
									" . $row[0] . ",
									$zeitstempel,
									$instanzID)";
					}
					$db_object->query_db($content_db, $sqlquery, 2);
				}
			}
		}
		$content = '';
		$i++;
	}

	if ( ($enable_user_mailing) && ($mailbenachrichtigung) ) {
		require("inc/user_mailing.php3");
	}

	require 'inc/db_disconnect.php3';
	header("Location: artikel.php3?projekt=$projekt&bereich=$bereich");
	exit;
?>
Return current item: PhpMyContent