Ckeditoral készített oldal

Richter Miklós képe

Szervusztok!

Nekem egy olyan problémám lenne, hogy a ckeditor-al készített oldalban a szerkesztőben mutatott kép más mint a megjelenő oldalon (pozíció problémák).

Van valakinek ötlete, hogy mit lehetne tenni, hogy a szerkesztőben látott kép egy az egyben jelenjen meg az oldalon a mentés után.

Megtisztelő válaszotokat várva.

Köszönettel:
Miki

Drupal verzió: 
Sk8erPeter képe

Szia!

A probléma alapja az, hogy a CKEditor alapvetően iframe-et használ az oldalon belül, ami lényegében egy különálló oldal egy másikba beágyazva, és ehhez a különálló oldalhoz nem ugyanazokat a stylesheeteket (CSS-fájlokat) használja fel a CKEditor alapértelmezésben, mint amiket azon az oldalon használsz, amibe be van ágyazva a szerkesztőfelület. Ebből következően tehát a szerkesztett szöveg kicsit másképp fog kinézni, mint ahogyan a node ténylegesen megjelenik. Ezért is lesz jó az új inline CKEditor a Drupal 8 core-ban, mert annál ez a probléma nem fog előfordulni.

Én erre kerülő megoldást alkalmaztam, szintén a CKEditort felhasználva, ami nálam be is vált: a megfelelő CKEditor-profil(ok)nál be kell állítani, hogy egy saját stylesheetet használjon fel; ebben a stylesheetben pedig @import segítségével majd importáljuk a szükséges stylesheeteket.
Most leírom részletesebben:

  1. Például vegyük azt, hogy az "Advanced" profilt szeretnéd módosítani, azt szeretnéd, hogy annál legyen beszúrva a saját stílusod.
    elnavigálsz ide:
    admin/config/content/ckeditor/edit/Advanced
  2. ezután ki kell nyitni az alapból összecsukott CSS fieldsetet
  3. az
    Editor CSS
    mezőnél kiválasztani ezt:
    Define CSS
  4. ezután a CSS file path mezőnél meg kell adni egy olyan útvonalat, ahol a saját stylesheeted lesz (erről a következő pontban mindjárt), amiben majd importálod a megfelelő stílusfájlokat.
    Ez az aktuális sminked CSS-könyvtára legyen! (Általában simán css, bár egy-két sminknél sajnos a főkönyvtárba vannak behányva a fájlok.) Oda fogjuk berakni ezt a még létrehozandó fájlt.

    Ilyen legyen:
    %hsites/all/themes/SAJÁTSMINKEDNEVE/css/all-in-one-import.css

    SAJÁTSMINKEDNEVE értelemszerűen behelyettesítendő.

    Itt a %h az a hostnévhez tartozó placeholder (lásd a súgót: Available placeholders: %h – host name (/), %t – path to theme (/themes/seven/).). Szándékosan van "egyben" a sites-szal!! (%hsites).

    (Azért nem a %t-t használom fel, mert ha az admin-smink jelenik meg a szerkesztéshez, én az iframe-ben akkor is azt a stílust szeretném látni, ami a végleges megjelenésnél lesz látható, tehát az ahhoz a sminkhez tartozó könyvtárba pakolom a fájlt.)

  5. Most nyisd meg a kedvenc szövegszerkesztődet (például Notepad++, vagy akármi egyszerű is megteszi).
    Létrehozzuk a fájlt, amiben importálva vannak a stylesheetek. Ehhez meg kellene nézned, hogy amikor megnyitod az oldaladat, akkor milyen CSS-fájlok vannak include-olva a sminkből, csak egy példa, ha megnézed az oldalad forráskódját:

    @import url("http://example.hu/sites/all/themes/SAJÁTSMINKEDNEVE/css/pages.css?mfsfk5");
    (aggregált CSS-nél nyilván ez más lesz, <link> taggel include-olva)

    A fájl tartalma pedig valami ilyesmi lesz (én Zen alsminket használok, az arra jellemző stílusfájlok elérési útjai szerepelnek itt):

    1. /* This is used for CKEditor */
    2. @import url("./normalize.css");
    3. @import url("./layouts/fixed-width.css");
    4. @import url("./tabs.css");
    5. @import url("./pages.css");
    6. @import url("./blocks.css");
    7. @import url("./navigation.css");
    8. @import url("./views-styles.css");
    9. @import url("./nodes.css");
    10. @import url("./comments.css");
    11. @import url("./forms.css");
    12. @import url("./fields.css");
    13. @import url("./print.css");
    14. /* az alabbi nem a Zenhez tartozik, valtoztasd meg a sajatodra */
    15. @import url("./SAJATSTILUSFAJL.css");
    16. /* egy resze a pages.css-ben, hogy egyezo hatteruk legyen, mint a #main-nek! */
    17. body.cke_show_borders {
    18. background-image: none;
    19. }
    20.  
    21. body.cke_ltr, body.cke_panel_frame, body.cke_browser_webkit {
    22. background-color: white;
    23. background-image: none;
    24. }

    Az elérési utakat (pl. SAJATSTILUSFAJL.css itt azért szerepel, mert az nem a Zen alsmink egyik alapértelmezett fontos stylesheetje) és az utóbbi pár sort is változtasd meg úgy, ahogy nálad vannak a CSS-fájlok. Ahogy itt látható, mindig az adott könyvtárhoz képest relatív útvonalakat adok meg.

  6. Mentsd el a fájlt all-in-one-import.css néven.

Remélem sikerül, ha valami nem érthető, nyugodtan kérdezz rá.

7
0
Richter Miklós képe

Nagyon szépen köszönöm a válaszod!

0
0
Sk8erPeter képe

Szívesen! :)
Sikerült végül?

0
0
Richter Miklós képe

Kedves Péter

Bocsánatodat kérem, hogy nem reagáltam, de sajnos nem igazán voltam itthon.

Hamarosan letesztelem, de mivel nagyon alapos a leírásod, remélem sikerülni fog.

Neked már egyébként sikerült valamelyik applikációdban elfoglalható megoldást találni?

Köszönettel és szívélyes üdvözlettel:

Richter Miklós

0
0
Sk8erPeter képe

Kedves Miklós!

Semmi gond!
Igen, én a fenti beállításokat aktívan használom is egy oldalon, és nagyon jól bevált! Így már eleve úgy néznek ki a dolgok (akkorák a margók, paddingek pl. a <p> elemnél, stb.), ahogy a végleges megjelenítésnél. :)

Szívesen!
Péter

0
0
Richter Miklós képe

Kedves Péter!

Ez remek akkor hamarosan tesztelem és megszűnik ez a gond.
Tényleg korrekt részletes leírás, nagyon nagyon köszönöm, remek munka és segítség.

Szívélyes üdvözlettel:

Miki

0
0
Richter Miklós képe

Kedves Péter!

Belenéztem és ezeket találtam, akkor ezeket mind helyettesítsem be az általad írt css filébe és mentsem a megadott all-in-one-import.css fileként?

  1. <title>Tüskeböki Törpesün Tenyészet | torpesun.eu - African Pygmy Hedgehog</title>
  2. <link type="text/css" rel="stylesheet" media="all" href="/modules/node/node.css?4" />
  3. <link type="text/css" rel="stylesheet" media="all" href="/modules/poll/poll.css?4" />
  4. <link type="text/css" rel="stylesheet" media="all" href="/modules/system/defaults.css?4" />
  5. <link type="text/css" rel="stylesheet" media="all" href="/modules/system/system.css?4" />
  6. <link type="text/css" rel="stylesheet" media="all" href="/modules/system/system-menus.css?4" />
  7. <link type="text/css" rel="stylesheet" media="all" href="/modules/user/user.css?4" />
  8. <link type="text/css" rel="stylesheet" media="all" href="/sites/all/modules/cck/theme/content-module.css?4" />
  9. <link type="text/css" rel="stylesheet" media="all" href="/sites/all/modules/ckeditor/ckeditor.css?4" />
  10. <link type="text/css" rel="stylesheet" media="all" href="/sites/all/libraries/colorbox/example5/colorbox.css?4" />
  11. <link type="text/css" rel="stylesheet" media="all" href="/sites/all/modules/ctools/css/ctools.css?4" />
  12. <link type="text/css" rel="stylesheet" media="all" href="/sites/all/modules/filefield/filefield.css?4" />
  13. <link type="text/css" rel="stylesheet" media="all" href="/sites/all/modules/panels/css/panels.css?4" />
  14. <link type="text/css" rel="stylesheet" media="all" href="/sites/all/modules/cck/modules/fieldgroup/fieldgroup.css?4" />
  15. <link type="text/css" rel="stylesheet" media="all" href="/sites/all/modules/views/css/views.css?4" />
  16. <link type="text/css" rel="stylesheet" media="all" href="/sites/all/themes/torpesun_last/style.css?4" />

Válaszod előre is köszönöm.

Szívélyes üdvözlettel:
Miki

0
0
Sk8erPeter képe

Kedves Miklós!

Megnéztem az oldaladat, és úgy láttam, hogy a Te oldalad fő stílusfájlját ez az egy torpesun_last/style.css fájl képezi, mert abban rengeteg stílus-meghatározás van, és a többit kitörölve sem esik szét az oldalad (Chrome-ban próbáltam ki, megnyitva a developer toolbart (F12), majd a <head> részből kikeresve a megfelelő CSS-fájlokat, és azokon jobb klikk, majd "Delete node" egyesével, míg végül csak a legutolsó CSS-fájl maradt, vagyis a torpesun_last/style.css, és így is helyesen jelent meg az oldal), így nálad még egyszerűbb lesz a helyzet, kevesebb lépésből is meg tudod oldani (az én esetem a Zen smink használatára vonatkozik, ami szét van szabdalva "téma" szerint csoportosítva külön-külön CSS-fájlokra, így azokat mind include-olni kell a megfelelő működéshez): a 4-es pontig minden ugyanaz, majd a 4-es pontban a "CSS file path"-nál ezt az útvonalat add meg:

%hsites/all/themes/torpesun_last/style.css

Az 5-ös, 6-os lépést nyugodtan kihagyhatod, mert nálad elméletileg ennek a fájlnak a megadása is már elegendő lesz, úgyhogy a fenti megadása után mentsd el az adott CKEditor profilt, és elvileg készen is vagy.

Remélem, sikerül!

Üdv.
Péter

0
0
Richter Miklós képe

Kedves Péter!

Nagyon köszönöm a részletes és érthető válaszod. Igazán irodalmi és jól fogható.

Sajnos csak ma este tudom megcsinálni, mert vidékem vagyok egyéb elfoglaltságom miatt.

Holnap beszámolok az eredményről.

szívélyes üdvözlettel:
Richter Miklós

0
0
Sk8erPeter képe

Kedves Miklós!

Szívesen! Rendben, nyugodtan, próbáld ki akkor, amikor majd időd lesz rá!
Még kiegészítésként annyit hozzátennék, hogy amennyiben mégis szükség van további stílusok hozzáadására, hogy ténylegesen közel ugyanúgy jelenjen meg a CKEditor szerkesztőfelületén maga a szerkesztett tartalom (mert például az egyes tartalmi elemek hátterét szeretnéd megjeleníteni, ami eltér az oldal fő hátterétől, és nálad a CKEditorban mégis az utóbbi látszik), akkor minden marad az eredetiben, az 5-ös és 6-os pontok is állnak, azt leszámítva, hogy az újonnan létrehozandó fájlba nem a sok @import kezdetű sort rakod, hanem az új kódjaidat; a 4-es pontban pedig az újonnan létrehozandó fájl elérési útját kell megadni (nem a style.css-t - de pl. a style.css mellé betehetsz egy új fájlt, és annak az elérési útját adod meg).

Csak azért mondom előre, mert nem garantált, hogy a szerkesztőfelületben megjelenő szöveg a style.css megadásával még pont ugyanúgy fog kinézni, mint a végleges tartalom, így esélyes, hogy mégis szükség lesz egyedi fájl szerkesztésére, ebben az esetben pedig tényleg marad az eredeti elképzelés, csak saját igényeidhez igazítva.

Sok sikert!

0
0
Richter Miklós képe

Kedves Péter!

Már majd nem tökéletes, de a képeknél van némi gond.
Ha balra igazításban van és értelem szerűen van némi szöveg emelet akkor, a szerkesztőben jónak látszó kép az oldalon a szöveg felugrik.

Oldalnézetben:
Editorban

És így néz ki editorban:
Editorban

Lenne valami tipped?

Köszönettel:
Miki

0
0