Code - Fragen

Ein CMSimple Support Forum für deutsch sprechende Nutzer und Entwickler
cmb
Posts: 13273
Joined: Tue Jun 21, 2011 11:04 am
Location: Mü-Sa, RLP, DE
Contact:

Re: Code - Fragen

Post by cmb » Fri Mar 08, 2019 11:50 am

lck wrote:
Fri Mar 08, 2019 10:50 am
Woran kann ich in einem Template erkennen, welche PHP-Version mindestens erforderlich ist oder gibt es dafür ein Tool?
Es gibt PHP CompatInfo, dass auch von CMSimple_XH verwendet wird.

Verwendungsbeispiel für lck_overlay_02: phpcompatinfo.phar herunter laden, und im Templateverzeichnis ablegen. Im Templateverzeichnis phpcompatinfo.json mit folgendem Inhalt anlegen:

Code: Select all

{
    "source-providers": [
        {
            "in": ". as current",
            "exclude": [
            ],
            "name": "/\\.(php|htm)$/"
        }
    ],
    "plugins": [
    ],
    "analysers": [
    ],
    "services": [
    ]
}
Dann auf der Kommandozeile (cmd.exe):

Code: Select all

cd template\lck_overlay_02
php phpcompatinfo-5.1.0.phar analyser:run --alias current
Das produziert dann folgende Ausgabe:

Code: Select all

Data Source Analysed

Directories                                          1
Files                                                2
Errors                                               0


Extensions Analysis

    Extension Matches REF      EXT min/Max PHP min/Max PHP all
    Core              Core                 4.0.0
    standard          standard 4.0.0       4.0.0
    Total [2]                              4.0.0

Namespaces Analysis

    Namespace Matches REF  EXT min/Max PHP min/Max PHP all
    +global           Core             4.0.0
    Total [1]                          4.0.0

No interface found

No trait found

No class found

Functions Analysis

    Function       Matches REF      EXT min/Max PHP min/Max
    XH_printUrl    1       user                 4.0.0
    content        1       user                 4.0.0
    head           1       user                 4.0.0
    include_jQuery 1       user                 4.0.0
    is_readable    2       standard 4.0.0       4.0.0
    languagemenu   1       user                 4.0.0
    lastupdate     1       user                 4.0.0
    li             1       user                 4.0.0
    locator        1       user                 4.0.0
    loginlink      1       user                 4.0.0
    newsbox        2       user                 4.0.0
    onload         1       user                 4.0.0
    sitename       1       user                 4.0.0
    submenu        1       user                 4.0.0
    Total [14]                                  4.0.0

Constants Analysis

    Constant  Matches REF  EXT min/Max PHP min/Max
    XH_ADM    1       user             4.0.0
    Total [1]                          4.0.0

No condition found

Requires PHP 4.0.0 (min), PHP 4.0.0 (all)
Christoph M. Becker – Plugins for CMSimple_XH

frase
Posts: 3010
Joined: Thu Apr 21, 2016 6:32 am
Location: Saxony
Contact:

Re: Code - Fragen

Post by frase » Fri Mar 08, 2019 12:04 pm

cmb wrote:
Fri Mar 08, 2019 11:50 am
Es gibt PHP CompatInfo, dass auch von CMSimple_XH verwendet wird.
Wow. Wieder was gelernt.

Ich nehme mal an, dass Ludwig im Moment seine Templates für das Repo vorbereitet.
In diesem Fall würde ich aber einfach nur die erforderliche PHP-Version der getesteten XH-Version angeben.
Nicht, dass irgendjemand denkt: Ah, das läuft ja mit PHP4 ... und versucht dann XH auf PHP4 zu installeren ;-)

lck
Posts: 1785
Joined: Wed Mar 23, 2011 11:43 am
Contact:

Re: Code - Fragen

Post by lck » Fri Mar 08, 2019 6:11 pm

cmb wrote:
Fri Mar 08, 2019 11:50 am
Dann auf der Kommandozeile (cmd.exe):

Code: Select all

cd template\lck_overlay_02
php phpcompatinfo-5.1.0.phar analyser:run --alias current
Besten Dank Christoph. Ganz so einfach ging es bei mir doch nicht. Ins Templateverzeichnis wechseln ok, aber anstatt

Code: Select all

php phpcompatinfo-5.1.0.phar analyser:run --alias current
musste ich den absoluten Pfad zu php.exe angeben (*Nachtrag: Ich verwende portable Versionen von Xampp, dewegen muss der komplette Pfad angegeben werden)

Code: Select all

d:\xampp_7.3.2\php\php.exe phpcompatinfo-5.1.0.phar analyser:run --alias current
frase wrote:
Fri Mar 08, 2019 12:04 pm
Ich nehme mal an, dass Ludwig im Moment seine Templates für das Repo vorbereitet.
Das hat mich einfach grundsätzlich interessiert und ist bestimmt auch für andere interessant.
frase wrote:
Fri Mar 08, 2019 12:04 pm
In diesem Fall würde ich aber einfach nur die erforderliche PHP-Version der getesteten XH-Version angeben.
Nicht, dass irgendjemand denkt: Ah, das läuft ja mit PHP4 ... und versucht dann XH auf PHP4 zu installieren ;)
Ja klar. PHP 4 wird wohl kein Hoster mehr verwenden, hoffe ich doch :?.
„Bevor du den Pfeil der Wahrheit abschießt, tauche die Spitze in Honig!“   👉 Ludwig's XH-Templates for MultiPage & OnePage

lck
Posts: 1785
Joined: Wed Mar 23, 2011 11:43 am
Contact:

Re: Code - Fragen

Post by lck » Wed Mar 13, 2019 9:18 pm

https://wiki.cmsimple-xh.org/doku.php/userprelude.php wrote:
userprelude.php

Since CMSimple_XH 1.6.5 the file cmsimple/userprelude.php will be included before cms.php, if it exists. This offers the possibility to do some early customization without the need to modify index.php (what's especially nice for multilingual websites with multiple index.php). In particular, this file can be used for a maintenance mode by exiting the script execution before cms.php would be included.
Kann mir jemand dazu mal ein konkretes Beispiel geben, anhand eine Wartungsseite. Wie muss diese Datei aufgebaut sein?

Meine bisherigen Versuche sind gescheitert, entweder wurde der Text nur vor dem Inhalt der Seite ausgegeben oder die Seite wurde ausgegeben, aber am Ende der Seite erhielt ich folgende Meldung, obwohl die Datei mit <?php beginnt.
Header-Information kann nicht geändert werden - die Header wurden bereits verschickt (die Ausgabe begann in ...\cmsimplexh172\cmsimple\userprelude.php:1)
„Bevor du den Pfeil der Wahrheit abschießt, tauche die Spitze in Honig!“   👉 Ludwig's XH-Templates for MultiPage & OnePage

olape
Posts: 924
Joined: Fri Mar 13, 2015 8:47 am
Contact:

Re: Code - Fragen

Post by olape » Wed Mar 13, 2019 9:33 pm

Hier geht es darum, code einzubinden. Weniger darum, direkte Ausgaben zu tätigen.
Zum Beispiel bbclone.
Dieser Code müsste sonst in die index.php, bei mehrsprachigen Sites in die index.php jeder Sprache.

Über diesen Weg muss man den Code nur einmalig einbinden.
Ausserdem ist dieser Weg Updatesicher.

Nachtrag.

Als Wartungsmodus kann man natürlich eine Ausgabe bringen.
Danach müsste es aber beendet werden (exit;)
Denn dabei soll es ja nicht mehr weiter gehen.

cmb
Posts: 13273
Joined: Tue Jun 21, 2011 11:04 am
Location: Mü-Sa, RLP, DE
Contact:

Re: Code - Fragen

Post by cmb » Wed Mar 13, 2019 10:15 pm

lck wrote:
Wed Mar 13, 2019 9:18 pm
Kann mir jemand dazu mal ein konkretes Beispiel geben, anhand eine Wartungsseite. Wie muss diese Datei aufgebaut sein?
Olaf hat es bereits sehr gut zusammengefasst. Aber ein kleines konkretes Beispiel:

Code: Select all

<?php header('HTTP/1.1 503 Service Unavailable')?>
<html>
<!-- Wartungsseiteninhalt -->
</html>
<?php exit?>
Christoph M. Becker – Plugins for CMSimple_XH

lck
Posts: 1785
Joined: Wed Mar 23, 2011 11:43 am
Contact:

Re: Code - Fragen

Post by lck » Thu Mar 14, 2019 10:49 am

olape wrote:
Wed Mar 13, 2019 9:33 pm
Als Wartungsmodus kann man natürlich eine Ausgabe bringen.
Danach müsste es aber beendet werden (exit;)
Genau das war die Lösung.
cmb wrote:
Wed Mar 13, 2019 10:15 pm
Olaf hat es bereits sehr gut zusammengefasst. Aber ein kleines konkretes Beispiel:

Code: Select all

<?php header('HTTP/1.1 503 Service Unavailable')?>
<html>
<!-- Wartungsseiteninhalt -->
</html>
<?php exit?>
Könnte man ein oder zwei Beispiele hier mit aufnehmen?
„Bevor du den Pfeil der Wahrheit abschießt, tauche die Spitze in Honig!“   👉 Ludwig's XH-Templates for MultiPage & OnePage

lck
Posts: 1785
Joined: Wed Mar 23, 2011 11:43 am
Contact:

Re: Code - Fragen

Post by lck » Mon Aug 12, 2019 9:07 am

Betrifft Onepage_XH.

Der Content einer Onepage-Seite wird ja so ausgegeben:

Code: Select all

<div id="Seitenname" class="onepage_page">
<div class="onepage_page_inner">
...
</div>
</div>
Wäre es möglich die Ausgabe per PHP-Code in der template.htm so anzupassen?

Code: Select all

<div class="onepage_page">
<div class="onepage_page_inner">
<div id="Seitenname">
<h1><a href="Seitenname">Seitentitel</a></h1>
<div class="onepage_page_content">
...
</div>
</div>
</div>
</div>
Eine H1 am Anfang der Seite müsste hierbei natürlich zwingend sein.
Die zusätzlichen div's werden wohl kein großes Problem sein, aber die H1 suchen und dementsprechend zu erweitern, oder?

*Korrektur: würde so auch passen (also nur H1 erweitern und darunter ein zusätzliches div mit einer Klasse onepage_page_content)

Code: Select all

<div id="Seitenname" class="onepage_page">
<div class="onepage_page_inner">
<h1><a href="Seitenname">Seitentitel</a></h1>
<div class="onepage_page_content">
...
</div>
</div>
</div>
„Bevor du den Pfeil der Wahrheit abschießt, tauche die Spitze in Honig!“   👉 Ludwig's XH-Templates for MultiPage & OnePage

lck
Posts: 1785
Joined: Wed Mar 23, 2011 11:43 am
Contact:

Re: Code - Fragen

Post by lck » Sat Aug 24, 2019 3:23 pm

lck wrote:
Mon Aug 12, 2019 9:07 am
*Korrektur: würde so auch passen (also nur H1 erweitern und darunter ein zusätzliches div mit einer Klasse onepage_page_content)
@Christoph: Geht das oder eher nicht? Wenn nein, dann löse ich das anders. Für eine kurze Antwort wäre ich dankbar, damit ich daran weiterarbeiten kann.
„Bevor du den Pfeil der Wahrheit abschießt, tauche die Spitze in Honig!“   👉 Ludwig's XH-Templates for MultiPage & OnePage

cmb
Posts: 13273
Joined: Tue Jun 21, 2011 11:04 am
Location: Mü-Sa, RLP, DE
Contact:

Re: Code - Fragen

Post by cmb » Sat Aug 24, 2019 5:58 pm

lck wrote:
Mon Aug 12, 2019 9:07 am
Betrifft Onepage_XH.
[…]
Wäre es möglich die Ausgabe per PHP-Code in der template.htm so anzupassen?
Wenn die Anpassung in template.htm erfolgen soll, dann müsste man ein alternatives Onepage_content() zur Verfügung stellen. Die eigentliche Implementierung ist kein Hexenwerk, so dass man das mit Copy&Paste und ein bisschen Anpassung machen könnte.

Falls das Template sowieso JS erfordern sollte, dann würde ich die Anpassung wohl eher dort vornehmen.
Christoph M. Becker – Plugins for CMSimple_XH

Post Reply