ilch Forum » Ilch Clan 1.1 » Allgemein » Mehrere Newssysteme - News Extended

Geschlossen
  1. #1
    User Pic
    Tim76 Mitglied
    Registriert seit
    20.04.2006
    Beiträge
    72
    Beitragswertungen
    0 Beitragspunkte
    Ich hole mal dieses Thema wieder hoch:
    externer Link

    Funktioniert das auch mit dem News Extended-Mod?
    Ich weiß, dass es für diesen Mod eine Zusatzfunktion gibt mit der man einzelne, mehrere News aus bestimmten Kategorien abrufen kann.

    Ich habe aber folgendes Problem damit:
    Ich möchte das auf Newsseite 1 folgende Kategorien angezeigt werden:

    Kat. 1
    Kat. 2
    Kat. 3
    Kat. 4

    und auf der Newsseite 2 folgende Kategorien angezeigt werden:

    Kat. 5
    Kat. 6
    Kat. 7
    Kat. 8

    Newsseite 1 und Newsseite 2 bekommen in der design.ini ein unterschiedliches Design zugewiesen. Die ist mit dem Mod nicht möglich. Außerdem wird mir die Adresszeile im Browser zu lange, wenn ich beispielsweise auf der Newsseite 2 vier bis fünf Kategorien ausweisen möchte...

    Im Voraus vielen Dank für die Hilfe!
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    GeCk0 Hall Of Fame
    Registriert seit
    01.05.2009
    Beiträge
    2.989
    Beitragswertungen
    96 Beitragspunkte
    nächstes mal bitte auch in dem Thread posten, das du hervorholen willst zwinker

    Ich selbst hatte das Modul noch nicht im Einsatz, denke andere können dir da trotzdem weiterhelfen
    Alle Module von mir sind nun unter php-gecko.de erreichbar
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    Tim76 Mitglied
    Registriert seit
    20.04.2006
    Beiträge
    72
    Beitragswertungen
    0 Beitragspunkte
    ZitatZitat geschrieben von GeCk0

    nächstes mal bitte auch in dem Thread posten, das du hervorholen willst zwinker



    Ich wollte in den alten Thread schreiben. Leider gibt es keinen Antwort-Button mehr. Evtl. ist das alte Thema gesperrt!?!
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    GeCk0 Hall Of Fame
    Registriert seit
    01.05.2009
    Beiträge
    2.989
    Beitragswertungen
    96 Beitragspunkte
    Ah, es steht unter Angebote/Anfragen, da werden die Themen immer automatisch closed.
    Dann sehe den Hinweis als nichtig lächeln

    *edit*
    Sorry lächeln


    Zuletzt modifiziert von GeCk0 am 19.09.2011 - 22:20:10
    Alle Module von mir sind nun unter php-gecko.de erreichbar
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.622
    Beitragswertungen
    1192 Beitragspunkte
    Mit dem Modul News Extended 1.4b von Mairu kannst Du mit Kategorien arbeiten!

    ZitatZitat geschrieben von Beschreibung
    °Es können mehrere Kategorien bei der Anzeige eingeschränkt werden, also z.B. ?news-KAT1-KAT2-KAT3 usw.
    rules :: doku :: faq :: linkus
    1 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    Tim76 Mitglied
    Registriert seit
    20.04.2006
    Beiträge
    72
    Beitragswertungen
    0 Beitragspunkte
    Das weiß ich. Momentan verwende ich das auch noch so!

    Mein genaues Problem steht hier:
    ZitatZitat
    Newsseite 1 und Newsseite 2 bekommen in der design.ini ein unterschiedliches Design zugewiesen. Die ist mit dem Mod nicht möglich. Außerdem wird mir die Adresszeile im Browser zu lange, wenn ich beispielsweise auf der Newsseite 2 vier bis fünf Kategorien ausweisen möchte...


    Ich hoffe, dass mir jemand helfen kann!
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.622
    Beitragswertungen
    1192 Beitragspunkte
    Da wirst Du wohl deine news.php + news.htm duplizieren müssen zB. in
    news1.php + news1.htm mit eingeschränkter Abfrage und Desing.ini-Eintrag usw.
    rules :: doku :: faq :: linkus
    1 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    Tim76 Mitglied
    Registriert seit
    20.04.2006
    Beiträge
    72
    Beitragswertungen
    0 Beitragspunkte
    Das weiß ich. Ohne News-Mod habe ich diese Funktion schon genutzt.

    In dem alten Thread steht auch die Lösung: www.ilch.de/forum-showposts-10434.html

    Ich weiß nur nich wie ich in den News Extended - Mod die eingeschränkte Abfrage einbaue. Genau hier bräuchte ich Hilfe!
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.622
    Beitragswertungen
    1192 Beitragspunkte
    In der DB Abfrage WHERE news_kat = 'XYZ' AND news_kat = '123' einbinden!
    rules :: doku :: faq :: linkus
    1 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    Tim76 Mitglied
    Registriert seit
    20.04.2006
    Beiträge
    72
    Beitragswertungen
    0 Beitragspunkte
    Das hat nich funktioniert.

    Hab in der news.php folgendes gefunden:

    		//Kategorie einschränken
    		if ($menu->get(1) != '' and ($menu->getA(1) != 'p' or $menu->getE(1) == 0)) {
    			$kats = $katssql = array();  #collect given kats
    			$i = 1;
    			while($kat = escape($menu->get($i), 'string')){
    				$kats[] = $kat;
    				$katssql[] = '"' . $kat . '"';
    				$i++;
    			}
    			$news_kat = 'news_kat IN ('.implode(',', $katssql).') AND';
    			$katmpl = '-'.implode('-', $kats);
    			$page = $menu->getE('p');
    			if ($page < 1) {
    				$page = 1;
    			}
    			$katmpl = str_replace('-p'.$page, '', $katmpl);
    		} else {
    			$news_kat = $katmpl = '';
    			$page = ($menu->getA(1) == 'p' ? $menu->getE(1) : 1);
    		}


    Kann man das hier ändern?

    Mein Test war der folgende:

        WHERE news_kat = 'kat1' AND news_kat = 'kat2' (a.news_recht | 1) = a.news_recht 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";
    0 Mitglieder finden den Beitrag gut.
  11. #11
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.622
    Beitragswertungen
    1192 Beitragspunkte
    Den obrigen Code wirst Du wahrscheinlich garnicht mehr brauchen!

    In der DB Abfrage für die news.htm (weiter unten) taucht $news_kat auf, dieses kannst Du vorher oder direkt definieren:

    $news_kat = 'news_kat IN ('kat1', 'kat2') AND';

    PS.: $MPL nicht vergessen anzupassen!
    rules :: doku :: faq :: linkus
    1 Mitglieder finden den Beitrag gut.
  12. #12
    User Pic
    Tim76 Mitglied
    Registriert seit
    20.04.2006
    Beiträge
    72
    Beitragswertungen
    0 Beitragspunkte
    Danke für die Antwort!

    Habe das ganze in die news.php eingefügt. Funktioniert leider immer noch nicht!

    ZitatZitat geschrieben von Lord|Schirmer


    PS.: $MPL nicht vergessen anzupassen!



    Was muss ich denn hier machen?

    Hier der entsprechende Code:

    $MPL = db_make_sites ($page , "WHERE (((" . pow(2, abs($_SESSION['authright'])) . " | news_recht) = news_recht) OR
                (news_groups != 0 AND ((news_groups ^ $groups) != (news_groups | $groups)))) AND $news_kat `show` > 0 AND `show` <= UNIX_TIMESTAMP() AND news_id != $tn_id AND archiv != 1 AND (endtime IS NULL OR endtime > UNIX_TIMESTAMP())" , $limit , '?news'.$katmpl , 'news');
    		// Normale News
    		$tpl = new tpl ('news/news.htm');
            $news_kat = 'news_kat IN ('KAT1', 'KAT2') AND'; 
    		$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 (((" . pow(2, abs($_SESSION['authright'])) . " | a.news_recht) = a.news_recht) OR
              (a.news_groups != 0 AND ((a.news_groups ^ $groups) != (a.news_groups | $groups)))) AND $news_kat
            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;



    Zuletzt modifiziert von Tim76 am 21.09.2011 - 10:56:53
    0 Mitglieder finden den Beitrag gut.
  13. #13
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Eigentlich nichts weiter, da dort die gleiche Einschränkung der Kategorie über $news_kat gemacht wird, du müsstest nur den Link anpassen, sprich '?news'.$katmpl müsste zu '?newsa' z.B. wenn du deine neue news.php newsa.php genannt hast.

    Weiter bringt und ein 'Funktioniert leider noch nicht', ohne nähere Angaben und ggf. den von dir geänderten Code nicht weiter.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  14. #14
    User Pic
    Tim76 Mitglied
    Registriert seit
    20.04.2006
    Beiträge
    72
    Beitragswertungen
    0 Beitragspunkte
    Hab die Änderung in der MPL vorgenommen. Kein Erfolg! Es werden immer noch alle Kategorien ausgegeben.

    Hier mein Code von der newsbeta.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()) {
    		$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();
    $xajax->configureMany(array('decodeUTF8Input' => true ,'characterEncoding' => 'ISO-8859-1', 'requestURI' => 'admin.php?news-ajax'));
    $xajax->register(XAJAX_FUNCTION, '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 | 1) = a.news_recht 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'])), 1);
    		while ($row = db_fetch_assoc($erg)) {
    			if ($feed_type == 'atom') {
    				$Z = (date('Z') > 0 ? '+' : '') . date('H:i:s', date('Z') + 23 * 3600);
    				$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['NpR'] * ($allgAr['NRlimit'] -1)) +1;
    		$page = ($menu->getA(1) == 'p' ? $menu->getE(1) : 1);
    
    		// 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, news_kat, news_recht, news_groups, 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);
    
    			$dontShow = false;
    			if ((pow(2, abs($_SESSION['authright'])) | $tn_r->news_recht) != $tn_r->news_recht) {
    				$dontShow = true;
    			}
    			if ($dontShow) {
    				foreach($_SESSION['authgrp'] as $id => $bool) {
    					if ($bool and (pow(2, abs($id)) | $tn_r->news_groups) == $tn_r->news_groups) {
    						$dontShow = false;
    						break;
    					}
    				}
    			}
    			if (!$dontShow) {
    				$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?news-' . $tn_id . '">' . db_count_query("SELECT COUNT(id) FROM prefix_koms WHERE uid = $tn_id AND cat = 'NEWS'") . ' ' . $lang['comments'] . ' </a>' : '');
    				if (strpos ($tn_r->news_text , '[PREVIEWENDE]') !== false) {
    					$a = explode('[PREVIEWENDE]' , $tn_r->news_text);
    					$tn_r->news_text = $a[0];
    					$tn_tpl->set('readwholenews', '<a href="index.php?news-' . $tn_id . '" alt="mehr lesen" title="mehr lesen"><img src="include/images/icons/news/more.gif" alt="mehr lesen" border="0"></a>');
    				} else {
    					$tn_tpl->set('readwholenews', '');
    				}
    				$tn_tpl->set('kate', news_find_kat($tn_r->news_kat));
    				$tn_tpl->set_out('txt', $tn_r->html ? $tn_r->news_text : bbcode($tn_r->news_text), 0);
    				unset($tn_tpl);
    			}
    		}
    
    		//Kategorie einschränken
    		if ($menu->get(1) != '' and ($menu->getA(1) != 'p' or $menu->getE(1) == 0)) {
    			$kats = $katssql = array();  #collect given kats
    			$i = 1;
    			while($kat = escape($menu->get($i), 'string')){
    				$kats[] = $kat;
    				$katssql[] = '"' . $kat . '"';
    				$i++;
    			}
    			$news_kat = 'news_kat IN ('.implode(',', $katssql).') AND';
    			$katmpl = '-'.implode('-', $kats);
    			$page = $menu->getE('p');
    			if ($page < 1) {
    				$page = 1;
    			}
    			$katmpl = str_replace('-p'.$page, '', $katmpl);
    		} else {
    			$news_kat = $katmpl = '';
    			$page = ($menu->getA(1) == 'p' ? $menu->getE(1) : 1);
    		}
    
    		$anfang = ($page - 1) * $limit;
    		//Gruppenrechte
    		$groups = getGroupRights();
    
    		$MPL = db_make_sites ($page , "WHERE (((" . pow(2, abs($_SESSION['authright'])) . " | news_recht) = news_recht) OR
                (news_groups != 0 AND ((news_groups ^ $groups) != (news_groups | $groups)))) AND $news_kat `show` > 0 AND `show` <= UNIX_TIMESTAMP() AND news_id != $tn_id AND archiv != 1 AND (endtime IS NULL OR endtime > UNIX_TIMESTAMP())" , $limit , '?newsbeta'.$katmpl , 'news');
    		// Normale News
    		$tpl = new tpl ('news/news.htm');
            $news_kat = 'news_kat IN ('kategorie2', 'kategorie1') AND'; 
    		$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 (((" . pow(2, abs($_SESSION['authright'])) . " | a.news_recht) = a.news_recht) OR
              (a.news_groups != 0 AND ((a.news_groups ^ $groups) != (a.news_groups | $groups)))) AND $news_kat
            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);
    		if (db_num_rows($erg) == 0 and !empty($news_kat)) {
    			echo 'Keine News in dieser Kategorie gefunden.<br />
                    <a href="index.php?news">News&uuml;bersichtsseite aufrufen</a>';
    			$design->footer(1);
    		}
    		//NewsMod (nsbs) by finke; http://www.dragondesigns.de/
    		$ar = array();
    		$ar['cols'] = '';
    		for($i = 0; $i < $allgAr['NpR'];$i++){
    			$ar['cols'] .= "<col width=\"*\" />\n";
    		}
    		$ar['colspan'] = 'colspan="'.$allgAr['NpR'].'"';
    		$tpl->set_ar_out($ar, 0);
    		$i = 0;
    		for($i = 0;$row = db_fetch_assoc($erg);$i++){
    			$row['td'] = '';
    			if($i != 0){
    				if(($i%$allgAr['NpR']) != 0 || $allgAr['NpR'] == 1 ){
    					$row['td'] = "</td></tr>\n<tr><td style=\"vertical-align:top;\">";
    				}else{
    					$row['td'] = '</td><td style="vertical-align:top;">';
    				}
    			}
    
    			 
    			$k0m = db_query("SELECT COUNT(ID) FROM `prefix_koms` WHERE uid = " . $row['id'] . " AND cat = 'NEWS'");
    			$row['kom'] = db_result($k0m, 0);
    $row['title'] = substr($row['title'],0,40).' ';
    			$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?news-' . $row['id'] . '" alt="mehr lesen" title="mehr lesen"><img src="include/images/icons/news/more.gif" alt="mehr lesen" border="0"></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, 1);
    		}
    		$tpl->set_out('SITELINK', $MPL, 2);
    		unset($tpl);
    	}
    } else {
    	$design->header();
    	$xajax->printJavascript();
    
    	$nid = escape($menu->get(1), 'integer');
    	$erg = db_query("SELECT * FROM `prefix_news` WHERE `show` > 0 AND `show` <= UNIX_TIMESTAMP() AND news_id = '" . $nid . "'");
    	if (db_num_rows($erg) == 0) {
    		$dontShow = true;
    	} else {
    		$dontShow = false;
    		$row = db_fetch_object($erg);
    		if ((pow(2, abs($_SESSION['authright'])) | $row->news_recht) != $row->news_recht) {
    			$dontShow = true;
    		}
    		if ($dontShow) {
    			foreach($_SESSION['authgrp'] as $id => $bool) {
    				if ($bool and (pow(2, abs($id)) | $row->news_groups) == $row->news_groups) {
    					$dontShow = false;
    					break;
    				}
    			}
    		}
    	}
    
    	if ($dontShow) {
    		echo 'News existiert nicht oder Sie haben keine Rechte sie zu sehen.  <a href="javascript:history.back();">zur&uuml;ck</a>';
    		$design->footer(1);
    	}
    
    	$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, 3);
    
    	if ($komsOK) {
    		$tpl->set_ar_out (array ('NAME' => $row->news_title , 'NID' => $nid, 'style' => loggedin() ? 'style="display:none;"' : ''), 4);
    	}
    	$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) , 5);
    			$zahl--;
    		}
    	}
    	$tpl->out(6);
    }
    
    $design->footer();
    ?>
    0 Mitglieder finden den Beitrag gut.
  15. #15
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Also du kannst den kompletten Bereich von 156 - 175 entfernen und durch das was du in Zeile 185 eingefügt hast ersetzen, somit ist es auch vor der Generierung der MPL, du hast allerdings ein Fehler mit den Anführungszeichen gemacht. Nutze innerhalb der () um die Namen der Kategorien " (also doppelte Anführungszeichen).

    In Zeile 182 kannst du $katmpl entfernen bzw. solltest du das tun.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  16. #16
    User Pic
    Tim76 Mitglied
    Registriert seit
    20.04.2006
    Beiträge
    72
    Beitragswertungen
    0 Beitragspunkte
    //Kategorien eingeben
    		 $news_kat = 'news_kat IN ("Kat1", "Kat2") AND'; 
    
    		$anfang = ($page - 1) * $limit;
    		//Gruppenrechte
    		$groups = getGroupRights();
    
    		$MPL = db_make_sites ($page , "WHERE (((" . pow(2, abs($_SESSION['authright'])) . " | news_recht) = news_recht) OR
                (news_groups != 0 AND ((news_groups ^ $groups) != (news_groups | $groups)))) AND $news_kat `show` > 0 AND `show` <= UNIX_TIMESTAMP() AND news_id != $tn_id AND archiv != 1 AND (endtime IS NULL OR endtime > UNIX_TIMESTAMP())" , $limit , '?newsbeta', 'news');
    		// Normale News
    		$tpl = new tpl ('news/newsbeta.htm');


    So sieht das jetzt bei mir aus. Leider werden immer noch alle Kategorien angezeigt.

    Ist vielleicht folgendes möglich:
    Der News-Mod erstell ja folgenden Ordner "contents/news/". In diesem Ordner liegt die news.php. Diese habe ich dupliziert und in newsbeta.php geändert. Im Ordner contents liegt aber noch eine news.php. Diese habe ich auch dupliziert und in newsbeta.php umbenannt.

    Kann es sein, dass diese newsbeta.php auf die normale news.php im Ordner "contents/news/" weiterleitet.

    Hier ist der Code zu der zweiten newsbeta.php:

    <?php
    
    defined ('main') or die ( 'no direct access' );
    
    function getGroupRights(){
    	$ret = 0;
    	foreach ($_SESSION['authgrp'] as $id => $bool){
    		$ret = $ret | pow(2, $id);
    	}
    	return $ret;
    }
    
    switch($menu->get(1)) {
      	default :            $userDatei = 'news';           break;
    	case 'archiv'      : $userDatei = 'archiv';         break;
    	case 'print'       : $userDatei = 'print';          break;
    	case 'send'        : $userDatei = 'send';	        break;
    	case 'add'         : $userDatei = 'add';	        break;
    }
    
     require_once('include/contents/news/'.$userDatei.'.php');
    
    ?>
    0 Mitglieder finden den Beitrag gut.
  17. #17
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Richtig, du müsstest also im contents/news Ordner die weiteren Kopien der news.php aus diesem Ordner erstellen und dann die contents/news.php anpassen.

    switch($menu->get(1)) {
        default :            $userDatei = 'news';           break;
        case 'beta'        : $userDatei = 'newsbeta';       break;
        case 'archiv'      : $userDatei = 'archiv';         break;
        case 'print'       : $userDatei = 'print';          break;
        case 'send'        : $userDatei = 'send';           break;
        case 'add'         : $userDatei = 'add';            break;
    }


    Dies würde dafür sorgen, dass du mit dem Aufruf von index.php?news-beta
    intern deine erstellte contents/news/newsbeta.php aufgerufen wird, wo die Beschränkungen der Kategorie enthalten sein sollten.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  18. #18
    User Pic
    Tim76 Mitglied
    Registriert seit
    20.04.2006
    Beiträge
    72
    Beitragswertungen
    0 Beitragspunkte
    Das war der springende Punkt!

    Funktioniert alles bestens. lächeln Vielen Dank für deine Geduld und Mühe!
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Allgemein

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten