Your-pMF
     registrieren     benutzer     suche     team     kalender     hilfe     index    
Chat     downloads     link us     gästebuch     supportforum    
 

Terminanzeige usw.

original Thema anzeigen

 
31.10.04, 10:34:02

the-tester

Die Anzeige der anstehenden termine funktioniert bei mir nicht richtig... Die Begrenzung auf so und so viele Tage wird nicht eingehalten... :( Desweiteren wurden die Termine in der Reihenfolge ausgegeben, in der sie in die Datenbank eingetragen wurden, was nicht unbedingt Datumsrichtig ist... Ergo habe ich das Skript mal etwas abgeändert und eine Begrenzung auf die nächst anstehenden 4 Termine eingefügt... [php] # # ### Termine $event_list = ''; if (!empty($_config['INDEX_EVENTS'])) { $liste = array(); $result = $_db->query('SELECT id, subject, DATE_FORMAT(event_date,"%e.%c.") as event_date_r FROM `'.$_cfg['DB_PREFIX'].'calendar` WHERE (TO_DAYS(NOW()) - TO_DAYS(event_date) <= 7) AND (typ=0 OR (user_id = '.intval($_user['id']).' AND typ=1)) ORDER BY `event_date` ASC'); $terminzahl='1'; while (($event = $_db->fetch_array($result)) && ($terminzahl <= '4')) { $liste[] = ''.$event['subject'].' ('.$event['event_date_r'].') '; $terminzahl++; } $event_list = (count($liste) > 0) ? implode(', ', $liste) : ''; unset($liste); } [/php]
31.10.04, 11:20:27

Biker

geändert von: Biker - 31.10.04, 11:25:35

Jo damit finktioniert die Anzeige der Termine aber leider werden auc abgelaufene Termine noch angezeigt. Heute z.B. werden nocht Termine vom 29/30 angezeigt :P Jetzt fehlt mir nur noch die korrekte Anzeige mehrer Geburtstage, dann hab ich das alles beisammen:kaffe:
31.10.04, 14:05:12

the-tester

Dass abgelaufe angezeigt werden verstehe ich auch nicht... Das hatte ich vergessen zu erwähnen...
02.11.04, 00:41:18

the-tester

geändert von: the-tester - 02.11.04, 00:41:52

Damit die abgelaufenen Termine nicht mehr angezeigt werden die Zeile [php]WHERE (TO_DAYS(NOW()) - TO_DAYS(event_date) <= 30)[/php] ersetzen durch: [php]WHERE ((TO_DAYS(event_date) - TO_DAYS(NOW()) >= 0) && (TO_DAYS(NOW()) - TO_DAYS(event_date) <= 30))[/php] [color=red]edit/[/color] ohne Gewähr... Bei mir klappt es, aber ich nurtze 7 statt 30. Dennoch werden die Termine der nächsten 2 Monate angezeigt...
02.11.04, 08:11:52

Biker

na dat schein so weit zu Funzen! vielen Dank!! :yes:
05.11.04, 07:51:23

Biker

Bei den Terminen hab ich gerade einen neuen Fehler entdeckt. Sind an diesem Tage Termine, werden nur diese angezeigt. Alle andere Verschienden. Ich denke die werden dann sichtbar wenn kein aktueller Termin vorhanden ist :confused:
05.11.04, 17:00:46

the-tester

geändert von: the-tester - 05.11.04, 17:02:03

Wegen der zuletzt registrierten User... Wer zusätzlich das Registrierdatum (in Klammern) angezeigt haben will und zusätzlich eine Trennung der einzelnen User mittel Komma, lese sich diesen Post durch... [quote="BugHunter2k"]ändern in [php] # # ### Statistik Werte $stat_forum = $_db->fetch_first('SELECT COUNT(f.`id`) AS `forums`, SUM(f.`topics`) AS `topics`, SUM(f.`posts`) AS `posts` FROM `'.$_cfg['DB_PREFIX'].'board` AS f WHERE `id` IN ('.get_aviable_boards('board').')'); $_stat['forums'] = $stat_forum['forums']; $_stat['topics'] = $stat_forum['topics']; $_stat['posts'] = $stat_forum['posts']; $user_anz = $_db->fetch_first('SELECT COUNT(`id`) AS `anz` FROM `'.$_cfg['DB_PREFIX'].'user`'); $_stat['users'] = $user_anz['anz']; $last_user = $_db->query('SELECT `id`, `name` FROM `'.$_cfg['DB_PREFIX'].'user` ORDER BY `reg` DESC LIMIT 0,5'); $_stat['last_user'] = ''; while ($row=$_db->fetch_array($last_user)){ $_stat['last_user'] .= ''.$row[name].' '; } $_stat['time'] = pmf_time(PMF_TIME); $_stat['date'] = pmf_date(PMF_TIME); [/php] [/quote] Zeile 16-22 ersetzen durch: [php] $last_user = $_db->query('SELECT `id`, `name`, `reg` FROM `'.$_cfg['DB_PREFIX'].'user` ORDER BY `reg` DESC LIMIT 0,3'); $_stat['last_user'] = ''; while ($row=$_db->fetch_array($last_user)){ if ($_stat['last_user']=='') $_stat['last_user'] .= ''.$row[name].' ('.date('d.m.y',$row[reg]).')'; else $_stat['last_user'] .= ', '.$row[name].' ('.date('d.m.y',$row[reg]).')'; } [/php] [color=red]edit/[/color] Als Ausgabe erhält man dann anstatt "User1 User2 User3" dieses hier: "User1 (01.01.04), User2 (13.10.04), User3 (04.11.04)"
08.11.04, 07:58:42

Biker

Terminanzeige funzt nicht mehr. Die angezeigten Termine sind am WE verschwunden. Am WE wurden nur noch aktuelle Termine angezeigt, heute dagegen gar nix mehr. Werde mich im laufe des Tages wohl damit befassen müssen. Wer hat denn vieleicht eine Idee wie man das wie im 3.1er wieder hinbekommen kann? :kaffe:
11.01.05, 00:24:18

siebi

Hallo Biker Wie ich in deinem Forum gesehen habe hast du die Terminanzeige hinbekommen. Verrätst du mir wie du das gemacht hast(für Anfänger)? Bei dem ganzen hin und her komm ich garnicht mehr mit was jetzt wie funktioniert. Gruß Christian
11.01.05, 08:44:06

Biker

Ahmmm ja, ist schon ne weile her als ich das gemacht habe, aber halte Dich genau an die Anweisungen und dann klappt das auch. Ich hatte noch irgendwo einen Fehler . Ich habs dann nochmal gemacht und dan funzte das. Wobei ich sagen muss, das die Anzeige im 3.1xx besser war, denn die lies sich noch unterteilen in Heute, in den nächsten 7 Tagen/2Wochen/3Wochen und wenn ich richtig weis auch 4 Wochen. Hier haste jetzt eigentlich nur ne Liste der nächsten Termine :none:
11.01.05, 23:04:01

siebi

geändert von: siebi - 11.01.05, 23:06:12

Hi Scheint geklappt zu haben. Nur kann ich auch den Text dadrüber ändern? Da steht ja jetzt "Aktuelle Ereignisse" und "Heutige Termine" was ja nicht so ganz stimmt. Wie kann ich das ändern?? Ach ja, und kann ich auch die Farbe der Persönlichen Termine ändern? Danke!
12.01.05, 08:23:17

Biker

ja kann man in den verschiedenen Tpl. ist ein bissi mit suchen verbunden aber geht :kaffe:
12.01.05, 10:11:19

siebi

Moin Also brauch in "nur" die Tamplates nach diesem Text, z.B. Heutige Termine" abzugrasen, und den ändern?! Oh man :shock: , kann mir jamand nen Tipp geben, welche Richtung ich zumindest suchen muss :uhoh:
12.01.05, 11:18:41

Biker

Guckst Du Adminbereich templates/bearbeiten index.tpl :wink:
12.01.05, 14:35:46

siebi

Naja, war zwar nicht ganz so einfach. Musste doch noch was suchen, aber ich ahbs hinbekommen.:yes: Dankeeeee!!!
28.04.05, 15:26:06

hama

geändert von: hama - 28.04.05, 15:29:12

Untenstehend ein Teil meiner index.php, der dafür sorgt, dass die Termine auf der Startseite des Forums wunderbar angezeigt werden. Hier zu sehen: [URL="http://www.orst.ch/phpmyforum/index.php"]www.orst.ch[/URL] (rein mit test test) Zusätzlich gebe ich die Termine auch auf der Startseite der Website aus (funktioniert auch tipptopp). Nun das kleine Problem: Auf der Startseite werden die privaten Kalendereinträge farbig ausgegeben (grün) und das möchte ich beim Forum ebenfalls. Irgendwie müsste der obenstehende Code so abgeändert werden, dass die privaten Einträge grün ausgeben werden (die werden im Moment auch blau angezeigt). Kann mir da jemand helfen? [PHP]# # ### Termine $event_list = ''; ### Termine anzeigen - START - ### //heute $result = $_db->query('SELECT id, subject, UNIX_TIMESTAMP(event_date) AS date FROM `'.$_cfg['DB_PREFIX'].'calendar` WHERE event_date = NOW() AND (typ=0 OR (user_id = '.intval($_user['id']).' AND typ=1)) ORDER BY `event_date`'); $liste = array(); while($event = $_db->fetch_array($result)) { $liste[] = "$event[subject] (".date('d.m.y',($event["date"])).")"; } $event_list["today"] = (count($liste) > 0) ? implode(", ", $liste) : ""; //morgen $result = $_db->query('SELECT id, subject, UNIX_TIMESTAMP(event_date) AS date FROM `'.$_cfg['DB_PREFIX'].'calendar` WHERE event_date = DATE_ADD(NOW(), Interval 1 day) AND (typ=0 OR (user_id = '.intval($_user['id']).' AND typ=1)) ORDER BY `event_date`'); $liste = array(); while($event = $_db->fetch_array($result)) { $liste[] = ''.$event['subject'].' ('.date('d.m.y',($event["date"])).')'; } $event_list["tomorrow"] = (count($liste) > 0) ? implode(", ", $liste) : ""; //next week $result = $_db->query('SELECT id, subject, UNIX_TIMESTAMP(event_date) AS date FROM `'.$_cfg['DB_PREFIX'].'calendar` WHERE event_date >= DATE_ADD(NOW(), Interval 7 day) AND event_date <= DATE_ADD(NOW(), Interval 14 day) AND (typ=0 OR (user_id = '.intval($_user['id']).' AND typ=1)) ORDER BY `event_date`'); $liste = array(); while($event = $_db->fetch_array($result)) { $liste[] = ''.$event['subject'].' ('.date('d.m.y',($event["date"])).')'; } $event_list["week"] = (count($liste) > 0) ? implode(", ", $liste) : ""; //next 7 days $result = $_db->query('SELECT id, subject, UNIX_TIMESTAMP(event_date) AS date FROM `'.$_cfg['DB_PREFIX'].'calendar` WHERE event_date >= DATE_ADD(NOW(), Interval 1 day) AND event_date <= DATE_ADD(NOW(), Interval 7 day) AND (typ=0 OR (user_id = '.intval($_user['id']).' AND typ=1)) ORDER BY `event_date`'); $liste = array(); while($event = $_db->fetch_array($result)) { $liste[] = ''.$event['subject'].' ('.date('d.m.y',($event["date"])).')'; } $event_list["next7days"] = (count($liste) > 0) ? implode(", ", $liste) : ""; //next 2 week $result = $_db->query('SELECT id, subject, UNIX_TIMESTAMP(event_date) AS date FROM `'.$_cfg['DB_PREFIX'].'calendar` WHERE event_date >= DATE_ADD(NOW(), Interval 2 day) AND event_date <= DATE_ADD(NOW(), Interval 30 day) AND (typ=0 OR (user_id = '.intval($_user['id']).' AND typ=1)) ORDER BY `event_date`'); $liste = array(); while($event = $_db->fetch_array($result)) { $liste[] = ''.$event['subject'].' ('.date('d.m.y',($event["date"])).')'; } $event_list["week2"] = (count($liste) > 0) ? implode(", ", $liste) : ""; //no Events if(!$event_list["today"] && !$event_list["tomorrow"] && !$event_list["week"] &&!$event_list["week2"] && !$event_list["next7days"]) $_style->del("index_events"); ### Termine anzeigen - ENDE - ### # [/PHP] Hier noch als Beilage der Code, damit die Kalendereinträge auf der Startseite ausgeben werden. Da funktioniert's und die privaten Einträge werden schön grün ausgeben. [PHP]// calendar $result = $_board->query('SELECT id, subject, typ, UNIX_TIMESTAMP(event_date) AS date FROM '.$TB_BOARD_CALENDAR.' WHERE event_date >= DATE_ADD(NOW(), Interval 0 day) AND event_date <= DATE_ADD(NOW(), Interval 100 day) AND (typ=0 OR (user_id = '.intval($_user['id']).' AND typ=1)) ORDER BY `event_date` LIMIT 10'); $liste = array(); while($event = $_board->fetch_array($result)) { if ($event['typ']){ $tmp=''.$event['subject'].''; } else { $tmp=$event['subject']; } $liste[] = '' .$tmp.' ('.date('d.m.',($event["date"])).')'; } $event_list = (count($liste) > 0) ? implode('
', $liste) : '';[/PHP] Vielleicht fällt ja jemandem von euch sofort auf, was ich ändern muss. Gruss und Danke hama
12.05.05, 23:21:34

hama

Hat jemand mal kurz Zeit, in mein Grün-Blau-Problem reinzuschauen (vorherige Message). Wäre super cool! Gruss :) hama
12.05.05, 23:29:19

pip

geändert von: pip - 12.05.05, 23:33:19

ersetze einfach folgenden code aus dem oberen: [PHP] $liste[] = ''.$event['subject'].' ('.date('d.m.y',($event["date"])).')'; [/PHP] mit diesem: [PHP] if ($event['typ']) { $tmp=''.$event['subject'].''; } else { $tmp=$event['subject']; } $liste[] = '' .$tmp.' ('.date('d.m.',($event["date"])).')'; [/PHP] außerdem musste die abfragen anpassen: nach [PHP] subject, [/PHP] [PHP] typ, [/PHP] einfügen.
13.05.05, 17:41:50

hama

@pip: Danke! :) Das hat von A bis Z einfach super funktioniert und ist genau das, was ich gesucht habe. Yeah! Ein schönes Wochenende wünscht hama
 
 
Powered by: phpMyForum 4.2.1 © Christoph Roeder
SQL Error