"cRegistry::isBackendEditMode" aber für Javascript

Fragen zur Installation von CONTENIDO 4.9? Probleme bei der Konfiguration? Hinweise oder Fragen zur Entwicklung des Systemes oder zur Sicherheit?
Antworten
frogli
Beiträge: 70
Registriert: Do 29. Apr 2004, 17:42
Kontaktdaten:

"cRegistry::isBackendEditMode" aber für Javascript

Beitrag von frogli » Sa 6. Jun 2015, 12:31

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. :motz:
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. :D

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. :D :D

symphonische Grüße aus Wien

frogli

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

Re: "cRegistry::isBackendEditMode" aber für Javascript

Beitrag von rethus » Sa 6. Jun 2015, 13:34

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. :)
Joahhhh---Neee, bist schon fast selbst drauf gekommen, hast es nur nicht zuende gedacht (nicht böse gemeint :wink: ).
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(){});';
}
Hier kannst du entweder nur JS-Anweisungen innerhalb eines sowieso genutzten <script>-Tags beeinflussen, oder einfach dein JS komplett auslagern, und nur via <script>-Tag laden, wenn ! BackendEditMode.

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

frogli
Beiträge: 70
Registriert: Do 29. Apr 2004, 17:42
Kontaktdaten:

Re: "cRegistry::isBackendEditMode" aber für Javascript

Beitrag von frogli » Sa 6. Jun 2015, 16:31

rethus hat geschrieben: Joahhhh---Neee, bist schon fast selbst drauf gekommen, hast es nur nicht zuende gedacht (nicht böse gemeint :wink: ).
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(){});';
}
Nicht nur habe ich zuende gedacht, sondern diese Methode ist mein Workaround. Aber ich habe auch ja gefragt. :mrgreen:

Mir wäre aber lieber eine CMS-Lösung anwenden zu können als eine Lösung zu programmieren. :twisted:

frogli
Zuletzt geändert von frogli am So 7. Jun 2015, 10:46, insgesamt 1-mal geändert.

homtata
Beiträge: 1142
Registriert: Mi 14. Jan 2004, 14:41
Kontaktdaten:

Re: "cRegistry::isBackendEditMode" aber für Javascript

Beitrag von homtata » Sa 6. Jun 2015, 18:19

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:

Code: Alles auswählen

cInclude("module", "js.input.alr.php");
und damit auch wiederum abhängig vom Backendmode includen oder auch nicht.

Die php-Datei ist dann wie o.g. von folgender Struktur:

Code: Alles auswählen

<script type="text/javascript">

	$(document).ready(function() {
          --- code ----
         } 
		
</script>

Oldperl
Beiträge: 4255
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Re: "cRegistry::isBackendEditMode" aber für Javascript

Beitrag von Oldperl » Sa 6. Jun 2015, 18:49

Servus,

ja es geht per JS, einfach mal in die Doku schauen.
:arrow: https://docs.contenido.org/display/COND ... +structure
RTFM :motz: :mrgreen:

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

frogli
Beiträge: 70
Registriert: Do 29. Apr 2004, 17:42
Kontaktdaten:

Re: "cRegistry::isBackendEditMode" aber für Javascript

Beitrag von frogli » So 7. Jun 2015, 10:44

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. :D

Code: Alles auswählen

if(typeof Con !== 'undefined') {
    BACKEND CODE
} else {
    FRONTEND CODE
}
frogli

Oldperl
Beiträge: 4255
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Re: "cRegistry::isBackendEditMode" aber für Javascript

Beitrag von Oldperl » Mo 8. Jun 2015, 09:27

frogli hat geschrieben:Wieder einmal danke für deine Hilfe. Oldperl.
Immer gerne, und danke für den entsprechenden Code-Schnipsel! :)

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

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

Re: "cRegistry::isBackendEditMode" aber für Javascript

Beitrag von rethus » Mo 8. Jun 2015, 15:28

Bim bom, da hab ich wieder was gelernt. :idea: :mrgreen:
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

frogli
Beiträge: 70
Registriert: Do 29. Apr 2004, 17:42
Kontaktdaten:

Re: "cRegistry::isBackendEditMode" aber für Javascript

Beitrag von frogli » Sa 7. Jan 2017, 20:36

Leider funktioniert mein js-script nicht in der Version 4.9.12 mehr.

Wurde die Variable Con mit einer anderen ersetzt?

Antworten