There is a couple of messages in drupal. When there is a php warning, an error message is raised, but a module can also raise messages with drupal_set_message(). The question is: Is there a way to alter these messages? For example to replace every 'a' with 'b' in every message.
Thanks!
While there is no message alter on set, you can change them on display via hook_preprocess_status_messages
, see http://api.drupal.org/api/drupal/includes--theme.inc/function/theme/7 on preprocess and http://api.drupal.org/api/drupal/includes--theme.inc/function/theme_status_messages/7 .
Edit: also you can try string overrides check http://api.drupal.org/api/drupal/includes--bootstrap.inc/function/t/7 , in short $conf['locale_custom_strings_en']['some message'] = 'some messbge';
for English, change _en
for something else if it's not English.
String overrides is the best solution, BUT
then string overrides can not help you and here is a solution.
hook_preprocess_status_messages() passes in $variables but the messages are not in $variables, change them in $_SESSION['messages'].
/**
* Implements hook_preprocess_status_messages()
*/
function MYMODULE_preprocess_status_messages(&$variables) {
if (isset($_SESSION['messages']['warning'])) {
foreach ($_SESSION['messages']['warning'] as $key => $msg) {
if (strpos($msg, 'some text in the message') !== FALSE) {
$_SESSION['messages']['warning'][$key] = t(
'Your new message with a <a href="@link">link</a>.',
array('@link' => url('admin/something'))
);
}
}
}
}
Credit to Parvind Sharma where I found part of this solution.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With