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?
Thanks,
Cameron
Comments
Re: Programmatically update allowed_html filter se
By Bob Hutchinson at 03/13/2012 - 06:43On 13/03/12 07:28, Cameron B. Prince wrote:
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.