Nur die 4 neuesten Artikel anzeigen

Gesperrt
andreas@nemenet
Beiträge: 23
Registriert: Mo 14. Feb 2005, 11:41
Wohnort: Osnabrück (Niedersachsen)
Kontaktdaten:

Nur die 4 neuesten Artikel anzeigen

Beitrag von andreas@nemenet » Mo 11. Apr 2005, 20:54

Hallo,

also ich möchte für ein Portal eine Artikelübersicht mit den 4 neuesten Artikel darstellen. Gibt es die Möglichkeit, das Modul so anzupassen, dass es nur die 4 neuesten Artikel nimmt, oder gibt es vielleicht dafür ein anderes Modul. Ich meine damit das Artikellistenmodul.

Ich hoffe ihr könnt mir helfen.

Gruß Andreas

Beleuchtfix
Beiträge: 1082
Registriert: Di 22. Jul 2003, 10:14
Wohnort: Hessen
Kontaktdaten:

Beitrag von Beleuchtfix » Mo 11. Apr 2005, 21:04


Gast

Beitrag von Gast » Mi 13. Apr 2005, 10:53

Nein leider nicht, er soll die letzten 4 erstellten, nicht besuchten Artikel nehmen.

Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin » Mi 13. Apr 2005, 10:59

das habe ich auch irgendwo, bzw. eigentlich die zuletzt geaenderten Seiten, reicht das? Sonst musst du die Abfrage halt etwas aendern.

Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin » Mi 13. Apr 2005, 11:03

ein aehnliches aber umfangreicheres Modul gibt's hier:
http://contenido.org/forum/viewtopic.php?p=45783#45783

Gast

Beitrag von Gast » Mi 13. Apr 2005, 11:20

also, ich blicke da nicht so ganz durch:

zeigt dieses modul die 4 letzten änderung einer Seite an, oder die aktualisierte fassung der 4 zuletzt geänderten seiten, wenns zweiteres ist, ist es genau das, was ich suche.

andreas@nemenet
Beiträge: 23
Registriert: Mo 14. Feb 2005, 11:41
Wohnort: Osnabrück (Niedersachsen)
Kontaktdaten:

Beitrag von andreas@nemenet » Mi 13. Apr 2005, 11:30

was ich auch noch wissen möchte, ist, ob diese Artikellistenmodule nur den Ordner untersucht, oder auch die Unterordner, die davon ausgehen, da es eine Übersicht über alle Artikel geben soll.

Beleuchtfix
Beiträge: 1082
Registriert: Di 22. Jul 2003, 10:14
Wohnort: Hessen
Kontaktdaten:

Beitrag von Beleuchtfix » Mi 13. Apr 2005, 12:46

Contenido speichert grundsätzlich keine alten Seiten ab. Alte Texte werden einfach überschrieben. Es gibt nur ein Log, in dem man nachsehen kann, wer was wann bearbeitet hat.

So wie ich das sehe, gibt das Modul eine Linkliste auf die zuletzt geänderten Artikel, egal ob sich ein Bild oder ein Text oder Dateien, die hochgeladen wurden, geändert hat.

Gruß
Florian

andreas@nemenet
Beiträge: 23
Registriert: Mo 14. Feb 2005, 11:41
Wohnort: Osnabrück (Niedersachsen)
Kontaktdaten:

Beitrag von andreas@nemenet » Mi 13. Apr 2005, 12:52

Also ich habe es jetzt noch mal getestet, aber es ist nicht das, was ich suche. Ich erkläre es nochmal.

Dieses CMS verwende ich für eine Newsportal. Das Newsportal ist in 7 Kategorien unterteilt, und für jede Kategorie habe ich einen Mandanten benutzt.

Die Seite, um die es geht, ist diese: http://inside.nemenet.de [falls die Addi nicht genannt werden darf, gebt mir Bescheid].

In dem leeren weißen Feld soll eine Übersicht aller Artikel dieses Mandanten sein, jedoch immer nur die 10 neuesten (genaue Anzahl noch nicht klar). Da es jedoch, wie ihr seht, 4 Unterbereiche gibt, und ich jedem Bereich wegen der Übersichtlichkeit einen Ordner verpasst habe, sollen diese Bereiche mit in diese Artikelliste einbezogen werden.

Gibt es da ein Modul. Es soll dann nur die Überschrift wieder gegeben werden (vielleicht sogar mit Bildvorschau), oder gibt es sowas noch nicht.

Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin » Mi 13. Apr 2005, 13:22

fertig gibt's so etwas nicht, soviel ich weiss. Da musst du schon selbst etwas schreiben oder ein bestehendes Modul, was in die Richtung deiner Wuensche geht, anpassen.

andreas@nemenet
Beiträge: 23
Registriert: Mo 14. Feb 2005, 11:41
Wohnort: Osnabrück (Niedersachsen)
Kontaktdaten:

Beitrag von andreas@nemenet » Mi 13. Apr 2005, 14:17

mist, und das bei meinen PHP Kenntnisse, die mich als Änfänger deklarieren.

Ähm, gibt es denn ein Script, was dem nahe kommt, oder besser noch 2 Scripte nennen, eins was die Unterordner durchsucht, und eins, was nur eine begrenzte Anzahl an Links wiedergibt. Könnt ihr mir da noch helfen.

Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin » Mi 13. Apr 2005, 15:07

das mit der (einstellbaren) begrenzten Anzahl ist beim Link von Beleuchtfix zu finden (es sind eigentlich zwei). Und ich denke mal (es ist schon eine Weile her, seit ich die Module geschrieben habe, da stecke ich nicht mehr richtig drin), dass du nur die SQL-Abfrage etwas aendern muesstest, damit sich das nur auf die aktuelle Kategorie bezieht (irgendwas mit AND CAT.idcat='$idcat' im WHERE-Teil). Oder so aehnlich, denn 100%ig habe ich nicht verstanden, was du haben willst. (Ich habe auch nicht verstanden, warum du pro Kategorie einen Mandanten angelegt hast, aber das musst du wissen. ;-) ). Versuch's mal ...

Gast

Beitrag von Gast » Do 14. Apr 2005, 09:34

Man könnte doch z.B. die Artikelliste von kummer dementsprechend abändern: die anzahl der angezeigten Artikel pro seite auf 10 (oder was immer du brauchst) einstellen und im Modul einfach die Seitennavigation zu den folgenden Seiten entfernen.

andreas@nemenet
Beiträge: 23
Registriert: Mo 14. Feb 2005, 11:41
Wohnort: Osnabrück (Niedersachsen)
Kontaktdaten:

Beitrag von andreas@nemenet » Do 14. Apr 2005, 23:57

Also ich habe das w3concepts_alist_v1 Modul nun verwendet, möchte es jedoch noch anpassen.

Also die Input Datei habe ich gelassen, die Output Datei etwas abgeändert:

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'] = '';

    $navigationslink['next'] = "CMS_VALUE[5]";
    if ($navigationslink['next'] == '') $navigationslink['next'] = '';

    $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 value FROM {$cfg['tab']['content']}
            WHERE
            idartlang = ".$db->f("idartlang")."
            AND idtype = 1
            ORDER BY 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 align=\"center\" width=\"50\"><img src=\"http://www.nemenet.de/zusatz/weltgeschehen/wirtschaftk.jpg\"></td>";    //das habe ich geändert

        echo "<td class=\"artlist_headline\"><a href=\"$link\" class=\"artlist_headlinelink\">".urldecode($db2->f("value"))."</a></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>&nbsp;</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>&nbsp;</td>';
        }
        echo '</tr></table></p>';
    }
?>
Und zwar habe ich bei der Datei das geändert, wie es angezeigt wird. Also ich habe nun vor, vor den aufgelisteten Artikel ein Bild zu setzen. Jedoch soll es nciht immer das gleiche Bild sein, sondern, man soll daran erkennen, in welche,m Ordner die Datei liegt. Gibt es eine Möglichkeit eine der beiden Sachen einzubinden:

1) Es wird das zu diesem Bereich gehörenmde Bild eingefügt, so wie:

Code: Alles auswählen

If Bereich = Politik
{ zeige Politik Bild};
If Bereich = Wirtschaft
{ zeige Wirtschaft Bild};
If Bereich = Wissenschaft
{ zeige Wissenschaft Bild};
If Bereich = VIP
{ zeige VIP Bild};
2) Man kann manuell vor jeder Auflistung ein Bild einfügen, wie bei einem normalen Bildmodul.

Gibt es eine Möglichkeit dies zu verwirklcih. Wäre super, wenn man mir hier helfen würde, wie schon die ganze Zeit.

Gesperrt