zuletzt geaenderte Artikel

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

Beitrag von Beleuchtfix » Mo 28. Jun 2004, 21:10

Hallo Christa,

ich habe einen Vorschlag für die Datumsausgabe und habe den Code etwas umgewandelt
Innerhalb der For-Schleife im Outputteil :
*************** ALT************
{
$db->next_record();
$title = $db->f("title");
$datumausdb = $db->f("lastmodified");
$datum_uhrzeit = explode (" ",$datumausdb);
$uhrzeit = $datum_uhrzeit[1];
$datum = explode ("-",$datum_uhrzeit[0]);
$jahr = $datum[0];
$monat = $datum[1];
$tag = $datum[2];
$idcat = $db->f("idcat");
$idart = $db->f("idart");
$link = $sess->url("front_content.php?client=$client&lang=$lang&idcat=$idcat&idart=$idart");
echo '<tr><td><a href="'.$link.'">'.$title.'</a></td><td>'.$tag.'.'.$monat.'.'.$jahr.', '.$uhrzeit.' Uhr</td>
</tr>';

*************** NEU************

Code: Alles auswählen

{
       $db->next_record(); 
       $title = $db->f("title"); 
// Umwandlung des Last Modiefied String in PHP Timestring
       $datumausdb = strtotime($db->f("lastmodified"));
// Formatierung der Datumsausgabe bitte nach Wunsch anpassen
       $datum = date("d.m.Y h:i:s",$datumausdb);
    
       $idcat = $db->f("idcat"); 
       $idart = $db->f("idart"); 
       $link = $sess->url("front_content.php?client=$client&lang=$lang&idcat=$idcat&idart=$idart"); 
echo '<tr><td><a href="'.$link.'">'.$title.'</a></td><td>'.$datum.' Uhr</td>
                </tr>'; 
Dadurch läßt sich die PHP Zeitformatierung einfach verwenden und sehr schon individuell anpassen.
Im Modul http://www.contenido.de/forum/viewtopic ... torder=asc Autor/Verfasser ist auch noch eine Datumsausgabe mit ausgeschriebenem Wochentag.

Gruß Florian

spengel
Beiträge: 25
Registriert: Do 29. Apr 2004, 12:52
Kontaktdaten:

Beitrag von spengel » Mo 28. Jun 2004, 22:08

Halchteranerin hat geschrieben:ich kenne mich mit dem mod-rewrite-Zeug nicht aus, kann also nicht beurteilen, ob's daran liegt, aber der logfile-Eintrag ist auch erst 20 Minuten alt gewesen ....
Zum mod-rewrite (damit ich jetzt nicht noch im Forum danach suchen musst): musstest Du am Modul selbst etwas aendern, oder nur woanders? Wenn woanders, ist das schon laenger her, oder musstest Du jetzt auch speziell wegen dieses Moduls noch etwas aendern? Ich vermute fast, dass es irgendwie damit zusammenhaengt.
ja, um diese Zeit hatte ich Deinen Originalquelltext getestet ;-)
Eben um ausschließen zu können das der Fehler da zu suchen ist. Er tritt also sowohl mit Deinem Script als auch meinen veränderten auf.

mod_rewrite als Fehlerquelle meine ich ausschließen zu können nachdem ich mal testweise alle dazu gemachten Änderungen rückgängig gemacht habe. Der Fehler bleibt.

Vielleicht hilft die verwendete Hauptnavi etwas:

Code: Alles auswählen

<?php

/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname   :     Navigation 1.1
* Author      :     Jan Lengowski
* Copyright   :     Contenido - four for business
* Created     :     15-05-2003
* Modified    :     26-05-2003
************************************************/

if ( !is_object($db2) ) {
    $db2 = new DB_Contenido;
}

/**
 * Check if a category is child
 * of another category
 *
 * @return boolean true/false
 * @author Jan Lengowski <Jan.Lengowski@4fb.de>
 * @copyright four for business AG 2003
 */
function catIsChildOf($id, $idparent) {

    global $cfg, $client, $lang;

    $db = new DB_Contenido;

    $parent = $id;

    while ( $parent != 0 ) {

        $sql = "SELECT
                    a.parentid
                FROM
                    ".$cfg["tab"]["cat"]." AS a,
                    ".$cfg["tab"]["cat_lang"]." AS b
                WHERE
                    a.idclient  = '".$client."' AND
                    b.idlang    = '".$lang."' AND
                    a.idcat     = b.idcat AND
                    a.idcat   = '".$parent."'";

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

        $parent = $db->f("parentid");

        if ($parent == $idparent) {
            return true;
        }

    }

    return false;

}

if ( catIsChildOf($idcat, CMS_VALUE[0]) ) {
    $sel_idcat = $idcat;
} else {
    $sel_idcat = CMS_VALUE[0];
}

/* Include Template Class */
include_once($cfg["path"]["contenido"] . 'classes/class.template.php');

/**
 * Array storing alle the
 * navigation data
 */
$navitems = array();


/* Template Instance */
$tpl = new Template;

/**
 * Recursive function for creating
 * the navigation array
 * @param Int $idcat Category id
 */
function nav($idcat) {

        global $navitems, $client, $lang, $cfg;

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

        $sql = "SELECT parentid FROM ".$cfg["tab"]["cat"]." WHERE idcat = '$idcat'";

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

        $parentid = $db->f("parentid");

        if ( $parentid == 0 ) {

           if ( $idcat != CMS_VALUE[0] ){

                $navitems = array();
              
                $sql = "SELECT
                            A.idcat,
                            C.name
                        FROM
                            ".$cfg["tab"]["cat_tree"]." AS A,
                            ".$cfg["tab"]["cat"]." AS B,
                            ".$cfg["tab"]["cat_lang"]." AS C
                        WHERE
                            A.idcat     = B.idcat   AND
                            B.idcat     = C.idcat   AND
                            B.idclient  = '$client' AND
                            C.idlang    = '$lang'   AND
                            C.visible   = '1'       AND
                            B.parentid  = 'CMS_VALUE[0]'
                        ORDER
                            BY A.idtree";

                      $db->query($sql);

                      while ($db->next_record()) {

                            /* Check for external redirects... */
                            $sql = "SELECT
                                        a.external_redirect AS ext
                                    FROM
                                        ".$cfg["tab"]["art_lang"]." AS a,
                                        ".$cfg["tab"]["cat_art"]." AS b,
                                        ".$cfg["tab"]["cat"]." AS c
                                    WHERE
                                        b.idcat     = '".$db->f("idcat")."' AND
                                        b.is_start  = '1' AND
                                        c.idclient  = '".$client."' AND
                                        c.idcat     = b.idcat AND
                                        a.idart     = b.idart AND
                                        a.idlang    = '".$lang."'";

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

                            $target = ( $db2->f("ext") == 0 ) ? '_self' : '_blank';

                            $navitems[$db->f("idcat")] = array("idcat"      => $db->f("idcat"),
                                                                "name"      => $db->f("name"),
                                                                "target"    => $target);
                      }

           }
           
           return true;
        }

        $sql = "SELECT
                    A.idcat,
                    C.name
                FROM
                    ".$cfg["tab"]["cat_tree"]." AS A,
                    ".$cfg["tab"]["cat"]." AS B,
                    ".$cfg["tab"]["cat_lang"]." AS C
                WHERE
                    A.idcat     = B.idcat   AND
                    B.idcat     = C.idcat   AND
                    B.idclient  = '$client' AND
                    C.idlang    = '$lang'   AND
                    C.visible   = '1'       AND
                    B.parentid  = '$parentid'
                ORDER BY
                    A.idtree";

        $db->query($sql);

        while ($db->next_record()) {

                /* Check for external redirects... */
                $sql = "SELECT
                            a.external_redirect AS ext
                        FROM
                            ".$cfg["tab"]["art_lang"]." AS a,
                            ".$cfg["tab"]["cat_art"]." AS b,
                            ".$cfg["tab"]["cat"]." AS c
                        WHERE
                            b.idcat     = '".$db->f("idcat")."' AND
                            b.is_start  = '1' AND
                            c.idclient  = '".$client."' AND
                            c.idcat     = b.idcat AND
                            a.idart     = b.idart AND
                            a.idlang    = '".$lang."'";

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

                $target = ( $db2->f("ext") == 0 ) ? '_self' : '_blank';
                
                $tmp_nav[$db->f("idcat")] = array("idcat"   => $db->f("idcat"),
                                                  "name"    => $db->f("name"),
                                                  "target"  => $target);
        }

        $tmp_nav[$idcat]["sub"] = $navitems;
        $navitems = $tmp_nav;

        /* Function call */
        nav($parentid);

}  // end function

$sql = "SELECT
            A.idcat,
            C.name
        FROM
            ".$cfg["tab"]["cat_tree"]." AS A,
            ".$cfg["tab"]["cat"]." AS B,
            ".$cfg["tab"]["cat_lang"]." AS C
        WHERE
            A.idcat     = B.idcat   AND
            B.idcat     = C.idcat   AND
            B.idclient  = '$client' AND
            C.idlang    = '$lang'   AND
            C.visible   = '1'       AND
            B.parentid  = '$sel_idcat'
        ORDER BY
            A.idtree";

$db->query($sql);

while ( $db->next_record() ) {

        /* Check for external redirects... */
        $sql = "SELECT
                    a.external_redirect AS ext
                FROM
                    ".$cfg["tab"]["art_lang"]." AS a,
                    ".$cfg["tab"]["cat_art"]." AS b,
                    ".$cfg["tab"]["cat"]." AS c
                WHERE
                    b.idcat     = '".$db->f("idcat")."' AND
                    b.is_start  = '1' AND
                    c.idclient  = '".$client."' AND
                    c.idcat     = b.idcat AND
                    a.idart     = b.idart AND
                    a.idlang    = '".$lang."'";

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

        $target = ( $db2->f("ext") == 0 ) ? '_self' : '_blank';

        $navitems[$db->f("idcat")] = array("idcat"  => $db->f("idcat"),
                                           "name"   => $db->f("name"),
                                           "target" => $target);
}

/* Create Navigation Array */
nav($sel_idcat);

/* Start Output buffer */
ob_start();

echo '<table cellspacing="0" cellpadding="0" border="0">';

foreach ($navitems as $key => $data) {

    /* 1. Navigations Ebene */
    $tpl->reset();
    $tpl->set('d', 'NAME',  $data['name']);
    $tpl->set('d', 'TARGET', $data['target']);
    $tpl->set('d', 'HREF', $sess->url($client.'_'.$lang.'_'.$data['idcat'].'_.html'));
    $tpl->next();

    if ($idcat == $data['idcat'] || is_array($data['sub'])) {
        $tpl->generate('templates/navfirst_on.html');
    } else {
        $tpl->generate('templates/navfirst_off.html');
    }

    if (is_array($data['sub'])) {

        foreach ($data['sub'] as $key => $data) {

            /* 2. Navigations Ebene */
            $tpl->reset();
            $tpl->set('d', 'NAME',  $data['name']);
            $tpl->set('d', 'TARGET', $data['target']);
            $tpl->set('d', 'HREF', $sess->url($client.'_'.$lang.'_'.$data['idcat'].'_.html'));
            $tpl->next();

            if ($idcat == $data['idcat'] || is_array($data['sub'])) {
                $tpl->generate('templates/navsecond_on.html');
            } else {
                $tpl->generate('templates/navsecond_off.html');
            }

            if (is_array($data['sub'])) {

                foreach ($data['sub'] as $key => $data) {

                    /* 3. Navigations Ebene */
                    $tpl->reset();
                    $tpl->set('d', 'NAME',  $data['name']);
                    $tpl->set('d', 'TARGET', $data['target']);
                    $tpl->set('d', 'HREF', $sess->url($client.'_'.$lang.'_'.$data['idcat'].'_.html'));
                    $tpl->next();

                    if ($idcat == $data['idcat']) {
                        $tpl->generate('templates/navthird_on.html');
                    } else {
                        $tpl->generate('templates/navthird_off.html');
                    }

                } // end foreach

            } // end if

        } // end foreach

    } // end if

} // end foreach

echo '</table>';

/* Read out buffer */
$html = ob_get_contents();

/* Clean buffer */
ob_end_clean();

/* Output buffer-contents */
echo $html;

?>

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

Beitrag von Halchteranerin » Di 29. Jun 2004, 08:38

spengel hat geschrieben:Vielleicht hilft die verwendete Hauptnavi etwas:
hmm, meine unterscheidet sich geringfuegig von Deiner, aber da ich mich nicht damit befasst habe, kann ich auch nicht beurteilen, ob's daran liegen kann. Hier der Bereich, der anders ist:

Code: Alles auswählen

/**
 * Check if a category is child
 * of another category
 *
 * @return boolean true/false
 * @author Jan Lengowski <Jan.Lengowski@4fb.de>
 * @copyright four for business AG 2003
 */
if (!function_exists("catIsChildOf"))
{
    function catIsChildOf($id, $idparent) {
    
        global $cfg, $client, $lang;
    
        $db = new DB_Contenido;
    
        $parent = $id;
    
        while ( $parent != 0 ) {
    
            $sql = "SELECT
                        a.parentid
                    FROM
                        ".$cfg["tab"]["cat"]." AS a,
                        ".$cfg["tab"]["cat_lang"]." AS b
                    WHERE
                        a.idclient  = '".$client."' AND
                        b.idlang    = '".$lang."' AND
                        a.idcat     = b.idcat AND
                        a.idcat   = '".$parent."'";
    
            $db->query($sql);
            $db->next_record();
    
            $parent = $db->f("parentid");
    
            if ($parent == $idparent) {
                return true;
            }
    
        }
    
        return false;
    
    }
}
Bei mir ist noch diese zusaetzliche Abfrage drin if (!function_exists("catIsChildOf")) um die Funktion function catIsChildOf($id, $idparent) herum. Weitere Unterschiede konnte ich nicht feststellen.

Gruss
Christa

spengel
Beiträge: 25
Registriert: Do 29. Apr 2004, 12:52
Kontaktdaten:

Beitrag von spengel » Di 29. Jun 2004, 09:09

versteh einer die Welt..
ich habs aus reiner Verzweiflung mal in das Hauptlayout eingebaut und da läuft es auch mit der Navi einwandfrei. Warum die ansonsten vollkommen gleiche Testseite nicht will bleibt mir absolut ein Rätsel.

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

Beitrag von Beleuchtfix » Do 8. Jul 2004, 12:26

Hallo Christa!

Wenn ich dein Modul verwdende und gleichzeitig das last modfied Modul von Autor: Martin Horwath ( http://www.contenido.de/forum/viewtopic ... t+modified ) mit auf die Seite einbaue, ( http://www.himi.f-be.de/front_content.php?idcat=75 ) Dann zeigt mir das last modfied den Zeitstempelt und Autor des letzen (untersten) von dir gefundenem Modul an.
Hast Du eine Idee?

Gruß
Florian
Ich benutze die zweite Version

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

Beitrag von Halchteranerin » Do 8. Jul 2004, 14:23

Hi Florian,

aehm ... ich verstehe nicht ganz das Problem, oder vielleicht doch? Du meinst, dass Datum, Uhrzeit und Autor des letzten Eintrags in der Ausgabe meines Moduls (also bei Dir jetzt Der Empfang der Heiligen Kommunion 03.07.2004, 21:23:53 Uhr) mit der Ausgabe von last modified uebereinstimmt? Ich benutze auch das Modul last modified, aber evtl. nicht 100%ig die gleiche Version (ich weiss nicht mehr, ob und wenn ja was ich daran geaendert habe), und bei mir habe ich das Problem nicht nachvollziehen koennen. Ausgabe von last modified 'Letzte Änderung: 25.06.2004 23:03:23', Eintrag in der letzten Zeile der Ausgabe meines Moduls: 2: 21. Juni 2004 25.06.2004, 23:18:14 Uhr. Uhrzeit stimmt also nicht ueberein, wie Du siehst.

Hier die Version von 'last modified', die ich benutze:

Code: Alles auswählen

####################################################### 
# 
# Last Modified 1.0 
# Autor: Martin Horwath 
# Datum:  01.10.2003 
# Requires: Contenido 4.3.2.1b 
#
####################################################### 

Code: Alles auswählen

<?php 

$query = "SELECT A.author AS author, 
                 B.lastmodified AS lastmodified, 
                 C.realname AS realname 
          FROM 
                 ".$cfg["tab"]["art_lang"]." AS A, 
                 ".$cfg["tab"]["content"]." AS B, 
                 ".$cfg["tab"]["phplib_auth_user_md5"]." AS C 
          WHERE 
                 A.idart = '$idart' AND 
                 B.idartlang = A.idartlang AND 
                 C.username = A.author 
          ORDER BY 
                 B.lastmodified DESC"; 

$db->query($query); 
$db->next_record(); 

$author = $db->f("author"); // loginname 
$realname = $db->f("realname"); // realname 
$lastmodified = strtotime($db->f("lastmodified")); 
$lastmodified = date("d.m.Y G:i:s",$lastmodified); 

echo "Verfasst von: ".$author."<br>Letzte Änderung: ".$lastmodified."\n"; 

?>
Gruss
Christa
Zuletzt geändert von Halchteranerin am Do 8. Jul 2004, 14:45, insgesamt 1-mal geändert.

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

Beitrag von emergence » Do 8. Jul 2004, 14:39

das modified kannst du eigentlich weglassen...
*** make your own tools (wishlist :: thx)

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

Beitrag von Halchteranerin » Do 8. Jul 2004, 14:47

emergence hat geschrieben:das modified kannst du eigentlich weglassen...
Ich hab's rausgenommen. :) Ich hatte auch den Link zum anderen Thread eingefuegt, damit ich weiss, wo ich es her habe, denn das ist mir schon mit anderen Modulen passiert (z.B. die vielen Bildergalerien), dass ich nicht mehr wusste, wo ich suchen sollte, wenn ich etwas nachschauen wollte. Und jetzt beim Kopieren habe ich nicht darauf geachtet ...

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

Beitrag von emergence » Do 8. Jul 2004, 14:48

eine interne huldigung :lol:
*** make your own tools (wishlist :: thx)

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

Beitrag von Beleuchtfix » Do 8. Jul 2004, 14:58

@Christa
also ich benutze die gleiche Version.

@emergence
Vom Inhalt hast du schon recht, es gibt genügend Datumwerte auf der Seite.

Interessant es jedoch, wieso nun das letzte Datum angezeigt wird. Wenn die obere Artikelliste leer ist (0 Elemente), dann wird das Datum der letzten Änderung auf der Seite angezeigt.

Gruß
Florian

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

Beitrag von Beleuchtfix » Do 8. Jul 2004, 15:02

emergence hat geschrieben:das modified kannst du eigentlich weglassen...
Wovon redet Ihr jetzt genau?
Florian

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

Beitrag von Halchteranerin » Do 8. Jul 2004, 15:43

Beleuchtfix hat geschrieben:@Christa
also ich benutze die gleiche Version.
hast Du den Output verglichen? Die Beschreibung kannst Du vergessen, weil ich meistens nicht daran denke, Aenderungen dort zu vermerken. Vielleicht gewoehne ich mir das irgendwann noch an.

Wovon wir geredet haben ist irrelevant, ich hab's jetzt eh' rausgenommen. :lol: Es war eine zusaetzliche Zeile in der Beschreibung.


Gruss
Christa

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

Beitrag von Beleuchtfix » Do 8. Jul 2004, 20:24

Halchteranerin hat geschrieben:
Beleuchtfix hat geschrieben:@Christa
also ich benutze die gleiche Version.
hast Du den Output verglichen? Die Beschreibung kannst Du vergessen, weil ich meistens nicht daran denke, Aenderungen dort zu vermerken. Vielleicht gewoehne ich mir das irgendwann noch an.
Ein sehr lobsamer Entschluß :!:

JA, den Output habe ich verglichen, bis auf eine geringförmige Umformatierung vom Datum ist es identisch. Irgendwie scheint das last Modified Modul die Werte von Deiner letzten Suche zu übernehmen.

Jetzt bin ich erst einmal einge Tage weg und schaue mir das Problem erst nächste Woche wieder an
Gruß
Florian

Marvin
Beiträge: 7
Registriert: So 11. Jul 2004, 17:42
Kontaktdaten:

Beitrag von Marvin » So 11. Jul 2004, 17:52

Hi,

zu den beschriebenen Problemen mit dem "last modified" Modul: bei mir hakte es daran, dass im Modul für die zuletzt geänderten Artikel $idcat und $idart mit den Werten der in der Liste angezeigten Artikel belegt werden und die anderen Module (bei mir war u.a. das Terminmodul betroffen) dann die Werte des letzten Artikels übernehmen.

Es sollte also reichen, im Modul $idcat und $idart andere Namen zu geben.

CyberDan
Beiträge: 204
Registriert: Mo 15. Dez 2003, 13:01
Wohnort: Saarland
Kontaktdaten:

Beitrag von CyberDan » Mo 12. Jul 2004, 08:49

super Modul, wieder Arbeit gespart :D

Nur eins hab ich noch: Ist es möglich, dass Artikel aus gesperrten Kategorien nicht mit aufgelistet werden? Was muß ich dafür ändern?

Gesperrt