Modul Artikelblättern gesucht ...

agon
Beiträge: 83
Registriert: Mi 29. Okt 2003, 16:01
Kontaktdaten:

Beitrag von agon » Mo 22. Dez 2003, 08:49

Hallo,

hmm, bei mir ist das nicht so, auch die erste Seite wird als Link angezeigt...
Was ich mir als Erweiterung vorstellen könnte, ist, die jeweils aktuelle Seite nicht als Link anzuzeigen, dann müßte man die while-Schleife ergänzen:

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 ($idart != $db->f("idart"))
 {
  $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>';
 } else
 {
  echo $i;
 }
 if ($i != $db->num_rows())
 {
  echo '&nbsp;|&nbsp;';
 }
 $i++;
}
if ($db->num_rows() != 0)
{
echo '</p>';
}
?>
Gruß
Andreas

snafoo
Beiträge: 1
Registriert: Mi 28. Jan 2004, 10:46
Kontaktdaten:

Beitrag von snafoo » Mi 28. Jan 2004, 11:02

Hi,

hier ist das Modul noch ein bisschen erweitert. Es zeigt jetzt auch 'prev' und 'next' links an:

OUTPUT:

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;
$nextlink=true;

while ($db->next_record())
{
  $navmod_link_prev = $navmod_link;
  $navmod_link ="front_content.php?client=$client&la"."ng=$lang&idcat=".$idcat."&idart=".$db->f("idart")."";

  if (!$nextlink) $nextlink = $navmod_link;

  if ($db->f("idart") != $idart) { $tmp .= '<a href="'.$sess->url("$navmod_link").'">'.$i.'</a>'; } 
  else {
    if ($i != 1) { $prevlink = '<a href="'.$sess->url("$navmod_link_prev").'">prev</a>&nbsp;|&nbsp;'; }
    else { $prevlink = 'prev&nbsp;|&nbsp;'; }

    $tmp .= $i;
    $nextlink = false;
  }
  if ($i != $db->num_rows()) { $tmp .= '&nbsp;|&nbsp;'; }
  $i++;
}

echo '<p>';

if ($db->num_rows() != 0) {
  echo $prevlink . $tmp;
  if ($nextlink) { echo '&nbsp;|&nbsp;<a href="'.$sess->url("$nextlink").'">next</a>'; }
  else { echo '&nbsp;|&nbsp;next'; }
  echo '</p>';
}

?>
Gruss,
Andre

Darth-Vader
Beiträge: 661
Registriert: So 25. Jan 2004, 19:06
Wohnort: Stuttgart-Bad Cannstatt
Kontaktdaten:

Beitrag von Darth-Vader » Mo 2. Feb 2004, 16:28

sehr gut, thx, eingebaut, klappt sofort ohne jegliche Änderungen ;)

koffer
Beiträge: 107
Registriert: Mi 3. Sep 2003, 15:39
Kontaktdaten:

Beitrag von koffer » Mo 2. Feb 2004, 16:51

Code: Alles auswählen

<?php
$anzahl = "CMS_VALUE[8]";
if($anzahl<1) {$anzahl=10;}
$laenge = "CMS_VALUE[9]";
if($laenge<0) {$laenge=100;}
$sql = "SELECT ARTLANG.idart, ARTLANG.title, CATART.idcat, ARTLANG.created, CONTENT.value, CONTENT.idtype, CONTENT.typeid
 FROM ".$cfg["tab"]["cat_art"]." AS CATART, ".$cfg["tab"]["art_lang"]." AS ARTLANG, ".$cfg["tab"]["cat"]." AS CAT, ".$cfg["tab"]["content"]." AS CONTENT
 WHERE ARTLANG.idart = CATART.idart AND CATART.idcat = CAT.idcat AND ARTLANG.idartlang=CONTENT.idartlang AND CONTENT.idtype<=2 AND CONTENT.typeid<=2 AND CAT.idcat='$idcat' AND ARTLANG.idlang = '$lang' AND ARTLANG.online = '1' AND CATART.is_start='0'
 ORDER BY ARTLANG.artsort ASC,ARTLANG.created DESC";
$db->query($sql);
if ($db->num_rows() != 0)
{
 echo "<h3><p>CMS_HTMLHEAD[6]</h3>
<table border=0 cellspacing=0 cellpadding=0 id=\"font\">";

$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] = substr($db->f("created"),8,2).".".substr($db->f("created"),5,2).".";
 while ( $idart_last==$db->f("idart") )
 {
  if ( $db->f("idtype") == 2 && $db->f("typeid") == 1 )
  {
   $html_text = strip_tags(urldecode($db->f("value")));
   $array = array ("&auml;" => "ä", "&ouml;" => "ö", "&uuml;" => "ü", "&szlig;" => "ß", "&Auml;" => "Ä", "&Ouml;" => "Ö", "&Uuml;" => "ü", "&nbsp;" => " ", """ => "\"", "<" => "<", ">" => ">", "&" => "&");
   $html_text = strtr($html_text, $array);
   $artikel[$j][5] = htmlentities(substr($html_text,0,$laenge))."...";
  } elseif ( $db->f("idtype") == 1 && $db->f("typeid") == 1 )
  {
   $artikel[$j][3] = strip_tags(urldecode($db->f("value")));
  } elseif ( $db->f("idtype") == 1 && $db->f("typeid") == 2 )
  {
   $artikel[$j][4] = strip_tags(urldecode($db->f("value")));
  }
  $idart_last=$db->f("idart");
  $db->next_record();
  $i++;
 }
 $idart_last=$db->f("idart");
 $j++;
 $i--;
}

if($blatt=="") {$blatt=0;}
$blattmax=ceil($j/$anzahl)-1;
$blatt1 = $blatt+1;
$blattmax1 = $blattmax+1;
if ($j>$anzahl)
{
 echo " <tr>
  <td colspan=3 align=\"right\">Seite ".$blatt1." von ".$blattmax1."  – <b>";
 for ($i=0; $i<=$blattmax; $i++)
 {
  $k = $i+1;
  if($i==$blatt) {
   echo " ".$k." ";
  } else {
   $navmod_link ="front_content.php?client=$client&lang=$lang&idcat=$idcat&blatt=".$i."";
   echo ' <a href="'.$sess->url("$navmod_link").'" id="font">'.$k.'</a> ';
  }
 }
 echo "</b><br> </td>
 </tr>";
}

for ($i=$anzahl*$blatt; $i < min($j,$anzahl*$blatt+$anzahl); $i++)
{
 $k = $i-1;
 $navmod_link ="front_content.php?client=$client&lang=$lang&idcat=".$artikel[$i][1]."&idart=".$artikel[$i][0]."";
 echo '<tr>';
 if ( $i>0 && $artikel[$i][2] == $artikel[$k][2] )
 {
  echo '<td> </td>';
 } else
 {
  echo '<td valign="top"><p><b>'.$artikel[$i][2].'</b></p></td>';
 }
 echo '<td><img border="0" src="images/2.gif" width="7" height="40"></td>
 <td><p><b><a href="'.$sess->url("$navmod_link").'" id="font">'.$artikel[$i][3].'</a> '.$artikel[$i][4].'</b> '.$artikel[$i][5].' <a href="'.$sess->url("$navmod_link").'" id="font">mehr</a></p></td>
</tr>';
}

if ($j>$anzahl)
{
 echo " <tr>
  <td colspan=3 align=\"right\"><br>Seite ".$blatt1." von ".$blattmax1."  – <b>";
 for ($i=0; $i<=$blattmax; $i++)
 {
  $k = $i+1;
  if($i==$blatt) {
   echo " ".$k." ";
  } else {
   $navmod_link ="front_content.php?client=$client&lang=$lang&idcat=$idcat&blatt=".$i."";
   echo ' <a href="'.$sess->url("$navmod_link").'" id="font">'.$k.'</a> ';
  }
 }
 echo "</b></td>
 </tr>";
}

 echo '</table>';
}
?>

wie bekomme ich hier ein "zurück zur Übersicht" rein?
Bei allen bisherigen Versuchen hab ich mir immer alles zerschossen...

Flex32
Beiträge: 175
Registriert: Mi 17. Nov 2004, 13:23
Kontaktdaten:

Beitrag von Flex32 » Di 22. Feb 2005, 15:26

snafoo hat geschrieben:Hi,

hier ist das Modul noch ein bisschen erweitert. Es zeigt jetzt auch 'prev' und 'next' links an:

OUTPUT:

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;
$nextlink=true;

while ($db->next_record())
{
  $navmod_link_prev = $navmod_link;
  $navmod_link ="front_content.php?client=$client&la"."ng=$lang&idcat=".$idcat."&idart=".$db->f("idart")."";

  if (!$nextlink) $nextlink = $navmod_link;

  if ($db->f("idart") != $idart) { $tmp .= '<a href="'.$sess->url("$navmod_link").'">'.$i.'</a>'; } 
  else {
    if ($i != 1) { $prevlink = '<a href="'.$sess->url("$navmod_link_prev").'">prev</a>&nbsp;|&nbsp;'; }
    else { $prevlink = 'prev&nbsp;|&nbsp;'; }

    $tmp .= $i;
    $nextlink = false;
  }
  if ($i != $db->num_rows()) { $tmp .= '&nbsp;|&nbsp;'; }
  $i++;
}

echo '<p>';

if ($db->num_rows() != 0) {
  echo $prevlink . $tmp;
  if ($nextlink) { echo '&nbsp;|&nbsp;<a href="'.$sess->url("$nextlink").'">next</a>'; }
  else { echo '&nbsp;|&nbsp;next'; }
  echo '</p>';
}

?>
Gruss,
Andre


das ist schonmal klasse.

wenn es jetzt keine seite zurück geht, dann wir der link ja schwaz angezeigt, aber wie kann ich den diese farbe ändern, kann man das ganze vll auch so bauen, das , wenn es keine seite vorher gab, der button für back ganz ausgeblendet wird? und kann man vll noch einbauen, das man die button immer neu bennen kann, also das sie nicht immer next und back heißen...

danke
greetz flex

halousi
Beiträge: 111
Registriert: Mi 30. Mär 2005, 15:31
Kontaktdaten:

Beitrag von halousi » Do 14. Apr 2005, 09:26

erst einmal vielen dank für dieses tolle modul. ich habe es nun schon seit einiger zeit im einsatz und es funktioniert soweit prima. jetzt ist mir nur aufgefallen, dass wenn man eine bestimmte anzahl von artikeln eingestellt hat die navigation endlos lang wird und irgendwann nicht mehr auf die seite passt, bzw umbricht.
könnte man vieleicht das modul noch so erweitern, dass z.B. die ersten 5 artikel und der letzte artikel angezeigt werden?:
irgendwie so:

zurück 1/2/3/4/5/6/7/.../21 vor

viele grüße
hanes

joma
Beiträge: 20
Registriert: Mo 21. Feb 2005, 11:02
Wohnort: Austria
Kontaktdaten:

Ohne Startartikel?

Beitrag von joma » Mo 10. Jul 2006, 10:11

Hallo!
Dieses Modul funktioniert bestens! Danke - den Autoren! :D

Ich würde aber gerne den Startartikel ausklammern - wie könnte das funktionieren? :?:

i-fekt
Beiträge: 1520
Registriert: Mo 3. Jan 2005, 02:15
Wohnort: Chemnitz
Kontaktdaten:

Beitrag von i-fekt » Mo 10. Jul 2006, 12:33

Du solltest eine aktuellere Artikelliste nutzen, diese hier scheint schon sehr alt zu sein und bei den neuen Contenido-Versionen hat sich einiges geändert.
Gruss,
Michael

"Keep on riding this Bike!" (Jackson Mulham)

joma
Beiträge: 20
Registriert: Mo 21. Feb 2005, 11:02
Wohnort: Austria
Kontaktdaten:

Beitrag von joma » Di 11. Jul 2006, 08:30

Die Artikelliste ist schon OK.

Modulname : News
* Author(s) : Andreas Lindner, 4fb
* Copyright : Contenido - four for business, Andreas Lindner
* Created : 12.08.2005

Ich verwende die Contenido-Version 4.6.8.5

Bin nur durch die Forum-Suche nach "Blättern" in die Abteilung 4.4.x reingerutscht.

Ich hab mich wahrscheinlich falsch ausgedrückt. Es geht um das Blättern im Artikel. Ich habe das oben genannte Blätter-Modul von snafoo in den einzelnen Artikeln eingebaut.
prev -1-2-3-4-next
Der erste Artikel ist aber immer die Artikelliste, also der Startartikel in dieser Kategorie - den würde ich aber gerne ausgeklammert haben.

Vielleicht wird alles klarer, wenn man die Seite anschaut.

http://www.auner-aufbau.at/cms/front_co ... p?idcat=79

Wenn man dann eben den ersten Artikel auswählt, sieht man unten das Blättermodul und man sieht, dass man schon auf Seite 2 steht. Blättert man nun nach vor (1), so kommt man zur Artikelliste.

smart

Beitrag von smart » Mo 11. Sep 2006, 05:59

halousi hat geschrieben:erst einmal vielen dank für dieses tolle modul. ich habe es nun schon seit einiger zeit im einsatz und es funktioniert soweit prima. jetzt ist mir nur aufgefallen, dass wenn man eine bestimmte anzahl von artikeln eingestellt hat die navigation endlos lang wird und irgendwann nicht mehr auf die seite passt, bzw umbricht.
könnte man vieleicht das modul noch so erweitern, dass z.B. die ersten 5 artikel und der letzte artikel angezeigt werden?:
irgendwie so:

zurück 1/2/3/4/5/6/7/.../21 vor

viele grüße
hanes
Das würde mich auch brennend interessieren! Erster und letzter Artikel immer fest, weitere 10 flexibel, dann letzter Artikel. Hat jemand schon in der Richtung etwas entwickelt? Außerdem würde mich interessieren, ob eine alfabetische Sortierung anhand der Überschrift möglich ist...

Eventuell könnte man sich hieran orientieren: http://contenido.org/forum/viewtopic.php?t=9619
Allerdings fehlen mir (noch) die PHP-Kenntnisse dazu...

smart

Beitrag von smart » Sa 30. Sep 2006, 22:31

Niemand? *bump*

smart

Beitrag von smart » Mo 13. Nov 2006, 19:29

*schieb*

Gesperrt