ilch Forum » Ilch Clan 1.1 » Module und Modifikationen » Doppelposts Forum Mod

Geschlossen
  1. #1
    User Pic
    Zeisig Mitglied
    Registriert seit
    05.03.2013
    Beiträge
    229
    Beitragswertungen
    2 Beitragspunkte
    Hallo liebe Ilch Freunde,
    gibt es eine Möglichkeit Doppelposts im normalen Ilch Forum zu ändern, so daß Posts vom selben User danach in seinem aktuellen Post landen ?
    Hoffe ihr wißt was ich meine.

    Danke


    verwendete ilchClan Version: 1.1 N

    betroffene Homepage: externer Link
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Outi77 Mitglied
    Registriert seit
    31.03.2013
    Beiträge
    1.337
    Beitragswertungen
    143 Beitragspunkte
    Auf jeder newpost.htm werden ganz unten ja die
    letzten 5 Posts angezeigt.
    Jetzt könntest ja beim submit abfragen, ob
    der aktuelle Ersteller = dem Ersteller des letzten Posts ist.
    Wenn ja, letzten Post updaten, wenn nein, neuen Post eintragen.

    Gruß Outi
    Die richtige Formulierung eines Problems ist nicht selten bereits die halbe Lösung.
    »Albert Einstein«
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    Zeisig Mitglied
    Registriert seit
    05.03.2013
    Beiträge
    229
    Beitragswertungen
    2 Beitragspunkte
    Oha das wäre ja schon mal ein guter Hinweis. Hast Du das schon modifiziert oder kannst mir erklären wie ich das machen kann ?

    Danke
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Outi77 Mitglied
    Registriert seit
    31.03.2013
    Beiträge
    1.337
    Beitragswertungen
    143 Beitragspunkte
    Also auf die Schnelle:
    In die new_post.php unter # save post
    $res = db_query('SELECT id, erst, txt FROM `prefix_posts` WHERE tid = "'.$tid.'" ORDER BY time DESC LIMIT 0,1');
      while ($row = db_fetch_assoc($res)) {
    	$row['txt'] = bbcode($row['txt']);
    	$lpid = $row['id'];
    	$lpt  = $row['txt'];
    	$lpu  = $row['erst'];
      }

    Etwas weiter unten nach # topic alert ende diese Zeile
    db_query ("INSERT INTO `prefix_posts` (tid,fid,erst,erstid,time,txt) VALUES ( ".$tid.", ".$fid.", '".$erst."', ".$uid.", ".$time.", '".$txt."')");

    ändern in folgendes:
    if ($erst == $lpu) {
    	$lpt .= "\n--------------------------------\nEdit - ".date("d.m.Y - H:i:s")."\n".$txt;
    	db_query("UPDATE `prefix_posts` SET txt = '".$lpt."' WHERE id = ".$lpid);
      } else {
    	db_query ("INSERT INTO `prefix_posts` (tid,fid,erst,erstid,time,txt) VALUES ( ".$tid.", ".$fid.", '".$erst."', ".$uid.", ".$time.", '".$txt."')");
      }


    Geht bestimmt auch einfacher, aber wie gesagt, auf die Schnelle zwinker

    Gruß Outi


    Zuletzt modifiziert von Outi77 am 28.08.2013 - 23:13:02
    Die richtige Formulierung eines Problems ist nicht selten bereits die halbe Lösung.
    »Albert Einstein«
    1 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    Zeisig Mitglied
    Registriert seit
    05.03.2013
    Beiträge
    229
    Beitragswertungen
    2 Beitragspunkte
    Das geht ja echt gut. Nur kommt dann nach dem Posten das:

    Test eins&lt;br /&gt;<br />
    --------------------------------&lt;br /&gt;<br />
    Edit - 29.08.2013 - 00:20:39&lt;br /&gt;<br />
    Test zwei<br />
    --------------------------------<br />
    Edit - 29.08.2013 - 00:21:01<br />
    Test drei und nochmal
    --------------------------------
    Edit - 29.08.2013 - 00:22:12
    Test vier und weiter gehts




    So sieht meine new_post.php aus

    <?php
    #   Copyright by: Manuel
    #   Support: www.ilch.de
    
    
    defined ('main') or die ( 'no direct access' );
    
    
    if ($aktTopicRow['stat'] == 0 OR $forum_rights['reply'] == FALSE ) {
      if ( $aktTopicRow['stat'] == 0 AND $_SESSION['authright'] > '-7') {
               if($forum_rights['mods'] == FALSE)
              $forum_failure[] = $lang['topicclosed'];
            } elseif ($aktTopicRow['stat'] != 0 AND $_SESSION['authright'] > '-7') {
             if($forum_rights['mods'] == FALSE)
              $forum_failure[] = $lang['nopermission'];
            }
            check_forum_failure($forum_failure);
    }
    
    $title = $allgAr['title'].' :: Forum :: '.aktForumCats($aktForumRow['kat'],'title').' :: '.$aktForumRow['name'].' :: neuer Beitrag';
    $hmenu  = $extented_forum_menu.'<a class="smalfont" href="index.php?forum">Forum</a><b> &raquo; </b>'.aktForumCats($aktForumRow['kat']).'<b> &raquo; </b><a class="smalfont" href="index.php?forum-showtopics-'.$fid.'">'.$aktForumRow['name'].'</a><b> &raquo; </b>';
    $hmenu .= '<a class="smalfont" href="index.php?forum-showposts-'.$tid.'">'.$aktTopicRow['name'].'</a>'.$extented_forum_menu_sufix;
    
    
    $dppk_time = time();
    $time = time();
    if (!isset($_SESSION['klicktime'])) { $_SESSION['klicktime'] = 0; }
    
    $topic = '';
    $txt   = '';
    $xnn   = '';
    
    if (isset($_POST['txt'])) {
      $txt = trim(escape($_POST['txt'], 'textarea'));
    }
    if (isset($_POST['Gname'])) {
      $xnn = trim(escape_nickname($_POST['Gname']));
    }
    
    if (($_SESSION['klicktime'] + 15) > $dppk_time OR empty($txt) OR !empty($_POST['priview']) OR (empty($_POST['Gname']) AND !loggedin()) OR !chk_antispam ('newpost')) {
    
      $design = new design ( $title , $hmenu, 1);
      $design->header();
    
      $name = '';
      if ( !loggedin() ) {
        $name  = '<tr><td class="Cmite"0><b>'.$lang['name'].'</b></td>';
        $name .= '<td class="Cnorm"><input type="text" value="'.unescape($xnn).'" maxlength="15" name="Gname"></td></tr>';
      }
    
      $tpl = new tpl ('forum/newpost');
    
      $xtext = '';
      if ( $menu->getA(3) == 'z' ) {
        $row = db_fetch_object(db_query("SELECT txt,erst FROM prefix_posts WHERE id = ".$menu->getE(3)));
              $xtext = '[quote='.escape_nickname($row->erst).']'."\n".$row->txt."\n[/quote]";
      }
    
      if ( $menu->getA(3) == 'f' ) {
        $r = db_fetch_assoc(db_query("SELECT id,text,title FROM prefix_faqs WHERE id = ".$menu->getE(3)));
              $xtext = 'FAQ Artikel: [url=index.php?faqs-s'.$r['id'].'#FAQ'.$r['id'].']'.$r['title'].'[/url]'."\n".unescape($r['text']);
      }
    
      if (isset($_POST['priview'])) {
        $tpl->set_out('txt', FE_Vote2HTML(1,bbcode($txt),TRUE), 0);
      }
      if (empty($txt)) {
        $txt = $xtext;
      }
    
      $tpl = new tpl ('forum/newpost');
    
      $ar = array (
        'txt'    => escape_for_fields(unescape($txt)),
        'tid'    => $tid,
        'name'   => $name,
        'SMILIES'  => getsmilies(),
        'antispam'=> get_antispam('newpost',1)
      );
    
      $tpl->set_ar_out($ar,1);
    
      $erg = db_query('SELECT id,erst, txt FROM `prefix_posts` WHERE tid = "'.$tid.'" ORDER BY time DESC LIMIT 0,5');
      while ($row = db_fetch_assoc($erg)) {
        $row['txt'] = bbcode($row['txt']);
     //Forumex - begin
        $row['txt'] = FE_Vote2HTML($row['id'],$row['txt'],TRUE);
        //Forumex - end
        $tpl->set_ar_out($row, 2);
      }
      $tpl->out(3);
    
    
    } else {
    
      # save post
      $res = db_query('SELECT id, erst, txt FROM `prefix_posts` WHERE tid = "'.$tid.'" ORDER BY time DESC       LIMIT 0,1');
      while ($row = db_fetch_assoc($res)) {
        $row['txt'] = bbcode($row['txt']);
        $lpid = $row['id'];
        $lpt  = $row['txt'];
        $lpu  = $row['erst'];
      }
      $_SESSION['klicktime'] = $dppk_time;
    
      $design = new design ( $title , $hmenu, 1);
      $design->header();
    
      if (loggedin()) {
        $uid = $_SESSION['authid'];
                    $erst = escape($_SESSION['authname'],'string');
              db_query("UPDATE `prefix_user` set posts = posts+1 WHERE id = ".$uid);
      } else  {
              $erst = $xnn;
                    $uid = 0;
      }
    
      # topic alert ausfuehren.
      $topic_alerts_abf = "SELECT
          prefix_topics.name as topic,
          prefix_user.email as email,
          prefix_user.name as user,
          prefix_user.id as uid
        FROM prefix_topic_alerts
          LEFT JOIN prefix_topics ON prefix_topics.id = prefix_topic_alerts.tid
          LEFT JOIN prefix_user   ON prefix_user.id   = prefix_topic_alerts.uid
        WHERE prefix_topic_alerts.tid = ".$tid;
    
      $topic_alerts_erg = db_query($topic_alerts_abf);
      while ($topic_alerts_row = db_fetch_assoc($topic_alerts_erg)) {
        if ($uid == $topic_alerts_row['uid']) continue;
        $page = $_SERVER["HTTP_HOST"].$_SERVER["SCRIPT_NAME"];
        $text = sprintf ($lang['topicalertmessage'], $topic_alerts_row['user'], $topic_alerts_row['topic'], $page, $tid);
        icmail ($topic_alerts_row['email'], 'neue Antwort im Thema: "'.$topic_alerts_row['topic'].'"', $text);
        debug ($topic_alerts_row['email']);
      }
      db_query("DELETE FROM prefix_topic_alerts WHERE tid = ".$tid);
    
      # topic alert insert wenn gewaehlt.
      if (!empty($_POST['topic_alert']) AND $_POST['topic_alert'] == 'yes' AND loggedin()) {
        if (0 == db_result(db_query("SELECT COUNT(*) FROM prefix_topic_alerts WHERE uid = ".$_SESSION['authid']." AND tid = ".$tid),0)) {
          db_query("INSERT INTO prefix_topic_alerts (tid,uid) VALUES (".$tid.", ".$_SESSION['authid'].")");
        }
      }
      # topic alert ende
    
    $erstip = getenv ("REMOTE_ADDR");
    if ($erst == $lpu) {
        $lpt .= "\n--------------------------------\nEdit - ".date("d.m.Y - H:i:s")."\n".$txt;
        db_query("UPDATE `prefix_posts` SET txt = '".$lpt."' WHERE id = ".$lpid);
      } else {
        db_query ("INSERT INTO `prefix_posts` (tid,fid,erst,erstid,time,txt) VALUES ( ".$tid.", ".$fid.", '".$erst."', ".$uid.", ".$time.", '".$txt."')");
      }
      $pid = db_last_id();
    
            db_query("UPDATE `prefix_topics` SET last_post_id = ".$pid.", rep = rep + 1 WHERE id = ".$tid);
            db_query("UPDATE `prefix_forums` SET posts = posts + 1, last_post_id = ".$pid." WHERE id = ".$fid );
    //Forumex - begin
      FE_CreateVote($pid,$txt);
      //Forumex - end
            $page = ceil ( ($aktTopicRow['rep']+1)  / $allgAr['Fpanz'] );
    
      # toipc als gelesen markieren
      $_SESSION['forumSEE'][$fid][$tid] = time();
    
            wd ( array (
              $lang['backtotopic'] => 'index.php?forum-showposts-'.$tid.'-p'.$page.'#'.$pid,
                    $lang['backtotopicoverview'] => 'index.php?forum-showtopics-'.$fid
            ) , $lang['createpostsuccessful'] , 3 );
    }
    
    $design->footer();
    ?>
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    Outi77 Mitglied
    Registriert seit
    31.03.2013
    Beiträge
    1.337
    Beitragswertungen
    143 Beitragspunkte
    Moin,

    wenn Du die Zeile 99 in Deiner new_post.php auskommentierst,
    sollte es funktionieren.
    //$row['txt'] = bbcode($row['txt']);


    Gruß Outi
    Die richtige Formulierung eines Problems ist nicht selten bereits die halbe Lösung.
    »Albert Einstein«
    1 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    Zeisig Mitglied
    Registriert seit
    05.03.2013
    Beiträge
    229
    Beitragswertungen
    2 Beitragspunkte
    Danke vielmals Outi77,

    wenn ich alles so ändere funktioniert es eigentlich tadellos. Das einzige was mir aber auffiel, ist: In der Forenübersicht sind teilweise dann unter Kategorie "Letzter Eintrag von" Name und Topic einfach weg. (leer)
    Aber dieser fehler taucht nur ab und zu auf. Wenn ich einen Post schreibe und in dem Post ein großgeschriebener Buchstabe ist dann ist das Thema weg in der Übersicht.
    Vielleicht hat das was mit dem bbcode zu tun ?
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    TeamKiller Mitglied
    Registriert seit
    19.12.2009
    Beiträge
    42
    Beitragswertungen
    1 Beitragspunkte
    Also ich habe ein Problem wenn man in seinem post wiederholt postet, wird in Forum der Post mit einem Datum angezeigt 01.01.70 und der Ersteller Name wird auch nicht mehr mit angezeigt. Wo kann der Fehler liegen.?
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Module und Modifikationen

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten