InternInhaltsverzeichnisGlossarBausteineLinklisteTutorialsKommentare

Thema: Event-Kalender Artikel anzeigen

RaHa schrieb am Freitag, den 17 Juli 2020 #21
@whe
Zitat:
Farben sind ein Thema für sich auf Webseiten; im Kalender finde ich das aber sehr gut, dass man die events farblich unterscheiden kann.
aber nicht zu bunt; ist aber alles Geschmacksache. Man muss das auch nicht alles parametrieren können, weil das schnell den Code überlädt.

Das Perfekte ist doch, dass man die Farben einfach anpassen kann. So kann man dem Kalender seine Buntheit nehmen, indem man die Farben in Farbnuancen setzt. Wie hier test-event-kalender.checkip.net

Die Anpassungen kann man mindern indem man seine eigene verbindung.php nutzt und beim Update nur das dort hinzufügt was dazu gekommen ist. Parameter sind das einzigste Mittel es allen recht machen zu können, zu mindestens meistens 😉
Chris ✶✶✶✶✶ schrieb am Freitag, den 17 Juli 2020 #22
Hallo,
wirklich toller Kalender und super interessante funktionen!
Als totaler PHP-Anfänger würde ich gerne wissen, wie man im Kalenderblatt von den Arbeitstagen die jeweiligen Feiertage des Monats abzieht. Hab das mal so grob mit # markiert. Ich müsste ja irgendwie mit dem $ftag Array arbeiten oder?


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?php
// ...

// Kalenderblatt
echo '&#9676; Arbeitstage: ' arbeitstage($_GET["jahr"], $_GET["monat"]) . '<br>';
#echo '&#9676; arbeitstageMINUSfeiertage: ' . ??($_GET["???"] . '<br>';




// Feiertag
function feiertag($tag$monat$jahr) {
 
$ausgabe "";
 foreach (
feiertage($jahr) as $ftag => $zeitstempel) {
  if (
$zeitstempel == date("U"mktime(000$monat$tag$jahr))) {
   
$ausgabe .= $ftag;
  }
 }
 return 
$ausgabe;
}


// Arbeitstage
function arbeitstage($jahr$monat$anzahl 0) {
 for(
$i 1$i <= date("t"mktime(000$monat1$jahr)); $i++) {
  if (
date("w"mktime(000$monat$i$jahr)) != && date("w"mktime(000$monat$i$jahr)) != 6   ) {
  
$anzahl++;
//   $anzahl =  $anzahl + $anzahl - $anzahlftag;
  
}
 }
 return 
$anzahl;
}

#// Arbeitstage - Feiertage pro Monat
#function arbeitstageMINUSfeiertage($jahr, $monat, $anzahl = 0) {
#...........??
#}

// ...
?>


Hilfe wäre super nett! :)

Bearbeitet von Werner;
PHP-code-Tags wurden hinzugefügt!
Mögliche Lösung:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
// ...
// Feiertagszähler
function feiertagszaehler($monat$jahr) {
 
$zaehler 0;

 
$monatslaenge date("t"mktime(000$monat1$jahr));
 for (
$tag 1$tag <= $monatslaenge$tag++) {
  foreach (
feiertage($jahr) as $ftag => $zeitstempel) {
   if (
$zeitstempel == date("U"mktime(000$monat$tag$jahr))) {
    
$zaehler++;
   }
  }
 }
 return 
$zaehler;
}

echo  
feiertagszaehler(102020);
// ...
?>
RaHa schrieb am Freitag, den 17 Juli 2020 #23
Für die, die sich immer vertippen, so wie ich, hier eine Prüfroutine.

Einbinden in verbindung.php unterhalb der Definition von $PRIORITAET_KATEGORIE_FARBE

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// modify RaHa ->
// Nach Prüfungsdurchlauf kann diese Modifikation ggf. ausdokumentiert oder gelöscht werden
// Test auf doppele Farben/Keys
// Zeilen mit Zuweisung von $KATEGORIEN zählen und $zahl ändern!
$zahl = 13;
if (count($KATEGORIEN) !== $zahl) {
    echo count($KATEGORIEN)."<br><br>";
    foreach ($KATEGORIEN AS $key => $value) { echo $key . " " . $value."<br>";}
    echo "<h1>Anzahl KATEGORIEN stimmt nicht, vermutlich doppelte Keys!</h1>";
    exit;
}
// Prüfen ob Key von $KATEGORIEN in $PRIORITAET vorhanden
if ($PRIORITAET_KATEGORIE_FARBE == "ja") {
    foreach ($KATEGORIEN AS $key => $value) {
         $farbe = array_keys($PRIORITAET, $key);
         if (!isset($farbe[0])) { echo "<br>".$key." von ".$value." ist nicht PRIORITAET vorhanden<br><br>"; exit; }
    }
}    
// Prüfen ob Key von $KATEGORIE_EMAIL in $KATEGORIE vorhanden
if (isset($KATEGORIE_EMAIL)) {
    foreach ($KATEGORIE_EMAIL AS $key => $value) {
         if (!isset($KATEGORIEN[$key])) { echo "<br>".$key." von ".$value." ist nicht KATEGORIEN vorhanden<br><br>"; exit; }
    }
}
// <- modify RaHa
Robert schrieb am Freitag, den 17 Juli 2020 #24
Hallo, also das mit den Wochen-Wiederholungen ist super gelungen. Vielen Dank!
Ein bisschen schade finde ich lediglich, dass man solche Serien-Events nicht alle 25 Stück zusammen bearbeiten kann, sondern immer nur das einzelne Event. Sei's drum... Ich lösche also alle 25 und lege sie dann mit den Änderungen neu an - geht auch.

Ich habe mir dann noch links bzw. rechts oben in der Titelzeile Links für das Journal bzw. Login eingefügt.
Mit folgenden Zeilen in die kalenderanzeige.php (ab Zeile 90)

<div style="letter-spacing:0;font-size:.8rem;font-weight:300;color:#0000AA;float:left;cursor:pointer;" onClick="zeigeJournal('.$jahr.');">&nbsp;Journal</div>
<div style="letter-spacing:0;font-size:.8rem;font-weight:300;color:#0000AA;float:right;cursor:pointer;" onClick="Login(\'anmelden()\')">Login&nbsp;</div>


Jedenfalls haben mir Eure Verbesserungen viel geholfen!
Robert
whe ✶✶✶✶✶ schrieb am Freitag, den 17 Juli 2020 #25
Hallo Werner,

kannst Du mir doch bitte erklären, wo ich die Änderung für das dropdown Menu für die Kategorien ändern kann.
Ich möchte in 4 Wochen nicht wieder alles neu aufsetzen und testen.

Gruß Wil
Werner schrieb am Freitag, den 17 Juli 2020 #26
Hallo Wil,
in der Datei: kalenderfunktionen2.php - Zeile: 381 (die Änderung ist rot markiert, also: background-):

$kategorieAW .= '<option value="' . $kategorie . '"' . ($kategorie == $auswahl ? ' selected="selected"' : '') . ' style="background-color: ' . $farbe . ';">' . $kategorie . '</option>';
Werner schrieb am Freitag, den 17 Juli 2020 #27
@Robert
Zitat:
Ein bisschen schade finde ich lediglich, dass man solche Serien-Events nicht alle 25 Stück zusammen bearbeiten kann, sondern immer nur das einzelne Event. Sei's drum... Ich lösche also alle 25 und lege sie dann mit den Änderungen neu an - geht auch.

Natürlich geht das, und zwar mit den Gruppenoptionen:

gruppenoptionen.png

Orginalgröße: 811 x 199 Pixel

Oder hier als Anim. Gif-Bild: » werner-zenk.de/archiv/hilfe_kalender/gruppenoptionen.gif
Robert schrieb am Freitag, den 17 Juli 2020 #28
Hallo Werner, ja natürlich, du hast recht.
Aber man muss dann z.B. die Priorität bei allen 25 einzeln ändern (hab ich jedenfalls so verstanden), und kann nicht einmal ändern und es sitzt bei allen Events der Gruppe.
Oder liege ich auch da falsch?

Gruß Robert
whe ✶✶✶✶✶ schrieb am Freitag, den 17 Juli 2020 #29
zu #478

kannst Du das noch bitte in Deine "Hilfe und Tipps" oben aufnehmen.

Werner Ich habe es unter "Hilfe und Tipps" - Gruppe auswählen aufgenommen.
Werner schrieb am Freitag, den 17 Juli 2020 #30
@Robert,
ja das stimmt, sollte man sich halt davor überlegen welche Priorität oder Kategorie das ist.
Die einzige Möglichkeit wäre noch über phpMyAdmin ...