Loading...   Upload Image

Fragen zum News TutorialForum » Tutorials » Help » Fragen zum News Tutorial

Neues Thema verfassen Neues Thema

  • intro
    unregistriert

    11.03.2012 um 18:24 Uhr

    Guten Tag,
    ich habe drei Fragen bezglich des Newssystem Tutorials.
    1. Ich wrde gerne einen Facebook gefllt mir Button auf meiner Website integrieren.
    Nur wei ich nicht an welche Stelle der generierte Code

    <iframe src="http://www.facebook.com/plugins/like.php?href&amp;send=false&amp;layout=standard&amp;width=300&amp;show_faces=false&amp;action=like&amp;colorscheme=light&amp;font&amp;height=35"
         scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:300px; height:35px;" allowTransparency="true"></iframe

    hin msste. Ich habe es schon versucht, den Code am Ende der News Div innerhalb der news.php zwischen den Zeilen 88 89 einzufgen - nur funktionierte dies nicht.
    2. Auch wrde ich gerne die Kommentarfunktion des Scriptes hervorheben und daher die letzten drei Kommentare auf meiner Website anzeigen lassen, damit der User dann mittels Klick auf das Kommentar zu dem Newseintrag gelangt. Ich wollte mir das aus dem Adminbereich abschauen, aber leider reicht dafr mein PHP Verstndnis nicht aus.
    3. Zu guter Letzt, wollte ich noch nach jedem Artikel die Anzahl der geschriebenen Kommentare ermitteln und man mittels Verlinkung zum Kommentarbereich der entsprechenden News gelangt (im Prinzip so wie die Darstellung der Anzahl der Kommentare im Header).



  • AliceUser ist offline
    Admin


    Alice

    Registriert: 14.12.2006
    Beitraege: 1058

    11.03.2012 um 19:35 Uhr

    Hallochen,

    zu 1. funktionierte nicht, ist keine Aussage mit der man wirklich etwas angangen kann ;)

    Probiers damit ...

    Folgende Zeilen 88-91

        }
        echo "</div>\n";
    } // close while
    


    Wie folgt aendern:
        }
        echo "</div>\n";
    ?>
    <iframe src="http://www.facebook.com/plugins/like.php?href&amp;send=false&amp;layout=standard&amp;width=300&amp;show_faces=false&amp;action=like&amp;colorscheme=light&amp;font&amp;height=35"
         scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:300px; height:35px;" allowTransparency="true"></iframe>
    <?php
    } // close while
    


    Um die neusten Kommentare anzeigen zu lassen, einfach folgendes an beliebiger Stelle platzieren, wo es eben angezeigt werden soll ...

    <?php 
    
    $new_comi = mysql_query("SELECT id, name, comment, DATE_FORMAT(date, '%d.%m.%Y') AS datum FROM comments ORDER BY id DESC LIMIT 3");
    
     echo "<ul class=\"list\">";
     
     // News ausgeben ausgeben
    while($row_c = mysql_fetch_object($new_comi)){
        
        echo "<li><strong>".$row_c->id.".</strong>";
        echo substr($row_c->comment, 0, 80)." [..] <br />\n";
    
    	echo "<div class=\"right\">\n";
        echo "<a href=\"edit_comments.php?id=".$row_c->id."\">Bearbeiten</a>  \n";
        echo "<a href=\"edit_comments.php?action=loeschen&amp;id=".$row_c->id."\">[x]</a>\n";
        echo "</div>\n ";
    		
        echo "<small>".$row_c->name." &#xBB; <span class=\"green\">".$row_c->datum."</span></small>\n";
        echo "</li>\n";
    
    } // close while
    
    echo "</ul>";
    ?>


    Und zu 3., von welcher Datei sprechen wir hier bitte, von der news.php, ja?

    Dann sollte dir das hier weiter helfen:
    echo "<a href=\"comments.php?id=".$row->id."\">Kommentare ".$com_num."</a>\n"; 


    Liebe Gruesse
    Alice



    ... { signatur } ...
  • intro
    unregistriert

    11.03.2012 um 23:11 Uhr

    Hallo Alice,

    vielen Dank fr die schnelle Antwort zu meinen Fragen.
    Bezogen auf die zweite Frage wollte ich gerne die Kommentare als Links ausgeben ohnne die Bearbeitungsfunktionen. Die Bearbeitungsfunktion habe ich nun einfach rausgelscht(siehe unten) nur wei ich nicht, wie der Code verndert werden msste, damit man ber das Kommentar zum entsprechnenden Newseintrag gelangen knnte.

     <?php
    
    $new_comi = mysql_query("SELECT id, name, comment, DATE_FORMAT(date, '%d.%m.%Y') AS datum FROM comments ORDER BY id DESC LIMIT 3");
    
     echo "<ul class=\"list\">";
    
     // News ausgeben ausgeben
    while($row_c = mysql_fetch_object($new_comi)){
    
        echo "<li><strong>".$row_c->id.".</strong>";
        echo substr($row_c->comment, 0, 80)." [..] <br />\n";
        echo "<small>".$row_c->name." &#xBB; <span class=\"green\">".$row_c->datum."</span></small>\n";
        echo "</li>\n";
    
    } // close while
    
    echo "</ul>";
    ?>



    Gru



  • AliceUser ist offline
    Admin


    Alice

    Registriert: 14.12.2006
    Beitraege: 1058

    12.03.2012 um 12:54 Uhr

    Ja sorry, gestern war ein langer Tag ...

    Du musst die news_id mit abfragen, daraus kannst du dir dann einen Link zum Newseintrag basteln.
    Ein Newseintrag ist immer unter comments.php?id=ID-DES-NEWSARTIKELS zu erreichen ;)

    <?php
    
    $new_comi = mysql_query("SELECT id, name, comment, news_id, DATE_FORMAT(date, '%d.%m.%Y') AS datum FROM comments ORDER BY id DESC LIMIT 3");
    
     echo "<ul class=\"list\">";
    
     //ausgeben
    while($row_c = mysql_fetch_object($new_comi)){
    
        echo "<li><a href=\"comments.php?id=".$row_c->news_id."\">\n";
        echo substr($row_c->comment, 0, 80)." [..]</a> <br />\n";
        echo "<small>".$row_c->name." &#xBB; <span class=\"green\">".$row_c->datum."</span></small>\n";
        echo "</li>\n";
    
    } // close while
    
    echo "</ul>";
    ?>



    ... { signatur } ...
  • intro
    unregistriert

    12.03.2012 um 18:13 Uhr

    Hey Alice,

    nochmals danke. Es klappt jetzt alles wie ich mir das vorgestellt habe.



  • intro
    unregistriert

    30.08.2012 um 23:16 Uhr

    Guten Abend,
    ich wrde gerne das Newssystem, fr ein Projekt, um ein drei Funktionen erweitern.
    In MYSQL und PHP kenne ich mich leider nicht sonderlich aus, sodass ich Euch um Hilfe bitte.
    I.Zum einen wrde ich gerne die zeitlich neusten Eintrge hervorheben. Hierzu habe ich im Internet folgenden Skriptschnipsel gefunden:

    <?
     
    $result_query=mysql_query("SELECT * FROM {deinetabelle} limit 5");
     
    while($eintrag=mysql_fetch_array($result_query)) {
     
        if($eintrag[time]>=time()-600){ // vor 10 min
     
        echo "<div style="color:red;font-wight:bold">$eintrag[text]</div>";
     
        }
     
        elseif($eintrag[time]>=time()-3600){  // vor 1 h
     
        echo "<div style="color:red;">$eintrag[text]</div>";
     
        else { // alles andere was lter als 1h ist
     
        echo $eintrag[text]";
     
        }
     
    }
     
    ?>

    Nur wei ich leider nicht, wie ich den Code verndert msste bzw. an welcher Stelle ich den Code innerhalb der News.php einfgen msste.

    II.Auerdem wrde ich gerne im Bereich der Suchfunktion die gefundenen Treffer farbig markieren beispielsweise so:
      .highlight {
     font-weight: bold;
     color: red;
     background: yellow;
     }

    Nur wei ich wiederum nicht wie ich dieses innerhalb der suchen.php am besten umsezten knnte.

    III .Zum Schluss wrde ich gerne fr den Administrationsbereich des Newssystems ein Besttigungsfenster einbauen, welches man vor dem Lschen von Newseintrgen und Kommentaren besttigen muss. Diese Funktion wurde bereits in dem Affiliates Manager umgesetzt:

    	} else { 
    	echo "<p class=\"error\">Ganz sicher loeschen?</p> \n"; 
    	echo "<a href=\"new_affi.php?action=loeschen&amp;mode=del&id=$id\">Ja</a>"; 
    	echo "&nbsp;&nbsp;<a href=\"affis.php\">Nein</a>"; 
    	} 
    	}// close if ($action == "loeschen") 
    	
    

    Wie knnte man diese Funktion auch in das Newssystem integrieren?



  • AliceUser ist offline
    Admin


    Alice

    Registriert: 14.12.2006
    Beitraege: 1058

    17.02.2013 um 10:32 Uhr

    Hallo Intro,

    zu 1. : Folgendes in der news.php bitte aendern:

    // ---------------------- ENDE Seitennavigationsdaten----------------------------------------------
    
    $abfrage = mysql_query("SELECT id, autor, title, cat, news, DATE_FORMAT(date, '%d.%m.%Y') AS datum, date AS sdate FROM news ".$where." ORDER BY date DESC LIMIT $start,$ende");
    
    // News ausgeben ausgeben
    while($row = mysql_fetch_object($abfrage)){
        
        if(strtotime($row->sdate) >= time()-600){ // vor 10 min
          
          echo "<div class=\"news\" style=\"border: 1px solid #000; color:red;font-weight:bold\"> \n";
        }elseif(strtotime($row->sdate) >= time()-3600){  // vor 1 h
        
          echo "<div class=\"news\" style=\"color:red;\">\n";
        }else { // alles andere was lter als 1h ist
        
          echo "<div class=\"news\">\n";
        }// close  div farbig
                      
                      
       // Anzahl der Kommentare ermitteln
        $comments = mysql_query("SELECT id FROM comments WHERE news_id='$row->id'"); 
    	  $com_num = mysql_num_rows($comments); // Anzahl der Kommentare
    	
        echo "<h2>".$row->title."\n <small>verfasst von ".$row->autor." am ".$row->datum." | \n";
        
        if(!empty($row->cat)){  // sofern Kategorie angegeben
        	echo "abgelegt unter: <a href=\"news.php?cat=".urlencode($row->cat)."\">".$row->cat."</a> | \n";
        }
        echo "<a href=\"comments.php?id=".$row->id."\">Kommentare ".$com_num."</a></small>\n </h2>";
    
    	if(isset($_GET['cat'])){	// Kategorieseite nur einen Auszug ausgeben
    		$max_show = "250"; // max 450 Zeichen anzeigen
    
    		if (strlen($row->news) > $max_show){ // sofern $news mehr als 450 Zeichen enthaelt
    			echo "<p>".bbcode(substr($row->news, 0, strpos($row->news, ".", 120 )+1 ))."\n"; 
    			// Ab 150 Zeichen nach nem punkt suchen und alles das was davor enthalten ist ausgeben
    	
    			echo "<a href=\"comments.php?id=".$row->id."\" class=\"right\">read more...</a>\n";
    			echo "<br style=\"clear: right;\" /></p>"; // link ausgeben
    		}else{ // komplett ausgeben
    			echo "<p>".bbcode($row->news)."</p>";
    		}
    	}else{
    		echo "<p>".bbcode($row->news)."</p>";
    	}
        echo "</div>\n";
    
    } // close while
    
    // -------------------------------------- Seitennavigation ausgeben ----------------------------



    Zu 2.: Aenderungen wie folgt umsetzten in der Datei suchen.php:

    // Suchergebnisse ausgeben ausgeben
    	while($row = mysql_fetch_object($abfrage)){
        
       // Anzahl der Kommentare ermitteln
        $comments = mysql_query("SELECT id FROM comments WHERE news_id='$row->id'"); 
    	$com_num = mysql_num_rows($comments); // Anzahl der Kommentare
    	
        echo "<div class=\"news\">\n"; 
        echo "<h2>".$row->title."\n <small>verfasst von ".$row->autor." am ".$row->datum." | \n";
        
        if(!empty($row->cat)){  // sofern Kategorie angegeben
        	echo "abgelegt unter: <a href=\"news.php?cat=".urlencode($row->cat)."\">".$row->cat."</a> | \n";
        }
        echo "<a href=\"comments.php?id=".$row->id."\">Kommentare ".$com_num."</a></small>\n </h2>";
    
    	if(isset($_GET['cat'])){	// Kategorieseite nur einen Auszug ausgeben
    		$max_show = "250"; // max 450 Zeichen anzeigen
    
    		if (strlen($row->news) > $max_show){ // sofern $news mehr als 450 Zeichen enthaelt
    			echo "<p>".substr($row->news, 0, strpos(search_mark(bbcode($row->news),$search), ".", 120 )+1 )."\n"; 
    			// Ab 150 Zeichen nach nem punkt suchen und alles das was davor enthalten ist ausgeben
    	
    			echo "<a href=\"comments.php?id=".$row->id."\" class=\"right\">read more...</a>\n";
    			echo "<br style=\"clear: right;\" /></p>"; // link ausgeben
    		}else{ // komplett ausgeben
    			echo "<p>".search_mark(bbcode($row->news),$search)."</p>";
    		}
    	}else{
    		echo "<p>".search_mark(bbcode($row->news),$search)."</p>";
    	}
        echo "</div>\n";
    
    } // close while
    
     		} // close DB gefunden
     	}// close suchbegriff pruefen		
    }// close submit gedrueckt


    Und in die Config Datei bitte noch folgende Funktion einfuegen:
    // Suche => gesuchtes in Text markieren
    function search_mark($text, $suchwort){
      $suchwort = explode(" ",$suchwort);
        foreach($suchwort as $search_str)
        {
        $text = preg_replace("/($search_str)/i", "<span class='highlight'>$search_str</span>", $text);
        }
      return $text;
    }


    Nicht vergessen die highlight class in die Css Datei einzutragen!

    Und zum Schluss nun noch zu 3.: Dazu die post_news.php wie folgt veraendern:

    //------------------------------------------------------------------------------
    // Newseintrag loeschen
    //------------------------------------------------------------------------------
    
    isset($_GET['action']) ? $action = clean_it($_GET['action']) : $action = '';	// Variable definieren
    isset($_GET['mod']) ? $mod = clean_it($_GET['mod']) : $mod = '';	// Variable definieren
    
    if($action == 'loeschen'){
     
      if($mod == 'del'){
    
    	   // Artikel loeschen
    	   $delete = mysql_query("DELETE FROM news WHERE id='$id'");
    
    	   // Kommentare zu diesem Artikel loeschen
    	   $delete_com = mysql_query("DELETE FROM comments WHERE news_id='$id'");
    	
    	   if($delete AND $delete_com){ // Wenn Loeschung nicht erfolgt
    	
    		    header("Location: admin.php"); // Weiterleitung 
    		
    	   }else{ // Wenn Eintrag nicht geloescht wurde => Fehlermeldung
    		  	echo get_error('Der Eintrag konnte leider nicht geloescht werden! ".mysql_error()."');
    	   }// close del
         
       } else { 
    	   echo "<div class=\"error\"><h2>Sicher?</h2>\n";
         echo "<p>Bist du dir sicher, dass du diesen Beitrag loeschen moechtest?</p>\n"; 
    	   echo "<a href=\"admin.php\" class=\"the_button  right\">Nein, lieber doch nicht...</a>\n"; 	   
         echo "<a href=\"post_news.php?action=loeschen&mod=del&id=$id\" class=\"the_button\">Ja, loeschen!</a>\n</div>"; 
    	}  
    }
    //------------------------------------------------------------------------------
    // Formular auswerten
    //------------------------------------------------------------------------------


    Liebe Gruesse
    Alice



    Der Beitrag wurde insgesamt 1 mal editiert, zuletzt 18.02.2013 um 17:52 Uhr ...
    ... { signatur } ...

[ 1 ] Seite 1 von 1


       ALL-INKL.COM - Webhosting Server Hosting Domain Provider