CMS wysiwyg, hoe hou je de lay-out consistent?

Pagina: 1
Acties:

  • douweh
  • Registratie: Maart 2001
  • Laatst online: 09-10-2024
OK, waar ik maar tegen aan blijf lopen, is hoe geef je je gebruiker zoveel mogelijk vrijheid, binnen je cms, maar voorkom je dat er teveel inconsistentie optreedt in de layout?

Voorbeeld, je geeft een gebruiker alle vrijheid, dmv contenteditable, bijv.
Voor je het weet is de hele site beroerd, door brakke microsoft word copy-paste html.

Ander Voorbeeld (dit heb ik nu eerder toegepast)
Je maakt een activex component, dat zelf html genereerd, en de gebruiker maar een bepaald aan tal keuze mogelijkheden geeft, om de opmaak te wijzigen zodat er geen incosistentie optreedt.

Nog een Mogelijkheid,
verhaal van voorbeeld 1, en dan daarna door php laten filteren, zodat je schone html krijgt, met het gevaar dat de site er niet meer precies zo uitziet zoals de gebruiker hem eerder heeft opgemaakt.

Wat is Wijs?

Ik ben benieuwd naar andere visies

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Nog een optie; • a-la-PHPBB tags etc...

Maar....Ik ga zelf meestal voor je eerste optie, en filter er wat zooi uit voordat het de DB in gaat. En als ze uit Word C/P dat trap ik ze onder hun kont }) Ik heb ze allemaal geleerd het via Notepad te doen. Doen ze het niet is het hun eigen probleem.

Wat ik ook in mijn CMS-en gebruik, is in de toolbar een "autoclean" knopje. 't Is wat rigoreus, maar daar voer ik de volgende code uit:

JavaScript:
1
myIframe.innerHTML = '<p>' + myIframe.innerText +  '</p>';


of iets van die strekking... Dan ben je alle opmaak in 1 klik kwijt. Simpel ;)

[ Voor 13% gewijzigd door RobIII op 04-12-2003 13:06 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • mjax
  • Registratie: September 2000
  • Laatst online: 14-05 11:00
Ik heb voor Word/Excel copy-paste acties een apart knopje in m'n CMS zitten. Die voert een normale paste uit en dan daarover heen een removeFormat(). Werkt als een trein. De meeste opmaak van het orginiele office document blijft behouden, maar je bent een hoop van die overbodige shit kwijt.

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Wat ik zelf heb gedaan in een CMS (en dat werkt aardig) is mensen gewoon uitleggen dat de faciliteiten die de browser biedt voor het zelf onderhouden van stijlen e.d. in de content dermate "inferieur" zijn, dat het nodig is de content die gegenereert wordt te filteren. Filterknopje aanbrengen bij wijze van "preview" en men weet er binnen de korste keren prima mee om te gaan. Zorg, als men de content opslaat, dat de content ook gefilterd wordt en men er evt. een waarschuwing voor krijgt.

De filter heb ik als volgt geschreven:
Door middel van JS wordt de contenteditable inhoud door middel van DOM recursief doorlopen. Er is een lijst aanwezig van toegestane elementen en per toegestaan element een aantal toegestane attributen (style en class e.d. skip ik dus bijna altijd), en als het element of het attribuut toegestaan is wordt daarvoor de XHTML gegenereerd en uiteindelijk weergegeven.

In een oudere versie probeerde ik zoveel mogelijk met regular expressions op te lossen, maar dat is een never-ending story.

Verder hangt aan het venstertje waarin de content ge-edit kan worden per CMS een custom stylesheet, zodat wat men invoert precies zo gestyled wordt als aan de front-end.

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • Exterazzo
  • Registratie: Mei 2000
  • Laatst online: 22:10

Exterazzo

Qeasy

mjax schreef op 04 december 2003 @ 13:08:
Ik heb voor Word/Excel copy-paste acties een apart knopje in m'n CMS zitten. Die voert een normale paste uit en dan daarover heen een removeFormat(). Werkt als een trein. De meeste opmaak van het orginiele office document blijft behouden, maar je bent een hoop van die overbodige shit kwijt.
Heb je daarvoor een serverside functie of een JavaScript oid? En heb je dat zelf gemaakt, zo nee, waar kun je dat dan ergens krijgen? :)

.modbreak: Ook in andermans' topics zijn scriptrequests niet toegestaan ;) Google is je vriend

[ Voor 16% gewijzigd door drm op 04-12-2003 13:12 ]

Audentia


  • mjax
  • Registratie: September 2000
  • Laatst online: 14-05 11:00
Exterazzo schreef op 04 december 2003 @ 13:10:
[...]

Heb je daarvoor een serverside functie of een JavaScript oid? En heb je dat zelf gemaakt, zo nee, waar kun je dat dan ergens krijgen? :)
Ok, een snippet dan. Het is uiteraard clientside:

code:
1
2
3
4
editdoc.execCommand('Paste');
editdoc.execCommand('SelectAll');
editdoc.execCommand('RemoveFormat');
editdoc.execCommand('Unselect');


Dit is overigens lang niet zo mooi en flexibel als de oplossing van DRM, maar wel erg simpel te implementeren.

[ Voor 16% gewijzigd door mjax op 04-12-2003 14:18 ]


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

Mjah dit is allemaal clientside, en gaat dus over de schutting naar Webdesign & Graphics :w

Professionele website nodig?


  • bRight
  • Registratie: Juli 2000
  • Laatst online: 27-11-2024

bRight

digitaal

mjax schreef op 04 december 2003 @ 14:17:
[...]


Ok, een snippet dan. Het is uiteraard clientside:

code:
1
2
3
4
editdoc.execCommand('Paste');
editdoc.execCommand('SelectAll');
editdoc.execCommand('RemoveFormat');
editdoc.execCommand('Unselect');


Dit is overigens lang niet zo mooi en flexibel als de oplossing van DRM, maar wel erg simpel te implementeren.
lol :D
Je maakt je er wel erg makkelijk vanaf :)

Ik gebruik dezelfde methode als DRM. Kost wat tijd maar dan heb je ook wat.
Ik kan me herinneren dat Bosmonster ook een mooie oplossing had voor C/P in contenteditable.. ff zoeken..

[ Voor 15% gewijzigd door bRight op 04-12-2003 15:32 ]


  • Woudloper
  • Registratie: November 2001
  • Niet online

Woudloper

« - _ - »

Naar mijn idee is over dit onderwerp regelmatig gesproken/gediscuseerd, zie bijvoorbeeld onderstaande twee topics:

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 10-05 18:53

Bosmonster

*zucht*

Het is simpelweg onverstandig om een gebruiker ALLES te laten wijzigen. Zorg dat je je wysiwyg editor alleen toepast voor het content-veld van een pagina en laat de rest door de templates afhandelen.

Persoonlijk heb ik ook een methode geschreven die alle paste-acties (dus niet door los knopje maar gewoon ALLES) stript. Zo krijg je geen ongewenste opmaak uit bijvoorbeeld Word.

[ Voor 32% gewijzigd door Bosmonster op 04-12-2003 16:03 ]

Pagina: 1