Ja ok also hier der Quellcode.
news.htm (admin/template)
<script language="JavaScript" type="text/javascript"><!--
function delcheck ( DELID ) {
var frage = confirm ( "Willst du diesen Eintrag wirklich l�schen?" );
if ( frage == true ) {
document.location.href="?news-del-"+DELID;
}
}
function delKcheck ( DELID , NID) {
var frage = confirm ( "Willst du dieses Kommentar wirklich l�schen?" );
if ( frage == true ) {
document.location.href="?news-sKoms-"+NID+"-Kdel-"+DELID+"#"+NID;
}
}
function sichtbar(){
if( document.form.katLis.value=="neu"){
document.form.kat.style.visibility="visible";
} else {
document.form.kat.style.visibility="hidden";
}
}
//--></script>
<script type="text/javascript" src="include/includes/js/bbcode.js"></script>
<script type="text/javascript" src="include/includes/js/interface.js"></script>
<meta name="generator" content="Namo WebEditor v6.0">
<table cellpadding="0" cellspacing="0" border="0"><tr><td><img src="include/images/icons/admin/news.png" /></td><td width="30"></td><td valign="bottom"><h1>News</h1></td></tr></table>
<hr style="width: 400px; margin: 0px;">
<br /><br />
<table border="0" cellspacing="0" cellpadding="0"><tr><td valign="top">
<form action="?news" method="post" enctype="multipart/form-data" name="form">
<input type="hidden" name="um" value="{AKTION}">
<input type="hidden" name="newsID" value="{NEWSID}">
<table cellpadding="2" cellspacing="1" border="0" class="border">
<tr>
<td class="Cmite" align="right"><strong>Titel : </strong></td>
<td class="Cnorm"><input size="50" type="text" name="titel" value="{UEBER}"></td>
</tr><tr>
<td class="Cmite" align="right"><strong>News : </strong></td>
<td rowspan="2" class="Cnorm">
<!-- BB Code START -->
{__BBCodeButtons__}
<!-- BB Code ENDE -->
</td>
</tr><tr>
<td rowspan="2" valign="top" class="Cmite">{SMILIS}</td>
</tr><tr>
<td class="Cnorm"><textarea name="txt" rows="15" cols="65" tabindex="2">{txt}</textarea></td>
</tr><tr>
<td class="Cmite" align="right"><strong>Sichtbar ab : </strong></td>
<td class="Cnorm"><select name="grecht">{_list_grecht@<option%1 value="%2">%3</option>}</select></td>
</tr> <tr>
<td class="Cmite" align="right"><strong>Bild : </strong></td>
<td class="Cnorm">
<p><input name="file" type="file" value="{KATS}">
{AENDERN}</p>
</td>
</tr>
<tr class="Cdark">
<td></td>
<td><input type="submit" value="{FSUB}" name="submit"></td>
</tr>
</table>
</form>
<br /><br />
<div class="info_box">
<b>Merke (Vorschau Funktion)</b>
<br />
<span class="smalfont">
Soll nur ein kleinerer Vorschautext angezeigt werden, einfach erst die Vorschau
eingeben und nach der Vorschau dann <b>[PREVIEWENDE]</b> schreiben. Dann den langen
Text eintragen.
</span>
</div>
</td><td width="75"> </td><td valign="top">
{MPL}
<table cellpadding="3" cellspacing="1" border="0" class="border">
{EXPLODE}<tr class="{class}">
<td><a href="#" name="{ID}"></a><a href="javascript:delcheck({ID})"><img src="include/images/icons/del.gif" alt="Löschen" title="Löschen" border="0"></a></td>
<td><a href="?news-edit-{ID}"><img src="include/images/icons/edit.gif" alt="Verändern" title="Verändern" border="0"></a></td>
<td>{TITEL}</td>
</tr>{EXPLODE}
</table>
{MPL}
</td></tr></table>
<script language="JavaScript" type="text/javascript">
<!--
sichtbar();
//-->
</script>
news.php (admin)
<?php
# Copyright by: Manuel Staechele
# Support: www.ilch.de
defined ('main') or die ( 'no direct access' );
defined ('admin') or die ( 'only admin access' );
$design = new design ( 'Admins Area', 'Admins Area', 2 );
$design->header();
//-----------------------------------------------------------|
##
###
####
##### F u n k t i o n e n
function getKats ( $akt ) {
$katAR = array();
$kats = '';
$erg = db_query("SELECT DISTINCT news_kat FROM `prefix_news`");
while ($row = db_fetch_object($erg)) {
$katAr[] = $row->news_kat;
}
$katAr[] = 'Allgemein';
$katAr = array_unique($katAr);
foreach($katAr as $a) {
if (trim($a) == trim($akt)) {
$sel = ' selected';
} else {
$sel = '';
}
$kats .= '<option'.$sel.'>'.$a.'</option>';
}
return ($kats);
}
##### F u n k t i o n
####
###
##
#
##
###
####
##### A k t i o n e n
if ( !empty($_REQUEST['um']) ) {
$um = $_REQUEST['um'];
if ( $um == 'insert' ) {
# insert
// Variabeln festlegen
$max_byte_size = 2097152;
$allowed_types = "(jpg|jpeg|gif|bmp|png)";
// Formular wurde abgeschickt
if($_POST["submit"] == "Eintragen") {
// Wurde wirklich eine Datei hochgeladen?
if(is_uploaded_file($_FILES["file"]["tmp_name"])) {
// Gültige Endung? ($ = Am Ende des Dateinamens) (/i = Groß- Kleinschreibung nicht berücksichtigen)
if(preg_match("/\." . $allowed_types . "$/i", $_FILES["file"]["name"])) {
// Datei auch nicht zu groß
if($_FILES["file"]["size"] <= $max_byte_size) {
// Alles OK -> Datei kopieren
if(copy($_FILES["file"]["tmp_name"], "include/images/news/".$_FILES["file"]["name"])) {
echo "Datei erfolgreich hochgeladen!<br>";
echo "Name: " . $_FILES["file"]["name"] . "<br>";
echo "Größe: " . $_FILES["file"]["size"] . " Byte<br>";
echo "MIME-Type: " . $_FILES["file"]["type"] . "<br>";
echo "Link: <a href=\"" . "include/images/news/".$_FILES["file"]["name"] . "\">" . "include/images/news/".$_FILES["file"]["name"] . "</a>";
}
else {
echo "Datei konnte nicht hochgeladen werden.";
}
}
else {
echo "Die Datei darf nur eine Größe von " . $max_byte_size . " Byte besitzen.";
}
}
else {
echo "Die Datei besitzt keine ungültige Endung.";
}
}
else {
echo "Keine Datei zum Hochladen angegeben.";
}
}
else {
echo "Bitte benutzen Sie das Upload Formular.";
}
$text = escape($_POST['txt'], 'textarea');
db_query("INSERT INTO `prefix_news` (news_title,user_id,news_time,news_recht,news_kat,news_text)
VALUES ('".$_POST['titel']."',".$_SESSION['authid'].",NOW(),".$_POST['grecht'].",'".$_FILES["file"]["name"]."','".$text."')");
# insert
} elseif ( $um == 'change' ) {
# edit
$text = escape($_POST['txt'],'textarea');
// Variabeln festlegen
$max_byte_size = 2097152;
$allowed_types = "(jpg|jpeg|gif|bmp|png)";
// Formular wurde abgeschickt
if($_POST["submit"] == "Ändern") {
// Alles OK -> Datei kopieren
if(copy($_FILES["file"]["tmp_name"], "include/images/news/".$_FILES["file"]["name"])) {
echo "Datei erfolgreich hochgeladen!<br>";
echo "Name: " . $_FILES["file"]["name"] . "<br>";
echo "Größe: " . $_FILES["file"]["size"] . " Byte<br>";
echo "MIME-Type: " . $_FILES["file"]["type"] . "<br>";
echo "Link: <a href=\"" . "include/images/news/".$_FILES["file"]["name"] . "\">" . "include/images/news/".$_FILES["file"]["name"] . "</a>";
db_query('UPDATE `prefix_news` SET
news_kat = "'.$_FILES["file"]["name"].'" WHERE news_id = "'.$_POST['newsID'].'" LIMIT 1');
}
}
else {
echo "Bitte benutzen Sie das Upload Formular.";
} db_query('UPDATE `prefix_news` SET
news_title = "'.$_POST['titel'].'",
user_id = "'.$_SESSION['authid'].'",
news_recht = "'.$_POST['grecht'].'",
news_text = "'.$text.'" WHERE news_id = "'.$_POST['newsID'].'" LIMIT 1');
$edit = $_POST['newsID'];
}
}
# edit
# del
if ( $menu->get(1) == 'del' ) {
db_query('DELETE FROM `prefix_news` WHERE news_id = "'.$menu->get(2).'" LIMIT 1');
}
#del
##### A k t i o n e n
####
###
##
#
##
###
####
##### h t m l E i n g a b e n
if ( empty ($doNoIn) ) {
$limit = 20; // Limit
$page = ($menu->getA(1) == 'p' ? $menu->getE(1) : 1 );
$MPL = db_make_sites ($page , '' , $limit , "?news" , 'news' );
$anfang = ($page - 1) * $limit;
if ( $menu->get(1) != 'edit' ) {
$FnewsID = '';
$Faktion = 'insert';
$Fueber = '';
$Fstext = '';
$Ftxt = '';
$Fgrecht = '';
$FkatLis = '';
$Fsub = 'Eintragen';
} else {
$row = db_fetch_object(db_query("SELECT * FROM `prefix_news` WHERE news_id = ".$menu->get(2)));
$FnewsID = $row->news_id;
$Faktion = 'change';
$Fueber = $row->news_title;
$Ftxt = stripslashes($row->news_text);
$Fgrecht = $row->news_recht;
$FkatLis = $row->news_kat;
$Fsub = 'Ändern';
}
$tpl = new tpl ( 'news', 1);
$ar = array
(
'NEWSID' => $FnewsID,
'AKTION' => $Faktion,
'MPL' => $MPL,
'UEBER' => $Fueber,
'txt' => $Ftxt,
'SMILIS' => getsmilies(),
'grecht' => dbliste($Fgrecht,$tpl,'grecht',"SELECT id,name FROM prefix_grundrechte ORDER BY id DESC"),
'KATS' => $FkatLis,
'AENDERN' => $aendern,
'FSUB' => $Fsub
);
$tpl->set_ar_out($ar,0);
# e d i t , d e l e t e
$abf = 'SELECT news_id,news_title
FROM `prefix_news`
ORDER BY news_time DESC
LIMIT '.$anfang.','.$limit;
$erg = db_query($abf);
$class = '';
while ($row = db_fetch_object($erg) ) {
$class = ($class == 'Cmite' ? 'Cnorm' : 'Cmite' );
$tpl->set_ar_out( array ( 'ID' => $row->news_id, 'class' => $class, 'TITEL' => $row->news_title ) , 1 );
}
# e d i t , d e l e t e
$tpl->set_ar_out( array ('MPL' => $MPL ) , 2 );
}
$design->footer();
?>
Also beim erstellen einfach ein Bild auswählen und speichern, wollt ihr keins dann frei lassen, kommt zwar dann eine Meldung das keine Datei ausgewählt wurde stört aber den rest nicht.
Beim bearbeiten einer news bleibt das bild was beim erstellen eingefügt wurde wenn die auswahl leer bleibt, wenn ein neues bild gewünscht ist neues auswählen und speichern.
Bilder werden wie sonst auch in include/images/news gespeichert also keine neue rechte vergabe notwendig.
Modifiziert am Ilch 1.1K mit BBCode, PimpMyIlchAdmin
Ich übernehme keine verandwortung auf funktion oder sicherheit.
MfG
Stefan
Wer Rechtschreibfehler findet darf sie behalten.