Page break az FCKEditorba
júl 29
Az FCKEditor-2.6.3 alapértelmezett oldaltörésének átalakítása blog.hu kompatibilisre.
Először is kidobjuk a nyomtatási oldaltörést az editor/_source/commandclasses/fck_othercommands.js fájlban (nyomtatásban ugyanis nem szeretnénk oldalt törni):
e.style.pageBreakAfter = 'always'; // <-- törölni
Következő lépésként módosítjuk a break tag tartalmát a saját jelölésünkre:
e.innerHTML = '<span style="DISPLAY:none"> </span>';
helyett ez legyen:
e.innerHTML = '<!--more-->';
Ahhoz, hogy az editor a HTML kódban később felismerje az oldaltörést, és vizuálisan jelezni tudja, meg kell jelölnünk valahogy a page break DIV-et. Erre tökéletesen alkalmas egy CSS osztály:
e.className='page-break';
A page break behelyezése után a kurzornak az oldaltörés mögé kell ugrania. Ezt úgy érhetjük el, hogy az InsertNode után - ami elhelyezi a törést a dokumentumban - beszúrjuk az alábbi kódot:
oRange.MoveToPosition(oFakeImage, 4); // 4 --> az oFakeImage után
oRange.Select();
oRange.Release();
Módosítanunk kell a dokumentum feldolgozót is, hogy ez editor felismerje a HTML-ben az oldaltörést. Ehhez a következő módosításokat kell végezni az editor/_source/internals/fckdocumentprocessor.js fájlban. Az FCKPageBreaksProcessor.ProcessDocument-ben cseréljük ki ezt a feltételt:
if (eDIV.style.pageBreakAfter == 'always' && eDIV.childNodes.length == 1 && eDIV.childNodes[0].style && eDIV.childNodes[0].style.display == 'none')
erre:
if (eDIV.className == 'page-break') // <-- ezzel jelöltük fentebb a DIV-ünket
Ennyi.
Az éles rendszeren a fenti kódok tömörített formában találhatók az editor/js/fckeditorcode_gecko.js fájlban.