Szerkesztő számára nem elérhető, de létező tartalomtípus-mező.

Joee képe

Drupal 10-ben szöveges mezőt szeretnék beilleszteni egy tartalomtípus űrlapjába úgy, hogy az ne legyen módosítható vagy látható a szerkesztő felhasználó számára. Ha nem láthatóként állítom be vagy a szerkesztőnek nem adok hozzáférést ahhoz a mezőhöz akkor az be sem töltődik az űrlapra ha azt a szerkesztő nyitja meg. Ezt a tartalomtípus űrlapmezőt arra szeretném használni, hogy a szerkesztő számára nem módosítható (lehetőleg nem is látható) programkódot helyezzek el benne az űrlap betöltődése után, amely kód tartalma előre nem ismert és ezért azt egy javascript töltené fel. Sajnos nincs mit feltölteni, mert a mező be sem töltődik a szerkesztőnek. Hogy lehetne valamilyen megoldást találni?

Drupal verzió: 
Balu Ertl képe

Az alaprendszer önmagában nem kínál lehetőséget egy adott típusú tartalom szerkesztőoldalán az egyes beviteli mezők szerepkörönként való szabályzására. Egy áthidaló megoldás jut eszembe, lehet, te is hasonlót írtál le:

  1. Végy két szövegformátumot, például a gyári Teljes HTML és Szűrt HTML. A bővebb képességű legyen magasabban.
  2. Adj hozzá egy tartalomtípushoz egy formázott szöveg típusú mezőt, amihez engedélyezed mindkét szövegformátum használatát.
  3. Végy két szerepkört, például a gyári Adminisztrátor és Bejelentkezett
  4. Az alacsonyabb rangú szerepkörtől vond meg a magasabb szintű szövegformátum használatát, de engedélyezd számára az adott tartalomtípus szerkesztését.
  5. A magasabb rangú szerepkör használhassa mindkét formátumot.
  6. Egy magasabb rangú szerepkörbe tartozó felhasználóval vigyél be tartalmat a szövegmezőbe a magasabb szintű formátummal. Mentsd el.
  7. Egy alacsonyabb rangú szerepkörbe tartozó felhasználóval nyisd meg a tartalmat szerkesztésre. A szövegmező tartalmának (elvileg) rejtettnek kell maradnia, mivel neki nincs jogosultsága a magasabb szintű formátumot használni.

Nem próbáltam ki, csak emlékezetből írtam, lehet, már nem így működik.

Egyébként ha közösségi modult keresnél a megoldáshoz, akkor én a „field-level permission” kifejezésre keresnék rá.

1
0
Joee képe

Azért nem mert a szerkesztő user a formázott szöveg típusú mezőt a szerkesztési űrlapon látja és szerkesztheti is Szűrt HTML-el. Igaz, hogy a 6. pontod szerint bevitt tartalmat nem látja a szerkesztő user, de az az oldal kódjában ténylegesen sincs ott, így a javascriptem nem tudja felhasználni adatként. Úgy tűnik, hogy a Drupal ki sem küldi az értéket, mivel a user nem láthatja. Valójában ezt a Drupal úgy értelmezheti, hogy nem elrejti a tartalmat, hanem eltünteti. Itt jut eszembe, hogy a mezőhöz hozzá kellene írnom egy hidden tulajdonságot, hátha úgy kiküldi a kódot csak rejtetté teszi.
Modulokat már keresgettem a láthatóság és/vagy hozzáférés szabályozására, de amivel eddig próbálkoztam az mind ugyanazt csinálja, hogy ki sem küldi mező value tartalmát vagy még a meződeklarációt sem a korlátozott usereknek. A "Field Permissions" modul pedig bugos lehet, mert ha az egyedi jogosultságainál tiltom bármelyik mező szerkesztését a szerkesztő user számára akkor a képfeltöltés mező nem hajlandó többé képet feltölteni, annak ellenére, hogy az nem került korlátozásra.
Amúgy ez a változás csak a D10-ben van, mert a régebbi Drupalban (8) elég volt a user hozzáférését tiltani és a Drupal akkor kiküldte a mezőt és a mező tartalmát is az űrlapra csak szürkével jelent meg és nem volt szerkeszthető, de ott volt és a javascript tudta is használni. A D10 már ki sem küldi sem a mező kódját, sem annak tartalmát annak a usernek amely számára korlátozva van a hozzáférés. Nem böngészőfüggő, mert 4 böngészőben is kipróbáltam.
Köszönöm a hozzászólásod.

0
0
dongodani képe

Az Asset injector modullal egyéni CSS kóddal be tudsz a mezőre display: none; visibilty: hidden...stb. tulajdonsagot àllítani és hozzá tudod àllítani a kívánt szerepkört is.
A JS injectorral pedig egyéni .js kódot is meg tudsz adni, szintén szerepkörökhöz rendelve.
https://www.drupal.org/project/asset_injector

1
0
Joee képe

Úgy érted, hogy ne előre beállítottan rejtsem el a mezőt, honem amikor kiküldésre kerül a lekért D10 oldal akkor ne legyen rejtve a tartalom mezője, majd a kiküldött tartalom szükséges mezőjét javascriptel tegyem hiddenné? Így kimegy a kód és a mező is létezni fog csak nem lesz látható, illetőleg hozzáférhető, viszont fel tudom használni? Ígyérted? Szerintem jó ötlet és működhet. Rövidesen kipróbálom. Kösz!

0
0