HomeUser ManualPrinter Friendly Version

User Manual

1. Introduction

1.1. Introduction

Welcome to Crowd Vox User manual.

Whatever you're building, we can help...

1.2. Understanding Crowd Vox Concepts

NameDescriptionWhat it looks like
Field Group Custom Fields can be grouped together. These groups define how your data appears on website's front-end, i.e. on a listing page or on a review page, thus field groups can be of two types : Listing or Review. If a field group is defined of 'Listing' type, it'll show up on 'Add Listing' page and 'Listing' page (as shown in example on right), if defined of 'Review' type, it'll show up on 'Add Review' page.
Field group.jpg
 
Custom Field Custom Fields are used to gather information for a listing or a review. Crowd Vox allows the use of custom fields to customize your content for different types of listings and reviews. Crowd Vox supports various types of fields like text boxes, text areas, radio buttons etc.
Fields.png
 
Listing Types Listing Types can be used to create different types of contents your website may have. For example, you could be building a city portal which might have different content types: Hotels, Cinemas, Bars etc. In this case, each entity should be treated as a separate listing type. Listing type can contain multiple rateable fields and multiple field groups.
Listing types.jpg
 
Rateable Fields Rateable Fields show up as star-rating fields on front-end while user is adding a review for listing. These fields determine feedback score for listings present in your database. You can create your custom rateable fields while adding listing types.
Rateable fields.png
 
Categories Categories are visible to front-end users. Each category can contain multiple listings. Categories need to be associated with one listing type as defined above. Crowd Vox supports n-level deep categories, and any number of categories can be created.
Categories.jpg
 

2. Installation & Upgrade

2.1. Installation

Here are the steps to start installation:

Server Requirements

Before proceeding make sure your server supports following configuration:

  • MySQL (version 4 or above)
  • PHP (version 5.6 or above)
  • Ioncube Loaders
  • Apache mod_rewrite Enabled
  • Support for cron jobs
  • PHP GD Library enabled
  • PHP Safe mode off

Obtaining License

You will receive the license automatically via email, right after the purchase. In case you have not, go to our customer portal, login to your account and you will see the licenses link. Once you have the license key, create a file license.txt in directory where you uploaded the script. Paste license key in the file and save it.

In case you're unable to access the URL, please contact our support department.

Installation Process

Please Note: If you are installing this script on a sub-directory like: www.yoursite.com/reviews Please follow the section: Installing under sub-directory, before continuing with these steps.

1. Upload and extract the script to your web host inside 'public_html' or 'www' folder.

2. Change the permissions for the folders as stated below :

  • /app/config (folder only) => 0777 (at the time of installation) => 0755 (after installation)
  • /app/locale => 0777 => recursive
  • /app/tmp => 0777 => recursive
  • /app/views/pages => 0777 => recursive
  • /app/webroot/uploads => 0777 => recursive
  • /cake/console/cake (file only) => 0755 (if you are setting up cron jobs)

3. Create a MySQL database to be used to hold the application's data from your website's control panel. The database collation encoding should be 'utf8_general_ci'. Grant the privileges to a db user to perform all database related operations, you may like to create a new user for the purpose.

4. Try accessing your domain from a browser, and you will be redirected to installation process which will ask you to provide database details and other configurations.

Once settings are submitted, installer will import necessary data in your database and create necessary configuration files.

If you notice any 500 or 404 error, make sure you go through .htaccess gotchas. Many hosts have different configurations for mod_rewrite on their server, so its recommended to refer this article.

5. You can now access the newly installed application on your domain. Homepage: www.yoursite.com and Admin Panel: www.yoursite.com/admin

6. If you intend to use newsletters, paid listings and dynamic pages; you will also need to create a cronjob with the following command and set it up to run every 10 mins:

<your_file_path>/cake/console/cake -app <your_file_path>/app master

Replace <your_file_path> with the absolute path where the script files reside on the hosting server.

Change the permissions to 0755 for /cake/console/cake file (please note, permission for cake file is to be set, not for cake.bat or cake.php)


Post-Installation

Go to /app/config/ folder, change the name of core.php to the one you may like, and then rename core.production.php file to core.php

Change the permissions for the /app/config folder back to 0755

Installing under sub-directory

You need to follow this section only if you are installing this script under any sub-directory. For eg: www.yoursite.com/reviews

Here are some changes, that you need to do:

1. Edit .htaccess of main folder, and locate following line:

RewriteBase /

Comment this line, by adding # in front of it, so changed line will look like:

#RewriteBase /

2. Similarly edit .htaccess of /app/webroot folder, and locate the line:

RewriteBase /app/webroot

And change it to:

#RewriteBase /app/webroot

 

2.2. Upgrading from an Older Version

Upgrading from Older Versions

This tool has been added in version 1.0.11, which means you can update 1.0.11 to 1.1.1, but not from 1.0.10. If you have an older version, you should update manually. You can also contact us for any assistance on updating, if needed.

Be familiar with the updates(Release Notes) before upgrading, and always backup your existing database and files before proceeding to install any updates. To start the migration process:

1. Download new package from Downloads tab while accessing your account.

2. Login to your server and go to the Crowd Vox installation directory, then, Rename your current app and cake folder to app_old and cake_old. Also rename your .htaccess to .htaccess_old

3. Backup your existing database

4. Upload the new package to installation directory.

5. Copy config.php file from app_old/config folder to app/config folder.

6. Copy app_old/webroot/uploads folder to app/webroot folder, overwriting new uploads folder.

7. Now since you have uploaded a newer version of Crowd Vox on your server and also have copied the files from older instance. Go to /app/ folder and change permissions of following directories to 777:

   /app/locale => 0777 => recursive
   /app/tmp => 0777 => recursive
   /app/views/pages => 0777 => recursive
   /app/webroot/uploads => 0777 => recursive
   /cake/console/cake (file only) => 0777 (if you are setting up cron jobs)

8. Upload the file migrate.php that is attached with this document to /app/webroot folder

9. Once uploaded, use your browser to access http://yourwebsite.com/migrate.php

10. You would get the results when the process finishes

11. Please make a note of response, and in case of error please report the same to us at support@crowdvox.com 

12. Now delete all files inside app/tmp/cache folder and app/tmp/models folder. After this access your homepage http://yourwebsite.com/ and you should see the updated version.

13. CHMOD 755 cake/console/cake file(please note, change permission of cake file, not cake.bat or cake.php)

14. Login to admin panel and clear cache.

15. If you have performed any customizations, they will have to be done on new version again from the app_old folder we copied in previous step. Its recommended to keep a list of all such modifications while customizing, to implement upgrades easily.

3. Setup

3.1. Setup CrowdVox

As a Crowdvox administrator, you can configure the way the product / service listings are created or the reviews for those listings are posted. 

Definitions

Let us start with definitions

Listings - An enumeration of a set of items in the form of a list.

Listings are created to portray a product or service which you want to be made available for others to use and post their reviews on them, and see other's reviews. Listings can be anything like hotels, restaurants, shops, spas, softwares, electronics, boats, cars, humans basically anything you want to review.

Reviews - A review is an evaluation of a listing.

Review by the users of products / services show their experience with it, for this users are provided with some rateable criteria, and an option to comment on it.

Fields - A piece of information required to be gathered to hold a property of a listing or a review.

Crowdvox provides a number of fields that are used at the time of creating listings or adding reviews.

For listings the basic set of fields include following :

  • Category - Indicates that to which set the listing belongs
  • Title
  • Description
  • Tags - Kind of metadata that helps describe an item and allows it to be found again by browsing or searching
  • Image(s)

However, if you want some additional sets of information to be included for listings as well as the reviews, that are specific to a product, product type, service, or service type, without having to recode the application, then you need to configure it.

The additional sets of information, clubbing together the individual head can be treated as a field group, and the individual head covered under each field group is a custom field or simply a field. While defining field group you can mainly set whether the group will be used for a listing or a review.

These field groups form the basis for creation of a listing type. Listing type serves as a bond between the field groups and rateable fields, and defines how a listing and its review would behave. Rateable fields as the name suggests help to rate the product/service, different rateable fields carry different weightages too.

Once listing types are defined, you can create categories of products/services for which the listings will be created. The categories can be hierarchical in structure, i.e. a category can have sub categories, and those sub categories can again have their own sub categories.

To understand these, let us take an example of a TV Store first:

In order to create a listing for a TV, you may want following fields to hold its information

 

  • Display
    • Screen size 
    • Type (LED/LCD/CRT)  
  • Picture
    • Resolution 
    • PiP  
  • Audio
    • Audio output 
    • Stereo playback  
  • Connectivity
    • HDMI
    • USB

Review fields in the case of a TV can be:

  • Comments
  • Do you recommend the product (Y/N)

And a reviewer to be able to rate them, can have the rateable fields for TV like:

  • Picture Quality
  • Sound Quality
  • Reception Quality
  • Value for money

From the above example you can guess that Display, and Picture etc are field groups for listings; and Comments and recommendable are field groups available for user at the time of reviewing product, and reviewer can rate the TV on the basis of its quality and value for money.


Moving On ...

Having discussed the pieces of information we want to create TV listings, let us start with creating the basis for all these.

In order to create listings for TVs, the steps would be

  • Define field groups
  • Define fields for individual field group
  • Define listing types
  • Define categories, and finally
  • Define listings

 

Defining Fields Groups

AddFieldGroupMarked.png

1. A unique Name that will be used to identify this group, and clarifies the purpose of its creation

2. Label for the group that should be shown with fields under it

3. Opt whether you want the label for the group to be displayed when fields under it are rendered

4. Using the Type field, you can set whether the field group is to be used for listing or review.


FieldGroupIndex.png

Defining Custom Fields

AddCustomFieldMarked.png

1. A unique Name that will be used to identify this field, and clarifies the purpose of its creation

2. Label for the field

3. Type of field, details on different types of fields are given below

4. Whether the field value would be Required to enter or not at the time of entering data for listing or review

5. Default value - the value to be shown by default at the time of creation of listing or review

6. Tooltip - a small message for the user entering data

7. Decide whether once entered at the time of adding a listing or a review, you would allow user to edit the data value for the field

8. Will this field and its value be shown on admin index?

9. Will this field be available as a advanced search criteria?


Available field types

Text Simple text entry box
Multiple Line Text A text box to hold multiple lines
Number Text box with number validation
Checkbox A single check box
Checkboxes Group A set of check boxes
Radio Buttons For set of options to select from
Option box A drop down to select option from
Multiple Choice Option Box To select more than one options from a list
Date Picker  
Email To automatically validate the email entered
HTML Editor A text entry box featured with WYSIWYG formatting tools
URL / Website Text box with URL validation
Country A drop down to select country name
Video Feature upload video

 

Adding A Review Field

Here is a custom field that will be used to ask the user, whether he would recommend the product to others, please note that at the time of defining its field group the type should be set to

Review.

RecommendationCustomFieldMarked.png

You can add options and arrange (sort by dragging) them when you are adding the fields of type: 

  • Checkbox, 
  • Checkboxes Group, 
  • Multiple Choice Option Box, 
  • Option Box, 
  • Radio Button
These type of fields also form basis for dynamic pages

Defining a Listing Type

AddNewListingTypeMarked.png


 

1. A unique Name that will be used to identify this listing type, and clarifies the purpose of its creation

Rateable fields

2. A unique Name that will be used to identify this rateable field, and clarifies the purpose of its creation

3. Whether the rateable field value would be Required to enter or not at the time of reviewing

4. Weightage that will be given to the value in this field at the time of rating the product / service

5. Tooltip - a small message for the user entering data

6. You can decide, which field groups will be used for this listing type.

7. You can select field groups of listing type, or

8. Of review type

Defining weight / priority of Rateable fields

Weightage can be used to specify weightage of a particular parameter. This will have effect on overall rating calculation.

For example - A hotel may have 2 rateable fields 'service' and 'ambiance', we can define 'service' to have double weightage than 'ambiance' by writing '2' in weightage field of service and '1' next to ambiance.

So, if we get 2 hotel listings with ratings:

Hotel 1: Service: 4 Ambience: 3

Hotel 2: Service: 3 Ambience: 4

Then, Hotel 1 would score better.

Defining Categories

AddCategoryMarked.png

1. Since categories can have hierarchical structure, you have an option to select the Parent Category for the category been created

2. A unique Name that will be used to identify this category, and clarifies the purpose of its creation

3. You can upload an Icon for the category that will be used with its name

4. Listing Type drop down here relates the category to a listing type, so that whenever a listing is created under this category, then the sets of fields can be populated on the basis of field groups associated with selected listing type.

Defining Listings

AddListingMarked.png

1. You start your listing creation by selecting one or more Categories (whether you would be able to select only one category or more, depends on the backed configuration) without selecting category(ies), you will not get a form to add listing's information, as the selection of category only decides which fields are to be shown for the new listing, depending upon related listing type, and ultimately the field groups of type listing.

All the fields that are part of field groups that were selected for the listing type Television, which in turn is associated with the category LED.

2. You can see the Picture is actually a field group that is of type listing and was selected at the time of creating listing type Television

3. Same is with display field group Listing's View

Adding a Review

AddNewReviewMarked.png

1. Would you like to recommend this product is a custom field under Recommendation field group of type Review

2. Quality is a rateable field with weightage, hence the stars, and

3. So is the Value for money field


Till now we have created a few listings that belong to different categories, like LCD, LED, or CRT etc., but they all were having a common listing type i.e. TV.

Taking our example further, if we also want to include PCs in our store, so we may require a new listing type, say PC, which in contrast to our previous listing type TV will have features like:

  • Processor
    • Make 
    • Cores 
    • Speed 
  • Memory
    • Cache 
    • Primary Memory 
    • Secondary Storage 
  • OS
    • Family 
    • Version 

and so on....


And we may have categories for PCs like:

  • Desktops
  • Laptops
  • Tablets 

3.2. Configurations

Backend Settings

These are some configurations for backend operations.

You will also be prompted to enter this information at the time of installation.

  • Admin User - This is your administrator username which you will use to signin to backend of the website.
  • Admin Password - This is your administrator password which you will use to signin to backend of the website.
  • Site Name - Whatever site name you specify here, it will be visible in outgoing emails/newsletters.
  • Administrator's Email - All administrative alerts are sent here, for example: bad content report or new user content added email.
  • Website's Email - Any outgoing email from your website will be generated from this email. Set as noreply@sitename.com or similar.
  • Website URL - The URL where you're installing this application.
  • Website Time Zone - Used for matching application time with your desired timezone.
  • Site Status - This can be used when you want to turn off your website for performing maintenance.
  • Offline Text - This text/HTML block will be visible on website on all pages when your website is turned off using configuration above.

General Configuration

These are general configurations which can be used to alter various functions on website globally.

  • Disable HTML editor - Checking this box will disable HTML editor on whole website.
  • Disable editor reviews - Checking this box will disable 'Editorial reviews' on whole website.
  • Enable tags - Checking this box will add an input field for tags on listing submission form for users to add tags for that listing.
  • Enable breadcrumbs - Checking this box will display breadcrumb navigation to users of whole website.
  • Allow comments on gallery - Checking this box will allow registered users to post their comments of gallery pics.
  • Allow guest comments on gallery - Checking this box will allow guest users to post comments on gallery pics.
  • Enable captcha on guest comments form - Checking this box will add a captcha on comment add form of guest users.
  • Moderate gallery comments - Checking this box will submit all posted comments to admin for approval first, instead of publishing the comments directly on website.
  • Send an activation email to user on registration - Checking this box will force users to verify their email address before becoming a member with website.
  • Use default logo - Checking this box will use default logo of the theme you are using instead of the logo uploaded by you from admin panel.
  • Upload Custom logo - You can upload logo for your website from here.
  • Upload favicon - You can upload your custom favicon for your website here. (32x32 preferred).
  • Enable Captcha on registration - Checking this box will add a captcha on registration form.
  • Analytics Code - You can paste your google analytics code here
  • Show images in lightbox - If enabled, the images posted with listings or reviews will be shown in a lightbox allowing you to navigate through all images at once.
  • FFMPEG file path - FFMPEG file path must be added if you are using video field functionality or else your videos upload functionality will not work. Contact your hosting provider to know your FFMPEG path.

Listing Settings

These are listing configurations which can be used to alter various functions related to listings on website globally.

  • Allow guest to upload photos on listings - Checking this box will allow guest users to upload pic for listings.
  • Disable listing RSS feed - Checking this box will disable RSS for new listings. RSS icon is displayed in title bar of browser on home * page for latest listings.
  • Enable Moderation - Checking this box will send all listings for admin approval instead of publishing them instantly.
  • Notify me when new listing is added - Checking this box will send an email to admin whenever a new listing is added.
  • Default View - Table view will display listings in a tabular format on website and Blog view will display listings in a linear format.

Blog View

Blog view.png


Table View

Table view.png

  • Listings per page limit - You can set the number of listings to be displayed per page for pages like- category page, All listings page, User listings page.
  • Only Editors can add listings - Checking this box will restrict normal registered users from adding listing.
  • Allow poster to edit his listing - Checking this box will allow users to edit the listing added by them.
  • Moderate edited listing - Checking this box will send all edited listing for admin approval before publishing them to website.
  • Enable comparison for listings - Checking this box will show a compare check box for listings on category pages.
  • Enable rich snippets for listings - Checking this box will enable rich snippets. You can read more about it here Google Rich Snippets
  • Type of listings for rich snippet - Select the format for your rich snippets from the dropdown. We have provided following options to select-

a) Creative works - A review of an item - for example, a restaurant, movie, or store.

b) Organization - An organization such as a school, NGO, corporation, club, etc.

c) Person - A person (alive, dead, undead, or fictional).

d) Place - Entities that have a somewhat fixed, physical extension.

e) Product - A product is anything that is made available for sale—for example, a pair of shoes, a concert ticket, or a car.

  • Enable claim listings functionality - Enabling this feature, will display a link on listings pages, using which any registered user can send a request to admin to make him owner of that listing. By becoming an owner of a listing a user gets privilege to edit the listing information and he can also upgrade it to paid listing if your website have paid plans.
  • Allow Users to delete images uploaded by them - This will allow users to delete images uploaded by them. Link to delete image is displayed on gallery page.
  • Truncate description on listing view page after ? words. - Using this feature you can hide some part of your listing description from listing view page. For example if you will select 500 words and your listing description is more than 500 words, then users will see a link to "See More" after 500 words.
  • Enable adding review along with listing - If enabled and if review settings allow the listing poster to review his own listing, then the listing poster gets an option to add a review at the time of adding listing.
  • Show Facebook like button on listing pages - This would work only if Facebook app settings are provided
  • Allow multiple categories in listing - If selected the listing poster or the person who edits the listing will get option of selecting more than one category for the listing. 

Review Settings

These are review configurations which can be used to alter various functions related to review on website.

  • Allow guest to review listings - Checking this box will allow guest visitors to write reviews for listings.
  • Enable captcha on guest review form - Checking this box will add a captcha on review add form for guest visitors.
  • Allow comments on reviews - Checking this box will allow registered users to post their comments on reviews.
  • Allow guest to write comments on reviews - Checking this box will allow guest visitors to post their comments on reviews.
  • Enable captcha on guest review comment form - Checking this box will add a captcha on comment add form for guest visitors.
  • Use moderation on comments - Checking this box will send all review comments for admin approval instead of publishing them instantly.
  • Stop users from reviewing their own listings - Checking this won't allow users to post a review on listing added by themselves.
  • Allow users to modify their reviews - Checking this box will allow users to edit the review added by them.
  • Don't allow multiple reviews from one IP address on a listing - Checking this box will restrict multiple reviews on a listing from same IP address.
  • Moderate new editor reviews - Checking this box will send reviews added by editors for admin approval instead of publishing them instantly.
  • Moderate edited editor reviews - Checking this box will send reviews edited by editors for admin approval instead of publishing them instantly.
  • Moderate new user reviews - Checking this box will send reviews added by users for admin approval instead of publishing them instantly.
  • Moderate edited user reviews - Checking this box will send reviews edited by users for admin approval instead of publishing them instantly.
  • Reviews per page limit - You can set the number of reviews to be displayed per page for pages like- All reviews page, User reviews page.
  • Notify me when new review is added - Checking this box will send an email to admin whenever a new review is added.
  • Default View - Table view will display review in a tabular format on website and Blog view will display review in a linear format.
  • Users can upload images with reviews - Checking this box will display image upload form on add review page and reviewers will be able to upload images for listing while adding a review.

Newsletter Settings

  • Send verification email - Checking this forces users to verify their email address before letting them subscribe to newsletter..

3.3. Backend Settings

These are some configurations for backend operations.

You will also be prompted to enter this information at the time of installation.

  • Admin User - This is your administrator username which you will use to signin to backend of the website.
  • Admin Password - This is your administrator password which you will use to signin to backend of the website.
  • Site Name - Whatever site name you specify here, it will be visible in outgoing emails/newsletters.
  • Administrator's Email - All administrative alerts are sent here, for example: bad content report or new user content added email.
  • Website's Email - Any outgoing email from your website will be generated from this email. Set as noreply@sitename.com or similar.
  • Website URL - The URL where you're installing this application.
  • Website Time Zone - Used for matching application time with your desired timezone.
  • Site Status - This can be used when you want to turn off your website for performing maintenance.
  • Offline Text - This text/HTML block will be visible on website on all pages when your website is turned off using configuration above.

3.4. Global Meta Information

This option enables you to modify the meta data of your web pages. Meta information is important to your website because it helps search engines to know what your web page is all about.

Some of the Meta Information that can be customized using the Global Meta Information Option

To access this option you can go to Others menu.

  1. Login to the backend application. Select "Others"  > "Global Meta Information Option"
  • Page Title
    • Defines a title to be shown in the browser toolbar
    • Provides a title for the web page when it is added to bookmarks or favorites
    • Displays a title for the web page in search-engine results
  • Meta Tags
    • Provides metadata about the website. Metadata will not be displayed on the page, but will be machine parsable.
  • Meta Description
    • Allows you to influence the description of your page in the web crawlers that support your meta tag

Meta information.png


Full meta information.png


You can also edit Meta Information for each listing. To do so-

  1. Login to the backend application. Select "Manage Content" > "Listings"
  2. Click edit link for the listing for which you want to edit Meta information.
  3. Click "Meta Information" tab


Listing.png

4. Features

4.1. Deals

Run your very own groupon-style deal engine alongside your website. You can publish & sell deals with automatic voucher/coupon generation for end users. Apart from that, you can make money by selling business owners membership to publish deals in your directory or offer it for free.

To use the deals functionality you must have either "Pro" or "Enterprise" license.

Deals Settings

The deals functionality can be enabled from admin panel, by checking "Enable Deals" on "Deals Settings" page under "Settings" menu.

Being on this page you also need to provide the payment gateway related settings.

  • Paypal Email - This should be the email of Paypal account where amount can be received
  • Enable Sandbox - Enable it only for testing purposes, because when sandbox is enabled, only mock transactions can be performed.
  • Payment Currency - The currency you would be using for deals
  • Currency symbol - Symbol for the currency used
  • Tax(%) - this would be applied on Orders received for deals

After the deals are enabled and related setting have been saved visitors will start getting a new navigation menu labelled "Deals" on the website; in the next step you need to make sure that your Crowd Vox instance has listing claims enabled. This is required because the deals can only be added by the business owner.

Enable Listing Claims

A business (listing) can only be claimed if claim listing functionality is enabled. The relevant setting is available under "Listing Settings" option under "Settings" menu on admin panel.

 

How to claim a business?

If claim listing option is enabled, a logged in users will see an option to claim the business while viewing the business details. Please note that the option will only be available for businesses for whom either no claim has been presented or none of the presented claims has been approved by the admin.

 

Clicking on "Claim it now", will take the user to "Claim" form.

 

When user fills up his details and warrants to be an authorized representative of the business, then after clicking  "Claim" his claim is forwarded to the site administrator for approval. The site administrator gets a notification by email about the pending approval. Here is the Listing Claim as shown on admin panel under "Manage Content" menu.

 

 

Add a Deal

Once the user's claim is approved by the admin, he will start getting the option that are available for listing owners, one of them is to "Add Deal".

 

 

Opting to add a new deal for a listing, user gets redirected to "Add Deal" page. 

 

Here user has to provide information under following heads:

  • Title - An attractive title to grab the site visitors attention
  • Category - The category under which the deal is to be posted
  • Regular Price - The price at which the product / service is available during the days when deal is not there
  • Discount Type - Options to choose from are Flat / Percentage
  • Discount - The value of discount (amount or percentage depending on the discount type selected)
  • Total Deals - The maximum number of deals that can be bought - this can be left empty or 0 can be entered if no limit is to be applied
  • Publish on Date and Publish on Time - The date on which the deal would be published on the site, a background process would take care of this so that the deal gets published on the targeted date and time
  • Will Expire on - The date after which the deal should no longer be active / available for purchase
  • Highlights, Fine Print and Validity - The heads under which the deal can be described to the ones who are interested in it.
  • Terms and Conditions - The governing terms and conditions
  • Image - Deal's image, more than one image can also be uploaded.
 

Published Deals

As mentioned earlier a background task takes care of the publishing of the deals, once a deal is published, it is shown as active and available to the website visitors on "Deals" page.

You can see that there is also an option to filter the deals on the basis of categories they have been posted in.

The deals being linked to the businesses also are shown up when someone views the business (listing) details.

Viewing a Deal

When the site visitor opts to purchase the deal by clicking on "Buy" option, he is redirected to a page that lets him place his order. One can change the quantity he wants to purchase this again would then be validate against the maximum number of deals that the deal creator has set.

 

This finally would be followed by the transaction handling through the payment gateway. 

A user can see the details of the deals he has bought by visiting his profile on website and following "My Purchased Deals" link. 

The link under Deal Code(s) takes the user to a window that shows deal's coupon and its details, user can print the coupon from here. 

4.2. Events

Publish upcoming events for listings, have business owners ability to add events related to their businesses. With paid listing feature, make money by selling business owners membership to publish events in your directory or offer it for free.

To use the events functionality you must have either "Pro" or "Enterprise" license.

Events Settings

The events functionality can be enabled from admin panel, by checking "Enable Events Functionality" on "Events Settings" page under "Settings" menu.

On this page you can also configure the following: 

  • Enable Moderation - If enabled you will get an option to verify the posted event before it is published onto your website
  • Only listing owner can post event(s) - Enabling this will not allow any user other than the owner of the business (listing) to post an event for the business
  • Allow poster to edit his/her event(s) - Allows event poster to edit the posted event
  • Allow poster to delete his/her event(s) - Allows event poster to delete the posted event
  • Flay description while exporting - If a number is provided then at the time of exporting the event, its description will be truncated to have these many characters
After the events are enabled and related setting have been saved, the visitors will start getting a new navigation menu labelled "Events" on the website.

Events Categories

 
Before you move onto adding events, there should be events category defined in your application.

Events categories can be managed from admin panel, by using "Event Categories" option under "Manage Contents" menu. A few sample event categories are shown here.

 


Adding an Event

If events functionality is enabled and event categories are defined, a user who is registered on your website can start posting an event for a listed business, unless the configuration to allow only listing owners to post events exists.

 

Here user has to provide information under following heads:

 

  • Listing - The business for which the event is being posted, if the setting for event to be posted only by owners is enabled, then the poster will only get the names of listings that he owns, otherwise all published listings will be available. This is an autocomplete suggestion box, i.e. when you start typing you will notice that the application would suggest the names of the businesses that have the matching title.
  • Category - Here the event category needs to be selected
  • Title - An attractive title to grab the site visitors attention
  • When - The date and time when the event would start
  • Up-to - The date and time when event would end
  • What/Why - A description for the event
  • How (Event Site) - The URL for the site from where more details can be taken
  • How (Ticket Site) - The URL for the site where one can procure the tickets from
  • Price - Whether the event is free or is there any price, also if its not free then one has to enter the price range
  • Image - Event's image, more than one image can also be uploaded.
If moderation of event is enabled under the settings then administrator will have to publish the event.
 

Published Events

 
Once an event is published, it is shown to the website visitors on "Events" page.
 
 

 

 

The events list can be filtered on the criteria like:

  • Time - This includes - All, Today, Tomorrow and so on
  • Category - All event categories are available here
The list can also be sorted on the given criteria

 

Viewing an Event

An event is shown with the following additional details and options:

  • Add to Google Calendar
  • Add to Outlook Calendar
  • List of persons interested
  • Venue - the address mentioned for the business
  • Map - that corresponds to the venue
  • Discuss it - visitors can also leave their comments
 

 

Showing Interest in Event

One can also show his interest for an event, by opting:

  • I'm In, or
  • Sounds Cool

When the logged in user has shown interest in the event then the event view changes to reflect the same.

4.3. Dynamic Pages

Dynamic Pages

Dynamic pages allow you to create pages per paramater/field value.

To explain it, lets consider you have a custom field of dropdown type in your listing called "city" or "reigon", and now you want to create a page which will show listings/reviews specific to that city or reigon only, that's where the concept of Dynamic pages comes in picture. If you have 10 different options for "city" in dropdown, then 10 different city pages will be auto-generated. Its a must-have feature if you are building a website focusing on a specific area.

Note: Its important to remember that dynamic pages are created only on fields that have options to choose from, such field types include dropdowns, radio buttons, multiple select multiple checkbox types.

Creating a dynamic page will also alter how some module shows contents, for example you might have a category list on pages which shows up like this:

Module on all pages.jpg

On the dynamic page it will show the information limited to that selected city only (see both images show different count of listings in a category):

Module on dynamic page.jpg

Pre-requisites

To have the dynamic pages work, you need to have the fields of types that provide options to select from like - option box, multiple choice option box

The image below shows one such field "state" that is created with the type Option box and has names of states as options.

 

Once you have the custom field setup to collect the data that would eventually become the basis for filtering the information, then you can continue to relate field groups with listing types and categories.

To have more information on setting up custom fields and related entities, please refer Setup CrowdVox

Adding Dynamic Pages

Navigate to "Others" > "Dynamic Pages", and introduce a new dynamic page.

The information heads for which you need to enter are : 

  • Name : This would be used internally to identify the dynamic page, especially at the time of creation of dynamic page links module
  • Field : A selection box to select the field from, please note this scans all the custom fields created in the system of type that are eligible for the purpose
  • Prefix : This is primarily used in the URLs, for example "state"
  • Title : As it would be shown on browser, use :title to put active page name in title
  • Page Title : As it would be shown on page, use :title to put active page name in title

Dynamic page links

Next step after introducing the dynamic page you need to create module that will be responsible for showing the dynamic page links on selected section and pages of the website.

On module definition screen you may decide the location (section) and placement (visibility), under parameters tab you need to do the following:

  • Page Name : Select dynamic page name
  • Limit : Maximum number of links to be shown, others will be available by clicking more
  • Visible Link Keys : The keys (basically the position of option defined for custom field starting from 1)
  • Show present active page - If selected you would also see current dynamic page's link on the module

Populating dynamic pages with content

Once dynamic page is created from backend, all the content inside modules will be filtered as per the selected dynamic page.

Whatever page you create, will also be added in "Visibility" options of Module add/edit page.

Do not forget to setup cronjob to see the effect of dynamic pages

4.4. Facebook Connect

Facebook connect saves hassle for your website visitors, as they can authenticate/register themselves using their Facebook account.

Great tool to increase registration rate.

Setting up Facebook connect

You will need to use Facebook credentials in order to use this. After logging on to Facebook visit https://developers.facebook.com , here you will see an option to "Create a New App" under Apps menu.

A popup then will be shown to fill up the new app's details. You will be required to enter value for "Display Name", and have to select an appropriate "Category" from the list. Optionally you can also provide a "Namespace".

As soon as you submit the form you will then be redirected to your app's dashboard. On dashboard you will be shown App ID and App Secret (press "Show" button if required).

Keep a note of these, and use them on the Crowd Vox admin panel's Facebook configuration page available by accessing "Settings" > "Facebook". 

Once you enable this module, you should see a Facebook connect button on User Login Box Module like this:

Facebook connect.jpg


Connecting custom fields to Facebook

There's another great feature we offer which lets you connect your custom fields for users to Facebook fields. Lets say I have a field 'avatar' (image type) for users, I can simply connect it to use Facebook field 'picture' so system will fetch registering user's 'picture' automatically from Facebook, and this field will go on 'avatar'. Similarly, you can connect various other fields which Facebook offers.

This can be configured using > Settings > Facebook Fields menu option

Facebook config.jpg

4.5. Geo Map Integration

To use the feature of Geo maps on your website and mobile apps, you need to generate API keys and use them on your website's admin panel. 

To generate a new API Key, please go to the following URL and follow the steps mentioned on the page - https://developers.google.com/maps/documentation/javascript/get-api-key#get-an-api-key 

You primarily need Google map API browser key to use maps for your website. If you want to use Google maps on mobile apps then you need to get Google maps API key generated for iOS and Android respectively. 

Make sure that you have enabled the APIs for iOS, Android and most importantly for JavaScript in Google API console, their names respectively are : 

  • Google maps SDK for iOS, 
  • Google maps Android API, and 
  • Google maps JavaScript API 

Once all the required keys have been generated you can paste them on maps config page on your website's admin panel by navigating to "Settings" > "Map". For now you can leave the "Google Map API Server Key" blank, as this is kept for future enhancements. 

The next step is to provide the settings by mapping the defined custom fields (that are there to hold the location related data) with the Geo map fields. 

You start by providing the country / region specific info this is same as country code. Address 1, Address 2, City, State, Postal Code and Country fields are straight forward. For Search field, you should select a field that you want the location search to be based on. Radius metric is related to the unit used to calculate the distance. 

Show distance on search can be selected, Show map while adding listing and allow drag drop marker to change location would let you see exact location on the map on the basis of entered location info, and you also have an option to drag the pointer shown to a desired place should you need to. 

Please do not select the same custom field for more than one map config field as it may lead to incorrect map generation and / or issues related to the way addresses are displayed on website / mobile apps.

 

Map Module

This module allows you to place Geo-maps with various listings as pointers, anywhere on the site.

1. You can set your own criteria for the listings to be shown on the map As an example you can see how we have displayed Popular 5 restaurants on home page on our demo - http://yelpclone.demos.crowdvox.com/ To create this module we created a content scope for popular restaurants first and then selected the "popular restaurant" as our filter for map module.

2. You can set the map module to show listings on a map, that are being listed on a page, automatically As an example you can see the restaurant category page of our yelp demo- http://yelpclone.demos.crowdvox.com/listings/index/category/category:Restaurants/ To create this module, in parameters tab of map module select content type- autodetect and in visibility tab select category page. You can similarly show map on search result pages too.

 

Please do not put more than one map on a single page as that would result in an error. 

 

Map Pointers

Crowd Vox also allows you to have custom pointers on your map.

Here's how it works:

1. Upload all your icons in directory:

/app/webroot/geo_images

2. Goto Backend > Settings > Map Icons

3. Select an icon, and check categories to assign that icon, and press submit.

4.6. Theme Customizer

Attractive themes have always been a prominent feature offered by Crowd Vox. With version 3.0 you can now easily customize the frontend theme to suit your needs on fly – from the frontend itself. 

You're definitely going to save much of the time of developing a custom design, using this tool.You can customize colors, layout types, header design, backgrounds, fonts etc. with the click of a button. No CSS/HTML editing

To start customizing navigate to "Appearance" > "Themes" 

 

On Themes page click on Customize button.

Clicking in customize button will take you to frontend with customizer button shown 

Click on cutomizer button will show a panel with required tools to customize the theme. 

The set of tools on panel are divided in sections according to their targeted properties:

  • Color Skins
  • Backgroud Patterns
  • Background Color
  • Body Font Color
  • Layout
    • Full Width
    • Boxed
  • Header Style
    • Simple Header
    • Image Header
    • Map Header

You also get an option to reset the styles as they were before the customizer was launched. 

Please note that you need to "Save" the changes in order to retain them. Otherwise "Finish Editing" button can be used to close the customizer and revert to the design to the state before customizer was started. 

Here is a quick demo of how theme customizer works. 

4.7. Managing Ads

Managing Ads

There are few things to learn before we get started:

1. Zone - This is the area on a your website where the ads are placed. You can define any number of zones. You can have many ads in a zone which will randomize. Zones can be defined in Manage Content > Ads > Edit Zones

2. Ad - An ad can be some HTML code, image or flash snippet. It needs to be created from Manage Content > Ads > Create New Ad. An ad may belong to one zone.

Managing Zones

Options to create or edit zones is available under "Ads" on "Manage Content" menu.
 
When you click on "Edit Zones" button you will be taken to a page where you will see a text entry box with label "Zone" and it will list up the preexisting zones (each line holds the name of a zone), you may :  
  • Add a new zone by entering its name in a new line 
  • Change the name of an existing zone by editing the text in the related line 
  • Remove a zone by deleting a line 

Displaying Ads on Front-end

Normally, you can use any of the module sections to insert your ads.

For creating a custom zone in your template:

1. You can place it inside any template file (.ctp) using this code:

<php
App::import('Helper','Ads.Ads');
$adsHelper = new AdsHelper;
echo $adsHelper->show('your_zone_name');
?>

This requires some technical know-how of PHP though.

2. Save 'your_zone_name' from Manage Content > Ads > Edit Zones.

Note: You can also display ads of a specified zone on any page using module visibility parameters.

Ads Module

Once ad zones are in place and you have created the ads, to show them up on frontend the final step is using those zones in an Ad module. The most important part here would be the selection of the zone on the parameters tab. 

After the module is published, you should be able to see the ads

4.8. SEO

This option enables you to modify the meta data of your web pages. Meta information is important to your website because it helps search engines know what your web page is all about.

Some of the Meta Information that can be customized using the Global Meta Information Option

To access this page:

1. Login to your backend. Go to Admin Panel.

2. Click Others on left menu.

3. Then click "Global Meta Information" link. You will see list of all pages available:

Full meta information.png

4. Click on "Add meta information" link for any specific page, and you will see a popup like this:

Meta information.png

Setup Meta tags for an individual listing

You can also edit Meta Information for each listing. To do so:

  1. Login to your backend. Go to Admin Panel.
  2. Click Manage Content
  3. Click on Listings
  4. Click 'Edit' link next to the listing for which you want to edit Meta tags.
  5. Click "Meta Information" tab

Listing.png

4.9. Simple Machines Forum Integration

Simple Machines Forum Integration

This feature allows you to integrate registration and login with your SMF installation. With this, all the users registering on Crowd Vox database will automatically get registered on your forum database. Similarly, when they log into the Crowd Vox they will automatically get logged in to forum. Please note: Users who will login and register on Crowd Vox will automatically get logged in to SMF but it won't work vice versa. So, any user who registers at SMF or is logged in to SMF won't become a user of CrowdVox. Therefore we strongly recommend you to remove all "Registration" and "Login" links from your SMF installation.

How to use the feature

Downloading and Installing SMF

1. Download latest version of SMF from here- [1]

2. If you want forum to be installed in a sub-directory like www.yourwebsite.com/forum/ then upload SMF files into the root directory for the script i.e. where /app exists

3. The following files and folders should be have permissions set to 0777:

 

   attachments
   avatars
   Packages
   Packages/installed.list
   Smileys
   Themes
   Themes/default/languages/Install.english.php
   agreement.txt
   Settings.php
   Settings_bak.php
   install.php

These changes should also be done in .htaccess file present in the root directory : 

<IfModule mod_rewrite.c>
#RewriteBase /
RewriteEngine on
RewriteRule ^(forum)($|/) - [L,NC]
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
</IfModule> 

4. Open up your web browser and browse to http://www.yourdomain.com/forum/install.php

5.Provided you set the permissions correctly for Settings.php and Setting_bak.php, you should see a form asking for various settings. Fill these as follows:

Forum Name: This will be the name of your forum. It starts as "My Community" but you should probably change it.

Forum URL: This is the URL your forum will be located at, for example: http://www.yourdomain.com/forum

Often you will have to set up the following in your web host's control panel. In case of doubt, consult your hosting provider.

Database type: Select from a list of supported database schemes you are able to use. Select MYSQL.

Server name: This is where we specify the location of the database.. 99% of the time this will be localhost.

Username: This is the username associated with your database.

Password: This is the password to access your database.

Database name: This is the name of your database.

Database prefix: This is a prefix to the table names in your database. It enables you to run more than one application on a single database. You should generally leave it as smf_, unless you are installing a second copy of SMF on the same database.

Once you have filled in all of the settings, click on proceed, and you will now be asked for details of your admin account; this will create your username on the forum.

6. Your forum is now installed. Since Crowd Vox provides one way login integration with SMF, we suggest you to delete all "Login" and "Register" links from your SMF as this will create a confusion for your visitors.

Configuring Crowd Vox for Simple Machines Forum Integration

On your Crowd Vox website's admin panel navigate to "Settings" > "Simple Machine Forum" and provide the required information  : 

Here "Forum Path" would be the exact path where the files related to forum have been kept , for example /home/<user>/public_html/forum , and "Forum URL" would be the URL you would like your forum to be accessed through like http://<your-website-url>/forum.

4.10. More Features

Compare Listing

With the release of v1.0.10, we've introduced Compare listings feature which lets your website visitors to interactively compare multiple aspects of several listings altogether on a single page.

If compare listing configuration is enabled, a checkbox will appear with every listing, if you check it, a sliding bar will appear in footer like this:

Compare listing footer.jpg

Here's the comparision table when you press the compare button:

Compare table.jpg

 

Google Rich Snippets

Google tries to present users with the most useful and informative search results.

The more information a search result snippet can provide, the easier it is for users to decide whether that page is relevant to their search. With rich snippets, webmasters of sites containing structured contents -such as review sites or business listings, can label their contents to make it clear that each labeled piece of text represents a certain type of data: for example, a restaurant name, an address, or a rating.

See in details here: http://googlewebmastercentral.blogspot.com/2009/10/help-us-make-web-better-update-on-rich.html

This not only spices up your search result but also increases click rate:

Rich snippet.jpg

Also, listings can be configured as different data types of rich snippets: Products, Businesses and organizations etc.

Disable Rich Snippets

This feature is enabled by default. To turn it off: Goto Backend > Settings > Listing, you will see 'Enable rich snippets for listings', uncheck that configuration.

SEO Features

To know more about SEO possibilities in Crowd Vox, please go to SEO Features.

Video upload on listings and reviews

You can allow your visitors to upload videos for a listing or a review, to know more about how to set up this feature go to Enable Video Upload.

5. Locations Management

5.1. Location Settings

Location based search for businesses has been used by Crowd Vox users, therefore we have always been in an endeavour to make the processes easier for users, and in this sequence we have redesigned the locations setup for you with Crowd Vox 3.0. 

To keep the things simple the locations can now be divided on the basis of their types or levels. You can have any number of locations added under these location types. 

Navigate to "Settings" > "Location Settings" to manage location types. 

There are 4 such location types by default. You have a flexibility of enabling or disabling one or more of them to match your needs. 

The default hierarchy is: 

  • Country 
  • State 
  • City 
  • Neighborhood 

 

To enable or disable a location type you can use the button provided in the rightmost column of the index. 

For each level you have following settings options : 

  • To provide a name / label of your choice in singular and plural forms 
  • To configure whether you want the location pages to be generated for this level or not 
  • To set the level as mandatory whenever a listing is created 

 

 

Please Note: It is important to configure map settings before adding a listing in order to fetch correct map latitude and longitude, as you have an option to provide the latitude and longitude details for every location that you add.  



It is recommended not to enable/disable these fields once you have listings on your website as in that case you will have to modify those listings again to provide correct location. 

Enabling and Disabling Location Types

Although it is not recommended to not to enable or disable location types once you have locations and listings linked to the locations.

But if you however want to do this then please note its effects: 

Scenario 1 - When a middle level location type is disabled

Let us take an example where you have disabled the states type, this will automatically link the cities under every state to their respective countries as their parent location. 

Scenario 2 - When a top level location type is disabled 

The next level locations will have nothing set as parent location

Scenario 3 - When a disabled location type is enabled

A new location at the disabled level is created with name default and all locations at the next level will have parent set to this new "default" location

Scenario 4 - When a location type was earlier enabled, then disabled and again re-enabled

All locations that earlier had the parent set at the level before it was disabled will again have the same parent; new locations created at next level after disabling would have a new location "default" as their parent.

Please note: All the actions listed above under the scenarios may take a long time to process and would directly depend on number of locations that are affected either at upper or lower level.

5.2. Manage Locations

Once location settings are configured, you can now add and manage locations by navigating to "Businesses" > "Locations" on admin panel.

Adding Locations 

The process of adding location is quite straight forward. You need to be at a correct level in the locations hierarchy. The following screenshot shows a form that allows you to add a country (i.e. the top level location in the hierarchy). 

Following fields are available on the form : 

  • Name - It is mandatory to provide the name of location 
  • Latitude 
  • Longitude 
  • Visible on locations page - Set this to yes if you want this location to be listed on locations page on website 

Locations Index

Once the locations are added their list can be viewed on locations index page. 

This screenshot shows the country list. You can click on "View States" to go to cities that have been added under the country. 

Editing Location

You get similar form as you get during add location.

Changing Parent Location

If you want to change the parent location , then a form similar to the one shown below will be available to select the new parent.

When it comes to changing the parent for a lower level location then you would get option to change not parents upto the top level in hierarchy. 

5.3. Import Locations

A CSV format file with locations data can be used to import them in bulk. To use the feature navigate to "Others" > "Location CSV Import" on admin panel. 

Step 1

This will bring up the first step of wizard for you. 

Initially you will be required to select the file you want to import the data from. 

The CSV file is expected to have data under these heads for every location :

Name - It is the only mandatory field 

Latitude - A numeric value to denote the latitude for location 

Longitude - A numeric value to denote the longitude for location 

Visible on locations page  - It can be either "Yes" or "No" ; a blank value means "No"

Parent Location - A numeric value representing the id of parent location , you need to refer the existing locations to get their id visible on the locations index ; a blank value means the location will be imported at the top most level

A CSV file with sample data for a few states of USA has been attached with this article. 

Check "Has Headers" if your file has column headers in the first row. 

Step 2

On this step you will be asked to map each column of your CSV against field for location on the website. 

Next screenshot shows the values available in drop down.

Once the mapping is done and you hit the "Next" button, the import process would start.

Please note that if you close the tab that shows the import progress then in the future whenever you return to locations import page, you will be asked whether you want to continue with the incomplete import (this is applicable only when application cache is not cleared).

Hint: Try importing 4-5 locations in your first attempt and make sure all data is imported correctly, before doing a bulk import.

5.4. Location Pages

Having location settings done and locations introduced either manually or through CSV format files is to be logically followed by making the links for location pages available for users at frontend. 

For this you can introduce a new module of type "Location Page Links" 

Module details

General Tab

Parameters Tab

Advanced Tab

Location Page Links

Once the module is published, the same will be shown on frontend.

Clicking on "More..." will list more locations on the same block. 

You can see all the locations by clicking on "Browse All" 

Location Page

A location page displays all the information specific to the selected location and would look similar to the one shown below (please note the contents would depend on the modules that you have configured to appear on location pages). 

 

6. Paid Listings Configuration

6.1. Prerequisites for Using Paid Listing Addon

Prerequisites for using Paid Listing addon on your site are:

1. Enable Claim Listing

2. Enable Paid Listing option

 

Enable Claim Listing

Claim listing is a feature using which any business owner can claim an already added listing. To set this option for the paid listing user,


1. Navigate to the Listing settings page in the Admin Panel.

2. Check the box behind the Enable Claim Listings functionality.

3. Click the Save button to save the changes.


Claim1.jpg


Once this feature is activated, your users will have a Claim it now link on the listings.


Ad2.jpg


By clicking the Claim it now link, any user can submit a request to admin to become owner of that listing.

Note: Becoming the owner of a listing grants the user with access to edit that listing and also to convert listing into a paid listing.


Claim2.jpg

 

Enable Paid Listing Option

Before configuring any other setting on Paid Listing, it is a must that you first enable the Paid Listing service.


1. Navigate to Paid Listing option in the Admin Panel.

2. The Paid Listing Status denotes whether the listing service is enabled or disabled. Set the status as Enabled.

3. Click the Save button.


Pl1.jpg


For more details and other configurations, refer The Paid Listing Settings Screen

6.2. Managing Paid Listings

The CrowdVox Paid Listing feature helps you to monetize your site by charging your visitors to submit or upgrade listings. You can setup your own pricing, plans and various rules as per the plan.

Paidlisting1.jpg

You can let your users list their product or service through your site with the options of images, custom fields, adding content, plans, featured status, payment and other options. You can also customize plans with each of these options and charge your users accordingly. Available payment types include Free / Trial, one-time payment and subscription.

Examples

You can organize your plans like the following.

- One basic plan for listing submission - free or small price, with a set of custom fields and specific number of images

- One or more premium plans for listing submissions – medium and higher prices with larger set of custom fields, higher number of images, and other features like upload video, promote facebook page etc

- One or more listing upgrade plans – listing upgrade plans are used to upgrade previously purchased basic or premium plan with additional custom fields, additional images or video to make the listing featured.

 

Listplan1.jpg


A free listing example that allows your users to display their business details on your website with limited advantages is shown here. They can also add a description and an image about their business.

Samplelist2.jpg


A paid listing example that allows your users to choose a plan, pay and publish listing accordingly is shown here. You can decide on the number of images to be uploaded by the user based on the type of the plan they select and also allow your users to upload video and promote their facebook page.

Samplelist3.jpg


Prerequisites for Using Paid Listing Addon on Your Website

The Paid Listing Settings Screen

The Settings Tab

The Payment Gateways Tab

The Plans Tab

The Revenue Report Tab

The Orders Tab

6.3. Payment Gateway Integration

A payment gateway can be integrated programmatically, by following steps given below:

1. In /app/plugins/paid_listings/payment_handlers, create file with name like payment_gateway.php, here "payment_gateway , should be the name of your payment gateway for example paypal.php (attached with the topic). In this newly created file create a class with name like PaymentGatewayPaymentHandler, for example paypal.php will have a class with name PaypalPaymentHandler and two_checkout.php should have class with name TwoCheckoutHandler.

2. This class should extend class AbstractPaymentHandler. AbstractPaymentHandler defines a abstract method process, with signature:

 function process(AppController $controller,$orderId) 

This where you can handle your payment gateway integration. For example you can redirect user to your payment gateway or redirect to a url in the script where you a custom payment form. Upon successful completion of order you will need call Order::setAsCompleted($orderId) and Transaction::createTransaction($PaymentHandlerObject,$order,Transaction::SUCCESSFUL,$_POST)

You can download payments_controller.php (attached with the topic) file to understand the integration process in details.

6.4. Configuring Paypal Payment

To navigate to PayPal payment settings, on the Payment Gateways tab, click the Edit button in the Paypal row and under the Actions column. The PayPal settings page will be displayed.

Paypal1.jpg

To configure PayPal payment settings, simply follow the steps given below.

1. The Title specifies the name of the payment method. The symbol * denotes that the field is mandatory. Edit the title, if you wish to provide any specific name in the Title text entry box.

2. The Sandbox is a testing environment that is a duplicate of the live PayPal site, except that no real money changes hands. Enable Sandbox denotes whether you wish to use Sandbox testing for transactions or not. Select Yes or No from the drop down list based on the requirement.

3. The PayPal Email denotes the email id that is configured at PayPal for making payment to your account. Enter the right email id in the PayPal Email text entry box.

4. The Status allows you to enable or disable the PayPal payment option. Select the required status as Enabled or Disabled from the drop down list.

5. The Use for subscription field allows configuring whether you wish to use the PayPal payment option even for subscription or not. Select Yes or No from the drop down list based on the requirement.

6. The Payment gateway button image name denotes the icon to be used for displaying the PayPal payment. You can set the image name after uploading the image file in the location, /app/plugins/paidlistings/vendors/img/

7. Finally, click the Save button to save the changes.

6.5. Configuring Offline Payment

To navigate to offline payment settings, on the Payment Gateways tab, click the Edit button in the Offline row and in the Actions column. The offline settings page will be displayed.

Note: All offline orders need admin approval.

Offline.jpg

To configure offline payment settings, simply follow the steps given below.

1. The Title specifies the name of the payment method. The symbol * denotes that the field is mandatory. Edit the title, if you wish to provide any specific name in the Title text entry box.

2. The Account Information allows you to enter the necessary information for accepting payments through cheques. You can enter bank account details such as name, account number, bank name and address in this field.

3. The Status allows you to enable or disable the Offline payment option. Select the required status as Enabled or Disabled from the drop down list.

4. The Use for subscription field allows configuring whether you wish to use the Offline payment option even for subscription or not. Select Yes or No from the drop down list based on the requirement.

5. The Payment gateway button image name denotes the icon to be used for displaying the offline payment. You can set the image name after uploading the image file in the location, /app/plugins/paidlistings/vendors/img/

6. Finally, click the Save button to save the changes.

6.6. Add a New Plan

Note before adding the new plan

You can organize your plans like the following.

- One basic plan for listing submission - free or small price, with a set of custom fields and specific number of images

- One or more premium plans for listing submissions – medium and higher prices with larger set of custom fields, higher number of images, and other features like upload video, promote facebook page etc

- One or more listing upgrade plans – listing upgrade plans are used to upgrade previously purchased basic or premium plan with additional custom fields, additional images or video to make the listing featured.

 

Listplan1.jpg


A free listing example that allows your users to display their business details on your website with limited advantages is shown here. They can also add a description and an image about their business.

Samplelist2.jpg


A paid listing example that allows your users to choose a plan, pay and publish listing accordingly is shown here. You can decide on the number of images to be uploaded by the user based on the type of the plan they select and also allow your users to upload video and promote their facebook page.

Samplelist3.jpg

 

 

Adding New Plan

To add a new plan, on the Plans tab, click the Add new plan button. The Add New Plan page will be displayed. Follow the steps given below to add a new plan to the paid listing.

Newplan.jpg

Note: The symbol * denotes that the field is mandatory.

1. The Plan Name is the name of the paid listing plan that you wish to create. Enter the new name for the listing plan in the Plan Name text entry box.

2. The Description editor allows you to add, edit and format the complete details/descriptions about the plan. The editor is a like a miniature version of MS Word and you have most of the editing and formatting options of the word application.

3. The Status allows you to enable or disable the plan. Select the required status as Enabled or Disabled from the drop down list.

4. The Plan type specifies whether the plan is New Listing or Upgrade Listing. Select the required plan type from the drop down list. If it is an upgrade plan, then the user can upgrade the plan from a basic plan.

Note: It is better to create a corresponding upgrade plan for a new plan if you want to provide a way to listing owners to pay you in future.

5. The default plan is the one that is selected by default on the Add listing page. Select Yes or No from Is it your default plan drop down list if you wish to make this plan as default plan.

6. Select Payment type denotes the mode of payment option for the plan. It has options such as Free Plan/Trial, One Time Payment and Subscription. Select the type of the payment from the drop down list.

7. The Price allows you to specify the value for the plan. Enter the price that you wish to charge for this paid listing plan.

8. The Duration denotes the numeric factor of the duration period. Enter the minimum number of days or months or years that this plan service to be availed in the Duration text entry box.

9. The Duration Period has the options such as Days, Weeks, Months, Years, and Never Expires. You can select the required period from the Duration Period drop down list.

10. The Disable moderation determines whether this paid listing plan requires the approval of administrator after the payment or not. If it is set to yes, then the plan will get activated automatically after the payment or else the admin has to manually approve the status of the order. Select Yes or No from Disable moderation drop down list based on the requirement.

11. The Make Featured Listing determines whether this paid listing plan has the status of featured listing or not. Select Yes or No from Make Featured Listing drop down list based on the requirement.

12. The option, Limit the number of images that owner can upload will allow you to control the number of images that owner can upload. Check the box behind Limit the number of images that owner can upload to limit the number of image uploads by the owner. Setting this option to No, will allow the owner to upload unlimited number of images.

13. The Number of images decides how many images an owner of this plan can upload. Enter the required number in the Number of images text entry box.

14. Whether the plan allows other users to upload images or not is decided by this option. Check the box behind Allow other users to add images to gallery of the listing to allow the uploading of images by the other users. Setting this option to No, will prohibit the other users from uploading the images.

15. The Assign categories and custom fields to this plan limits the plan to be active only in the selected categories and custom fields. Check the boxes behind the required categories and custom fields.

16. Finally, click the Save button to save the changes to the plan.

6.7. Edit an Existing Plan

To edit an existing plan, simply click the Edit button to the right of that plan and in the column Actions.

Editplan1.jpg

Follow the steps given below to edit an existing plan.

Newplan.jpg

Note: The symbol * denotes that the field is mandatory.

1. The Plan Name is the name of the paid listing plan that you wish to edit. Edit the name for the listing plan in the Plan Name text entry box.

2. The Description editor allows you to add, edit and format the complete details/descriptions about the plan. The editor is a like a miniature version of MS Word and you have most of the editing and formatting options of a word application. Edit or format the content of the Description text entry box.

3. The Status allows you to enable or disable the plan. Select the required status as Enabled or Disabled from the drop down list.

4. The Plan type specifies whether the plan is New Listing or Upgrade Listing. Select the required plan type from the drop down list.

Note: It is better to create a corresponding upgrade plan for a new plan if you want to provide a way to listing owners to pay you in future.

5. The default plan is the one that is selected by default on the Add listing page. Select Yes or No from Is it your default plan drop down list based on the requirement.

6. Select Payment type denotes the mode of payment option for the plan. It has the options such as Free Plan/Trial, One Time Payment and Subscription. Select the type of the payment from the drop down list.

7. The Price allows you to specify the value for the plan. Edit the price that you wish to charge for this paid listing plan.

8. The Duration denotes the numeric factor of the duration period. Edit the minimum number of days or months or years that this plan service to be availed in the Duration text entry box.

9. The Duration Period has the options such as Days, Weeks, Months, Years, and Never Expires. You can select the required period from the Duration Period drop down list.

10. The Disable moderation determines whether this paid listing plan requires the approval of administrator after the payment or not. If it is set to yes, then the plan will get activated automatically after the payment or else the admin has to manually approve the status of the order. Select Yes or No from Is it your default plan drop down list based on the requirement.

11. The Make Featured Listing determines whether this paid listing plan has the status of featured listing or not. Select Yes or No from Is it your default plan drop down list based on the requirement.

12. The option, Limit the number of images that owner can uploadwill allow you to control the number of images that owner can upload. Check the box behind "Limit the number of images that owner can upload" to limit the number of image uploads by the owner. Setting this option to No, will allow the owner to upload unlimited number of images.

13. The Number of images decides how many images an owner of this plan could upload. Enter the required number in the Number of images text entry box.

14. Whether the plan allows other users to upload images or not is decided by this option. Check the box behind "Allow other users to add images to gallery of the listing" to allow the uploading of images by the other users. Setting this option to No, will prohibit the other users from uploading the images.

15. The Assign categories and custom fields to this plan limits the plan to be active only in the selected categories and custom fields. Check the boxes behind the required categories and custom fields.

16. Finally, click the Save button to save the changes made to the plan.

6.8. Delete a Plan

To delete a plan, simply click the Delete button to the right of that plan and in the column Actions.

Deleteplan1.jpg

The message box will be displayed. Confirm the deletion by clicking the Yes button in the message box.

Deleteplan2.jpg

The plan will be removed from the list of plans.

6.9. Edit an Order

To edit an order, simply click the Edit button to the right of that order and in the column, Actions.


Editorder1.jpg


The order details will be displayed for editing. You can start editing the required fields.


File:Editorder3.jpg


1. The Order Id denotes the order number of the order.

2. The Name is the name of the plan selected in the order.

3. The Plan Status denotes whether the plan is Active or Inactive.

4. The Payment Status denotes whether the order is Pending, Incomplete, Processing, Fraud or Completed.

5. The Start Date denotes the date on which the plan is applied to the listing.

6. The Never Expire denotes that it is a lifetime order. Checking this option ensures that the order will never expire.

7. The End Date denotes the date on which the order expires and the listing will be removed from the related plan.

8. Make listing featured denotes whether the specific listing related to this order is featured or not.

9. The Limit the number of images that owner can upload denotes whether the number of images that owner can upload has limitation or not.

10. The Number of images denotes the number of images that the owner can upload using this plan.

11. Allow other users to add images to gallery of the listing? denotes whether the other users can upload images or not to the gallery of this listing.

12. The Admin Note allows to enter any specific information related to the order in the text entry box.

13. Once the changes are made to the order, click the Save button to retain the changes made to the order.

12. The Field Groups allow the selection of required groups to which the listing will be published.

6.10. View an Order

To view an order, simply click the View button to the right of that order and in the column, Actions.


Order2.jpg


The order details will be displayed.


Order3.jpg


Note: By clicking the Edit button on the order details page, you can also navigate to edit page of the order.


For more details, refer Edit an Order

6.11. Search for an Order

Searching for an order is easy. Simply follow the steps given below.

1. Click the Search Orders button in the Orders tab.


Search2.jpg


Search feature will be appended above the list of orders. Default value of all search criteria is All. You can search based on any single criterion or a combination of criteria.


Search3.jpg


2. The Payment Status shows orders based on their status such as All, Pending, Incomplete, Processing, Fraud, and Completed.

3. The Payment Type denotes whether the order is based on Free Plan/Trial, One Time Payment or Subscription.

4. The Order Id has options such as All, Is, Is not, between, greater than, and less than. Based on what option you select, additional fields are appended to provide Id number or range.

5. The Plan has the list of all the plans that you created for Paid Listing on your site.

6. The Payment method is for searching the orders that are based on the methods such as Test, Offline, PayPal and All.

7. The Plan Status shows orders based on the status of plan such as active or inactive.

8. After choosing the required search criteria, click the Search button. The search results will be displayed.

9. To reset the search fields click the Reset button.

6.12. Generate Revenue Reports

Generating report is very easy. On the Revenue Reports tab, select the starting date and ending date from the respective calendars and then click the Get Report button.

Rep2.jpg

The report showing the charts of Revenue and Plan sold will be displayed.

Rep1.jpg

6.13. Paid Listing Settings Tabs

The Paid Listing Settings screen helps customization of paid listing, plans and orders. It has an easy to use intuitive interface and saves your time and effort from manual coding of the listing features, besides giving you a complete control over managing the paid listing on your site.

Paidlisting2.jpg

The screen has 5 tabs namely,

1. Settings - The Settings tab has the basic feature settings for listing such as enabling or disabling paid listing service, currency and tax settings, terms and conditions, company logo, business information and email notification settings.

2. Payment Gateways - The Payment Gateways tab has settings related to payments through offline or paypal.

3. Plans - The Plans tab allows you to create, edit, delete and manage various plans related to listing.

4. Revenue Report - The Revenue Reports tab allows you to generate reports between required date intervals of the revenue and orders.

5. Orders - The Orders tab allows you to search, view and edit orders.

For more information, refer the following links.

The Settings Tab

The Payment Gateways Tab

The Plans Tab

The Revenue Report Tab

The Orders Tab

6.14. The Settings Tab

The Settings tab has the basic feature settings for paid listing.

Generalsetting1.jpg

To configure General Settings, simply follow the steps given below.

1. The Paid Listing Status is a very important feature and if this is disabled, the complete Paid Listing addon will not function. So this is a mandatory field and must be in an Enabled status.

2. The Payment Currency(USD,GBP) specifies the mode of currency used for transaction. Enter the mode as USD, GBP, EUR or your desired currency in the Payment Currency text entry box.

* Symbol denotes that the field is mandatory.

3. The Currency symbol ($, £) specifies the symbol to be used for the currency. Enter the required symbol based on the Payment Currency opted.

4. Tax(%) to be applied on Invoice permits tax deductions on the invoice. Enter the percentage of deduction to be used on the invoice in the Tax(%) to be applied on Invoice text entry box.

5. The Terms of Service allows you to specify the terms and conditions to be displayed on the Invoice page before checkout. You can enter and format the terms as per your requirement in the Terms of Service text editor.

6. The Company Logo for Invoice is displayed on the header part of the invoice. You can upload the logo in the location, /app/plugins/paidlistings/vendors/img/ and then enter the name of the logo file in the Company Logo for Invoice text entry box.

7. The business information and address if any to be displayed on the invoice can be entered in the text entry box below Your business information to display on Invoice field.


The following example shows the changes made to the Invoice of the user.

Invoice1.jpg

8. You can receive the notifications of plan expiry in advance by setting the required number of days. Select the number of days for advance notification from the drop down list. The available options are Never, 1 day, 2 days, 5 days, 1 week, 2 weeks, 3 weeks and 1 month.

9. If you wish to inform the owner about the listing plan expiry, check the box to the left of Send an E-mail to owner when his listing's plan expires.

10. Finally click the Save button to save the changes.

6.15. The Payment Gateways Tab

The Payment Gateways tab allows settings related to payments.

Pg1.jpg


1. Test - The Test option allows you to test the working of payment feature without the need for an actual transaction.

2. Offline – The Offline option allows configuring of the bank account details, status and other related information.

3. Paypal – The Paypal option allows configuring of the PayPal email id, enabling sandbox, status and related information.


Note: The Edit button on every row allows the editing of the configurations for that specific payment option.


Configuring Offline Payment

Configuring Paypal Payment

6.16. The Plans Tab

The Plans tab allows you to create, edit, delete and manage various plans related to paid listing.

Plans1.jpg

Note:

1. The Add new plan button allows you to add new plans for paid listing.

2. The Edit button on every row allows the editing of the configurations for that specific plan option.

3. The Delete button on every row removes that specific plan option from the system.


Add a New Plan

Edit an Existing Plan

Delete a Plan

6.17. The Revenue Report Tab

The Revenue Reports tab allows you to generate reports between the required date intervals of the revenue and orders. It generates two different charts.


1. The Revenue Chart

2. The Plan Sold Chart


The Revenue Chart shows you the revenue generated over a period of time you selected.

The Plan Sold Chart shows the number of plans sold over a period of time you selected.

Rep1.jpg


Generate Revenue Reports

6.18. The Orders Tab

The Orders tab allows you to search, view and edit orders.

Orders1.jpg


For more information, refer the following links.

Search for an Order

View an Order

Edit an Order

7. Design Customizations

7.1. Theme Customization

This page contains information about visual customization of Crowd Vox.

Basic Structure of website

  • Most of the view files/HTML code are in app/views folder.

All elements (reusable templates which appear on multiple pages) like navigation and other small elements are in app/views/elements folder

  • Basic layout (header/footer) or wrapper of the website is in app/views/layouts/default.ctp However, if you are using any other theme than 'default' then you can find its wrapper file in app/views/themed/YourThemeName/layouts/default.ctp
  • Default theme's css is in app/webroot/css/style.css and images in app/webroot/img/
  • All theme's css are in app/webroot/themed/ThemeName/css folder for example business theme's css is in app/webroot/themed/Business/css/
  • All files related to our plugins like user login, register, comments are in app/views/plugins/ folder


Creating a new theme

Say you wish to create a new theme which is similar to our electronics theme but you want it in green color and some other changes. Lets name our new theme as Greenery

1. You will create a new folder in app/webroot/themed/ named greenery.

2. Create folders css and img inside greenery folder.

3. Create a file named style.css in css folder and paste css from electronics theme in that file Also, add all generic icons used in website like review icon, comments icon and other icons and images in img folder under greenery folder.

4. Also, copy ext_config.php file from electronics folder and upload it in greenery folder.

5. Upload a screenshot of your theme in jpg format and name it greenery_preview.jpg, preferable size is 300x200.

6. Now go to app/views/themed/ create a new folder with the name greenery and create a folder under greenery named layouts in it and paste default.ctp inside layouts folder from electronics folder.

Now, our structure for greenery theme is ready, you can edit your style.css or default.ctp file of greenery theme to do changes accordingly. Since, Crowd Vox uses css compression you must either refresh cache from admin to see your changes or else you can edit- app/config/core.php and set debug mode to 1, so that you don't have to refresh cache after every single change.

Creating custom views

Now, lets imagine that you want to do some structural changes in our navigation say you wish to have a drop-down navigation, in that case we don't suggest you to directly edit the element->navigation_links.ctp as this will create problem for you in future when you'll upgrade your Crowd Vox. So, here are the instructions to create your custom views for your theme-

1. Copy the file that you wish to edit.

2. Go to app/views/themed/greenery folder, now since navigation is an element you need to create a folder named elements in greenery folder and paste your navigation_links.ctp inside it. So, that the path of your new navigation file becomes - app/views/themed/greenery/elements/navigation_links.ctp

Similarly, you can create other custom views too, just make sure that path of the file should be same, for example path of default login box is - app/views/plugins/users/elements/LoginBox.ctp and if we want to do some custom changes in login box then you should copy loginBox. ctp file here - app/views/themed/greenery/plugins/users/elements/LoginBox.ctp , we must create a folder plugins inside greenery folder, then users folder, and then elements folder inside it.

Creating new modules placements

If you look at our gadgets demo here- http://gadgets.demos.crowdvox.com/ you can see that we have created a footer with 3 sections and in admin's add module form, you can see footer_left, footer_mid, footer_right in section dropdown. You can easily place any module you want in any of these modules position. So, here are the steps of how to create custom module positions:

1. Decide the names of your section, in this case I wanted footer_left, footer_mid, footer_right

2. Now, open your theme's ext_config.php file

3. Find this section:

\**
* Module sections
*\
$blocks = array(
'left_sidebar', 'right_sidebar', 'top', 'bottom'
);

Now, you can define your new sections from here like this:

$blocks = array( 'left_sidebar', 'right_sidebar', 'top', 'bottom', 'footer_left','footer_mid','footer_right' );

Now, you must place a call for these modules in appropriate files where they should be displayed, in our case we need to edit our default.ctp file. Go to app\views\themed\greenery\layouts\default.ctp and write

<?php
if(isset($section))
{
echo $section->render('footer_left');
}
?>

wherever you want this section to be displayed, you can repeat the same code, just change "Footer_left" to your section name. Here is the sample code used for our gadgets theme's footer:

<?php
  if(isset($section))
   {
   echo $section->render('footer_left');
    }
?>
<?php
  if(isset($section))
   {
   echo $section->render('footer_mid');
    }
?>
<?php
  if(isset($section))
   {
   echo $section->render('footer_right');
    }
?>

These are some basic instructions needed to customize your theme, if you need to know about any specific file or element feel free to contact us.

7.2. Module Management

To enhance the contents made available to the site visitors you can use modules. To manage modules, you can navigate to "Appearance" > "Modules" menu under the admin panel.

Described below are some popular modules : 

Category Dropdown Module

Category dropdown.jpg


This module shows categories' dropdown to the user. Selecting a category takes the user to selected category page.

Category Listing Module

Category list.jpg

This module shows category list to the user. Selecting a category takes the user to selected category page. Its preferred to have this module on homepage for better navigation for the end user.

Category Listing Module

This module can be used to generate links of Dynamic Pages.

The links will be generated based on the values of field selected at the time of creation of dynamic page.

Dynamic page module.jpg

Visible link keys allows you to show only specific links, suppose you have a field 'city' with 50 different values, but you want to show only first 5 cities you entered in the options. So you can define link keys as: 1,2,3,4,5

Filter Module

Filter module can create links as per each field's option.

In the image below, we have a Laptop category with a dropdown field "Operating system", and filter is shown on the right side along with various other filters. This module can improve you site's usability to a great extent.

FilterByOS.png

Map Module

This module allows you to place Geo-maps with various listings as pointers, anywhere on the site.

1. You can set your own criteria for which listings to show on the map As an example you can see how we have displayed Popular 5 restaurants on home page on our demo - http://yelpclone.demos.crowdvox.com/ To create this module we created a content scope for popular restaurants first and then selected the "popular restaurant" as our filter for map module.

Popular restaurant.png

2. You can set the map module to show listings on a map, that are being listed on a page, automatically As an example you can see the restaurant category page of our yelp demo- http://yelpclone.demos.crowdvox.com/listings/index/category/category:Restaurants/ To create this module, in parameters tab of map module select content type- autodetect and in visibility tab select category page. You can similarly show map on search result pages too.

Category Restaurants.png

Range List Module

Like Filter Module, this module can output filter options for numeric fields, say, price, or any other numeric field for filtering the list.

Range list module.jpg

Search Module

Search module outputs a simple search form which performs search on listings and reviews. 

Search module.jpg

NotePlease do not put more than one search modules on a page. 

Simple Content Module

This module creates simple content box based on your selection.

You can select which content to show: Listings/Reviews/Users and set the criteria/conditions for them.

Simple content module.jpg

Tabbed Content Module

This module is same as Simple Content Module except that it outputs the content in tabs.

So you can create, say, 3 tabs like: Top Hotels, Top Bars, Top Users or something like this:

Tabbed content module.jpg

Featured Module

Showcase the selected contents to feature on all / selected pages using the "Featured Module".

This module when rendered provides the image slider with easy animated navigation and links for listings featured.

Ad Module

This module can be used to show the randomized ads across the website.

Before using this module one should go through Managing Ads

Ads module.jpg

HTML Module

This simple module outputs any HTML you specify in the paramaters of the module.

Newsletter Module

This module can be used to output newsletter form like this:

Newsletter module.jpg

Tag Module

Tag module shows the tag cloud of your contents like this:

Tag module.jpg

User Login Box Module

This module shows the user login box anywhere you set.

Here's how it looks:

User login box module.jpg

8. Miscellaneous

8.1. Release Notes

Changelog 2.0

New features:

  • Groupon style deals, with ability to allot deals as per plan
  • Events functionality with ability to allot events as per plan, add to google clender, add to outlook
  • Ability to post business in multiple categories (can be alloted as per plan too)
  • Multiple languages support
  • Listing images in lightbox
  • New responsive theme.
  • Slider Module for featured listings
  • Gallery in lightbox
  • Get directions in map
  • Bulk actions in admin index pages
  • Post Events
  • Feature – Ability to configure SMTP details for emails
  • Ability to add modules on static pages
  • Drag drop marker on map for changing location on listing add page
  • Configuration in admin to enable facebook like button on listing pages
  • Ability to add reviews with add listing.
  • Ability to sell deals and events as a part of paid plans
  • Pagination on reviews displayed on listing view
  • Support for sub-categories while adding content scopes

Major enhancements:

  • Converted URLs to canonical URLs
  • Ability to display random listings
  • Decimal display support enabled in average rating
  • Updated Ck editor to new version
  • Changed URL of stats in admin
  • Street view is now hidden when it's not available
  • New sharing widget added
  • Thumb generation for images for faster loading
  • Active class support added in navigation

Major bugfixes:

  • Remove api key field from facebok config
  • Hostgator corrupt form issue fixed

8.2. Enable Video Upload

Setup

This feature allows you to upload a video with a listing or a review. All you need to do is create a custom field of 'video type' and associate it with your given listing type. As many of you must already know that custom field can be associated to a listing or a review – like that, video can also be associated with either of them.

You also need to make sure that your server has FFMPEG installed.

Video Uploads Gotchas

Here are some reasons which could result in improper working of video uploads:

1. FFMPEG might not available on your server.In such cases you can ask your hosting provider to install FFMPEG.

2. FFMPEG is installed, but video didn't got converted to flv. Internally Crowdvox uses exec function to convert videos to flv, some hosting provider restrict use of exec function. Also check Log file ffmpeg_exec.log in /app/tmp/logs folder in such cases.

3. Uploaded file size is greater than upload_max_filesize and post_max_size : PHP limits size of a uploaded file through upload_max_filesize setting in php.ini file. If uploaded file size is greater than upload_max_filesize a validation error will be shown to user notifying this. Another configuration to look for is post_max_size, which the setting for total size of data that can be sent through a form. If size of uploaded file + other information in a form is greater than post_max_size then in such cases PHP will be generate warning internally and will send empty information to the script. It is recommended to have a sufficiently large value for upload_max_filesize and post_max_size setting and a tooltip in form field telling user to limit size of file according to your server limitation.

8.3. Tips & Tricks

How do I edit navigation links

To edit navigation links, you can go to app/views/elements/navigation_links.ctp. To add your link in this format-

 <?php echo $html->link("Page name",'/your_page_url')?> 

 

Changing rating scale to 10

In /app/models/review.php change value of const RATING_MAX_VALUE to 10

In /app/views/helpers/rating.php RatingHelper::displaychange() 'max_stars' value to 10

In your app/webroot/css/common.css file change width to 150px of css class user_rating_star_base and editor_rating_star_base

You would also be required to make changes in : /app/views/helpers/geo_map.php and /app/views/elements/listings.ctp so that the div created to display $userReviewCount (in both files) should have margin-left:155px in place of margin-left:80px

 

How do I change my star rating images?

To change star rating images, go to app\webroot\images folder and replace current rating star images with your own images. Please note If dimensions of your new star images is different from our existing star images, you must adjust width of class user_rating_star_base and editor_rating_star_base in common.css file accordingly.

 

Display all rateable fields on listings view page, reviews index page, and users' review index page

Here are the changes you have to do:

Go to app/views/elements/review.ctp

and find this line:

if ($presentUrl == 'reviews-view' || count($ratableFields) == 1)

and change it to:

if ($presentUrl == 'reviews-view' || $presentUrl == 'reviews-index' || count($ratableFields) == 1)

How do I edit dimensions of Map on listing view page

You can change dimension of map from app/views/elements/listing_view_map.ctp file from this line:

<?php
$d = array('width' => "520",'height'=>'200');
?>

My website is very slow. What should I do?

We've written down a new article on how to optimize your website, visit Settings for Optimal Performance.

How do I improve SEO of my website?

Although search engine friendly URLs are there from the very first release of Crowd Vox. Crowd Vox 1.1 comes with few SEO features built-in, To take a look at them visit SEO Features.

How do I setup my website like your Business website demo ?

In our business website demo we have placed various modules and have created custom classes in css file and then assigned those classes to each module from advanced tab that is visible when you add a new module. However, if you want to have same exact placement of modules and categories like our business/yelp demo, you can download the file attached with this topic and follow the instructions mentioned below-

- Change the website's theme to "Business" from admin panel,

- Go to Phpmyadmin and truncate/empty your existing database and import this sql file on your existing DB Tables,

- Upload geo_images folder in app/webroot folder, and

- Upload category_icons folder in app/webroot/uploads folder

How do I change my DB from Innodb to Mysiam

1. Login to phpmyadmin

2. Click on sql tab and paste content below in textarea and press go.

ALTER TABLE ads ENGINE = MyISAM; ALTER TABLE assets ENGINE = MyISAM; ALTER TABLE asset_comments ENGINE = MyISAM; ALTER TABLE attachments ENGINE = MyISAM; ALTER TABLE blocked_items ENGINE = MyISAM; ALTER TABLE comments ENGINE = MyISAM; ALTER TABLE config ENGINE = MyISAM; ALTER TABLE contents ENGINE = MyISAM; ALTER TABLE content_scopes ENGINE = MyISAM; ALTER TABLE csv_import_files ENGINE = MyISAM; ALTER TABLE custom_fields ENGINE = MyISAM; ALTER TABLE dynamic_pages ENGINE = MyISAM; ALTER TABLE eav_records ENGINE = MyISAM; ALTER TABLE eav_values_array ENGINE = MyISAM; ALTER TABLE eav_values_array_elements ENGINE = MyISAM; ALTER TABLE eav_values_boolean ENGINE = MyISAM; ALTER TABLE eav_values_date ENGINE = MyISAM; ALTER TABLE eav_values_datetime ENGINE = MyISAM; ALTER TABLE eav_values_float ENGINE = MyISAM; ALTER TABLE eav_values_int ENGINE = MyISAM; ALTER TABLE eav_values_matrix ENGINE = MyISAM; ALTER TABLE eav_values_other ENGINE = MyISAM; ALTER TABLE eav_values_string ENGINE = MyISAM; ALTER TABLE eav_values_text ENGINE = MyISAM; ALTER TABLE eav_values_varchar ENGINE = MyISAM; ALTER TABLE email_templates ENGINE = MyISAM; ALTER TABLE facebook_users ENGINE = MyISAM; ALTER TABLE feature_histories ENGINE = MyISAM; ALTER TABLE fieldsets ENGINE = MyISAM; ALTER TABLE geocodes ENGINE = MyISAM; ALTER TABLE guests ENGINE = MyISAM; ALTER TABLE hits ENGINE = MyISAM; ALTER TABLE languages ENGINE = MyISAM; ALTER TABLE listings ENGINE = MyISAM; ALTER TABLE listing_assets ENGINE = MyISAM; ALTER TABLE listing_claims ENGINE = MyISAM; ALTER TABLE listing_plans ENGINE = MyISAM; ALTER TABLE listing_types ENGINE = MyISAM; ALTER TABLE listing_type_fieldsets ENGINE = MyISAM; ALTER TABLE list_categories ENGINE = MyISAM; ALTER TABLE map_icons ENGINE = MyISAM; ALTER TABLE messages ENGINE = MyISAM; ALTER TABLE meta_information ENGINE = MyISAM; ALTER TABLE modules ENGINE = MyISAM; ALTER TABLE module_visibilities ENGINE = MyISAM; ALTER TABLE module_visibility_params ENGINE = MyISAM; ALTER TABLE newsletters ENGINE = MyISAM; ALTER TABLE orders ENGINE = MyISAM; ALTER TABLE plans ENGINE = MyISAM; ALTER TABLE rateable_fields ENGINE = MyISAM; ALTER TABLE reported_items ENGINE = MyISAM; ALTER TABLE reviews ENGINE = MyISAM; ALTER TABLE review_comments ENGINE = MyISAM; ALTER TABLE schedules ENGINE = MyISAM; ALTER TABLE sent_logs ENGINE = MyISAM; ALTER TABLE smf_api ENGINE = MyISAM; ALTER TABLE subscribers ENGINE = MyISAM; ALTER TABLE tagged_items ENGINE = MyISAM; ALTER TABLE tags ENGINE = MyISAM; ALTER TABLE test_emails ENGINE = MyISAM; ALTER TABLE threads ENGINE = MyISAM; ALTER TABLE transactions ENGINE = MyISAM; ALTER TABLE urls ENGINE = MyISAM; ALTER TABLE users ENGINE = MyISAM; ALTER TABLE user_favorites ENGINE = MyISAM; ALTER TABLE user_fields ENGINE = MyISAM; ALTER TABLE votes ENGINE = MyISAM;

8.4. Importing Businesses Using CSV

You can bring all the listings' data that come under one single category, into a comma separated value (CSV) file.

How to Prepare a CSV for Import?

The CSV should ideally have a header row having the column names.

Each column's data in data rows should be clearly separated from other columns by comma.

If you have to use comma for value or set of values that you need to be used for a column, then you should enclose the entire set of values (separated by comma) in double quotes, to make it look like a group of values that represent one column. The cases where you may need to use comma to separate values in a single column are when you provide value(s) for fields that are of a type that allows multiple options to be stored like "check box" or "multiple choice option box"; or any other text field for that matter.

Important: For fields that are of a type that allows one or more options data to be stored, value(s) should be Case Sensitive. i.e. if the custom field "city" has option like "New York", you should not write "New york" or "new york" in CSV

Importing CSV

Being on website's administrative panel, you can use Import CSV option under "Others" menu.

On this page, you can upload the file and select category, user (poster) and status for the listings. If your CSV holds the column headers then you should check "Has Headers".

Once done you can hit "Import", you will then be redirected to a page where you can map the columns of CSV to the fields to be used for listings.

To map each column in CSV you get the drop down list of all the fields defined in your CrowdVox instance.

A properly mapped fields form would look like this : 

 

Important: If listing fields  are not mapped correctly with the columns in CSV then data will not be imported correctly.

Once mapped you can then click "Save", this will trigger the import process.

When the process finishes it will bring the results to you (both in case of success or failure). For all successfully operations you should see a corresponding listing created.

Importing Listings with Images

Before moving ahead with process of importing listings for which the images should be fetched and uploaded automatically, please make sure that the folder /app/webroot/uploads has permission set to 0777 recursively.

The next thing required is to simply keep a column in CSV for the URL where the image for the listing is to be fetched from (the URL should however be accessible).

When you would map the fields at the time of CSV import, you will be prompted to select a column that is to be used for "URL of image", once mapped the image will be fetched for listing automatically from the given URL.

8.5. Adding Featured Module

Featured Module showcases the contents that you have selected to feature on all / selected pages of your website.

To add the module, you primarily need to decide the following

  1. Which listings you want to be featured through this module
  2. What should be the dimension of slider to be shown
  3. For how many seconds an image should be displayed before the slider switches to next one automatically
 
For selecting the listings, you start by selecting the categories, once category is selected you get the listings populated in the related dropdown. Then you need to upload an image that will be shown for the selected listing on slider.
 
This module when rendered shows the image slider with easy animated navigation and links for listings featured.
 

8.6. htaccess

It is observed that on some hosts, you'll need to make a small change in .htaccess in order to run Crowd Vox.

Here are some changes you need to do:

1. Edit .htaccess of main folder, and locate following line:

#RewriteBase /

 

Remove the # character present in front of it, so changed line will look like:

RewriteBase /

 

2. Similarly edit .htaccess of /app/webroot folder, and locate:

#RewriteBase /app/webroot

 

Then change it to:

RewriteBase /app/webroot

 

8.7. Settings for Optimal Performance

1. Debug value inside core.php should always be 0 when running on production.

2. Be sure to set up module caching (from Advanced tab while editing modules) of at least a few minutes on all modules except User Login Box. Otherwise full module rendering will be done on every page call, and possibly database queries too.

3. Make sure that directory /app/tmp and directories inside it are writable (CHMOD 777).

8.8. How to turn off MySQL strict mode?

Crowd Vox requires MySQL strict mode to be disabled. If you do not disable the strict mode, you may encounter errors while using the script.

To disable the strict mode, you should have administrative access to your MySQL server. Edit "sql-mode" value in MySQL configuration file (my.ini or my.cnf).

For Linux server, add the following:

[mysqld]
sql_mode="TRADITIONAL,NO_AUTO_CREATE_USER"

For Windows server, add this:

sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

After making the above changes, restart MySQL service.

For more details on Strict SQL Mode you may refer - http://dev.mysql.com/doc/refman/5.0/en/sql-mode.html#sql-mode-strict

Mobile app requirements

1. Setup Facebook SDK

Configure Facebook App Settings for iOS

Getting bundle identifier

Please make sure you have signed for apple developer program as it is necessary to have a an apple developer account in order to Submit app on app store.

You can use this link to create an app id.  A sample bundle identifier looks like- com.domainname.appname

If you have already created a Facebook app for your website then please follow steps below-

 

  • Open the Facebook App Dashboard by clicking on this link and selecting your application.
  • Select Settings from the left navigation.
  • Click Add Platform at the bottom of the page and select iOS.
  • Paste your bundle identifier into the Bundle ID field.

  • Enable Single Sign On.
  • Click Save Changes at the bottom of the App Dashboard window.
  • Let our team know your bundle ID so we can compile your app with your bundle id.

Configure Facebook App Settings for Android

If you have already created a Facebook app for your website then please follow steps below-

 

  • Contact our team to provide you with package name, class name and key hashes.
  • Open the Facebook App Dashboard by clicking on this link and selecting your application.
  • Select Settings from the left navigation.
  • Click Add Platform at the bottom of the page and select Android.
  • Now add the details provide by our team.
  • Keep single sign on switched off.