/omni-inviter

Automatically exported from code.google.com/p/omni-inviter

Primary LanguagePHPOtherNOASSERTION

Omni Inviter v1.0b3
Brett Profitt

Omni Inviter creates and sends custom invitations to friends.  It is easily
extendible with plugins.  Default plugins include:

	* Friends -- Invite friends with email address.  After registration,
	  the inviter and the invited users are marked as each others' friends.
	  
	* Secret -- Invite friends with email addresses secretly.  This method
	  requires the invited user to sign up before it will reveal who 
	  sent the invitation.
	  
	* OpenInviter.com -- Invite friends from other social networks and 
	  email accounts.  This uses OpenInviter <http://openinviter.com>
	  technology to log in to 3rd party websites and send mass
	  invitations.  *See note below.

Once installed, activated, and configured, you will find the link to 
invite users on the left side of the friends list page.  You can also
go directly to it at http://yourelggsite.org/pg/omni_inviter/invite

You can also enable a widget that allows users to show off how many
members they've invited.  This widget only counts the number of invited,
active, validated users!

** LICENSE INFORMATION **

This software is governed under rights, privileges, and restrictions in 
addition to those provided by the GPL v2.  Please carefully read the
LICENSE file for more information.


** A NOTE ABOUT OPEN INVITER  **

OpenInviter (http://openinviter.com) is a set of utilities that allows PHP
applications to access 3rd party email and social networking sites to download
lists of users and to send emails or notifications to these users.  In order
to use this software, you must first register at their website and receive
a unique identification name and key.  Please carefully review the OpenInviter
terms of service and privacy policies--Not all services are free and some 
data is retained.

OpenInviter is not free software.  It not released under the GPL, nor any 
other recognized license.  Therefore, the use of OpenInviter is 
unsupported by me and I make no guarantee it will work.  I do not develop, 
maintain, or provide support for the OpenInviter software--I simply 
developed a plugin for Elgg that can optionally use the OpenInviter 
libraries.  The methods used by OpenInviter are fragile and break easily
when websites update.  Because of this, OpenInviter requires frequent 
monitoring, updating, and significant effort in maintaining.


** INSTALLATION **

	* Unzip the file to the elgg/mods/ directory.

	* Go to your Elgg tools administration section, find the new tool, and 
	  enable it.
	  
	* Enable the invitation methods you want your users to see.  Some of
	  these tools require additional configuration and setup, so be
	  sure to click any [Settings] links you see next to the methods.
	  
	* OpenInviter configuration is more complicated.  As per OpenInviter's
	  Terms of Service, their software cannot be bundled and redistributed
	  with Omni Inviter; You must download and install it yourself.
	  Below is a rough guideline of how to do this:
	    * Register at http://openinviter.com and download the "General" package.
		* Uncompress the download into 
		  mod/omni_inviter/methods/openinviter/vendor/OpenInviter
		  Note the capitalization!!
		  As of this release, changing to the vendor directory and 
		  extracting the contents of the downloaded bundle will 
		  create the correct directory structure.
		  
		  (If you get a message saying OpenInviter is not correctly 
		  configured but the files exist, you may have to change
		  permissions on the new directory by saying:
		    find -type d -exec chmod 755 {} \;
		    find -type f -exec chmod 644 {} \;
		  in the vendor/ directory.)
		* Do NOT run postinstall.php.      
		* Remove mod/omni_inviter/methods/openinviter/vendor/OpenInviter/postinstall.php
		* Configure the OpenInviter settings in Elgg's Tools 
		  administration section.
		* If you are using the Twitter Feed plugin for Elgg you
		  must remove the plugins/twitter.php file from Open
		  Inviter! 

** CONFIGURATION **
	
	* Omni Inviter *requires* a correctly configured, functioning
	  cron!  If you don't have cron configured, invitations will
	  not be sent automatically!

	* The defaults for the messages should be a good start for most.  
	  Be sure to edit your privacy policy!
	  
	* Set a reasonable rate limit for messages.  Remember this needs to be
	  reasonable for you, your potential users, and any web services 
	  between the two.  If you plan to use a plugin that connects to 3rd
	  party sites (like OpenInviter) this shouldn't be much higher than
	  50 messages every 15 minutes.
	  
	* Read up on the variables you can use in the messages.


** USER SETTINGS **

	* Users will find a new configurable tool available that to configure
	  what information they receive when a user they invited joins.
	  
	  
** USE **

	* Users will see an "Invite Users" link when they are looking at
	  their list of friends or in the site-wide search.  

	* The Omni Inviter widget can be enabled for either dashboard
	  or profile views.

	
** OTHER INFORMATION **

	* You can link directly to a method by saying:
	  http://myelggsite.org/pg/omni_inviter/invite?method=METHOD_NAME
	  e.g. for the friend method: .../invite?method=friend
	  
	* It's probably a good idea to turn off the default inviter mod.
	  While having both enabled will not cause problems, it will be
	  confusing for users.

** TODO **
	  
	* Open Inviter's "Check all/none" is pretty dodgy.  Functional, but
	  needs to be rewritten.
	
	* Sorting in admin listing.
		
	* Secret method: option during invitation creation to have custom
	  notifications sent to the invited user.  (Is this important at all?)
	  
	* On very (moderately?) large sites the stats will run into OOM errors
	
	* Add invitation expiration using expiration date.
	
	* Separate the awful pagehandler function into bite-sized chunks.
	
	* Revamp stats to give additional information such as time
	  between creating and new user joining, etc.
	  
	* Pull the mass iterating functionality out into a real function.
	
	
** CHANGES **

v1.0b4 (2009-06-??)
	* Added method stats.
	* Made the config option for max attempted sends work.
	* Correctly settings attributes (md) during inital object creation.
	* Replaced used, sent, and clicked with *_on.  Checking for times > 0.
	* Optimized oi_get_invitation_count() by reducing SQL calls.
	* Removed debugging output when upgrading feature versions.
	* Corrected logic in oi_upgrade(). 
	* Corrected JS for "I am inviting X users."  (Thanks Joni Aaltonen!)
	


v1.0b3 (2009-05-29)
	* Changed get_entities_from_metadata_by_value() to
	  oi_get_entities_from_metadata_by_value() to avoid function name
	  collisons with other plugins.  (Better solution forthcoming.)
	* Added config option for max attempted sends.
	* Added config option to disable cron (and enable manual send).
	* Open Inviter method's link to http://openinviter.com opens in a new
	  window.
	* Adjusted the rate limit defaults and upped the time to 5 minutes
	  minimum since users can set the max_send_attempts to 10.
	* Code cleanup for cron.

v1.0b2.1 (2009-05-28)
	* Removed call to debug log function that was breaking everything.

v1.0b2 (2009-05-26)
	* Updated README.
	* Corrected bug with JS and i10n (Thanks Colin Tate <@colintate>!).
	* Non-success and empty method content will return an error on AJAX
	  loading.  (Thanks Ash <http://www.emediadrop.com/>!).
	* The enter key now works as expected when adding users, logging in to
	  Open Inviter sites, etc.
	* Added "Check all/none" for Open Inviter method.
	* Prettied up some formatting issues and made errors more noticable.
	* Added user settings for receiving a notification when an invite is
	  used.  Metaplugins can extend user settings can be extended the same
	  as site settings.
	* Added transparent support for the PHPMailer plugin by Cash Costello.
	* Fixed saving settings for metaplugins.
	* Fixed occasional problem in setting when the language file wasn't 
	  loaded and default email subject and body were language stubs.
	* Interface for admins shows basic stats on invitations allows 
	  invitations to be resent.

v1.0b1 (2009-05-12)
	* Initial release.