This is what I get for not testing every permutation. Regular members can't see the MODBREAK.
There is clearly a way to prevent posters from using the modbreak tag. I suspect that if the allowedTo test can be performed where the modbreak tag is defined into 2 arrays, then I can stop regular members from using it.
Here is the MODBREAK BBC definition code in the Subs.php file:
array(
'tag' => 'modbreak',
'type' => 'unparsed_content',
'content' => '$1',
'block_level' => true,
'validate' => create_function('&$tag, &$data, $disabled', '$data = get_modbreak(parse_bbc($data, ' . ($smileys ? 'true' : 'false') . ',\'' . $cache_id . '\'));'),
),
array(
'tag' => 'modbreak',
'type' => 'unparsed_equals_content',
'content' => '$1',
'block_level' => true,
'validate' => create_function('&$tag, &$data, $disabled', '$data[0] = get_modbreak(parse_bbc($data[0], ' . ($smileys ? 'true' : 'false') . ',\'' . $cache_id . '\'), $data[1]);'),
),
I don't know PHP well enough to edit the array entries to add the allowedTo logic.
However, it seems the place to use the allowedTo is on the 'validate' line in the create_function. But just adding 'if (!allowedTo('moderate_board'))' before '$date[0]=' or after it breaks the code, so I know there is a bit more (global allowedTo()?).
Does that make sense? Will this stop people trying to create posts from using MODBREAK but still allow everyone to see the MODBREAK?
I do appreciate all the time you are spending on this.
Grazie,
Cal