ilch Forum » Ilch Clan 1.1 » Fehlersuche und Probleme » News Kommentieren

Geschlossen
  1. #1
    User Pic
    CaptainJack Mitglied
    Registriert seit
    11.02.2010
    Beiträge
    519
    Beitragswertungen
    2 Beitragspunkte
    Moin,

    wenn ich News kommentieren will kommt folgende Meldung:

    Fatal error: Call to a member function out() on a non-object in /var/www/XXX/html/include/contents/news.php on line 213

    Melde ich mich aber auf der HP an, so kann ich Kommentare schreiben.

    Kann man Usern nicht die Meldung zeigen:

    Du musst angemeldet sein um Kommentare schreiben zu können.


    Könnte mir da jemand bei der Realisierung helfen?


    Gruß

    betroffene Homepage: soldier-force.com
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.675
    Beitragswertungen
    1212 Beitragspunkte
    Überprüfe mal die Ausgaben von der news.php an die news.htm im Bezug auf out() -> EXPLODE. Ich vermute das die Anzahl nicht stimmt!
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    CaptainJack Mitglied
    Registriert seit
    11.02.2010
    Beiträge
    519
    Beitragswertungen
    2 Beitragspunkte
    Sorry aber da kenne ich mich nicht mit aus. Kannste du mir sagen was ich da wo genau nachschauen muss?


    Gruß

    ZitatZitat geschrieben von Lord|Schirmer

    Überprüfe mal die Ausgaben von der news.php an die news.htm im Bezug auf out() -> EXPLODE. Ich vermute das die Anzahl nicht stimmt!
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.675
    Beitragswertungen
    1212 Beitragspunkte
    Es gibt ja die Platzhalter (EXPLODE) im Template "news.htm" diese werden vom der zuständigen php "news.php" mit den aus der Datenbank ermittelten und verarbeiteten Daten gefüllt.

    Da es meist mehrere Platzhalter gibt werden ist die Zahl wichtig, also zB.:
    $tpl->out(2); bedeutet Ausgabe nach dem 2. EXPLODE

    Du müsstest jetzt prüfen ob in deiner php das Zusammenspiel Ausgaben <-> EXPLODE passt.

    Mach ne Sicherung, probiere es mal und im Notfall die beiden Dateien posten!
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    CaptainJack Mitglied
    Registriert seit
    11.02.2010
    Beiträge
    519
    Beitragswertungen
    2 Beitragspunkte
    news.htm

    <style>
    .news-title {
            font-family: Verdana;
            font-size: 13px;
            text-decoration: none;
            color:#719600;
    }
    
    </style>
    
    
    
    
    
    
    
    
    
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td colspan="2"><hr /></td>
      </tr>
      <tr>
        <td width="170" align="left" valign="top">{kate}</td>
        <td align="left" valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
              <tr>
                <td align="left" valign="top"><span style="color:#719600; font-family:Verdana; font-size:16px; text-decoration:none; font-weight:bold;">{title}</span></td>
              </tr>
              <tr>
                <td height="25" align="left" valign="top"><span class="smalfont">geschrieben am {datum}</span></td>
              </tr>
            </table></td>
            <td align="right" valign="middle"><img src="include/images/news/news_comm.png" width="24" height="16" />&nbsp;<span style="color:#719600">&nbsp;<strong>({kom})</strong> <a href="index.php?news-{id}">Kommentare</a></span></td>
          </tr>
          <tr>
            <td colspan="2" align="left" valign="top">{text}</td>
            </tr>
          <tr>
            <td height="25" colspan="2" align="right" valign="bottom"><span style="color:#719600">{readwholenews}</span></td>
          </tr>
        </table></td>
      </tr>
    </table>
    {EXPLODE}
    <center>
    <br/>{SITELINK}</center>
    
    
    {EXPLODE}
    <script language="JavaScript" type="text/javascript">
    function delkom (NID, ID) {
    var Check = confirm("Kommentar wirklich löschen?")
    if (Check == true) window.open("index.php?news-"+NID+"-d"+ID,"_self");
    }</script>
    <!-- News Kommentare und Mehr lesen -->
    <table width="100%" cellpadding="5" cellspacing="1" border="0">
      <tr class="Chead">
        <th height="25" align="left" valign="middle"><b>{NAME}</b></th>
      </tr>
      <tr>
        <td height="25" align="left" valign="top"><table width="175" border="0" cellspacing="0" cellpadding="0" style="float:left;">
          <tr>
            <td width="160" height="190" align="left" valign="top">{KATE}</td>
            <td align="left" valign="top">&nbsp;</td>
          </tr>
        </table>{TEXT}</td>
      </tr>
      <tr>
        <td >
    
          <a href="javascript:history.back(1)"><b>«</b>{_lang_back}</a> </td>
      </tr>
    
      <tr>
        <td height="25">{_lang_commentsfor} {NAME}</td>
      </tr>
      <tr>
    
        <td>
    
                {EXPLODE}
                <form action="index.php?news-{NID}" method="POST">
            <fieldset>
              <legend>{_lang_writecomment}</legend>
              <input type="text" name="name" value="{uname}" /> &nbsp; {ANTISPAM} &nbsp; <input type="submit" value="{_lang_enter}"><br />
    
              <textarea style="width: 98%" cols="50" rows="2" name="txt"></textarea><br />
            </fieldset>
          </form>
          <br />
          {EXPLODE}
    
          <span class="Cmite"># <b>{ZAHL}</b> von {NAME}</span>
          <br />{TEXT}<br /><br />
    
          {EXPLODE}
          <br />
          <a href="javascript:history.back(1)"><b>«</b> {_lang_back}</a>
    
        </td>
      </tr>
    </table>






    news php

    <?php
    #   Copyright by: Manuel Staechele
    #   Support: www.ilch.de
    #   Modded by Mairu für News Extended
    
    defined ('main') or die ( 'no direct access' );
    
    
    
    $title = $allgAr['title'].' :: News';
    $hmenu = 'News';
    $design = new design ( $title , $hmenu );
    $design->addheader('<link rel="alternate" type="application/atom+xml" title="News (Atom)" href="index.php?news-atom" />
    <link rel="alternate" type="application/rss+xml" title="News (RSS)" href="index.php?news-rss" />');
    
    function news_find_kat ($kat) {
    
                    $katpfad = 'include/images/news/';
                    $katjpg = $katpfad.$kat.'.jpg';
                    $katgif = $katpfad.$kat.'.gif';
                    $katpng = $katpfad.$kat.'.png';
    
                    if ( file_exists( $katjpg ) ) {
                      $pfadzumBild = $katjpg;
                    } elseif ( file_exists ( $katgif ) ) {
                      $pfadzumBild = $katgif;
                    } elseif ( file_exists ( $katpng ) ) {
                      $pfadzumBild = $katpng;
                    }
    
                    if ( !empty( $pfadzumBild ) ) {
                            $kategorie = '<img style="" src="'.$pfadzumBild.'" alt="'.$kat.'">';
                    } else {
                      $kategorie = '<b>'.$kat.'</b><br /><br />';
                    }
    
                    return ( $kategorie );
    }
    
    //Schaut ob ein Name so oder ähnlich in der Datenbank vorhanden ist
    //gibt true zurück falls der Name noch nicht verwendet ist
    function checkName($name) {
      if (db_count_query("SELECT COUNT(name) FROM prefix_user WHERE name LIKE '$name'")) {
        return false;
      } else {
        return true;
      }
    }
    
    function checkKomName($name) {
      $resp = new xajaxResponse();
      if (checkName($name) OR loggedin()) {
        $name = utf8_decode($name);
        $resp->script('document.forms["komform"].submit();');
      } else {
        $resp->assign('komname','value' ,'' );
        $resp->alert('Dieser Name ist bereits an einen User vergeben, benutze bitte einen anderen.');
        $resp->script("document.getElementById('komname').focus();");
      }
      return $resp;
    }
    
    //xajax für namencheck
    $xajax = new xajax('index.php?newsextended-ajax');
    $xajax->registerFunction('checkKomName');
    $xajax->processRequest();
    
    if ($menu->get(1) == 'ajax') {
      exit();
    }
    
    if ( !is_numeric($menu->get(1)) )  {
      if($menu->get(1) == 'rss' || $menu->get(1) == 'atom')
      {
          #ob_clean();
          $feed_type = $menu->get(1);
    
        $abf = "SELECT MAX(news_time) AS last_update FROM prefix_news";
        $erg = db_query($abf);
        $row = db_fetch_assoc($erg);
        $last_update = str_replace(' ', 'T', $row['last_update']) . 'Z';
    
        $tn_id = intval(@db_result($news_opts = db_query("SELECT v1 FROM prefix_allg WHERE k = 'news' LIMIT 1"),0));
    
        $abf = "SELECT
          a.news_title as title,
          a.news_id as id,";
        $abf .= ($feed_type == 'atom') ? 'a.news_time as datum,' : "DATE_FORMAT(a.news_time,'%a, %e %b %y %H:%i:%s') as datum,";
        $abf .=
         "a.news_kat as kate,
          a.news_text as text,
          b.name as username,
          a.html
        FROM prefix_news as a
        LEFT JOIN prefix_user as b ON a.user_id = b.id
        WHERE a.news_recht = 0 AND a.`show` > 0 AND a.`show` <= UNIX_TIMESTAMP() AND a.news_id != $tn_id AND a.`archiv` != 1 AND (a.endtime IS NULL OR a.endtime > UNIX_TIMESTAMP())
        ORDER BY news_time DESC LIMIT 15";
        $erg = db_query($abf);
        $tpl = new tpl( 'news_'.$menu->get(1).'.htm' );
    
        header('Content-type: application/' . $menu->get(1)  . '+xml');
    
        $tpl->set_ar_out(array('FEEDTITLE' => $allgAr['title'],
                               'UPDATED' => $last_update,
                               'SITEURL' => 'http://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF'])), 0);
        while ($row = db_fetch_assoc($erg))
        {
          if($feed_type == 'atom')
          {
              $row['datum'] = str_replace(' ', 'T', $row['datum']) . 'Z';
          }
    
          $a = explode('[PREVIEWENDE]', $row['text']);
          $tpl->set_ar_out(array('TITLE' => $row['title'],
                                 'TXT' => $row['html'] ? $a[0] : bbcode($a[0]),
                                 'LINK' => 'http://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']). '/index.php?news-' . $row['id'],
                                 'AUTHOR' => $row['username'],
                                 'DATE' => $row['datum']
                                 ), 1);
        }
        $tpl->out(2);
        exit;
      }
      else
      {
        $design->header();
        $limit = $allgAr['Nlimit'];
        $page = ( $menu->getA(1) == 'p' ? $menu->getE(1) : 1 );
        $anfang = ($page - 1) * $limit;
    
        //Topnews ausgeben
        $tn_id = intval(@db_result($news_opts = db_query("SELECT v1, v2 FROM prefix_allg WHERE k = 'news' LIMIT 1"),0,0));
        $tn_koms = @db_result($news_opts,0,1);
        $tn_sql = db_query("SELECT news_title, news_text, html FROM prefix_news WHERE news_id = $tn_id AND `show` > 0 AND `show` <= UNIX_TIMESTAMP() AND (endtime IS NULL OR endtime > UNIX_TIMESTAMP())");
        if (db_num_rows($tn_sql) > 0) {
            $tn_r = db_fetch_object($tn_sql);
            $tn_tpl = new tpl ( 'news/top');
            $tn_tpl->set('title',$tn_r->news_title);
            $tn_tpl->set('koms', $tn_koms == '1' ? '<br /><a href="index.php?newsextended-'.$tn_id.'">'.db_count_query("SELECT COUNT(id) FROM prefix_koms WHERE uid = $tn_id AND cat = 'NEWS'").' '.$lang['comments'].' </a>' : '' );
            $tn_tpl->set_out('txt', $tn_r->html ? $tn_r->news_text : bbcode($tn_r->news_text), 0 );
            unset($tn_tpl);
        }
    
        $MPL = db_make_sites ($page , "WHERE news_recht >= {$_SESSION['authright']} AND `show` > 0 AND `show` <= UNIX_TIMESTAMP() AND news_id != $tn_id AND archiv != 1 AND (endtime IS NULL OR endtime > UNIX_TIMESTAMP())" , $limit , '?newsextended' , 'news' );
    
        //Normale News
        $tpl = new tpl ( 'news/news.htm' );
    
        $abf = "SELECT
          a.news_title as title,
          a.news_id as id,
          DATE_FORMAT(a.news_time,'%d. %m. %Y - %H:%i Uhr') as datum,
          DATE_FORMAT(a.news_time,'%W') as dayofweek,
          a.news_kat as kate,
          a.news_text as text,
          b.name as username,
          c.name as editorname,
          a.html,
          a.edit_time,
          a.klicks,
          b.id as uid
        FROM prefix_news as a
        LEFT JOIN prefix_user as b ON a.user_id = b.id
        LEFT JOIN prefix_user as c ON a.editor_id = c.id
        WHERE (".$_SESSION['authright']." <= a.news_recht
           OR a.news_recht = 0) AND a.`show` > 0 AND a.`show` <= UNIX_TIMESTAMP() AND news_id != $tn_id AND a.`archiv` != 1 AND (a.endtime IS NULL OR a.endtime > UNIX_TIMESTAMP())
        ORDER BY a.news_time DESC
        LIMIT ".$anfang.",".$limit;
        #echo '<pre>'.$abf.'</pre>';
    
        $erg = db_query($abf);
        while ($row = db_fetch_assoc($erg)) {
    
          $k0m  = db_query("SELECT COUNT(ID) FROM `prefix_koms` WHERE uid = ".$row['id']." AND cat = 'NEWS'");
          $row['kom']  = db_result($k0m,0);
    
          $row['kate'] = news_find_kat($row['kate']);
          $row['datum'] = $lang[$row['dayofweek']].' '.$row['datum'];
          if ( strpos ( $row['text'] , '[PREVIEWENDE]' ) !== FALSE ) {
            $a = explode('[PREVIEWENDE]' , $row['text']);
            $row['text'] = $a[0];
            $row['readwholenews'] = '<a href="index.php?newsextended-'.$row['id'].'" alt="mehr lesen" title="mehr lesen">weiterlesen ...</a>';
          } else {
            $row['readwholenews'] = '';
          }
          $row['klicks'] = '<img src="include/images/icons/news/counter.gif" alt="'.$row['klicks'].' mal gelesen" title="'.$row['klicks'].' mal gelesen" border="0">';
          if (!$row['html']) {
              $row['text'] = bbcode($row['text']);
          }
          $row['edit'] = is_null($row['edit_time']) ? '' : '<br /><i>zuletzt ge&auml;ndert am '.date('d.m.Y - H:i',strtotime($row['edit_time'])).'&nbsp;Uhr';
          if (!empty($row['edit']) and $row['editorname'] != $row['username']) {
              $row['edit'] .= ' von '.$row['editorname'].'</i>';
          } elseif (!empty($row['edit'])) {
              $row['edit'] .= '</i>';
          }
          $tpl->set_ar_out($row,0);
        }
        $tpl->set_out('SITELINK', $MPL,1);
        unset($tpl);
      }
    
    
    
    } else {
    
      $design->header();
      $xajax->printJavascript();
    
      $nid = escape($menu->get(1), 'integer');
      $erg = db_query("SELECT * FROM `prefix_news` WHERE `news_recht` >= {$_SESSION['authright']} AND `show` > 0 AND `show` <= UNIX_TIMESTAMP() AND news_id = '".$nid."'");
      if (db_num_rows($erg) == 0) {
        echo 'Keine Rechte';
        $design->footer(1);
      }
      $row = db_fetch_object($erg);
    
      if ( has_right(array($row->news_recht)) ) {
        $komsOK = true;
              if ( $allgAr['Ngkoms'] == 0 ) {
          if ( loggedin() ) {
            $komsOK = true;
                      } else {
                        $komsOK = false;
                    }
        }
              if ( $allgAr['Nukoms'] == 0 ) {
                $komsOK = false;
              }
    
        $kom_info = '';
        # kommentar add
              if ( (loggedin() OR chk_antispam ('newskom')) AND $komsOK AND !empty($_POST['name']) AND !empty($_POST['txt']) ) {
          $_POST['txt'] = escape($_POST['txt'],'string');
                      $_POST['name'] = escape($_POST['name'],'string');
          if (checkName($_POST['name']) or loggedin()) {
            if (loggedin()) {
              $_POST['name'] = $_SESSION['authname'];
            }
            db_query("INSERT INTO `prefix_koms` (`uid`,`cat`,`name`,`text`) VALUES (".$nid.",'NEWS','".$_POST['name']."','".$_POST['txt']."')");
          } else {
            $kom_info = '<span style="color:red;">Dieser Name ist bereits an einen User vergeben, benutze bitte einen anderen.</span><br />';
          }
              }
              # kommentar add
    
        # kommentar loeschen
        if ($menu->getA(2) == 'd' AND is_numeric($menu->getE(2)) AND has_right(-7, 'news')) {
          $kommentar_id = escape($menu->getE(2),'integer');
          db_query("DELETE FROM prefix_koms WHERE uid = ".$nid." AND cat = 'NEWS' AND id = ".$kommentar_id);
        }
        # kommentar loeschen
        $kategorie = news_find_kat($row->news_kat);
    
                    $textToShow = $row->html ? $row->news_text : bbcode($row->news_text);
                    $textToShow = str_replace('[PREVIEWENDE]','',$textToShow);
                    if ( !empty($such) ) {
                      $textToShow = markword($textToShow,$such);
                    }
                    # klicks zaehlen
        db_query("UPDATE prefix_news SET klicks = klicks + 1 WHERE news_id = ".$nid);
    
        $tpl = new tpl ( 'news/news.htm' );
                    $ar = array (
          'TEXT'  => $textToShow,
                            'KATE'  => $kategorie,
          'NID' => $nid,
          'uname' => $_SESSION['authname'],
                            'ANTISPAM' => (loggedin()?'':get_antispam ('newskom', 0)),
                            'NAME'  => $row->news_title,
                            'info' => $kom_info
                    );
                    $tpl->set_ar_out($ar, 2 );
    
                    if ($komsOK) {
                      $tpl->set_ar_out ( array ( 'NAME' => $row->news_title , 'NID' => $nid, 'style' => loggedin() ? 'style="display:none;"' : ''), 3 );
                    }
        $erg1 = db_query("SELECT text, name, id FROM `prefix_koms` WHERE uid = ".$nid." AND cat = 'NEWS' ORDER BY id DESC");
                    $ergAnz1 = db_num_rows($erg1);
                    if ( $ergAnz1 == 0 ) {
                      echo '<b>'.$lang['nocomments'].'</b>';
                    } else {
                      $zahl = $ergAnz1;
                      while ($row1 = db_fetch_assoc($erg1)) {
            $row1['text'] = bbcode(trim($row1['text']));
            if (has_right(-7, 'news')) {
              $row1['text'] .= '<a href="javascript:delkom('.$nid.','.$row1['id'].')"><img src="include/images/icons/del.gif" alt="l&ouml;schen" border="0" title="l&ouml;schen" /></a>';
            }
            $tpl->set_ar_out( array('NAME' => $row1['name'], 'TEXT' => $row1['text'], 'ZAHL' => $zahl ) , 4 );
            $zahl--;
                      }
        }
            }
      $tpl->out(5);
    }
    
    $design->footer();
    
    ?>
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    CaptainJack Mitglied
    Registriert seit
    11.02.2010
    Beiträge
    519
    Beitragswertungen
    2 Beitragspunkte
    Ich habs heute morgen versucht zu verstehen, was aber nicht ging.

    Hab Dir dann rinfach mal die beiden Dateien gepostet.


    Gruß


    ZitatZitat geschrieben von Lord|Schirmer

    Es gibt ja die Platzhalter (EXPLODE) im Template "news.htm" diese werden vom der zuständigen php "news.php" mit den aus der Datenbank ermittelten und verarbeiteten Daten gefüllt.

    Da es meist mehrere Platzhalter gibt werden ist die Zahl wichtig, also zB.:
    $tpl->out(2); bedeutet Ausgabe nach dem 2. EXPLODE

    Du müsstest jetzt prüfen ob in deiner php das Zusammenspiel Ausgaben <-> EXPLODE passt.

    Mach ne Sicherung, probiere es mal und im Notfall die beiden Dateien posten!
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.675
    Beitragswertungen
    1212 Beitragspunkte
    Also auf den ersten Blick sehe ich keinen Fehler, da aber die Meldung auf Zeile 213 anspricht, also $design->footer(1); könnte hier der Fehler sein!

    ZitatZitat geschrieben von Doku - 1. Design
    $design->footer(); wobei beim Footer eine 1 übergeben werden kann, damit das Script direkt nach der Ausgabe des Footers abbricht.


    Sollte also richtig sein. Nimm mal zum TEst die 1 raus, ansonsten müsste man:
      if (db_num_rows($erg) == 0) {
        echo 'Keine Rechte';
        $design->footer(1);
      }

    anders aufbauen!


    Zuletzt modifiziert von Lord|Schirmer am 23.04.2012 - 17:54:52
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    CaptainJack Mitglied
    Registriert seit
    11.02.2010
    Beiträge
    519
    Beitragswertungen
    2 Beitragspunkte
    Geht auch nicht!

    Was mir auch eben aufgefallen ist:

    Oben auf der HP kann ich auf News klicken um mir die News anzeigen zu lassen. Klicke ich dann auf Kommentare kommt die Fehlermeldung die oben steht.

    Klicke ich aber in der Latest News-Box auf die Nachricht kommt auch die obenstehende Fehlermeldung!

    Gruß
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.675
    Beitragswertungen
    1212 Beitragspunkte
    Also ich habe jetzt verzweifelt eine Stunde lang gesuch und etwas umgeschrieben, probier es mal aus und sichere voerher deine org. Dateien!

    <?php
    #   Copyright by: Manuel Staechele
    #   Support: www.ilch.de
    #   Modded by Mairu für News Extended
     
    defined ('main') or die ( 'no direct access' );
    
    $title = $allgAr['title'].' :: News';
    $hmenu = 'News';
    $design = new design ( $title , $hmenu );
    $design->addheader('<link rel="alternate" type="application/atom+xml" title="News (Atom)" href="index.php?news-atom" />
    <link rel="alternate" type="application/rss+xml" title="News (RSS)" href="index.php?news-rss" />');
     
    function news_find_kat ($kat) {
     
                    $katpfad = 'include/images/news/';
                    $katjpg = $katpfad.$kat.'.jpg';
                    $katgif = $katpfad.$kat.'.gif';
                    $katpng = $katpfad.$kat.'.png';
     
                    if ( file_exists( $katjpg ) ) {
                      $pfadzumBild = $katjpg;
                    } elseif ( file_exists ( $katgif ) ) {
                      $pfadzumBild = $katgif;
                    } elseif ( file_exists ( $katpng ) ) {
                      $pfadzumBild = $katpng;
                    }
     
                    if ( !empty( $pfadzumBild ) ) {
                            $kategorie = '<img style="" src="'.$pfadzumBild.'" alt="'.$kat.'">';
                    } else {
                      $kategorie = '<b>'.$kat.'</b><br /><br />';
                    }
     
                    return ( $kategorie );
    }
     
    //Schaut ob ein Name so oder ähnlich in der Datenbank vorhanden ist
    //gibt true zurück falls der Name noch nicht verwendet ist
    function checkName($name) {
      if (db_count_query("SELECT COUNT(name) FROM prefix_user WHERE name LIKE '$name'")) {
        return false;
      } else {
        return true;
      }
    }
     
    function checkKomName($name) {
      $resp = new xajaxResponse();
      if (checkName($name) OR loggedin()) {
        $name = utf8_decode($name);
        $resp->script('document.forms["komform"].submit();');
      } else {
        $resp->assign('komname','value' ,'' );
        $resp->alert('Dieser Name ist bereits an einen User vergeben, benutze bitte einen anderen.');
        $resp->script("document.getElementById('komname').focus();");
      }
      return $resp;
    }
     
    //xajax für namencheck
    $xajax = new xajax('index.php?newsextended-ajax');
    $xajax->registerFunction('checkKomName');
    $xajax->processRequest();
     
    if ($menu->get(1) == 'ajax') {
      exit();
    }
     
    if ( !is_numeric($menu->get(1)) )  {
    	
    	if($menu->get(1) == 'rss' || $menu->get(1) == 'atom') {
    		#ob_clean();
    		$feed_type = $menu->get(1);
    		$abf = "SELECT MAX(news_time) AS last_update FROM prefix_news";
    		$erg = db_query($abf);
    		$row = db_fetch_assoc($erg);
    		$last_update = str_replace(' ', 'T', $row['last_update']) . 'Z';
    		$tn_id = intval(@db_result($news_opts = db_query("SELECT v1 FROM prefix_allg WHERE k = 'news' LIMIT 1"),0));
    		
    		$abf = "SELECT
    		a.news_title as title,
    		a.news_id as id,";
    		$abf .= ($feed_type == 'atom') ? 'a.news_time as datum,' : "DATE_FORMAT(a.news_time,'%a, %e %b %y %H:%i:%s') as datum,";
    		$abf .=
    		"a.news_kat as kate,
    		a.news_text as text,
    		b.name as username,
    		a.html
    		FROM prefix_news as a
    		LEFT JOIN prefix_user as b ON a.user_id = b.id
    		WHERE a.news_recht = 0 AND a.`show` > 0 AND a.`show` <= UNIX_TIMESTAMP() 
    		AND a.news_id != $tn_id AND a.`archiv` != 1 
    		AND (a.endtime IS NULL OR a.endtime > UNIX_TIMESTAMP())
    		ORDER BY news_time DESC LIMIT 15";
    		$erg = db_query($abf);
    		$tpl = new tpl( 'news_'.$menu->get(1).'.htm' );
    		
    		header('Content-type: application/' . $menu->get(1)  . '+xml');
    		$tpl->set_ar_out(array(
    			'FEEDTITLE' => $allgAr['title'],
    			'UPDATED' => $last_update,
    			'SITEURL' => 'http://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF'])), 0);
    		while ($row = db_fetch_assoc($erg)) {
    			if($feed_type == 'atom') {
    				$row['datum'] = str_replace(' ', 'T', $row['datum']) . 'Z';
    			}
    			$a = explode('[PREVIEWENDE]', $row['text']);
    			$tpl->set_ar_out(array(
    				'TITLE' => $row['title'],
    				'TXT' => $row['html'] ? $a[0] : bbcode($a[0]),
    				'LINK' => 'http://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']). '/index.php?news-' . $row['id'],
    				'AUTHOR' => $row['username'],
    				'DATE' => $row['datum']
    			), 1);
    		}
    		$tpl->out(2);
    		exit;
    	
    	} else {
    
    		$design->header();
    		$limit = $allgAr['Nlimit'];
    		$page = ( $menu->getA(1) == 'p' ? $menu->getE(1) : 1 );
    		$anfang = ($page - 1) * $limit;
    	 
    		//Topnews ausgeben
    		$tn_id = intval(@db_result($news_opts = db_query("SELECT v1, v2 FROM prefix_allg WHERE k = 'news' LIMIT 1"),0,0));
    		$tn_koms = @db_result($news_opts,0,1);
    		$tn_sql = db_query("SELECT news_title, news_text, html 
    							FROM prefix_news WHERE news_id = $tn_id AND `show` > 0 
    							AND `show` <= UNIX_TIMESTAMP() 
    							AND (endtime IS NULL OR endtime > UNIX_TIMESTAMP())");
    		if (db_num_rows($tn_sql) > 0) {
    			$tn_r = db_fetch_object($tn_sql);
    			$tn_tpl = new tpl ( 'news/top');
    			$tn_tpl->set('title',$tn_r->news_title);
    			$tn_tpl->set('koms', $tn_koms == '1' ? '<br /><a href="index.php?newsextended-'.$tn_id.'">'.db_count_query("SELECT COUNT(id) FROM prefix_koms WHERE uid = $tn_id AND cat = 'NEWS'").' '.$lang['comments'].' </a>' : '' );
    			$tn_tpl->set_out('txt', $tn_r->html ? $tn_r->news_text : bbcode($tn_r->news_text), 0 );
    			unset($tn_tpl);
    		}
    	 
    		$MPL = db_make_sites ($page , "WHERE news_recht >= {$_SESSION['authright']} AND `show` > 0 AND `show` <= UNIX_TIMESTAMP() AND news_id != $tn_id AND archiv != 1 AND (endtime IS NULL OR endtime > UNIX_TIMESTAMP())" , $limit , '?newsextended' , 'news' );
     
    		//Normale News
    		$tpl = new tpl ( 'news.htm' );
    		$abf = "SELECT
    		  a.news_title as title,
    		  a.news_id as id,
    		  DATE_FORMAT(a.news_time,'%d. %m. %Y - %H:%i Uhr') as datum,
    		  DATE_FORMAT(a.news_time,'%W') as dayofweek,
    		  a.news_kat as kate,
    		  a.news_text as text,
    		  b.name as username,
    		  c.name as editorname,
    		  a.html,
    		  a.edit_time,
    		  a.klicks,
    		  b.id as uid
    		FROM prefix_news as a
    		LEFT JOIN prefix_user as b ON a.user_id = b.id
    		LEFT JOIN prefix_user as c ON a.editor_id = c.id
    		WHERE (".$_SESSION['authright']." <= a.news_recht
    		   OR a.news_recht = 0) AND a.`show` > 0 
    		   AND a.`show` <= UNIX_TIMESTAMP() 
    		   AND news_id != $tn_id AND a.`archiv` != 1 
    		   AND (a.endtime IS NULL OR a.endtime > UNIX_TIMESTAMP())
    		ORDER BY a.news_time DESC
    		LIMIT ".$anfang.",".$limit;
    		#echo '<pre>'.$abf.'</pre>';
    	 
    		$erg = db_query($abf);
    		while ($row = db_fetch_assoc($erg)) {
    			$k0m  = db_query("SELECT COUNT(ID) FROM `prefix_koms` WHERE uid = ".$row['id']." AND cat = 'NEWS'");
    			$row['kom']  = db_result($k0m,0);
    			$row['kate'] = news_find_kat($row['kate']);
    			$row['datum'] = $lang[$row['dayofweek']].' '.$row['datum'];
    			if ( strpos ( $row['text'] , '[PREVIEWENDE]' ) !== FALSE ) {
    				$a = explode('[PREVIEWENDE]' , $row['text']);
    				$row['text'] = $a[0];
    				$row['readwholenews'] = '<a href="index.php?newsextended-'.$row['id'].'" alt="mehr lesen" title="mehr lesen">weiterlesen ...</a>';
    			} else {
    				$row['readwholenews'] = '';
    			}
    			$row['klicks'] = '<img src="include/images/icons/news/counter.gif" alt="'.$row['klicks'].' mal gelesen" title="'.$row['klicks'].' mal gelesen" border="0">';
    			if (!$row['html']) {
    				$row['text'] = bbcode($row['text']);
    			}
    			$row['edit'] = is_null($row['edit_time']) ? '' : '<br /><i>zuletzt ge&auml;ndert am '.date('d.m.Y - H:i',strtotime($row['edit_time'])).'&nbsp;Uhr';
    			if (!empty($row['edit']) and $row['editorname'] != $row['username']) {
    				$row['edit'] .= ' von '.$row['editorname'].'</i>';
    			} elseif (!empty($row['edit'])) {
    				$row['edit'] .= '</i>';
    			}
    			$tpl->set_ar_out($row,0);
    		}
    		$tpl->set_out('SITELINK', $MPL, 1);
    		unset($tpl);
    	}
    
    } else {
    
    	$design->header();
    	$xajax->printJavascript();
    	$nid = escape($menu->get(1), 'integer');
    	$erg = db_query("SELECT * FROM `prefix_news` WHERE `news_recht` >= {$_SESSION['authright']} AND `show` > 0 AND `show` <= UNIX_TIMESTAMP() AND news_id = '".$nid."'");
    	
    	if (db_num_rows($erg) == 0) { echo 'Keine Rechte'; $design->footer(1); }
    
    	$row = db_fetch_object($erg);
    	if ( has_right(array($row->news_recht)) ) {
    		$komsOK = true;
    		if ( $allgAr['Ngkoms'] == 0 ) {
    			if ( loggedin() ) {
    				$komsOK = true;
    			} else {
    				$komsOK = false;
    			}
    		}
    		if ( $allgAr['Nukoms'] == 0 ) {
    			$komsOK = false;
    		}
    	}
    	$kom_info = '';
    	
        # kommentar add
    	if ( (loggedin() OR chk_antispam ('newskom')) AND $komsOK AND !empty($_POST['name']) AND !empty($_POST['txt']) ) {
    		$_POST['txt'] = escape($_POST['txt'],'string');
    		$_POST['name'] = escape($_POST['name'],'string');
    		if (checkName($_POST['name']) or loggedin()) {
    			if (loggedin()) {
    				$_POST['name'] = $_SESSION['authname'];
    			}
    			db_query("INSERT INTO `prefix_koms` (`uid`,`cat`,`name`,`text`) VALUES (".$nid.",'NEWS','".$_POST['name']."','".$_POST['txt']."')");
    		} else {
    			$kom_info = '<span style="color:red;">Dieser Name ist bereits an einen User vergeben, benutze bitte einen anderen.</span><br />';
    		}
    	}
    	# kommentar add
     
        # kommentar loeschen
    	if ($menu->getA(2) == 'd' AND is_numeric($menu->getE(2)) AND has_right(-7, 'news')) {
    		$kommentar_id = escape($menu->getE(2),'integer');
    		db_query("DELETE FROM prefix_koms WHERE uid = ".$nid." AND cat = 'NEWS' AND id = ".$kommentar_id);
    	}
        # kommentar loeschen
    
    	$kategorie = news_find_kat($row->news_kat);
    	$textToShow = $row->html ? $row->news_text : bbcode($row->news_text);
    	$textToShow = str_replace('[PREVIEWENDE]','',$textToShow);
    	if ( !empty($such) ) {
    		$textToShow = markword($textToShow,$such);
    	}
    	
    	# klicks zaehlen
        db_query("UPDATE prefix_news SET klicks = klicks + 1 WHERE news_id = ".$nid);
    	$tpl = new tpl ( 'news.htm' );
    	$ar = array (
    		'TEXT'  => $textToShow,
    		'KATE'  => $kategorie,
    		'NID' => $nid,
    		'uname' => $_SESSION['authname'],
    		'ANTISPAM' => (loggedin()?'':get_antispam ('newskom', 0)),
    		'NAME'  => $row->news_title,
    		'info' => $kom_info
    	);
    	$tpl->set_ar_out($ar, 2 );
    	
    	if ($komsOK) {
    		$tpl->set_ar_out ( array ( 'NAME' => $row->news_title , 'NID' => $nid ), 3 );
    	}
        
    	$erg1 = db_query("SELECT text, name, id FROM `prefix_koms` WHERE uid = ".$nid." AND cat = 'NEWS' ORDER BY id DESC");
    	$ergAnz1 = db_num_rows($erg1);
    	if ( $ergAnz1 == 0 ) {
    		echo '<b>'.$lang['nocomments'].'</b>';
    	} else {
    		$zahl = $ergAnz1;
    		while ($row1 = db_fetch_assoc($erg1)) {
    			$row1['text'] = bbcode(trim($row1['text']));
    			if (has_right(-7, 'news')) {
    				$row1['text'] .= '<a href="javascript:delkom('.$nid.','.$row1['id'].')"><img src="include/images/icons/del.gif" alt="l&ouml;schen" border="0" title="l&ouml;schen" /></a>';
    			}
    			$tpl->set_ar_out( array('NAME' => $row1['name'], 'TEXT' => $row1['text'], 'ZAHL' => $zahl ) , 4 );
    			$zahl--;
    		}
    	}
    
    $tpl->out(5);
    }
    $design->footer();
    ?>


    <style>
    .news-title {
            font-family: Verdana;
            font-size: 13px;
            text-decoration: none;
            color:#719600;
    }
    </style>
     
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td colspan="2"><hr /></td>
      </tr>
      <tr>
        <td width="170" align="left" valign="top">{kate}</td>
        <td align="left" valign="top">
          <table width="100%" border="0" cellspacing="0" cellpadding="0">
            <tr>
              <td>
                <table width="100%" border="0" cellspacing="0" cellpadding="0">
                  <tr>
                    <td align="left" valign="top"><span style="color:#719600; font-family:Verdana; font-size:16px; text-decoration:none; font-weight:bold;">{title}</span></td>
                  </tr>
                  <tr>
                    <td height="25" align="left" valign="top"><span class="smalfont">geschrieben am {datum}</span></td>
                  </tr>
                </table>
              </td>
              <td align="right" valign="middle">
                <img src="include/images/news/news_comm.png" width="24" height="16" />
                &nbsp;<span style="color:#719600">&nbsp;<strong>({kom})</strong> 
                <a href="index.php?news-{id}">Kommentare</a></span>
              </td>
            </tr>
            <tr>
              <td colspan="2" align="left" valign="top">{text}</td>
            </tr>
            <tr>
              <td height="25" colspan="2" align="right" valign="bottom"><span style="color:#719600">{readwholenews}</span></td>
            </tr>
          </table>
        </td>
      </tr>
    </table>
    
    {EXPLODE}
    
    <center><br/>{SITELINK}</center>
    
    {EXPLODE}
    
    <script language="JavaScript" type="text/javascript">
    function delkom (NID, ID) {
    	var Check = confirm("Kommentar wirklich entfernen?")
    	if (Check == true) window.open("index.php?news-"+NID+"-d"+ID,"_self");
    }
    </script>
    
    <!-- News Kommentare und Mehr lesen -->
    <table width="100%" cellpadding="5" cellspacing="1" border="0">
      <tr class="Chead">
        <th height="25" align="left" valign="middle"><b>{NAME}</b></th>
      </tr>
      <tr>
        <td height="25" align="left" valign="top">
          <table width="175" border="0" cellspacing="0" cellpadding="0" style="float:left;">
            <tr>
              <td width="160" height="190" align="left" valign="top">{KATE}</td>
              <td align="left" valign="top">&nbsp;</td>
            </tr>
          </table>
          {TEXT}
        </td>
      </tr>
      <tr>
        <td><a href="javascript:history.back(1)"><b>«</b>{_lang_back}</a></td>
      </tr>
      <tr>
        <td height="25">{_lang_commentsfor} {NAME}</td>
      </tr>
      <tr>
        <td>
    {EXPLODE}
          <form action="index.php?news-{NID}" method="POST">
          <fieldset>
            <legend>{_lang_writecomment}</legend>
            <input type="text" name="name" value="{uname}" /> &nbsp; {ANTISPAM} &nbsp; <input type="submit" value="{_lang_enter}">
            <br />
            <textarea style="width: 98%" cols="50" rows="2" name="txt"></textarea><br />
          </fieldset>
          </form>
          <br />
    {EXPLODE}
          <span class="Cmite"># <b>{ZAHL}</b> von {NAME}</span>
          <br />{TEXT}<br /><br />
    {EXPLODE}
          <br />
          <a href="javascript:history.back(1)"><b>«</b> {_lang_back}</a>
        </td>
      </tr>
    </table>
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    CaptainJack Mitglied
    Registriert seit
    11.02.2010
    Beiträge
    519
    Beitragswertungen
    2 Beitragspunkte
    Vielen Vielen Dank ....

    Ich weiß nicht was du umgeschrieben hast, aber jetzt gehts.


    Gruß
    0 Mitglieder finden den Beitrag gut.
  11. #11
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.675
    Beitragswertungen
    1212 Beitragspunkte
    Speziell habe ich
    if ( has_right(array($row->news_recht)) ) {

    die schließende Klammer vom Ende des Scriptes zum Ende der Abfrage (Zeile 223) gesetzt. Ich habe ewig gesucht ob die Übergaben an die Platzhalter nicht stimmen, konnte da aber nichts erkennen.

    Probier mal aus, ob jetzt noch die Rechtevergabe & Anzeige funktioniert!
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  12. #12
    User Pic
    CaptainJack Mitglied
    Registriert seit
    11.02.2010
    Beiträge
    519
    Beitragswertungen
    2 Beitragspunkte
    Also ich sehe so jetzt keinen Fehler mehr. Sollte ich was übersehen haben melde ich mich bei wieder.
    0 Mitglieder finden den Beitrag gut.
  13. #13
    User Pic
    tihart Mitglied
    Registriert seit
    03.06.2013
    Beiträge
    14
    Beitragswertungen
    0 Beitragspunkte
    ZitatZitat geschrieben von CaptainJack
    Also ich sehe so jetzt keinen Fehler mehr. Sollte ich was übersehen haben melde ich mich bei wieder.


    habe dies mal eingebaut aber mein Prob ist das ich keine Kommentare löschen kann ... hat einer ne idee ?
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Fehlersuche und Probleme

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten