Code - Fragen

Ein CMSimple Support Forum für deutsch sprechende Nutzer und Entwickler
lck
Posts: 2955
Joined: Wed Mar 23, 2011 11:43 am
Contact:

Re: Code - Fragen

Post by lck » Tue Nov 28, 2017 5:16 pm

@Frank
Das funktionierte ja vorher schon! Da braucht man nichts ändern, das passt schon.
Ich wollte es nur simpler machen, um das zu umgehen:
cmb wrote:Hm, so wie es ist, ist es aber dennoch fragil. Z.B. wurde in XH 1.7 ein eigenständiger Password-Ändern-Screen eingeführt – konsistent zum Rest mit der neuen Variable $xh_change_password. Wenn weitere solche Funktionen eingeführt werden, müsste immer wieder extern nachgebessert werden. Oder wenn z.B. der Linkchecker mal als Plugin ausgelagert wird, dann würde die Verwendung von $validate eine Notice erzeugen. Da sollte also schon eine Abstraktion angeboten werden. Die Frage ist halt wie detailliert diese nutzbar sein müsste. Mir sieht es so aus als ob das was hi_admin bezüglich des Admintemplates konfigurierbar macht, schon eher die Obergrenze darstellt.
Wenn man die Einbindung anders gestalten könnte, so wäre dieses Problem bei Änderungen nichtig.
„Bevor du den Pfeil der Wahrheit abschießt, tauche die Spitze in Honig!“   👉 Ludwig's XH-Templates for MultiPage & OnePage

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

Re: Code - Fragen

Post by lck » Tue Nov 28, 2017 6:48 pm

cmb wrote:Im Template könntest du prüfen, ob $s >= 0 ist; falls ja, dann ist eine reguläre Seite gewählt. Bzw. halt umgekehrt, ob $s < 0 ist; dann handelt es sich um eine spezielle Seite
WOW, das ist es (hoffentlich). Scheint zu funktionieren mit diesem Code:

Code: Select all

<?php
if (XH_ADM && ($edit || ($s < 0))) {
    echo '<link rel="stylesheet" type="text/css" href="'.$pth['folder']['template'].'adminedit.css">'."\n";
}
?>
Dann wäre die 'function wantsAnyPluginAdministration()' auch nicht nötig.
„Bevor du den Pfeil der Wahrheit abschießt, tauche die Spitze in Honig!“   👉 Ludwig's XH-Templates for MultiPage & OnePage

cmss
Posts: 244
Joined: Mon Jan 02, 2017 6:15 pm

Re: Code - Fragen

Post by cmss » Tue Nov 28, 2017 8:51 pm

Ich habe noch eine Kurze Bemerkung zu Hi_admin unter PHP 7.0 :

Ich erhalte die Fehlermeldung : DEPRECATED: Methods with the same name as their class will not be constructors in a future version of PHP; HI_adm_TextFileEdit has a deprecated constructor
H:\Xampp718\x718\htdocs\xh1610\plugins\hi_admin\templateeditor.inc.php:27

Dort steht : class HI_adm_TextFileEdit extends XH_TextFileEdit { function HI_adm_TextFileEdit($file) {...

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: Code - Fragen

Post by cmb » Tue Nov 28, 2017 10:16 pm

lck wrote:WOW, das ist es (hoffentlich). Scheint zu funktionieren mit diesem Code:

Code: Select all

<?php
if (XH_ADM && ($edit || ($s < 0))) {
    echo '<link rel="stylesheet" type="text/css" href="'.$pth['folder']['template'].'adminedit.css">'."\n";
}
?>
Leider nicht wirklich, wie mir zwischenzeitlich eingefallen ist. Das Problem sind "implizite" Seiten, also Seiten, die dynamisch von manchen Plugins erzeugt werden. Bei solchen Seiten ist $s nämlich ebenfalls -1 (also < 0), und die würden dann mit den Adminstyles angezeigt werden. Es sind aber eher wenige Plugins, die solche "impliziten" Seiten nutzen (Register ist eine solche Ausnahme), so dass man u.U. damit leben kann.
cmss wrote:Ich erhalte die Fehlermeldung : DEPRECATED: Methods with the same name as their class will not be constructors in a future version of PHP; HI_adm_TextFileEdit has a deprecated constructor
H:\Xampp718\x718\htdocs\xh1610\plugins\hi_admin\templateeditor.inc.php:27

Dort steht : class HI_adm_TextFileEdit extends XH_TextFileEdit { function HI_adm_TextFileEdit($file) {...
DEPRECATED-Meldungen (im Gegensatz zu XH-DEPRECATED) kommen immer von PHP, und besagen, dass ein Feature nicht mehr verwendet werden sollte, und es möglicherweise in einer zukünftigen Version von PHP entfernt wird. In diesem Fall wird das frühestens bei PHP 8 der Fall sein (also noch kein Grund zur Panik). Du kannst aber auch in der aufgeführten Zeile `function HI_adm_TextFileEdit` einfach durch `function __construct` ersetzen (dann sind PHP 5 + 7 zufrieden).
Christoph M. Becker – Plugins for CMSimple_XH

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

Re: Code - Fragen

Post by lck » Wed Nov 29, 2017 10:28 am

cmb wrote:Leider nicht wirklich, wie mir zwischenzeitlich eingefallen ist. Das Problem sind "implizite" Seiten, also Seiten, die dynamisch von manchen Plugins erzeugt werden. Bei solchen Seiten ist $s nämlich ebenfalls -1 (also < 0), und die würden dann mit den Adminstyles angezeigt werden. Es sind aber eher wenige Plugins, die solche "impliziten" Seiten nutzen (Register ist eine solche Ausnahme), so dass man u.U. damit leben kann.
Habe Register mal installiert. Im Backend ist mir jetzt nichts ungewöhnliches aufgefallen (ausser das Speichern-Problem), Login-Seite habe ich nicht getestet. Welche Seiten wären das konkret.
„Bevor du den Pfeil der Wahrheit abschießt, tauche die Spitze in Honig!“   👉 Ludwig's XH-Templates for MultiPage & OnePage

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: Code - Fragen

Post by cmb » Wed Nov 29, 2017 12:13 pm

lck wrote:Habe Register mal installiert. Im Backend ist mir jetzt nichts ungewöhnliches aufgefallen (ausser das Speichern-Problem), Login-Seite habe ich nicht getestet. Welche Seiten wären das konkret.
Konkret sind es die Spezialseiten (falls man diese nicht manuell anlegt), also z.B. die Seite, die nach erfolgreichem oder nicht erfolgreichem Anmeldeversuch erscheint.
Christoph M. Becker – Plugins for CMSimple_XH

cmss
Posts: 244
Joined: Mon Jan 02, 2017 6:15 pm

Re: Code - Fragen

Post by cmss » Wed Nov 29, 2017 1:23 pm

Ich will eure Konversation eigentlich nicht stören, aber

class function __construct extends XH_TextFileEdit {

führt bei mir zu einem : Parse error: syntax error, unexpected 'function' (T_FUNCTION), expecting identifier (T_STRING) in H:\Xampp718\x718\htdocs\xh1610clea2_\plugins\hi_admin\templateeditor.inc.php on line 27

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

Re: Code - Fragen

Post by frase » Wed Nov 29, 2017 2:00 pm

viewtopic.php?f=16&t=13111&start=20#p63685

Der ganze Part müsste dann so lauten:

Code: Select all

class HI_adm_TextFileEdit extends XH_TextFileEdit {

    function HI_adm_TextFileEdit($file) {

        global $pth;

        //read and write only in templates-folder
        $this->filename = $pth['folder']['templates'] . $file;
        $this->params = array('admfile' => $file, 'action' => 'save');
        $this->redir = "?hi_admin&admfile=" . $file . "&action=edit&xh_success=file";
        $this->textareaName = 'hi_adm_textarea';
        //parent::XH_TextFileEdit(); // gestrichen nach cmb
        parent::__construct();
    }
}

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

Re: Code - Fragen

Post by lck » Wed Nov 29, 2017 2:04 pm

cmb wrote:Konkret sind es die Spezialseiten (falls man diese nicht manuell anlegt), also z.B. die Seite, die nach erfolgreichem oder nicht erfolgreichem Anmeldeversuch erscheint.
Ah ok:
?Angemeldet
?Registrieren
?Kennwort-vergessen
?Benutzereinstellungen
?Abgemeldet
...
Im Frontend sowieso kein Problem, im Backend evtl. ja, da adminedit.css geladen wird und auch nur dann, wenn man die Seiten im Backend testen will (damit kann man leben).
Aber in meinem Fall null Problem, da die adminedit.css keine seitenspzifischen Styles enthält, sondern nur für das mobile Menü und den Header.
„Bevor du den Pfeil der Wahrheit abschießt, tauche die Spitze in Honig!“   👉 Ludwig's XH-Templates for MultiPage & OnePage

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: Code - Fragen

Post by cmb » Wed Nov 29, 2017 3:11 pm

frase wrote:Der ganze Part müsste dann so lauten:
Ah, an den Aufruf des geerbten Konstruktors hatte ich nicht gedacht. Allerdings wird die Deprecated-Meldung durch die eigentliche Funktionsdeklaration ausgelöst. Also:

Code: Select all

class HI_adm_TextFileEdit extends XH_TextFileEdit {

    function __construct($file) {

        global $pth;

        //read and write only in templates-folder
        $this->filename = $pth['folder']['templates'] . $file;
        $this->params = array('admfile' => $file, 'action' => 'save');
        $this->redir = "?hi_admin&admfile=" . $file . "&action=edit&xh_success=file";
        $this->textareaName = 'hi_adm_textarea';
        //parent::XH_TextFileEdit(); // gestrichen nach cmb
        parent::__construct();
    }
}
lck wrote:Aber in meinem Fall null Problem, da die adminedit.css keine seitenspzifischen Styles enthält, sondern nur für das mobile Menü und den Header.
Okay, dann sollte es so passen.
Christoph M. Becker – Plugins for CMSimple_XH

Post Reply