WBCE CMS Forum

WBCE CMS – Way Better Content Editing.

You are not logged in.

#1 30.11.2022 19:36:14

nasowas
Member

[gelöst] Herrnhuter Losungsscripte nutzen

Hallo zusammen,

kann mir bitte jemand helfen, dieses php-Script http://www.combib.de/losungphp/index.html in wbce lauffähig zu machen? Könnte man daraus ein Droplet oder Modul erstellen? Hab mich schonmal umgeschaut, aber dafür reichts bei mir leider nicht.

Was bisher geschah: Ich habe für die Datei "losungphp1.inc" einen Code2-Abschnitt erstellt und die beiden ".dat" Dateien in einen Mediaordner namens "losungen" gelegt. Den Pfad im Code2-Abschnitt angepasst: "media/losungen/losungphp2022.dat" und habe nun dieses Ergebnis auf meiner Testseite: https://wbce.markus-paulus.info/

Da fehlt irdendwie die Formatierung.

Vielen Dank im Voraus.

Viele Grüße
nasowas

Last edited by florian (01.12.2022 08:32:53)


WBCE 1.6.1, Frontendtemplate: Simple Responsive, Backendtemplate: Fraggy, Browser: Firefox Betriebssystem Windows 11 pro

Offline

#2 30.11.2022 21:29:03

bernd
Developer

Re: [gelöst] Herrnhuter Losungsscripte nutzen

Zunächst einmal:
deine bisherige Herangehensweise ist absolut o.k.
Man braucht nicht für jede "Nischen-Aufgabe" unbedingt gleich ein Modul oder ein Droplet.

Nun zum Problem(chen):
in der .dat wird das Zeichen § als Trenner für die verschiedenen Textzeilen verwendet.
Beim Lesen des entsprechend Bereichs aus der .dat wird dies aber irgendwie "verhunzt".
Dadurch schlägt dann im Script das Auftrennen des Textstrings an den Stellen fehl und du bekommst den gezeigten Output.
Das "? im Kästchen" sollte eigentlich jedesmal ein § sein und durch den explode-Befehl gar nicht mehr erscheinen.

Die Ursache, warum das § nicht mehr richtig erkannt wird, liegt wohl daran, dass die .dat Dateien als Zeichenkodierung ISO-8859-1 haben und dann in einer UTF-8 Umgebung verarbeitet werden.

Nun könnte man (1. Idee) einfach hergehen und die .dat Dateien explizit mit UTF-8 als Zeichenkodierung abspeichern.
Dann wird zwar das § erkannt und auch korrekt umgesetzt, allerdings stimmt dann der Zeichen-Offset - ab dem gelesen wird und wie weit - innerhalb der Datei nicht mehr.
Also auch keine Lösung.

Ich habe jetzt mal ganz pragmatisch in der losungphp2022.dat (siehe Anhang) alle Vorkommen von § durch | ersetzt (da das Zeichen | sonst nirgendwo in der Datei vorkommt)

Edit - bessere Lösung, bei der man nicht an der .dat rumoperieren muss:
den ausgelesenen Textschnippsel explizit nach UTF8 umwandeln.
Dazu im Script die Zeile:

$Lphp = explode("§", $LphpText);

so ergänzen:

$Lphp = explode("§", utf8_encode($LphpText));

Last edited by bernd (30.11.2022 22:04:11)


... nein in Europa verwenden wir beim Programmieren nicht € statt $ ...

Offline

Liked by:

nasowas, berny, jean

#3 30.11.2022 23:45:33

nasowas
Member

Re: [gelöst] Herrnhuter Losungsscripte nutzen

Hallo bernd,

vieeelen Dank für die Mühe! Und schon funzt´s. Fantastisch!!! Ich hab mich auch schon über die "§" gewundert. Aber zu mehr hat´s eben nicht gerecht.   big_smile

Viele Grüße
nasowas


WBCE 1.6.1, Frontendtemplate: Simple Responsive, Backendtemplate: Fraggy, Browser: Firefox Betriebssystem Windows 11 pro

Offline

#4 01.12.2022 15:40:11

nasowas
Member

Re: [gelöst] Herrnhuter Losungsscripte nutzen

Hallo zusammen,

nur kurz zur Info. Wollte das Script dann auf einer Unterseite einsetzen, habe alles so wie oben beschrieben gemacht, aber leider keine Anzeige mehr. Nur Überschrift bis Doppelpunkt: "Losung und Lehrtext für Datum:". Dann ein leeres Feld.

Ich schmeiß mal die angepasste .inc hier rein. Vielleicht hat jemand ne Idee wo es haken könnte:

// =================================
// Script zum Einfügen der Losungen:
// =================================


// Einstellungen:
// ==============

// Bibeltext fett ausgeben: (1 = fett    0 = nicht fett)
$LphpBibeltextFett = 1;

// Stellenangabe als Link zur Internetbibel: (1 = Link    0 = kein Link)
$LphpBibelLink = 0;

// Überschrift einfügen: ("" = keine Überschrift)
$LphpTitelText = "Losung und Lehrtext für";

// Datumsangabe allein oder hinter Überschrift:
$LphpTitelDatum = 2;

// mögliche Werte: (Beispiel 04.02.2008)
// 0 = (keine Datumsangabe)
// 1 = "04.02.2008"
// 2 = "Montag, 4. Februar 2008"
// 3 = "4. Februar 2008"

// Doppelpunkt hinter Überschrift / Datum (1 = Doppelpunkt    0 = keiner)
$LphpTitelDoppelpunkt = 1;


// =================================================================
// Den nachfolgenden Code bitte nur ändern, wenn Sie sich auskennen!
// =================================================================

// Datendatei zum aktuellen Jahr ermitteln: 
$LphpDatei = "media/losungen/losungphp" . date("Y") . ".dat";

// Die Daten aus der Datendatei einlesen:
$LphpFp = @fopen($LphpDatei,"rb");
if ($LphpFp){
	$LphpTagID = date("z") +1;
	fseek ($LphpFp, ($LphpTagID * 12) - 12);
	$LphpPoLa = fread($LphpFp, 12);
	$LphpPo = intval(substr($LphpPoLa, 0, 6)) -1;
	$LphpLa = intval(substr($LphpPoLa, 6, 6));
	fseek ($LphpFp, $LphpPo);
	$LphpText = fread($LphpFp, $LphpLa);
	$Lphp = explode("§",  utf8_encode($LphpText));
	fclose($LphpFp);
}

// Variablen für die Datumsangabe in der Überschrift
// Wochentagsname: (z.B.: "Montag")
$LphpWT = array("Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag");
$LphpWochentagName = $LphpWT[date("w")];

// Monatsname: (z.B.: "Februar")
$LphpM = array("", "Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember");
$LphpMonatName = htmlentities($LphpM[date("n")]);

// Tag als Zahl: (z.B.: kurz = "4" / lang = "04")
$LphpTagKurz = date("j");
$LphpTagLang = date("d");

// Monat als Zahl: (z.B.: kurz = "2" / lang = "02")
$LphpMonatKurz = date("n");
$LphpMonatLang = date("m");

// Jahr als Zahl: (z.B.: kurz = "08" / lang = "2008")
$LphpJahrKurz = date("y");
$LphpJahrLang = date("Y");

// Bibeltext ggf. Fett:
if($LphpBibeltextFett==1){
	$Lphp[1] = "<b>" . $Lphp[1] . "</b>";
	$Lphp[5] = "<b>" . $Lphp[5] . "</b>";
}

// Stellenangabe ggf. als Link zur Internetbibel
if($LphpBibelLink==1){
	$Lphp[2] = "<a title='Zum Bibeltext' href='" . $Lphp[3] . "' target='_blank'>" . $Lphp[2] . "</a>";
	$Lphp[6] = "<a title='Zum Bibeltext' href='" . $Lphp[7] . "' target='_blank'>" . $Lphp[6] . "</a>";
}

// Überschrift zusammenstellen:
$LphpTitel = "";
if($LphpTitelText != ""){$LphpTitel = htmlentities(trim($LphpTitelText));}

// Datum zusammenstellen:
$LphpDatum = "";
if($LphpTitelDatum <1 or $LphpTitelDatum >3){
	$LphpDatum = "";
}elseif($LphpTitelDatum==1){
	$LphpDatum = $LphpTagLang . "." . $LphpMonatLang . "." . $LphpJahrLang;
}elseif($LphpTitelDatum==2){
	$LphpDatum = $LphpWochentagName  . ", " . $LphpTagKurz . ". " . $LphpMonatName . " " . $LphpJahrLang;
}elseif($LphpTitelDatum==3){
	$LphpDatum = $LphpTagKurz . ". " . $LphpMonatName . " " . $LphpJahrLang;
}

if($LphpTitel != "" and $LphpDatum != ""){$LphpTitel = $LphpTitel . " ";}
$LphpTitel = $LphpTitel . $LphpDatum;
if($LphpTitel != "" and $LphpTitelDoppelpunkt==1){$LphpTitel=$LphpTitel . ":";}

// Titel ausgeben:
if($LphpTitel != ""){echo $LphpTitel . "<br><br>";}

// Losung ausgeben:
echo $Lphp[0] . $Lphp[1] . "<br>"; 
echo $Lphp[2] . "<br><br>";

// Lehrtext ausgeben:
echo $Lphp[4] . $Lphp[5] . "<br>";
echo $Lphp[6];

Viele Grüße
nasowas


WBCE 1.6.1, Frontendtemplate: Simple Responsive, Backendtemplate: Fraggy, Browser: Firefox Betriebssystem Windows 11 pro

Offline

#5 01.12.2022 16:18:58

bernd
Developer

Re: [gelöst] Herrnhuter Losungsscripte nutzen

Ja ne is klar  angel
Er findet dann den Pfad zu den .dat Dateien nicht mehr.
Änder das mal so ab:

$LphpDatei = WB_PATH."/media/losungen/losungphp" . date("Y") . ".dat";

Dann sollte es egal sein wie tief im Seitenbaum du es "versteckst".


... nein in Europa verwenden wir beim Programmieren nicht € statt $ ...

Offline

Liked by:

nasowas

#6 01.12.2022 17:11:16

nasowas
Member

Re: [gelöst] Herrnhuter Losungsscripte nutzen

Da war ich gedanklich gar nicht so weit davon entfernt. Ich hätte aber bestimmt den "." vergessen.
So passt´s.

Vielen Dank!
nasowas


WBCE 1.6.1, Frontendtemplate: Simple Responsive, Backendtemplate: Fraggy, Browser: Firefox Betriebssystem Windows 11 pro

Offline

#7 07.12.2022 01:45:34

bernd
Developer

Re: [gelöst] Herrnhuter Losungsscripte nutzen

So, noch der Vollständigkeit halber:

ich hatte mittlerweile mal den Peter Baumann (dem Macher der combib.de Seite ) kontaktiert.
Er konnte das Problem nicht wirklich reproduzieren, hatte aber schon gelegentlich von Problemen bei der Einbindung in WordPress gehört. In den Fällen wurde dann halt in den .dat Dateien das § durch | ersetzt (wie in meinem ersten Lösungsansatz).
Er kann sich aber bislang nicht dazu durchringen künftig generell | statt § in den .dat Dateien zu verwenden, weil einfach zu viele Losungs-Skripte "in freier Wildbahn" sind, die ja dann alle angepasst werden müssten.

Der Dialog hat mich dazu veranlasst nochmal bischen tiefer nach den Ursachen zu forschen. Die eigentliche Ursache des Problems ist eigentlich total simpel:
Beide Dateien (.inc und .dat) haben als Zeichenkodierung ISO-8859-1. Solang die .inc normal inkludiert wird (also mittels include) ist alles in bester Ordnung. In unserem Fall erhält sie aber durch das Speichern im Code2-Abschnitt die Zeichenkodierung UTF-8 und verträgt sich dann nicht mehr mit der .dat devil


... nein in Europa verwenden wir beim Programmieren nicht € statt $ ...

Offline

Liked by:

webbird, nasowas

#8 07.10.2023 18:07:33

jank68
Member

Re: [gelöst] Herrnhuter Losungsscripte nutzen

Hallo WBCE Clan,

möchte auch gerne die losungen auf der Webseite einbinden.

Gruß Jan


WBCE 1.6.1, Frontendtemplate: Hortal Responsive, Backendtemplate: Flat Theme, Browser: Firefox Betriebssystem Windows 11 pro

Offline

#9 07.10.2023 19:41:38

florian
Administrator

Re: [gelöst] Herrnhuter Losungsscripte nutzen

Das ist, mit Verlaub, nicht direkt "Anfängerniveau". Du brauchst wohl dieses Script aus der im ersten Post verlinkten quelle. Um das dann wie beschrieben einzubinden, brauchst Du in WBCE das Modul "Code2" (https://addons.wbce.org/pages/addons.ph … em&item=37), in das Du dann den oben geposteten Code einfügst.
Die "dat"-Dateien mit den Losungen musst Du über die Medienverwaltung (https://help.wbce.org/pages/de/das-back … medien.php) in ein (über die Medienverwaltung anzulegendes) Verzeichnis "losungen" hochladen.


Sorgen sind wie Nudeln: man macht sich meist zu viele.

Offline

#10 07.10.2023 20:13:35

jank68
Member

Re: [gelöst] Herrnhuter Losungsscripte nutzen

es funktioniert , ihr seid alle Spitze !!!
https://www.kiga-loewenherz.de
Gruß Jan


WBCE 1.6.1, Frontendtemplate: Hortal Responsive, Backendtemplate: Flat Theme, Browser: Firefox Betriebssystem Windows 11 pro

Offline

Liked by:

florian

Board footer

up