Jump to content

Recommended Posts

Posted

Hello,

How can we allow an id in CKEditor?

*(class) works for classes.

*[id] should work for ids normally, but apparently it doesn't.

I have already had this problem before, and have tried to find an answer, the only difference being that this time I'm posting a message.

Posted

Hello cstevensjr,

For some websites, I would like to be able to allow an id.

For example, I have to use class="credit" because I can't use id="credit" apparently.

But an id would be more appropriate in this case, and in other cases as well.

It's related to (the) styling (of) a paragraph containing a link to my website.

The information is in a hidden "footer" page.

I've tried replacing *(credit) for the class with *[credit] for the id.

Admin >Setup >Fields > Edit Field: body -> Input -> Extra Allowed Content:

*(centre)
*(gras)
*(noir)
*(credit)

Posted

I don't know if you read the documentation for "Allowed Content Rules", but there it states that [] are for attributes, {} for styles and () for classes. Therefore you need to use *[id] to allow id's. You can only allow/disallow specific contents for the style and class attribute. All the other attributes (including id) are either allowed in any form or not.

Edit: Your version would allow for this:

<a centre="something" gras="green" noir="dark" credit="given">I'm a link</a>
  • Like 4
Posted

Hi,

In this case, in a production website:

*(centre) is active with class="centre"
*(gras) is active with class="gras" <- bold
*(noir) is active with class="noir" <- black
*(credit) is active with class="credit"

I would just like to be able to allow id="credit" instead of a class.

As I've said, I've tried to use *[credit]. It doesn't seem to be the way to do it (perhaps just by default in ProcessWire).

Posted

I think you didn't understand what I tried to describe. HTML attributes are two parts: attribute="value". You can only allow predefined values for classes and styles ( with () and {}). You cannot do that for other attributes, like in your case id. You can only allow the whole attribute without restricting the value. *[id] (id in literally these two characters, not as replacement) does allow id's for any element and any actual id value. Kinda like this: <* id="*"></*>

  • Like 1
Posted

All the other attributes (including id) are either allowed in any form or not.

I would like to add that this is true for allowed content rules in string format. If object definitions are used, there are more possibilities. For example, a function can be called which allows only a match of certain values for id.

Posted

In fact, I had understood at first.

But then I had thought that I hadn't understood with:

"Edit: Your version would allow for this:

<a centre="something" gras="green" noir="dark" credit="given">I'm a link</a>"

I had read (more than once perhaps) the following part too quickly:

"// Rules allowing:
// * <p> and <h1> elements with an optional "id" attribute,
// * <a> with a required "href" attribute and an optional "id" attribute.
p h1; a[!href]; *[id]"

I wanted to only allow one id, not all (via the backend). So it's probably why I haven't tried the *[id].
Apparently it's not possible.

Edit: at least this time, I will just insert the part of the code with the id in the appropriate template file.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...