re[2]: [Rainbowportal-devel] Re: Enhancing navigation options...
Brought to you by:
danijel_kecman,
manudea
From: Jeremy E. <je...@ma...> - 2005-01-11 18:53:46
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML><HEAD> <META content="MSHTML 6.00.2800.1479" name=GENERATOR></HEAD> <BODY leftMargin=1 topMargin=1 rightMargin=1><FONT face=Tahoma size=2> <DIV>Take a look at <A href="http://www.premiervillas.net">http://www.premiervillas.net</A> and notice that the tabID does not change from looking at the list to looking at the property. What I have built is an XML-based system (so that "content" is managed entirely separately) and a XSLT-driven display module that is "reactive", i.e. it displays a list unless a specific property is requested (via the .aspx pagename actually). Would this technique help any? Generalising, I think this is the technique you should follow: i.e. 1) separate the content from its display and 2) use a module which can display different "results" based on parameters pased in the url. Naturally all of this works as a DLL add-on for standard Rainbow. In your scenario the module would have three "states": search, list and details.</DIV> <DIV> </DIV> <DIV>Let me know if you're interested (JohnM knows something about it too) and I'll explain more and/or send you code.</DIV> <DIV> </DIV> <DIV>Jeremy (Jes1111)<BR><BR><BR></DIV></FONT> <DIV style="FONT-SIZE: x-small; FONT-FAMILY: Tahoma"> <DIV>----------------------- <B>Original Message</B> -----------------------</DIV> <DIV> </DIV> <DIV><B>From:</B> James Steward <A href="mailto:ho...@gm..."><FONT color=#0000ff><ho...@gm...></FONT></A></DIV> <DIV><B>To:</B> John Bowen <A href="mailto:bow...@gm..."><FONT color=#0000ff><bow...@gm...>,</FONT></A> <A href="mailto:Rai...@li..."><FONT color=#0000ff>Rai...@li...</FONT></A></DIV> <DIV><B>Date:</B> Mon, 10 Jan 2005 16:59:52 -0800</DIV> <DIV><B>Subject: <U>Re: [Rainbowportal-devel] Re: Enhancing navigation options...</U></B></DIV> <DIV> </DIV></DIV>Hi John, Thanks for the ideas! However, I've already considered the second one, and whereas it does actually work, it's a bit too restrictive for exactly the reason you state, that being if there is more than one of the modules in the site it will be unreliable. We do have a couple of cases where we will need to use the same module on different pages (Search being the main one because we need to be able to do Rental Property searches from different parts of the site). The first idea I think would defeat the purpose of using Rainbow ;-) It's too restrictive for what we need to do. I'm really in a bind on this. If it doesn't get added to the core (or another solution is found), We're either going to have to look for another CMS or fork from Rainbow and continue developing on our own. Neither of these appeal to me. I know we're new and haven't contributed to the community yet, mostly due to just getting our implementation spec'd out, but we have plans of doing a fair amount of work on Rainbow in the coming months as we are planning to use it as a core of our business. Let me know if you come up with anything else. Thanks! - James On Mon, 10 Jan 2005 19:13:35 -0500, John Bowen <BOWENWEB@GMAIL.COM>wrote: > Hi James. I'm facing this same issue on two different projects...one > of which sounds *exactly* the same (even in the same industry...rental > home management!). > > Anyway, I have two possible solutions...one that works but is pretty > limiting, and one that is better, but may or may not work. > > ** The first (the one that works, but has limited functionality): > Instead of hosting a module that describes a single property on a > 'Tab', you can build a separate page (an aspx file) that handles that > display. You can still inherit Rainbow.UI.page, and your new > homeOverview.aspx will retain the theme and menu of the site. It just > won't really 'be' a tab in the portal...think of it as a fancier > version of the print.aspx page that comes with Rainbow. > > ** The second (untested idea...but I *think* it should work :) ): > When your datarepeater is loading (and building links to the > homeOverview tab), you could run a sproc to 'find' which tabID hosts > the homeOverview module for the portal...something like... > > SELECT Top 1 rb_tabs.tabID FROM rb_tabs ...inner joining rb_Modules > and rb_GeneralModuleDefinitions as necessary...WHERE > rb_GeneralModuleDefinitions.GUID = {yourhomeOverview Module's GUID} > and rb_tabs.PortalID = {thePortalIDOfTheCallingSite} > > I know that SQL is pretty ugly (wrong field names, etc.)...I don't > have an RB installation in front of me to use for > reference...hopefully, you get the point) > > Once you have the correct TabID, you can use it with UrlBuilder to > build the links from your datarepeater control. This way, if the > TabID of the homeOverview module changes, your datarepeater will > automatically pick up the change and refer visitors to the correct > Tab. > > This solution would eliminate the need for changes to the core...and > should still provide good flexibility. The only hang-up I can see (at > first glance) is if a user put more than one instance of that module > type in their site...the datarepeater module might refer visitors to > the 'wrong' one. Maybe there's a way to prevent site owners from > adding more than one instance of that special module? > > What do you think? (...and let me know if my rambling doesn't come > through clearly) > John > > On Mon, 10 Jan 2005 14:30:58 -0800, James Steward <HOMISH@GMAIL.COM>wrote: > > I'm very disappointed that this enhancement will not make it into the > > Rainbow code base. This is pretty critical to our being able to use > > Rainbow as a solution. > > > > Perhaps I can get some feedback from the rest of the developer > > community on how we might be able to solve the problem. > > > > First, is anyone using Rainbow to host multiple websites on the same codebase? > > If so, are you using common modules or common "Pages" on multiple websites? > > > > What we need to do is be able to navigate from one page in the website > > to another page in the website. Normally, you could do this with > > HttpUrlBuilder if you know what the TabID is. However, when you are > > running multiple websites you can't hard code the TabID because it > > will change from site to site. > > You might say, you can find the page by looking at the TabSettings > > object to get the TabName. This would be fine if the TabName was not > > also the Display Name of the Tab. It's possible that the TabName could > > be different from site to site, but the modules that make up that page > > are the same. > > > > My proposal, including code that works, is to add a TabLookupName > > field to the rb_Tabs table and update TabSettings, TabStripDetails and > > the appropriate sprocs. This would give us the ability to set a common > > identifier for a type of Tab that we can use on multiple websites. > > Then we can add to HttpUrlBuilder a method (public static int > > getTabId(string TabLookupName)) that will return the TabID from the > > TabLookupName which then can be used to build the url for that page. > > The way I've written the enhancement, if you don't need it, it doesn't > > break anything. The TabLookupName defaults to the TabName (including > > UI on the Edit Tab page), so there's nothing you need to do > > differently if you don't want to use it. > > Any module would be able to use this. You could use this to build menu > > controls without needing to go through the hierarchy of > > TabStripDetails among many other uses. > > > > If anyone can think of a way to do this differently I would appreciate > > the insight. > > Thanks. > > > > -- > > ^^^^^^^^^^^^^^^^^^^^^^^ > > James Steward > > Homish@Gmail.Com > > > > Hi, > > > > I have discussed a little with team. We cannot include right now in > > current base as it seems to specific. This change only can be used in > > private modules with a special requirements and I think that probably > > this can be made into the code for the special module. > > > > You may add to backlog tracker and we can consider for future > > releases. (You may attach code if you like) > > > > http://support.rainbowportal.net/jira/secure/BrowseProject.jspa?id=10060 > > > > Having people that require this change to be implemented may improve > > chances that it will be included in future. > > > > ------------------------------------ > > Emmanuele De Andreis > > Technical Manager > > DUEMETRI > > Internet Solutions Provider > > > > From: James Steward > > Sent: Wednesday, January 05, 2005 2:39 PM > > To: 'ma...@du...' > > Subject: Enhancing navigation options... > > > > Hi Manu, > > > > Back in November I submitted a suggestion to enhance navigation > > options for use with multiple portal sites (see thread below). I'm > > attaching the files that I've changed to make this work. I've been > > using it on my implementation of Rainbow and it works well. I can't > > add them to the source because I don't have access. I've signed up on > > SourceForge and my user name is james_steward if you want to give me > > developer access. > > > > I've been having problems with our company email filtering out some of > > the messages (both sending and receiving) for the dev mailing list, so > > I'm sending this to you directly. If you could add this to the project > > I would really appreciate it. I'll send documentation on what I've > > done in a separate email and post it to Jira if you agree that these > > changes are ok. > > > > In the folder you will find the files (in the folder structure that > > Rainbow currently uses) that have been changed. Also you will find a > > folder called Sprocs that has the changed Stored Procedures that need > > to be implemented. > > > > A change to the rb_Tabs table will also need to be made. You will need > > to add a column called "TabLookupName" and copy the values from the > > TabName column into the TabLookupName column (for legacy reasons) and > > set the TabLookupName to not accept nulls. By default, if someone adds > > a new tab and does not fill in the Tab Lookup Name, it will use the > > Tab Name. > > > > Let me know if you have any questions. > > > > Thanks! > > > > -James Steward > > > > P.S. What you suggested will not work for what I need. The > > implementation I have done, while more complex, is the best solution > > that I've been able to come up with. I've discussed it with others > > here and we can't come up with a better solution. Thanks for the > > suggestion though. > > > > Hi James, > > you can do it in a very easy way. > > We can just add a setting to base tab class. > > No sproc change not other changes. > > You can easily lookup through tab setting collection or directly from > > db (rb_TabSettings) and get the corresponding tabid > > What about? > > > > Manu > > > > On Mon, 15 Nov 2004 15:57:33 -0800, James Steward <HOMISH_@HO...>wrote: > > > > > > > > > > > > Ok, here"s my idea for a change on how we could enhance navigation in > > > Rainbow: > > > > > > > > > > > > Scenario: We are looking to use Rainbow to build websites for the Vacation > > > Rental Home Management industry. We will be using Rainbow to set up many > > > sites on the same code base. All of the sites will have a base set of > > > functionality and structure. For example: > > > > > > > > > > > > Home Page > > > > > > Property List/Search â€" List of Homes available to rent / Search for Home > > > based on various criteria > > > > > > Property Overview â€" General description of individual Home > > > > > > Images â€" Pictures of Home and surrounding area > > > > > > Location â€" Map of area, driving directions etc. > > > > > > Amenities â€" Features the home has, like Hot Tub, Internet > > > access, etc. > > > > > > Availability & Rates â€" How much does the Home cost to > > rent based > > > on dates/guests etc. > > > > > > Agency/Admin â€" Administration page to allow Management Company to make > > > changes to site (protected) > > > > > > Contact Us â€" Contact page with phone numbers email addresses etc. > > > > > > Optional Pages â€" Could have any number of other content pages. > > > > > > > > > > > > I have a custom module that displays a list of Properties (Houses, Condo"s > > > etc.) using a data repeater control. I need to be able to create a link for > > > each property in the repeater to the Property Overview page so it shows the > > > information for that particular property (by passing the PropertyID). > > > > > > Currently, the way I understand how the HttpUrlBuilder works, I would need > > > to know the TabID for the Property Overview page or at least know the > > > TabName of the Property Overview page so I can look up the TabID from > > > TabStripDetails. > > > > > > This would work fine if I only had one portal website because I would know > > > what the TabID and the TabName are. It"s a problem if I have multiple > > > websites that use this module. The problem being, the TabID will change from > > > website to website, and the TabName could be different. For instance, one > > > site may want to call it Property Overview, another might just call it > > > Overview or Summary or whatever they want to fit the design of their > > > website. > > > > > > There are other examples of where this is a problem, but I think this > > > illustrates my point. > > > > > > > > > > > > Description of Change: > > > > > > What I would like to propose is the addition of a non-nullable column in the > > > rb_Tabs table called TabLookupName which would hold a string that could be > > > used to identify a tab. Because the TabID is the primary key it will > > > obviously change from website to website and the TabName is used as the > > > display name in menus, we need another way of accessing a Tab that is not > > > dependant on these two. I would also like to propose that we change the name > > > of the TabName column to TabDisplayName for clarity. > > > > > > If this change is approved, I will take care of all of the code changes > > > (listed below, please let me know if I missed anything). The only thing I > > > might need help on is making sure the Setup scripts are taken care of for > > > the DB changes. I haven"t looked into what needs to be done about that. > > > > > > > > > > > > Affected areas: > > > > > > rb_Tabs table in the Rainbow DB â€" Add column TabLookupName nvarchar 50 > > > (nulls not allowed) > > > > > > rb_Tabs table in the Rainbow DB â€" Change TabName to TabDisplayName for > > > clarity (I understand this would cause legacy problems, just a suggestion) > > > > > > HttpUrlBuilder.cs â€" Add public static int FindTabID(string tabLookupName) > > > that returns the TabID for the supplied TabLookupName if it exists in the > > > current website. > > > > > > TabStripDetails.cs â€" Add support for TabLookupName > > > > > > TabSettings.cs - Add support for TabLookupName > > > > > > PortalSettings.cs â€" Add TabLookupName to ActiveTab, TabStripDetails, > > > PortalTabsXml and RecursePortalTabsXml > > > > > > Stored Procedures that need to be updated: > > > > > > rb_AddTab > > > > > > rb_UpdateTab > > > > > > rb_GetPortalSettings > > > > > > rb_GetTabsByPortal > > > > > > rb_GetTabsFlat > > > > > > rb_GetTabsinTab > > > > > > rb_GetTabsParent > > > > > > > > > > > > So, what do you think? > > > > > > > > > > > > - James > > > > RAINBOW PORTAL > > Main portal - http://www.rainbowportal.net > > Sourceforge / CVS - http://sourceforge.net/projects/rainbowportal/ > > Support Forums - http://www.rainbowportal.net/ASPNetForums > > > > ------------------------------------------------------- > > The SF.Net email is sponsored by: Beat the post-holiday blues > > Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. > > It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt > > _______________________________________________ > > Rainbowportal-devel mailing list > > Rai...@li... > > https://lists.sourceforge.net/lists/listinfo/rainbowportal-devel > > > -- ^^^^^^^^^^^^^^^^^^^^^^^ James Steward Homish@Gmail.Com ------------------------------------------------------- The SF.Net email is sponsored by: Beat the post-holiday blues Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt _______________________________________________ Rainbowportal-devel mailing list Rai...@li... https://lists.sourceforge.net/lists/listinfo/rainbowportal-devel </BODY></HTML> |