php-script einbauen

In diesem Forum kann man Fragen zur Programmierung stellen, die bei der Entwicklung von Mods für phpBB 3.0.x oder dem Modifizieren des eigenen Forums auftauchen.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
fontane
Mitglied
Beiträge: 295
Registriert: 03.02.2013 12:58

php-script einbauen

Beitrag von fontane »

Da die Suchfunktion bisher nichts passendes ausgeworfen hat, nun direkt gefragt.

Hallo Community,

ich möchte folgende php-Funktion (Zeitsteuerung) in z.B. "overall_header.html" einbauen:

<!-- Weihnachten -->

Code: Alles auswählen

<?php
$_today = getdate();
$_heute = mktime(0, 0, 0, $_today['mon'], $_today['mday'], $_today['year'] );
$_ab_datum = mktime(0, 0, 0, 12, 24, 2014);
$_bis_datum = mktime(0, 0, 0, 12, 26, 2014);
if ($_heute >= $_ab_datum AND $_heute <= $_bis_datum)
{
?>
<br />
<img src="http://www.URL.xy/xxxx/weihnachtsmann.jpg" height="438" width="650">
<br />
<?php
}
?>
<!-- Silvester/Neujahr -->

Code: Alles auswählen

<?php
$_today = getdate();
$_heute = mktime(0, 0, 0, $_today['mon'], $_today['mday'], $_today['year'] );
$_ab_datum = mktime(0, 0, 0, 12, 31, 2014);
$_bis_datum = mktime(0, 0, 0, 12, 01, 2015);
if ($_heute >= $_ab_datum AND $_heute <= $_bis_datum)
{
?>
<br />
<img src="http://www.URL.xy/xxxx/sektglas.jpg" height="438" width="650">
<br />
<?php
}
?>
Baue ich oben stehende Zeitabfragen
* in eine HTML-Seite meiner Homepage ein, funktioniert es.
* in eine HTML-Seite des Forums ein, funktioniert es nicht.

Anmerkung: In der "overall_footer.html" funktioniert

Code: Alles auswählen

<?php echo '.date("Y").'; ?>
doch bereits.

Wäre nett wenn mir jemand behilflich sein würde, wie bzw. wo man vorstehende "php-Zeitfensterfunktion" korrekt in phpBB3 einbindet?
(Die Lösung können bestimmt auch Andere gebrauchen, es bieten sich bestimmt viele Anlässe im Jahr.)


Für Hilfestellungen vorab besten Dank.

Nachtrag 1:
Der Syntax
"Erlaube PHP in Templates:
Wenn diese Option eingeschaltet ist, werden PHP- und INCLUDEPHP-Anweisungen in Templates erkannt und ausgeführt."

Ist selbstverständlich auf JA gesetzt.

Nachtrag 2:
nun kam ich soweit, das mit

Code: Alles auswählen

<!-- INCLUDEPHP test.php --> 
(test.php im Root)

mit Inhalt:

Code: Alles auswählen

<?php
  echo 'An dieser Position erscheint in Kürze eine Information!';
?>
von phpBB3 der Text von "echo" erfolgreich angezeigt wird.
Fazit: php funktioniert :grin:

Was ist noch zu tun damit das Zeitsystem auch funktioniert? :cry:
Zuletzt geändert von fontane am 19.12.2014 18:11, insgesamt 1-mal geändert.
phpbb 3.0.4 | PHP 7.4 | MySQL 5.7
Benutzeravatar
HabNurNeFrage
Ehemaliges Teammitglied
Beiträge: 1627
Registriert: 17.01.2010 20:22
Wohnort: An der Ostsee
Kontaktdaten:

Re: php-script einbauen

Beitrag von HabNurNeFrage »

Hi,

PHP direkt in einer Template-HTML-Datei funktioniert, wenn Du es wie folgt umschließt:

<!-- PHP --> Dein PHP-Code hier <!-- ENDPHP -->
Die PHP-Begrenzungen <?php und ?> einfach weglassen, da der PHP-Template-Switch diese ersetzt.

Oder Du schreibst Deinen Code in externe Dateien (z.B. xmas.php) und nimmst <!-- INCLUDEPHP xmas.php -->

Beides nicht unbedingt die vernünftigste Art PHP zu verwenden, sollte aber mit der ACP-Freigabe funktionieren.

LG
| HomeStory.org - the friendly Community | Forum für alle Lebenslagen | <"}))}~ | Nicht nachmachen: Meine phpBB Spielereien |
var shoppen = geld.replace (/geld/g, 'bloedsinn'); if (geld < 1) { return home; };
fontane
Mitglied
Beiträge: 295
Registriert: 03.02.2013 12:58

Re: php-script einbauen

Beitrag von fontane »

HabNurNeFrage hat geschrieben:Hi,

PHP direkt in einer Template-HTML-Datei funktioniert, wenn Du es wie folgt umschließt:

<!-- PHP --> Dein PHP-Code hier <!-- ENDPHP -->

Oder Du schreibst Deinen Code in externe Dateien (z.B. xmas.php) und nimmst <!-- INCLUDEPHP xmas.php -->
Beides nicht unbedingt die vernünftigste Art PHP zu verwenden, sollte aber mit der ACP-Freigabe funktionieren.

LG
Hallo HabNurNeFrage,

mit <!-- INCLUDEPHP xmas.php --> funktionierte es bzgl. der Zeitsteuerung nicht *grrrrr

Mit
<!-- PHP --> PHP-Code hier <!-- ENDPHP --> funktioniert es perfekt. :P
i'm happy :grin:

Ganz ganz herzlichen Dank für Deine Hilfe. :wink:

Anmerkung: was ich nicht wusste, das <!-- PHP --> den Syntax <?php und <!-- ENDPHP --> den Syntax ?> ersetzt.
phpbb 3.0.4 | PHP 7.4 | MySQL 5.7
fontane
Mitglied
Beiträge: 295
Registriert: 03.02.2013 12:58

Re: php-script einbauen

Beitrag von fontane »

HabNurNeFrage hat geschrieben:PHP direkt in einer Template-HTML-Datei funktioniert, wenn Du es wie folgt umschließt
Da es bzgl. dem Datum Dank Deiner Hilfe funktioniert, eine Zusatzfrage bzgl. der Uhrzeiten:
Wenn ich die Zeile:

Code: Alles auswählen

$_heute = mktime(0, 0, 0, $_today['mon'], $_today['mday'], $_today['year'] );
z.B. ändere in

Code: Alles auswählen

$_heute = mktime($_today['hour'], $_today['min'], $_today['sec'], $_today['mon'], $_today['mday'], $_today['year'] );
funktioniert die zum Test eingestellte Abfragezeit

Code: Alles auswählen

$_ab_datum = mktime(12, 35, 15, 12, 23, 2014);
$_bis_datum = mktime(12, 38, 45, 12, 23, 2014);
if ($_heute >= $_ab_datum AND $_heute <= $_bis_datum)
in vorstehendem Beispiel (12:35:15 Uhr bis 12:38:45 Uhr) jedoch nicht (Datum 23.12.2014 funktioniert)

Wie muss es bzgl. der Zeiten korrekt definiert werden?

Danke für Hilfestellung
phpbb 3.0.4 | PHP 7.4 | MySQL 5.7
fontane
Mitglied
Beiträge: 295
Registriert: 03.02.2013 12:58

Re: php-script einbauen

Beitrag von fontane »

Könnte/würde mir jemand bei der Lösungsfindung des Problemes behilflich sein?
phpbb 3.0.4 | PHP 7.4 | MySQL 5.7
regazer
Mitglied
Beiträge: 278
Registriert: 04.01.2014 16:08

Re: php-script einbauen

Beitrag von regazer »

Wo ist denn $_today deklariert, damit sich das bzw. die Syntax mal überprüfen läßt ?
Bist Du sicher, daß diese Abfrage if ($_heute >= $_ab_datum AND $_heute <= $_bis_datum) so korrekt ist ?

Ich frage nur deshalb, weil ich mich sonst erst reinarbeiten müßte.
Never run a touching system. Automatic updates can be dangerous. :o
To steal ideas from one person is plagiarism. To steal from many is research. :lol:
Benutzeravatar
Elsensee
Ehemaliges Teammitglied
Beiträge: 832
Registriert: 19.05.2010 15:14
Wohnort: Hamburg
Kontaktdaten:

Re: php-script einbauen

Beitrag von Elsensee »

Ich würde dir raten, statt AND lieber && zu benutzen, da AND unerwartete Ergebnisse erzeugen kann. Echt jetzt. Folgender Code zum Beispiel:

Code: Alles auswählen

$test = true and false
Man erwartet false, denn es ist ja nicht beides true, aber weißt du, was das Ergebnis ist? Genau. true
Das Gleich hat Vorrang vor dem and. Verrückt, was man jeden Tag hier lernt. :D

Außerdem noch ein Tipp am Rande: Die Aktuelle Uhrzeit kriegst du auch einfach raus, indem du time() ohne Parameter aufrufst. Dann hast du es gleich passend da, um es mit den Ergebnissen von mktime() vergleichen zu können. :)
Posts mostly powered by GitHub and phpBB.de Cross-Reference

2015-03-20 - Never forget 8)
fontane
Mitglied
Beiträge: 295
Registriert: 03.02.2013 12:58

Re: php-script einbauen

Beitrag von fontane »

regazer hat geschrieben:Wo ist denn $_today deklariert, damit sich das bzw. die Syntax mal überprüfen läßt ?
Öhm, siehe letze Zeile dieses Postings
regazer hat geschrieben:Bist Du sicher, daß diese Abfrage if ($_heute >= $_ab_datum AND $_heute <= $_bis_datum) so korrekt ist ?
zumindest funktioniert es so Tagesgenau.
Elsensee hat geschrieben:Ich würde dir raten, statt AND lieber && zu benutzen, da AND unerwartete Ergebnisse erzeugen kann.
Ok, wenn der Profi es schreibt, werde ich die Zeile

Code: Alles auswählen

if ($_heute >= $_ab_datum AND $_heute <= $_bis_datum)
so

Code: Alles auswählen

if ($_heute >= $_ab_datum && $_heute <= $_bis_datum)
abändern.
Elsensee hat geschrieben:Echt jetzt. Folgender Code zum Beispiel:

Code: Alles auswählen

$test = true and false
Man erwartet false, denn es ist ja nicht beides true, aber weißt du, was das Ergebnis ist? Genau. true Das Gleich hat Vorrang vor dem and. Verrückt, was man jeden Tag hier lernt. :D
Es schrieb der Profi dem Laien. :grin:
Elsensee hat geschrieben:Außerdem noch ein Tipp am Rande: Die Aktuelle Uhrzeit kriegst du auch einfach raus, indem du time() ohne Parameter aufrufst. Dann hast du es gleich passend da, um es mit den Ergebnissen von mktime() vergleichen zu können. :)
Laie nunmal bin :oops: .

Ich selbst kenne mich damit nicht aus, bin nur Anwender. Den Code (siehe Eröffnungsposting) habe ich vor Jahren im I-Net gefunden.

Würde mich freuen wenn mir jemand den Code (siehe Eröffnungsposting) hinsichtlich Uhrzeit und Datumsanfrage entsprechend "neu" gestalten würde. (gibt es vllt. ein entsprechendes PHP-Forum? Link?)
phpbb 3.0.4 | PHP 7.4 | MySQL 5.7
regazer
Mitglied
Beiträge: 278
Registriert: 04.01.2014 16:08

Re: php-script einbauen

Beitrag von regazer »

Öhm, siehe letze Zeile dieses Postings
Da gibt es nichts zu "öhm"-en. :o
Natürlich meinte ich in welcher Datei des Quellcodes !!! :lol:

In welcher letzten Zeile welchen Postings ? Oder hast Du diese Variable selbst deklariert ?
Never run a touching system. Automatic updates can be dangerous. :o
To steal ideas from one person is plagiarism. To steal from many is research. :lol:
Benutzeravatar
Elsensee
Ehemaliges Teammitglied
Beiträge: 832
Registriert: 19.05.2010 15:14
Wohnort: Hamburg
Kontaktdaten:

Re: php-script einbauen

Beitrag von Elsensee »

fontane hat geschrieben:Würde mich freuen wenn mir jemand den Code (siehe Eröffnungsposting) hinsichtlich Uhrzeit und Datumsanfrage entsprechend "neu" gestalten würde. (gibt es vllt. ein entsprechendes PHP-Forum? Link?)
Ich hatte das mal gemacht für ne Webseite, kann den Code, aber leider nicht mehr finden.
Aber Weihnachten ist noch recht einfach:

Code: Alles auswählen

$now = time();
$xmas_begin = mktime(0, 0, 0, 12, 24);
$xmas_end = mktime(23, 59, 59, 12, 26);

if ($now >= $xmas_begin && $now <= $xmas_end)
{
    echo 'XMAS';
}
Der Spaß beginnt bei Silvester, weil es da ja auch einen Jahreswechsel gibt. Das ist uns jetzt aber einfach mal egal. Uns interessiert nur der Monat und der Tag, weil der ja in jedem Jahr der Gleiche ist. Zum Glück:

Code: Alles auswählen

$day = date('j');
$month = date('n');

if ($month == 12 && $day == 31)
{
    echo 'SILVESTER';
}
else if ($month == 1 && $day == 1)
{
    echo 'HAPPY NEW YEAR!';
}
Posts mostly powered by GitHub and phpBB.de Cross-Reference

2015-03-20 - Never forget 8)
Verschoben von [3.0.x] Administration und Benutzung nach [3.0.x] Mod Bastelstube am 29.12.2014 16:07 durch Elsensee

Antworten

Zurück zu „[3.0.x] Mod Bastelstube“