Inline-Code, <p class="css-klasse"> vor überschreiben/löschen schützen

  • Joomla Version
    5.03
    PHP Version
    PHP 8.3.x
    Hoster
    fc-hosting

    Hallo,


    wenn ich mit JCE einen einzelnen Absatz mit einer css-Klasse in user.css formatieren möchte, kenne ich nur diese Lösung im Codefenster:

    <p class="css-klasse"> Text und Bild</p>


    Wenn nun jemand mit nachrangigen Benutzerrechten diesen Beitrag bearbeitet, ist die class="... durch Unachtsamkeit schnell zerschossen und weg.

    Es bleibt <p>Text und Bild</p>


    Gibt es eine Möglichkeit, dieses zu verhindern?


    vG

  • Die css-Formtierung im JCE-Absatz (z.B. scroll, Silbentrennug) hat offensichtlich keine Alternative zu <p>class="css-klasse"> Text und Bild</p>


    Allerdings wundere ich mich, dass ich offensichtlich der Einzige bin, der Benutzern Schreibrechte einräumt. Ein Merkmal, mit dem Jomla im Wettbewerb punktet.


    Damit ich nicht ständig einen Beitrag reparieren muss, dessen Formatierung ein Benutzer zerschossen hat, verwende ich jetzt folgende Lösung :

    Im vorformatierten Absatz wird nur noch ein Modul geladen.
    Der Benutzer editiert nur das Modul, welches mit Speichern&Schließen in den vorformatierten Absatz geladen wird.

    Auf den Beitrag mit dem vorformatierten Absatz hat er keinen Zugriff.

    Etwas schräg und in der Administration (für mich) aufwendig.


    vG

  • Vielleicht kannst Du das mit Custom Fields lösen: Deine Benutzer füllen nur noch die vorgegebenen Custom Fields aus, aus denen dann der eigentliche Beitrag gebaut wird. Ist allerdings nur so eine Idee; selbst habe ich das noch nicht genutzt.

  • Was ist denn eigentlich genau Dein Anwendungsfall? Haben die Beiträge, die Deine Benutzer erstellen, eine fest vorgegebene Struktur, also so etwas wie ein Formular, das jeweils mit Textblöcken ausgefüllt werden muss? Dann hättest Du ja so etwas wie strukturierte Daten, für die sich ja gerade die Custom Fields eignen

  • ...wenn ich mit JCE einen einzelnen Absatz mit einer css-Klasse in user.css formatieren möchte, kenne ich nur diese Lösung im Codefenster:

    <p class="css-klasse"> Text und Bild</p>

    Nur so eine Idee:

    Ich stelle den JCE manchmal so ein, dass er verschiedene css-Dateien des Templates oder auch eigene css-Dateien, z.B. user.css lädt. Somit wird mir dann im JCE schon sehr genau angezeigt, wie es auf der "fertigen" Webseite ausschauen wird. Kann manchmal von Vorteil sein, wenn man mit Buttons oder speziellen Formatierungen arbeitet. Da gibt es aber mehrere Stellen, wo man die css-Dateien angeben kann. Ist deshalb etwas verwirrend.

    Diese Klassen lassen sich auch in der normalen Bearbeitungsansicht des JCE auswählen. Man muss da also nicht in der Code-Ansicht rumbasteln. Dort kann man in der Tat schnell was kaputtmachen.


    Also beispielsweise ein Wort eingegeben, dann markieren, eigene Klasse "mein-btn" wählen und fertig. Resultat wird sofot im JCE angezeigt.

    Ich vergebe bei den Klassen manchmal auch spezielle Namen und teile den Usern mit, nur diese Klassen zu verwenden. Das geht dann von einer einfachen Fettschrift bis hin zu komplexen Formatierungen.


    Dennoch lässt es sich natürlich nicht verhindern, dass ein User einen Beitrag zerschiesst, wenn er daran rumbastelt.

  • Es wird grundsätzlich alles an Formatierung zerschossen, was in <p> steht, auch <span style="font-size: 18pt;...


    Das bekommt der Benutzer im Modul aber wieder hin. Aber wenn eine CSS-Klasse eingebunden wird (scrollen, Silebentrennung etc.) eben nicht.
    Im Moment löse ich das unkonventionell mit {loadmodule mod_custom,XYModul}

    Custom Fields muss ich ausprobieren.


    vG


  • Es wird grundsätzlich alles an Formatierung zerschossen, was in <p> steht, auch <span style="font-size: 18pt;...

    Das verstehe ich nicht, wie du das mit dem "grundsätzlich" meinst?!? Ich hatte das so verstanden, dass die User einen falschen Code schreiben, was zur "Zerstörung" eines Beitrags führt.

    Oder wird diese Formatierung beim Speichern gelöscht? Und warum wird von den Usern überhaupt in der Code-Ansicht gearbeitet?


    Am besten wäre, auf solche Inline Styles eh zu verzichten. Das ist aber ein andere Thema

  • Also: die user arbeiten antürlich nicht im Code-Fenster!!

    Sie setzen den Cursor in den Beitrag, löschen die alten Absätze, schreiben neue und nutzen die Formatierungsmöglichkeiten des JCE.

    Warum auch nicht, wozu sind sie da?

    Mit 'löschen' sind dann auch meine Voreinstellungen weg.


    Seitenklasse geht nicht, da nur ein Absatz betroffen ist und nicht der ganze Beitrag.


    Die Patentlösung ohne Inline Styles für Fett, Kursiv, Rot, 18pt statt 14pt, Impact statt Arial für ein einzelnes Wort zu formatieren, hat mir noch niemand verraten hmm


    Ist ja nun auch egal, wenn es nur einen <p> bzw. <div> gibt, bleibt mein <div class="xy"> erhalten, auch wenn der Text gelöscht wird. Also keine weiteren anlegen! JCE und MS-Office sind da nicht direkt vergleichbar.


    Mit dem Modul-Trick ist das Problem in meinem Sinne erstmal gelöst. Und wie der Text im Modul aussieht, hat der Benutzer selbst zu verantworten.

    Damit ist das Thema für mich erledigt.



    vG