Event-Kalender mit SQLite

PHP, CSS und JavaScript lernen. Anwendungen für Webseiten
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 5744
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Event-Kalender mit SQLite

Ungelesener Beitrag von Tommy Herrmann »

.... ich habe das jetzt getestet.

Es liegt an der Verschachtelung von BBCode.

In dem Moment, wo mehr als 1 BBCode verwendet wird, also so wie unten im Text, wird der mit angezeigt:

Code: Alles auswählen

[center][c=#8080ff][b]Meldung[/b][/c][/center]
Die getragene Unterwäsche kann auf der ISS nämlich nicht gewaschen werden. Sie wird mit anderem Müll in eine Raumkapsel gefüllt und Richtung Erde geschickt. In der Erdatmosphäre verglüht dann die Kapsel mit der eingefrorenen Unterwäsche und am Himmel erscheint eine menschgemachte Sternschnuppe. "Nicht jede Sternschnuppe ist romantisch", sagte Groemer der Nachrichtenagentur dpa.
... nur der erste BBCode wird nicht mit angezeigt, alle weiteren werden angezeigt. Habe ich zwei wie z.B.

Code: Alles auswählen

[b][i]Fette Kursivschrift[/i][/b]
... wird das Italic noch als BBCode bei Mausüber mit angezeigt.


BBCode verschachtelt.jpg


Geht das noch anzupassen, denn auch mit dem vorhandenen BBCode von Dir, ist ja eine Verschachtelung mehrerer Codes möglich.

Das scheint mir ja diese Zeile hier zu sein:

Code: Alles auswählen

$txt = preg_replace('/\[.*?\](.*?)\[\/.*?\]/ism', '$1', $txt);
... gibt es denn so etwas wie preg_replace_all :confused:


Dieser Code mit '$2'

Code: Alles auswählen

$txt = preg_replace('/\[.*?\](.*?)\[\/.*?\]/ism', '$2',  $txt);
zeigt es dann so an:


BBCode verschachtelt $2.jpg


... oder der Code mit Count '${2}siehe Event,$2':

$txt = preg_replace('/\[.*?\](.*?)\[\/.*?\]/ism', '${2}siehe Event,$2', $txt);

... sieht dann so aus :)


BBCode verschachtelt Count.jpg
Benutzeravatar
Werner-Zenk.de
Mitglied (Level 10)
Mitglied (Level 10)
Beiträge: 755
Registriert: Di 8. Dez 2020, 19:42
Wohnort: Bamberg
Kontaktdaten:

Re: Event-Kalender mit SQLite

Ungelesener Beitrag von Werner-Zenk.de »

Da müsste man die Code-Orgie vom weiter oben verwenden ;)

$txt = preg_replace('/\[b\](.*)\[\/b\]/Uism', '$1', $txt); // [b]
$txt = preg_replace('/\[i\](.*)\[\/i\]/Uism', '$1', $txt); // [i]
$txt = preg_replace('/\[s\](.*)\[\/s\]/Uism', '$1', $txt); // [s]
$txt = preg_replace('/\[q\](.*)\[\/q\]/Uism', '$1', $txt); // [q]
$txt = preg_replace('/\[u\](.*)\[\/u\]/Uism', '$1', $txt); // [u]
$txt = preg_replace('/\[c=(.*)\](.*)\[\/c\]/Uism', '$1', $txt); // [c=]
$txt = preg_replace('/\[bc=(.*)\](.*)\[\/bc\]/Uism', '$1', $txt); // [bc=]
$txt = preg_replace('/\[img=(.*)\](.*)\[\/img\]/Uism', '$1', $txt); // [img=]
$txt = preg_replace('/\[video=(.*)\](.*)\[\/video\]/Uism', '$1', $txt); // [video=]

dann funktioniert das ...
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 5744
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Event-Kalender mit SQLite

Ungelesener Beitrag von Tommy Herrmann »

Danke Werner,

ja - eigentlich logisch :tu:

... nur die "Color" bleibt komischer Weise immer noch, bei "Wäsche waschen" am 20.01.2022, stehen. Weiterhin ist das damit formatierte Wort "Melding" nicht zu sehen - habe ich einen Fehler :confused:

https://www.mobirise-tutorials.com/Even ... er-SQLite/

Code: Alles auswählen

function titel($datum, $uhr, $event, $txt) {
    
  // EDIT Tommy - entfernt
  // $txt = preg_replace('/\[.*?\](.*?)\[\/.*?\]/ism', '$1', $txt);
  
  // EDIT Tommy - jeden BBCode einzeln ersetzt
  $txt = preg_replace('/\[b\](.*)\[\/b\]/Uism', '$1', $txt); // [b]
  $txt = preg_replace('/\[i\](.*)\[\/i\]/Uism', '$1', $txt); // [i]
  $txt = preg_replace('/\[s\](.*)\[\/s\]/Uism', '$1', $txt); // [s]
  $txt = preg_replace('/\[q\](.*)\[\/q\]/Uism', '$1', $txt); // [q]
  $txt = preg_replace('/\[u\](.*)\[\/u\]/Uism', '$1', $txt); // [u]
  $txt = preg_replace('/\[center\](.*)\[\/center\]/Uism', '$1', $txt); // [center] EDIT von Tommy
  $txt = preg_replace('/\[c=(.*)\](.*)\[\/c\]/Uism', '$1', $txt); // [c=]
  $txt = preg_replace('/\[bc=(.*)\](.*)\[\/bc\]/Uism', '$1', $txt); // [bc=]
  $txt = preg_replace('/\[img=(.*)\](.*)\[\/img\]/Uism', '$1', $txt); // [img=]
  $txt = preg_replace('/\[video=(.*)\](.*)\[\/video\]/Uism', '$1', $txt); // [video=]
  $txt = preg_replace('/\[youtube=(.*)\](.*)\[\/youtube\]/Uism', '$1', $txt); // [youtube=] EDIT von Tommy
  $txt = preg_replace('/\[url=(.*)\](.*)\[\/url\]/Uism', '$1', $txt); // [url=] EDIT von Tommy  
  
  $txt = !empty($txt) ?  $txt . '
' : $txt;
  $uhr = !empty($uhr) ? ' - ' . $uhr . ' Uhr' : $uhr;
  return ' title="' . $datum . $uhr . '
' . $event . '
' . $txt . '[Event anzeigen]"';
}
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 5744
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Event-Kalender mit SQLite

Ungelesener Beitrag von Tommy Herrmann »

Den gleichen Fehler kann man auch bei Farbe und Hintergrundfarbe am Eintrag "Eintrag BBCode" vom 03.01.2022 erkennen.
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 5744
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Event-Kalender mit SQLite

Ungelesener Beitrag von Tommy Herrmann »

Alle BBCode mit einem "gleich" Zeichen

=

stellen den Inhalt weiterhin dar. Auch YouTube z.B.
Benutzeravatar
Werner-Zenk.de
Mitglied (Level 10)
Mitglied (Level 10)
Beiträge: 755
Registriert: Di 8. Dez 2020, 19:42
Wohnort: Bamberg
Kontaktdaten:

Re: Event-Kalender mit SQLite

Ungelesener Beitrag von Werner-Zenk.de »

$txt = preg_replace('/\[c=(.*?)\](.*)\[\/c\]/Uism', '$2', $txt); // [c=]

$2 ist die Lösung
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 5744
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Event-Kalender mit SQLite

Ungelesener Beitrag von Tommy Herrmann »

Super Werner,

ja - eigentlich total logisch - hätte ich auch entdecken müssen :eek:

Code: Alles auswählen

function titel($datum, $uhr, $event, $txt) {
    
  // EDIT Tommy - deaktiviert, da hier keine verschachtelten BBCode entfernt werden
  // $txt = preg_replace('/\[.*?\](.*?)\[\/.*?\]/ism', '$1', $txt);
  
  // EDIT Tommy - jeden BBCode einzeln entfernt
  $txt = preg_replace('/\[b\](.*)\[\/b\]/Uism', '$1', $txt); // [b]
  $txt = preg_replace('/\[i\](.*)\[\/i\]/Uism', '$1', $txt); // [i]
  $txt = preg_replace('/\[s\](.*)\[\/s\]/Uism', '$1', $txt); // [s]
  $txt = preg_replace('/\[q\](.*)\[\/q\]/Uism', '$1', $txt); // [q]
  $txt = preg_replace('/\[u\](.*)\[\/u\]/Uism', '$1', $txt); // [u]
  $txt = preg_replace('/\[center\](.*)\[\/center\]/Uism', '$1', $txt); // [center] EDIT von Tommy
  $txt = preg_replace('/\[c=(.*)\](.*)\[\/c\]/Uism', '$2', $txt); // [c=]
  $txt = preg_replace('/\[bc=(.*)\](.*)\[\/bc\]/Uism', '$2', $txt); // [bc=]
  $txt = preg_replace('/\[img=(.*)\](.*)\[\/img\]/Uism', '$2', $txt); // [img=]
  $txt = preg_replace('/\[video=(.*)\](.*)\[\/video\]/Uism', '$2', $txt); // [video=]
  $txt = preg_replace('/\[youtube=(.*)\](.*)\[\/youtube\]/Uism', '$2', $txt); // [youtube=] EDIT von Tommy
  $txt = preg_replace('/\[url=(.*)\](.*)\[\/url\]/Uism', '$2', $txt); // [url=] EDIT von Tommy  
  
  $txt = !empty($txt) ?  $txt . '
' : $txt;
  $uhr = !empty($uhr) ? ' - ' . $uhr . ' Uhr' : $uhr;
  return ' title="' . $datum . $uhr . '
' . $event . '
' . $txt . '[Event anzeigen]"';
}
Die $2 steht ja auch bei der Erstellung immer dort.

Prima - so geht es :hurra:
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 5744
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Event-Kalender mit SQLite

Ungelesener Beitrag von Tommy Herrmann »

Moin Werner,

... habe Deine Änderungen als Version vom 12.01.2022 erkannt und übernommen (inklusive der Variable-Änderung).

Danke :tu:

https://www.mobirise-tutorials.com/Even ... er-SQLite/


... übrigens (beim Eintrag 28.01.2022) muss die Farbe außen stehen beim Wort und, sonst ist das Wort weder fett noch kursiv - warum :confused:

Code: Alles auswählen

[b][i]Fett[/i][/b] [c=red][b][i]und[/i][/b][/c] [b][i]Kursiv[/i][/b]
Ich kann also nicht dem Wort "und" nur eine andere Farbe verpassen, sondern muss dann alle Auszeichnungen neu setzen. Das ist jetzt vollkommen egal - wollte es nur erwähnen.

Witzig finde ich, dass mein Google-Translator sogar den Mausüber-Text korrekt übersetzt :D
Benutzeravatar
Werner-Zenk.de
Mitglied (Level 10)
Mitglied (Level 10)
Beiträge: 755
Registriert: Di 8. Dez 2020, 19:42
Wohnort: Bamberg
Kontaktdaten:

Re: Event-Kalender mit SQLite

Ungelesener Beitrag von Werner-Zenk.de »

Vielleicht kommt es da auf die Reihenfolge der preg_replace()-Funktionen an, in welcher Zeile diese stehen.
Normalerweise reicht eine Texthervorhebung vollkommen aus.
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 5744
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Event-Kalender mit SQLite

Ungelesener Beitrag von Tommy Herrmann »

ja klar - es geht mir ja nur um das "Verständnis" der ganzen Sache.

Ich habe jetzt z.B. beim "Image", das "title" Attribut entfernt (siehe Eintrag 05.01.2022), da sonst eine Formatierung von der "Beschreibung" (unter dem Bild) unmöglich ist:

Code: Alles auswählen

  // $txt = preg_replace('/\[img=(.*)\](.*)\[\/img\]/Uism', '<figure><img class="bild" src="$1" title="$2"><figcaption>$2</figcaption></figure>', $txt); // [img=url]  EDIT Tommy - Titel entfernt

  $txt = preg_replace('/\[img=(.*)\](.*)\[\/img\]/Uism', '<figure><img class="bild" src="$1"><figcaption>$2</figcaption></figure>', $txt); // [img=url]  EDIT Tommy - Titel entfernt
Benutzeravatar
Werner-Zenk.de
Mitglied (Level 10)
Mitglied (Level 10)
Beiträge: 755
Registriert: Di 8. Dez 2020, 19:42
Wohnort: Bamberg
Kontaktdaten:

Re: Event-Kalender mit SQLite

Ungelesener Beitrag von Werner-Zenk.de »

Moin Tommy,
also mir ist der Title wichtiger als eine Formatierung der Beschreibung.
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 5744
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Event-Kalender mit SQLite

Ungelesener Beitrag von Tommy Herrmann »

Moin,

ja - nur zeigt ja das Titel-Attribut am Bild genau den gleichen Text wie der darunter stehende Bildtext an. Das ist dann doppelt.

Kann man sich ja einstellen wie man will und ich habe das auch wieder, wie im Original, zurück gestellt.
Benutzeravatar
Werner-Zenk.de
Mitglied (Level 10)
Mitglied (Level 10)
Beiträge: 755
Registriert: Di 8. Dez 2020, 19:42
Wohnort: Bamberg
Kontaktdaten:

Re: Event-Kalender mit SQLite

Ungelesener Beitrag von Werner-Zenk.de »

Moin Tommy,

leider habe ich zurzeit keine Neuerungen für den Kalender, ich habe nur ein paar kleinere Design-Anpassungen gemacht.

Wusstest du, dass man bestimmte Wochentage hervorheben kann?

In der Datei: style.css ganz am Ende folgendes einfügen:

Code: Alles auswählen

td[data-wochentag="Samstag"],
td[data-wochentag="Sonntag"] {
  background-color: #ffdfdf !important;
}
Dann werden Samstag und Sonntag rot hervorgehoben.

Der Kalender auf deiner Seite in dunkel und auf Japanisch :lachtot:

kalender_japan_dunkel.png
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 5744
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Event-Kalender mit SQLite

Ungelesener Beitrag von Tommy Herrmann »

Moin Werner,

mein Kalender hat viel zu bieten :D :prost:

Man muss übrigens den Google-Übersetzer am Ende oben rechts am Kreuz ❌ ganz schließen, damit der nicht beim nächsten Aufruf meiner Seite gleich wieder auftaucht. Am Handy kommt man an das Kreuz nur im Querformat - da hat Google noch einen kleinen "Bug".

Ich habe den Übersetzer ja schon ca. 15 Jahre auf meinen Seiten. Anfangs war die Übersetzung manchmal zum Totlachen - inzwischen übersetzt der in allen Sprachen fast perfekt und ist ausgesprochen nützlich.

... und ja - das mit den markierten Wochenenden, hatte ich bereits entdeckt und auch ausprobiert.

Eigentlich machen das ja viele oder fast alle Kalender, aber irgendwie fand ich die Version ohne die Hervorhebung "ruhiger" und ausgeglichener vom Design (wie Du ja offensichtlich auch). Könnte für Restaurants interessant sein, die vielleicht Montags Ruhetag haben.
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 5744
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Event-Kalender mit SQLite

Ungelesener Beitrag von Tommy Herrmann »

was ist denn das plötzlich für ein Verzeichnis "vscode" im derzeitigen Download vom Kalender von Deiner Seite? In Deiner Mausüber-Anzeige vom Download-Link werden die nicht angezeigt. Sind aber im Download via Firefox und Edge enthalten. 2 Dateien sind leer und in der "launch.json" steht was von der SQLite-Datei :confused:

vscode.JPG
Benutzeravatar
Werner-Zenk.de
Mitglied (Level 10)
Mitglied (Level 10)
Beiträge: 755
Registriert: Di 8. Dez 2020, 19:42
Wohnort: Bamberg
Kontaktdaten:

Re: Event-Kalender mit SQLite

Ungelesener Beitrag von Werner-Zenk.de »

Moin Tommy,

ich hatte vergessen dieses Verzeichnis zu löschen, bevor ich es als Zip-Archiv verpackt habe :confused:

Eine neue Änderung gibt es bereits:
auswahlliste_monat.png
Eine Auswahlliste für den Monat, das ist Meiner Meinung nach einfacher als eine Zahl ins Formularfeld einzugeben.
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 5744
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Event-Kalender mit SQLite

Ungelesener Beitrag von Tommy Herrmann »

Moin, Moin :)

ah - ich gucke gleich mal - ja - fände ich auch.

... noch ist das ZIP-Archiv gleich ⏳
Benutzeravatar
Werner-Zenk.de
Mitglied (Level 10)
Mitglied (Level 10)
Beiträge: 755
Registriert: Di 8. Dez 2020, 19:42
Wohnort: Bamberg
Kontaktdaten:

Re: Event-Kalender mit SQLite

Ungelesener Beitrag von Werner-Zenk.de »

Sollte jetzt online sein.
Ich muss da immer drei Verzeichnisse aktualisieren: die Demo, ein ungepacktes Verzeichnis (für die Mausüber-Anzeige Info) und ein gepacktes Verzeichnis.
https://werner-zenk.de/archiv/scripts/_ ... /index.htm
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 5744
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Event-Kalender mit SQLite

Ungelesener Beitrag von Tommy Herrmann »

Jepp :tu:

... alles bestens - habe es zum größten Teil alles so in meinen Kalender übernommen :)

Bootstrap (Mobirise) hat für die in dem spezifischen Thema verwendeten Text-Links bereits verschiedene definierte CSS-Klassen, in meinem Fall habe ich diese verwendet - und wollte auch wie auf der Seite - Links unterstrichen darstellen:

class="text-primary"
return ' <a href="' . $url . '" style="text-decoration: underline;" class="text-primary" target="_blank" rel="noopener">' . $url . '</a>';
Benutzeravatar
Werner-Zenk.de
Mitglied (Level 10)
Mitglied (Level 10)
Beiträge: 755
Registriert: Di 8. Dez 2020, 19:42
Wohnort: Bamberg
Kontaktdaten:

Re: Event-Kalender mit SQLite

Ungelesener Beitrag von Werner-Zenk.de »

:tu:
Das war eher für die gedacht die keine Farbhervorhebung für Links definiert haben.
Es gibt noch viele die das dann in Frames anzeigen lassen :D
Kann sich jeder einstellen, wie er möchte ...
Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 6 Gäste