On 13/03/12 07:28, Cameron B. Prince wrote:
Hi,

The baseline module I'm developing needs to add the<span>  tag to the
allowed_html value for the filtered_html text filter when enabled.

I've searched the core modules, the standard installation profile,
Drupal.org and Google, but I haven't been able to find an example of the
proper way to do this in a module.install's hook_enable().

I assume I should use filter_format_save() and tried the following:

filter_format_save('filtered_html', 'filter_html', 1, 1, array(
   'settings' =>  array(
     'allowed_html' =>  '<a>  <em>  <strong>  <cite>  <blockquote>  <code>  <ul>
<ol>  <li>  <dl>  <dt>  <dd>  <span>'
     )
   )
);

This resulted in "PDOException: SQLSTATE[23000]: Integrity constraint
violation: 1048 Column 'format' cannot be null" which I don't understand
because the first argument to filter_format_save() is the format.

Could someone point me in the right direction?

I don't know of an all-in example that would 'just work' but there are a few things you can do.

First of all filter_format_save() expects just one parameter, not five, and that parameter should be an object.

Secondly you cannot make the assumption that there is a format 'filtered_html', it might have been deleted so you will need to check that it exists and is enabled. There are functions in filter.module that can help.

The examples module has a filter_example.module that might help you implement hook_filter_info().

Once you have got hold of the existing 'settings' string, you should use explode() to turn it into an array, then use in_array() to check if what you are wanting to add is already there or not, add it if not and turn it back into a string with implode() ready for saving (or not if it was already there).

I also see in the code for filter_format_save() that there is a module hook 'filter_format_update' so you probably should use that, eg create a function in your module in the form of 'mymodule_filter_format_update()' and feed the object into that.

The structure of the object is described in the comments above filter_format_save()

This should be enough to get you started.


Thanks,
Cameron






--
-----------------
Bob Hutchinson
Midwales dot com
-----------------

Reply via email to