NOTICE: This package is in development and not ready for live use. It is only available for bitweaver release R2. If you would like to help in developing this package you can check out module _bit_yellowpages from cvs. Talk with wjames5 or Lugie on IRC about contributing code.
ToDo's
- Create tpls that match table schema
- How to verify hours data for each day in BitYellowPages
- loop through for days 0-6 ?
- require edit cycle for each day ? <-- easiest to build
Tables Schema
This is the data tables schema for the yellowpages package. This does not include some things like id_seqs which will be derived as appropriate.Non-YellowpagesPackage Tables
- liberty_content
- tracks user ownership of the listing
- holds title, description, body text
- etc, magical liberty structure
- geo
- adds global position data
- joined on liberty_content
- categorization
will rely on pigeonholes or a duplicate of pigeonholes that is exclusive for listings use.
YellowpagesPackage Tables
- yellowpages_group_kings
- group_id (keyed to a pigeonhole)
- king_content_id (a primary listing of a group of listings keyed to a content_id)
- yellowpages
- content_id (keyed to same on liberty_content)
- yellowpages_id (pretty)
- parent_id (optional - a content_id)
- description
- url
- im_id (chat id)
- im_type (chat network)
- address
- city
- state/province (check what other countries and services call this)
- need codes
- country
- postal code (this is a universal term)
- international
- index for fast search
- yellowpages_persons
- yellowpages_id
- firstname
- lastname
- yellowpages_hours
- yellowpages_id
- day_id (0-n joins on yellowpages_days
- start_time
- end_time
- twentyfour (boolean)
- note (every day can have its own note? this is handy for holidays but over kill for the others.)
- yellowpages_days
- day_id
- day_title
defaults: 0:Monday - 6:Sunday, 7:Holidays (generic), 8:Christmas, etc
- yellowpages_phones
- yellowpages_id
- phone_type
- phone_number
Brainstorm Discussion:
Schema
Cross Streets — should this be added or derived using a geo dbOther details only some kinds of listings have - how to deal with these?
Related Links <-- maybe another field in metaPrice <-- for something like restaurants prolly want a separate package
Type <-- person, business, historical site, etc ?
Administrative
- Ability to switch user associated with listing (for editing purposes)
- Ability to turn on or off rel="nofollow" SEO in all external links (perhaps this should be added to liberty)
Customer (Businesses/Things Listed)
- Masks email addresses behind web-based form or by some advanced robot-proofing method?
End User
- more...
Rankings
Put this type of stuff in another package or else liberty or an existing package- provide numerical values for type of listing (linked in listings)
- adds a price to become a listing of this type
- provides sort order information for displaying pages with multiple listings
- associates optional information with each listing type (features which get turned on and off). This table simply defines whether or not these things are shown/available based on the rank of listing being viewed/edited/created.
- web URL (numerical value determining the maximum)
- attachments
- images
- audio
- video
- other files (pdf, spreadsheets, archives, etc)
- addresses (numerical value determining the maximum)
- phone numbers (numerical value determining the maximum)
- email addresses (numerical value to determine maximum)
- start date
- end date
- more... (possibly a way to admin-define these fields?)
Feature requests
- filtering of search results by geo locations and the possibility of browsing the entries based on geo locations (mainly for entries that can have a location associated - companies, institutions etc.)
- possibility of fulltext switching to global internet fulltext search (read: fulltext via google for instance)
- the ability of setting any entry "Featured", which would bring it up in the browsing listings and searches
- item rating and comments
Comments
Go ahead!
Yes, this is a very need package fo bit
for lugie
like - kiosk could be a yellowpages type
like so say you had car dealer - and car dealer repair shop - dealership is the parent of the shop, both are in the same group, they are different types, and in this case there is no king
seems like you could handle everything pretty well with types and groups and adding parent_id to yellowpages objects
group == category
could have multiple groups!
New organizational thought
1. You want to put things in categories. And those categories should be nestable - like you might want regional categories, like neighborhoods like nyc -> manhattan -> east village. Or business type categories, like Automobiles -> Car Dealers -> Repair Center.
2. You want to group listings that are the same, and sometimes you want a dominant one in that group. For example chainstores, like Macy's, which has several stores and then a flag ship store on 34th street in Manhattan.
3. You want to organize listings by organizational hierarchy, like General Motors is the parent company to Pontiac and Chevrolette and Chrysler, and each of those has manufacturing centers and dealerships, etc.
each of these is slightly unique and seems to require its own relationship structure
Proposal
1. perhaps the easiest thing here would be to integrate with the pigeonholes package and auto-gen a yellowpages top level pigeonhole and then branch down from there. This way we would get all the pigeonholes benefit without flooding other pigeonholes categories with listings data. basically what I am trying to say is we want a categorization system like pigeonholes, but I think we want to have the listings categories independent from other website category content. It might be beneficial to completely duplicate pigeonholes and make a second categorization system that is dedicated to yellowpages only. I know I dont want my site content mixed with yellowpages data - and visa versa. But maybe this is foolish. there are benefits to having all site content cross referenced.With this I think we could also remove the "type" designation. There is no point to having a "business" type if you have pigeonholes of Restaurants -> Chinese
2. and 3. are more closely related to each other. So maybe these should be part of the same thing. Maybe it should be that any item can be grouped with another, and then those groups can have kings - such as a flag ship store or a spokesperson etc - and then they could also have parents - such as a owner or a supervisor.
PHP Link Directory
Migration
If somebody coded the ability to switch user ownership of listings, I know for sure I could make something at least tolerable that will import more than enough of your existing directory system.
If we could start compiling a list of migration scripts and, if possible, their schemas, I can start planning things out now(ish). So Kozuch, let me know how phpLD does their schema, or give me some resources. I already plan on making a port for users of phpYellow.