D7, WYSIWYG, CKEditor, tagu atribūti

j2b Tue, 02/21/2012 - 16:38

Vai kāds varētu ātri atbildēt uz it kā vienkāršu jautājumu? Zinu risinājumu, bet tas man pagaidām būtu overkill. Taču var būt arī vienīgais.

<strong>Vajadzība</strong> - Drupal 7 izveidoju jaunu teksta formātu, kurā definēju noteiktus tagus, kas ir pieļaujami. Gribu izmantot HTML filtru, kas nāk ar Drupal 7.

<strong>Papildus</strong> - izmantoju WYSIWYG redaktoru ar CKEditor (pēdējos).

<strong>Problēma</strong> - dažas no pogām, kas ir CKEditoram satur nevis tīrus HTML tagus, bet gan definē atribūtus, konkrēti style parametrus. Taču D7 HTML filtrs šos style atribūtus neņem vērā, tos attiecīgi ignorējot.

<strong>Jautājums</strong> - vai iekš Drupal 7 bez jebkādiem papildus moduļiem (piemēram WYSIWYG Filter) ir iespējas tomēr pieļaut atribūtu izmantošanu? Negribu atslēgt HTML filtru.

Nē. Tev ir jāizmanto cits filtrs. Vai arī jāhacko core html filtrs. Viņš izvāc laukā visu, visu lieko.
Paldies par komentāriem. Tad pašlaik palikšu pie wysiwyg_filter, jo tur var to visu nodefinēt, ieskaitot tieši kādus atribūtus atļaut kādā no tagiem. Definētie stili - īsti neder, jo gribu, lai tēmā iet kopā. Un arī ja tos pielieto, tad HTML filtrs no kores atribūtus noņem nost, atstājot tikai HTML tagus plikus, līdz ar to float:right, vai float:left nenostrādā, jo paragrāfs paliek par pliku p. Paldies. Domāju, ka var būt to kaut kur var uzstādīt. Atslēgt HTML filtru arī negribu, jo tad var būt visādas citādas ķibeles. Mērķis ir panākt, lai CKedotors dotu iespēju mazliet variēt ar kontentu, bet iepriekš CSS aprakstītā veidā, lai lapas saturs neatšķirās pēc stila no pašas lapas izskata. Vēlreiz paldies.
Es tieši tādam nolūkam izmantoju CKeditor definētos stilus, kur tagam tiek pielikta tikai CSS klase. Piemēram, izveido 2-3 stilus tabulām, apakšvirsrakstiem, bildēm (float:left vai right) u.t.t. Tas palīdz uzturēt lapu vienotā stilā, kā jau Tu minēji.
OK, papētīšu. Bija tāda doma, lai stilus padarīt vizuāli līdzīgākus arī WYSIWYG, un sagatavot komplektus ar bloku stiliem. Tā kā tas ir priekšā.
Varbūt noder tas wysiwyg pielāgošanas modulītis. Esmu mazliet papildinājis viņu, lai CKeditor satura laukā (tur ir iframe) ielādējas tikai savs css fails. Citādi tur ielādējas admin tēmas css. Moduļa failā jāatkomentē rindiņa. Pavisam eleganti būtu, ja tēmā css failus organizē tā, ka raksta satura stili ir atsevišķā failā. Tad minētajā modulī var norādīt ceļu uz šo tēmas css failu, un viss ir vienā vietā. P.S. Izmēģiniet arī šo revolucionāro moduli Aloha - http://drupal.org/project/aloha
WYSIWG modulis taču dod iespēju norādīt, kādu CSS datni vēlies izmantot admin saskarnē. Piemēram, /admin/config/content/wysiwyg/profile/full_html/edit -> Editor CSS.
Daini, tur mazliet ir ķibeles. Vismaz D6 tas nestrādāja kā vajag, un bieži tika pārrakstītas (overriden) lietas no defoltā uzstādījumu klāsta. Un otrs, css failu tu vari mainīt, bet iframe mazliet jauc lietas nost, un ne vienmēr tas nostrādā. iFrame ir priekš WYSIWYG editora kā atsevišķs logs. Ne līdz visiem tagiem vari nokļūt ar CSS no tēmas faila.
Paldies, es jau to pētīju (pielāgošanas moduli, atkārtoti). Man vienkārši gribējās tik skaidrībā ar to, vai kore piedāvā atribūtus tomēr nefiltrēt. Būs vienreiz jāpieķeras tiešām konkrēti, lai vairāk pie šī jautājuma nav jāatgriežas :)
Aloha man pašam briesmīgi simpatizē. Pamanīju viņu kādu gadu atpakaļ, laikam. Var būt kļūdos, bet pasen. Tad laikam vēl nebija D integrācijas.
Danim taisnība, laba norāde. Izmēģināju un man darbojās labi. Mazliet paskaidrošu, kāpēc tas modulis. Ja ir nepieciešamas vairākas izmaiņas, nu nevar visu no saskarnes paveikt, tad sanāk veidot kādu custom moduli. Tam ir vairākas priekšrocības, var viegli vienuviet visu salikt kodā, var ieslēgt/izslēgt moduli pēc vajadzības, versiju kontrole. Ja reiz liek kodā, tad liek. Otra pieeja, turēties no kodēšanas cik tālu vien var. Galvenais, lai tas viss ir mērķtiecīgi.
:) cik zinu Danis ir Daniels, Jūs "tautiskojiet" viņa vārdu/nick name! ;)
Tieši tādēļ, profilā, pāris rindkopas par sevi, ir ļoti laba doma ;)