Merge branch 'master', remote-tracking branch 'remotes/upstream/master'

* remotes/upstream/master:
  small change in my contact informations in the addon files
  Twitter: avooid sending broken words at the end of a Tweet
  SN: avoide to send broken last words to SN when shorten a message
  SN/T: since inclusion of the title 2xMax_Char is too short, increasing that
  Impressum: added optional page footer
  SN/Twitter relay updated the README file

* master:
This commit is contained in:
Simon L'nu 2012-04-07 19:25:44 -04:00
commit 3acd957c7e
10 changed files with 92 additions and 27 deletions

View file

@ -1,9 +1,10 @@
Impressum Plugin for Friendica Impressum Plugin for Friendica
Author: Tobias Diekershoff Author: Tobias Diekershoff
http://diekershoff.homeunix.net/friendika/profile/tobias
tobias.diekershoff@gmx.net tobias.diekershoff@gmx.net
License: 3-clause BSD license (same as Friendica) License: 3-clause BSD license
About About
This plugin adds an Impressum block to the /friendica page with informations This plugin adds an Impressum block to the /friendica page with informations
@ -29,3 +30,5 @@ following variables in the .htconfig file
you can be reached at (optional) you can be reached at (optional)
* $a->config['impressum']['notes'] additional informations that should * $a->config['impressum']['notes'] additional informations that should
be displayed in the Impressum block be displayed in the Impressum block
* $a->config['impressum']['footer_text'] Text that will be displayed at
the bottom of the pages.

View file

@ -3,4 +3,5 @@
{{ inc field_input.tpl with $field=$postal }}{{ endinc }} {{ inc field_input.tpl with $field=$postal }}{{ endinc }}
{{ inc field_input.tpl with $field=$notes }}{{ endinc }} {{ inc field_input.tpl with $field=$notes }}{{ endinc }}
{{ inc field_input.tpl with $field=$email }}{{ endinc }} {{ inc field_input.tpl with $field=$email }}{{ endinc }}
{{ inc field_input.tpl with $field=$footer_text }}{{ endinc }}
<div class="submit"><input type="submit" name="page_site" value="$submit" /></div> <div class="submit"><input type="submit" name="page_site" value="$submit" /></div>

4
impressum/impressum.css Normal file
View file

@ -0,0 +1,4 @@
#impressum_footer {
padding-top: 15px;
font-size: 0.8em;
}

View file

@ -2,18 +2,20 @@
/** /**
* Name: Impressum * Name: Impressum
* Description: Plugin to add contact information to the about page (/friendica) * Description: Plugin to add contact information to the about page (/friendica)
* Version: 1.0 * Version: 1.1
* Author: Tobias Diekershoff <https://diekershoff.homeunix.net/friendika/profile/tobias> * Author: Tobias Diekershoff <http://diekershoff.homeunix.net/friendika/profile/tobias>
* License: 3-clause BSD license * License: 3-clause BSD license
*/ */
function impressum_install() { function impressum_install() {
register_hook('about_hook', 'addon/impressum/impressum.php', 'impressum_show'); register_hook('about_hook', 'addon/impressum/impressum.php', 'impressum_show');
register_hook('page_end', 'addon/impressum/impressum.php', 'impressum_footer');
logger("installed impressum plugin"); logger("installed impressum plugin");
} }
function impressum_uninstall() { function impressum_uninstall() {
unregister_hook('about_hook', 'addon/impressum/impressum.php', 'impressum_show'); unregister_hook('about_hook', 'addon/impressum/impressum.php', 'impressum_show');
unregister_hook('page_end', 'addon/impressum/impressum.php', 'impressum_footer');
logger("uninstalled impressum plugin"); logger("uninstalled impressum plugin");
} }
function obfuscate_email ($s) { function obfuscate_email ($s) {
@ -21,6 +23,13 @@ function obfuscate_email ($s) {
$s = str_replace('.','(dot)',$s); $s = str_replace('.','(dot)',$s);
return $s; return $s;
} }
function impressum_footer($a, &$b) {
$text = get_config('impressum','footer_text');
if (! $text == '') {
$a->page['htmlhead'] .= '<link rel="stylesheet" type="text/css" href="'.$a->get_baseurl().'/addon/impressum/impressum.css" media="all" />';
$b .= '<div id="impressum_footer">'.$text.'</div>';
}
}
function impressum_show($a,&$b) { function impressum_show($a,&$b) {
$b .= '<h3>'.t('Impressum').'</h3>'; $b .= '<h3>'.t('Impressum').'</h3>';
$owner = get_config('impressum', 'owner'); $owner = get_config('impressum', 'owner');
@ -56,21 +65,24 @@ function impressum_plugin_admin_post (&$a) {
$postal = ((x($_POST, 'postal')) ? (trim($_POST['postal'])) : ''); $postal = ((x($_POST, 'postal')) ? (trim($_POST['postal'])) : '');
$notes = ((x($_POST, 'notes')) ? (trim($_POST['notes'])) : ''); $notes = ((x($_POST, 'notes')) ? (trim($_POST['notes'])) : '');
$email = ((x($_POST, 'email')) ? notags(trim($_POST['email'])) : ''); $email = ((x($_POST, 'email')) ? notags(trim($_POST['email'])) : '');
$footer_text = ((x($_POST, 'footer_text')) ? (trim($_POST['footer_text'])) : '');
set_config('impressum','owner',$owner); set_config('impressum','owner',$owner);
set_config('impressum','ownerprofile',$ownerprofile); set_config('impressum','ownerprofile',$ownerprofile);
set_config('impressum','postal',$postal); set_config('impressum','postal',$postal);
set_config('impressum','email',$email); set_config('impressum','email',$email);
set_config('impressum','notes',$notes); set_config('impressum','notes',$notes);
set_config('impressum','footer_text',$footer_text);
info( t('Settings updated.'). EOL ); info( t('Settings updated.'). EOL );
} }
function impressum_plugin_admin (&$a, &$o) { function impressum_plugin_admin (&$a, &$o) {
$t = file_get_contents( dirname(__file__). "/admin.tpl" ); $t = file_get_contents( dirname(__file__). "/admin.tpl" );
$o = replace_macros($t, array( $o = replace_macros($t, array(
'$submit' => t('Submit'), '$submit' => t('Submit'),
'$owner' => array('owner', t('Site Owner'), get_config('impressum','owner'), ''), '$owner' => array('owner', t('Site Owner'), get_config('impressum','owner'), t('The page operators name.')),
'$ownerprofile' => array('ownerprofile', t('Site Owners Profile'), get_config('impressum','ownerprofile'), ''), '$ownerprofile' => array('ownerprofile', t('Site Owners Profile'), get_config('impressum','ownerprofile'), t('Profile address of the operator.')),
'$postal' => array('postal', t('Postal Address'), get_config('impressum','postal'), ''), '$postal' => array('postal', t('Postal Address'), get_config('impressum','postal'), t('How to contact the operator via snail mail.')),
'$notes' => array('notes', t('Notes'), get_config('impressum','notes'), ''), '$notes' => array('notes', t('Notes'), get_config('impressum','notes'), t('Additional notes that are displayed beneath the contact information.')),
'$email' => array('email', t('Email Address'), get_config('impressum','email'), ''), '$email' => array('email', t('Email Address'), get_config('impressum','email'), t('How to contact the operator via email. (will be displayed obfuscated)')),
'$footer_text' => array('footer_text', t('Footer note'), get_config('impressum','footer_text'), t('Text for the footer.')),
)); ));
} }

View file

@ -1,6 +1,7 @@
## Piwik Plugin ## ## Piwik Plugin ##
by Tobias Diekershoff by Tobias Diekershoff
http://diekershoff.homeunix.net/friendika/profile/tobias
tobias.diekershoff(at)gmx.net tobias.diekershoff(at)gmx.net
This addon allows you to embed the code necessary for the FLOSS webanalytics This addon allows you to embed the code necessary for the FLOSS webanalytics
@ -19,6 +20,13 @@ styling the opt-out notice.
### Configuration ### ### Configuration ###
The easiest way to configure this addon is by activating the admin panels of
your ~friendica server and then enter the needed details on the config page
for the addon.
If you don't want to use the admin panel, you can configure the addon through
the .htconfig file.
Open the .htconfig.php file and add "piwik" to the list of activated addons. Open the .htconfig.php file and add "piwik" to the list of activated addons.
$a->config['system']['addon'] = "piwik, ..." $a->config['system']['addon'] = "piwik, ..."

View file

@ -3,7 +3,7 @@
* Name: Piwik Analytics * Name: Piwik Analytics
* Description: Piwik Analytics Plugin for Friendica * Description: Piwik Analytics Plugin for Friendica
* Version: 1.1 * Version: 1.1
* Author: Tobias Diekershoff <https://diekershoff.homeunix.net/friendika/profile/tobias> * Author: Tobias Diekershoff <http://diekershoff.homeunix.net/friendika/profile/tobias>
* Author: Klaus Weidenbach * Author: Klaus Weidenbach
*/ */
@ -49,7 +49,7 @@ function piwik_analytics($a,&$b) {
* associated CSS file. We just have to tell Friendica to get it * associated CSS file. We just have to tell Friendica to get it
* into the page header. * into the page header.
*/ */
$a->page['htmlhead'] .= '<link rel="stylesheet" type="text/css" href="' . $a->get_baseurl() . '/addon/piwik/piwik.css' . '" media="all" />' . "\r\n"; $a->page['htmlhead'] .= '<link rel="stylesheet" type="text/css" href="' . $a->get_baseurl() . '/addon/piwik/piwik.css' . '" media="all" />';
/* /*
* Get the configuration variables from the .htconfig file. * Get the configuration variables from the .htconfig file.

View file

@ -1,5 +1,6 @@
____ StatusNet Plugin ____ ____ StatusNet Plugin ____
by Tobias Diekershoff by Tobias Diekershoff
http://diekershoff.homeunix.net/friendika/profile/tobias
tobias.diekershoff(at)gmx.net tobias.diekershoff(at)gmx.net
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@ -42,12 +43,35 @@ ___ Configuration ___
__ Global Configuration __ __ Global Configuration __
If you enabled an administrator account, please use the admin panel to cofigure If you have configured an admin account, you can configure this plugin from
the StatusNet relay. the admin panel. First activate it from the plugin section of the panel.
Afterwards you will have a separate configuration page for the plugin, where
you can provide a set of globally available OAuth credentials for different
StatusNet pages which will be available for all users of your server.
To activate this addon add statusnet to the list of active addons in your If you don't use the admin panel, you can configure the relay using the
.htconfig.php file .htconfig.php file of your friendica installation. To activate the relay add
$a->config['system']['addon'] = "statusnet, ...". it's name to the list of activated addons.
$a->config['system']['addon'] = "statusnet, ..."
If you want to provide preconfigured StatusNet instances for your user add the
credentials for them by adding
$a->config['statusnet']['sites'] = array (
array ('sitename' => 'identi.ca', 'apiurl' => 'https://identi.ca/api/',
'consumersecret' => 'OAuth Consumer Secret here', 'consumerkey' => 'OAuth
Consumer Key here'),
array ('sitename' => 'Some other Server', 'apiurl' =>
'http://status.example.com/api/', 'consumersecret' => 'OAuth
Consumer Secret here', 'consumerkey' => 'OAuth Consumer Key here')
);
to the config file.
Regardless of providing global OAuth credentials for your users or not, they
can always add their own OAuth-Key and -Secret thus enable the relay for any
StatusNet instance they may have an account at.
__ User Configuration __ __ User Configuration __

View file

@ -3,7 +3,7 @@
* Name: StatusNet Connector * Name: StatusNet Connector
* Description: Relay public postings to a connected StatusNet account * Description: Relay public postings to a connected StatusNet account
* Version: 1.0.4 * Version: 1.0.4
* Author: Tobias Diekershoff <https://diekershoff.homeunix.net/friendika/profile/tobias> * Author: Tobias Diekershoff <http://diekershoff.homeunix.net/friendika/profile/tobias>
*/ */
/* StatusNet Plugin for Friendica /* StatusNet Plugin for Friendica
@ -435,9 +435,9 @@ function statusnet_post_hook(&$a,&$b) {
// shorten all the links in a 200000 character long essay. // shorten all the links in a 200000 character long essay.
if (! $b['title']=='') { if (! $b['title']=='') {
$tmp = $b['title'] . ' : '. $b['body']; $tmp = $b['title'] . ' : '. $b['body'];
$tmp = substr($tmp, 0, 2*$max_char); $tmp = substr($tmp, 0, 4*$max_char);
} else { } else {
$tmp = substr($b['body'], 0, 2*$max_char); $tmp = substr($b['body'], 0, 3*$max_char);
} }
// if [url=bla][img]blub.png[/img][/url] get blub.png // if [url=bla][img]blub.png[/img][/url] get blub.png
$tmp = preg_replace( '/\[url\=(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)\]\[img\](\\w+.*?)\\[\\/img\]\\[\\/url\]/i', '$2', $tmp); $tmp = preg_replace( '/\[url\=(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)\]\[img\](\\w+.*?)\\[\\/img\]\\[\\/url\]/i', '$2', $tmp);
@ -480,7 +480,13 @@ function statusnet_post_hook(&$a,&$b) {
$shortlink = short_link( $b['plink'] ); $shortlink = short_link( $b['plink'] );
// the new message will be shortened such that "... $shortlink" // the new message will be shortened such that "... $shortlink"
// will fit into the character limit // will fit into the character limit
$msg = substr($msg, 0, $max_char-strlen($shortlink)-4); $msg = nl2br(substr($msg, 0, $max_char-strlen($shortlink)-4));
$msg = str_replace(array('<br>','<br />'),' ',$msg);
$e = explode(' ', $msg);
// remove the last word from the cut down message to
// avoid sending cut words to the MicroBlog
array_pop($e);
$msg = implode(' ', $e);
$msg .= '... ' . $shortlink; $msg .= '... ' . $shortlink;
} }
// and now tweet it :-) // and now tweet it :-)

View file

@ -1,5 +1,6 @@
____ Twitter Plugin ____ ____ Twitter Plugin ____
By Tobias Diekershoff By Tobias Diekershoff
http://diekershoff.homeunix.net/friendika/profile/tobias
tobias.diekershoff(at)gmx.net tobias.diekershoff(at)gmx.net
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@ -47,8 +48,8 @@ ___ Configuration ___
__ Global Configuration __ __ Global Configuration __
If you enabled an administrator account, please use the admin panel to cofigure If you enabled an administrator account, please use the admin panel to configure
the Twitter relay. If you for any reason prefer to use a configuration file instead the Twitter relay. If you for any reason prefer to use a configuration file instead
of the admin panels, please refer to the Alternative Configuration below. of the admin panels, please refer to the Alternative Configuration below.
Activate the plugin from the plugins section of your admin panel. When you have Activate the plugin from the plugins section of your admin panel. When you have
@ -56,12 +57,12 @@ done so, add your consumer key and consumer secret in the settings section of th
plugin page. plugin page.
When this is done your user can now configure their Twitter connection at When this is done your user can now configure their Twitter connection at
"Settings -> Plugin Settings" and enable the forwarding of their *public* "Settings -> Connector Settings" and enable the forwarding of their *public*
messages to Twitter. messages to Twitter.
__ Alternative Configuration __ __ Alternative Configuration __
-To activate this addon add @twitter@ to the list of active addons in your To activate this addon add @twitter@ to the list of active addons in your
.htconfig.php file .htconfig.php file
$a->config['system']['addon'] = "twitter, ..." $a->config['system']['addon'] = "twitter, ..."

View file

@ -3,7 +3,7 @@
* Name: Twitter Connector * Name: Twitter Connector
* Description: Relay public postings to a connected Twitter account * Description: Relay public postings to a connected Twitter account
* Version: 1.0.3 * Version: 1.0.3
* Author: Tobias Diekershoff <https://diekershoff.homeunix.net/friendika/profile/tobias> * Author: Tobias Diekershoff <http://diekershoff.homeunix.net/friendika/profile/tobias>
*/ */
@ -301,9 +301,9 @@ function twitter_post_hook(&$a,&$b) {
// shorten all the links in a 200000 character long essay. // shorten all the links in a 200000 character long essay.
if (! $b['title']=='') { if (! $b['title']=='') {
$tmp = $b['title'] . ' : '. $b['body']; $tmp = $b['title'] . ' : '. $b['body'];
$tmp = substr($tmp, 0, 2*$max_char); $tmp = substr($tmp, 0, 4*$max_char);
} else { } else {
$tmp = substr($b['body'], 0, 2*$max_char); $tmp = substr($b['body'], 0, 3*$max_char);
} }
// if [url=bla][img]blub.png[/img][/url] get blub.png // if [url=bla][img]blub.png[/img][/url] get blub.png
$tmp = preg_replace( '/\[url\=(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)\]\[img\](\\w+.*?)\\[\\/img\]\\[\\/url\]/i', '$2', $tmp); $tmp = preg_replace( '/\[url\=(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)\]\[img\](\\w+.*?)\\[\\/img\]\\[\\/url\]/i', '$2', $tmp);
@ -345,7 +345,13 @@ function twitter_post_hook(&$a,&$b) {
$shortlink = short_link( $b['plink'] ); $shortlink = short_link( $b['plink'] );
// the new message will be shortened such that "... $shortlink" // the new message will be shortened such that "... $shortlink"
// will fit into the character limit // will fit into the character limit
$msg = substr($msg, 0, $max_char-strlen($shortlink)-4); $msg = nl2br(substr($msg, 0, $max_char-strlen($shortlink)-4));
$msg = str_replace(array('<br>','<br />'),' ',$msg);
$e = explode(' ', $msg);
// remove the last word from the cut down message to
// avoid sending cut words to the MicroBlog
array_pop($e);
$msg = implode(' ', $e);
$msg .= '... ' . $shortlink; $msg .= '... ' . $shortlink;
} }
// and now tweet it :-) // and now tweet it :-)