Doch, angesehen hab' ich mir das Bild-Modul schon. Doch vielleicht hab' ich etwas übersehen.
Vielleicht kannst Du mir helfen?
Ich möchte eine Möglichkeit haben, eine kleine Linkliste in meine Seite einzubauen, die der Redakteur möglichst einfach pflegen kann. Diese Liste sollte auf allen Seiten gleich sein, bekannt ist das Ganze auf Portalseiten und heißt dann "Quicklinks", "Spotlight" oder so ähnlich. Erschwerend kommt dazu, dass ich das Ganze dreimal auf jeder Seite brauche.
Ich denke, das ist am einfachsten zu realisieren, wenn ich jeweils eine eigene Kategorie anlege, und auf dem Startartikel die gewünschten Links aufliste. Ein Modul liest dann den Kategoriennamen und die Links aus.
Zu diesem Zweck habe ich mir ein Modul gebastelt, das 20 CMS_LINK-Verweise enthält (um die Eingabe der Links zu erleichtern). Dieses Modul plaziere ich dann auf der Startseite der jeweiligen Kategorie.
Im Output dieses Moduls steht dann folgender Code:
Code: Alles auswählen
<?php
echo "
<a href=\"CMS_LINK[1]\" target=\"CMS_LINKTARGET[1]\">CMS_LINKDESCR[1]</a><br /><br />
<a href=\"CMS_LINK[2]\" target=\"CMS_LINKTARGET[2]\">CMS_LINKDESCR[2]</a><br /><br />
<a href=\"CMS_LINK[3]\" target=\"CMS_LINKTARGET[3]\">CMS_LINKDESCR[3]</a><br /><br />
<a href=\"CMS_LINK[4]\" target=\"CMS_LINKTARGET[4]\">CMS_LINKDESCR[4]</a><br /><br />
<a href=\"CMS_LINK[5]\" target=\"CMS_LINKTARGET[5]\">CMS_LINKDESCR[5]</a><br /><br />
<a href=\"CMS_LINK[6]\" target=\"CMS_LINKTARGET[6]\">CMS_LINKDESCR[6]</a><br /><br />
<a href=\"CMS_LINK[7]\" target=\"CMS_LINKTARGET[7]\">CMS_LINKDESCR[7]</a><br /><br />
<a href=\"CMS_LINK[8]\" target=\"CMS_LINKTARGET[8]\">CMS_LINKDESCR[8]</a><br /><br />
<a href=\"CMS_LINK[9]\" target=\"CMS_LINKTARGET[9]\">CMS_LINKDESCR[9]</a><br /><br />
<a href=\"CMS_LINK[10]\" target=\"CMS_LINKTARGET[10]\">CMS_LINKDESCR[10]</a><br /><br />
<a href=\"CMS_LINK[11]\" target=\"CMS_LINKTARGET[11]\">CMS_LINKDESCR[11]</a><br /><br />
<a href=\"CMS_LINK[12]\" target=\"CMS_LINKTARGET[12]\">CMS_LINKDESCR[12]</a><br /><br />
<a href=\"CMS_LINK[13]\" target=\"CMS_LINKTARGET[13]\">CMS_LINKDESCR[13]</a><br /><br />
<a href=\"CMS_LINK[14]\" target=\"CMS_LINKTARGET[14]\">CMS_LINKDESCR[14]</a><br /><br />
<a href=\"CMS_LINK[15]\" target=\"CMS_LINKTARGET[15]\">CMS_LINKDESCR[15]</a><br /><br />
<a href=\"CMS_LINK[16]\" target=\"CMS_LINKTARGET[16]\">CMS_LINKDESCR[16]</a><br /><br />
<a href=\"CMS_LINK[17]\" target=\"CMS_LINKTARGET[17]\">CMS_LINKDESCR[17]</a><br /><br />
<a href=\"CMS_LINK[18]\" target=\"CMS_LINKTARGET[18]\">CMS_LINKDESCR[18]</a><br /><br />
<a href=\"CMS_LINK[19]\" target=\"CMS_LINKTARGET[19]\">CMS_LINKDESCR[19]</a><br /><br />
<a href=\"CMS_LINK[20]\" target=\"CMS_LINKTARGET[20]\">CMS_LINKDESCR[20]</a>
";
?>
Das Modul, das den Kategorienamen und die Links ausliest, schaut folgendermaßen aus:
INPUT:
Code: Alles auswählen
// selected category
$selected1 = "CMS_VALUE[1]";
echo "<table cellspacing=\"0\" cellpadding=\"10\" border=\"0\">
<tr valign=\"top\">
<td class=\"text_medium\">Kategorie wählen:</td>
<td>
<select name=\"CMS_VAR[1]\">";
if($selected1!="0" && $selected1!=""){
echo"<option value=\"1\">--- kein ---</option>";
}else{
echo"<option selected=\"selected\" value=\"1\">--- 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 ($selected1 == $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>
</table>";
OUTPUT:
Code: Alles auswählen
<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* REFERENZ MODUL / ARTIKELLISTE
*
* Erstellt eine Liste mit den Links des Startartikel einer Kategorie
*
* Author : Jan Lengowski
* Copyright : four for business AG
* Created : 15-08-2002
* Modified : 16-08-2002
* Modified : 26-02-2005 by Mathias Rauh
************************************************/
// db class instance
$db = new DB_Contenido;
// selected category
$selcat1 = "CMS_VALUE[1]";
if($selcat1!="0" && $selcat1!="") {
// select category name
$sql = "SELECT A.idcat, C.name
FROM
".$cfg["tab"]["cat_tree"]." AS A,
".$cfg["tab"]["cat"]." AS B,
".$cfg["tab"]["cat_lang"]." AS C
WHERE
A.idcat = '".$selcat1."' AND
A.idcat = B.idcat AND
B.idcat = C.idcat AND
C.idlang = '".$lang."' AND
B.idclient = '".$client."' AND
C.visible = 1 AND
A.level = '0'
ORDER BY
A.idtree";
$db->query($sql);
while ( $db->next_record() ) {
$kategoriename1 = $db->f("name");
} // end while
// select all articles in category
$query = "SELECT ARTLANG.idart, ARTLANG.idartlang FROM ".$cfg["tab"]["cat_art"]." AS CATART, ".
$cfg["tab"]["art_lang"]." AS ARTLANG ".
"WHERE CATART.idcat = '$selcat1' AND ARTLANG.idart = CATART.idart AND ARTLANG.idlang = '$lang' AND ".
"ARTLANG.online = '1' ORDER BY CATART.idart DESC";
// execute query
$db->query($query);
$db->next_record();
$value = $db->f("idartlang");
$artikelNr = $db->f("idart");
$meinArtikel = new Article($artikelNr, $client, $lang);
$alleLinks = $meinArtikel->getContent("link");
$alleLinksTarget = $meinArtikel->getContent("linktarget");
$alleLinksDescr = $meinArtikel->getContent("linkdescr");
$num = count($alleLinksDescr);
echo "<h4>".$kategoriename1."</h4>";
$i = 1;
while ($alleLinksDescr[$i]) {
echo "<p><a href=\"".$alleLinks[$i]."\" target=\"".$alleLinksTarget[$i]."\">".$alleLinksDescr[$i]."</a></p>";
$i++;
} // end while
} // end if
unset($kategoriename1);
unset($meinArtikel);
unset($alleLinks);
unset($alleLinksTarget);
unset($alleLinksDescr);
unset($num);
?>
Das Ganze funkioniert wunderbar, auch wenn das Modul dreimal eingebaut wird, allerdings werden die internen Links nur als idcatart ausgegeben.
Was ist da falsch?