tony baldwin 2012-04-13 14:35:44 -04:00
commit 5f8ecd9068
17 changed files with 269 additions and 7 deletions

BIN
blogger.tgz Normal file

Binary file not shown.

Binary file not shown.

View File

@ -59,6 +59,7 @@ define('FACEBOOK_SESSION_ERR_NOTIFICATION_INTERVAL', 259200); // 3 days
define('FACEBOOK_DEFAULT_POLL_INTERVAL', 60); // given in minutes
define('FACEBOOK_MIN_POLL_INTERVAL', 5);
require_once('include/security.php');
function facebook_install() {
register_hook('post_local', 'addon/facebook/facebook.php', 'facebook_post_local');
@ -648,6 +649,8 @@ function facebook_plugin_settings(&$a,&$b) {
function facebook_plugin_admin(&$a, &$o){
$o = '<input type="hidden" name="form_security_token" value="' . get_form_security_token("fbsave") . '">';
$o .= '<h4>' . t('Facebook API Key') . '</h4>';

BIN
gravatar.tgz Normal file

Binary file not shown.

42
gravatar/README.md Normal file
View File

@ -0,0 +1,42 @@
# Gravatar Plugin
by [Klaus Weidenbach](http://friendica.dszdw.net/profile/klaus)
This addon allows you to look up an avatar image for new users and contacts at [Gravatar](http://www.gravatar.com). This will be used if there have not been found any other avatar images yet for example through OpenID.
Gravatar is a popular, but centralized and proprietary service where people can store an avatar image for their email-addresses. It is widely used on many pages, for example to display an avatar for comment functions, profile pages, etc.
* * *
# Configuration
## Default Avatar Image
If no avatar was found for an email Gravatar can create some pseudo-random generated avatars based on an email hash. You can choose between these presets:
* __Gravatar__: default static Gravatar logo
* __MM__: (mystery-man) a static image
* __Identicon__: a generated geometric pattern based on email hash
* __Monsterid__: a generated 'monster' with different colors, faces, etc. based on email hash
* __Wavatar__: faces with different features and backgrounds based on email hash
* __Retro__: 8-bit arcade-styled pixelated faces based on email hash
See examples at [Gravatar][1].
## Avatar Rating
Gravatar lets users self-rate their images to be used at appropriate audiences. Choose which are appropriate for your friendica site:
* __g__: suitable for display on all wesites with any audience type
* __pg__: may contain rude gestures, provocatively dressed individuals, the lesser swear words, or mild violence
* __r__: may contain such things as harsh profanity, intense violence, nudity, or hard drug use
* __x__: may contain hardcore sexual imagery or extremely disurbing violence
See more information at [Gravatar][1].
## Alternative Configuration
Open the .htconfig.php file and add "gravatar" to the list of activated addons:
$a->config['system']['addon'] = "..., gravatar";
You can add two configuration variables for the addon:
$a->config['gravatar']['default_avatar'] = "identicon";
$a->config['gravatar']['rating'] = "g";
[1]: http://www.gravatar.com/site/implement/images/ "See documentation at Gravatar for more information"

3
gravatar/admin.tpl Normal file
View File

@ -0,0 +1,3 @@
{{ inc field_select.tpl with $field=$default_avatar}}{{ endinc }}
{{ inc field_select.tpl with $field=$rating }}{{ endinc }}
<div class="submit"><input type="submit" value="$submit" /></div>

104
gravatar/gravatar.php Normal file
View File

@ -0,0 +1,104 @@
<?php
/**
* Name: Gravatar Support
* Description: If there is no avatar image for a new user or contact this plugin will look for one at Gravatar.
* Version: 1.0
* Author: Klaus Weidenbach <http://friendica.dszdw.net/profile/klaus>
*/
/**
* Installs the plugin hook
*/
function gravatar_install() {
register_hook('avatar_lookup', 'addon/gravatar/gravatar.php', 'gravatar_lookup');
logger("installed gravatar");
}
/**
* Removes the plugin hook
*/
function gravatar_uninstall() {
unregister_hook('avatar_lookup', 'addon/gravatar/gravatar.php', 'gravatar_lookup');
logger("uninstalled gravatar");
}
/**
* Looks up the avatar at gravatar.com and returns the URL.
*
* @param $a array
* @param &$b array
*/
function gravatar_lookup($a, &$b) {
$default_avatar = get_config('gravatar', 'default_img');
$rating = get_config('gravatar', 'rating');
// setting default value if nothing configured
if(! $default_avatar)
$default_avatar = 'identicon'; // default image will be a random pattern
if(! $rating)
$rating = 'g'; // suitable for display on all websites with any audience type
$hash = md5(trim(strtolower($b['email'])));
$url = 'http://www.gravatar.com/avatar/' .$hash .'.jpg';
$url .= '?s=' .$b['size'] .'&r=' .$rating;
if ($default_avatar != "gravatar")
$url .= '&d=' .$default_avatar;
$b['url'] = $url;
$b['success'] = true;
}
/**
* Display admin settings for this addon
*/
function gravatar_plugin_admin (&$a, &$o) {
$t = file_get_contents( dirname(__file__)."/admin.tpl");
$default_avatar = get_config('gravatar', 'default_img');
$rating = get_config('gravatar', 'rating');
// set default values for first configuration
if(! $default_avatar)
$default_avatar = 'identicon'; // pseudo-random geometric pattern based on email hash
if(! $rating)
$rating = 'g'; // suitable for display on all websites with any audience type
// Available options for the select boxes
$default_avatars = array(
'mm' => t('generic profile image'),
'identicon' => t('random geometric pattern'),
'monsterid' => t('monster face'),
'wavatar' => t('computer generated face'),
'retro' => t('retro arcade style face'),
);
$ratings = array(
'g' => 'g',
'pg' => 'pg',
'r' => 'r',
'x' => 'x'
);
$o = '<input type="hidden" name="form_security_token" value="' .get_form_security_token("gravatarsave") .'">';
$o .= replace_macros( $t, array(
'$submit' => t('Submit'),
'$default_avatar' => array('avatar', t('Default avatar image'), $default_avatar, t('Select default avatar image if none was found at Gravatar. See README'), $default_avatars),
'$rating' => array('rating', t('Rating of images'), $rating, t('Select the appropriate avatar rating for your site. See README'), $ratings),
));
}
/**
* Save admin settings
*/
function gravatar_plugin_admin_post (&$a) {
check_form_security_token('gravatarsave');
$default_avatar = ((x($_POST, 'avatar')) ? notags(trim($_POST['avatar'])) : 'identicon');
$rating = ((x($_POST, 'rating')) ? notags(trim($_POST['rating'])) : 'g');
set_config('gravatar', 'default_img', $default_avatar);
set_config('gravatar', 'rating', $rating);
info( t('Gravatar settings updated.') .EOL);
}
?>

BIN
irc.tgz

Binary file not shown.

BIN
piwik.tgz

Binary file not shown.

View File

@ -1,9 +1,9 @@
#piwik-optout-link {
padding: 100px 50px;
padding: 50px 0 0 0;
text-align: justify;
font-size: 0.85em;
margin-top:10px;
clear: both;
margin-top:10px;
clear: both;
}
#piwik-code-block {
display: none;

Binary file not shown.

BIN
planets.tgz Normal file

Binary file not shown.

Binary file not shown.

View File

@ -8,10 +8,8 @@
*
*
*
* Addons are registered with the system in the
* .htconfig.php file.
*
* $a->config['system']['addon'] = 'plugin1,plugin2,etc.';
* Addons are registered with the system through the admin
* panel.
*
* When registration is detected, the system calls the plugin
* name_install() function, located in 'addon/name/name.php',

BIN
testdrive.tgz Normal file

Binary file not shown.

23
testdrive/README.md Normal file
View File

@ -0,0 +1,23 @@
TestDrive
=========
Testdrive is a Friendica plugin which implements automatic account expiration so that a site may be used as a public
test bed.
When an account is created on the site, it is given a hard expiration date of
$a->config['testdrive']['expiredays'] = 30;
Set this in your .htconfig.php file to allow a 30 day test drive period. By default no expiration period is defined
in case the plugin is activated accidentally.
There is no opportunity to extend an expired account using this plugin. Expiration is final. Other plugins may be created
which charge for service and extend the expiration as long as a balance is maintained. This plugin is purely for creating
a limited use test site.
An email warning will be sent out approximately five days before the expiration occurs. Once it occurs logins and many
system functions are disabled. Five days later the account is removed completely.

89
testdrive/testdrive.php Normal file
View File

@ -0,0 +1,89 @@
<?php
/**
* Name: testdrive
* Description: Sample Friendica plugin/addon for creating a test drive Friendica site with automatic account expiration.
* Version: 1.0
* Author: Mike Macgirvin <http://macgirvin.com/profile/mike>
*/
function testdrive_install() {
register_hook('register_account', 'addon/testdrive/testdrive.php', 'testdrive_register_account');
register_hook('cron', 'addon/testdrive/testdrive.php', 'testdrive_cron');
}
function testdrive_uninstall() {
unregister_hook('register_account', 'addon/testdrive/testdrive.php', 'testdrive_register_account');
unregister_hook('cron', 'addon/testdrive/testdrive.php', 'testdrive_cron');
}
function testdrive_register_account($a,$b) {
$uid = $b;
$days = get_config('testdrive','expiredays');
if(! $days)
return;
$r = q("UPDATE user set account_expires_on = '%s' where uid = %d limit 1",
dbesc(datetime_convert('UTC','UTC','now +' . $days . ' days')),
intval($uid)
);
};
function testdrive_cron($a,$b) {
require_once('include/enotify.php');
$r = q("select * from user where account_expires_on < UTC_TIMESTAMP() + INTERVAL 5 DAY and
expire_notification_sent = '0000-00-00 00:00:00' ");
if(count($r)) {
foreach($r as $rr) {
notification(array(
'uid' => $rr['uid'],
'type' => NOTIFY_SYSTEM,
'system_type' => 'testdrive_expire',
'language' => $rr['language'],
'to_name' => $rr['username'],
'to_email' => $rr['email'],
'source_name' => t('Administrator'),
'source_link' => $a->get_baseurl(),
'source_photo' => $a->get_baseurl() . '/images/person-80.jpg',
));
q("update user set expire_notification_sent = '%s' where uid = %d limit 1",
dbesc(datetime_convert()),
intval($rr['uid'])
);
}
}
$r = q("select * from user where account_expired = 1 and account_expires_on < UTC_TIMESTAMP() - INTERVAL 5 DAY ");
if(count($r)) {
require_once('include/Contact.php');
foreach($r as $rr)
user_remove($rr['uid']);
}
}
function testdrive_enotify(&$a, &$b) {
if (x($b, 'params') && $b['params']['type'] == NOTIFY_SYSTEM
&& x($b['params'], 'system_type') && $b['params']['system_type'] === 'testdrive_expire') {
$b['itemlink'] = $a->get_baseurl();
$b['epreamble'] = $b['preamble'] = sprintf( t('Your account on %s will expire in a few days.'), get_config('system','sitename'));
$b['subject'] = t('Your Friendica test account is about to expire.');
$b['body'] = sprintf( t("Hi %1\$s,\n\nYour test account on %2\$s will expire in less than five days. We hope you enjoyed this test drive and use this opportunity to find a permanent Friendica website for your integrated social communications. A list of public sites is available at http://dir.friendica.com/siteinfo - and for more information on setting up your own Friendica server please see the Friendica project website at http://friendica.com."), $b['params']['to_name'], "[url=" . $app->config["system"]["url"] . "]" . $app->config["sitename"] . "[/url]");
}
}