Modul Artikelblättern

derSteffen
Beiträge: 847
Registriert: Mi 14. Dez 2005, 16:15
Wohnort: Königs Wusterhausen bei Berlin
Kontaktdaten:

Modul Artikelblättern überarbeitet

Beitrag von derSteffen » Mi 9. Dez 2009, 17:56

So nach langem testen...

Modul funktioniert wie beschrieben.
Enthält die Anpassungen von netmax auf Seite 1
Der Bug wurde behoben, dass Artikel mit einer Templatezuweisung nicht angezeigt werden (AND ARTLANG.idtplcfg = 0 einfach rausgenommen )
und jetzt kann sich in der Kategorie auch ein Startartikel befinden (z.B. eine Artikelliste) und dieser wird beim durchblättern nicht mit angezeigt (der Hinweis von smac hat bei mir nicht gefunzt, da er alle Artikel durchblättert hat, vom ganzen CMS nicht nur von der Kategorie).

Getetstet mit 4.8.11

Der Output (Input bleibt so)

Code: Alles auswählen

<?php

/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname   :     artikellaettern
* Author      :     smac
* Created     :     21-09-2006
* Created     :     21-09-2006
************************************************/


$anzahl = "CMS_VALUE[1]";
$platzhalter = "CMS_VALUE[2]";
$zurueck = "CMS_VALUE[3]";
$weiter = "CMS_VALUE[4]";
$sortiert = "CMS_VALUE[5]";
$steigung = "CMS_VALUE[6]";

if ($anzahl=="") $anzahl = 1;
if ($platzhalter=="") $platzhalter = "...";
if ($sortiert=="") $sortiert = "ARTLANG.created";
if ($steigung=="") $steigung= "ASC";


$sql = "SELECT 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"]["art_lang"]." AS ARTLANG, ".$cfg["tab"]["cat_lang"]." AS CATLANG, ".$cfg["tab"]["content"]." AS tblData, ".$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
ORDER BY ".$sortiert." ".$steigung;



$db->query($sql);
if ($db->num_rows() != 0)
{
echo "<div class=\"indexnavigation\">";
$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");

$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;
      $zurueck_link ="front_content.php?client=$client&lang=$lang&idcat=".$artikel[$x][1]."&idart=".$artikel[$x][0];
      echo "<a href=\"".$sess->url("$zurueck_link")."\" class=\"links\">".$zurueck."</a> ";
   }
}


// Zahlen und Platzhalter
/* for ($i=0; $i < $j; $i++)
{

   $k = $i+1;
   
   $navmod_link ="front_content.php?client=$client&lang=$lang&idcat=".$artikel[$i][1]."&idart=".$artikel[$i][0];

   if ($idart!=$artikel[$i][0]) {
      if ( $k <= $anzahl || $k > $j-$anzahl) {
         echo "<a href='".$sess->url("$navmod_link")."'>".$k."</a> ";
      }
   } else {
      if ($k != 1 && $k != 2) { echo $platzhalter." " ; };
      echo $k." ";
      if ($k != $j-1 && $k != $j) { echo $platzhalter." "; };
   }   
   
}
*/
// Weiterblättern
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];
      echo "<a href=\"".$sess->url("$weiter_link")."\" class=\"rechts\">".$weiter."</a> ";
   }
}

}   //Ende nicht ausgeben, wenn nur eine Seite...

echo "</div>";
}


?>
Getestet mit 4.8.12 mit und ohne AMR

MfG Steffen
Zuletzt geändert von derSteffen am Mo 18. Jan 2010, 09:49, insgesamt 1-mal geändert.

derSteffen
Beiträge: 847
Registriert: Mi 14. Dez 2005, 16:15
Wohnort: Königs Wusterhausen bei Berlin
Kontaktdaten:

Sortierbar nach Headline?

Beitrag von derSteffen » Mo 18. Jan 2010, 09:44

Hallo,

ich habe doch noch eine Frage.

Ich würde es gerne realisieren das man auch nach Überschrift des Artikels sortieren kann. Wie müßte denn die SQL-Abfrage sein, um die Headline auszulesen?
Könnte mir da jemand bitte helfen?

Zur Zeit sieht die Abfrage so aus:

Code: Alles auswählen

$sql = "SELECT 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"]["art_lang"]." AS ARTLANG, ".$cfg["tab"]["cat_lang"]." AS CATLANG, ".$cfg["tab"]["content"]." AS tblData, ".$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
ORDER BY ".$sortiert." ".$steigung;
Vielen Dank

MfG Steffen

PS. Natürlich für eine 4.8.12er

Prime
Beiträge: 3
Registriert: Sa 29. Mai 2010, 09:49
Kontaktdaten:

Re: Modul Artikelblättern

Beitrag von Prime » Fr 13. Aug 2010, 11:14

Das Modul funktioniert wunderbar, herzlichen Dank! Kann jemanden kurz erklären, wie man auch das Startartikel in die Blätterfunktion mit einbezieht? Danke schonmal.

derSteffen
Beiträge: 847
Registriert: Mi 14. Dez 2005, 16:15
Wohnort: Königs Wusterhausen bei Berlin
Kontaktdaten:

Re: Modul Artikelblättern

Beitrag von derSteffen » So 19. Sep 2010, 08:56

Hi Prime,

probiere mal im Output die Zeile

Code: Alles auswählen

AND tblData.idartlang != CATLANG.startidartlang
in das zu ändern

Code: Alles auswählen

AND tblData.idartlang = CATLANG.startidartlang
MfG steffen

PS: Hast du vielleicht eine Lösung dafür, dass man nach den Überschriften sortieren kann (nicht nache Seitentitel)?

matthiasschnueriger
Beiträge: 60
Registriert: Mo 28. Nov 2005, 16:01
Kontaktdaten:

Re: Modul Artikelblättern

Beitrag von matthiasschnueriger » Mi 4. Jun 2014, 13:39

Ich finde das das Modul "Artikelblättern" nach wie vor sehr praktisch und verwende es regelmässig, sogar in der neuen 4.9er Version.
Das Modul von smac habe ich leicht modifiziert und auf meine Bedürfnisse angepasst (Modul-Output siehe unten)

Jetzt würde ich gerne anstelle der normalen Prev/Next-Navigation Vorschaubilder des vorherigen respektive nächsten Artikels anzeigen lassen. Wie muss ich die SQL-Abfrage anpassen, damit ich das CMS_IMG[1] des jeweiligen Artikels ausgeben kann?

Danke für die Unterstützung!

Code: Alles auswählen

<?php

/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname   :     artikellaettern
* Author      :     smac
* Created     :     21-09-2006
* Created     :     21-09-2006
************************************************/



$sortiert = "ARTLANG.created";
$steigung= "DESC";


$sql = "SELECT 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"]["art_lang"]." AS ARTLANG, ".$cfg["tab"]["cat_lang"]." AS CATLANG, ".$cfg["tab"]["content"]." AS tblData, ".$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
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");

$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 "";
?>
	
	
	<nav class="nav-thumbflip">
					<?php
					// Zurückblättern
					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];
						   echo "<a href=\"".$sess->url("$zurueck_link")."\" class=\"prev\"><span class=\"icon-wrap\"><i class=\"fa fa-angle-left\"></i></span>
								<img src=\"upload/bilder/portfolio/thumb.jpg\" alt=\"Previous thumb\"/></a> ";
					   }
					}
					

					// Weiterblättern
					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];
						   echo "<a href=\"".$sess->url("$weiter_link")."\" class=\"next\"><span class=\"icon-wrap\"><i class=\"fa fa-angle-right\"></i></span>
								<img src=\"upload/bilder/portfolio/thumb.jpg\" alt=\"Next thumb\"/></a> ";
					   }
					}
					
					}   //Ende nicht ausgeben, wenn nur eine Seite...
					
					}

					?>
                    
					
	</nav>

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

Re: Modul Artikelblättern

Beitrag von Faar » Mi 4. Jun 2014, 14:30

Eventuell kommst Du über die neue Klasse an den Bildpfad, sofern man weiß, welche ID dort gebraucht wird:
http://api.contenido.org/con493/class-c ... peImg.html
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

Oldperl
Beiträge: 4014
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Franken, Bayern
Kontaktdaten:

Re: Modul Artikelblättern

Beitrag von Oldperl » Mi 4. Jun 2014, 15:10

Nein Frank, die nützen einem da nix. Hier muss man gewünschten Daten schon zu Fuß mit Hilfe der cApi-Klassen auslesen.

Gruß aus Franken

Ortwin
CONTENIDO 4.9 Entwickler-Handbuch - Publikation auf medium.com zu meinem angedachten Entwickler-Buch zu CONTENIDO 4.9
ConLite 2.0, alternatives und stabiles Update von Contenido 4.8.x
phpBO Search Advanced - das neue Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

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

Re: Modul Artikelblättern

Beitrag von Faar » Mi 4. Jun 2014, 15:18

Ja eigentlich habe ich die Info ja auch da her, von der API :)

Wie würdest du es machen? :?
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

Oldperl
Beiträge: 4014
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Franken, Bayern
Kontaktdaten:

Re: Modul Artikelblättern

Beitrag von Oldperl » Do 5. Jun 2014, 13:22

Faar hat geschrieben:Wie würdest du es machen? :?
Da man ja in dem Modul offensichtlich die ArtikelId des Vorgänger- und Folgeartikels hat, und die Nummer sowie der Content-Typ ja auch gegeben ist könnte man über die Klasse cApiContentCollection, mit Hilfe der ermittelten idartlang, jeweils den gewünschten Content auslesen. Das sollte in diesem Fall die ID des Uploades/Bildes sein. Nun diesen noch per cUpload auslesen, Pfad zusammen basteln, evtl. das Bild croppen und cachen, und fertig.

Gruß aus Franken

Ortwin
CONTENIDO 4.9 Entwickler-Handbuch - Publikation auf medium.com zu meinem angedachten Entwickler-Buch zu CONTENIDO 4.9
ConLite 2.0, alternatives und stabiles Update von Contenido 4.8.x
phpBO Search Advanced - das neue Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

Zuschauer
Beiträge: 140
Registriert: Do 5. Dez 2013, 08:57
Kontaktdaten:

Re: Modul Artikelblättern

Beitrag von Zuschauer » Do 5. Jun 2014, 13:45

Fällt eigentlich nur mir auf, dass es sich hier um ein Modul für die 4.6.x handelt?
Ihr postet hier Lösungen und Doku-Links für die 4.9 :shock:

Gruß
Zuschauer

Oldperl
Beiträge: 4014
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Franken, Bayern
Kontaktdaten:

Re: Modul Artikelblättern

Beitrag von Oldperl » Do 5. Jun 2014, 14:07

Zuschauer hat geschrieben:...Ihr postet hier Lösungen und Doku-Links für die 4.9 :shock:
Deswegen muss man doch nicht gleich so geschockt sein :mrgreen:
Für die 4.6 würde ich an dem Modul eh nix mehr basteln. Und für die 4.8 geht es analog meiner Vorgehensweise, halt nur anstelle der neuen cApi-Klassen muss man die eine oder andere Corefunktion nehmen, bzw. sich selbst was basteln.

Aber grundsätzlich ist schon richtig das man natürlich schauen sollte für welche Version die Anpassungen gemacht werden sollen.

Edit: Davon abgesehen hieß es ja
matthiasschnueriger hat geschrieben:...verwende es regelmässig, sogar in der neuen 4.9er Version.
Gruß aus Franken

Ortwin
CONTENIDO 4.9 Entwickler-Handbuch - Publikation auf medium.com zu meinem angedachten Entwickler-Buch zu CONTENIDO 4.9
ConLite 2.0, alternatives und stabiles Update von Contenido 4.8.x
phpBO Search Advanced - das neue Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

Zuschauer
Beiträge: 140
Registriert: Do 5. Dez 2013, 08:57
Kontaktdaten:

Re: Modul Artikelblättern

Beitrag von Zuschauer » Do 5. Jun 2014, 14:59

Oldperl hat geschrieben:Davon abgesehen hieß es ja
matthiasschnueriger hat geschrieben:...verwende es regelmässig, sogar in der neuen 4.9er Version.
... was nicht heißt "nur noch in der neuen 4.9er Version" ;)
Außerdem, auch wenn es alt ist, schauen hier evtl. noch Leute rein, die tatsächlich die 4.6 noch einsetzen.
Wenn dann eine Frage für die neue Version sein sollte, sollte der Fragesteller lieber dort im Forum posten.
Und hier gehören dann m.E. nur Lösungen für die alte Version hin.

Gruß
Zuschauer

Oldperl
Beiträge: 4014
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Franken, Bayern
Kontaktdaten:

Re: Modul Artikelblättern

Beitrag von Oldperl » Do 5. Jun 2014, 17:31

Ach geh... :wink:
Wenn' s dich stört dann schreib doch einfach nen Post im 4.9er Forum und setz nen Link hier her :mrgreen:

Und bevor das hier noch mehr offtopic wird - Du hast ja recht und man könnte sicherlich so vieles so viel anders machen in dem Forum hier... 8)

Gruß aus Franken

Ortwin
CONTENIDO 4.9 Entwickler-Handbuch - Publikation auf medium.com zu meinem angedachten Entwickler-Buch zu CONTENIDO 4.9
ConLite 2.0, alternatives und stabiles Update von Contenido 4.8.x
phpBO Search Advanced - das neue Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

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

Re: Modul Artikelblättern

Beitrag von Faar » Do 5. Jun 2014, 17:38

Wir bräuchten hier im Forum so eine Plauder Rubrik, in der nur geplaudert wird 8)
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

Oldperl
Beiträge: 4014
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Franken, Bayern
Kontaktdaten:

Re: Modul Artikelblättern

Beitrag von Oldperl » Do 5. Jun 2014, 21:34

[Ironie An]Nee Frank, lass mal, dann hätten wir ja gar keine Zeit mehr was zu schaffen :mrgreen: [Ironie Aus]

Gruß aus Franken

Ortwin
CONTENIDO 4.9 Entwickler-Handbuch - Publikation auf medium.com zu meinem angedachten Entwickler-Buch zu CONTENIDO 4.9
ConLite 2.0, alternatives und stabiles Update von Contenido 4.8.x
phpBO Search Advanced - das neue Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

Gesperrt