"cRegistry::isBackendEditMode" aber für Javascript
"cRegistry::isBackendEditMode" aber für Javascript
Hi
Ich habe mir ein Module mit viel Javascript erstellt und jetzt habe ich das Problem, dass gewisse Elemente die Editierfähigkeiten von zB CMS_IMGEDITOR oder CMS_TEXT einschränken bis unbrauchbar machen.
Die Störelemente habe ich ausfindig gemacht und ich könnte Workaround machen aber eleganter wäre es wenn es eine Javascript-Lösung geben täte.
Daher wollte ich wissen ob es soetwas wie ein cRegistry::isBackendEtitMode() halt in Javascript gibt? Dann könnte ich die Störelement mit einen IF-Statement "unschädlich" machen.
Da ich befürchte, dass es soetwas nciht gibt würde ich gerne wissen, wie ihr das Problem löst oder lösen würdet, und ob es dafür schon ein Best-Practice gibt. Es wäre auch wünschenswert so ein boolische Variable in Contenido zur Verfügung zu stellen, da dies schon mein drittes Modul ist, wo das Problem auftaucht.
Eine andere interesantere Lösung wäre wenn ich á la Smarty mit php auf die JS-Datei des Moduls zugreifen könnte. Dann hätte man auch eine saubere Trennung zwischen php und js.
symphonische Grüße aus Wien
frogli
Ich habe mir ein Module mit viel Javascript erstellt und jetzt habe ich das Problem, dass gewisse Elemente die Editierfähigkeiten von zB CMS_IMGEDITOR oder CMS_TEXT einschränken bis unbrauchbar machen.
Die Störelemente habe ich ausfindig gemacht und ich könnte Workaround machen aber eleganter wäre es wenn es eine Javascript-Lösung geben täte.
Daher wollte ich wissen ob es soetwas wie ein cRegistry::isBackendEtitMode() halt in Javascript gibt? Dann könnte ich die Störelement mit einen IF-Statement "unschädlich" machen.
Da ich befürchte, dass es soetwas nciht gibt würde ich gerne wissen, wie ihr das Problem löst oder lösen würdet, und ob es dafür schon ein Best-Practice gibt. Es wäre auch wünschenswert so ein boolische Variable in Contenido zur Verfügung zu stellen, da dies schon mein drittes Modul ist, wo das Problem auftaucht.
Eine andere interesantere Lösung wäre wenn ich á la Smarty mit php auf die JS-Datei des Moduls zugreifen könnte. Dann hätte man auch eine saubere Trennung zwischen php und js.
symphonische Grüße aus Wien
frogli
Re: "cRegistry::isBackendEditMode" aber für Javascript
Joahhhh---Neee, bist schon fast selbst drauf gekommen, hast es nur nicht zuende gedacht (nicht böse gemeint ).frogli hat geschrieben:Hi
Daher wollte ich wissen ob es soetwas wie ein cRegistry::isBackendEtitMode() halt in Javascript gibt? Dann könnte ich die Störelement mit einen IF-Statement "unschädlich" machen.
Da PHP vor JS ausgeführt wird, kannst du auch ganz einfach damit arbeiten. Kapsel einfach dein JS entsprechend...
Einfaches, fiktives Beispiel:
Code: Alles auswählen
if(cRegistry::isBackendEtitMode()){
echo '$('bimbom').doSomething(function(){});';
}else{
echo '$('bimbom').doOtherGreatStuff(function(){});';
}
Viel Erfolg!
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
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
Re: "cRegistry::isBackendEditMode" aber für Javascript
Nicht nur habe ich zuende gedacht, sondern diese Methode ist mein Workaround. Aber ich habe auch ja gefragt.rethus hat geschrieben: Joahhhh---Neee, bist schon fast selbst drauf gekommen, hast es nur nicht zuende gedacht (nicht böse gemeint ).
Da PHP vor JS ausgeführt wird, kannst du auch ganz einfach damit arbeiten. Kapsel einfach dein JS entsprechend...
Einfaches, fiktives Beispiel:Code: Alles auswählen
if(cRegistry::isBackendEditMode()){ echo '$('bimbom').doSomething(function(){});'; }else{ echo '$('bimbom').doOtherGreatStuff(function(){});'; }
Mir wäre aber lieber eine CMS-Lösung anwenden zu können als eine Lösung zu programmieren.
frogli
Zuletzt geändert von frogli am So 7. Jun 2015, 10:46, insgesamt 1-mal geändert.
Re: "cRegistry::isBackendEditMode" aber für Javascript
Falls dir das was hilft:
Ich habe im ALR-Modul JS-Code ausgelagert, aus diversen Gründen aber in den Modulordner /php und in eine Datei mit der Endung .php. Dort steht (eingeklammert in den <script>-Befehl) das normale JS.
Im Modul kannst du das wie folgt aufrufen:
und damit auch wiederum abhängig vom Backendmode includen oder auch nicht.
Die php-Datei ist dann wie o.g. von folgender Struktur:
Ich habe im ALR-Modul JS-Code ausgelagert, aus diversen Gründen aber in den Modulordner /php und in eine Datei mit der Endung .php. Dort steht (eingeklammert in den <script>-Befehl) das normale JS.
Im Modul kannst du das wie folgt aufrufen:
Code: Alles auswählen
cInclude("module", "js.input.alr.php");
Die php-Datei ist dann wie o.g. von folgender Struktur:
Code: Alles auswählen
<script type="text/javascript">
$(document).ready(function() {
--- code ----
}
</script>
-
- Beiträge: 4256
- Registriert: Do 30. Jun 2005, 22:56
- Wohnort: Eltmann, Unterfranken, Bayern
- Kontaktdaten:
Re: "cRegistry::isBackendEditMode" aber für Javascript
Servus,
ja es geht per JS, einfach mal in die Doku schauen.
https://docs.contenido.org/display/COND ... +structure
RTFM
Nur im Backend sollte das JS-Objekt "Con" zur Verfügung stehen. Somit kann man durch Abfrage dieses Objektes auf den Front- bzw. Backend-Status schließen.
Gruß aus Franken
Ortwin
ja es geht per JS, einfach mal in die Doku schauen.
https://docs.contenido.org/display/COND ... +structure
RTFM
Nur im Backend sollte das JS-Objekt "Con" zur Verfügung stehen. Somit kann man durch Abfrage dieses Objektes auf den Front- bzw. Backend-Status schließen.
Gruß aus Franken
Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
Re: "cRegistry::isBackendEditMode" aber für Javascript
Wieder einmal danke für deine Hilfe. Oldperl.
Und für alle anderen die wissen wollen wie ich es jetzt gelöst habe. Und natürlich bin ich für Verbesserungsvorschläge offen.
frogli
Und für alle anderen die wissen wollen wie ich es jetzt gelöst habe. Und natürlich bin ich für Verbesserungsvorschläge offen.
Code: Alles auswählen
if(typeof Con !== 'undefined') {
BACKEND CODE
} else {
FRONTEND CODE
}
-
- Beiträge: 4256
- Registriert: Do 30. Jun 2005, 22:56
- Wohnort: Eltmann, Unterfranken, Bayern
- Kontaktdaten:
Re: "cRegistry::isBackendEditMode" aber für Javascript
Immer gerne, und danke für den entsprechenden Code-Schnipsel!frogli hat geschrieben:Wieder einmal danke für deine Hilfe. Oldperl.
Gruß aus Franken
Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
Re: "cRegistry::isBackendEditMode" aber für Javascript
Bim bom, da hab ich wieder was gelernt.
Ich hab es immer in der PHP-Variante gemacht.
Ich hab es immer in der PHP-Variante gemacht.
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
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
Re: "cRegistry::isBackendEditMode" aber für Javascript
Leider funktioniert mein js-script nicht in der Version 4.9.12 mehr.
Wurde die Variable Con mit einer anderen ersetzt?
Wurde die Variable Con mit einer anderen ersetzt?