Auswerten welche CMSimpleVersion verwendet wird

Ein CMSimple Support Forum für deutsch sprechende Nutzer und Entwickler
Post Reply
isometric
Posts: 158
Joined: Thu Jun 12, 2014 8:32 am

Auswerten welche CMSimpleVersion verwendet wird

Post by isometric » Mon Jun 12, 2017 9:35 am

Die Konstante CMSIMPLE_XH_VERSION gibt ja die komplette Versionsnummer aus
version number (e.g. “CMSimple_XH 1.5.9”)
Wie frage ich am besten ab, welche Hauptversion von CMSimple_XH verwendet wird und werte das dann aus?

Beispiel Pseudo-Code:

Code: Select all

If Version 1.6 
    require_once $pth['folder']['classes'] . 'Menu.php';
elseif Version 1.7
    require_once $pth['folder']['classes'] . 'Li.php';
in diesem Sinne isometric

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

Re: Auswerten welche CMSimpleVersion verwendet wird

Post by cmb » Mon Jun 12, 2017 10:05 am

isometric wrote:Wie frage ich am besten ab, welche Hauptversion von CMSimple_XH verwendet wird und werte das dann aus?
Ich habe das bei einigen meiner Plugins wie hier gelöst; oder vereinfacht weil CMSimple_XH vorausgesetzt wird, wie hier.
isometric wrote:Beispiel Pseudo-Code:

Code: Select all

If Version 1.6 
    require_once $pth['folder']['classes'] . 'Menu.php';
elseif Version 1.7
    require_once $pth['folder']['classes'] . 'Li.php';
Hier würde ich gar nicht auf Versionsnummern prüfen, sondern darauf, ob die Klasse XH_Li existiert. Bei XH 1.7 wird diese dann nämlich automatisch geladen, und nur bei XH 1.6 muss Menu.php manuell inkludiert werden (es sei denn, das wäre zuvor schon passiert, in welchem Fall XH_Li bereits existierte):

Code: Select all

if (!class_exists('XH_Li')) {
     require_once $pth['folder']['classes'] . 'Menu.php';
} 
Zum Namen der Klasse: unter XH 1.6 heißt die Klasse XH_Li; unter XH 1.7 heißt sie XH\Li (Namespace) aber XH_Li ist weiterhin als Alias möglich. Das gilt auch für andere Klassen, so dass man am besten immer den Klassennamen mit dem Unterstrich verwendet, wenn man zu XH 1.6 kompatibel sein will.
Christoph M. Becker – Plugins for CMSimple_XH

Post Reply