Notice thrown if option 'external' not set
kndr - June 4, 2009 - 11:57
| Project: | Global Redirect |
| Version: | 6.x-1.x-dev |
| Component: | Code |
| Category: | bug report |
| Priority: | normal |
| Assigned: | Unassigned |
| Status: | needs work |
Description
In function globalredirect_init() option 'external' should be set to FALSE (I think) since following message is shown: "There is a notice: Undefined index: external in language.inc on line 109." (locale and i18 module are enabled). Look at core url() function, where language_url_rewrite() is called - 'external' option is always set before call to language_url_rewrite();
| Attachment | Size |
|---|---|
| external.patch | 618 bytes |

#1
Yes, this is annoying. Re-rolled patch with nothing else than whitespace fixed, so it's RTBC.
#2
i actually just fixed line 109 by doing if(!isset($options['external'])) {} insted of !$options['e... in language.inc
#3
That sounds like perhaps a patch to core is what is really needed.
#4
Agreed, let's try that: language_url_rewrite() should not throw a notice if $options['external'] is not set.
#5
Erm. Why not fixing that in Global redirect? You are calling a core function, it's your responsibility to call it correctly.
#6
Because it's bad code? $options['external'] is an optional property.
#7
It is not, it is set by default in url(), before calling language_url_rewrite().
#8
It makes zero sense not to fix that in Global redirect first.
#9
Nothing in http://api.drupal.org/api/function/language_url_rewrite/6 mentions that 'external' is a required option. Surely, just because the parameter is set in url() before the function is called, that doesn't make it a mandatory parameter - that's just the way that url() uses it.
EDIT: Also note that in http://api.drupal.org/api/function/url/6, where the various options are defined (on the language_url_rewrite page it says that the options are the same as for url()) the entire $options array is optional, and
if (!isset($options['external']))is used the check for the presence of the 'external' option.