Seite 1 von 2

Anzeige der ANZAHL Artikel pro Unterkategorie??

Verfasst: Mi 2. Jun 2004, 14:48
von uups
Kingt ein bisschen kompliziert, ist aber eigentlich ganz einfach:

Auf der Startseite einer Kategorie soll (im Contentbereich) eine Auflistung der Unterkategorien inkl. der (aktuellen) Anzahl der darin enthaltenen Artikel gezeigt werden. Es reicht vollkommen wenn hinter dem Namen der Unterkategorie in Klammern die Anzahl der Artikel steht (ohne Titel usw.)

Beispiel: Stellenangebote

- Hamburg (4)
- Berlin (3)
- Stuttgart (2)

Wenn dann eine Stadt angeklickt wird, kommt man auf die normale Artikelübersicht der betr. Unterkategorie!



Alles klar?

Gibt's schon so was?

Verfasst: Mi 9. Jun 2004, 06:56
von uups
Weiss denn niemand eine Lösung?

Verfasst: Mi 9. Jun 2004, 08:05
von Halchteranerin
uups hat geschrieben:Weiss denn niemand eine Lösung?
Doch, Du musst das selber schreiben. :)
Mir ist nicht bekannt, dass so etwas existiert.

Gruss
Christa

Verfasst: Mi 9. Jun 2004, 08:11
von uups
Schade...

Werd's versuchen... :roll:

Verfasst: Mi 9. Jun 2004, 08:29
von kummer
es existiert ein modul, welches in unterkategorien nach artikeln sucht und diese auflistet. du kannst ja von diesem ausgehen, als starting-point sozusagen. darin findest du auch die notwendigen abfragen auf die db, die du anpassen kannst.

such mal nach artikelliste mit unterkategorien im forum.

hope this helps!

gruss,
andreas

Verfasst: Mi 9. Jun 2004, 13:54
von kummer
hallo uups

ich habe dir ein modul geschrieben. ich hoffe, du hast noch nicht selber was gemacht (dann wär's nämlich schade gewesen um die investierte zeit).

du findest das entsprechende modul hier zum download:
http://w3concepts.net/cms/front_content.php?idcat=50

das modul gibt die anzahl artikel an, die sich in der jeweiligen Unterkategorie sowie allenfalls vorhandener unterunterkategorien in der selben sprache finden. zwischen startartikeln und übrigen artikeln wird in dieser version nicht unterschieden.

ich hoffe, du hast freude dran.

gruss,
andreas

Verfasst: Mi 9. Jun 2004, 13:59
von uups
hey super!! (habe noch nichts gemacht, deine Zeit ist also gut investiert!)

Werd's sobald als möglich ausprobieren...

Danke

Verfasst: Mi 9. Jun 2004, 16:35
von uups
Andreas, das Modul funktioniert perfekt.

Allerdings habe ICH bei der Aufgabenstellung einen kleinen Denkfehler gemacht:

Jede Unterkategorie muss ja einen Startartikel haben (für die Artikelliste), auch wenn kein Job in dieser Kategorie erfasst wurde. Sonst springt Contenido auf die Startseite.

Im Modul müsste also der Start-(Übersichts)Artikel von der ANZAHL Artikel abgezogen werden, sonst wird die Zahl (1) angezeigt ohne dass effektiv ein Jobartikel erfasst wurde...

Verfasst: Mi 9. Jun 2004, 20:40
von kummer
kannst du das noch selber anpassen?

Verfasst: Mi 9. Jun 2004, 22:06
von uups
Eher nicht... :oops:

Verfasst: Mi 9. Jun 2004, 22:36
von kummer
ok, ich werde das morgen noch rasch machen und poste den code dann an dieser stelle.

gruss,
andreas

Verfasst: Do 10. Jun 2004, 08:55
von kummer
der output-bereich des moduls ist durch folgenden code zu ersetzen:

Code: Alles auswählen

<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname   :     w3concepts.ukatlist.v1
* Author      :     Andreas Kummer
* Copyright   :     mumprecht & kummer w3concepts
* Created     :     06-09-2004
* Modified    :     06-09-2004
************************************************/

// konfiguration
$categorie = "CMS_VALUE[0]";

$db = new DB_Contenido;
$db2 = new DB_Contenido;

// liest die unterkategorien aus der datenbank
$sql = "
	SELECT a.idcat, b.name FROM {$cfg['tab']['cat']} AS a
	LEFT JOIN {$cfg['tab']['cat_lang']} AS b ON a.idcat = b.idcat
	WHERE
		b.idlang = $lang
		AND a.parentid = $categorie
	ORDER BY b.name
	";

$db->query($sql);
    
while ($db->next_record()) {
	$categorie = $db->f("idcat");
	// liest die anzahl artikel aus der datenbank
	$sql2 = "
		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 d.is_start = 0
	                    AND e.online = 1
	                    AND e.redirect = 0
	                    AND e.external_redirect = 0
	                    AND e.idlang = $lang
	         ";

	$db2->query($sql2);
	$db2->next_record();

	$unterkategorie[$db->f("name")] = array($db2->f("anzahl"),$sess->url("front_content.php?client=$client&lang=$lang&idcat=".$db->f("idcat")));
}

// ausgabe an den schirm
echo "<p>";
foreach ($unterkategorie as $bezeichner => $details) {
	echo "<a href=\"{$details[1]}\">{$bezeichner} ({$details[0]})</a><br/>";
}
echo "</p>";
?>
dann wird nur die anzahl der artikel ausgegeben, die nicht startartikel sind.

gruss,
andreas

Verfasst: Do 10. Jun 2004, 09:13
von JulianH.
n1 @ kummi :wink:

was machst du Beruflich wenn ich fragen darf...damit man mal ebend so ein Modul schreibt?
Oder macht das nur die Zeit :D

gruß
JulianH.

Verfasst: Do 10. Jun 2004, 09:55
von kummer
ich bin leidenschaftlicher programmierer - auch beruflich... :D

Verfasst: Do 10. Jun 2004, 09:59
von JulianH.
cool....
ich bin auf dem Weg dahin...
die Entscheidung sich auf den Weg zu machen ist schon Ziel genug *hrhr*

nene...ich mach ne Ausbildung zum Fachinformatiker für Anwendungsentwicklung....von daher ist die Leidenschaft schon da, nur das ich halt noch nciht so viel kann ^^

gruß
Julian