Modul Artikelnavigation

Gesperrt
baumpaul
Beiträge: 346
Registriert: Mo 1. Mär 2004, 12:59
Kontaktdaten:

Modul Artikelnavigation

Beitrag von baumpaul »

Bild
Dieses Contenido Modul ist die Perfekte Ergänzung zu Newslisten. Es lässt sich z. B. auf Newsseiten einbinden; somit kann man sich durch die Newsmeldungen klicken oder mit den DropDown-Feld eine andere Newsmeldung auswählen.

Download unter http://www.ittool.de/cms-module-artikelnavigation.html
stefkey
Beiträge: 556
Registriert: Mi 19. Okt 2005, 16:10
Wohnort: Heidelberg
Kontaktdaten:

Beitrag von stefkey »

Hi baumpaul,

2 Fragen:

1. Bleibt im DropDown nach Klick auf einen Artikel auch der gewählte Artikel stehen?
Ich meine:
Das Drop-Down zeigt Artikel 1. Nun klickt man auf das Drop-Down und es öffnet sich das Menü und man klickt auf Artikel 4. Steht dann im Drop-Down auch Artikel 4 oder wird immer ein Default angezeigt, zB "Bitte wählen Sie"


2. Aus dem Drop-Down dann eine Liste zu machen, dürfte ja noch so kompliziert sein. Ich hab allerdings nicht so viele PHP Kenntnisse. Ist es wirklich kein Problem? Und kannst du mir vielleicht helfen falls ich es nicht alleine hinbekomme?


Grüße,
stefkey
baumpaul
Beiträge: 346
Registriert: Mo 1. Mär 2004, 12:59
Kontaktdaten:

Beitrag von baumpaul »

stefkey hat geschrieben:1. Bleibt im DropDown nach Klick auf einen Artikel auch der gewählte Artikel stehen?
Ich meine:
Das Drop-Down zeigt Artikel 1. Nun klickt man auf das Drop-Down und es öffnet sich das Menü und man klickt auf Artikel 4. Steht dann im Drop-Down auch Artikel 4 oder wird immer ein Default angezeigt, zB "Bitte wählen Sie"
Ja, im Dropdown ist immer der Aktuelle Artikel markiert.
stefkey hat geschrieben:2. Aus dem Drop-Down dann eine Liste zu machen, dürfte ja noch so kompliziert sein. Ich hab allerdings nicht so viele PHP Kenntnisse. Ist es wirklich kein Problem? Und kannst du mir vielleicht helfen falls ich es nicht alleine hinbekomme?
Das ist eigentlich auch kein Problem. Du musst im Modul Oputput die <select> Tags geben <ul> austauschen und die <option> gegen <li>. Oder was du für HTML Tags eben bevorzugst.
stefkey
Beiträge: 556
Registriert: Mi 19. Okt 2005, 16:10
Wohnort: Heidelberg
Kontaktdaten:

Beitrag von stefkey »

super, ich habs gerade eingefügt. Ich habe nun aber das Problem, dass der Artikeltitel angezeigt werden soll. Also nicht ein Container sondern den Titel aus den Eigenschaften eines Artikels.

Ich versuche mich mal...

vielleicht hast du aber ein Tip zwischendurch...


Grüße und besten Dank
stefkey
stefkey
Beiträge: 556
Registriert: Mi 19. Okt 2005, 16:10
Wohnort: Heidelberg
Kontaktdaten:

Beitrag von stefkey »

Hallo,

ich kommer leider nicht weiter, versteh den Code halt nicht und Vermutungen und Probieren hat leider keinen Erfolg gebracht.

Vielleicht kann mir jemand helfen...


Hier mal der Output des Moduls:

Ich würe gerne den Artikeltitel aus den Artikel-Eigenschaften als Auswahl haben.

Code: Alles auswählen

<?php
$selCat = "CMS_VALUE[0]"; // selected category
$maxChar = "CMS_VALUE[3]"; // Max. shown topic length

$first = mi18n("|<");
$last = mi18n(">|");
$next = mi18n(">");
$back = mi18n("<");

if (!is_numeric($maxChar) || $maxChar < 1) {
   $maxChar = "50";
}

// SQL für Pulldown-Menue und Variablen für Blaetterelement
if(is_numeric($selCat) && $selCat != "0") {
   // select all articles in category without start article
   $query  = "SELECT CONTENT.value AS headline, ARTLANG.idart AS id, " ;
   $query .= "CATLANG.startidartlang, ARTLANG.idartlang FROM ";
   $query .= $cfg["tab"]["cat_art"]." AS CATART, ";
   $query .= $cfg["tab"]["art_lang"]." AS ARTLANG, ";
   $query .= $cfg["tab"]["cat_lang"]." AS CATLANG, ";
   $query .= $cfg["tab"]["content"]." AS CONTENT ";
   
   $query .= "WHERE CATART.idcat = '$selCat' AND ARTLANG.idlang = '$lang' ";          
   $query .= "AND CONTENT.idartlang = ARTLANG.idartlang ";
   $query .= "AND CATLANG.idlang = ARTLANG.idlang ";
   $query .= "AND CATLANG.idcat = CATART.idcat ";
   $query .= "AND ARTLANG.idart = CATART.idart ";
   $query .= "AND ARTLANG.online = '1' ";

   if ("CMS_VALUE[6]" != "enabled") {
      $query .= "AND CATLANG.startidartlang != ARTLANG.idartlang ";
   }

   // Content-Type-Number
   if (!is_numeric("CMS_VALUE[8]")) {
      $query .= "AND CONTENT.typeid = '1' ";
   } else {
      $query .= "AND CONTENT.typeid = 'CMS_VALUE[8]' ";
   }

   // Content-Type
   if (!is_numeric("CMS_VALUE[9]")) {
      $query .= "AND CONTENT.idtype = '1' ";
   } else {
      $query .= "AND CONTENT.idtype = 'CMS_VALUE[9]' ";
   }

   $query  .= "ORDER BY ";

   // Sort by
   if ("CMS_VALUE[4]" == "") {
      $query .= "CATART.idart ";
      $sortiert = "CATART.idart";
   } else {
      $query .= "CMS_VALUE[4] ";
      $sortiert = "CMS_VALUE[4]";
   }

   // ASC/DESC
   if ("CMS_VALUE[5]" == "") {
      $query .= "DESC ";
      $steigung = "DESC";
   } else {
      $query .= "CMS_VALUE[5] ";
      $steigung = "CMS_VALUE[5]";
   }

   // LIMIT
   if (is_numeric("CMS_VALUE[10]") && "CMS_VALUE[10]" > 0) {
      $query .= "LIMIT 0, CMS_VALUE[10]";
   }
}

// Blaetterelement
$sql = "SELECT
        ARTLANG.idart,
        ARTLANG.title,
        CATART.idcat,
        ARTLANG.created
    FROM 
        ".$cfg["tab"]["cat_art"]." AS CATART,
        ".$cfg["tab"]["art_lang"]." AS ARTLANG, 
        ".$cfg["tab"]["cat"]." AS CAT
    WHERE
        CAT.idcat='$idcat'
        AND ARTLANG.idart = CATART.idart
        AND CATART.idcat = CAT.idcat
        AND ARTLANG.idtplcfg = 0 
        AND ARTLANG.idlang = '$lang'
        AND ARTLANG.online = '1'
    ORDER BY
        ".$sortiert." ".$steigung;

$db->query($sql);
if ($db->num_rows() != 0) {
    $artikel = array(array());
    $j=0;
    $db->next_record();
    $idart_last=$db->f("idart");
    for ($i=0; $i<$db->num_rows(); $i++) {
        $artikel[$j][0] = $db->f("idart");
        $artikel[$j][1] = $db->f("idcat");
        $artikel[$j][2] = $db->f("title");
        
        $type = $db->f("idtype");
        $typeid = $db->f("typeid");
        
        while ( $idart_last==$db->f("idart") ) {
            $idart_last=$db->f("idart");
            $db->next_record();
            $i++;
        }
        
        $idart_last=$db->f("idart");
        $j++;
        $i--;
    }
    
    // Zurueckblaettern
    for ($i=0; $i < $j; $i++) {
        if ($idart==$artikel[$i][0] && $i!=0) {
            $x = $i-1;
            $zurueck_link = "front_content.php?client=$client&lang=$lang&idcat=".$artikel[$x][1]."&idart=".$artikel[$x][0];
            $prev_link = '<a href="'.$sess->url("$zurueck_link").'" title="'.htmlentities($artikel[$x][2]).'">'.$back.'</a>';
        }
    }
    
    // Zahlen und Platzhalter
    for ($i=0; $i < $j; $i++) {
        $k = $i+1;
        if ($idart==$artikel[$i][0]) {
            $aktart = $k;
        }
    }
    
    // Weiterblaettern
    for ($i=0; $i < $j; $i++) {
        if ($idart==$artikel[$i][0] && $i != $j-1) {
            $y = $i+1;
            $weiter_link = "front_content.php?client=$client&lang=$lang&idcat=".$artikel[$y][1]."&idart=".$artikel[$y][0];
            $next_link = '<a href="'.$sess->url("$weiter_link").'" title="'.htmlentities($artikel[$y][2]).'">'.$next.'</a>';
        }
    }
}


// Pulldown Menue generieren
$form = "";
if (isset($query)) {
   // execute query
   $db->query($query);
   
   if ($db->num_rows() > 0) {
      $z = 0;
      $y = 0;
      while ($db->next_record()) {
         $headline = strip_tags(urldecode($db->f("headline")));
         if (strlen($headline) > $maxChar) {
            $headline = substr($headline, 0, $maxChar);
            $headline .= '...';
         }
         $title = htmlentities($headline);
         
         $link = $sess->url("front_content.php?client=$client&lang=$lang&idcat=$selCat&idart=".$db->f("id"));
         
         $y++;
         if ($y == $aktart) {
             $selected = ' selected="selected"';
         } else {
             $selected = '';
         }
         
         $form .= '<option value="'.$link.'"'.$selected.'>'.$headline.'</option>';
         
         if ($z == 0) {
             $first_link = '<a href="'.$link.'" title="'.$title.'">'.$first.'</a>';
         }
         $z++;
         if ($z == $db->nf()) {
             $last_link = '<a href="'.$link.'" title="'.$title.'">'.$last.'</a>';
         }
      }
      unset($headline);
   } // end while
} // end if


//  HTML ausgeben
echo '<script language="JavaScript">
    function Go() {
        location.href = document.jump.N.value;
    }
    </script>
    <div class="artikelnav"><table width="100%" border="0" cellspacing="0" cellpadding="0" class="artikelnav"><tr>';

echo '<td class="first">'.$first_link.'</td>';

if ($prev_link == "") { $prev_link = "&nbsp;"; }
echo '<td class="prev">'.$prev_link.'</td>';

echo '<td class="form"><form name="jump"><select size="1" onchange="Go()" name="N" class="button">';
/*if ($selected == "") { // Es fehlt noch der Link zur Uebersichtsseite
    echo '<option value="" selected="selected">'.mi18n("Artikel ausw&auml;hen").'</option>';
} else {
    echo '<option value="">'.mi18n("Artikel ausw&auml;hen").'</option>';
}*/
echo $form;
echo '</select></form></td>';

if ($next_link == "") { $next_link = "&nbsp;"; }
echo '<td class="next">'.$next_link.'</td>';

echo '<td class="last">'.$last_link.'</td>';

echo '</tr></table></div>';
?>
stefkey
Beiträge: 556
Registriert: Mi 19. Okt 2005, 16:10
Wohnort: Heidelberg
Kontaktdaten:

Beitrag von stefkey »

Hallo,

ich komm leider nicht weiter. Es ist doch sicher nicht viel umzuschreiben wenn statt der Headlineder Titel aus den Artikeleigenschaften angezeigt werden soll.

Könnte nochmal jemand ein Blick auf das tolle Modul werfen?


Grüße,
stefkey
shi
Beiträge: 254
Registriert: Fr 5. Nov 2004, 14:12
Danksagung erhalten: 1 Mal
Kontaktdaten:

select feld verschwindet

Beitrag von shi »

Hallo, ich habe das Modul in einer 4.8.8. Version installiert und funktioniert auch soweit. Jedoch habe ich festgestellt das das Selectfeld nach einer Weile nicht mehr da ist, es sind noch die Pfeile zu sehen. Voran kann das liegen?
Gesperrt