Artikelliste von D.Wagner für Contenido 4.3

Gesperrt
kreuzhofer
Beiträge: 4
Registriert: Do 31. Jul 2003, 09:57
Kontaktdaten:

Artikelliste von D.Wagner für Contenido 4.3

Beitrag von kreuzhofer » Mi 6. Aug 2003, 15:20

Hallo Freunde,

ich habe das Artikellisten-Modul von Detlev auf Contenido 4.3 portiert. Viel Spaß damit!

Grüße

Daniel

Code: Alles auswählen

/***********************************************
* CONTENIDO MODUL - INPUT
*
* Modulname   :     News-Liste rechts
* Author(s)   :     4fb - Jan Lengowski, Jose Rodriguez, Detlev Wagner
* Copyright   :     Contenido - four for business, Jose Rodriguez
* Created     :     15-08-2002
* Modified    :     21-09-2002
* Converted to Contenido 4.3.2.1b by D. Kreuzhofer 06.08.2003 */

// selected category
$selected = "CMS_VALUE[0]";

echo 	"<table>
	<tr valign=\"top\">
	<td width=\"202\">News-Spalte zeigen?</td>
	<td><select name=\"CMS_VAR[2]\" size=\"1\">";
if ("CMS_VALUE[2]" == "") 
{
	echo "<option selected>Ja</option>";
	echo "<option>Nein</option>";
}
if ("CMS_VALUE[2]" != "") 
{
	echo "<option selected>CMS_VALUE[2]</option>";
	echo "<option>Ja</option>";
	echo "<option>Nein</option>";
}

echo 	"</SELECT></td>
	</tr>
        <tr valign=\"top\">
	<td>Kategorie wählen:</td>
	<td>
	<select name=\"CMS_VAR[0]\">";
	if($selected!="0" && $selected!="")
	{
		echo"<option value=\"0\">--- kein ---</option>";
	}
	else
	{
		echo"<option selected=\"selected\" value=\"0\">--- kein ---</option>";
	}

	// fetch all categorys
	$query = "SELECT A.idcat, A.level, C.name FROM ".$cfg["tab"]["cat_tree"]." AS A, ".
	     $cfg["tab"]["cat"]." AS B,  ".$cfg["tab"]["cat_lang"]." AS C WHERE A.idcat=B.idcat ".
	     "AND B.idcat=C.idcat AND C.idlang='$lang' AND B.idclient='$client' ".
	     "AND C.visible=1 ORDER BY A.idtree";

	// execute query
	$db->query($query);
	
	// loop result and build the options
	while ($db->next_record()) 
	{
		// indent spacer
		$spaces = "|";
		
		// how many levels
		$levels = $db->f("level");
		
		for ($i = 0; $i < $levels; $i ++) 
		{
			// add 2 spaces for every level
			$spaces = $spaces . "--";
		} // end for
		
		$spaces .= ">";
		
		if ($selected == $db->f("idcat")) 
		{
			// selected category
			echo "<option selected=\"selected\" value=\"". $db->f("idcat") ."\">". $spaces . $db->f("name") ."</option>";
		} 
		else 
		{
			// category
			echo "<option value=\"". $db->f("idcat") ."\">". $spaces . $db->f("name") ."</option>";
		} // end if
	} // end while

echo 	"</select>";
echo 	"</td>
         </tr>
         <tr>
         <td>Anzahl Artikel:</td>";
if("CMS_VALUE[1]"!=0)
{
	echo"<td><input type=\"text\" name=\"CMS_VAR[1]\" value=\"CMS_VALUE[1]\"></td>";
}
else
{
	echo"<td><input type=\"text\" name=\"CMS_VAR[1]\" value=\"5\"></td>";
}
echo	"</tr>
         <tr>
         <td>Untertitel (Anzahl Zeichen)</td>"; 
if("CMS_VALUE[3]"!=0)
{
	echo"<td><input type=\"text\" name=\"CMS_VAR[3]\" value=\"CMS_VALUE[3]\"></td>";
}
else
{
	echo"<td><input type=\"text\" name=\"CMS_VAR[3]\" value=\"100\"></td>";
}
echo	"</tr>
	</table>"; 

// End of INPUT Module


<?
//////////////////////////////////////////////////////////
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname   :     Artikelliste
* Author(s)   :     4fb - Jan Lengowski, Jose Rodriguez
* Copyright   :     Contenido - four for business, Jose Rodriguez
* Created     :     15-08-2002
* Modified    :     21-09-2002
* Converted for Contenido 4.3.2.1b by Daniel Kreuzhofer 06.08.2003 */


if("CMS_VALUE[2]"!="Nein")
{      //start Abfrage Modul ja oder nein
	
	// second db class instance
	//$db2 = new DB_Contenido;
	
	// selected category
	$selcat = "CMS_VALUE[0]";
	
	// anzahl articles
	$showart= "CMS_VALUE[1]";
	
	// anzahl der zeichen h1
	$mxh = "CMS_VALUE[3]";
	
	
	// select all articles in category widthout start article
	$query = "SELECT ARTLANG.idart, ARTLANG.idartlang FROM ".$cfg["tab"]["cat_art"]." AS CATART, ".
	          $cfg["tab"]["art_lang"]." AS ARTLANG ".
	         "WHERE CATART.idcat = '$selcat' AND ARTLANG.idart = CATART.idart AND ARTLANG.idlang = '$lang' AND ".
	         "ARTLANG.online = '1' ORDER BY CATART.idart DESC";
	
	// execute query
	$db->query($query);
	
	unset($articleID);
	unset($linkID);
	
	// any news?
	$newscounter = $db->num_rows($db);
	if ($newscounter > 0)
	{
		
		// session register des Startwertes für die Wiederkehr
		// die Variable start_news ist ein Array,
		// bei dem als Nummer des Arrayfeldes der
		// jeweilige Nav-Start Wert aus der Linkleiste gilt
		
		$sess->register("startwert_news");
		
		//wenn per link ($startwert_url) ein Startwert kommt
		if(isset($startwert_url))
		      $startwert_news[$nav_start]=$startwert_url;
		//wenn weniger Artikel da sind, als gezeigt werden sollen
		if ($startwert_news[$nav_start]<$showart)
		      $startwert_news[$nav_start]=0;
		
		// start html-output
		echo "<table width=\"100%\" cellspacing=\"0\" cellpadding=\"0\" 
		border=\"0\">
		       <tr valign=\"middle\" bgcolor=\"#000099\">
		        <td class=\"font\" align=\"right\" valign=\"top\" colspan=\"2\"> 
		<img src=\"".$root."/pages/grafiken/leer.gif\" width=\"1\" height=\"5\" 
		alt=\"\"></td>
		       </tr>
		       <tr valign=\"middle\">
		        <td align=\"left\" class=\"font\" valign=\"top\" 
		colspan=\"2\"><b>News intern:</b> </td>
		       </tr>";
		//wenn die Weiterschaltung benötigt wird 
		if($newscounter>$showart)
		{
			$link = PHP_SELF."?client=$client&lang=$lang&idcat=$idcat&idart=$idart";
				echo"<tr><td align = \"left\" width=\"50%\" class = \"fontklein\">";
			if($startwert_news[$nav_start]>0)
			{
				$summe=$startwert_news[$nav_start] - $showart;
				if ($startwert_news[$nav_start]<$showart)
				$summe=0;
			        echo "<a href=\"".$link."&startwert_url=".$summe."\"><img 
				src=\"$root/pages/grafiken/graupfeil_links.gif\" border=\"0\"> neuere</a>";
			}
			echo" </td><td align = \"right\"  width=\"50%\" class = \"fontklein\">";
			if($startwert_news[$nav_start]<$newscounter-$showart)
			{
				$summe=$startwert_news[$nav_start]+$showart;
				echo "<a href=\"$link&startwert_url=".$summe."\">ältere <img 
				src=\"$root/pages/grafiken/graupfeil.gif\" border=\"0\"></a>";
			}
			echo" </td></tr>";
		}
		
		//Ausgabe der Variablen
		/*
		echo"
		<tr><td class=\"fontklein\" colspan=\"2\">
		counter: ".$newscounter."<br>
		limit: ".$showart."<br>
		startwert_news: ".$startwert_news[$nav_start]
		."</td></tr>";
		*/
		
		echo	"<tr valign=\"middle\" bgcolor=\"#000099\">
		        <td class=\"font\" align=\"right\" valign=\"top\" colspan=\"2\"> 
			<img src=\"".$root."/pages/grafiken/leer.gif\" width=\"1\" height=\"5\" 
			alt=\"\"></td>
		       	</tr>";
		
		// get id's of sub articles
		while ($db->next_record()) 
		{
			$articleID[] = $db->f("idartlang");
			$linkID[] = $db->f("idart");
		} // end while
		
		
		// loop through subarticles
		
		if($newscounter >= $showart+$startwert_news[$nav_start]) $i_max=$showart+$startwert_news[$nav_start];
		if($newscounter < $showart+$startwert_news[$nav_start]) $i_max=$newscounter;
		for ($i=$startwert_news[$nav_start]; $i<$i_max;$i++)
		{
			// select all CMS variables of the article
			// $query = "SELECT * FROM ".$cfg["tab"]["content"]." WHERE idartlang = '$value' ORDER BY typeid";
		
			$query = "SELECT title,summary, created FROM ".$cfg["tab"]["art_lang"]." WHERE idartlang = '$articleID[$i]'";
			// execute query
			$db->query($query);
			// link
			////  $link = $sess->url("front_content.php?client=$client&lang=$lang&idcat=$selcat&idart=$linkID[$i]&m=$m&s=$s");
			$link = $sess->url("front_content.php?client=$client&lang=$lang&idcat=$selcat&idart=$linkID[$i]");
			
			// loop through result and extraxt data
			while ($db->next_record()) 
			{
			
				// data type
				$headline = $db->f("title");
				//rausfiltern vo (intern), ( interna)
				$headline=eregi_replace("\(.?intern.?\)","",$headline);
				$created= date("d.m.y H:i",strtotime($db->f("created")));
				$summary = $db->f("summary");
				$len = strlen($summary);
				// cut summary if too long
				if ($len > $mxh ) 
				{
					$summary = substr($summary,0,$mxh);
					$summary = $summary . " ...";
				} // end if
			} // end while
			
			
			// HTML template for one element
			
			echo	" <tr>
			        <td width=\"100%\" colspan=\"2\">
			        <span class=\"font\"><b>$headline</b><br /></span>
			        <span class=\"fontklein\">($created) <br />";
			if($summary!="") echo $summary."<br>";
			echo	"</span>
			        </td>
			        </tr>
			        <tr>
			        <td align=\"right\" width=\"100%\" colspan=\"2\">
			        <a href=\"$link\" class=\"fontkleinaktiv\">lesen </a>
			        <a href=\"$link\"><img 
				src=\"$root/pages/grafiken/graupfeil_leer.gif\" border=\"0\"></a>
			        <br />
			        </td>
			        </tr>";
			
			unset($headline);
			unset($summary);
			unset($created);
		} // end foreach
		echo  "</table>";
	} // end any news?
} // end Abfrage ob Modul ja oder nein
?>

Gesperrt