Erweiterung für "Artikelblaettern-Modul"?

Gesperrt
KrissKrass
Beiträge: 86
Registriert: Mi 2. Jun 2004, 16:01
Wohnort: Bochum
Kontaktdaten:

Erweiterung für "Artikelblaettern-Modul"?

Beitrag von KrissKrass »

Guten Tach auch zusammen,

folgende Frage habe ich zum Modul "Artikelblaettern", was wirklich gut ist und ordentliche Arbeit leistet: Ich würde gerne auf einer Startseite von einem Ordner, der zwei Unterordner beinhaltet, über das Modul "Artikelblaettern" aus den zwei Unterordnern die aktuellen Artikel anzeigen.
Leider zeigt das Modul ja nur die aktuellen Artikel aus dem gleichen Ordner an, daher also meine Frage: Wie schaffe ich es dieses Modul so umzuschreiben, dass "Artikelblaettern" auch aktuelle Artikel aus einem anderen Ordner anzeigen kann?

Danke für die Hilfe.

MfG
Christoph
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

wenn ich mich nicht ganz irre hat kummer eine entsprechende artikelliste im forum gepostet.
*** make your own tools (wishlist :: thx)
kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer »

nun ja, das modul das ich geschrieben habe ist eigentlich kein artikelblättern-modul sonder artikellisten-modul. die frage ist jetzt die, was du genau machen willst.

blättern = angezeigt wird ein link auf den nächsten artikel
liste = eine bestimmte anzahl artikel (mit oder ohne bild) wird mit header und subheader angezeigt.

gegebenenfalls lassen sich die module entsprechend anpassen. aber da müsste ich schon genauer wissen, was du vorhast.

du kannst dir hier ja mal ein bild machen: http://www.w3concepts.net/cms/front_con ... p?idcat=50

und hier findest du das ganze in gebrauch (mit bilder und unter einbezug der artikel in unterkategorien): http://www.w3concepts.net/cms/front_con ... p?idcat=45

lass mich wissen, wenn ich allenfalls weiterhelfen kann.

gruss,
andreas
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
KrissKrass
Beiträge: 86
Registriert: Mi 2. Jun 2004, 16:01
Wohnort: Bochum
Kontaktdaten:

Beitrag von KrissKrass »

Genau so etwas brauche ich... Für meine Ansprüche müsste ich im besten Fall ein Modul aus den folgenden Modulen haben:

w3concepts.alist.mod1.v1 (damit statt der Headline der Seitentitel verwendet wird), w3concepts.alist.mod2.v1 (damit hinter dem Seitentitel, die entsprechende Kategorie angezeigt wird) und w3concepts.alist.mod3.v1 (damit das Bild aus dem Artikel rausgeholt wird).

Diese drei Module bräuchte ich in einem Modul, um es auf meiner Page zu verwenden.

Würde mich freuen wenn du vielleicht aus diesen drei Modulen ein Modul zusammenstellst, was eben die folgenden Features besitzt: Statt Headline Seitentitel, vor dem Seitentitel in einer Klammer die Kategorie, ein Teaser der einen Auszug aus dem Artikel darstellt mit einem weiter Link auf den gesamten Artikel und das ein Bild aus dem Artikel gezogen wird und angezeigt wird.
Das ganze sollte nur in einer Liste dargestellt werden, also die neusten oben und die ältesten unten, ohne das man z.B. einen Link anklicken kann, die nächsten zehn!

MfG
Christoph
kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer »

werde mal schauen, was sich machen lässt.
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer »

it's done. du kannst das modul hier downloaden:
http://w3concepts.net/cms/front_content ... &idart=115

gruss,
andreas
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
cs
Beiträge: 12
Registriert: Mo 21. Jun 2004, 15:31
Wohnort: Hamburg
Kontaktdaten:

Beitrag von cs »

egal wie ich den relativen pfad auch setze es will einfach nicht funktionieren mit der bildpreview :-(

der rest funktioniert einwandfrei!
Life is cruel!...
kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer »

du meinst mit den thumbails?

(1) du benötigst die gd-lib in der version 2

(2) das zielverzeichnis für die thumbnails benötigt schreibrechte für den webserver, der php ausführt. will heissen CHMOD 775 oder sogar 777 (je nach dem unter welchem user der server läuft).

(3) falls es immer noch nicht funktioniert muss du klären, ob die bilder erstellt und nur nicht im browser dargestellt werden, oder ob sie gar nicht generiert werden.

wenn wir die weiterhelfen sollen, benötigen wir möglichst detaillierte angaben. z.b. auch den inhalt aus dem error-log. am besten du löscht dieses, gehtst auf die entsprechende seite mit dem artikelmodul, lädst die seite neu und schaust dann, was im error-log steht. das hilf häufig weiter.
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
cs
Beiträge: 12
Registriert: Mo 21. Jun 2004, 15:31
Wohnort: Hamburg
Kontaktdaten:

Beitrag von cs »

[quote="kummer"]du meinst mit den thumbails?

(1) du benötigst die gd-lib in der version 2

ich glaube 1. ist schon das problem woher bekomme ich das tool?
Danke für die Hilfe!
Life is cruel!...
Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin »

cs hat geschrieben: ich glaube 1. ist schon das problem woher bekomme ich das tool?
Danke für die Hilfe!
Das muss auf dem Server installiert sein! Solltest Du Contenido zu Hause installiert haben, hast Du natuerlich auch den Server in der Hand und kannst die GDLib selbst installieren, hier kannst Du sie runterladen:
http://www.boutell.com/gd/
kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer »

betreibst du einen eigenen server? dann kannst du die library hier downloaden und bei dir installieren:
http://www.boutell.com/gd/

wenn du allerdings bei einem hosting-anbieter bist (was ich mal frecherweise vermute :wink: ) dann wirst du die installation selber nicht vornehmen können.

im phpinfo findest du informationen über eine allfällige installation der gd-lib und auch die versionsnummer. falls du keine gd-lib hast, wird das modul nicht funktionieren, respektive einfach nicht mit bildern. es gibt ja das selbe modul auch ohne bilder.

im übrigen besteht natürlich die möglichkeit, dass modul so anzupassen, dass man die automatische verkleinerung entfernt und die bilder manuell verkleinert und in das entsprechende verzeichnis kopiert.

hope this helps.

gruss,
andreas
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
cs
Beiträge: 12
Registriert: Mo 21. Jun 2004, 15:31
Wohnort: Hamburg
Kontaktdaten:

Beitrag von cs »

haste richtig frech behauptet ;-).... ich habe keinen eigenen server sondern ein hostingpacket!

gut, mir wäre geholfen wenn ich die Originalbilder in der Preview schon anzeigen lassen könnte... wäre wahrscheinlich nur ne kleine änderung im Quelltext des moduls!

Aber ich bin zu doof dazu ;-)

d.h. ich würde im hauptteil dann evtl 3 bilder einbinden und in der preview einfach das erste originalbild angezeigt bekommen wollen!

das wäre klasse!
Life is cruel!...
kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer »

also folgendes:

(1) modul w3concepts.alist.mod3.v1 downloaden
http://www.w3concepts.net/1/1/51/90.html

(2) input-script normal einbinden

(3) anstatt output-script den untenstehenden code verwenden

(4) pfade konfigurieren

(5) die bilder, die sich in den artikeln befinden manuell verkleinern und in das thumbnail-verzeichnis kopieren. die automatische bildergenerierung ist auskommentiert.

hope it works. habe es leider nicht ausprobieren können. mir fehlt im moment die zeit dazu.

gruss,
andreas

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
************************************************/

    // manuelle konfiguration des moduls
    $uploadpfad = "/cms/upload/"; // relativ zum root-verzeichnis (mit slash am anfang und am ende)
    $thumbnailpfad = "/cms/upload/bilder/auto_thumbnails/"; //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]";
    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]";

    $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.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
                    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.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
                    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);

    echo '<p><table cellpadding="0" cellspacing="0" style="width:100%"><tr style="height:1px;"><td></td><td style="width:200px;"></td><td style="width:50px;"></td></tr>';

    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
            ";

        // print "<p>$sql</p>";

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

        // $link = $sess->url("front_content.php?client=$client&lang=$lang&idcat=".$db->f("idcat")."&idart=".$db->f("idart"));
        $link = $sess->url("/$client/$lang/".$db->f("idcat")."/".$db->f("idart").".html");

        echo "<tr><td colspan=\"2\" class=\"artlist_headline\"><a href=\"$link\" class=\"artlist_headlinelink\">".urldecode($db2->f("value"))."</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")));
        }

        $bild_vorhanden = false;
        while ($db2->next_record()) {
            if ($db2->f("type") == 'CMS_IMG' && $db2->f("typeid") == 1) {
                $bilddateiname = "{$thumbnailpfad}".$db2->f("value");

		// folgender bereich dient zur automatisierten generierung der bilder
                /*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 "<tr><td class=\"artlist_subheadline\" style=\"width:{$width}px;\"><a href=\"$link\"><img src=\"$bilddateiname\" /></a></td><td class=\"artlist_subheadline\" colspan=\"2\">$newsubheadline</td></tr>";
        } else {
            echo "<tr><td class=\"artlist_subheadline\" colspan=\"3\">$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>";
            echo "<td style=\"text-align:left\"><a href=\"".$sess->url("/$client/$lang/$idcat/$idart/$displaylimit.html")."\">{$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>";
            echo "<td style=\"text-align:right\"><a href=\"".$sess->url("/$client/$lang/$idcat/$idart/$displaylimit.html")."\">{$navigationslink['next']}</a></td>";
        } else {
            echo '<td>&nbsp;</td>';
        }
        echo '</tr></table></p>';
    }
?>
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
cs
Beiträge: 12
Registriert: Mo 21. Jun 2004, 15:31
Wohnort: Hamburg
Kontaktdaten:

Beitrag von cs »

ich danke dir schon mal :-)

werde es nacher mal testen, danke !!!
Life is cruel!...
Gesperrt