added invitation module
This commit is contained in:
parent
eaf713bd15
commit
7feed93a56
3 changed files with 107 additions and 6 deletions
24
INSTALL
24
INSTALL
|
@ -1,26 +1,38 @@
|
|||
Installation guide
|
||||
|
||||
The following notes apply to pre-alpha releases. Some manual installation is required at this time.
|
||||
The following notes apply to alpha/beta releases. Some manual installation is
|
||||
required at this time.
|
||||
|
||||
|
||||
1. Requirements
|
||||
- Apache with mod-rewrite enabled and "Options All" so you can use a local .htaccess file
|
||||
- PHP > 5.1. The later the better. You'll need 5.3 for full openssl encryption support
|
||||
- PHP command line access with register_argc_argv set to true in the php.ini file
|
||||
- Apache with mod-rewrite enabled and "Options All" so you can use a
|
||||
local .htaccess file
|
||||
- PHP > 5.1. The later the better. You'll need 5.3 for full openssl
|
||||
encryption support
|
||||
- PHP *command line* access with register_argc_argv set to true in the
|
||||
php.ini file
|
||||
- Mysql 5.x
|
||||
- cron
|
||||
|
||||
[Dreamhost.com offers all of the necessary hosting features at a
|
||||
reasonable price. If your hosting provider doesn't allow Unix shell access,
|
||||
you might have trouble getting everything to work.]
|
||||
|
||||
2. Edit htconfig.php and change system settings. Rename to .htconfig.php
|
||||
|
||||
3. Import database.sql into your database with mysql command line or via phpmyadmin
|
||||
|
||||
4. Import updates.sql to catch any late-breaking devel changes
|
||||
4. Import updates.sql (if it exists) to catch any late-breaking devel changes
|
||||
|
||||
5. Put this directory into the root of your web server document area.
|
||||
- To use a subdir of your main site, set the
|
||||
config variable $a->path to the relative subdir
|
||||
For example to use http://example.com/test -
|
||||
in .htconfig.php - for example to use http://example.com/test -
|
||||
set $a->path to 'test'.
|
||||
- Everything will work much better if you can dedicate a domain
|
||||
or subdomain so that you don't require an extra server path.
|
||||
|
||||
6. Navigate to your site with a web browser and register an account.
|
||||
|
||||
7. Set up a cron task to run "php include/poller.php http://my.domain.name" once every 5-10 minutes.
|
||||
|
||||
|
|
63
mod/invite.php
Normal file
63
mod/invite.php
Normal file
|
@ -0,0 +1,63 @@
|
|||
<?php
|
||||
|
||||
|
||||
function invite_post(&$a) {
|
||||
if(! local_user()) {
|
||||
notice( t('Permission denied.') . EOL);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
$recips = explode("\n",$_POST['recipients']);
|
||||
$message = $_POST['message'];
|
||||
|
||||
$total = 0;
|
||||
|
||||
foreach($recips as $recip) {
|
||||
|
||||
$recip = trim($recip);
|
||||
|
||||
if(!eregi('[A-Za-z0-9._%-]+@[A-Za-z0-9._%-]+\.[A-Za-z]{2,6}', $recip)) {
|
||||
notice( $recip . t(' : ') . t('Not a valid email address.') . EOL);
|
||||
continue;
|
||||
}
|
||||
|
||||
$res = mail($recip, t('Please join my network on ') . $a->config['sitename'], $message, "From: " . $a->user['email']);
|
||||
if($res) {
|
||||
$total ++;
|
||||
}
|
||||
else {
|
||||
notice( $recip . t(' : ') . t('Message delivery failed.') . EOL);
|
||||
}
|
||||
|
||||
}
|
||||
notice( $total . t(' messages sent.') . EOL);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
function invite_content(&$a) {
|
||||
if(! local_user()) {
|
||||
notice( t('Permission denied.') . EOL);
|
||||
return;
|
||||
}
|
||||
|
||||
$tpl = file_get_contents('view/invite.tpl');
|
||||
|
||||
$o = replace_macros($tpl, array(
|
||||
'$invite' => t('Send invitations'),
|
||||
'$addr_text' => t('Enter email addresses, one per line:'),
|
||||
'$msg_text' => t('Your message:'),
|
||||
'$default_message' => t('Please join my social network on ') . $a->config['sitename'] . t("\r\n") . t("\r\n")
|
||||
. t('To accept this invitation, please visit:') . t("\r\n") . t("\r\n") . $a->get_baseurl()
|
||||
. t("\r\n") . t("\r\n") . t('Once you have registered, please make an introduction via my profile page at:')
|
||||
. t("\r\n") . t("\r\n") . $a->get_baseurl() . '/profile/' . $a->user['nickname'] ,
|
||||
'$submit' => t('Submit')
|
||||
));
|
||||
|
||||
return $o;
|
||||
|
||||
|
||||
}
|
26
view/invite.tpl
Normal file
26
view/invite.tpl
Normal file
|
@ -0,0 +1,26 @@
|
|||
<form action="invite" method="post" id="invite-form" >
|
||||
<div id="invite-wrapper">
|
||||
|
||||
<h3>$invite</h3>
|
||||
|
||||
<div id="invite-recipient-text">
|
||||
$addr_text
|
||||
</div>
|
||||
|
||||
<div id="invite-recipient-textarea">
|
||||
<textarea id="invite-recipients" name="recipients" rows="8" cols="32" ></textarea>
|
||||
</div>
|
||||
|
||||
<div id="invite-message-text">
|
||||
$msg_text
|
||||
</div>
|
||||
|
||||
<div id="invite-message-textarea">
|
||||
<textarea id="invite-message" name="message" rows="10" cols="72" >$default_message</textarea>
|
||||
</div>
|
||||
|
||||
<div id="invite-submit-wrapper">
|
||||
<input type="submit" name="submit" value="$submit" />
|
||||
</div>
|
||||
|
||||
</form>
|
Loading…
Reference in a new issue