nein, die queries musst du auch kopieren. also den ganzen output-code. die queries sind nicht dieselben, wie beim original-modul. der input-code brauchst du nicht zu ersetzen; der ist identisch.hyperjojo hat geschrieben:die querys habe ich nicht nochmal kopiert, die müssten ja stimmen, oder?
neues artikellistenmodul :: mit anzeige der unterkategorien
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
hi,
ja, also den output-source hatte ich komplett so kopiert...
noch ne idee?
ja, also den output-source hatte ich komplett so kopiert...
Code: Alles auswählen
<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname : w3concepts_alist_v1
* Author : Andreas Kummer
* Copyright : mumprecht & kummer w3concepts
* Created : 06-05-2004
* Modified : 06-05-2004
************************************************/
// 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]";
if ($subheadline == '') $subheadline = 200;
$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]";
$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
$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
$nurstartartikel
ORDER BY e.created 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
$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
$nurstartartikel
ORDER BY e.created 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
$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
$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);
echo '<p><table cellpadding="0" cellspacing="0" style="width:100%">';
while ($db->next_record()) {
$sql = "
SELECT a.value, b.pagetitle FROM {$cfg['tab']['content']} as a
LEFT JOIN {$cfg['tab']['art_lang']} as b ON a.idartlang = b.idartlang
WHERE
a.idartlang = ".$db->f("idartlang")."
AND a.idtype = 1
ORDER BY 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"));
echo "<tr><td class=\"artlist_headline\"><a href=\"$link\" class=\"artlist_headlinelink\">".urldecode($db2->f("pagetitle"))."</a></td>";
echo "<td class=\"artlist_date\">".$db->f("erstellungsdatum")."</td></tr>";
$db2->next_record();
// die subheadline auf die gewünschte länge reduzieren (trennung nur
// nach bzw. vor einem ganzen wort
if (strlen($db2->f("value")) > $subheadline) {
$newsubheadline = '';
$worte = explode (" ",strip_tags(urldecode($db2->f("value"))));
$zulang = false;
foreach ($worte as $wort) {
if (strlen($newsubheadline." ".$wort) >= $subheadline) $zulang = true;
$newsubheadline = (!$zulang)?($newsubheadline." ".$wort):($newsubheadline);
}
$newsubheadline .= "...";
} else {
$newsubheadline = strip_tags(urldecode($db2->f("value")));
}
echo "<tr><td class=\"artlist_subheadline\" colspan=\"2\">$newsubheadline</td></tr>";
}
echo '</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 style=\"text-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 style=\"text-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></p>';
}
?>
ich würde den query mal über phpmyadmin absetzten und schauen, was du für rückgabewerte erhälst. bei mir funktioniert das nämlich einwandfrei.
ich sehe nur zwei möglichkeiten:
(1) im pagetitle steht tatsächlich nichts oder
(2) der pagetitle steht in einem anderen feld.
ich sehe nur zwei möglichkeiten:
(1) im pagetitle steht tatsächlich nichts oder
(2) der pagetitle steht in einem anderen feld.
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
hi,
nöö, hab alles probiert. hab auch nochmal das modul, template usw. neu angelegt. bringt aber nix.
ich hab auch mal pagetitle durch title ersetzt. auch das bringt das gleiche bild zum vorschein.
im errorlog steht auch nix.
in der db ist aber alles dem richtigen feld zugewiesen...
auch über bekomme ich den korrekten pagetitle ausgegeben...
was könnte es noch sein?
ciao
JoJo
nöö, hab alles probiert. hab auch nochmal das modul, template usw. neu angelegt. bringt aber nix.
ich hab auch mal pagetitle durch title ersetzt. auch das bringt das gleiche bild zum vorschein.
im errorlog steht auch nix.
in der db ist aber alles dem richtigen feld zugewiesen...
auch über
Code: Alles auswählen
<?php
$sql="select * from ".$cfg["tab"]["art_lang"]." where idart='".$idart."' and idlang='".$lang."' LIMIT 1";
$db->query($sql);
$db->next_record();
$db->p('pagetitle');
?></
was könnte es noch sein?
ciao
JoJo
was erhälst du denn, wenn du diesen query:
mal per phpmyadmin absetzt?
Code: Alles auswählen
$sql = "
SELECT a.value, b.pagetitle FROM {$cfg['tab']['content']} as a
LEFT JOIN {$cfg['tab']['art_lang']} as b ON a.idartlang = b.idartlang
WHERE
a.idartlang = ".$db->f("idartlang")."
AND a.idtype = 1
ORDER BY a.typeid ASC
";
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
hallo,
da hat mir phpmyadmin natürlich nur fehlermeldungen gebracht. den code umgestellt auf
brachte dann aber leider keine Ausgabe. Keine Ahnung, woran das liegen soll.
Leider kenne ich mich in OO und phplib auch nicht aus, um selbst auf fehlersuche gehen zu können...
ciao
JoJo
da hat mir phpmyadmin natürlich nur fehlermeldungen gebracht. den code umgestellt auf
Code: Alles auswählen
SELECT a.value, b.pagetitle FROM cms_content as a
LEFT JOIN cms_art_lang as b ON a.idartlang = b.idartlang
WHERE
a.idartlang = 14
AND a.idtype = 1
ORDER BY a.typeid ASC;
Leider kenne ich mich in OO und phplib auch nicht aus, um selbst auf fehlersuche gehen zu können...
ciao
JoJo
Hallo!
Ich nutze das Modul schon seit paar Tagen. Jetzt ist mir aufgefallen, dass auch Artikel angezeigt werden, die nicht online geschaltet sind... Das ist natürlich nicht so gut... Ich habe in den Code geschaut, habe aber an mehreren Stellen gesehen, dass dort online = 1 abgefragt wird.
Wisst ihr warum?
Alex
Ich nutze das Modul schon seit paar Tagen. Jetzt ist mir aufgefallen, dass auch Artikel angezeigt werden, die nicht online geschaltet sind... Das ist natürlich nicht so gut... Ich habe in den Code geschaut, habe aber an mehreren Stellen gesehen, dass dort online = 1 abgefragt wird.
Wisst ihr warum?
Alex
Contenido 4.4.4 & 4.5.3-CVS
ich habe leider keine ahnnung. bei mir macht es genau das, was es machen soll.
bist du sicher, dass die aktualisierung in der datenbank auch wirklich erfolgt, wenn du einen artikel offline schaltest?
bist du sicher, dass die aktualisierung in der datenbank auch wirklich erfolgt, wenn du einen artikel offline schaltest?
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
Naja, eigentlich schon. Zumindest wird das Monitor-Symbol richtig angezeigt. Wo kann ich das genau kontrollieren?
Alex
PS: Ich habe gerade gesehen, dass das irgendwelche Geister-Artikel sind: Ich habe eine zweisprachige Seite. Diese drei Artikel sind eigentlich auf der englischen Seite eingefügt worden, automatisch auch in der deutschen. Wenn ich Sie in der deutschen löschen würde, würden auch die englischen Entsprechungen gelöscht werden. UND NUN?
Alex
PS: Ich habe gerade gesehen, dass das irgendwelche Geister-Artikel sind: Ich habe eine zweisprachige Seite. Diese drei Artikel sind eigentlich auf der englischen Seite eingefügt worden, automatisch auch in der deutschen. Wenn ich Sie in der deutschen löschen würde, würden auch die englischen Entsprechungen gelöscht werden. UND NUN?
Contenido 4.4.4 & 4.5.3-CVS
tja, dann dürfte es daran liegen, dass im code zwar geprüft wird, ob der artikel online ist, aber nicht ob die gewählte sprache online ist. mein site ist nur einsprachig, deshalb ist mir dieser sachverhalt noch nicht aufgefallen.
ich schaue mal über den code und gebe bescheid, sobald ich eine lösung gefunden habe. das dürfte allerdings erst morgen sein (bin schon fast im feierabend)...
gruss allerseits,
andreas
ich schaue mal über den code und gebe bescheid, sobald ich eine lösung gefunden habe. das dürfte allerdings erst morgen sein (bin schon fast im feierabend)...
gruss allerseits,
andreas
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
hallo leutchen
inzwischen gibt es von dieser artikelliste vier verschiedene versionen:
(1) die erste
(2) eine, die statt der headline den seitentitel ausgibt
(3) eine, die in klammern noch die kategorie anzeigt, in der sich der artikel befindet
und
(4) eine, die - wenn vorhanden - das erste bild aus dem artikel nimmt, von diesem ein thumbnail erstellt und in der artikelliste ausgibt.
das ganze hier anzuzeigen, würde einen etwas langen thread verursachen. ich habe deshalb auf meiner site einen download-bereich eingerichtet, in dem alle versionen zum download bereit stehen:
http://w3concepts.net/cms/front_content.php?idcat=50
feedback ist immer willkommen!
grüss euch,
andreas
inzwischen gibt es von dieser artikelliste vier verschiedene versionen:
(1) die erste
(2) eine, die statt der headline den seitentitel ausgibt
(3) eine, die in klammern noch die kategorie anzeigt, in der sich der artikel befindet
und
(4) eine, die - wenn vorhanden - das erste bild aus dem artikel nimmt, von diesem ein thumbnail erstellt und in der artikelliste ausgibt.
das ganze hier anzuzeigen, würde einen etwas langen thread verursachen. ich habe deshalb auf meiner site einen download-bereich eingerichtet, in dem alle versionen zum download bereit stehen:
http://w3concepts.net/cms/front_content.php?idcat=50
feedback ist immer willkommen!
grüss euch,
andreas
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
das problem mit der mehrsprachigkeit sollte überigens inzwischen gelöst sein. ich habe die queries aller versionen entsprechend angepasst. ich hoffe, dass es jetzt auch in mehrsprachigen sites einwandfrei funktioniert.
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
hi andreas.
gefällt mir echt gut dein modul. aber solche kleinen vorschaubilder wie unter www.w3concepts.net bei referenzen gehen dabei nicht, oder doch? sowas könnte ich gut gebrauchen. was für ein modul benutzt du den dafür?
vielen dank, alex
gefällt mir echt gut dein modul. aber solche kleinen vorschaubilder wie unter www.w3concepts.net bei referenzen gehen dabei nicht, oder doch? sowas könnte ich gut gebrauchen. was für ein modul benutzt du den dafür?
vielen dank, alex
doch, doch. das ist mit dem selben modul gemacht. die version w3concepts.alist.mod3.v1 macht die thumbnails automatisch.
weitere infos zum modul findest du hier:
http://w3concepts.net/cms/front_content ... 1&idart=90
weitere infos zum modul findest du hier:
http://w3concepts.net/cms/front_content ... 1&idart=90
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
Hallo,
ich bin mit Andreas' Modul nach wie vor sehr zufrieden
Aber ich würde gerne noch ne Kleinigkeit verändern, nämlich dass die Artikel nicht nach Erstellungsdatum, sondern alphabetisch sortiert dargestellt werden. Ich hab das im Output-Code (an 3 query-Stellen) damit versucht:
ersetzt durch
oder auch
Funktionierte aber beides nicht. Wie sollte ich es machen?
Grüße,
#ayshe
ich bin mit Andreas' Modul nach wie vor sehr zufrieden
Aber ich würde gerne noch ne Kleinigkeit verändern, nämlich dass die Artikel nicht nach Erstellungsdatum, sondern alphabetisch sortiert dargestellt werden. Ich hab das im Output-Code (an 3 query-Stellen) damit versucht:
Code: Alles auswählen
ORDER BY e.created DESC
Code: Alles auswählen
ORDER BY e.value DESC
Code: Alles auswählen
ORDER BY value DESC
Grüße,
#ayshe