Skip navigation

PHP JUGNOON Membership Documentation

Overview


A complete startup project for integrating next generation, lighter, faster and secure, bootstrap, jquery compatible membership process in your existing or new php applications.

View details »


Change Log


ver 1.0.2

  • Fixed include path issues. Now script will adjust paths automatically without adjusting it manually based on server settings.
  • Fix minor photo uploading issue, caused in case of admin access control panel then switch to myaccount.
  • Fix minor csrf key generation issue on first attempt.

ver 1.0.1

Extend jquery ajax to handler errors on callback request more efficiently


What's Included

root/
├── adm/ (admin control panel)
├── channels/ (user channel management, scripts and utilities)
├── css/ (css files)
├── images/ (images)
├── include/ (website configurations, handlers, security, utility and other files)
├── js/ (javascripts)
├── locale/ (multiple user interface files)
├── myaccount/ (user myaccount management)
├── plugins/ (third party plugins)
├── user/ (public user profiles)
├── widgets/ (normal user controls)

Admin Control Panel

adm/sc/
├── include/ (normal user controls)
├── ip/ (ip block management)
├── languages/ (multi language user interface management)
├── mail/ (mail template management)
├── members/ (user profile management)
├── screening/ (data and user screen dictionary management)
├── subscribers/ (email subscriber management)

Admin Control Panel Folder Management

ip/
├── modules/ (normal user controls)
│    ├── form.php (ajax form processing for add or update records)
│    ├── handler.php (ajax backened handlers with secured csrf protection for processing ajax queries)
│    ├── js.php (page level jquery javascripting)
│    ├── list.php (for handling ajax data listing)
│    ├── menu.php (for managing toolbar menus)
├── index.php (core management page)

Same structure for all other control panel managment sections.

Channels

channels/
├── scripts/ (core channel application scripts)
│    ├── channelitem.php (Responsible for generating any level single user profile item.)
│    ├── chnlst.php (Responsible for generating any level normal and ajax oriented user profile listings.)
├── widgets/ (Handling normal channel modules)
│    ├── advsearch.php (Advance search module)
│    ├── ajaxlist.php (Ajax listing example module)
│    ├── list.php (Normal user channel listing module)
│    ├── tsearch.php (Normal channel search module)

Contents

contents/
├── member/ (core channel application scripts)
│    ├── [username] (Each user own folder for storing user specific contents and user profile images.)
│    │   ├── photos (Storing user profile photoes)

CSS

css/
├── base/ (main theme)
│    ├── images/ (Base theme images)
│    ├── bootstrap-glyphicons.css
│    ├── bootstrap.min.css
│    ├── layout.css (website own style sheet)
├── fonts/ (glyphicons fonts)

Include

include/
├── bll/ (main data access and business logic layer classes)
├── controls/ (normal operation dropdown controls)
├── entity/ (data entity classes)
├── handler/ (core ajax request handling files)
├── mail/ (core mail & mail template processing files)
├── meta/ (page meta information processing scripts)
├── modules/ (basic user page controls, like header, footer)
├── scripts/ (portable application scripts like pagination)
├── security/ (various security handling classes)
├── settings/ (website specific settings)
├── utility/ (all utility and general purpose classes)
├── config.php (core website configurations)
├── db.php (database access settings)
├── memcache.php (memcache - memory cache handlings)

Locale

Language specific user interface. Language must be enabled from include/settings/general.php file.

locale/
├── ar_SA/
├── cs_CZ/
├── de_DE/ 
├── el_GR/ 
├── en/ 
├── es_ES/
├── fr_FR/
├── hi_IN/ 
├── hr_HR/
├── it_IT/
├── ja_JP/
├── nl_NL/
├── pt_BR/
├── ro_RO/ 
├── ru_RU/ 
├── sv_SE/ 
├── tr_TR/
├── zh_CHS/
├── zh_CHT/ 

Myaccount

myaccount/
├── include/ (basic operation files)
├── widgets/ (normal myaccount page specific modules)
├── account.php (manage account)
├── email.php (email options)
├── index.php (main myaccount page)
├── profile.php (user profile update page)

User

user/
├── widgets/ (normal user page specific modules)
├── index.php (main user profile, url rewrite module must be enabled)

Widgets

widgets/
├── contact.php (contact us module)
├── createaccount.php (create account module)
├── emailsubscription.php (email subscription module)
├── forgot.php (forgot password module)
├── login.php (login module)
├── loginsm.php (top user login module)
├── nav.php (core navigation module for handling both right and left side navigation)
├── privacy.php (privacy policy module)
├── terms.php (terms of use module)

Installation


Dependencies

Feature Dependency
Multi Language User Interface By default this option is disabled. php_gettext.dll should be enabled in order to enable it. You can enable it from include/settings/general.php
Memcache By default cache data option is disabled. In order to enable it you must install and enable memcache on your server. Memcache Installation
Friendly Urls (Url Rewrite Module) By default friendly url option is disabled. In order to enable it you must enable url rewrite module. Rules defined in .htaccess file. Can be enabled it from include/settings/general.php

Steps

Installation steps

  • Copy files from bundle/project/ on root of your website project.
  • Copy files from bundle/plugins/ on root of your website project.
  • Go to include/config.php page and adjust website url settings.
  • Go to include/db.php page and adjust database connection string settings.
  • Go to include/settings/general.php page and enable, disable all features you needed.
  • Go to include/settings/registration.php page and enable, disable all options you want to be available in registration page.

Installation Video


Theme Adjustment

PHP Membership Script uses twitter bootstrap 3.0 compatible theme by default. We recommend you to use theme compatible with twitter bootstrap 3.0 in order to avoid any design issues. Here is steps.

All basic modules including header, footer etc located in folder include/modules/

  • Go to include/modules/top.php to adjust webstie specific page meta, css, js and other informations.
  • Go to include/modules/tnav.php to adjust website top core navigation.
  • Go to include/modules/header.php to manage core header part of design.
  • Go to include/modules/footer.php to manage footer part of design.

You can attach specific css or js file with specific page via code shown below. e.g register page uses bootstrap validation script for validating fields.

include_once("include/modules/top.php"); // page headers
$headers = new vskHeader();
// attach validation js file
$ascript = "<script src=\"" . SITE_DOMAIN . "plugins/jqval/jqval.js" . "\"></script>\n";
echo $headers->tHeaders($ascript);	

Theme CSS Adjustment

Ass css files located under css/[theme]/ folder. All website specific css classes written in file layout.css.


Database


Tables

List of database tables associated with membership scripts

tables/
├── blockip (user block ip address data)
├── dictionary (storing screening data and restricted user names)
├── languages (multi language user interface data)
├── mailtemplates (mail template data storage)
├── subscribers (user subscribers data)
├── users (users data)
├── users_ipaddress (user ip address log data)


Plugins


List of third party plugins we used in membership kit. Most of plugins located in folder plugins. All plugins we used are available for free but still you must use & obey their own license terms & conditions before using it.

Name Detail
Twitter Bootstrap http://getbootstrap.com/
Plupload For uploading photos. http://www.plupload.com/
Captcha For using chapcha on login or registration page. http://code.google.com/p/cool-php-captcha
Chosen Dropdown Plugin https://github.com/harvesthq/chosen/blob/master/LICENSE.md
Html Purifier http://htmlpurifier.org/
Bootstrap Validation Plugin http://reactiveraven.github.io/jqBootstrapValidation/
PassHash For password encryption. http://www.openwall.com/phpass/
PHP Mailer For sending mails. https://github.com/PHPMailer/PHPMailer

Configurations


Core Configurations

Core configuration of membership script located at include/config.php file.

Name Default Value Detail
ROOTPATH Website Root Path Represent root path of membership script.
UPLOAD_DIRECTORY_PATH ROOTPATH . "contents/member/" Represent member content directory path
SITE_DOMAIN http://localhost/membership/ Represent website url
Page_Caption Membership Append it with each page title e.g Create Account - Membership
SITE_DIRECTORY_PATH SITE_DOMAIN . "contents/member/" Represent user content directory url
SITENAME Membership Can be used as logo
LOGOURL Logo URL Logo image url
THEMEPATH SITE_DOMAIN . "css/base/" Path of core css theme used in project

General Configurations

General configuration used to switch on or off various features available in membership script. General configurations available in file include/settings/general.php

Name Default Value Detail
Admin_Mail support@jugnoon.com Administrator mail address for receiving admin notifications.
Admin_Mail_DisplayName JUGNOON Represent name in while sending mails to other users.
Pagination_Links 501 Maximum pagination links to display, 0 for unlimited
Screen_Content 1 0: screen, 1: screen and replace
Content_Approval 1 1: automatic, 0: manual (administrato must review content before approval)
Spam_Count 10 Maximum unique spam count before blocking content automatically
Store_IPAddress true Store ip address with each content type
Channel_Views true Keep track of user channel views
Maxiumum_Dynamic_Url_Length 50 Maximum dynamic url length, 0 for unlimited.
Date_Default_Time_Zone Set time zone according to your regional settings
NavigationSection 1 0: left side (two column)
1: right side (two column)
2: three column two navigation on left and right side and body within center
PanelStyle 1 0: Default Style
1: Default Panel Style
2: Primary Panel Style
3: Warning Panel Style
4: Danger Panel Style
5: Info Panel Style
6: Success Style
Facebook_url xx Facebook page url
Twitter_url xxx Twitter page url
FB_AppID xxx Facebook app id
FB_AppKey xx Facebook application key
FB_AppSecret xxx Facebook application secrete key
ShowFacebookMetaTags true True will add facebook meta tags with each page

Feature Adjustments

Name Default Value Detail
Feature_Cache 0 Enable cache through memcache object. It must be enabled before enabling cache.
Feature_Channels 1 1 (enabled), 0 (disabled).
Feature_Email true Sending emails. true (enabled), false (disabled).
Feature_Email_Verification 1 User account activation via email. 1 (enabled), 0 (disabled).
Feature_Views 1 1 (enabled), 0 (disabled).
Feature_Date 1 1 (enabled), 0 (disabled).
Feature_MemberRegistration 1 Enable or disable user registration process. 1 (enabled), 0 (disabled).
Feature_FacebookRegistration 1 Enable or disable user registration through facebook. 1 (enabled), 0 (disabled).
Feature_UserName 1 1 (enabled), 0 (disabled).
Feature_Chapcha 1 Enable or disable chapcha control on user registeration or login pages. 1 (enabled), 0 (disabled).
Feature_LastLogin 1 Enable or disable storing user last login information. 1 (enabled), 0 (disabled).
Feature_IPBan 1 Enable or disable ip address banning. 1 (enabled), 0 (disabled).
Feature_IPLog 1 Enable or disable ip address logging after registeration to keep track of user ip addresses. 1 (enabled), 0 (disabled).
Feature_Languages 0 Enable or disable Multi language user interfaces and selections. 1 (enabled), 0 (disabled).
Default_CultureInfo ar_SA Set default culture settings. 1 (enabled), 0 (disabled).

Thumb Settings

Name Default Value Detail
ThumbWidth 150 Set thumb width. (for thumb generation)
ThumbHeight 150 Set thumb height. (for thumb generation)
MidWidth 500 Set medium thumb width.
MidHeight 500 Set medium thumb height.

Registeration Settings

Registration options on or off can be done from file include/settings/registration.php file.

Name Default Value Detail
showFirstName 1 1: on, 0: off
showLastName 1 1: on, 0: off
showCountry 1 1: on, 0: off
showRelationship 1 1: on, 0: off
showGender 1 1: on, 0: off
showDOB 1 1: on, 0: off
showPrivacyCheck 1 1: on, 0: off

Data Access Layer


Files

All data processing and busines logic processing handle by files located at include/bll/ folder.

include/bll/
├── blockipmgt.php (for handling ip block data access & business layer managment)
├── dictionarymgt.php (for handling screening dictionary data access & business layer managment)
├── emailsubscriber.php (for handling email subscription data access & business layer managment)
├── languagemgt.php (for handling language mangagement data access & business layer managment)
├── mailtemplatemgt.php (for handling mail template data access & business layer managment)
├── membersmgt.php (for handling members management data access & business layer managment)
├── useriplog.php (for handling user ip log management)

Data Access Examples

Membership script uses advance PDO script for handling and processing data between database and website. We have extended PDO classes for making code as much easy as we can. Here is list of sample example code.

Add Operation

$db = new DB();
$lastinsertid = true;
$queryAnalysis = false;
$id = $db->Insert("[tablename]", $fields, $lastinsertid, $queryAnalysis); 
return $id;

[tablename] represent table name, while $fields represent array of fields with values e.g

$fields = array('field01' => 'value01', 'field02' => 'value02');

Update Operation

$db = new DB();
return $db->Update("[tablename]", $fields, $filters, $queryanalysis);

$filters represent sql where filter clause.

$filter = array('id' => '23', 'isenabled' => '1'); // goes to WHERE id = 23 AND isenabled = 1;

Delete Operation

$db = new DB();
$db->Delete("[tablename]", $filters);

Count Operation

$db = new DB();
return $db->Count("[tablename]", $filters);

Fetch Operation

$db = new DB();
return fetch_values($fields, $isadmin, $filters, $ismultiple = false, $queryonly=false);

$fields list of table fields to fetch e.g "username, firstname, lastname, email"
$isadmin true or false
$filters where clause array of values to filter records
$ismultiple true or false for fetching single or multiple records
$queryonly true or false for returning sql query for analysis purpose.


Security


User Authentication

For user and admin authentication, auth.php file uses and its located in folder include/security/auth.php

auth.php

Name Default Value Detail
isAuth false Check whether user is authenticated.
userName "" Represent username after authentication
pictureName none Represent picture name after authentication
isAdmin false Check whether current authorized user is admin or not
readOnly false Check whether current user is read only admin or have full previlages
isAuthenticated() false Check whether user is authorized
isAdminAuthenticated() false Check whether admin is authorized
authenticateUser($data) void Authorize user with data send in array variable $data

Examples

Check whether user is authorized to access restricted areas e.g myaccount.

include_once("../include/security/auth.php");
$auth = new vskAuth();
if($auth->isAuthenticated())
{
    echo "User is Authorized, UserName: " . $auth->userName;
}
else
{
	 echo "User is not Authorize;
}

Check whether admin is authorized

include_once("../include/security/auth.php");
$auth = new vskAuth();
if($auth->isAdminAuthenticated())
{
    echo "Admin is Authorized, UserName: " . $auth->userName;
}
else
{
	 echo "Admin is not Authorized;
}

CSRF Authentication

In membership script and almost every other project, all server side processing handle by ajax request. Due to security risk of CSRF attacks to access sensitive handler files directly, we implemented advance CSRF protection script.

A unique token is generated after every page or ajax request and later it's appended with ajax request and then validated at server processing time. CSFR token is first time generated by script located at include/security/generatetoken.php. This file is called in footer.php page. Please don't remove this include file otherwise no ajax operations will take place.


Password Encryption

Password is stored in encrypted format using algorithm developed by Portable PHP password hashing framework


Chapcha

Membership script support enabling chapcha for creating account and login. It can be enabled from General Configuration section through option Feature_Chapcha. Chapcha is third party plugin, available at http://code.google.com/p/cool-php-captcha


User Channels


Channel Listings

Membership script allow you to generate advance normal and ajax oriented, simple to complex user channel listing using easy to use configuration options. Channel listing is handled by class channelList located in file channels/scripts/chnlst.php.

Channel List Properties

Name Default Value Detail
isPanel true Enable or disable bootstrap panel box to wrap up all channel listing items.
pannelStyle 0 Setup panel style
You can check all panel styles at include/utility/labels.php under function prepareBoxtyle.
isHeading true Display panel heading if isPanel is true.
pannelHeading "" Panel heading caption if isHeading is true
listStats true Enable or disable displaying list statistics
enableSearch false Enable list base search option. Work only in ajax listing.
searchPlaceHolder "Search Channels" Search textbox placeholder caption if enableSearch is true.
searchWidth 140px Set width of search text box if enableSearch is true.
query queryOptions Object Return query settings to refine channel listings based on search queries.
Query Options
$clist->query->addedFilter = 0; // filter records by added date (1: today, 2: this week, 3: this month, 0: all time)
$clist->query->term = ""; // filter results by search term
$clist->query->searchType = 1; // 1: broad search, 0: username
$clist->query->order = "register_date desc"; // order records by fields
$clist->query->isEnabled = 1; // 1: enabled, 0: disabled, 2: all
$clist->query->month = 0; // archive based on selected month, 0 no filter
$clist->query->year = 0; // archive based on selected year, 0 no filter
$clist->query->viewFilter = 0; // all, 1: today viewed, 2: this week viewed, 3: this month viewed
$clist->query->userType = 100; // 0: normal, 1: admin, 2: permium, 100 all
$clist->query->relationshipStatus = ""; // empty no filter
$clist->query->pictureName = 'none'; // none mean no filter
$clist->query->gender = ""; // empty no filter
$clist->query->countryName = ""; // empty no filter
channelAttr itemOptions Object Return main options for customization of each channel list item.
Item Options
$clist->channelAttr->listType = 1; // 1: list view, 0: normal view 2: thumb only
$clist->channelAttr->showUserName = true; // enable or disable showing user name
$clist->channelAttr->showEnabled = false; //  enable or disable showing enable status
$clist->channelAttr->bootstrapListing = true;  // show bootstrap listing style, if false then normal listing without box style
$clist->channelAttr->showLocation = true; // show location info, recommended to enable if listType = 1
$clist->channelAttr->imageHeight = 100;  // set image height
$clist->channelAttr->imageWidth = 100;  // set image widgth
$clist->channelAttr->thumbLinkCss = ""; // e.g thumbnail
$clist->channelAttr->thumbCss = "img-circle"; // img-rounded, img-circle, img-thumbnail
$clist->channelAttr->totalColumns = 6; // total columns in each row
$clist->channelAttr->showViews = true; // show , hide views 
$clist->channelAttr->showDate = true; // show, hide date
$clist->channelAttr->dateFormat = 3; // set date format
You can extend channelOptions class to add more channel properties defined in channelitem class located in file channels/scripts/channelitem.php
norecordText No Records Found Display if no record found based on query
moreUrl "" Display, browse more, see all etc link on bottom right part of listing
moreText "" Set more link caption
moreTooltip "" Set more link tooltip
isCache "" true or false memory cache for listing. Memcache must be enabled.
listNav true enable or disable top navigation e.g Most Viewed, Recently Added.
navListOptions array() Set top navigation links
// most recent
$options = new navOptions();
$options->name = "Most Recent";
$options->url = $channelUrl;
$options->isActive = false;
$navItems[] = $options;
// most viewed
$options = new navOptions();
$options->name = "Most Viewed";
$options->url = $channelUrl . "mv/"; 
$options->isActive = true;  // make this tab active
$navItems[] = $options;
// have photos
$options = new navOptions();
$options->name = "Photos Only"
$options->url = $channelUrl . "ph/";
$options->isActive = false;
$navItems[] = $options;
// append with channel listing object
$clist->navListOptions = $navItems;
navCss nav nav-tabs Set main navigation ul css.
linkCss Set navigation link css.
activeLinkCss Set navigation active link css.
activeNavCss active Set navigation active li css.
dateFilterNav true Enable or disable date filter navigation if listNav is true.
dateUrls Array Set urls for date filter options, (today, this week, this month, all time)
array("index.php?filter=1", "index.php?filter=2", "index.php?filter=3", "index.php?filter=0");
Set urls at runtime via
$clist->dateUrls[0] = $channelUrl . "?filter=1"; // today added
$clist->dateUrls[1] = $channelUrl . "?filter=2"; // this week added
$clist->dateUrls[2] = $channelUrl . "?filter=3"; // this month added
$clist->dateUrls[3] = $channelUrl; // all time
navActiveTabIndex 0 Set active tab index for navigation.
isLimited false Set listing as short listing or main listing with proper pagination.
listType 0 Set list item style (0: normal, 1: list, 2: thumb only)
pageNumber 1 Set current page number.
pageSize 20 Set page size
isAdmin false Set listing mode as admin or normal.
enablePagination true Enable or disable pagination. You can make it false for displaying just few fixed records.
paginationType 0 // 0: normal, 1: advance, 2: simple (next previous only)
defaultUrl "" set default url.
$clist->defaultUrl = 'index.php';
paginationUrl "" set pagination url
$clist->paginationUrl = 'index.php?p=[p]'; // replaces with index.php?p=23; where 23 is current page index.
queryAnalysis false // enable or disable query analysis for debuing. if enabled it will display complete sql query on top of listing which are responsible for fetching channel data.

Example Code


Pagination Setup

$pageNumber = 1;
$clist->enablePagination = true; // enable pagination
$clist->defaultUrl = 'index.php';
$clist->paginationUrl = 'index.php?p=[p]'; 
$clist->pageNumber = $pageNumber;
$clist->pageSize = 8;
$clist->paginationType = 2; // 0: normal, 1: advance, 2: pager

More Link Settings

$clist->moreUrl = "channels/";
$clist->moreText = "see all";
$clist->moreTooltip = "browse all channels";

Query Analysis

This option if enabled with display complete sql query on top of listing in order to review if there is any issue or need modification.

$clist->queryAnalysis = false;

Layout Options

These options will adjust complete layout of each channel item within listing.

$clist->channelAttr->listType = 1; // 0: grid view, 1: list view, 2: thumb only
if($clist->channelAttr->listType == 1)
{
	// detail listings
	$clist->channelAttr->bootstrapListing = true; // enable bootstrap border around item
}
$clist->channelAttr->showUserName = true;
$clist->channelAttr->showEnabled = false;
$clist->channelAttr->showLocation = true;
$clist->channelAttr->imageHeight = 92;  
$clist->channelAttr->imageWidth = 93;  
$clist->channelAttr->thumbLinkCss = ""; // e.g thumbnail
$clist->channelAttr->thumbCss = $thumbCss; // "img-rounded"; // img-rounded, img-circle, img-thumbnail
$clist->channelAttr->totalColumns = 6;
$clist->channelAttr->showViews = true;
$clist->channelAttr->showDate = true;
$clist->channelAttr->dateFormat = 3;

Enable Date Filter Options

$clist->dateFilterNav = false;
$clist->dateUrls[0] = $channelUrl . "?filter=1"; // today added
$clist->dateUrls[1] = $channelUrl . "?filter=2"; // this week added
$clist->dateUrls[2] = $channelUrl . "?filter=3"; // this month added
$clist->dateUrls[3] = $channelUrl; // all time

Top Navigation Settings

$clist->listNav = false; // disable list navigation
// most recent
$options = new navOptions();
$options->name = _("Most Recent");
$options->url = $channelUrl;
$options->isActive = true;
$navItems[] = $options;
// most viewed
$options = new navOptions();
$options->name = _("Most Viewed");
$options->url = $channelUrl . "mv/"; 
$options->isActive = false;
$navItems[] = $options;
// have photos
$options = new navOptions();
$options->name = _("Photos Only");
$options->url = $channelUrl . "ph/";
$options->isActive = false;
$navItems[] = $options;
$clist->navListOptions = $navItems;

Enable Top List Stats

$clist->listStats = false; // disable list stats

Query Adjustments

$query = new queryOptions();
$clist->query = $query;
$clist->query->addedFilter = $_GET["filter"]; // filter records by added date (1: today, 2: this week, 3: this month, 4: all time)
$clist->query->term; // filter results by search term
$clist->query->searchType; // 1: broad search, 0: username
$clist->query->order; // order records by fields
$clist->query->isEnabled; // 1: enabled, 0: disabled, 2: all
$clist->query->month; // archive based on selected month
$clist->query->year; // archive based on selected year
$clist->query->viewFilter; // all, 1: today viewed, 2: this week viewed, 3: this month viewed
$clist->query->userType; // 0: normal, 1: admin, 2: permium
$clist->query->relationshipStatus;
$clist->query->pictureName;
$clist->query->gender;
$clist->query->countryName;

Panel Adjustments

$clist->panelStyle = 0; // from 0 to 8
$clist->isPanel = true; // display panel
$clist->isHeading = true; // display heading
$clist->pannelHeading = "Channel Listing";

Mail Engine


Membership script provide advance script for handling mails, processing mail templates generated through control panel using efficiently.


Enable Mails

You can enable sending mails through general configurations located at include/settings/general.php by option Feature_Email : true

Mails Engine

Class mailprocess responsible for sending mails located at include/mail/mail.php.

Mail Templates

You can create unlimited mail templates using Mail Template section of Control Panel. You can use the following structure [value] within mail template engine in order to replace it with dynamic value at time of mail template processing.
e.g [username] -> process to -> tomy03 (username of user)

Mail Template Processing

Few mail templates responsible for sending mails and notications to users and admins are written under file include/mail/templates/basic/member.php. List of mail templates processing functions below. You can make similar functions for each mail template you created via control panel.

Function Name Description
createAccount Processing create account mail template with unique key USRREG. This function is responsible for sending mail to user when he / she create new account.
forgotPassword Processing forgot password mail template with unique key FORPASS. This function is responsible for sending mail to user when he / she uses forgot password feature of account.
USREMLCREQ Processing change email mail template with unique key USREMLCREQ. This function is responsible for sending mail to user when he / she tried to change his / her email.

Multi Language User Interface


Membership script support user interface in more than 20 international languages. You can use list of languages you want as an option for users and can set default language.


Enable Languages

Be default, language option may be disabled. You must enable php_gettext.dll in your php configuration. You can enable languages through general configurations located at include/settings/general.php by option Feature_Languages : 1 (true)

Set Default Culture

You can set default languages culture through general configurations located at include/settings/general.php by option Default_CultureInfo : e.g "ar_SA"

Language Selection

Complete list of available languages located at Control Panel: Language Management section. You can choose list of languages you want to appear in public Languages dropdown on top navigation.

Note: All languages are translated through http://translate.google.com/. There may be chances of wrong translation. You can adjust manually any language you want through utility program http://www.poedit.net/.


IP Log


Membership script provide a way to block and manage block ip addresses. Once blocked, user with block ip address can't make registeration and login to website to perform various activities.


Block IP

You can block any ip address using Control Panel: IP Log management.


Email Subscriber


Membership script allow you to manage email subscription and send email to all subscribers using Control Panel: Subscriber section.


Module

By default email subscriber module is not used, it is located in widgets/emailsubscription.php, You can easily use it just by including this module on footer or any other part of your website according to your website design.


Members

Membership script comprehensive feature for managing members and every type of actions and data associate with him / her.


Members Management

You can manage all members using Control Panel: Members Management section. Main management include

  • Actions: delete, enable, disable user profiles.
  • Create new account (admin or normal account.
  • Approve disabled, unapproved accounts.
  • Comprehensive user profile filters and search options (registered today, this week, this month, all time, searches, enabled users, disabled users, users by country, gender, role and more.
  • Order records by various options.
  • Display user profile listing in grid, list or thumb only view.
  • One page management using advance real time jquery ajax and twitter bootstrap user interface.
  • Real time user profile change avator.
  • Change user specific options and data e.g change email, password, role, user profile data, email options and more.
  • View user logged in ip address logs.
  • and more.

My Account

Member script provide complete My Account section with all feature to allow users to

  • Update user photo
  • User user profile data
  • Manage email options.
  • Change email
  • Change password and more

User Profile

Member script provide utility user public profile with basic user data display. It work as startup, you can extend it to display all user public data and means of communication with other users within website (e.g add friends, send messages, post sharing and more)

Url Rewrite Module must be enabled to access user profiles as it uses user friend urls with pattern url/[username].html.

Administrator

There are three types of users supported by membership script. Type of user and read only access information stored in type (0, 1, 2), readonly (true: false) in users table.

  • Normal User: Only manage his / her own account. type: 0
  • Premium User Same normal user but have paid privilages. type: 2
  • Administrator Both normal members and control panel access to manage all administrator tasks. There are two flags stored in readonly field of users table. If readonly : true then same administrator has readonly access privilages to control panel. Only access control panel but can't made changes or use add, edit, delete operations.

Administrator Access

Admin control panel can be accessed through readonly admin user. Via this account you can review all features and sections but you can't perform actions (e.g add, edit, delete).
User Name: guestadmin,
Password: admin123.

Facebook Auto Login / Signup

Membership script support the use of facebook authentication mechanism to automatically signup (create account) and login to website. In order to use this approach you must complete the following steps.

  • Register you website app via http://developer.facebook.com
  • Once app created, add your domain information to allow your domain for facebook authorization.
  • You will receive Facebook App ID and Facebook Secrete ID.
  • Now open your website general configuration section and fill the following options
  • Set Feature_FacebookRegistration (value must be : 1) to enable login, signup through facebook.
  • Set FB_AppID with newly created facebook app id.
  • Set FB_AppSecret optional with newly created app id.
  • Done. Now go to website and click on facebook button, you will see facebook authorization will start. It will ask user to accept permission in order to allow access to website for using your information / permssion on behalf of you.
  • If use grant permission, facebook will sent user data to website, website handler will pass data to internal processing script.
  • If user is new, automatically new account will be created, enabled & provide direct authorization to website.
  • In next attemp user will be auto login by using existing account created automatically.
  • If user account creatd on facebook, same user will not be able to login manually (no password provided). He can only be login through facebook button.
  • Facebook access permission levels set under js file js/main.js within js function fb_login(u, redirect) with scope of permission scope: 'email,user_birthday,user_hometown,publish_stream'. You can adjust it according to your website need. Greate the permission you request from users, lesser will be user to trust on your website. So be carefully set these permission and avoid permission if not needed like publish_stream which tell user that website will post on your wall on behalf of you.

Newsletter

Enter your e-mail and subscribe to our newsletter in order to get email notifications of our product upgrades and new product release.

Follow Us