Welcome, Guest. Please login or register.
Did you miss your activation email?
May 27, 2012, 02:56:10 AM

Login with username, password and session length
Search:     Advanced search
Wollen Sie dem WebsiteBaker Team beitreten?
Nähere Informationen finden Sie unter hier und auf unserer neuen Webseite.
155555 Posts in 21715 Topics by 7737 Members
Latest Member: gx-world
* Home Help Search Login Register
Pages: [1] 2   Go Down
Print
Author Topic: Zuletzt geänderte Seiten anzeigen  (Read 6517 times)
ebussinetz

Offline Offline

Posts: 155



WWW
« on: August 07, 2007, 01:17:44 PM »

Manchmal wäre es schön, wenn man auf einer Website anzeigen lassen könnte, was sich neues getan hat oder genauer, selche Seiten zuletzt geändert wurden. Vielen Dank für Tipps!
Logged
Lonesome Walker

Offline Offline

Posts: 274



WWW
« Reply #1 on: August 07, 2007, 02:09:54 PM »

Kennst Du die Funktion get_modified_when() schon?

Code:
function get_modified_when() {
    global $database, $wb;

    $page_id = $wb->page_id;

    if (PAGE_ID>0) {
        $query=$database->query("SELECT modified_when FROM ".TABLE_PREFIX."pages WHERE page_id=$page_id");
        $mod_details=$query->fetchRow();

    }
    echo date("D\, d M Y H:i:s",$mod_details[0]);
}

Die könntest Du Dir nach Bedarf umschreiben, ist ein guter Ausgangspunkt...
Logged

opensource company Websitebaker Templates Werbeartikel aller Art Websitebaker Hosting
ebussinetz

Offline Offline

Posts: 155



WWW
« Reply #2 on: August 07, 2007, 04:33:32 PM »

Vielen Dank für die schnelle Antwort!

So wie ich das verstehe, gibt das Script aus, wann die aktuelle Seite aktualisiert wurde. Das macht aber auch schon das Plugin Last Update Info.

Da ich selber kein PHP beherrsche, kann ich das leider nicht selbst erweitern.

Logged
Phonon

Offline Offline

Posts: 48


WWW
« Reply #3 on: August 07, 2007, 05:08:09 PM »

Hi!
Ich habe für meine Seite ein kleines PHP-Script zusammengebaut. Vielleicht ist es ja das was du suchst.
Einfach das hier in eine Code-Seite einfügen:
Code:
$ergebnis = mysql_query ("SELECT * FROM wb_pages WHERE visibility = 'public' ORDER BY 'modified_when' DESC LIMIT 15");
while ($zeile = mysql_fetch_array($ergebnis)) {
$aenderungsdatum= date("d.m.y, H:i: ", $zeile['modified_when']);
$weblink=$zeile['link'];
$cutzeichen=strrpos($weblink,"/");
$weblinktext = substr($weblink,0,$cutzeichen);
if ($weblinktext == ""){
$weblinktext = "/";
}
echo $aenderungsdatum ."<a href=/pages$weblink.php><b>" . $zeile['page_title'] . "</b></a> (in " . $weblinktext . ")<br>";
}

Die Ausgabe auf der Seite sieht dann so aus:
Code:
07.08.07, 12.41: Chöre und Orgeln (in /kirchenmusik)
07.08.07, 12.21: Musikalische Veranstaltungen (in /kirchenmusik)
07.08.07, 12.18: Kindertagesstätte (in /gemeinden/walsrode)
07.08.07, 12.12: Unser Tagesablauf (in /gemeinden/walsrode/kindertagesstaette)
07.08.07, 12.05: Info (in /gemeinden/walsrode/kindertagesstaette)
07.08.07, 12.03: Teamarbeit (in /gemeinden/walsrode/kindertagesstaette)
07.08.07, 12.03: Zusammenarbeit mit anderen Institutionen (in /gemeinden/walsrode/kindertagesstaette)
07.08.07, 12.02: Erziehungspartnerschaft mit den Eltern (in /gemeinden/walsrode/kindertagesstaette)
07.08.07, 12.01: Das Jahr vor der Einschulung (in /gemeinden/walsrode/kindertagesstaette)
07.08.07, 12.00: Integration (in /gemeinden/walsrode/kindertagesstaette)
07.08.07, 11.43: Unsere Räume (in /gemeinden/walsrode/kindertagesstaette)
07.08.07, 11.37: Beobachten (in /gemeinden/walsrode/kindertagesstaette)
07.08.07, 10.39: Kirchenkreis (in /)
06.08.07, 17.38: Herzlich Willkommen! (in /)
06.08.07, 15.41: Downloads (in /gemeinden/walsrode/jugendtreff)

Die Seitentitel sind Links zu der jeweiligen Seite.

Vielleicht ist das Script nicht gerade schön programmiert, aber es erfüllt seinen Zweck.   wink

In der ersten Zeile bei "LIMIT 15" kannst du ganz einfach angeben wie viele Seiten angezeigt werden sollen.

Vielleicht hilft es dir ja, wenn du etwas anpassen möchtest helfe ich dir gerne.

Viele Grüße,
Alex
Logged
ebussinetz

Offline Offline

Posts: 155



WWW
« Reply #4 on: August 08, 2007, 10:11:20 AM »

Hallo Alex,

vielen Dank für Dein Script! Und herzlichen Dank für Dein Hilfe-Angebot!!

Leider funktioniert es bei mir nicht. Es kommt folgende Fehlermeldung:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /www/1038-clRh/web/modules/code/view.php(30) : eval()'d code on line 2
« Last Edit: August 08, 2007, 10:25:37 AM by ebussinetz » Logged
Phonon

Offline Offline

Posts: 48


WWW
« Reply #5 on: August 08, 2007, 10:36:27 AM »

hi!
oha, da hatte ich doch etwas vergessen. das kommt davon wenn man dinge hardcoded. *schäm* undecided

Hast du für deine Installation ein Tabellen-Prefix für die Datenbank festgelegt? bei mir ist das Prefix "wb_". Also wird vor alle Tabellen in der Datenbank "wb_" vorgesetzt.

Änder die erste Zeile mal wie folgt ab:
Code:
$ergebnis = mysql_query ("SELECT * FROM pages WHERE visibility = 'public' ORDER BY 'modified_when' DESC LIMIT 15");

Also statt "wb_pages" einfach nur "pages". Wenn das nicht funktioniert schau bitte in deine Datenbank wie die Tabelle "pages" genau heisst.

Viele Grüße,
Alex
Logged
doc
Guest
« Reply #6 on: August 08, 2007, 10:46:30 AM »

Hallo,

für genau diese Zwecke gibt es die Konstante TABLE_PREFIX (glaub ich).
Schaut einfach mal ins Hello World module auf der Addon Seite, dort wird diese Konstante bei DB-Abfragen verwendet.

Gruss Christian
Logged
Phonon

Offline Offline

Posts: 48


WWW
« Reply #7 on: August 08, 2007, 10:52:14 AM »

Hey!
Danke für den Tipp. Das werde ich mir mal ansehen.

Es war ja eigentlich auch gar nicht geplant das Script weiterzugeben...war nur für meine Seite gedacht...und da schreibt es sich irgendwie bequemer wenn man es einfach so schreibt.
Aber ich werde mir nen besseren Stil angewöhnen...versprochen.   wink
Logged
ebussinetz

Offline Offline

Posts: 155



WWW
« Reply #8 on: August 08, 2007, 03:07:00 PM »

Vielen Dank nochmal, jetzt funktioniert es hervorragend. Wenn man jetzt noch die Variable TABLE_PREFIX richtig einsetzen würde, wäre es auch für Anfänger, wie mich, noch leichter einzubauen.
Logged
Phonon

Offline Offline

Posts: 48


WWW
« Reply #9 on: August 08, 2007, 03:37:10 PM »

Hi!

Ok, hier nochmal der ganze Code zum Mitschreiben:

Code:
$ergebnis = mysql_query ("SELECT * FROM " . TABLE_PREFIX . "pages WHERE visibility = 'public' ORDER BY 'modified_when' DESC LIMIT 15");
while ($zeile = mysql_fetch_array($ergebnis)) {
$aenderungsdatum= date("d.m.y, H:i: ", $zeile['modified_when']);
$weblink=$zeile['link'];
$cutzeichen=strrpos($weblink,"/");
$weblinktext = substr($weblink,0,$cutzeichen);
if ($weblinktext == ""){
$weblinktext = "/";
}
echo $aenderungsdatum ."<a href=/pages$weblink.php><b>" . $zeile['page_title'] . "</b></a> (in " . $weblinktext . ")<br>";
}

EDIT:
Ob es sich lohnen würde so ein kurzes Ding als Modul zu machen? Dann vielleicht mit mehr Anpassungsmöglichkeiten. Ich würde das schon gerne mal versuchen - hab noch nie ein Modul gemacht, würde mich aber gerne damit beschäftigen.
« Last Edit: August 08, 2007, 03:44:42 PM by proximacentauri » Logged
aldus

Offline Offline

Posts: 1238


« Reply #10 on: September 17, 2008, 03:00:20 PM »

Hallo,

ich habe das Schnipsel gerade ausprobiert - es funktioniert, bis auf das die Ergebnisse zeitlich unsortiert ausgegeben werden.
Woran kann das liegen?


Bin mir nicht ganz sicher ob es an dem "alten" mysql_query liegt, das sich unter PHP 5 anders verhält ...
Ich hab's mal vor einiger Zeit ein wenig "entstaubt" ...
Code:
<?php
/**
*    @version    0.2.0
*    @date        2008-08-26
*    @author        Phonon, aldus
*    @state        @dev
*    @package    WebsiteBaker - Code snippets
*    @require    WB 2.7.x, PHP 4.4.x
*
*    0.2.0    2008-08-26    Remove the dinglish-varable-names.
*                        Add WB_URL to the path to the page.
*                        Minor cosmetic changes and add commentblock.
*
*    0.1.0    2007-08-08    First run
*/
$result $database->query("SELECT link, modified_when, page_title FROM " TABLE_PREFIX "pages WHERE visibility = 'public' ORDER BY modified_when DESC LIMIT 15");
while (
$row $result->fetchRow() ) {
    
$change_date date("d.m.y, H:i: "$row['modified_when']);
    
    
$weblink $row['link'];
    
    
$cut_char strrpos($weblink,"/");
    
    
$weblinktext substr($weblink0$cut_char);
    
    if ( 
strlen($weblinktext == 0) ) $weblinktext "/";
    
    echo 
$change_date ."<a href=\"".WB_URL."/pages".$weblink.".php\"><b>" $row['page_title'] . "</b></a> (in " $weblinktext ")<br>";
}

?>


Gruß
Aldus
« Last Edit: September 17, 2008, 04:47:04 PM by aldus » Logged
erpe

Offline Offline

Posts: 2077


WWW
« Reply #11 on: September 17, 2008, 04:39:16 PM »

@susigross

Bin mir auch nicht mehr ganz sicher, aber ich denke das 'modified_when' darf keine
Code:
'
haben.
Bei mir funktioniert es jedenfalls ohne die Dinger.

Gruss

erpe
Logged

erpe

Offline Offline

Posts: 2077


WWW
« Reply #12 on: September 19, 2008, 11:08:19 AM »

Hi susigross

die Links solltest du nochmal überarbeiten.
Es ist nicht jedes WB in /wb installiert und dein Code gibt im Link immer /wb/pages aus.
Besser ist sicher, das /wb zu entfernen.

Gruss

erpe
« Last Edit: September 19, 2008, 11:13:47 AM by erpe » Logged

Stefek
WebsiteBaker Org e.V.

Offline Offline

Posts: 4884



« Reply #13 on: October 23, 2008, 09:29:18 PM »

Hallo!

Ich habe mir das noch nie installiert und ich bin dadran eigentlich für den Backend Bereich interessiert.
Kann man das Script so anpassen, dass man gleich auf der Startseite (unterhalb der Icons) eine Liste hat: WER WANN WAS?

Eine gute WWW Frage  grin

Grüße,
Stefek
Logged

"In a time of universal deceit, telling the truth becomes a revolutionary act."
- George Orwell, Nineteen eighty-four (1984)
rainer-66

Offline Offline

Posts: 3


« Reply #14 on: February 20, 2009, 02:13:02 PM »

Super script..., aber

wie kann ich anstelle von der Pfadangabe ( halte ich für weniger wichtig da ja verlinkt), den Usernamen aus der Tabelle users, der die Änderung vollzogen hat. Die verknüpfung ist theoretisch klar. Mit modified_by aus der tabelle pages die Benutzer ID von users lesen und den display_name ausgeben. grin

Aber als absoluter php nullnixversteher freue ich mich über websitebaker. Nur bei solchen Fangfragen wirds halt eng. huh

Vielleich kann mich ja jemand anschubsen, damit ich über das ausprobieren php / WebsiteBaker besser kennenlerne.

Besten Dank
Rainer
Logged

immer mit offenen Augen durchs Leben gehen
dbs
WebsiteBaker Org e.V.

Offline Offline

Posts: 3719


WWW
« Reply #15 on: June 27, 2009, 05:27:59 PM »

hallo,

ich würde durch das snippet gern öffentliche und versteckte, aber keine für regristrierte oder private Seiten anzeigen lassen. geht das?
hatte versucht in das
Code:
$ergebnis = mysql_query ("SELECT * FROM " . TABLE_PREFIX . "pages WHERE visibility = 'public' ORDER BY modified_when DESC LIMIT 5");
noch ein hidden mit reinzuquetschen, aber erfolglos.

gruß dbs
Logged

FrankH

Offline Offline

Posts: 735


WWW
« Reply #16 on: June 30, 2009, 06:56:06 PM »

Ich habe das Code-Schnipsel Last modified Pages advanced im Zuge der Aktion, WB so richtig mehrsprachfähig zu machen, aufgebohrt:
Es gibt jetzt auch eine Variante, die nur die letzten Seiten in der aktuellen Seitensprache anzeigt.
Download wie immer über AMASP, Demo hier
Logged

Ochs und Esel in ihrem Lauf
halt ich leider auch nicht auf
Ezes.eSport

Offline Offline

Posts: 20



WWW
« Reply #17 on: June 30, 2009, 09:26:01 PM »

Hallo,

ich habe das Schnipsel gerade ausprobiert - es funktioniert, bis auf das die Ergebnisse zeitlich unsortiert ausgegeben werden.
Woran kann das liegen?




Hey,

man kann das array mit funktionen wie sort sortieren. am besten du guckst mal unter http://php.net/sort nach. es gibt noch weitere...

Gruß, Domi



Update:

Falls jemand ein Code haben möchte, um auf seiner Seite anzeigen zu lassen, wann die Seite zuletzt geändert wurden ist:

Eine Datei changed-date.php ins Verzeichnis template-verzeichnis des aktuellen templates erstellen.
Inhalt:

Code:
<?php

$ergebnis 
mysql_query ("SELECT * FROM domiwb_pages WHERE page_id = '".$this_page_id."' ORDER BY 'modified_when' DESC LIMIT 1");
while (
$zeile mysql_fetch_array($ergebnis)) {
$aenderungsdatumdate("d.m.y, H:i"$zeile['modified_when']);
$weblink=$zeile['link'];
echo 
"<br /><div align=\"right\"><font size=\"1\" color=\"#808080\">Zuletzt ge&auml;ndert am ".$aenderungsdatum ." Uhr</font></div>";
}
?>


Nun in der index.php hinter
Code:
<?php page_content(); ?>
folgendes ergänzen:
Code:
<?php include('changed-date.php'); ?>

Anschließend steht auf jeder eurer seiten z.B.
Zuletzt geändert am 04.06.09, 21:39 Uhr


Gruß, Domi
« Last Edit: June 30, 2009, 09:46:59 PM by Ezes.eSport » Logged

Wer, wenn nicht ich? Wann, wenn nicht jetzt?
dbs
WebsiteBaker Org e.V.

Offline Offline

Posts: 3719


WWW
« Reply #18 on: June 30, 2009, 09:44:21 PM »

@frank:

Quote
Eigentlich sollte das gehen (wobei die Seiten dann ja nicht mehr versteckt sind), wie hast du es denn genau eingebaut?

einige seiten verstecke ich nur um den menü-baum nicht zu lang werden zu lassen.
eingebaut ist es so:
Code:
<?php
            $ergebnis 
mysql_query ("SELECT * FROM " TABLE_PREFIX "pages WHERE visibility = 'public' ORDER BY modified_when DESC LIMIT 5");
            while (
$zeile mysql_fetch_array($ergebnis)) {
            
$aenderungsdatumdate("d.m.y "$zeile['modified_when']);
            
$weblink=$zeile['link'];
            
$cutzeichen=strrpos($weblink,"/");
            
$weblinktext substr($weblink,0,$cutzeichen);
            if (
$weblinktext == ""){
            
$weblinktext "/";
            }
            echo  
$aenderungsdatum "<p><a href=\"".WB_URL."/pages$weblink.php\"> " $zeile['page_title'] . " </a></p>\n";
            echo 
"<p>&nbsp;</p>\n";
            }
?>

und bei pages WHERE visibility = 'public' ORDER BY  ... wollte ich versuchen mit ='public, hidden'
aber alle versuche mißlangen. mit komma, ohne komme, jedes für sich in gänsefüßchen... nichts klappte. smiley
eine idee?

gruß dbs
Logged

FrankH

Offline Offline

Posts: 735


WWW
« Reply #19 on: July 01, 2009, 06:42:59 AM »

@dbs:
Quote
WHERE visibility = 'public' ORDER BY  ... wollte ich versuchen mit ='public, hidden'

Na nimm doch einfach korrekten SQL-Code:
Code:
... WHERE visibility = 'public' OR visibility = 'hidden' ...
Logged

Ochs und Esel in ihrem Lauf
halt ich leider auch nicht auf
dbs
WebsiteBaker Org e.V.

Offline Offline

Posts: 3719


WWW
« Reply #20 on: July 01, 2009, 11:27:11 AM »

Quote
Na nimm doch einfach korrekten SQL-Code:
  grin ähm... what?

hab es nun probiert und klappt prima. danke dir. smiley

gruß dbs
Logged

abraxas

Offline Offline

Posts: 24


« Reply #21 on: July 03, 2009, 04:15:24 PM »

Hallo ich habe ein Problem,

ich wollte zusätzlich zum Datum noch den Bearbeiter mit ausgeben das habe ich mit folgendem Code (leider erfolglos) probiert
Code:
$ergebnis = mysql_query ("SELECT * FROM " . TABLE_PREFIX . "pages WHERE visibility = 'public' OR visibility =
'hidden' ORDER BY modified_when DESC LIMIT 15");

while ($zeile = mysql_fetch_array($ergebnis)) {
$aenderungsdatum= date("d.m.y, H:i: ", $zeile['modified_when']);
$weblink=$zeile['link'];
$cutzeichen=strrpos($weblink,"/");
$weblinktext = substr($weblink,0,$cutzeichen);

$bearbeiter = mysql_fetch_array(mysql_query(SELECT * FROM . TABLE_PREFIX . "users WHERE user_id =".$zeile['modified_by']));
$bearbeiter_name=$bearbeiter['display_name'];

if ($weblinktext == ""){
$weblinktext = "/";
}


echo $aenderungsdatum ."<a href=/pages$weblink.php><b>" . $zeile['page_title'] . "</b></a>"." Bearbeitet von: ".$bearbeiter_name."<br>";
}

Leider kenne ich mich mit PHP und Datenbanken nicht so gut aus,
weswegen ich den Fehler nicht finde,
das Ergenis ist jenenfalls, dass nach "Bearbeitet von:" gar nichts ausgegeben wird.

Für eure Hilfe wäre ich sehr Dankbar
Logged
abraxas

Offline Offline

Posts: 24


« Reply #22 on: July 03, 2009, 08:51:54 PM »

So,
ich hab es jetzt doch noch selbst hin bekommen.

Code:
echo "<table  align='center' style='border: 0px solid #000000;'><tr><th align='left' style='border-bottom: 2px solid #000000;'>Seite</th><th align='left' style='border-bottom: 2px solid #000000;'>Geändert von</th><th align='left' style='border-bottom: 2px solid #000000;'>Geändert am</th>";
$ergebnis = mysql_query ("SELECT * FROM " . TABLE_PREFIX . "pages WHERE visibility = 'public' OR visibility =
'hidden' ORDER BY modified_when DESC LIMIT 15");

while ($zeile = mysql_fetch_array($ergebnis)) {
$aenderungsdatum= date("d.m.y, H:i:s ", $zeile['modified_when']);
$weblink=$zeile['link'];
$cutzeichen=strrpos($weblink,"/");
$weblinktext = substr($weblink,0,$cutzeichen);

$bearbeiterquery=$database->query("Select display_name FROM ".TABLE_PREFIX."users WHERE user_id=".$zeile['modified_by']);
$bearbeiter = $bearbeiterquery->fetchRow();

if ($weblinktext == ""){
$weblinktext = "/";
}


echo "<tr><td style='border-bottom: 1px solid #000000;'><a href=/pages$weblink.php><b>" .$zeile['page_title']."</b></td></a><td style='border-bottom: 1px solid #000000;'>".$bearbeiter[0]."</td><td style='border-bottom: 1px solid #000000;'>".$aenderungsdatum."</td></tr>";
}
echo "</table>";

Die Ausgabe mache ich jetzt auch noch in einer Tabelle, aber das ist halt Geschmackssache, wie man es gerade braucht.

Vieleicht kann es ja noch jemand gebrauchen (rainer-66 hat glaub ich auch so etwas gemeint?)

Gruß abraxas
« Last Edit: July 03, 2009, 09:09:01 PM by abraxas » Logged
abraxas

Offline Offline

Posts: 24


« Reply #23 on: July 12, 2009, 12:46:09 PM »

Hallo zusammen,

ich habe nochmal eine kurze Frage,
das Datum 11.07.2009 15:55:43 steht in der Datenbank als int(11) 1244491005.
wisst ihr nach welchem Prinzip die int-Zahl aus dem Datum bzw. das Datum aus der int-Zahl gebildet wird?

Gruß Abraxas
Logged
zarathustra.at

Offline Offline

Posts: 56


« Reply #24 on: July 12, 2009, 01:49:35 PM »

Hallo zusammen,

ich habe nochmal eine kurze Frage,
das Datum 11.07.2009 15:55:43 steht in der Datenbank als int(11) 1244491005.
wisst ihr nach welchem Prinzip die int-Zahl aus dem Datum bzw. das Datum aus der int-Zahl gebildet wird?

Gruß Abraxas

Das Datum errechnet sich aus den Sekunden, welche seit einem bestimmten gegebenen Tag (fällt mir jetzt nicht ein, ich glaube irgendwas mit 1970) vergangen sind, gibt auch Umrechner, welche man im Netz findet:

http://elmar-eigner.de/tstamps.html
Logged
Pages: [1] 2   Go Up
Print
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.16 | SMF © 2011, Simple Machines Valid XHTML 1.0! Valid CSS!