Review Foundry Review Engine User Manual

FREQUENTLY ASKED QUESTIONS

Adjust Text:  a a a a
« Table of Contents   |   Obtain Review Foundry »


FREQUENTLY ASKED QUESTIONS

As with the TROUBLESHOOTING section of the Manual, as Review Foundry becomes more widely used and issues are addressed regarding its use in various situations, the list of Frequently Asked Questions on this page will grow.

h3>Can you recommend any Web Designers?

I am always on the lookup for good web designers who have worked with Review Foundry and can take clients that need a little help getting their site presentable. So if you fit the bill, contact me so that I can add you to the list below. You need to have either purchased Review Foundry for yourself, or for a client, for me to consider adding you to this list (otherwise I have no basis for determining whether you know what Review Foundry is all about--nor do clients want to contact someone who has no Review Foundry experience).

So, here's my list of web designers who have used Review Foundry and agreed to be listed here.


 Kevin Gosselin (in Seattle, WA)
 http://www.hcpassociates.com/extranet/kevin/Index.asp
 [ Email ] kgosselin@hcpassociates.com

 Chavvon Smith (in Grapevine, TX)
 http://www.silistech.com
 [ Email ] csmith@SilisTech.com

 Traci Gurney (in British Columbia, CA)
 http://www.barezanmedia.com/
 [ Email ] traci@barezanmedia.com

 Danielle Stanley (London, UK)
 http://www.danitech.co.uk
 [ Email ] dani@danitech.co.uk
 [ Fax ] 087.0705.9089

What are the Limitations for Large Databases?

Review Foundry does have its limitations when it comes to dealing with large sets of data with more than about 5,000 to 10,000 records. There is no problem storing the data. MySQL can handle hundreds of thousands of records with ease. However, if you want to use the option to build static pages you will need a LARGE amount of disk space to do this. In particular, there are a couple of things you can do to really chew up that disk space:

  1. Use Shared Reviews and place each reviewable thing in several different containers so that reviews are reproduced in multiple locations.

  2. Add lots of rating attributes, and elect to build all the possible sortings of things within a container, and reviews for a given thing, based on the average value of a given rating attribute.

If you avoid doing these things you can save yourself a lot of disk space. Of course, if you elect NOT to build static pages, and go 100 percent dynamic, you don't have any disk space problems to deal with at all (beyond the amount of disk space devoted to MySQL data storage). But you won't have lightning fast pre-built pages either, and if you have lots of traffic you could run into problems as CGI processes bog down. If you decide to build static pages but want to remove some of those sortings based on rating attributes check out these configuration variables which you can switch off:

build_orderings_item
build_orderings_member
build_orderings_supplier
build_review_orderings_item
build_review_orderings_member
build_review_orderings_supplier

Switching these off can result in significant savings on disk space. But of course, you'll lose those sorting options. This may or may not be important to you.

How do I set up a MySQL database?

Unless you have set up databases before, this may be the trickiest part of the installation process. However, it is generally not that difficult and often your hosting control panel will do the job for you. Fortunately for us, the VBulletin site contains some useful tutorials on the subject of how to set up a MySQL database for VBulletin use, and you can apply the same information to setup up a database for Review Foundry use. These are their instructions for the major hosting control panels, and a command line install too:

Remember to write down your database hostname, database name, and database username and username password for when it comes time to run the Review Foundry installer script.

How do I change the content of the public navigation bar?

The content of the navigation area on public pages is contained in the template named navigation. You can edit this directly with the Template Editor if needed. For instance, to remove the words "Review Foundry 1.x" go to the Template Editor and use the drop down to select the navigation template. In that template you'll see a line with this code in it, which you can remove:

	Review Foundry [% alias.version %]

How do I change the colors on public pages?

If you need to change colors, start with admin Configure > Skin Style / Colors and see how much you can achieve by editing colors there. Adding any colors directly to a template is generally a bad idea because editing templates is always more time-consuming and error-prone than setting configuration variables. However, if you need to, you can. Also, you may need to rebuild your static pages (if you have already built them) to see any modifications take effect on those pages.

I'm on a Mac. Where is my Category Browser?

The Category, Team, and Yellowpage Browsers operate on the same javascript functions, and some of these are known NOT to work on certain web browsers that run on a Macintosh. Web browsers known not to work at the current time include Safari and IE. Those that have been reported to create the expected Category Browser functionality: Firefox and Netscape. So Firefox is the recommended browser on a Mac. But even if you use a web browser that does not create the Category browser tree you can still interact with the database by using the Database control panel.

Can reviews be automatically approved?

Yes. If you visit the User table from the Database control panel you'll see some columns named item_auto_validation, etc. These can be enabled per user so that a given user's submissions are automatically approved. The current default on these columns is 'No', but if you change the default to 'Yes' ALL users will be able to submit and be automatically approved. To have all members item reviews automatically approved you would reset the default value for the review_auto_approval column to 'Yes'.

Where can I re-edit a review?

Generally you edit a review at the time of approval. But if you need to modify it again you can. First, locate the review ID (it's mentioned on the detail page, upper right corner of the review). Then go to the admin control panel, and select the Database. When it has loaded, select the 'Review' table and the 'Modify' record option. load the review ID in the text box, click on Go, and the review should appear for editing. Note: a reviewer can edit a submitted review whenever they choose simply but attempting to re-review the same item/member/supplier. When they revisit the review submission page, the old review appears for editing. Thus, a reviewer cannot review a thing twice unless they disguise themselves as another user (so they would need to have 2 member accounts).

Can review submissions be IP-restricted?

A more developed version of this question might be: Is it possible to prevent the submission of a second review for a given item from the same IP address? Although not foolproof, this would offer some protection against people flooding the system with bogus reviews about their own product.

The answer here is yes. You can ensure that each submitted review for a given item (or member or supplier) has a unique IP address associated with it. You can enable this feature per item, as there is a column named unique_review_ip which can either be set to 'No' (the default) or 'Yes' to ensure that only a single review can be submitted per IP for that item. If you want to apply this technique to ALL items, you can edit the Item.unique_review_ip column from the Database control panel and reset the default value from 'No' to 'Yes'. Once you have done that, each new item entered into the system will only accept reviews with unique IPs.

How do I ADD a displayed field?

In order to add a new field to a template you first need to ensure that there is a corresponding column in the table responsible for detailing the thing being displayed (be it an Item, a Member, or a Supplier). Adding a column requires more discussion than can be afforded in an FAQ response, so see the relevant section on, for example, Adding New Item Fields.

But once you have added the column you can access it in your templates. Suppose that you added a color column to your Item table and now you want to display the associated item color on item detail pages. If you open up the item_page_top or item_page_more templates in the Template Editor you can search for the string [% item.description %] to see how, for example, the description field is accessed. Likewise, adding the code [% item.color %] to these templates would produce the value for the color. To add conditionals and more elaborate control structures than the simple variable substitution discussed here you'll need to look at the Template-Toolkit documentation. In general though, you'd do something like this for plain variable substitution:

[% IF item.color %]
	color: [% item.color %]
[% END %]

How do I REMOVE a displayed field?

In order to remove, say, the item Description field (or any other display field) from, say, the Details + Ratings page, you would open up these 2 templates: item_page_top and item_page_more, and look for this code:

[% IF item.description %]
	<p><b>[% lang.detail.description %]</b>
	<br>[% item.description %]
[% END %]

Change the [% IF item.description %] to [% IF 0 AND item.description %] so that the conditional is negated. Negating conditionals is recommended over removing the blocks so that you can re-enable the code later if need be. If you are dealing with fields in other templates, the same logic applies--first find the templates responsible for displaying the field, then use the Template Editor to switch off the display code.

Can I dispense with thumbnail images?

Use of thumbnail images is recommended as it helps with the page layout. But if you wish to, for example, display the full-sized image on an item detail page, you can. Here's a way to do it. This will globally affect all item detail pages. Find the 2 templates named item_page_top and item_page_more (the second is basically the same as the first but presents reviews that spill over to successive pages). Use the Template Editor, and locate this line in each template:

	[% IF global.cfg.thumbnail_app != 'none' %] 

Change it to this:

	[% IF 0 AND global.cfg.thumbnail_app != 'none' %] 

This will nullify the conditional and ensure that the thumbnail is ignored. Plus you can easily revert to the previous code if you change your mind.

How can I create a Buy Now Button?

For the sake of discussion, let's say you are interested in placing a "buy now" link with an affiliate id on both the item list page and the item detail page. To do this you would need to edit the find_item_list template (for the list of items) and both the item_page_top and item_page_more templates (for the detail pages). In the first template the item attributes are contained in the [% my_item %] hash, so that [% my_item.id %] would place the item id on the page, while in the other two templates it is the [% item %] hash that you would reference (these hash names are somewhat arbitrary). So you could build a Buy Item url and put the item id into it by doing something like this:

<a href="http://some.url/some/path/to/buy_script.cgi?
	item=[% item.id %]&affiliate=123456">Buy Now</a>

Of course, the script at the external URL may not use the same [% item.id %] field present in Review Foundry, in which case you will need to think a little about how best to achieve the linking you require. For example, you may need to add an sku column to your Item table to record the external product SKU associated with the item and add code for that into your external URL.

In the case where the external URL is likely to be different for every item, then you would be better off putting the URL into the URL field for the item, instead of putting linkage code with a common format into a template.

How Do I Make Review Foundry Appear On My Homepage?

If you are on an Apache web server (which is common for Linux and Unix web hosting platforms) you can try the following. Create a .htaccess file and throw it into your document root (i.e. the top directory for HTML pages). In the file, add this line if you have built static pages and your main page is at /reviews/items/index.html:

DirectoryIndex index.htm index.shtml /reviews/items/index.html

Be sure to add a newline (or carriage return) at the end of your file. This redirection command assumes that you want visitors to see the Item branch of your built RF pages. If you do not intend to build static pages, use this redirection to a dynamic page instead:

DirectoryIndex index.htm index.shtml /cgi-bin/rs/foundry/do/reviews.cgi?module=find_item

If you need to redirect to the Supplier branch, use find_supplier rather than find_item at the end of the URL. If you are on a web server other than Apache you may have to ask your web hosting company what the equivalent procedure is to set up this kind of redirection.

How Do I Add A Business Search To My Homepage?

Assuming that your homepage is entirely independent of Review Foundry (you haven't arranged for one of the top pages of the three Foundry branches to appear by default), then try the following search form, which assumes that you are using the Supplier table to represent your reviewed businesses:

<table>
<form action="http://www.mydomain.com/cgi-bin/rs/foundry/do/reviews.cgi" method="post">
<input type="hidden" name="module" value="search_supplier">
<input type="hidden" name="mode" value="supplier">
<input type="hidden" name="do" value="query">
<tr>	<td>Company Name Search: </td>
	<td><input class="foundryformelement" type="text"
		name="name" size="25" maxlength="100"></td>
	<td nowrap><input class="foundrybuttons" type="submit" value="Go"></td></tr>
</form>
</table>

How Do I Add A Proximity Search To My Homepage?

Again, assuming that your homepage is entirely independent of Review Foundry and that you just need to add the approriate form to your homepage, go to the Foundry Advanced Search page (which can be reached using the drop down on the regular search box displayed in any category, team, or yellowpage). The following assumes that you already have the zipcode or postcode based proximity search operational. If not, study the section in the manual about adding special ZIPCODE, POSTCODE_UK, or POSTCODE_CA columns to the relevant Item, Member, or Supplier table. Then come back here when you are done with all that.

View the HTML source code for the Advanced Search page and look for the search form code. It should look something like the following (for a zipcode proximity search), once all the non proximity fields have been removed:

<table>
<tr><form action="http://www.mydomain.com/cgi-bin/rs/foundry/do/reviews.cgi" method="post">
<td colspan="3"><span class='foundrybaseminus1'>

	<input type="hidden" name="module" value="search_supplier">
	<input type="radio" name="container_range" value="all">
	<input type="hidden" name="zipcode_search" value="1">
	<input type="hidden" name="sort_by" value="zipcode">
	<input type="hidden" name="sort_order" value="desc"><!-- show closest first -->
	<input type="hidden" name="limit_range" value="20"><!-- num results per page -->
	<input type="hidden" name="mode" value="keyword">
	<input type="hidden" name="do" value="query">

	<b>Search for:</b>

	<input class="foundryformelement" type="text"
		name="query_require" value=""
		size="25" maxlength="100">
	 
	and return businesses within:  

	<select class="foundryformelement" name="zipcode_range">
		<option value="5">5 miles
		<option value="10">10 miles
		<option value="15">15 miles
		<option value="20">20 miles
		<option value="25">25 miles
		<option value="30">30 miles
		<option value="35">35 miles
		<option value="40">40 miles
	</select>

	of zipcode

	<input class="foundryformelement" type="text" name="zipcode" size="5" maxlength="5">
	 
	<input class="foundrybuttons" type="submit" value="Go">

	</span></td></form></tr>
</table>

Use this form on your homepage.

How do I place the homepage URL on the List Item page?

If you want to allow your users the option of skipping the detail page for an item (where the reviews are shown) to go straight to the associated homepage for an item, there is a configuration variable which allows you to do that. See browse_items_link_to_homepage on the Configure > Build / Browse page. Set it to 'Yes'. There are also analogous variables controlling the placement of homepage links for members on Team pages, and suppliers on Yellow Pages.

How do I Upgrade?

This is covered in the QUICK_INSTALL file, which you should consult for more information. But here is what I tell people who email me and ask this exact question:

Download the latest version of the software and then look for all the UPGRADE files in the /cgi-bin/rs directory. Also consult the QUICK_INSTALL file for generic upgrade instructions (read that first).

In essence you replace /cgi-bin/rs/_lib and /cgi-bin/rs/foundry/do and keep everything else, then modify templates to get new functionality.

Note that you'll probably have uploaded images (or other file types) that are now stored in /rs/foundry/upload (or the equivalent path on your server) so be sure not to lose /upgrade during the upgrade (the installer won't touch it--just be sure you don't get rid of it).

If there are a number of UPGRADE files that you need to go through (because you have ignored keeping up with upgrades), then I recommend you just go through the relevant upgrade files and only make the TABLE modifications that are called for (any missing tables will be added during the upgrade). Ignore the called for template changes. Then run the installer in upgrade mode. Afterwards, replace all existing templates in your current /cgi-bin/rs/foundry/my/skins/ directory with the new set of templates. Then edit the ones you need to in order to get back the custom look you had before.

That's the approach I take, because I am lazy and I always want to do the least amount of work.

How do I move my Review Foundry installation to another server?

If you decide at some stage that you need to move your Review Foundry installation from one server to another and take all your data with you the procedure requires a little care.

We will assume here that you are copying your RF files from the old server to the new and are not re-installing from scratch (by running the RF installer). So you would be copying across all the CGI-related files (minus the .tar files associated with an install) in /cgi-bin/rs

There are also image files, documentation, and files that have been uploaded and attached to database records. These are all stored in the /rs directory of your document root. You should be sure to copy across everything in there too.

If your Review Foundry database name on the new system needs to be different from what it was on the old system you are going to have to rename some directories associated with file uploads (since these are named after the database in which they are found. For example, if on the old server the Review Foundry database was named 'OldDatabase' you will have a directory like this in the document root:

/rs/foundry/upload/OldDatabase

If you are now forced to use a database name like 'NewDatabase', then you need to adjust that database upload path on the new server, like so:

/rs/foundry/upload/NewDatabase

Let's suppose you have copied these files to the new location. The next thing to consider is the matter of paths in the executable parts of the program. When you first installed Review Foundry several of the executable scripts, such as /foundry/do/reviews.cgi and /foundry/do/admin/admin.cgi have path information to the Review Foundry perl modules written to the top of them. If the new installation will be in the same absolute location as on the old server then all is good. Otherwise you will need to edit those paths in the executable files. Look for all the .cgi and .pl files in these directories:

/foundry/do
/foundry/do/admin,
/foundry/do/editor
/dbops/do/admin

Generally there are 3 lines containing path info at the top of each file. You do NOT need to look anywhere else in the file for other path info to correct. Just those few lines at the very top.

If your database parameters on the new system have changed, compared to the old server, you will need to hand edit the configuration file that contains database connection parameters. You will find this file at

/cgi-bin/rs/foundry/my/defs/database.def

Open this file up in a text editor. Be careful editing it. The content is in the form of a Perl hash, and if you invalidate the structure of the hash it will not be read properly when the program starts up. Just replace, as necessary, the values for the MySQL hostname, database name, username, and password.

Next, you will of course need to copy the RF tables across to the new server. You will need to do a MySQL dump of all Review Foundry tables on your old server and re-import them on the new one. The best bet here is to use the mysqldump command line utility that MySQL provides and either create one large file containing the SQL statements for all tables, or pull tables selectively. Note that if you have some large RF tables it might be a good idea to split those off separately.

Next step. All of the RF configuration information resides in /cgi-bin/foundry/my (including templates) which you have by this stage copied across too. However path info in the configuration file:

/foundry/my/Foundry/ConfigData.pm

will need to be altered to reflect the new environment. So open up that file in a text editor and look for paths and URLs that reflect the old server and not the new one, and change those variables (for example site_document_root_url, but others too).

Finally, there are a couple of directories which store compiled Template Toolkit templates (files with .html extensions) which would have the wrong URLs/paths in them, so while these directories should exist on the new server, they need to be EMPTY (so delete any files in them if you copied those files across): /foundry/perl /foundry/do/admin/templates/compiled That's it. If you followed all the instructions above your RF install is probably functional again. If not, reread the section above in case you missed a step. Then, if you are still having problems, send the relevant error message my way and I'll tell you what the likely culprit would be.

How do I disable Member Photos and Avatars?

The first step is to make sure the member photo and avatar do not display in the Member Profile. So, in member_data.ttml which displays a member profile, look for this string:

[% IF alias.member_image_data.avatar_image %]

Change it to this:

[% IF 0 AND alias.member_image_data.avatar_image %]

Also look for this string:

[% INCLUDE member_image %]

And comment it out, like so:

[%# INCLUDE member_image %]

That should remove any HTML for formatting an avatar or member photo. Then, to stop people adding member avatars and photos to their profile, go into member_add_edit.ttml and look for this section:

[% FOREACH component = alias.form_image_cols_member %]

	[% NEXT UNLESS component.form %]
	[% my_col_name = component.col_name %]

Underneath it you can add this string to cause the loop to skip the member_image and avatar_image columns when presenting the buttons for image uploads:

	[% NEXT IF my_col_name.match('member_image|avatar_image') %]

How can I put up a Contact Form?

If you wish to invoke a page with a contact form on it, use the following URL. The contact_id represents the Member ID of the person who will receive the message. However, you MUST add an entry for that person to the ContactAddress table for this feature to take effect correctly. Only those members entered into that table can receive messages from that contact form. Generally the administrator is Member.id = 1, so the following URL puts up a page that allows visitors to send email to the administrator.

/cgi-bin/rs/foundry/do/reviews.cgi?module=email_webmaster&contact_id=1

Simply add a suitable link somewhere in your pages. Perhaps in the navigation.ttml template so that the link appears on every page.


« Table of Contents   |   Obtain Review Foundry »


Copyright © 2004 Random Mouse Software. All Rights Reserved.