[support] Trying to not hack core.

Pat Newberry drupal at gypsyfarm.com
Mon Oct 8 19:45:39 UTC 2012


Looking for some advice. My Drupal background is quite limited, but I'll 
do my best to use the correct terminology.

Basically we have a view that is used to search for organizations based 
on the country.
So when I go to the view for the search page and click on the configure 
filter criterion, I see a series of check boxes associated with the 
field_address:county field that is a long list of countries.

The values for the countries appears to come from the file: includes/iso.inc

What I'm trying to do is change some of the names, plus add one or two 
countries.
The reason for this is this search is based on where our organization 
works. For example we have a separate organization in Northern Ireland. 
Of course this is not listed in the ISO.inc file.

I was not able to figure out how the ISO.inc values are tied to the 
field_address_country, but they are.

My first instinct was to, heck, just modify the ISO.inc file. But then I 
was told that was bad because that is like hacking core.

After some Google searching I found I could add to a function Hook to an 
existing custom module that deals with forms (written by 3rd party) with 
a hook for countries alter.

function myCustomMod_countries_alter(&$countries) {

$countries['IE'] = 'Republic of Ireland-xx';
$countries['GB'] = 'Great Britain';
$countries['RU'] = 'Russian Federation';
$countries['CI'] = 'Cote d\' lvoire';
$countries['BA'] = 'Bosnia Herzegovina';
$countries['NN'] = 'Northern Ireland';

}

Now when I go to the view, this has no effect on the list of countries, 
but when I go to the search page that uses this view with exposed 
criteria and form, I can see that the countries that exist in the iso 
file (e.g. Republic of Ireland with an -xx) are modified with my changes 
from the countries_alter hook, but the countries that do not exist in 
the iso file are not added (e.g. Northern Ireland). I am guessing at the 
time the exposed search drop down list is built, it has my changes in it 
(altered and added) but that it checks against the values that are 
checked in the view and if it's not check in the view, it won't get 
added to the list.

So looking for advice as to what direction I should head.

1.) Hack the ISO.inc file.
2.) learn how to attach another .inc file to the field_address:country
3.) another hook or code in the hook alter that will work when the form 
is rendered.

Pat.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.drupal.org/pipermail/support/attachments/20121008/245133e9/attachment-0001.html 


More information about the support mailing list