Modul: Standard-Artikelliste Advanced v2.6.0

stefkey
Beiträge: 556
Registriert: Mi 19. Okt 2005, 16:10
Wohnort: Heidelberg
Kontaktdaten:

Re: Modul: Standard-Artikelliste Advanced v2.2.0

Beitrag von stefkey » Di 20. Okt 2009, 11:55

okay, habs gefunden.

Ich habe in allen anderen Artikeln keinen Text im Headlinecontent.
Vielen Dank nochmal für die tolle, schnelle unterstützung und gutes weiteres vorankommen.

Grüße,
stefkey

derSteffen
Beiträge: 847
Registriert: Mi 14. Dez 2005, 16:15
Wohnort: Königs Wusterhausen bei Berlin
Kontaktdaten:

Re: Modul: Standard-Artikelliste Advanced v2.2.0

Beitrag von derSteffen » Do 22. Okt 2009, 20:56

Hallo,

ich finde eine Funktion fehlt bei allen Artikellsiten noch.

Wenn ich nämlich sage, zeige von meiner primären Kategorie alle unterhalb dieser an, muss ich ja u.U. den Haken bei "Startartikel anzeigen" setzen. Dann werden von allen Kategorien die Startartikel angezeigt - wunderbar. Aber dummerweise auch der selbe Startartikel der meine Liste enthält und das will ich ja gar nicht. Es soll ja nicht nochmal der selbe Artikel dargestellt werden.

Kann man noch sagen, zeige Startartikel an aber nicht den eigenen?

MfG Steffen

derSteffen
Beiträge: 847
Registriert: Mi 14. Dez 2005, 16:15
Wohnort: Königs Wusterhausen bei Berlin
Kontaktdaten:

Zeige Kategorien der Option "Ausgewähle" geht nicht

Beitrag von derSteffen » Do 22. Okt 2009, 21:03

Ich glaube ich habe gerade ein Fehler gefunden!

Wenn ich in der Tempelatekonfiguration "Ausgewählte" auswähle und in der Box meine 3 Kategorien anklicke und speichere, gehen diese Markierungen verloren. Es wird dann auch automatisch wieder "keine" ausgewählt. Im frontend passiert auch nichts!

Kann das jemand bestätigen? Verwende die 2.2.0 auf Contenido 4.8.12!

Mfg Steffen

funomat
Beiträge: 345
Registriert: Do 26. Feb 2004, 22:13
Wohnort: Neuss
Kontaktdaten:

Re: Modul: Standard-Artikelliste Advanced v2.2.0

Beitrag von funomat » Fr 23. Okt 2009, 07:30

Tut mir Leid, aber den Fehler kann ich nicht bestätigen. Läuft bei mir einwandfrei.
tiago.de | adk-msi.de | iseringhausen.de | the-iseringhausen.de
Manchmal glaube ich, der beste Beweis dafür, dass es anderswo im Weltall intelligentes Leben gibt, ist der, dass noch niemand versucht hat, Kontakt zu uns aufzunehmen. (Calvin & Hobbes)

derSteffen
Beiträge: 847
Registriert: Mi 14. Dez 2005, 16:15
Wohnort: Königs Wusterhausen bei Berlin
Kontaktdaten:

Re: Modul: Standard-Artikelliste Advanced v2.2.0

Beitrag von derSteffen » Fr 23. Okt 2009, 09:25

Mhm komisch.

Ich habe jetzt das nochmal frisch gedownloadet und installiert - einmal als package und einmal als reines Modul.

Sobald ich sage Zus. Kategorie und hier "Ausgewählte" markiere und mir drei anklicke und dann auf den Speichern-Haken kilcke sprigt er automatisch auf "Keine" zurück!

"Alle unterhalb primärer" funktionert! Ist ja ein Dine. Ich verwende auch das AMR-Plugin, dies ist aber gerade nicht aktiv! Na ich werde nochmal weiter testen, vielleicht ist es ein Cache-Problem oder so!

Aber nochmal eine andere Frage. Wie kann ich denn sage, wenn du der Artikel mit der Liste bist, zeige dich selbst in der liste nicht an!

Vielen Dank

MfG Steffen

funomat
Beiträge: 345
Registriert: Do 26. Feb 2004, 22:13
Wohnort: Neuss
Kontaktdaten:

Re: Modul: Standard-Artikelliste Advanced v2.2.0

Beitrag von funomat » Fr 23. Okt 2009, 10:17

derSteffen hat geschrieben:Sobald ich sage Zus. Kategorie und hier "Ausgewählte" markiere und mir drei anklicke und dann auf den Speichern-Haken kilcke sprigt er automatisch auf "Keine" zurück!
Hast Du das Modul öfter auf der Seite im Einsatz? Ich kann mich erinnern, dass bei der 1.3 das Problem bestand, dass in dem Fall, dass man das Modul öfter in einem Mandanten einsetzt, dieser Fehler auftrat (http://forum.contenido.org/viewtopic.php?p=71380#p71380). Ich weiß aber jetzt nicht, ob HerrB das Problem jemals gelöst hat.
derSteffen hat geschrieben:Na ich werde nochmal weiter testen
Falls Du da nicht weiter kommst und das Modul nur einmal einsetzt, kann ich Dir anbieten mal drüber zu schauen. Schick mir die Zugangsdaten über PN wenn Du magst.
derSteffen hat geschrieben:Aber nochmal eine andere Frage. Wie kann ich denn sage, wenn du der Artikel mit der Liste bist, zeige dich selbst in der liste nicht an!
Im Normalfall ist der Artikel mit der Liste immer der Startartikel, also sollte es reichen wenn du "Startartikel Anzeigen" nicht anklickst. Falls Du den Artikel aber nicht als Startartikel deklariert hast, geht es nicht. Ich kann das höchsten mal für eine der nächsten Versionen mit auf die Wishlist setzen.
tiago.de | adk-msi.de | iseringhausen.de | the-iseringhausen.de
Manchmal glaube ich, der beste Beweis dafür, dass es anderswo im Weltall intelligentes Leben gibt, ist der, dass noch niemand versucht hat, Kontakt zu uns aufzunehmen. (Calvin & Hobbes)

stefkey
Beiträge: 556
Registriert: Mi 19. Okt 2005, 16:10
Wohnort: Heidelberg
Kontaktdaten:

Re: Modul: Standard-Artikelliste Advanced v2.2.0

Beitrag von stefkey » Fr 23. Okt 2009, 10:38

mehrere zusätzliche Kategorien auswählen funktioniert auch bei mir einwandfrei!
In der Template Vorkonfiguration sowie auch als Templatekonfiguration für einen Artikel.
Danke nochmal!

derSteffen
Beiträge: 847
Registriert: Mi 14. Dez 2005, 16:15
Wohnort: Königs Wusterhausen bei Berlin
Kontaktdaten:

Re: Modul: Standard-Artikelliste Advanced v2.2.0

Beitrag von derSteffen » Fr 23. Okt 2009, 11:55

Mhm,

ist ja ein Ding! Ich mache das zur Zeit noch lokal. Ich habe nur ein Mandanten. Das Modul ist auch nur einmal im Template mit drin. Meint Ihr es leigt an der functions.input.helper.php ? Ich verwende die functions.input.helper.php-Version 1.3! Gibt es was neueres?

MfG Steffen

stefkey
Beiträge: 556
Registriert: Mi 19. Okt 2005, 16:10
Wohnort: Heidelberg
Kontaktdaten:

Re: Modul: Standard-Artikelliste Advanced v2.2.0

Beitrag von stefkey » Fr 23. Okt 2009, 12:06

ich hab zwar keine Ahnung, aber ich würde doch bei Problemen als ALLERERSTES überhaupt mal das Modul so installieren wie es in der Anleitung steht! Mit ALLEM was da steht, bevor ich hier Leute mit meinen Problemen beschäftige. Vielleicht hat ja die functions.input.helper.php damit nichts zu tun, aber trotzdem würde ich alles vorher mal testen.
Installier mal das Modul so wie es auch beschrieben ist, vielleicht funktioniert es ja dann.

Ich kann leider nicht helfen da ich keine PHP Kenntnisse habe, sorry.

derSteffen
Beiträge: 847
Registriert: Mi 14. Dez 2005, 16:15
Wohnort: Königs Wusterhausen bei Berlin
Kontaktdaten:

Re: Modul: Standard-Artikelliste Advanced v2.2.0

Beitrag von derSteffen » Fr 23. Okt 2009, 12:59

Stefkey,

danke für deine Hinweise!
ich wollte nur wissen ob es eine neue functions.input.helper.php-Version gibt?

Ich teste weiter und werde mein Ergebniss dann posten.

MfG Steffen

stefkey
Beiträge: 556
Registriert: Mi 19. Okt 2005, 16:10
Wohnort: Heidelberg
Kontaktdaten:

Re: Modul: Standard-Artikelliste Advanced v2.2.0

Beitrag von stefkey » Fr 30. Okt 2009, 18:55

Hallo,

ist es Problematisch die Headline nur bis zu einem bestimmten Zeichen in der Liste auszugeben?
Beispiel:
Dies ist die Headline /// das ist auch noch Headline!

Und in der Artikeliste wird nur bis zum "///" ausgelesen. Also
Dies ist die Headline
balblabla... weiterlesen

Hab leider zu wenig PHP-Kenntnisse, ich vermute mal das man das im Outputmodul so um die Zeilen 5-600 machen muss.

Kann man das in einem 2-3 Zeiler abfragen und weiß das jemand gerade so aus dem Stehgreif?

Output:

Code: Alles auswählen

<?php
# Initialization
$bDebug     = false;
$iDataStart = 30;
$lCount     = 0;

unset ($aData);
$aData = array();

# Base settings
unset ($aSettings);
$aSettings = array();
$aSettings["ArticleCount"]       = "CMS_VALUE[0]";
$aSettings["ArticlePerPage"]     = "CMS_VALUE[1]";
$aSettings["SortBy"]             = "CMS_VALUE[2]";
$aSettings["SortDir"]            = "CMS_VALUE[3]";
$aSettings["ShowStart"]          = "CMS_VALUE[4]";
$aSettings["Category"]           = "CMS_VALUE[5]";
$aSettings["HeadlineIdentifier"] = "CMS_VALUE[7]";
$aSettings["HeadlineLength"]     = "CMS_VALUE[8]";
$aSettings["Elements"]           = "CMS_VALUE[9]";
$aSettings["CatTypeSel"]         = "CMS_VALUE[10]";
$aSettings["AddCats"]            = "CMS_VALUE[11]";
$aSettings["DateType"]           = "CMS_VALUE[13]";
$aSettings["Date"]               = "CMS_VALUE[14]";
$aSettings["Template"]           = "CMS_VALUE[15]";
$aSettings["PageBrowsingType01"] = "CMS_VALUE[16]";
$aSettings["PageBrowsingType02"] = "CMS_VALUE[17]";
$aSettings["PageBrowsingType03"] = "CMS_VALUE[18]";
$aSettings["PageBrowsingType04"] = "CMS_VALUE[19]";
$aSettings["PageBrowsingType05"] = "CMS_VALUE[20]";
$aSettings["UseUTF8"]            = "CMS_VALUE[21]";

# Checking base settings
if (!is_numeric($aSettings["ArticleCount"]) || $aSettings["ArticleCount"] < 0)
{
    $aSettings["ArticleCount"] = 5;
}
if (!is_numeric($aSettings["ArticlePerPage"]) || $aSettings["ArticlePerPage"] < 0)
{
    $aSettings["ArticlePerPage"] = 0; // Deactivating page browsing
}
if ($aSettings["ArticlePerPage"] == 0 || !is_numeric($_REQUEST["nextstep"]))
{
    $_REQUEST["nextstep"] = 0;
}
if (!is_numeric($aSettings["Category"]) || $aSettings["Category"] <= 0)
{
    $aSettings["Category"] = 0;
}
if (strlen($aSettings["HeadlineIdentifier"]) > 50)
{
    $aSettings["HeadlineIdentifier"] = "";
}
if (!is_numeric($aSettings["HeadlineLength"]) || $aSettings["HeadlineLength"] < 0)
{
    $aSettings["HeadlineLength"] = 0;
}
if (!is_numeric($aSettings["Elements"]) || $aSettings["Elements"] < 0)
{
    $aSettings["Elements"] = 0;
}
if ($aSettings["CatTypeSel"] == "" || ($aSettings["AddCats"] == "" && $aSettings["CatTypeSel"] == "selected"))
{
    $aSettings["CatTypeSel"] = "none";
}

if ($aSettings["UseUTF8"] == "enabled")
{
    # Needed functions for UTF8 and PHP4 - Posted by "laurynas.butkus@gmail.com" at http://us2.php.net/manual/de/function.html-entity-decode.php
    ######
    # In PHP4 html_entity_decode() is not working well with UTF-8  spitting: "Warning: cannot yet handle MBCS in html_entity_decode()!".
    # This is working solution combining several workarounds:
    ######
    function html_entity_decode_utf8($string)
    {
        static $trans_tbl;
       
        // replace numeric entities
        $string = preg_replace('~&#x([0-9a-f]+);~ei', 'code2utf(hexdec("\\1"))', $string);
        $string = preg_replace('~&#([0-9]+);~e', 'code2utf(\\1)', $string);
    
        // replace literal entities
        if (!isset($trans_tbl))
        {
            $trans_tbl = array();
           
            foreach (get_html_translation_table(HTML_ENTITIES) as $val=>$key)
                $trans_tbl[$key] = utf8_encode($val);
        }
       
        return strtr($string, $trans_tbl);
    }
    
    // Returns the utf string corresponding to the unicode value (from php.net, courtesy - romans@void.lv)
    function code2utf($num)
    {
        if ($num < 128) return chr($num);
        if ($num < 2048) return chr(($num >> 6) + 192) . chr(($num & 63) + 128);
        if ($num < 65536) return chr(($num >> 12) + 224) . chr((($num >> 6) & 63) + 128) . chr(($num & 63) + 128);
        if ($num < 2097152) return chr(($num >> 18) + 240) . chr((($num >> 12) & 63) + 128) . chr((($num >> 6) & 63) + 128) . chr(($num & 63) + 128);
        return '';
    }
}

# Detail settings
if ($aSettings["Elements"] > 0)
{
    for ($i = 0; $i < $aSettings["Elements"]; $i++)
    {
        $iElementType       = $iDataStart   + ($i * 10);
        $iElementIdentifier = $iElementType + 1;
        $iElementWidth      = $iElementType + 2;
        $iElementHeight     = $iElementType + 3;
        $iElementUseSummary = $iElementType + 4;
        /*$iElementPadding    = $iElementType + 4;
        $iElementImgAlign   = $iElementType + 5;*/

        $aSettings["k".$i] = array();
        $aSettings["k".$i]["ElementType"]       = "CMS_VALUE[$iElementType]";        // Text, Image, ExtractedImage
        $aSettings["k".$i]["Identifier"]        = "CMS_VALUE[$iElementIdentifier]";
        $aSettings["k".$i]["ElementWidth"]      = "CMS_VALUE[$iElementWidth]";       // Textlength or ImageWidth
        $aSettings["k".$i]["ElementHeight"]     = "CMS_VALUE[$iElementHeight]";
        $aSettings["k".$i]["ForceSummaryUsage"] = "CMS_VALUE[$iElementUseSummary]";
        /*$aSettings["k".$i]["ElementPadding"]    = "CMS_VALUE[$iElementPadding]";
        $aSettings["k".$i]["ElementImgAlign"]   = "CMS_VALUE[$iElementImgAlign]";*/

        # Check detail settings
        if ($aSettings["k".$i]["ElementType"] == "")
        {
            $aSettings["k".$i]["ElementType"] == "Text";
        }
        if ($aSettings["k".$i]["ElementType"] == "Text")
        {
            $aSettings["ElementHeight"] = 0;
            if (!is_numeric($aSettings["k".$i]["ElementWidth"]) || $aSettings["k".$i]["ElementWidth"] < 0)
            {
                $aSettings["k".$i]["ElementWidth"] = 50;
            }
        }
        elseif (!is_numeric($aSettings["k".$i]["ElementWidth"]) || $aSettings["k".$i]["ElementWidth"] <= 0 ||
                !is_numeric($aSettings["k".$i]["ElementHeight"]) || $aSettings["k".$i]["ElementHeight"] <= 0)
        {
            $aSettings["k".$i]["ElementWidth"] = 0;
            $aSettings["k".$i]["ElementHeight"] = 0;
        }
        if (strlen($aSettings["Identifier"]) > 50)
        {
            $aSettings["Identifier"] = "";
        }
    } // end for
}

unset ($iDataStart);
unset ($iElementType);
unset ($iElementIdentifier);
unset ($iElementWidth);
unset ($iElementHeight);
unset ($iElementUseSummary);

if ($aSettings["Category"] !== "0" && $aSettings["HeadlineIdentifier"] !== "")
{
    if (!is_object($db2))
    {
        $db2 = new DB_Contenido;
    }

    # Specifying search categories
    $sSelCats = "'".$aSettings["Category"]."'";
    # Adding categories "below" primary category
    switch ($aSettings["CatTypeSel"])
    {
        case "below":
            $lCatLevel = -1;
            $sql  = "SELECT a.idcat AS idcat, b.level AS level FROM " . $cfg["tab"]["cat"] . " a, " . $cfg["tab"]["cat_tree"] . " b ";
            $sql .= "WHERE a.idcat = b.idcat ORDER BY b.idtree";

            $db2->query($sql);
            while($db2->next_record())
            {
                if ($db2->f("idcat") == $aSettings["Category"])
                {
                    $lCatLevel = $db2->f("level");
                }
                elseif ($lCatLevel > -1 && $db2->f("level") > $lCatLevel)
                {
                    $sSelCats .= ",'" . $db2->f("idcat") . "'";
                }
                elseif ($db2->f("level") <= $lCatLevel)
                {
                    break;
                }
            } // end while
            break;
        case "select":
            $aCats = explode(",", $aSettings["AddCats"]);
            foreach ($aCats as $value)
            {
                if (is_numeric($value))
                {
                    $sSelCats .= ",'".$value."'";
                }
            }
            break;
        default:
    } // end switch

    $sql  = "SELECT tblData.value AS headline, ARTLANG.pagetitle AS pagetitle, ARTLANG.summary AS summary, ARTLANG.idart AS id, ARTLANG.lastmodified AS lastmodified, " ;
    $sql .= "ARTLANG.created AS created, ARTLANG.published AS published, CATLANG.name AS category, ";
    $sql .= "ARTLANG.idartlang AS idartlang, CATART.idcat AS idcat, CATART.idcatart AS idcatart FROM ";
    $sql .= $cfg["tab"]["cat_art"] . " AS CATART, ";
    $sql .= $cfg["tab"]["art_lang"] . " AS ARTLANG, ";
    $sql .= $cfg["tab"]["cat_lang"] . " AS CATLANG, ";
    $sql .= $cfg["tab"]["content"] . " AS tblData ";

    $sql .= "WHERE CATART.idcat IN (" . $sSelCats . ") AND ARTLANG.idlang = '" . $lang . "' ";
    $sql .= "AND tblData.idartlang = ARTLANG.idartlang ";
    $sql .= "AND CATLANG.idlang = ARTLANG.idlang ";
    $sql .= "AND CATLANG.idcat = CATART.idcat ";
    $sql .= "AND ARTLANG.idart = CATART.idart ";

    if ($aSettings["ShowStart"] != "enabled")
    {
        if ($cfg["is_start_compatible"] == true)
        {
            $sql .= "AND CATART.is_start = '0' ";
        }
        else
        {
            $sql .= "AND tblData.idartlang != CATLANG.startidartlang ";
        }
    }

    $sql .= "AND ARTLANG.online = '1' ";
    $sql .= "AND " . $aSettings["HeadlineIdentifier"] . " ";

    // Sort by
    $sql .= "ORDER BY ";
    $sql .= $aSettings["SortBy"] . " " . $aSettings["SortDir"] . " ";

    // LIMIT
    if ($aSettings["ArticleCount"] > 0) {
        $sql .= "LIMIT 0, ".$aSettings["ArticleCount"];
    }

    // execute query
    $db2->query($sql);
    $lCount = $db2->num_rows();

    if ($lCount > 0)
    {
        if (!is_object($db3))
        {
            $db3 = new DB_Contenido;
        }
        if (!is_object($db4))
        {
            $db4 = new DB_Contenido;
        }
        if ($aSettings["ArticlePerPage"] > 0)
        {
            $lStartCount = $_REQUEST["nextstep"];
            $lEndCount   = $_REQUEST["nextstep"] + $aSettings["ArticlePerPage"];
            if ($lEndCount > $lCount)
            {
                $lEndCount = $lCount;
            }
        }
        else
        {
            $lStartCount = 0;
            $lEndCount   = $lCount;
        }

        $lRow = 0;
        $i    = 0;
        while ($db2->next_record())
        {
            if ( $aSettings["ShowStart"] == "enabled" ||
                ($aSettings["ShowStart"] != "enabled" && $db2->f("idartlang") != $lStartIDArtLang))
            {
                if ($lRow >= $lStartCount && $lRow < $lEndCount)
                {
                    $aData[$i]                 = array();
                    $aData[$i]["Category"]     = urldecode($db2->f("category"));
                    $aData[$i]["Link"]         = $sess->url("front_content.php?idcat=".$db2->f("idcat")."&idart=".$db2->f("id"));;
                    $aData[$i]["LastModified"] = $db2->f("lastmodified");
                    $aData[$i]["Created"]      = $db2->f("created");
                    $aData[$i]["Published"]    = $db2->f("published");
                    # nachstehende Daten   summary    eingefügt
                    $aData[$i]["Summary"]      = $db2->f("summary");
                    # nachstehende Daten   pagetitle  eingefügt
                    $aData[$i]["Pagetitle"]    = $db2->f("pagetitle");

                    $sTmpValue = html_entity_decode(strip_tags(urldecode($db2->f('headline'))));
                    if ($aSettings["HeadlineLength"] > 0 && strlen($sTmpValue) > $aSettings["HeadlineLength"])
                    {
                        # Cutting text but preserving words and entities
                        $sTmpValue = htmlentities(capiStrTrimAfterWord($sTmpValue, $aSettings["HeadlineLength"])."...");
                    }
                    $aData[$i]["Headline"] = $sTmpValue;

                    if ($aSettings["Elements"] > 0)
                    {
                        for ($k = 0; $k < $aSettings["Elements"]; $k++)
                        {
                            $aData[$i]["i".$k]               = array();
                            $aData[$i]["i".$k]["Value"]      = "";
                            $aData[$i]["i".$k]["ServerPath"] = "";
                            $aData[$i]["i".$k]["WebPath"]    = "";
                            $aData[$i]["i".$k]["Width"]      = 0;
                            $aData[$i]["i".$k]["Height"]     = 0;
                        } // end for

                        $sql =  "SELECT tblData.value AS value, tblData.idtype AS idtype, tblData.typeid AS typeid FROM ";
                        $sql .= $cfg["tab"]["cat_art"] . " AS tblCatArt, ";
                        $sql .= $cfg["tab"]["art_lang"] . " AS tblArtLang, ";
                        $sql .= $cfg["tab"]["content"] . " AS tblData ";
                        $sql .= "WHERE tblData.idartlang = tblArtLang.idartlang AND ";
                        $sql .= "tblArtLang.idlang = '" . $lang . "' AND ";
                        $sql .= "tblArtLang.idart = tblCatArt.idart AND ";
                        $sql .= "tblCatArt.idcatart = '" . $db2->f("idcatart") . "' AND (";
                        
                        $sql_items = "";
                        for ($k = 0; $k < $aSettings["Elements"]; $k++)
                        {
                            if ($aSettings["k".$k]["Identifier"] != "")
                            {
                                if ($sql_items != "")
                                {
                                    $sql_items .= " OR (" . $aSettings["k" . $k]["Identifier"] . ")";
                                }
                                else
                                {
                                    $sql_items = "(" . $aSettings["k" . $k]["Identifier"] . ")";
                                }
                            }
                        } // end for
                        $sql .= $sql_items . ")";

                        if ($bDebug)
                        {
                            echo "<pre>" . $sql . "</pre>", chr(10);
                        }

                        // execute query
                        $db3->query($sql);

                        while ($db3->next_record())
                        {
                            $sTypeIdentifier = "tblData.idtype = '" . $db3->f('idtype') . "' AND tblData.typeid = '" . $db3->f('typeid') . "'";

                            # Note: The TypeIdentifier for one item may be the same as for another item.
                            #       Therefore, we are storing the content everywhere as needed
                            for ($k = 0; $k < $aSettings["Elements"]; $k++)
                            {
                                if ($sTypeIdentifier == $aSettings["k".$k]["Identifier"])
                                {
                                    switch (TRUE)
                                    {
                                        case ($aSettings["k" . $k]["ElementType"] == "Image" || $aSettings["k" . $k]["ElementType"] == "ExtractedImage"):
                                            $sql = "";
                                            if ($aSettings["k".$k]["ElementType"] == "Image")
                                            {
                                                $sql =  "SELECT dirname, filename FROM " . $cfg["tab"]["upl"] . " ";
                                                $sql .= "WHERE idupl = '" . $db3->f('value') . "'";
                                            }
                                            else
                                            {
                                                $sTmpValue = urldecode($db3->f('value'));
   
                                                $regEx = "/<img[^>]*?>.*?/i";
                                                $match = array ();
                                                preg_match($regEx, $sTmpValue, $match);

                                                $regEx = "/(src)(=)(['\"]?)([^\"']*)(['\"]?)/i";
                                                $img = array ();
                                                preg_match($regEx, $match[0], $img);
                                                $img_src = preg_split("/\//", $img[0]);

                                                $img_name = $img_src[count($img_src) - 1];
                                                $img_name = preg_replace("/\"/", "", $img_name);

                                                #Don't know what is happening here, exactly...
                                                # $img_split = preg_split("/\./", $img_name);
                                                # $img_type = $img_split[count($img_split) - 1];
                                                # $img_split2 = preg_split("/_/", $img_split[0]);

                                                $name = strtolower($img_name);

                                                #Don't know what is happening here, exactly...
                                                #if (count($img_split2) > 1) {
                                                #   $img_x = $img_split2[count($img_split2) - 1];
                                                #   $img_y = $img_split2[count($img_split2) - 2];

                                                #   if (is_numeric($img_x) AND is_numeric($img_y)) {
                                                #      $suffix = "_".$img_x."_".$img_y.".".$img_type;
                                                #      $name = preg_replace("/$suffix/", "", $img_name);
                                                #      $name = $name.".[a-zA-Z]{3}";
                                                #   }
                                                #}

                                                if (strlen($name) > 0)
                                                {
                                                    $sql =  "SELECT dirname, filename FROM " . $cfg["tab"]["upl"] . " ";
                                                    $sql .= "WHERE LOWER(filename) = '$name'";
                                                    // $sql .= "WHERE filename REGEXP '$name'"; // Old: for 'banner.jpg' 'merlin_banner.jpg' is also returned
                                                }
                                            }

                                            if ($bDebug)
                                            {
                                                echo "<pre>".$sql."</pre>";
                                            }

                                            // execute query
                                            if ($sql != "")
                                            {
                                                $db4->query($sql);

                                                if ($db4->next_record())
                                                {
                                                    $aData[$i]["i" . $k]["ServerPath"]   = $cfgClient[$client]["upl"]["path"] . $db4->f('dirname') . $db4->f('filename');
                                                    $aData[$i]["i" . $k]["WebPath"]      = $cfgClient[$client]["upl"]["htmlpath"] . $db4->f('dirname') . $db4->f('filename');

                                                    list (
                                                        $width,
                                                        $height,
                                                        $type,
                                                        $attr
                                                    ) = getimagesize($aData[$i]["i" . $k]["ServerPath"]);
                                                    $aData[$i]["i" . $k]["Width"]        = $width;
                                                    $aData[$i]["i" . $k]["Height"]       = $height;
                                                }
                                            }
                                            break;
                                        default:
                                            if ($aSettings["UseUTF8"] != "enabled")
                                            {
                                                $sTmpValue = html_entity_decode(strip_tags(urldecode($db3->f('value'))));
                                            }
                                            else
                                            {
                                                $sTmpValue = html_entity_decode_utf8(strip_tags(urldecode($db3->f('value'))));
                                            }
                                            if ($aSettings["k" . $k]["ElementWidth"] > 0 && strlen($sTmpValue) > $aSettings["k" . $k]["ElementWidth"])
                                            {
                                                # Cutting text but preserving words and entities
                                                $sTmpValue = htmlentities(capiStrTrimAfterWord($sTmpValue, $aSettings["k" . $k]["ElementWidth"]) . "...");
                                            }
                                            $aData[$i]["i".$k]["Value"] = $sTmpValue;
                                    } // end switch
                                }
                            } // end for
                        } // end while
                    }
                    $i++;
                }
                elseif ($lRow == $lEndCount)
                {
                    break;
                }
                $lRow++;
            }
        } // end while

        # Clearing memory
        unset ($db2);
        unset ($db3);
        unset ($db4);
        unset ($sql);
        unset ($lStartIDArtLang);
        unset ($lStartCount);
        unset ($lEndCount);
    
        # Output data
        # Every output manipulation should be done here...
        #
        # Base information:
        # $aSettings["Elements"]:                  Number of expected, additional elements from each article
        # $aSettings["ArticlePerPage"]:            Number of articles per page (0: show all)
        # $aSettings["k".$i]["ElementType"]:       Per Element: Type of Element: Text, Image or ExtractedImage
        # $aSettings["k".$i]["ElementWidth"]:      Per Element: Text length or image width (-> recycling ...)
        # $aSettings["k".$i]["ElementHeight"]:     Per Element: Image width
        # $aSettings["k".$i]["ForceSummaryUsage"]: Per Element: 
        #
        # Per article:
        # $aValue["Headline"]:                     Content of article element specified as containing the headline information
        # $aValue["Link"]:                         Relative link to get to the listed article
        # $aValue["LastModified"]:                 Last modified date of the article
        # $aValue["Created"]:                      Created date of the article
        # $aValue["Published"]:                    Published date of the article
        # $aValue["Category"]:                     Category name
        # $aValue["Summary"]:                      summary Zusammenfassung
        # $aValue["Pagetitle"]:                    Seitentitel pagetitle
        #
        # Per article additional element:
        # $aValue["i".$i]["Value"]:                Text (only for text elements, otherwise "")
        # $aValue["i".$i]["WebPath"]:              HTTP... path to image
        # $aValue["i".$i]["ServerPath"]:           /server/... path to image
        # $aValue["i".$i]["Width"]:                >Original< image width
        # $aValue["i".$i]["Height"]:               >Original< image height
    
        /* Init Template */
    
        if (!is_object($tpl)) {
            $tpl = new Template;
        }
        $tpl->reset();
    
        $tpl->set('s', 'TITLE', $newsheadline);
    
        foreach ($aData as $aValue)
        {
            $artlist_summary = $aValue["Summary"];
            if ($aSettings["Elements"] > 0)
            {
                for ($i = 0; $i < $aSettings["Elements"]; $i++)
                {
                    switch (TRUE)
                    {
                        case ($aSettings["k".$i]["ElementType"] == "Image" || $aSettings["k".$i]["ElementType"] == "ExtractedImage"):
                            $image = $aValue["i".$i]["WebPath"];
        
                            $width  = $aValue["i" . $i]["Width"];
                            $height = $aValue["i" . $i]["Height"];
                            if ($aSettings["k" . $i]["ElementWidth"] > 0 && $aSettings["k" . $i]["ElementHeight"] > 0)
                            {
                                # Check, if resize necessary
                                if ( $aValue["i" . $i]["ServerPath"] != "" && file_exists($aValue["i" . $i]["ServerPath"]) &&
                                    ($aValue["i" . $i]["Width"] > $aSettings["k" . $i]["ElementWidth"] || $aValue["i" . $i]["Height"] > $aSettings["k" . $i]["ElementHeight"]))
                                {
                                    # Scale image
                                    $image = capiImgScale($aValue["i" . $i]["ServerPath"], $aSettings["k" . $i]["ElementWidth"], $aSettings["k" . $i]["ElementHeight"], false, false, 10, false);
        
                                    #Get dimensions of the image
                                    list (
                                        $width,
                                        $height,
                                        $type,
                                        $attr
                                    ) = getimagesize(str_replace($cfgClient[$client]["path"]["htmlpath"], $cfgClient[$client]["path"]["frontend"], $image));
                                }
                                else
                                {
                                    $image  = $aValue["i" . $i]["WebPath"];
                                    $width  = $aValue["i" . $i]["Width"];
                                    $height = $aValue["i" . $i]["Height"];
                                }
                            }
                            
                            if ($image != "")
                            {
                                $artlist_image = '<img class="articlelistImage" src="' . $image . '" width="' . $width . '" height="' . $height . '" alt="' . mi18n("Article Thumb") . '" />'; // align="' . $aSettings["k" . $i]["ElementImgAlign"] . '" style="padding:' . $aSettings["k" . $i]["ElementPadding"] . ';"
                            }
                            else
                            {
                                $artlist_image = "";
                            }
                            $tpl->set('d', 'IMG_'.$i,  $artlist_image);
                            
                            break;
                        default: // Everything else is treated as "Text"
                            if ($artlist_summary != "" && $aSettings["k" . $i]["ForceSummaryUsage"] == "force")
                            {
                                $artlist_text = $artlist_summary;
                                $tpl->set('d', 'TEXT_'.$i,  $artlist_text);
                            }
                            else
                            {
                                $artlist_text = $aValue["i" . $i]["Value"];
                                $tpl->set('d', 'TEXT_'.$i,  $artlist_text);
                            }
                            #echo $artlist_text;
                    } // end switch
                } // end for
            }
            $artlist_more = mi18n("More");
    
            if($aSettings["DateType"] == "create")
            {
                $tmp_artlist_Date = strtotime($aValue["Created"]);
            }
            else
            {
                $tmp_artlist_Date = strtotime($aValue["Published"]);
            }
    
            if($aSettings["Date"] != "-1")
            {
                $artlist_lastmod = date($aSettings["Date"], $tmp_artlist_Date);
                if(strlen($artlist_lastmod) > 12)
                {
                    $artlist_lastmod = $artlist_lastmod . mi18n(" Uhr");
                }
            }
            else
            {
                $artlist_lastmod = "";
            }
            
            $tpl->set('d', 'PAGELINK', $aValue["Link"]);
            $tpl->set('d', 'PAGETITEL', $aValue["Pagetitle"]);
            $tpl->set('d', 'HEADLINE', $aValue["Headline"]);
            $tpl->set('d', 'DATE', $artlist_lastmod);
            $tpl->set('d', 'MORE', $artlist_more);
    
            $tpl->next();
    
        } // end foreach
    }

    # Page browsing
    # Hint: Number of max available records: $lCount
    #       Number of pages: round($lCount / $aSettings["ArticlePerPage"])
    #       First page: nextstep=0
    #       Last page:  nextstep=(round($lCount / $aSettings["ArticlePerPage"]) - 1) * $aSettings["ArticlePerPage"];
    #                   (I have to admit that I'm not sure about the last page formula ... ;-) )
    if ($aSettings["ArticlePerPage"] > 0)
    {
        $iPages = intval(ceil($lCount / $aSettings["ArticlePerPage"]));
        
        # Example: Back and Next
        $sPageBrowsingType01 = '';
        if ($aSettings["PageBrowsingType01"] == "enabled")
        {
            if ($_REQUEST["nextstep"] > 0)
            {
                $sPageBrowsingType01 .= '<div class="articlelistBack">';
                $sPageBrowsingType01 .= '<a href="front_content.php?idcat=' . $idcat . '&idart=' . $idart . '&nextstep=' . ($_REQUEST["nextstep"] - $aSettings["ArticlePerPage"]) . '">' . mi18n("Back") . '</a>';
                $sPageBrowsingType01 .= '</div>';
            }
            
            if (($_REQUEST["nextstep"] + $aSettings["ArticlePerPage"]) < $lCount)
            {
                $sPageBrowsingType01 .= '<div class="articlelistNext">';
                $sPageBrowsingType01 .= '<a href="front_content.php?idcat=' . $idcat . '&idart=' . $idart . '&nextstep=' . ($_REQUEST["nextstep"] + $aSettings["ArticlePerPage"]) . '">' . mi18n("Next") . '</a>';
                $sPageBrowsingType01 .= '</div>';
            }
        }

        # Example: 1 2 3 4 5 6 7 ...
        $sPageBrowsingType02 = '';
        if ($aSettings["PageBrowsingType02"] == "enabled")
        {
            for ($i = 1; $i <= $iPages; $i++)
            {
                $lNextStep = ($i - 1) * $aSettings["ArticlePerPage"];
                if ($sPageBrowsingType02 != '')
                {
                    $sPageBrowsingType02 .= '&nbsp;';
                }
                
                if ($_REQUEST["nextstep"] == $lNextStep)
                {
                    $sPageBrowsingType02 .= $i; # I'm on the current page, no link
                }
                else
                {
                    $sPageBrowsingType02 .= '<a class="articlelistPageNumber" href="front_content.php?idcat=' . $idcat . '&idart=' . $idart . '&nextstep=' . $lNextStep . '">' . $i . '</a>';
                }
            }
        }

        # Example: Seite 1 von 7
        $sPageBrowsingType03 = '';
        if ($aSettings["PageBrowsingType03"] == "enabled")
        {
            for ($i = 1; $i <= $iPages; $i++)
            {
                $lNextStep = ($i - 1) * $aSettings["ArticlePerPage"];
                if ($sPageBrowsingType03 != '')
                {
                    $sPageBrowsingType03 .= '&nbsp;';
                }
                
                if ($_REQUEST["nextstep"] == $lNextStep)
                {
                    $sPageBrowsingType03 .= mi18n("Page") . ' ' . $i . ' ' . mi18n("of") . ' ' . $iPages; # I'm on the current page, no link
                }
            }
        }

        # Example: |< 1 ... 3 4 5 ... 8 >|
        $sPageBrowsingType04 = '';
        if ($aSettings["PageBrowsingType04"] == "enabled")
        {
            $sPageBrowsingType04 .= '<a class="articlelistBegin" href="front_content.php?idcat=' . $idcat . '&idart=' . $idart . '&nextstep=0">' . mi18n("Begin") . ' |<</a>';
            for ($i = 1; $i <= $iPages; $i++)
            {
                $lNextStep = ($i - 1) * $aSettings["ArticlePerPage"];
                if ($i == 1 || $i == $iPages)
                {
                    if ($sPageBrowsingType04 != '')
                    {
                        $sPageBrowsingType04 .= '&nbsp;';
                    }
                    
                    if ($_REQUEST["nextstep"] == $lNextStep)
                    {
                        $sPageBrowsingType04 .= $i; # I'm on the current page, no link
                    }
                    else
                    {
                        $sPageBrowsingType04 .= '<a class="articlelistPageNumber" href="front_content.php?idcat=' . $idcat . '&idart=' . $idart . '&nextstep=' . $lNextStep . '">' . $i . '</a>';
                    }
                }
                elseif ($_REQUEST["nextstep"] == $lNextStep)
                {
                    $sPageBrowsingType04 .= '&nbsp;' . $i . "\n"; # I'm on the current page, no link
                }
                elseif ($_REQUEST["nextstep"] == ($lNextStep + $aSettings["ArticlePerPage"]))
                {
                    # Front
                    $sPageBrowsingType04 .= '&nbsp;<a class="articlelistPageNumber" href="front_content.php?idcat=' . $idcat . '&idart=' . $idart . '&nextstep=' . $lNextStep . '">' . $i . '</a>';
                }
                elseif ($_REQUEST["nextstep"] == ($lNextStep - $aSettings["ArticlePerPage"]))
                {
                    # Back
                    $sPageBrowsingType04 .= '&nbsp;<a class="articlelistPageNumber" href="front_content.php?idcat=' . $idcat . '&idart=' . $idart . '&nextstep=' . $lNextStep . '">' . $i . '</a>';
                }
                elseif ($_REQUEST["nextstep"] == ($lNextStep - (2 * $aSettings["ArticlePerPage"])) ||
                        $_REQUEST["nextstep"] == ($lNextStep + (2 * $aSettings["ArticlePerPage"])))
                {
                    $sPageBrowsingType04 .= '...';
                }
            }
            $sPageBrowsingType04 .= '&nbsp;<a class="articlelistEnd" href="front_content.php?idcat=' . $idcat . '&idart=' . $idart . '&nextstep=' . (round($lCount / $aSettings["ArticlePerPage"]) - 1) * $aSettings["ArticlePerPage"] . '">>| ' . mi18n("End") . '</a>';
        }
        
        # Example: << < 1 ... 3 4 5 ... 8 > >>
        // First Page
        $sPageBrowsingType05 = '';
        if ($aSettings["PageBrowsingType05"] == "enabled")
        {
            if (isset($_GET['nextstep']) && !(($_GET['nextstep']) == 0))
            {
                $sPageBrowsingType05 .= '<a class="articlelistBegin" href="front_content.php?idcat='.$idcat.'&idart='.$idart.'&nextstep=0" title="' . mi18n("Begin") . '">&laquo;</a> &nbsp;';
            }
            elseif (isset($_GET['nextstep']) && (($_GET['nextstep']) == 0) || !isset($_GET['nextstep']))
            {
                $sPageBrowsingType05 .= '&laquo; &nbsp;';
            }
            
            // Previous Page
            if (isset($_GET['nextstep']) && !(($_GET['nextstep']) == 0))
            {
                $sPageBrowsingType05 .= '<a class="articlelistPrevious" href="front_content.php?idcat=' . $idcat . '&idart=' . $idart . '&nextstep=' . ($_REQUEST["nextstep"] - $aSettings["ArticlePerPage"]) . '" title="' . mi18n("Previous") . '">&lsaquo;</a> &nbsp;';
            }
            elseif (isset($_GET['nextstep']) && (($_GET['nextstep']) == 0) || !isset($_GET['nextstep']))
            {
                $sPageBrowsingType05 .= '&lsaquo; &nbsp;';
            }
            
            for ($i = 1; $i <= $iPages; $i++) {
                $lNextStep = ($i - 1) * $aSettings["ArticlePerPage"];
                if ($i == 1 || $i == $iPages) {
                    if ($sPageBrowsingType05 != '') {
                        $sPageBrowsingType05 .= '&nbsp;';
                    }
                    if ($_REQUEST["nextstep"] == $lNextStep) {
                        $sPageBrowsingType05 .= $i; # I'm on the current page, no link
                    } else {
                        $sPageBrowsingType05 .= '<a class="articlelistPageNumber" href="front_content.php?idcat='.$idcat.'&idart='.$idart.'&nextstep='.$lNextStep.'">'.$i.'</a>';
                    }
                } else if ($_REQUEST["nextstep"] == $lNextStep) {
                    $sPageBrowsingType05 .= '&nbsp;'.$i; # I'm on the current page, no link
                } else if ($_REQUEST["nextstep"] == ($lNextStep + $aSettings["ArticlePerPage"])) {
                    # Forward
                    $sPageBrowsingType05 .= '&nbsp;<a class="articlelistPageNumber" href="front_content.php?idcat='.$idcat.'&idart='.$idart.'&nextstep='.$lNextStep.'">'.$i.'</a>';
                } else if ($_REQUEST["nextstep"] == ($lNextStep - $aSettings["ArticlePerPage"])) {
                    # Back
                    $sPageBrowsingType05 .= '&nbsp;<a class="articlelistPageNumber" href="front_content.php?idcat='.$idcat.'&idart='.$idart.'&nextstep='.$lNextStep.'">'.$i.'</a>';
                } else if ( $_REQUEST["nextstep"] == ($lNextStep - (2 * $aSettings["ArticlePerPage"])) ||
                            $_REQUEST["nextstep"] == ($lNextStep + (2 * $aSettings["ArticlePerPage"]))) {
                    $sPageBrowsingType05 .= '...';
                }
            }
        
            // Next Page
            if (isset($_GET['nextstep']) && !(($_GET['nextstep']) == ((round($lCount / $aSettings["ArticlePerPage"]) - 1) * $aSettings["ArticlePerPage"])))
            {
                $sPageBrowsingType05 .= '&nbsp; <a class="articlelistNext" href="front_content.php?idcat=' . $idcat . '&idart=' . $idart . '&nextstep=' . ($_REQUEST["nextstep"] + $aSettings["ArticlePerPage"]) . '" title="' . mi18n("Next") . '">&rsaquo;</a>';
            }
            elseif (isset($_GET['nextstep']) && (($_GET['nextstep']) == ((round($lCount / $aSettings["ArticlePerPage"]) - 1) * $aSettings["ArticlePerPage"])))
            {
                $sPageBrowsingType05 .= '&nbsp; &rsaquo;';
            }
            else
            {
                $sPageBrowsingType05 .= '&nbsp; <a class="articlelistNext" href="front_content.php?idcat=' . $idcat . '&idart=' . $idart . '&nextstep=' . $aSettings["ArticlePerPage"] . '" title="' . mi18n("Next") . '">&rsaquo;</a>';
            }
            
            // Last Page
            if (isset($_GET['nextstep']) && !(($_GET['nextstep']) == ((round($lCount / $aSettings["ArticlePerPage"]) - 1) * $aSettings["ArticlePerPage"])) || !isset($_GET['nextstep']))
            {
                $sPageBrowsingType05 .= '&nbsp; <a class="articlelistEnd" href="front_content.php?idcat='.$idcat.'&idart='.$idart.'&nextstep='.(round($lCount / $aSettings["ArticlePerPage"]) - 1) * $aSettings["ArticlePerPage"].'" title="' . mi18n("End") . '">&raquo;</a>';
            }
            elseif (isset($_GET['nextstep']) && (($_GET['nextstep']) == ((round($lCount / $aSettings["ArticlePerPage"]) - 1) * $aSettings["ArticlePerPage"])))
            {
                $sPageBrowsingType05 .= '&nbsp; &raquo;';
            }
        }
    }
    $tpl->set('s', 'PAGEBROWSINGTYPE01', $sPageBrowsingType01);
    $tpl->set('s', 'PAGEBROWSINGTYPE02', $sPageBrowsingType02);
    $tpl->set('s', 'PAGEBROWSINGTYPE03', $sPageBrowsingType03);
    $tpl->set('s', 'PAGEBROWSINGTYPE04', $sPageBrowsingType04);
    $tpl->set('s', 'PAGEBROWSINGTYPE05', $sPageBrowsingType05);
    $tpl->generate($aSettings["Template"]);
}
# Clearing memory
unset ($aData);
unset ($aSettings);
unset ($i);
unset ($lCount);
unset ($bDebug);
?>

divox
Beiträge: 39
Registriert: Mi 17. Sep 2008, 14:25
Kontaktdaten:

Re: Modul: Standard-Artikelliste Advanced v2.2.0

Beitrag von divox » Di 3. Nov 2009, 18:37

Hallo,

danke für das toole Modul.

Leider habe ich mit Polnischen umlauten (UTF8-Codiert) ein Problem das diese nicht richtig angezeigt werden.
Die Ansicht in den Artikel selber passt, nur wenn die gleichen Artikel über die Artikelliste laufen lasse, dann werden die Polnischen Buchstaben ( ł , ć, ś , ń, ż, ó, ę) falsch dargestellt.

Kann mir jemand helfen?

Verwende Contenido 4.8.12 Mandantsprache Polnisch, UTF8.

funomat
Beiträge: 345
Registriert: Do 26. Feb 2004, 22:13
Wohnort: Neuss
Kontaktdaten:

Re: Modul: Standard-Artikelliste Advanced v2.2.0

Beitrag von funomat » Mi 4. Nov 2009, 09:03

Hast Du "UTF8 Codierung benutzen" ausgewählt?
tiago.de | adk-msi.de | iseringhausen.de | the-iseringhausen.de
Manchmal glaube ich, der beste Beweis dafür, dass es anderswo im Weltall intelligentes Leben gibt, ist der, dass noch niemand versucht hat, Kontakt zu uns aufzunehmen. (Calvin & Hobbes)

divox
Beiträge: 39
Registriert: Mi 17. Sep 2008, 14:25
Kontaktdaten:

Re: Modul: Standard-Artikelliste Advanced v2.2.0

Beitrag von divox » Mi 4. Nov 2009, 14:47

Klar, bringt aber gar nix. :(

update:

Wenn ich das Häckchen bei "Use UTF8 decoding:" setze, ich es beim nächsten Aufruf wieder weg!
Ist das normal`?

update2:

Hier sind noch paar Serverdaten:
Server Betriebssystem Apache/2.2.9 (Debian)
Datenbankserver-Version 5.0.51a-24+lenny2
Installierte PHP-Version 5.2.6-1+lenny3

divox
Beiträge: 39
Registriert: Mi 17. Sep 2008, 14:25
Kontaktdaten:

Re: Modul: Standard-Artikelliste Advanced v2.2.0

Beitrag von divox » Fr 6. Nov 2009, 08:52

Weist hier wirklich keiner eine Lösung des Problems?

Oder wenigstens ein Tipp woran es liegen konnte...;)

Gesperrt