ilch Forum » Ilch Clan 1.1 » Module und Modifikationen » News mit Bildupload

Geschlossen
  1. #1
    User Pic
    SteKu Mitglied
    Registriert seit
    25.03.2007
    Beiträge
    259
    Beitragswertungen
    2 Beitragspunkte
    Hallo,

    also ich möchte gern das man im Adminbereich bei erstellen einer News das Katigoriebild von seiner Festplatte Hochladen kann und diese dann im images/news und DB entrag speichern.

    das hochladen eines bild soweit kein ding aber dann verlisen sie ihn, das anpassen an das script bringt mich gerade zum verzweifeln.

    Hoffe mir kann jemand helfen.

    MfG
    Stefan


    verwendete ilchClan Version: 1.1
    Wer Rechtschreibfehler findet darf sie behalten.
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Zoddel Mitglied
    Registriert seit
    01.05.2008
    Beiträge
    170
    Beitragswertungen
    0 Beitragspunkte
    einfach hochladen in den ordner \include\images\news\


    Danach einfach die neue kategorie in den Namen des Bildes benennen zwinker
    | Träume nicht dein Leben lang - Lebe deinen Traum |
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    SteKu Mitglied
    Registriert seit
    25.03.2007
    Beiträge
    259
    Beitragswertungen
    2 Beitragspunkte
    ja das ist mir schon klar.

    ich will es aber über das admin menü machen mit

    auswahl von der Festplatte weil nicht jeder der News scheiben darf auch einen FTP zugang hat und es so einfacher un kompfortabler ist.

    MfG
    Stefan
    Wer Rechtschreibfehler findet darf sie behalten.
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    SteKu Mitglied
    Registriert seit
    25.03.2007
    Beiträge
    259
    Beitragswertungen
    2 Beitragspunkte
    So ich nochmal, also ich hab zwar nen simples script gefunden zum bild upload aber irgendwie klappt das net mit dem integrieren.

    Hier mal der Quelltext:

    news.htm (vom Admin, nur der geänderte FORM)
    <form method="POST" name="form" action="?news">
      <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">
    //Bild auswahl Anfang
    <input name="userfile" type="file">
    //Bild auswahl Ende
    </td>
        </tr><tr class="Cdark"> 
          <td></td>
          <td><input type="submit" value="{FSUB}" name="submit"></td>
        </tr>
      </table>
    </form>


    news.php (vom admin nur das insert)
    <?php
    if ( !empty($_REQUEST['um']) ) {
      $um = $_REQUEST['um'];
      if ( $um == 'insert' ) {
    	  
    # insert
    		//Bild Upload Anfang		
    		$uploaddir = 'include/images/news/';
    		$uploadfile = $uploaddir. $_FILES['userfile']['name'];
    
    		print "<pre>";
    		if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
    echo 'ja';
    		} else {
    echo 'nein';
    		}
    		print "</pre>";
                           //Bild Upload Ende
    		
    		$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'].",'".$uploadfile."','".$text."')");
    # insert		
    		
    	}
    
    //Hier gehts eigentlich weiter
    ?>


    Ja das der Code, aber irgendwie erkennt er die ausgewählte grafig nun nicht mehr bzw. läd sie nicht mehr hoch. Das ganze einzeln funktioniert super nur nicht hier eingebunten.

    MfG
    Stefan
    Wer Rechtschreibfehler findet darf sie behalten.
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    SteKu Mitglied
    Registriert seit
    25.03.2007
    Beiträge
    259
    Beitragswertungen
    2 Beitragspunkte
    so also ich hab es nun hinbekommen

    kann also geschloßen werden!
    Wer Rechtschreibfehler findet darf sie behalten.
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    Tyrargo Mitglied
    Registriert seit
    30.01.2006
    Beiträge
    5.541
    Beitragswertungen
    7 Beitragspunkte
    und wieso postest du nicht mal alles, was man machen muss, falls es user gibt, die das auch verwenden wollen?
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    Weissbrot Mitglied
    Registriert seit
    02.09.2007
    Beiträge
    82
    Beitragswertungen
    0 Beitragspunkte
    ZitatZitat geschrieben von SteKu

    so also ich hab es nun hinbekommen

    kann also geschloßen werden!


    hmpf...


    Zuletzt modifiziert von Weissbrot am 01.09.2008 - 14:29:58
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    DevilofKing Mitglied
    Registriert seit
    25.08.2008
    Beiträge
    13
    Beitragswertungen
    0 Beitragspunkte
    ja genau, würde das nämich mal gern wissen... als noob

    naja aber mal für den rest hier nen paar DrinkDrinkDrinkDrinkDrinkDrinkDrink hinstell

    Bittscheeeee
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    SteKu Mitglied
    Registriert seit
    25.03.2007
    Beiträge
    259
    Beitragswertungen
    2 Beitragspunkte
    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&#65533;schen?" );
    	if ( frage == true ) {
    	  document.location.href="?news-del-"+DELID;
    	}
    }
    
    function delKcheck ( DELID , NID) {
    	var frage = confirm ( "Willst du dieses Kommentar wirklich l&#65533;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">&nbsp;</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&ouml;schen" title="L&ouml;schen" border="0"></a></td>
        <td><a href="?news-edit-{ID}"><img src="include/images/icons/edit.gif" alt="Ver&auml;ndern" title="Ver&auml;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    = '&Auml;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.
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Module und Modifikationen

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten