Funktionen in meinem eigenen Forum

  • Themenstarter Themenstarter jaylibII
  • Beginndatum Beginndatum
J

jaylibII

Hallo und guten Tag,

ich hoffe mal, dass Ihr mir helfen könnt. Und zwar ich bin gerade dabei ein Forum zu erstellen bzw. es ist eigentlich schon fast fertig. Nun möchte ich einfach noch ein paar Funktionen habe aber weiß da wirklich nicht so weiter.

Es soll eine Funktion geben, wo der Admin sagen kann, dass dieser Tread z.B. geschlossen ist.

Dann soll da stehen wo sonst immer steht [Antworten] soll dann stehen [geschlossen] und man kann dann einfach darauf nimmer antworten. Hmm kann mir da jemand von euch helfen, wie ich das umsetzten kann?

Gruß jaylibII
 
Hm wenn du uns nicht sagst was du denn für ein Forum benutzt können wir dir gut weiterhelfen. Verwendest du phpBB oder ein ähnliches? Wenn ja wird es bestimmt irgend einen Mod dafür geben...

Wenn du uns mehr Informationen wirst Dir bestimmt eher geholfen ;)
 
Hallo,

nee du das ist ein Forum das ich selber geschrieben habe. Hier ein ein Teil vom Code:

PHP:
<?php
include("config.php"); // config datei laden.
error_reporting(E_ALL);
//echo "<a href=index.php>Zur&uuml;ck zur &uuml;bersicht</a><br><br>";

$ppu = array(); // posts per user

$threadid = $_GET['threadid']; // threadid aus adressleiste auslesen

$fp = fopen("template_post.html","r");  // teamplate zum lesen(r) &ouml;ffnen
$template = fread($fp,filesize("template_post.html"));  // inhalt der template datei in die teamplate variable laden.

    $sql = "SELECT * FROM simple_posts  WHERE threadid = '".mysql_escape_string($threadid)."' ORDER BY postid ASC";
      $result = mysql_query($sql) or die(mysql_error());
      while($row = mysql_fetch_Assoc($result)) {
       $von = $row['von'];

   if (!isset($ppu[$von])) {
      $ppusql = "SELECT COUNT(*) AS anzahl FROM `simple_posts` WHERE `von`='$von'"; //[1]
      $ppuresult = mysql_query($ppusql) OR die(mysql_error());
      $ppurow = mysql_fetch_assoc($ppuresult);     
      $ppu[$von] = $ppurow['anzahl']; ;
   }     
     
$benutzer_rang = "init";
        if ($ppu[$von] == "martin")
          $benutzer_rang = "Mitarbeiter";
        else {
          if ($ppu[$von] <= 50){ // alle Beiträge unter und einschließlich 100
            $benutzer_rang = "Anfänger";
          }
          elseif ($ppu[$von] <= 100){ // alle Beiträge unter und einschließlich 500
            $benutzer_rang = "Fortgeschrittener";
          }
    elseif ($ppu[$von] <= 200){ // alle Beiträge unter und einschließlich 500
            $benutzer_rang = "Halbprofi";
          }
    elseif ($ppu[$von] <= 300){ // alle Beiträge unter und einschließlich 500
            $benutzer_rang = "Profi";
          }
          elseif ($ppu[$von] <= 10000){ // alle Beiträge unter und einschließlich 1000
            $benutzer_rang = "Champion";
          }
          else
            $benutzer_rang = "Super Champion";
       }

if (file_exists("profilbilder/forum/". $von.".jpg")) // Das Anzeigebild abrufen
{
  $bild='<img src="profilbilder/forum/'.$von.'.jpg">';
}
else
{
  $bild='';
}
       
    $titel = $row['titel'];  // titel besorgen
    $von = $row['von'];  // von besorgen
    $datum = $row['datum']; // datum besorgen
    $post = $row['post']; // post besorgen

    $anzahl = $ppu[$von];     

    $datum = strftime("%d.%m.%Y",$datum); //  datum formatieren
    //Echo "Benutzerrang ->".$benutzer_rang."<-<br>";    
    $ausgabe = $template;
     
    $ausgabe = str_replace("{von}",'<a href = http://community/profils.php?user=' . $von . '>' . $von . '</a>',$ausgabe);  // von ins template einsetzen
    $ausgabe = str_replace("{titel}",$titel,$ausgabe);  // titel ins template einsetzen
    $ausgabe = str_replace("{datum}",$datum,$ausgabe); // datum ins template einsetzen

    $ausgabe = str_replace("{anzahl}",$ppu[$von],$ausgabe);
    $ausgabe = str_replace("{text}",echo_message($post,false,true),$ausgabe); // den post text ins template einsetzen
    $ausgabe = str_replace("{rang}",$benutzer_rang,$ausgabe); // rang ins template einsetzen
       
	$ausgabe = str_replace("{bild}",$bild,$ausgabe); // rang ins template einsetzen
 
	 
    $ausgabe = str_replace("{message}",'<a href = http://community/mypost.php?show=write&amp;empfaenger=' . $von . '>Message schreiben</a>',$ausgabe); // den post text ins template einsetzen
     
    echo $ausgabe;
     
};
?>
 
Er hat doch geschrieben, das es sein eigenes ist!
@jaylibII
Du könntest ja einfach noch eine Spalte in deine MySQL-Tabelle einfügen (falls es auf MySQL aufgebaut ist) in der dann steht ob es geöffnet oder geschlossen ist!

greetz
daddz
 
Hmm also du meinst in die Tablle noch eine Spalte tu wo dann heißt Status und dann beim eintragen automatisch immer 1 eintragen lassen und wenn man dann eben etwas schließt dann 0 eingeben oder?

Aber wie kann ich das machen, dass eben ein Admin das im Tread entscheiden kann dass der Beitrag geschlossen wird. Wie müsste da die Funktion sein oder hmm ich weiß nicht wie ich das umsetzten soll.

Verstehst du was ich meine?
 
daddz hat gesagt.:
Er hat doch geschrieben, das es sein eigenes ist!

Ich habe das so verstanden dass er Forum hat an dem er ein paar Sachen verändert hat und jetzt nicht mehr wiess wo er das einbauen soll.

daddz hat gesagt.:
Du könntest ja einfach noch eine Spalte in deine MySQL-Tabelle einfügen (falls es auf MySQL aufgebaut ist) in der dann steht ob es geöffnet oder geschlossen ist!

Also ich denke mal (so Anhand von seinem Code) ist das schon MySQL ;)

Die Idee mit dem Flag ist gut, mach ein neues Attribut in die DB und prüfe das beim anzeigen der Beiträge. Denke daran auch beim Versuch trotzdem einen Eintrag einzufügen dies abzufangen.
 
Du könntest ja eine Funktion schreiben, die überprüft welchen Status du hast. Wenn dein Status dann Admin ist kannst du zusätzlich das Thema noch schließen, bearbeiten, etc.
Hmm also du meinst in die Tablle noch eine Spalte tu wo dann heißt Status und dann beim eintragen automatisch immer 1 eintragen lassen und wenn man dann eben etwas schließt dann 0 eingeben oder?
Ja genau so meinte ich das!

greetz
daddz
 
Hallo,

Du könntest ja eine Funktion schreiben, die überprüft welchen Status du hast. Wenn dein Status dann Admin ist kannst du zusätzlich das Thema noch schließen, bearbeiten, etc.

Joa und das verstehe ich nicht richtig, wie kann ich dann mit einem Link oder so machen, dass eben genau dieser Tread dann auch geschlossen ist. Also so sieht die Tabelle in der DB nun aus:

CREATE TABLE `threads` (
`threadid` int(11) NOT NULL auto_increment,
`boardid` int(11) NOT NULL default '0',
`status` char(2) NOT NULL default '',
PRIMARY KEY (`threadid`)
) TYPE=MyISAM AUTO_INCREMENT=12 ;

So hmm wenn ich nun was eintragen lasse dann soll immer der Status 1 genommen werden das ist dann dass der Beitrag dann offen ist das heißt dann dass man auf den Beitrag antworten kann.

Wenn dann der Status 0 ist dann kann man einfach nimmer drauf antowrten, das heißt dann dass einfach der Link ausgeblendet wird.

So das habe ich nun alles verstanden. Wie muss das aber nun aussehen, dass ich eben auch den Status wenn User = jaylibII ist dass dann eben der Link erscheint dass man das auf 0 ändern kann?
 
Du loggst dich ja bestimmt ein und speicherst die Userdaten in einer Session oder?

Jetzt kannst du prüfen ob der User (der in der Session gespeichert ist) der admin ist, wenn ja, zeigst du einen Button an (eben z.b. "sperren"). Mit diesm Button rufst du dann eine Seite auf (übergibst auch die Thread ID). Auf dieser Seite überprüfst du dann wieder ob der eingeloggte Benutzer auch wirklich der Admin ist. Wenn ja setzt du das Flag auf '0'.

Wenn du jetzt ein Thread anzeigst und dieser der Status 0 hat dann musst du nun einfach den Button "antworten" ausblenden. Auf der Seite wo du dann die Einträge in die DB einträgst solltest du jedoch auch wieder überprüfen ob der Thread geschlossen ist oder nicht.

Verstehst du wie ich/wir es meinen?
 
Zurück