Artikelblättern (Paging) mit Vorschaubild und -titel

Alles rund um Module und Plugins in CONTENIDO 4.9.
Antworten
matthiasschnueriger
Beiträge: 60
Registriert: Mo 28. Nov 2005, 16:01
Kontaktdaten:

Artikelblättern (Paging) mit Vorschaubild und -titel

Beitrag von matthiasschnueriger » Do 26. Jun 2014, 11:27

Der Code basiert auf dem Modul von smac für Contenido 4.6 und wurde entsprechend erweitert/verändert. Es ginge sicher einfacher, aber es erfüllt meine Anforderungen. Das Modul funktioniert in der neusten Contenido-Version 4.9.3.

Folgender Modul-Output gibt einen Link inkl. Vorschaubild (CMS_IMG[1]) und Headline (CMS_HTMLHEAD[1]) des vorherigen resp. nächsten Artikels in der gleichen Kategorie aus. Es ist damit eine einfache aber nutzerfreundliche Paging-Navigation.
Die Darstellung der Ausgabe kann natürlich beliebig angepasst werden.

Code: Alles auswählen

<?php
$sortiert = "ARTLANG.created";
$steigung= "DESC";

$sql = "SELECT DISTINCT  CONCAT( UPLOADS.dirname, UPLOADS.filename ) AS path, CONTENT.value as page_title, ARTLANG.idart, ARTLANG.title, CATART.idcat, ARTLANG.created, ARTLANG.idartlang AS idartlang, ARTLANG.idartlang AS idartlang, CATART.idcat AS idcat, CATART.idcatart AS idcatart 
FROM ".$cfg["tab"]["cat_art"]." AS CATART, ".$cfg["tab"]["upl"]." AS UPLOADS, ".$cfg["tab"]["art_lang"]." AS ARTLANG, ".$cfg["tab"]["cat_lang"]." AS CATLANG, ".$cfg["tab"]["content"]." AS tblData, ".$cfg["tab"]["content"]." AS CONTENT, ".$cfg["tab"]["cat"]." AS CAT
WHERE CAT.idcat='$idcat'
AND ARTLANG.idart = CATART.idart
AND CATART.idcat = CAT.idcat
AND tblData.idartlang = ARTLANG.idartlang 
AND CATLANG.idlang = ARTLANG.idlang 
AND CATLANG.idcat = CATART.idcat
AND ARTLANG.idart = CATART.idart
AND ARTLANG.idlang = '$lang' 
AND ARTLANG.online = '1'
AND tblData.idartlang != CATLANG.startidartlang
AND tblData.value = UPLOADS.idupl
AND tblData.idtype = 22
AND CONTENT.idartlang = tblData.idartlang
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("page_title");
$artikel[$j][3] = $db->f("path");

$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--;
}

// Nicht ausgeben, wenn nur eine Seite existiert...
if ($i>1)
  {
  echo "";

					// Zurückblättern
					for ($i=0; $i < $j; $i++)
					{
                        
					   if ($idart==$artikel[$i][0] && $i!=0) {
						  $x = $i-1;
                          $previous_image = 'upload/'.$artikel[$x][3];
                          $previous_title = strip_tags($artikel[$x][2]);
						  $zurueck_link ="front_content.php?client=$client&lang=$lang&idcat=".$artikel[$x][1]."&idart=".$artikel[$x][0];
						   echo "<a href=\"".$sess->url("$zurueck_link")."\" title=\"$previous_title\" class=\"prev\"><span class=\"icon-wrap\"><i class=\"fa fa-angle-left\"></i></span>
								<img src=\"$previous_image\" alt=\"Previous thumb\"/></a> ";
					   }
					}
					

					// Weiterblättern
					for ($i=0; $i < $j; $i++)
					{
					   if ($idart==$artikel[$i][0] && $i != $j-1) {
                           
						  $y = $i+1;
                          $next_image = 'upload/'.$artikel[$y][3];
                          $next_title = strip_tags($artikel[$y][2]);                          
                          $weiter_link ="front_content.php?client=$client&lang=$lang&idcat=".$artikel[$y][1]."&idart=".$artikel[$y][0];
						   echo "<a href=\"".$sess->url("$weiter_link")."\" title=\"$next_title\" class=\"next\"><span class=\"icon-wrap\"><i class=\"fa fa-angle-right\"></i></span>
								<img src=\"$next_image\" alt=\"Next thumb\"/></a> ";
					   }
					}
					
					}   //Ende nicht ausgeben, wenn nur eine Seite...
					
					}

					?>	


Faar
Beiträge: 1915
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: Artikelblättern (Paging) mit Vorschaubild und -titel

Beitrag von Faar » Do 26. Jun 2014, 13:07

Danke!
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

McHubi
Beiträge: 1209
Registriert: Do 18. Nov 2004, 23:06
Wohnort: Mettmann
Kontaktdaten:

Re: Artikelblättern (Paging) mit Vorschaubild und -titel

Beitrag von McHubi » Sa 28. Feb 2015, 11:50

Hallo Matthias,

ich habe Deinen Code so wie er ist in einer aktuellen 4.9.6er eingebaut und "et kütt nix". Das Ergebnis der query ist leer, sprich echo $db->num_rows(); wirft 0 aus. Es sind in der Kategorie 5 Artikel online. Hast Du einen Tipp? :D
seamless-design.de
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.

Das Handbuch zur Version 4.10: CONTENIDO für Einsteiger (4.10)

Das Handbuch zur Version 4.9: CONTENIDO für Einsteiger (4.9)

benja
Beiträge: 168
Registriert: Mi 31. Aug 2005, 10:54
Wohnort: Köln
Kontaktdaten:

Re: Artikelblättern (Paging) mit Vorschaubild und -titel

Beitrag von benja » Di 3. Nov 2015, 21:28

Kann man das Modul so anpassen, dass es durch Kategorien blättert? Ich brauche es für eine Kategorie zum Artikelblättern innerhalb einer Kategorie und einmal soll es durch die Startartikel der einzelnen Unterkategorien blättern.
Es geht dabei natürlich um 2 verschiedene Hauptnavigationspunkte.

Liebe Grüsse
benja

Oldperl
Beiträge: 4250
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Re: Artikelblättern (Paging) mit Vorschaubild und -titel

Beitrag von Oldperl » Mi 4. Nov 2015, 10:39

Hallo benja,

das Modul auf Kategorien umzubauen macht keinen Sinn. Mit den neuen Funktionen der 4.9 ist es aber problemlos möglich ein entsprechendes Modul zu stricken.

Gruß aus Franken

Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

avito
Beiträge: 43
Registriert: Do 15. Mai 2008, 13:14
Kontaktdaten:

Re: Artikelblättern (Paging) mit Vorschaubild und -titel

Beitrag von avito » Fr 14. Jul 2017, 10:04

Hallo zusammen!
Ein klasse Modul. Und es läuft hervorragend unter 4.9.12
Vielen, vielen Dank dafür.

Ich würde als previous_title und next_title gerne ein CMS_HTML ausgeben anstatt der HTMLHEAD.
Irgendwie kann ich das nicht und würde mich über einen Tipp freuen.
Kann mir bitte jemand helfen?

Viele Grüße und einen schönen Freitag.

chris8408
Beiträge: 87
Registriert: So 2. Apr 2006, 19:07
Wohnort: Korschenbroich
Kontaktdaten:

Re: Artikelblättern (Paging) mit Vorschaubild und -titel

Beitrag von chris8408 » Fr 14. Jul 2017, 13:54

Hallo,

du müsstes den SQL anpassen.
Aktuell werden alle Types (Headline, Headline2, CMS-Content) zurückgegeben und der erste genommen.
Wenn du das einschränken willst einfach in die Where-Bedingung die Einschränkung auf deinen Typ einbauen.

==> AND CONTENT.typeid = 8

8 ist einfach ein Beispiel...

Code: Alles auswählen

$sql = "SELECT DISTINCT  CONCAT( UPLOADS.dirname, UPLOADS.filename ) AS path, CONTENT.value as page_title, ARTLANG.idart, ARTLANG.title, CATART.idcat, ARTLANG.created, ARTLANG.idartlang AS idartlang, ARTLANG.idartlang AS idartlang, CATART.idcat AS idcat, CATART.idcatart AS idcatart 
FROM ".$cfg["tab"]["cat_art"]." AS CATART, ".$cfg["tab"]["upl"]." AS UPLOADS, ".$cfg["tab"]["art_lang"]." AS ARTLANG, ".$cfg["tab"]["cat_lang"]." AS CATLANG, ".$cfg["tab"]["content"]." AS tblData, ".$cfg["tab"]["content"]." AS CONTENT, ".$cfg["tab"]["cat"]." AS CAT
WHERE CAT.idcat='$idcat'
AND ARTLANG.idart = CATART.idart
AND CATART.idcat = CAT.idcat
AND tblData.idartlang = ARTLANG.idartlang 
AND CATLANG.idlang = ARTLANG.idlang 
AND CATLANG.idcat = CATART.idcat
AND ARTLANG.idart = CATART.idart
AND ARTLANG.idlang = '$lang' 
AND ARTLANG.online = '1'
AND tblData.idartlang != CATLANG.startidartlang
AND tblData.value = UPLOADS.idupl
AND tblData.idtype = 22
AND CONTENT.typeid = 8
AND CONTENT.idartlang = tblData.idartlang
ORDER BY ".$sortiert." ".$steigung;
Gruß,

Christian
--------------------------------------------
Christian John aus Korschenbroich bei Düsseldorf (https://www.john-softwareentwicklung.de)
Selbständiger Web-Entwickler
“There are 10 types of people in the world… those that understand binary and those that don’t.”

avito
Beiträge: 43
Registriert: Do 15. Mai 2008, 13:14
Kontaktdaten:

Re: Artikelblättern (Paging) mit Vorschaubild und -titel

Beitrag von avito » Fr 14. Jul 2017, 14:14

Hallo Christian.

Vielen lieben Dank für Deine Unterstützung. Ich bin froh, so schnell Hilfe gefunden zu haben.
Viele Grüße, Tom

Oldperl
Beiträge: 4250
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Re: Artikelblättern (Paging) mit Vorschaubild und -titel

Beitrag von Oldperl » Fr 14. Jul 2017, 18:19

Servus,
chris8408 hat geschrieben:
Fr 14. Jul 2017, 13:54
Wenn du das einschränken willst einfach in die Where-Bedingung die Einschränkung auf deinen Typ einbauen.

==> AND CONTENT.typeid = 8

8 ist einfach ein Beispiel...
Funktioniert aber wiederholbar nur, wenn der Typ auch immer diese ID hat. Dies ist in 4.9 aber nicht mehr gegeben, da inzwischen ja in der DB das autoindex genutzt wird. Daher sollte man besser erst die ID zum entsprechenden Type ermitteln.

Gruß aus Franken

Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

Antworten