<?php
//=================================================================
// KOOBI R7 - CMS - PORTALSOFTWARE(c) DREAM4(r) 
// HTTP://WWW.DREAM4.DE
//=================================================================
// ACHTUNG!
// DIESER PROGRAMMCODE IST URHERRECHTLICH GESCHUETZT
// DIE URHEBERRECHTE LIEGEN BEI DEN JEWEILIGEN AUTOREN.
// AENDERUNGEN IN DIESER DATEI ERFOLGEN AUF EIGENE GEFAHR!
// ES IST NICHT GESTATTET, DEN COPYRIGHTHINWEIS ZU AENDERN ODER ZU
// ENTFERNEN. NUR WENN SIE EINE COPYRIGHTHINWEIS-ENTFERNUNG BESTELLT
// HABEN, DUERFEN SIE DIESEN ENTFERNEN.
//================================================================
// BEI FRAGEN WENDEN SIE SICH BITTE AN: KONTAKT@DREAM4.DE
//=================================================================
class Content
{
	var $_allowed_html = '<br><br />';
	
	function getTopContent()
	{
		$Lc = $_SESSION['Langcode'];
		
		$contentitems = array();
		$sql = $GLOBALS['db']->Query("SELECT 
			Id,
			Datum,
			Sektion,
			Titel{$Lc} as Titel,
			Titel1 as DefTitel,
			Inhalt{$Lc} as Inhalt,
			Inhalt1 as DefInhalt,
			Bild1 as Bild,
			Topcontent_Bild_{$Lc} as TopcontentBild,
			BildAusrichtung 
		FROM " . PREFIX . "_content WHERE Sektion='" . AREA . "' AND Topcontent='1' AND Kennwort='' ORDER BY Id DESC LIMIT 10");
		while($row = $sql->fetcharray())
		{
			$row['Inhalt']  = ($row['Inhalt']=='') ? $row['DefInhalt'] : $row['Inhalt'];
			$row['Inhalt'] = eregi_replace("\[SCREEN:([a-zA-Z0-9\\\/\_\.\]*)\]", "", $row['Inhalt']);
			$row['Inhalt'] = eregi_replace("\[--NEU--\]", "", $row['Inhalt']);
			$row['Inhalt'] = strip_tags($row['Inhalt'],$this->_allowed_html);
			array_push($contentitems,$row);
		}
		$GLOBALS['tmpl']->assign('contentitems', $contentitems);
	}
	
	//=================================================================
	// GetContent
	// Gibt eine Content-Seite durch  {getContent id=xxx} aus 
	//=================================================================
	function getContent($id=0)
	{
		$Lc = $_SESSION['Langcode'];
		
		$contentitems = array();
		$cex = $GLOBALS['db']->ArrQuery("SELECT 
			Id,
			Datum,
			Sektion,
			Titel{$Lc} as Titel,
			Titel1 as DefTitel,
			Inhalt{$Lc} as Inhalt,
			Inhalt1 as DefInhalt,
			Bild1 as Bild,
			Topcontent_Bild_{$Lc} as TopcontentBild,
			BildAusrichtung 
		FROM " . PREFIX . "_content WHERE Sektion='" . AREA . "' AND Kennwort='' AND Id='".$id."'");
		$GLOBALS['tmpl']->assign('content_ex_res', $cex);
		$out = $GLOBALS['tmpl']->fetch($GLOBALS['config']['source'] . '/content/getcontent.tpl');
		echo $out;
	}
	
	//=================================================================
	// Verwandte Dokumente
	//=================================================================
	function includedContent($tags,$newsid=0)
	{
		
		$Lc = $_SESSION['Langcode'];
		$tags = explode(',', $tags);
		$found_content = array();
		
		$tags = array_unique($tags);
		$where_not = ($newsid!=0) ? "AND Id != '$newsid'" : "";
		$where_gro = ($_SESSION['user_group']==1) ? "" : "Gruppen='' AND ";
		
		if($tags!='')
		{
			foreach($tags as $tag=>$word)
			{
				$row = '';
				if($word!='')
				{
					$res_q = $GLOBALS['db']->Query("
					SELECT 
						Id,
						Bild{$Lc} as Bild,
						Titel{$Lc} as Titel,
						Inhalt{$Lc} as Inhalt,
						Titel1 as DefTitel 
					FROM " . PREFIX . "_content WHERE {$where_gro} Sektion='" . AREA . "' AND Aktiv='1' AND (Tags LIKE '%$word%') {$where_not} ORDER BY Datum DESC LIMIT 15
					");
					
					while($row = $res_q->fetcharray())
					{
						$row['Titel'] = ($row['Titel']=='') ? $row['DefTitel'] : $row['Titel'];
						$row['Inhalt'] = eregi_replace("\[SCREEN:([a-zA-Z0-9\\\/\_\.\]*)\]", "", $row['Inhalt']);
						$row['User'] = getUsername($row['Autor']);
						if(!in_array($row,$found_content)) array_push($found_content, $row);
						
					}
				}
			}
			$GLOBALS['tmpl']->assign('externContent',$found_content);
			return $GLOBALS['tmpl']->fetch($GLOBALS['config']['source'] . '/content/content_extern.tpl');
		}
	}
	
	//=================================================================
	// Seite anzeigen
	//=================================================================
	function diplayContent($id='')
	{
		$Lc = $_SESSION['Langcode'];
		$row = $GLOBALS['db']->ArrQuery("SELECT 
			*,
			Bild{$Lc} as Bild,
			Titel{$Lc} as Titel,
			Inhalt{$Lc} as Inhalt,
			Titel1 as DefTitel,
			Inhalt1 as DefInhalt 
		FROM " . PREFIX . "_content WHERE Sektion='" . AREA . "' AND Id='{$id}' AND Aktiv='1'");
		
		
		if(is_array($row))
		{
			$allowed_groups = @explode(',', $row['Gruppen']);
			if($row['Gruppen']!='' && !in_array($_SESSION['user_group'], $allowed_groups) && $_SESSION['user_group']!=1) 
			{
				$GLOBALS['tmpl']->assign('pagetitle', $GLOBALS['config_vars']['Error']);
				$GLOBALS['tmpl']->assign('pagetitle_html', $GLOBALS['config_vars']['Error']);
				$GLOBALS['tmpl']->assign('content', $GLOBALS['tmpl']->fetch($GLOBALS['config']['source'] . '/content/showcontent_noperm.tpl'));
			} else {
				//=================================================================
				// Hits ggf. erhoehen
				//=================================================================
				if(@$_SESSION["content_read_$id"] != 1)
				{
					$GLOBALS['db']->Query("UPDATE " . PREFIX . "_content SET Hits=Hits+1 WHERE Id='{$id}'");
					$_SESSION["content_read_$id"] = 1;
				}
				
				//=================================================================
				// Ist Dokument kennwortgeschuetzt?
				//=================================================================
				if(isset($_POST['Content_Kennwort_' . $row['Id']]) && $_POST['Content_Kennwort_' . $row['Id']] == $row['Kennwort'])
				{
					$_SESSION['Content_Kennwort_' . $row['Id']] = $row['Kennwort'];
				}
				
				// Login?
				if($row['Kennwort']!='' && (@$_SESSION['Content_Kennwort_' . $row['Id']] != $row['Kennwort']))
				{
					$GLOBALS['tmpl']->assign('res', $row);
					$GLOBALS['tmpl']->assign('content', $GLOBALS['tmpl']->fetch($GLOBALS['config']['source'] . '/content/showcontent_login.tpl'));
					
				} else {
					$row['Titel'] = ($row['Titel']=='') ? $row['DefTitel'] : $row['Titel'];
					$row['Inhalt']  = ($row['Inhalt']=='') ? $row['DefInhalt'] : $row['Inhalt'];
					$row['Inhalt'] = (!empty($row['Textbilder' . $Lc])) ? inlinescreens($row['Textbilder' . $Lc], $row['Inhalt']) : $row['Inhalt'];
					$row['Inhalt'] = inlineContactform($row['Inhalt']);
					$row['Inhalt'] = cleanEmptyTags($row['Inhalt']);
					$row['Inhalt'] = autowords($row['Inhalt']);
					
					
					//=================================================================
					// Interne Seiten
					//=================================================================
					$_REQUEST['artpage'] = (isset($_REQUEST['artpage']) && $_REQUEST['artpage'] != '' && $_REQUEST['artpage'] >= 1) ? cleanInt($_REQUEST['artpage']) : 1;
					$seite_anzeigen = explode("[--NEU--]", $row['Inhalt']);
					$anzahl_seiten = count($seite_anzeigen);
					
					if($_REQUEST['artpage'] > $anzahl_seiten)
					{
						$_REQUEST['artpage'] = $anzahl_seiten;
						$row['Inhalt'] = $seite_anzeigen[$anzahl_seiten-1];
					} else {
						$row['Inhalt'] = $seite_anzeigen[@$_REQUEST['artpage']-1];
					}
					
					//=================================================================
					// Eventuelle News verknuepfen
					//=================================================================
					if($row['Tags']!=''  && get_active('News'))
					{
						$news = new News;
						$GLOBALS['tmpl']->assign('IncludedNews', $news->includedNews($row['Tags']));
					}
					
					//=================================================================
					// Moegliche Artikel verknuepfen
					//=================================================================
					if(file_exists(BASE_DIR . '/class/Class.Gaming.php') && get_active('articles'))
					{
						include_once(BASE_DIR . '/class/Class.Gaming.php');
						$Gaming = new Gaming;
						$GLOBALS['tmpl']->assign('IncludedArticles', $Gaming->includedArticles($row['Tags']));
					}
						
					//=================================================================
					// Galerien enthalten?
					//=================================================================
					if($row['Galerien']!='')
					{
						if(file_exists(BASE_DIR . '/class/Class.Gallery.php') && get_active('gallery'))
						{
							include_once(BASE_DIR . '/class/Class.Gallery.php');
							$Gallery = new Gallery;
							$GLOBALS['tmpl']->assign('IncludedGalleries', $Gallery->getExtenGallery($row['Galerien']));
						}
					}
					
					//=================================================================
					// Kommentare
					//=================================================================
					if($row['Kommentare'] == 1)
					{
						$comment = new Comments;
						// Kommentar bearbeiten
						if(isset($_POST['comment_action']) && $_POST['comment_action'] == 'edit' && permission('edit_comments')) $comment->EditComment('content',$_POST['comment_id']);
						
						// Neuer Kommentar
						if(permission('comments'))
						{
							$comment->NewComment('content', @$_POST['Redir'],$row['Id']);
						}
						
						// Kommentare holen
						$Comments = $comment->GetComments('content',$row['Id'],'index.php?p=content&amp;id=' . $row['Id'] . '&amp;name=' . seotitle($row['Titel']));
						$GLOBALS['tmpl']->assign('GetComments',$GLOBALS['tmpl']->fetch($GLOBALS['config']['source'] . '/comments/comments.tpl'));
					}
					
					//=================================================================
					// Wenn mehrere Seiten vorhanden sind, Navi erzeugen
					//=================================================================
					if($anzahl_seiten>1)
					{
						$article_pages = artpage($anzahl_seiten, $_REQUEST['artpage'], " <a class=\"page_navigation\" href=\"index.php?p=content&amp;id={$id}&amp;name="  . seotitle($row['Titel']) . "&amp;area=" . AREA . "&amp;artpage={s}\">{t}</a> ");
						$GLOBALS['tmpl']->assign('article_pages', $article_pages);
					}
					
					// Wertung
					if($row['Bewertung']==1)
					{
						$row['Wertung'] = getRating($row['Id'],'content');
						$GLOBALS['tmpl']->assign('RatingUrl', 'index.php?p=rating&action=rate&id=' . $row['Id'] . '&where=content');
						$GLOBALS['tmpl']->assign('RatingForm', $GLOBALS['tmpl']->fetch($GLOBALS['config']['source'] . '/other/rating.tpl')); 
					}
					
					
					$headernav = koobispecialchars($row['Titel']);
						
					setMeta($row['Titel'],$row['Inhalt']);
					$GLOBALS['tmpl']->assign('res', $row);
					$GLOBALS['tmpl']->assign('headernav', $headernav);
					$GLOBALS['tmpl']->assign('IncludedContent', $this->includedContent($row['Tags'],$id));
					$GLOBALS['tmpl']->assign('pagetitle_html', clean_page_title($headernav, ''));
					$GLOBALS['tmpl']->assign('pagetitle', stripslashes($row['Titel']));
					$GLOBALS['tmpl']->assign('content', $GLOBALS['tmpl']->fetch($GLOBALS['config']['source'] . '/content/showcontent.tpl'));
				}
			}
		} else {
			$GLOBALS['tmpl']->assign('content', $GLOBALS['tmpl']->fetch($GLOBALS['config']['source'] . '/other/notfound.tpl'));
		}
		
	}
}
?>