Seite 4 von 23

Re: Event-Kalender mit SQLite

Verfasst: Di 11. Jan 2022, 11:30
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

Re: Event-Kalender mit SQLite

Verfasst: Di 11. Jan 2022, 13:51
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 ...

Re: Event-Kalender mit SQLite

Verfasst: Di 11. Jan 2022, 14:09
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]"';
}

Re: Event-Kalender mit SQLite

Verfasst: Di 11. Jan 2022, 14:26
von Tommy Herrmann
Den gleichen Fehler kann man auch bei Farbe und Hintergrundfarbe am Eintrag "Eintrag BBCode" vom 03.01.2022 erkennen.

Re: Event-Kalender mit SQLite

Verfasst: Di 11. Jan 2022, 14:30
von Tommy Herrmann
Alle BBCode mit einem "gleich" Zeichen

=

stellen den Inhalt weiterhin dar. Auch YouTube z.B.

Re: Event-Kalender mit SQLite

Verfasst: Di 11. Jan 2022, 15:08
von Werner-Zenk.de
$txt = preg_replace('/\[c=(.*?)\](.*)\[\/c\]/Uism', '$2', $txt); // [c=]

$2 ist die Lösung

Re: Event-Kalender mit SQLite

Verfasst: Di 11. Jan 2022, 15:15
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:

Re: Event-Kalender mit SQLite

Verfasst: Mi 12. Jan 2022, 06:28
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

Re: Event-Kalender mit SQLite

Verfasst: Mi 12. Jan 2022, 19:31
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.

Re: Event-Kalender mit SQLite

Verfasst: Mi 12. Jan 2022, 19:55
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

Re: Event-Kalender mit SQLite

Verfasst: Do 13. Jan 2022, 08:47
von Werner-Zenk.de
Moin Tommy,
also mir ist der Title wichtiger als eine Formatierung der Beschreibung.

Re: Event-Kalender mit SQLite

Verfasst: Do 13. Jan 2022, 09:04
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.

Re: Event-Kalender mit SQLite

Verfasst: Sa 15. Jan 2022, 00:13
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

Re: Event-Kalender mit SQLite

Verfasst: Sa 15. Jan 2022, 04:28
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.

Re: Event-Kalender mit SQLite

Verfasst: Sa 15. Jan 2022, 05:40
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

Re: Event-Kalender mit SQLite

Verfasst: Sa 15. Jan 2022, 06:18
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.

Re: Event-Kalender mit SQLite

Verfasst: Sa 15. Jan 2022, 06:20
von Tommy Herrmann
Moin, Moin :)

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

... noch ist das ZIP-Archiv gleich ⏳

Re: Event-Kalender mit SQLite

Verfasst: Sa 15. Jan 2022, 06:52
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

Re: Event-Kalender mit SQLite

Verfasst: Sa 15. Jan 2022, 07:58
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>';

Re: Event-Kalender mit SQLite

Verfasst: Sa 15. Jan 2022, 09:05
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 ...