Estou usando o editor WYSIWYG com o CKEditor. Estou descobrindo que, ao adicionar classes personalizadas aos meus elementos da exibição "origem", o CKEditor retira essas classes ao sair da exibição de origem.
Ao pesquisar no Google por uma solução para isso, encontrei a página do módulo CKEditor, que descreve como corrigir isso ao usar o CKEditor sozinho. (Basicamente, precisamos definir uma configuração JS config.allowedContent = true
nas configurações do Filtro de Conteúdo Avançado).
No entanto, ao usar o CKEditor via WYSIWYG, essas configurações não são expostas na interface do administrador. Como você consegue o mesmo ao usar o CKEditor via WYSIWYG?
PS: Não consigo usar o CKEditor sozinho porque ele não se integra ao plug-in de mídia .
Respostas:
Qual versão do CKEditor você está usando? Há um problema no CKEditor 4.1+, que possui um recurso chamado Filtro Automático de Conteúdo (ACF) que remove automaticamente atributos não definidos para o editor: https://drupal.org/node/1956778
O patch 37 da edição funcionou para mim.
fonte
editors/ckeditor.inc
'swysiwyg_ckeditor_settings
funcitonEu encontrei uma solução.
Isso desativa a filtragem, está funcionando, mas não é uma boa ideia ...
Jogar com uma sequência de conteúdo funciona bem para id, etc, mas não para os atributos de classe e estilo, porque você tem () e {} para filtragem de classe e estilo.
Então, minha aposta é permitir que qualquer classe no editor seja:
Isso permite qualquer classe e qualquer estilo embutido.
Para permitir apenas class = "asdf1" e class = "asdf2" para qualquer tag:
(então você deve especificar os nomes das classes)
Para permitir apenas class = "asdf" apenas para a tag p:
Para permitir o atributo id para qualquer tag:
etc etc
Para permitir a tag de estilo (<style type = "text / css"> ... </style>):
Para ser um pouco mais complexo:
Espero que seja uma solução melhor ...
fonte
Parece algo que deve ser adicionado ao módulo WYSIWYG; a capacidade de adicionar configurações personalizadas aos editores é um requisito bastante difundido. Mas, na ausência disso, eu ainda recomendo não editar o módulo em si, pois ele quebraria nas atualizações ... felizmente, o módulo fornece uma chamada para
drupal_alter
, portanto, em um módulo personalizado:onde "mymodule" é obviamente o nome do seu módulo personalizado. Isso realiza a tarefa sem editar o módulo de alguém.
fonte
Tente adicionar o seguinte a modules / wysiwyg / editors / ckeditor.inc
'allowedContent' => TRUE,
parafunction wysiwyg_ckeditor_settings($editor, $config, $theme)
para que agora leia:
fonte
Sem hackear nenhuma fonte e também sem tentar descobrir ONDE o sinal sonoro dessas configurações está sendo lido, você pode adicioná-lo ao seu próprio módulo personalizado
As configurações solicitadas pelo OP são
*(*);*{*}
da resposta de @Tommy acima. Isso parece permitir atributos de classe e estilo em qualquer elemento. O resto são apenas exemplos de entradas. Como outro exemplo, esta entrada permite as tags necessárias pelo módulo de mídia.fonte
O filtro HTML filtrado retira as classes dos elementos que não estão em seus elementos HTML permitidos . A tag de parágrafo (
<p>
) não está lá por padrão (que pode ser confusa e não natural), mesmo que seja o elemento mais frequente no qual a classe é aplicada. Depois de colocá-lo lá, o HTML filtrado não removerá mais as classes dessas tags. O mesmo vale para tags de imagem (<img>
).fonte