2 artikellisten im template - problem beim blättern
-
- Beiträge: 40
- Registriert: Do 20. Nov 2003, 16:01
- Wohnort: Deutscher Meister 2004 ;-)
- Kontaktdaten:
2 artikellisten im template - problem beim blättern
hallo contenido-gemeinde,
ich benutze in einem template zwei verschiedene artikellisten von kummer:
- Artikelliste#3a v1.0 mit Bild
- w3concepts_alist_v1
funktioniert fast alles wunderbar. nur habe ich leider das problem, dass beim weiterblättern in einer liste auch die zweite artikelliste mit weitergeblättert wird.
habe mit der suche leider nichts gefunden, hat jemand von euch einen tipp für mich?
danke und gruß,
der abweichler
ich benutze in einem template zwei verschiedene artikellisten von kummer:
- Artikelliste#3a v1.0 mit Bild
- w3concepts_alist_v1
funktioniert fast alles wunderbar. nur habe ich leider das problem, dass beim weiterblättern in einer liste auch die zweite artikelliste mit weitergeblättert wird.
habe mit der suche leider nichts gefunden, hat jemand von euch einen tipp für mich?
danke und gruß,
der abweichler
-
- Beiträge: 5478
- Registriert: Di 2. Mär 2004, 21:11
- Wohnort: Halchter, wo sonst? ;-)
- Kontaktdaten:
-
- Beiträge: 40
- Registriert: Do 20. Nov 2003, 16:01
- Wohnort: Deutscher Meister 2004 ;-)
- Kontaktdaten:
hallo,
erst einmal vielen dank für die antworten. die module sind einmal von kummer und einmal eins von kummer, modifiziert von craxx
es handelt sich um folgende module:
http://www.contenido.org/forum/viewtopi ... w3concepts
und:
http://www.contenido.org/forum/viewtopi ... w3concepts
werden hier vielleicht die selben variablen oder so verwendet? bin für jede hilfe dankbar.
gruß, der abweichler
erst einmal vielen dank für die antworten. die module sind einmal von kummer und einmal eins von kummer, modifiziert von craxx
es handelt sich um folgende module:
http://www.contenido.org/forum/viewtopi ... w3concepts
und:
http://www.contenido.org/forum/viewtopi ... w3concepts
werden hier vielleicht die selben variablen oder so verwendet? bin für jede hilfe dankbar.
gruß, der abweichler
das problem ist, dass beide die gleichen übergabeparameter verwenden. du musst eines der beiden module anpassen, damit statt des übergabeparameters einer genommen wird, der im gewählten template eindeutig ist.
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
-
- Beiträge: 40
- Registriert: Do 20. Nov 2003, 16:01
- Wohnort: Deutscher Meister 2004 ;-)
- Kontaktdaten:
hi kummer,
vielen dank für deine antwort.
ich als php-laie:
um welche parameter handelt es sich?
würde mich um hilfe freuen.
muss ich nur im output oder auch im input etwas ändern?
was genau muss ich ändern (variabel-namen?)?
danke im voraus für deine hilfe.
der abweichler
ps:
hier der output des moduls, dass ich ändern möchte (als zweite artikelliste benutze ich die artikelliste mit anzeige der unterkategorien(http://www.contenido.org/forum/viewtopi ... w3concepts.) :
vielen dank für deine antwort.
ich als php-laie:

um welche parameter handelt es sich?
würde mich um hilfe freuen.
muss ich nur im output oder auch im input etwas ändern?
was genau muss ich ändern (variabel-namen?)?
danke im voraus für deine hilfe.
der abweichler
ps:
hier der output des moduls, dass ich ändern möchte (als zweite artikelliste benutze ich die artikelliste mit anzeige der unterkategorien(http://www.contenido.org/forum/viewtopi ... w3concepts.) :
Code: Alles auswählen
<?php
// Manuelle Konfiguration des Moduls
$uploadpfad = "/cms/upload/"; // Relativ zum Root-Verzeichnis (mit Slash am Anfang und am Ende)
$thumbnailpfad = "/cms/upload/bilder/miniaturbilder/"; //relativ zum root-verzeichnis (mit Slash am Anfang und am Ende)
// Konfiguration
$categorie = "CMS_VALUE[0]";
$angezeigte_anzahl = "CMS_VALUE[1]";
if ($angezeigte_anzahl == '') $angezeigte_anzahl = 10;
$startartikel = "CMS_VALUE[2]";
if ($startartikel == '') $startartikel = false;
$subheadline = "CMS_VALUE[3]";
$navigationslink['previous'] = "CMS_VALUE[4]";
if ($navigationslink['previous'] == '') $navigationslink['previous'] = '[:: rückwärts ]';
$navigationslink['next'] = "CMS_VALUE[5]";
if ($navigationslink['next'] == '') $navigationslink['next'] = '[ vorwärts ::]';
$ebene = "CMS_VALUE[6]";
$bildbreite = "CMS_VALUE[7]";
$limit = (isset($_GET['displaylimit']) && $_GET['displaylimit'] > 0)?($_GET['displaylimit']):(0);
$db = new DB_Contenido;
$db2 = new DB_Contenido;
// Wenn Startartikel "true" ist, werden die Startartikel dargestellt, sonst nicht.
$nurstartartikel = ($startartikel)?(''):('AND d.is_start = 0');
// Liest die Anzahl Betroffener Artikel aus der Datenbank.
switch ($ebene) {
case -2:
$sql_1 = "
SELECT count(*) AS anzahl
FROM {$cfg['tab']['cat']} AS a,
{$cfg['tab']['cat']} AS b,
{$cfg['tab']['cat']} AS c
LEFT JOIN {$cfg['tab']['cat_art']} AS d ON c.idcat = d.idcat
LEFT JOIN {$cfg['tab']['art_lang']} AS e ON d.idart = e.idart
WHERE
(
(
c.parentid = b.idcat
AND b.parentid = a.idcat
)
OR
(
c.idcat = b.idcat
AND b.parentid = a.idcat
)
OR
(
c.idcat = b.idcat
AND b.idcat = a.idcat
)
)
AND a.idcat = $categorie
AND e.online = 1
AND e.redirect = 0
AND e.external_redirect = 0
AND e.idlang = $lang
$nurstartartikel
";
$sql_2 = "
SELECT c.idcat, d.idart, e.idartlang, e.created, DATE_FORMAT(e.created,'%d.%m.%y') AS erstellungsdatum
FROM {$cfg['tab']['cat']} AS a,
{$cfg['tab']['cat']} AS b,
{$cfg['tab']['cat']} AS c
LEFT JOIN {$cfg['tab']['cat_art']} AS d ON c.idcat = d.idcat
LEFT JOIN {$cfg['tab']['art_lang']} AS e ON d.idart = e.idart
WHERE
(
(
c.parentid = b.idcat
AND b.parentid = a.idcat
)
OR
(
c.idcat = b.idcat
AND b.parentid = a.idcat
)
OR
(
c.idcat = b.idcat
AND b.idcat = a.idcat
)
)
AND a.idcat = $categorie
AND e.online = 1
AND e.redirect = 0
AND e.external_redirect = 0
AND e.idlang = $lang
$nurstartartikel
ORDER BY e.artsort DESC
LIMIT $limit, $angezeigte_anzahl
";
break;
case -1:
$sql_1 = "
SELECT count(*) AS anzahl
FROM {$cfg['tab']['cat']} AS a,
{$cfg['tab']['cat']} AS b,
{$cfg['tab']['cat']} AS c
LEFT JOIN {$cfg['tab']['cat_art']} AS d ON b.idcat = d.idcat
LEFT JOIN {$cfg['tab']['art_lang']} AS e ON d.idart = e.idart
WHERE
(
(
c.idcat = b.idcat
AND b.parentid = a.idcat
)
OR
(
c.idcat = b.idcat
AND b.idcat = a.idcat
)
)
AND a.idcat = $categorie
AND e.online = 1
AND e.redirect = 0
AND e.external_redirect = 0
AND e.idlang = $lang
$nurstartartikel
";
$sql_2 = "
SELECT c.idcat, d.idart, e.idartlang, e.created, DATE_FORMAT(e.created,'%d.%m.%y') AS erstellungsdatum
FROM {$cfg['tab']['cat']} AS a,
{$cfg['tab']['cat']} AS b,
{$cfg['tab']['cat']} AS c
LEFT JOIN {$cfg['tab']['cat_art']} AS d ON c.idcat = d.idcat
LEFT JOIN {$cfg['tab']['art_lang']} AS e ON d.idart = e.idart
WHERE
(
(
c.idcat = b.idcat
AND b.parentid = a.idcat
)
OR
(
c.idcat = b.idcat
AND b.idcat = a.idcat
)
)
AND a.idcat = $categorie
AND e.online = 1
AND e.redirect = 0
AND e.external_redirect = 0
AND e.idlang = $lang
$nurstartartikel
ORDER BY e.artsort DESC
LIMIT $limit, $angezeigte_anzahl
";
break;
case 0:
$sql_1 = "
SELECT count(*) AS anzahl
FROM {$cfg['tab']['cat']} AS a,
{$cfg['tab']['cat']} AS b,
{$cfg['tab']['cat']} AS c
LEFT JOIN {$cfg['tab']['cat_art']} AS d ON b.idcat = d.idcat
LEFT JOIN {$cfg['tab']['art_lang']} AS e ON d.idart = e.idart
WHERE
(
(
c.idcat = b.idcat
AND b.idcat = a.idcat
)
)
AND a.idcat = $categorie
AND e.online = 1
AND e.redirect = 0
AND e.external_redirect = 0
AND e.idlang = $lang
$nurstartartikel
";
$sql_2 = "
SELECT c.idcat, d.idart, e.idartlang, e.created, DATE_FORMAT(e.created,'%d.%m.%y') AS erstellungsdatum
FROM {$cfg['tab']['cat']} AS a,
{$cfg['tab']['cat']} AS b,
{$cfg['tab']['cat']} AS c
LEFT JOIN {$cfg['tab']['cat_art']} AS d ON c.idcat = d.idcat
LEFT JOIN {$cfg['tab']['art_lang']} AS e ON d.idart = e.idart
WHERE
(
(
c.idcat = b.idcat
AND b.idcat = a.idcat
)
)
AND a.idcat = $categorie
AND e.online = 1
AND e.redirect = 0
AND e.external_redirect = 0
AND e.idlang = $lang
$nurstartartikel
ORDER BY e.created DESC
LIMIT $limit, $angezeigte_anzahl
";
break;
}
$db->query($sql_1);
$db->next_record();
$anzahl_artikel = $db->f("anzahl");
$db->query($sql_2);
// HTML am Anfang der Ausgabe
echo '</p><table cellpadding="0" cellspacing="0" width="100%"><tr><td>';
while ($db->next_record()) {
$sql = "
SELECT a.value, a.typeid, b.type, c.filename, c.dirname FROM {$cfg['tab']['content']} AS a
LEFT JOIN {$cfg['tab']['type']} AS b ON a.idtype = b.idtype
LEFT JOIN {$cfg['tab']['upl']} AS c ON a.value = c.idupl
WHERE
a.idartlang = ".$db->f("idartlang")."
AND (
b.type = 'CMS_HTMLHEAD'
OR b.type = 'CMS_IMG'
)
ORDER BY b.type, a.typeid ASC
";
$db2->query($sql);
$db2->next_record();
$link = $sess->url("front_content.php?client=$client&lang=$lang&idcat=".$db->f("idcat")."&idart=".$db->f("idart"));
$ueberschrift = urldecode($db2->f("value"));
$datum = $db->f("erstellungsdatum");
$db2->next_record();
$sql = "
SELECT a.value, a.typeid, b.type, c.filename, c.dirname FROM {$cfg['tab']['content']} AS a
LEFT JOIN {$cfg['tab']['type']} AS b ON a.idtype = b.idtype
LEFT JOIN {$cfg['tab']['upl']} AS c ON a.value = c.idupl
WHERE
a.idartlang = ".$db->f("idartlang")."
AND (
b.type = 'CMS_HTML'
)
ORDER BY b.type, a.typeid ASC
";
// NEU: Liest die zweite Headline aus. START
$sql3 = "
SELECT a.value, a.typeid, b.type, c.filename, c.dirname FROM {$cfg['tab']['content']} AS a
LEFT JOIN {$cfg['tab']['type']} AS b ON a.idtype = b.idtype
LEFT JOIN {$cfg['tab']['upl']} AS c ON a.value = c.idupl
WHERE
a.idartlang = ".$db->f("idartlang")."
AND (
b.type = 'CMS_HTMLHEAD'
)
ORDER BY b.type, a.typeid ASC
";
$db2->query($sql3);
$db2->next_record();
$db2->next_record();
$nextheadline = urldecode($db2->f("value"));
// NEU: Liest die zweite Headline aus. ENDE
$db2->query($sql);
$db2->next_record();
$newsubheadline = strip_tags(urldecode($db2->f("value")));
$sql = "
SELECT a.value, a.typeid, b.type, c.filename, c.dirname FROM {$cfg['tab']['content']} AS a
LEFT JOIN {$cfg['tab']['type']} AS b ON a.idtype = b.idtype
LEFT JOIN {$cfg['tab']['upl']} AS c ON a.value = c.idupl
WHERE
a.idartlang = ".$db->f("idartlang")."
AND (
b.type = 'CMS_IMG'
)
ORDER BY b.type, a.typeid ASC
";
$db2->query($sql);
$bild_vorhanden = false;
while ($db2->next_record()) {
if ($db2->f("type") == 'CMS_IMG' && $db2->f("typeid") == 1) {
$bilddateiname = "{$thumbnailpfad}{$bildbreite}_".$db2->f("filename").".jpg";
if (!file_exists($cfg['path']['frontend'].$bilddateiname)) {
$src_image_size = getimagesize($cfg['path']['frontend'].$uploadpfad.$db2->f("dirname").$db2->f("filename"));
$bildhoehe = round($src_image_size[1] * $bildbreite / $src_image_size[0]);
if ($bildhoehe > $bildbreite) {
$bildhoehe = $bildbreite;
$bildbreite = round($src_image_size[0] * $bildhoehe / $src_image_size[1]);
}
$dst_im = imagecreatetruecolor($bildbreite,$bildhoehe);
if ($src_image_size[2] == 1) {
$src_im = imagecreatefromGIF($cfg['path']['frontend'].$uploadpfad.$db2->f("dirname").$db2->f("filename"));
} elseif ($src_image_size[2] == 2) {
$src_im = @ImageCreateFromJPEG($cfg['path']['frontend'].$uploadpfad.$db2->f("dirname").$db2->f("filename"));
} else {
$src_im = imagecreatefromgd($cfg['path']['frontend'].$uploadpfad.$db2->f("dirname").$db2->f("filename"));
}
imagecopyresampled ($dst_im,$src_im,0,0,0,0,$bildbreite,$bildhoehe,$src_image_size[0],$src_image_size[1]);
imagejpeg ($dst_im,$cfg['path']['frontend'].$bilddateiname,100);
}
$bild_vorhanden = true;
}
}
if ($bild_vorhanden) {
$width = "CMS_VALUE[7]";
$width += 5;
$src_image_size = getimagesize($cfg['path']['frontend'].$bilddateiname);
echo "<span class=\"headline\">$ueberschrift</span> <table width=\"500\" border=\"0\" cellspacing=\"2\" cellpadding=\"0\"><tr><td valign=\"top\" width=\"100\"><a href=\"$link\"><img src=\"$bilddateiname\" alt=\"\" align=\"left\" border=\"1\"></a></td><td class=\"subheadline\" valign=\"top\">$nextheadline <a href=\"$link\"> mehr...</a></td><tr></table>";
} else {
echo "$ueberschrift<br/>$datum<br/><br/>$newsubheadline<br/>$link<br/><br/><br/>";
}
}
// HTML am Ende der Ausgabe
echo '</td></tr></table>';
if ($limit > 0 || $anzahl_artikel > $limit + $angezeigte_anzahl) {
echo '<table cellpadding="0" cellspacing="0" style="width:100%"><tr>';
if ($limit > 0) {
$displaylimit = ($limit - $angezeigte_anzahl >= 0)?($limit - $angezeigte_anzahl):(0);
echo "<td align=\"left\"><a href=\"".$sess->url("front_content.php?client=$client&lang=$lang&idcat=$idcat&idart=$idart&displaylimit=$displaylimit")."\">{$navigationslink['previous']}</a></td>";
} else {
echo '<td> </td>';
}
if ($anzahl_artikel > $limit + $angezeigte_anzahl) {
$displaylimit = $limit + $angezeigte_anzahl;
echo "<td align=\"right\"><a href=\"".$sess->url("front_content.php?client=$client&lang=$lang&idcat=$idcat&idart=$idart&displaylimit=$displaylimit")."\">{$navigationslink['next']}</a></td>";
} else {
echo '<td> </td>';
}
echo '</tr></table>';
}
?>
-
- Beiträge: 10
- Registriert: Mi 14. Jan 2004, 14:36
- Wohnort: Dresden
- Kontaktdaten:
2 Artikellisten sind kein Problem
ist kein Problem 2 mal eine Artikelliste von Kummer zu verwenden:
ändere einfach mit Find&Replace im Output ALLE
in
kannst auch ne andere Zahl nehmen oder es umbenennen wie du willst, jedenfalls funktioniert das Blättern dann vernünftig, soll heißen, das zweite Modul blättert nicht mehr mit
schaust du hier, siehst du daß es funktioniert
http://biglarv.prinzkafka-studio.de/cms ... 8&idart=16
ändere einfach mit Find&Replace im Output ALLE
Code: Alles auswählen
displaylimit
Code: Alles auswählen
displaylimit2
schaust du hier, siehst du daß es funktioniert
http://biglarv.prinzkafka-studio.de/cms ... 8&idart=16
++Frieden nur ein Wort, Krieg nur ein Befehl++
-
- Beiträge: 140
- Registriert: Fr 20. Feb 2004, 17:48
- Wohnort: Braunschweig
- Kontaktdaten:
Ich stand gerade selbst vor dem Problem mit dem Einsatz mehrerer Artikellisten in einem Template.
Da ich aber nicht das Modul kopieren und unter verschiedenen Versionen einsetzen wollte hab ich Folgendes mit Erfolg versucht:
Ein alter Artikel hier im Forum, es ging um die Ermittlung der Containernummer im Template http://www.contenido.org/forum/viewtopi ... inernummer inspirierte mich zu dieser Lösung:
"$eintrag", bzw. "eintrag" ist hier mit "$displaylimit" bzw. "displaylimit" zu ersetzen.
Getestet in der Version 4.4.4
Im INPUT :
und im OUTPUT:
WICHTIG: Das Template muß einmal aufgerufen und "abgeschickt" werden. Also einmal den grünen Button drücken.
Sonst wird die Nummer des Templates nicht erzeugt und an das OUTPUT übermittelt
Jetzt kann man bei getesteten 2 Artikellisten im Template munter in der oberen und unteren Navigation hin und her klicken, ohne das er sich anscheinend verhaspelt.
Was hab ich gemacht?:
Ich erzeuge im INPUT einen Variablennamen "eintrag" + der Containernummer im Template (z.B. "13") also "eintrag13".
Den übergebe ich per "hidden" an das OUTPUT.
Der Einsatz von "$CMS_VALUE[1000]" erzeugt den Variablennamen "$eintrag13".
(Das kann man erkennen, wenn man den betreffenden Eintrag in der Tabelle "con_code" ansieht.)
Ich arbeite jetzt schon etwas länger mit dem Einsatz von $CMS_VALUE[x] in der Übergabe von Werten aus Optionslisten. Es gab dabei noch nie Probleme und erspart eine Menge if-Abfragen oder switches.
Was mir aber zu denken gibt:
Es kommt je Klick (obere oder untere Artikelliste) folgendes in der Adresszeile heraus:
Der neue "Klick" wird immer an die bestehende Adresse angehängt.
Dadurch ist dann natürlich auch über die "Zurückfunktion" des Browsers jeder "Klick" wider rückgängig zu machen.
Ist das gesund??? 
Kann es zu Problemen führen, wenn jemand zu oft hin- und her klickt und dabei eine ultralange Adresse produziert?
BTW: Das tritt aber auch ein, wenn ich zwei Artikellisten mit unterschiedlichen Variablennamen, also "$eintag" / "eintrag" und $eintag2" / "eintrag2" einsetze. Der Errorlog bleibt Eintragsfrei.
Grüße,
Karin.
Da ich aber nicht das Modul kopieren und unter verschiedenen Versionen einsetzen wollte hab ich Folgendes mit Erfolg versucht:
Ein alter Artikel hier im Forum, es ging um die Ermittlung der Containernummer im Template http://www.contenido.org/forum/viewtopi ... inernummer inspirierte mich zu dieser Lösung:
"$eintrag", bzw. "eintrag" ist hier mit "$displaylimit" bzw. "displaylimit" zu ersetzen.
Getestet in der Version 4.4.4
Im INPUT :
Code: Alles auswählen
//Zur Uebergabe der Templatenummer:
$mcnr = "eintrag";
$mcnr .= $cnumber;
echo '<input type="hidden" name="CMS_VAR[1000]" value="'.$mcnr.'">';
Code: Alles auswählen
statt
$eintrag => $CMS_VAR[1000]
bzw. statt
eintrag => CMS_VAR[1000]
Sonst wird die Nummer des Templates nicht erzeugt und an das OUTPUT übermittelt
Jetzt kann man bei getesteten 2 Artikellisten im Template munter in der oberen und unteren Navigation hin und her klicken, ohne das er sich anscheinend verhaspelt.
Was hab ich gemacht?:
Ich erzeuge im INPUT einen Variablennamen "eintrag" + der Containernummer im Template (z.B. "13") also "eintrag13".
Den übergebe ich per "hidden" an das OUTPUT.
Der Einsatz von "$CMS_VALUE[1000]" erzeugt den Variablennamen "$eintrag13".
(Das kann man erkennen, wenn man den betreffenden Eintrag in der Tabelle "con_code" ansieht.)
Ich arbeite jetzt schon etwas länger mit dem Einsatz von $CMS_VALUE[x] in der Übergabe von Werten aus Optionslisten. Es gab dabei noch nie Probleme und erspart eine Menge if-Abfragen oder switches.
Was mir aber zu denken gibt:
Es kommt je Klick (obere oder untere Artikelliste) folgendes in der Adresszeile heraus:
Der neue "Klick" wird immer an die bestehende Adresse angehängt.
Dadurch ist dann natürlich auch über die "Zurückfunktion" des Browsers jeder "Klick" wider rückgängig zu machen.
Code: Alles auswählen
Aufruf der Seite:
http://localhost/abw/front_content.php?idcat=4&client=1&lang=1&style=s
1.Klick: (unten)
http://localhost/abw/front_content.php?idcat=4&client=1&lang=1&style=s&a=view&eintrag13=6
2. Klick: (oben)
http://localhost/abw/front_content.php?idcat=4&client=1&lang=1&style=s&a=view&eintrag13=6&a=view&eintrag12=4

Kann es zu Problemen führen, wenn jemand zu oft hin- und her klickt und dabei eine ultralange Adresse produziert?
BTW: Das tritt aber auch ein, wenn ich zwei Artikellisten mit unterschiedlichen Variablennamen, also "$eintag" / "eintrag" und $eintag2" / "eintrag2" einsetze. Der Errorlog bleibt Eintragsfrei.
Grüße,
Karin.