Interner Link gibt nur Zahl (idcatart) aus

Gesperrt
rzwei
Beiträge: 65
Registriert: Mo 28. Feb 2005, 17:02
Wohnort: Isartal
Kontaktdaten:

Interner Link gibt nur Zahl (idcatart) aus

Beitrag von rzwei » Mo 28. Feb 2005, 17:39

Wenn ich einen CMS_LINK auf einen internen Artikel setze, bekomme ich im Frontend immer nur die idcatart (z.B. http://www.domain.de/cms/23) als Link-Adresse angezeigt.

Im Backend-Editor stimmt der Link aber (z.B. http://www.domain.de/cms/front_content.php?idcatart=23).

Was kann man dagegen machen?

Vielen Dank

Standard-Installation 4.4.5

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Mo 28. Feb 2005, 18:06

hast du dir das modul bild(1) angesehen...
dort findet sich ein beispiel wie ein link mittels CMS_LINK etc. erzeugt wird...
*** make your own tools (wishlist :: thx)

rzwei
Beiträge: 65
Registriert: Mo 28. Feb 2005, 17:02
Wohnort: Isartal
Kontaktdaten:

Beitrag von rzwei » Mo 28. Feb 2005, 21:37

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?

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Di 1. Mär 2005, 10:41

wenn du das über eine artikelliste ausliest musst du den link zuerst zusammen bauen... in der con_content wird nur der ziffern wert der idcatart gespeichert... nicht der komplette link
d.h. in deiner artikelliste musst du einen string nach dem muster
front_content.php?idcatart=XX

wobei XX für den ausgelesen link wert steht...

diesen erzeugten string gibts du dann aus...
*** make your own tools (wishlist :: thx)

rzwei
Beiträge: 65
Registriert: Mo 28. Feb 2005, 17:02
Wohnort: Isartal
Kontaktdaten:

Beitrag von rzwei » Di 1. Mär 2005, 11:15

Danke, das war, was ich gesucht habe.

Ist das Ganze eigentlich ein brauchbarer Lösungsansatz oder gibt es einfachere Wege, solche Linklisten zu erstellen?

Vielen Dank

Gesperrt