Wie erstellt/(verwendet eigene Mandantenvariable

Gesperrt
rethus
Beiträge: 1851
Registriert: Di 28. Mär 2006, 11:55
Wohnort: Mönchengladbach
Kontaktdaten:

Wie erstellt/(verwendet eigene Mandantenvariable

Beitrag von rethus »

Ich habe Contenido dahingehend angepasst, dass ich ein Modul (das gleiche für Layouts ist gerade in Arbeit) für mehrere Mandanten freigeben kann. Somit entfällt das lästige hin und Herkopieren, wenn man vielen vielen Mandanten die gleichen Funktionen geben will :-)

Da ich die Lösung schön sauber Programmieren will, möchte ich gerne diese Funktion über Mandantenvariablen steuern (share_layouts = true, share_modules=true).

Hab aber noch nicht mit Mandantenvariablen gearbeitet.

Kan mir jemand einen kurzen excurs darüber geben, wo und wie ich die einbaue, und verwende?
Zuletzt geändert von rethus am Mi 9. Jul 2008, 16:58, insgesamt 2-mal geändert.
Could I help you... you can help me... buy me a coffee . (vielen ❤ Dank an: Seelauer, Peanut, fauxxami )

xstable.com: - HighSpeed Hosting, Domains, DomainReselling, Linux-Administration
suther.de: - App-Programierung, High-Performance-Webpages, MicroServices, API-Anbindungen & Erstellung

Software... ein Blick wert: GoogleCalender Eventlist, xst_dynamic_contentType
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

ähm auf true oder false zu setzen ist keine gute idee
-> besser ist auf 0 oder 1 dezitiert zu prüfen
denn "false" als string ist auch true ;-)

ist ganz easy zu kontrollieren
da deine änderung nur auf system basis stattfinden sollte

siehe functions.general.php -> getSystemProperty($type, $name)

ich würd folgendes snippet verwenden

Code: Alles auswählen

if (getSystemProperty("share", "layouts") == 1) {
   echo "erlaubt";
} else {
   echo "nicht erlaubt";
}
*** make your own tools (wishlist :: thx)
rethus
Beiträge: 1851
Registriert: Di 28. Mär 2006, 11:55
Wohnort: Mönchengladbach
Kontaktdaten:

Beitrag von rethus »

Danke für die schnelle Hilfe. Werde ich entsprechend einbauen.

Hast du auch einen Tipp für mich, wie ich ein weiteren Baustein in die Subnavigation eines Bereiches integriere (so wie bei Artikel die Subnavi: Übersicht, Eigenschaften, Konfiguration, Editor usw.)?
Could I help you... you can help me... buy me a coffee . (vielen ❤ Dank an: Seelauer, Peanut, fauxxami )

xstable.com: - HighSpeed Hosting, Domains, DomainReselling, Linux-Administration
suther.de: - App-Programierung, High-Performance-Webpages, MicroServices, API-Anbindungen & Erstellung

Software... ein Blick wert: GoogleCalender Eventlist, xst_dynamic_contentType
rethus
Beiträge: 1851
Registriert: Di 28. Mär 2006, 11:55
Wohnort: Mönchengladbach
Kontaktdaten:

Beitrag von rethus »

Irgendwie geht getSystemProperty("share", "layouts") nicht. Hast du einen Tipp, woran das liegen kann?
Muss ich noch eine Klasse inkludieren?
Could I help you... you can help me... buy me a coffee . (vielen ❤ Dank an: Seelauer, Peanut, fauxxami )

xstable.com: - HighSpeed Hosting, Domains, DomainReselling, Linux-Administration
suther.de: - App-Programierung, High-Performance-Webpages, MicroServices, API-Anbindungen & Erstellung

Software... ein Blick wert: GoogleCalender Eventlist, xst_dynamic_contentType
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

die functions.general.php steht innerhalb contenidos immer zur verfügung... ein includen ist somit nicht notwendig..

...und du musst schon genauer sein...
hellseher bin ich keiner...

was geht irgendwie nicht ?
gibts ne fehlermeldung ? wenn ja welche ?
hast du definiert das share layout 1 ist ? wenn ja wo ?

zu deiner vorrigen anfrage -> such mal nach "plugin richtlinien"
da gibts ein hello_world plugin. aus dem code und der beschreibung im thread sollte ersichtlich sein, wie das funktioniert... ist leider etwas komplizierter...
*** make your own tools (wishlist :: thx)
rethus
Beiträge: 1851
Registriert: Di 28. Mär 2006, 11:55
Wohnort: Mönchengladbach
Kontaktdaten:

Beitrag von rethus »

Ok es ist scheint ein BUG zu sein!

Die Funktion getSystemProperty fragt die DB-Tabelle con_system_prop ab. Die Mandanteneinstellungen werden aber in die Tabelle con_properties gespeichert.

Code: Alles auswählen

SELECT value FROM con_system_prop WHERE type='shared' AND name='layouts'
Weit und Breit gibt es aber keine Funktion die auf con_properties zugreift.

Hat sich da in vielleicht etwas überschnitten mit irgend einer Neuerung?
Could I help you... you can help me... buy me a coffee . (vielen ❤ Dank an: Seelauer, Peanut, fauxxami )

xstable.com: - HighSpeed Hosting, Domains, DomainReselling, Linux-Administration
suther.de: - App-Programierung, High-Performance-Webpages, MicroServices, API-Anbindungen & Erstellung

Software... ein Blick wert: GoogleCalender Eventlist, xst_dynamic_contentType
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

das ist kein bug...
getSystemProperty ließt nur system eigenschaften aus...
wie der name schon sagt...

hab ich aber geschrieben...
da deine änderung nur auf system basis stattfinden sollte
wie das auslesen von client settings funktoniert ist zb in der getEffectiveSettings enthalten...
*** make your own tools (wishlist :: thx)
Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Beitrag von Dodger77 »

rethus hat geschrieben:Weit und Breit gibt es aber keine Funktion die auf con_properties zugreift.
Na klar, gibt es eine entsprechende Funktion. Von emergence gepostete Code würde dann so aussehen:

Code: Alles auswählen

if (getEffectiveSetting("share", "layouts") == 1) {
   echo "erlaubt";
} else {
   echo "nicht erlaubt";
}
Damit wäre dann aber auch Gruppe-/Benutzereinstellungen möglich. Beschränken auf System-/Mandanteneinstellungen ließe sich das so:

Code: Alles auswählen

//Mandanteneinstellung auslesen
cInclude('classes', 'contenido/class.client.php');
$oClient = new cApiClient($client);
$bShareLayouts = $oClient->getProperty("share", "layouts");

//Systemeinstellung auslesen
if ($bShareLayouts != 1) {
    $bShareLayouts = getSystemProperty("share", "layouts");
}

if ($bShareLayouts == 1) {
    echo "erlaubt";
} else {
    echo "nicht erlaubt";
}
rethus
Beiträge: 1851
Registriert: Di 28. Mär 2006, 11:55
Wohnort: Mönchengladbach
Kontaktdaten:

Beitrag von rethus »

sorry, da war ich wohl etwas zu schnell. Danke dir. Hab es jetzt als Systemvariable gesetzt. Nun geht es.

Danke euch beiden für die ausführliche Info.
Could I help you... you can help me... buy me a coffee . (vielen ❤ Dank an: Seelauer, Peanut, fauxxami )

xstable.com: - HighSpeed Hosting, Domains, DomainReselling, Linux-Administration
suther.de: - App-Programierung, High-Performance-Webpages, MicroServices, API-Anbindungen & Erstellung

Software... ein Blick wert: GoogleCalender Eventlist, xst_dynamic_contentType
Gesperrt