Long story, lots of questions...

Events happening in the community are now at Drupal community events on www.drupal.org.
hartsa-gdo's picture

Hi,

I'm looking for altenatives how to implement following functionality to Drupal. Ps. I'm eager to try and test different possibilities, but would really appriciate and need a push towards the right direction.

Ps. The implementation is my personal project. I've just started with Drupal a month ago and dispite the long nights and lots of reading the full picture is still quite a mess to me. The message is long, hope you have time to read it through.

Site Overview:

The Drupal site I'm developing is basically a place where Admin_users can announce upcoming Events and End_users can register on them. More detailed requirements are listed below:

Admin_user "requirements":

REQ_1) (A) Events happen in certain (B) Event Location. As several (A) Events are held in same (B) Location, Admin_user should be able to link the (B) Location to (A) Event without entering the location data manually each time when new event is created - E.g. when Admin_user creates (A) new Event he/she could link the (B) Location to the (A) Event e.g. from a predefined drop down list (derived from "master data" list).

REQ_2) When a new (B) Location is needed, Admin_user can add it on the "master data" list.

End_user "requirements":

REQ_3) End_user should be able to to search (A) Events according to (B) Locations. The search accuracy could differ, End_user could e.g. focus the search to certain COUNTY / CITY / SUBURB / ADDRESS.

REQ_4) When End_user previews the certain (A) Event, the (B) Location information could be shown in the same page, or as a link to another page.

Implementation principles to requirements REQ_1 & REQ_2:

With CCK I can define desired (B) Location content type with the needed attributes. E.g. postal (B-1) postal code, (B-2) city, (B-3) street address, etc. I can further define a custom field (A-1) location_reference to (A) Event content type, which is of type Node reference. At this point everything would be fine, but my headache starts with REQ_3.

Implementation principles to requirements REQ_3:

I understand the Location module is intended for promiximity searches, but it requires filling up the postal code database. I have not found a postal code database "dump" for Finland (where I'm located). Further on I'm not 100% sure whether the postal code search is suitable for "non experienced" users? Perhaps it actually is the best method. Just wondering where I could find a "trusted" seller / source for that data? What could be reasonable price? As this is a personal project, the price may become an issue.

In any case I'd like to implement an alternative search, which would be based on hierarchical "location classification", in drupal this would obviously mean hierarchical "taxonomy". Do you know whether this kind of method is reasonable from the user perspective? E.g. user would have some kind of "hierarchical tree", where he/she could select the desired COUNTY / CITY / SUBURB / ADDRESS and limit the search accordingly. What could be suitable tools for implementing this? Is there e.g. GUI tools / taxonomy modules etc. that I could start with? Is there someking of "location taxonomy" data for available (for different countries), that I wouldn't have to fill it all manually?

Another problem arises from the REQ_1 and REQ_2. In case the location data is in (B) Location content type and in different node, how can search (A) Events based on that data? Should the location data be replicated somehow to (A) Events when user has filled all the desired fields? The replication wouldn't actually cause any problems if it could be automated. The main issue is that Admin_users could just avoid filling up the location data every time manually to new (A) Events (see REQ_1). Just wondering how to implement this? I'm not an expert with php, but if required will try that.

Is there some reason, why I should add the needed attributes to (B) Location content type from the predefined location module fields? As I've installed the location module, I can see that CCK provides a attribute group "locative information", e.g. with fields "city" and "street"? In case I'd decide not to use Latitude & Longitude fields (which enable the proximity search), would the use of location module fields cause any benefits?

Implementation principles to requirements REQ_4:

Probably not an issue. I've not tested this, but could imagine as a standard functionality. Of course all advice is wellcome on this issue.

Thanks for reaching this point!

Best regards, Harri

Comments

I am working on the same questions!

drupalista's picture

Hi, seems like I am working on a similar thing right now - I have to say that this is not a paid job and so my progress is very, very slow.

Your REQ 1 & 2 are very natural - it was my first thought when I played with the event module "how to offer a list of locations, so users do not have to type them over and over again".

Well, a classical master-detail thingy, there must be a solution for this! Unfortunately a search for master-detail on drupal.org was not too successful and things have different names in drupal-land, so I still did not master this detail (mind the wordart - don´t take me too serious, I am not evil :)

I do not understand right now how the location module exactly works, but CCK seems to be of great value here, I made a similar attempt like the one you described and created a content type with similar fileds, but I still have to dig deeper ito CCK to understand what exactly happens. BTW http://www.lullabot.com/articles/an_introduction_to_the_content_construc... is quite interesting.

As my locations should not be maintained by the admin user (I always prefer to let admin only do as little as possible) I hit another problem - how to attach the locations to a user? And how to bring this connection up in a nice master-detail view on event submission forms, of course with permissions applied correctly so not everybody can post events to any location...??? Also some users will have multiple locations assigned to and some locations will be shared - so a n:n relation. ummmhhh....

maybe I am totally on the wrong track now: trying to find an answer i stumbled across the nodeprofile package http://drupal.org/node/129957 as i realized, that via taxonomy will not be the right way to do this - I have not really found a solution now, but it "feels" like it could work this way... will be interesting to see, what you say.

Regarding geodata for finland: did you try http://freegis.org/database/?cat=1 ?
Also you could be lucky finding geodata in some shopping software, as these are places where this data is needed.

Hope I can give some better info when i get it done, meanwhile I will stay tuned here!

But wait - I think i will right now swing over to the CCK group and ask for a database-speak explanation on how to create master-detail views...