Seite 1 von 1

artikel blättern wie auf jubec.de

Verfasst: Mi 23. Nov 2005, 17:06
von mvf
hallo community

ich suche das modul artikel blättern wie hier http://www.jubec.de/front_content.php?idcat=78 zu sehen

also zurück und vorwärts und in der mitte die artikel mit 12345..

Verfasst: Mi 23. Nov 2005, 17:20
von emergence
mit der suche nach artikel und blättern hättest du das hier finden müssen
-> http://contenido.org/forum/viewtopic.ph ... bl%E4ttern

Verfasst: Mi 23. Nov 2005, 17:34
von mvf
habe ich auch, aber die sind leider nicht so wie bei jubec,

die eine ist nur weiter und zurück, die andere nur die 1|2|3|4 und ich kätte gerne eine kombi krieg die beiden aber ned zusammen ans laufen :(

hier nochmal der code der 2 beispiele für den fall, dass einer mir helfen mag

Code: Alles auswählen

<?php
$sql = "SELECT ARTLANG.idart, ARTLANG.idartlang, ARTLANG.title
 FROM ".$cfg["tab"]["cat_art"]." AS CATART, ".$cfg["tab"]["art_lang"]." AS ARTLANG, ".$cfg["tab"]["art"]." AS ART
 WHERE ARTLANG.idart = CATART.idart AND CATART.idart = ART.idart AND ARTLANG.idlang = '$lang'
  AND ARTLANG.online = '1' AND ART.idclient='$client' AND CATART.idcat='$idcat'
 ORDER BY ARTLANG.artsort ASC,ARTLANG.created DESC";
$db->query($sql);

$i=0;
while ($db->next_record()) {
  $articleID[$i] = $db->f("idartlang");
  $linkID[$i] = $db->f("idart");
  $title[$i] = $db->f("title");
  if($linkID[$i]==$idart)
  {
   $naechster=$i+1;
   $voriger=$i-1;
  }
  $i++;
}

echo '<p>';
if($voriger>=0)
{
 $navmod_link ="front_content.php?client=".$client."&la"."ng=".$lang."&idcat=".$idcat."&idart=".$linkID[$voriger]."";
 echo '<a href="'.$sess->url("$navmod_link").'">voriger</a>';
 if($naechster<$i)
 {
  echo '&nbsp;|&nbsp;';
 }
}
if($naechster<$i)
{
 $navmod_link ="front_content.php?client=".$client."&la"."ng=".$lang."&idcat=".$idcat."&idart=".$linkID[$naechster]."";
 echo '<a href="'.$sess->url("$navmod_link").'">nächster</a>';
}
echo '</p>';
?>

Code: Alles auswählen

<?php
$sql = "SELECT ARTLANG.idart
 FROM ".$cfg["tab"]["cat_art"]." AS CATART, ".$cfg["tab"]["art_lang"]." AS ARTLANG, ".$cfg["tab"]["art"]." AS ART
 WHERE ARTLANG.idart = CATART.idart AND CATART.idart = ART.idart AND ARTLANG.idlang = '$lang' AND ARTLANG.online = '1' AND ART.idclient='$client' AND CATART.idcat='$idcat'
 ORDER BY CATART.is_start DESC,ARTLANG.artsort ASC,ARTLANG.created ASC";
$db->query($sql);
$i=1;
echo '<p>';
while ($db->next_record())
{
 $navmod_link ="front_content.php?client=$client&la"."ng=$lang&idcat=".$idcat."&idart=".$db->f("idart")."";
 echo '<a href="'.$sess->url("$navmod_link").'">'.$i.'</a>';
 if ($i != $db->num_rows())
 {
  echo '&nbsp;|&nbsp;';
 }
 $i++;
}
if ($db->num_rows() != 0)
{
 echo '</p>';
}
?> 

Verfasst: Mi 23. Nov 2005, 17:57
von mvf
dazu kommt noch, dass beim zweiten code auch der startartikel mit ausgegeben wird.

sprich ich habe in kat1 5 artikel, startartikel ist eine modifizierte 'news' liste als preview für die artikel und dann 4 artikel kat1first bis kat1fourth, aber das modul schmeisst dann 1|2|3|4|5 raus :( also incl startartikel.

ich hätte gern nur die artikel ohne die übersicht. also nur 1|2|3|4

sprich eine modifikation des 2. output codes, die den startartikel ausklammert.

Verfasst: Mi 23. Nov 2005, 20:10
von mvf
über die artikeleingeschaften kann ich den startarikel in der sortorder an die letzte position bringen. wie kann ich nun aber die whileschleife cor dem letzten datensatz abbrechen?

@ stese [falls du mitliest] php.net bringt mich dabei leider nicht weiter :(

Verfasst: Mi 23. Nov 2005, 21:13
von mvf
anderer ansatz

wie identifiziere ich obe ein artikel startartikel ist oder nicht?
wenn ich in der db schau dann ist das

Tabelle: CATLANG
Feld: startidartlang

nun möchte ich die whileschleife nur ausführen wenn der artikel nicht startartikel ist.

Code: Alles auswählen

<?php

$sql = "SELECT ARTLANG.idart, CATLANG.startidartlang FROM ".$cfg["tab"]["cat_art"]." AS CATART, ".$cfg["tab"]["art_lang"]." AS ARTLANG, ".$cfg["tab"]["art"]." AS ART, ".$cfg["tab"]["cat_lang"]." AS CATLANG WHERE CATLANG.idart = ART.idart , ARTLANG.idart = CATART.idart AND CATART.idart = ART.idart AND ARTLANG.idlang = '$lang' AND ARTLANG.online = '1' AND ART.idclient='$client' AND CATART.idcat='$idcat' ORDER BY ARTLANG.artsort ASC";
$db->query($sql);

$i=1;

echo '&nbsp;';

while ($db->next_record()) {

            if ($db->f("idart") != $db->f("startidartlang")) {

            $navmod_link ="front_content.php?client=$client&lang=$lang&idcat=".$idcat."&idart=".$db->f("idart")."";
            echo '<a href="'.$sess->url("$navmod_link").'">'.$i.'</a>';
            if ($i != $db->num_rows()) {
                echo '&nbsp;|&nbsp;';
                }
            $i++;
			
			}            
        
	}
       
if ($db->num_rows() != 0) {
	echo '&nbsp;';
	}

?>
aber irgendwie schient die query das problem zu sein :( und wenn ich es recht verstehe nicht von der syntax her sonder der match pass ned :(

Verfasst: Mi 23. Nov 2005, 21:45
von mvf
und weiter im text ;) jetzt habe ich einen workaround

wennman in einer kategorie mehrere artikel hat und dem startartikel die hächste 'sortorder' gibt, dann wird dieser nicht mit in der liste angzeigt.

Code: Alles auswählen

<?php
$sql = "SELECT ARTLANG.idart
 FROM ".$cfg["tab"]["cat_art"]." AS CATART, ".$cfg["tab"]["art_lang"]." AS ARTLANG, ".$cfg["tab"]["art"]." AS ART
 WHERE ARTLANG.idart = CATART.idart AND CATART.idart = ART.idart AND ARTLANG.idlang = '$lang' AND ARTLANG.online = '1' AND ART.idclient='$client' AND CATART.idcat='$idcat'
 ORDER BY CATART.is_start DESC,ARTLANG.artsort ASC,ARTLANG.created ASC";
$db->query($sql);
$i=1;
echo '<p>';


while ($db->next_record())
    {
    
    if ($i < $db->num_rows()) {
    
     $navmod_link ="front_content.php?client=$client&la"."ng=$lang&idcat=".$idcat."&idart=".$db->f("idart")."";
     echo '<a href="'.$sess->url("$navmod_link").'">'.$i.'</a>';
     $check = ($i+1);
     if ($check < $db->num_rows())
     {
      echo '&nbsp;|&nbsp;';
     }
     $i++;
    
    }
    }


if ($db->num_rows() != 0)
{
 echo '</p>';
}
?>