phpFox2 Alpha 4 Released

Posted April 22, 2009 by Raymond Benc in phpFox v2, Development Tutorials

phpFox2 has reached its final Alpha release. Our next release will be our first Beta and there will be four Beta versions before we move onto RC (Release Candidate) versions. Alpha4 introduces 3 larger modules for the public to test as well as several improvements/fixes on the modules we introduced in past versions.

We will shortly cover what is new with Alpha4, however if you would like to catch up with what our 3 past Alphas introduced you can find more information here...


Before we go on with what Alpha4 introduces we need to mention that this is not a finalized product and it is not supported by the phpFox staff. Similar to past Alpha versions this Alpha release is intended for the public to test and provide feedback on what can be improved with the core product and modules.

As this is our final Alpha release our next stage is releasing Beta versions. Our Beta versions similar to Alphas will not be supported by the phpFox staff. We are at a point where the products core engine and modular design is finalized and this will not be changed during Beta stages unless it requires a reconstruction due to a major flaw. During the Beta stage, we will still be developing onto the product to improve all the available modules that will be part of the final stable release. We will still continue to take in requests during Beta, however during that stage our main focus will be improving and fixing all the completed modules. Our Beta release will not include an upgrade script.

There will be 4 Beta versions and we will then move onto the RC (Release Candidate) stage. RC will be the final stage before our Stable release. Our RC version will not introduce any new features or modules unless a feature is designed to replace a feature that contains a flaw. RC versions will introduce an upgrade script that will allow you to upgrade any version of phpFox to v2. Since RC versions will be considered as "finalized" products we will move all hard coded phrases into the default language package, recheck all pages to be XHTML valid and add the final plug-in hooks in the script based on 3rd party developers feedback. Our RC version similar to Alpha and Beta versions will not be supported by the phpFox staff.

Marketplace

phpFox2 Alpha4 introduces the Marketplace module. This module will replace the Classified module we have with all past versions of phpFox as there is more we want to do with this module.

Currently each listing can belong to multiple categories based on a parent/child setup. For example if a listing belongs to a parent category "Car" we display sub-categories for the parent category and it could be Convertibles, Coupes, Hybrids etc.. Each sub-category can have its own set of sub-categories and there is no limit on how many child sub-categories can be created.

Each listing requires to have a title, which is what is used to create a unique URL string for SEO. Short and Full descriptions are supported and adding a price tag for the listing is as well. Currently we only have support for the USD currency, however with a later release we will introduce support to add more currencies direct from the AdminCP.

We have added support to have up to X (where X is defined by Admins) images per listing. Users can add/delete images even after they created the listing. Users can also control which image will be the default image that will be displayed when browsing the marketplace.

When adding or editing a listing a user can directly invite members or guests to view their listing. If editing they can manage this list by viewing who viewed their listing or hasn't.

When viewing a listing users can add comments as well as share the listing. Each listing will be displayed on a users profile.

There is still a lot we want to add with this module and include...
  • Control if users can add comments on your own listing.
  • AJAX popup private message tool so users do not have to leave the page to contact the seller.
  • Tagging.
  • Enable Captcha when adding a listing (User Group Param Setting).
  • Privacy Settings.
  • Featured Listings.
  • "Report a Listing" tool.
  • Short description text counter.
  • Update category usage count each time the category is used.
  • "Total Views" count on listings (User Controlled Feature).
  • Custom Fields. This feature will allow Admins the ability to create custom fields for each category. For example for the category "Car" we could have custom fields such as Color, Transmission, Make etc...
  • Location field should default to the users set location.
  • Give out X (where X is an AdminCP setting) points to user for each listing they add.
  • Add default listing image to the news feed. (Currently only text info displayed).
  • Feature to rate/review a listing.
  • Feature to rate/view the seller/buyer.
  • Section to view ratings/reviews of a listing.
  • Section to view ratings/reviews for a seller/buyer.
  • When viewing a listing display a "More items from this seller" block.
  • When viewing a listing display more detailed information about the seller (eg. Points, Rating, Reviews etc...).
  • Feature to pay for items using one of the provided payment gateways (eg. Paypal, 2checkout etc...).
  • Ability to attach "downloadable" goods, where listing owners can control when items can be downloaded (eg. after/before purchase).
  • Send listing owner an email when one of their invites viewed their listing. (Privacy controlled).
  • Add a search tool for the invite list. (Only for Listing owners).
  • Simple/Advanced search filter.

The list of features provided is part of our future spec list for this specific module and there is no set version/date as to when all these features will be completed. We mainly wanted to share this information with the community as we are getting closer to our Beta release and we feel its time for us to release more information on what some of the final features will be. Note that this is not a final list of features for this module and the door is still open for feature requests.

Currently this module comes with several known issues...
  • Invite routine works for guests to send an invitation, however there is no way to track if they visited the listing so they are always listed under "Not Responded".
  • When creating categories there is no check if a category with the same name already exists in the parent category.
  • The index page for the Marketplace does not include an SQL conditional statement, however this needs to be added once privacy settings are introduced.
  • When viewing a listing and displaying the attached images there needs to be a border around each image since some images have a white background and its hard to identify where the image starts/ends.
  • Auto complete of categories not working when posting the add/edit form when you have failed the validation.
  • BBCode and Emoticons not working on IE.

Events

Similar to the Marketplace module and how we handle categories, each Event can belong to one parent category and as many child sub-categories. When creating an event you can attach an image and directly invite your friends or guests.

Based on how other modules work the title of the event will create a unique URL string for SEO and will add a unique keyword and description to the pages meta tags.

The Event module currently offers the core functionality of what v1.6 provides (RSVP & Commenting), with the exception of extras like sub-categories and an image attachment. Each event you belong too will be displayed on your profile.

Here is a list of some of the future features planned for this module...
  • Privacy Settings.
  • Add default event image to the news feed (Currently supports a text feed).
  • Enable Captcha when creating an event (User Group Param Setting).
  • Featured Events.
  • Reporting an event.
  • Update category usage count each time the category is used.
  • "Total Views" count on events (User Controlled Feature).
  • Give out X (where X is an AdminCP setting) points to user for each event they add.
  • If inviting a guest give them a unique ID so if they RSVP as a guest and sign up we know which user to add to the RSVP list.
  • Add a count to the RSVP list (eg. Attending, Maybe, Can't Make It, Not Responded).
  • Add a search tool for the guest list. (Only for Event owners).
  • Feature to block a user from joining your own event.
  • Send out a notification email to event attendees so they know the event is going to start in X days/hours.
  • Feature to mass mail attendees.
  • Enable attachments.
  • Block to display the most popular events.
  • Simple/Advanced search filter.
  • Tab to display events from: Today, Tomorrow, This Week, This Weekend.
  • Notify event owner when someone joined their event (User Setting).
  • Feature to add Admins for your event to help run the event.
  • Include Photo and Video module.

  • When selecting a "start" or "end" date provide a small calendar to select the date (This feature will be built into other modules as well when there is an area to select a day/month/year.

Currently this module comes with several known issues...
  • When creating categories there is no check if a category with the same name already exists in the parent category.
  • Auto complete of categories not working when posting the add/edit form when you have failed the validation.
  • BBCode and Emoticons not working on IE.
  • Breadcrumb for sub pages needs to be added (eg. My Events, Events I'm Attending).
  • Check to make sure the "end date" is not set before the "start date".
  • Check to make sure the "start date" is not starting in the past, currently there is minimal support for this; however because of the time zone feature and no support yet for DST this cannot be fixed until those are fixed.
  • Disable the ability to edit an event if is closed (eg. past event).

Groups

Our Groups module we wanted to hold off until our first Beta release, however we felt Alpha4 was a good time to introduce this module for public testing as this specific module requires a connection of sorts with other modules. We have designed this module and designing other modules with the ability to make a connection with each other to create a community within a community.

For example with this release we included 3 modules to connect with the parent group module. You may have noticed Comments throughout the site already so this connection is nothing new, however the Group module includes an Event and User module connection. The Event connection allows you to create events within the Group. The User connection allows you to use the same browse tool found in the public browse page to browse members of the group. With this concept we will be able to connect other modules in the future such as Photos, Forums, Polls etc...

Each group similar to a Marketplace listing or an Event can belong to a category and as many child sub-categories. Each group can have a custom photo and while creating/editing a group you can invite your friends or guests to join the group. You can even manage group invites and delete any members from it.

On your profile we list all the groups you belong to for others to see. Each group has a unique name based on the group name provided by the creator. Unlike other modules that prepends a category or controller placeholder to view an item, groups will have its own unique URL name similar to your profile. If the name of your group is "phpfox" the URL based on the setting you have for URL rewriting could look like one of the following:

Each group can also be customized to have their own theme. This uses the new designer tool, which is also included on your profile. With this tool you can currently select a theme for your group and drag-and-drop boxes.

Here is a short video on how to customize your group:



Here is a list of some of the future plans we have for this module:
  • Privacy Settings (Public / Private)
  • Add default group image to the news feed (Currently supports a text feed).
  • Enable Captcha when creating a group (User Group Param Setting).
  • Featured Groups.
  • Reporting a Group.
  • Update category usage count each time the category is used.
  • Total ViewsӔ count on groups (User Controlled Feature).
  • Give out X (where X is an AdminCP setting) points to user for each group they create.
  • Move the "Manage Members" to the main "Members" section so we can utilize the search filter.
  • Enable attachments.
  • Block to display the most popular groups.
  • Simple/Advanced search filter.
  • Notify group owner when someone joined the group (User Setting).
  • Feature to add Admins for your group.
  • Include connections to other modules. (eg. Photo, Forum, Poll, Quiz, Video, Music etc...).

Currently this module comes with several known issues
  • When creating categories there is no check if a category with the same name already exists in the parent category.
  • Auto complete of categories not working when posting the add/edit form when you have failed the validation.
  • BBCode and Emoticons not working on IE.
  • Breadcrumb for sub pages needs to be added (eg. My Groups, My Group Memberships).
  • There are no privacy settings yet, anyone can join a group as well as create events for the group.

Site Customizer

We have introduced a new tool with Alpha4. We are calling it a Site Customizer at the moment as it does the job of allowing you to custom the site. It currently only works in 3 areas. We mentioned this feature in use earlier when introducing our Group module. This tool is designed to work with any area of the site, those areas simply need to have proper "callback" calls in order for the tool to work. First, lets look over how to change the theme we are using for the entire site. This can be done from the sites index page once logged in. Click on "Site Themes" and you can select what theme you would like to browse the entire site in. Here is an example of how to do this:



Note that the new "test" theme we provided is only out for testing and there are many things that do not look "right" with the theme, we basically created it to distinguish it from our default theme.

When using this tool on your profile you can select a theme for your profile which others and yourself can see once you select and save a new theme. Blocks can also be moved to a specific location on your profile and we have added a "Block" link which will toggle all the blocks to make it easier to drag-and-drop them. Here is an example of this tool in action:



Dragging and dropping of blocks currently only works on your own profile or on your own group. We want to include this on the sites index page as well so you can control how the index page is displayed. This tool will also include a feature to add/remove blocks and an advanced CSS editor to manipulate the layout of the page (Profile and Groups only).

AJAX Notifications

With past versions of our Alphas we introduced our notification system. Similar to how it works with v1.6 it can be by default found in the sites index page once a user has logged in. Once a user has browsed away from that page they receive no direct notifications. With Alpha4 we are introducing 2 methods to notifying users wherever they are on the site.

For the first method we added an icon beside where we can change our site status. Once a user receives a new notification or request based on the theme used, the background of the icon will turn gold. There wasn't much thought into the design at the moment or the icon, however the idea behind this feature is to notify the user if they have a new message or friends requests anywhere on the site without being too obtrusive.

The other option we provide is an AJAX request that can be called every X (where X is defined by an Admin) minutes to see if a user has a new notification. If they do they will receive a "slide up" near the bottom right of their browser screen, similar to what you get with MSN messenger on Windows.

Both these features are disabled by default as it requires your server to handle 2 extra SQL queries and the extra AJAX requests to check for new messages. Note that you can disable the AJAX calls and simply use the first method.

Here is an example of how this feature will work:


There isn't any settings to disable this feature just yet other then from the AdminCP. We will be adding a setting so users can disable this feature if they want, as well as an Admin override to disallow users from being able to enable/disable this feature.

Things To Test

Alpha4 has introduced some changes to how our core engine works based on feedback from our community, which alters the functionality and usability in many if not all the modules we provide.

These changes include:
  1. ALT + 255 - The issue with using ALT codes and especially with #255 is this turns into a "blank" space, which allows data to be entered into the database such as when commenting on a users profile. Once displayed it looks like a blank comment. For more information on ALT codes go here. We need help testing where "ALT + 255" can still be added. If you find where please report it to our bug tracker with a full path to where it can be done on our live demo.
  2. Non Alphanumeric & Non Latin Characters - With providing a multilingual product we strive to not only provide our clients with the ability to use it with different language packages but to also allow their members to post data from languages that do not use Latin characters and display them correctly. To solve this problem we convert all data inserted into the database into UNICODE allowing browsers to properly output characters without the need to rely on the database collations or websites character encodings. We need further testing done with such characters as there has been issues that have come up during the Alpha phases, however each one so far has been fixed. To test this specific issue try to add non alphanumeric & non Latin characters when posting anything on the site.
  3. BBCode - With past versions BBCode was not working when adding more then one BBCode in a string. Note, that in some forms the BBCode editor does not work with IE. Issue related to BBCode not working correctly has been fixed, however we need a little more testing in this area. To test this specific issue try to add blogs with as many BBCodes as you can.
  4. Comments - We redesigned how we enter comments into the database in relation to the news feed. Since we need to modify comments if a news feed has been modified we need to include a connection between the 2 modules. To test this issue simply add/edit/delete comments anywhere you find the possibility to add a comment.
  5. HTML Parser Modified - When you enter data into the database such as a blog post we parse the text and save a "fixed" version of your entry so when we display it we save PHP the hassle of parsing the data each time a new person views the item. The issue we have dealt with for a very long time, even with v1.6 is to allow HTML and at the same time keep the site safe. This is always risky when allowing HTML. Another problem was characters such as ">" and "<" would also be removed since we used the function provided by PHP to strip HTML tags. With Alpha4 we have developed a new method to help the HTML parser. Since this routine is fairly new all sections will have to be retested to make sure XSS, CSS and general JavaScript, BBCode exploits do not come up. To test this you will need to add data anywhere on the site and try to exploit the site by means of a XSS, CSS, JavaScript or BBCode. Here is a cheat sheet for XSS exploits.
    Notice: We found an issue already with this new change and it is where you are unable to quote text strings (eg. within the forums).


If you encounter any of the mentioned issues please report them to our bug tracker.

Live Demo

View this alpha demo in action here.

Download

phpFox2 Alpha4 can be downloaded direct from the clients area. When you have selected a license and reached the download page look for œphpFox2 Alpha 4? to download the product.

Developers Documentation

Our developers documentation can be found here.

Change Logs

We have added a spec log here and a SVN change log here for Alpha4.

Feedback and Bugs

Your feedback is appreciated, please feel free to leave them here. We also provide a bug tracker here so we can get ahead and start squashing bugs.

Next Release

Stay tuned for our first Beta release (May 6, 2009), which will introduce more modules to test and updates on the current modules released.

Good luck and Enjoy Alpha4!
Tags: phpFox2