From cc71a0676f16d6133203f8d6f3a16249d790ea71 Mon Sep 17 00:00:00 2001 From: Tobias Diekershoff Date: Thu, 23 Jun 2011 07:12:50 +0200 Subject: [PATCH] initial commit of the impressum plugin plugin to provide additional information about the site owner and contact possibilities that will be displayed at the /friendika page. admin interface is implemented. --- addon/impressum/README | 27 +++++++++++++ addon/impressum/admin.tpl | 6 +++ addon/impressum/impressum.php | 76 +++++++++++++++++++++++++++++++++++ 3 files changed, 109 insertions(+) create mode 100644 addon/impressum/README create mode 100644 addon/impressum/admin.tpl create mode 100644 addon/impressum/impressum.php diff --git a/addon/impressum/README b/addon/impressum/README new file mode 100644 index 000000000..9a38c0bec --- /dev/null +++ b/addon/impressum/README @@ -0,0 +1,27 @@ +Impressum Plugin for Friendika + +Author: Tobias Diekershoff + tobias.diekershoff@gmx.net + +License: 3-clause BSD license (same as Friendika) + +About + This plugin adds an Impressum block to the /friendika page with informations + about the page operator/owner and how to countact you in case of any questions. + + In the notes and postal fields you can use HTML tags for formatting. + +Configuration: + For configuration you can set the following variables in the .htconfig file + * $a->config['impressum']['owner'] this is the Name of the Operator + * $a->config['impressum']['ownerprofile'] this is an optional Friendika account + where the above owner name will link to + * $a->config['impressum']['email'] a contact email address (optional) + will be displayed slightly obfuscated + as name(at)example(dot)com + * $a->config['impressum']['postal'] should contain a postal address where + you can be reached at (optional) + * $a->config['impressum']['notes'] additional informations that should + be displayed in the Impressum block + + diff --git a/addon/impressum/admin.tpl b/addon/impressum/admin.tpl new file mode 100644 index 000000000..cfba8df76 --- /dev/null +++ b/addon/impressum/admin.tpl @@ -0,0 +1,6 @@ +{{ inc field_input.tpl with $field=$owner }}{{ endinc }} +{{ inc field_input.tpl with $field=$ownerprofile }}{{ endinc }} +{{ inc field_input.tpl with $field=$postal }}{{ endinc }} +{{ inc field_input.tpl with $field=$notes }}{{ endinc }} +{{ inc field_input.tpl with $field=$email }}{{ endinc }} +
diff --git a/addon/impressum/impressum.php b/addon/impressum/impressum.php new file mode 100644 index 000000000..b93d9eef6 --- /dev/null +++ b/addon/impressum/impressum.php @@ -0,0 +1,76 @@ + + * License: 3-clause BSD license (same as Friendika) + */ + +function impressum_install() { + register_hook('about_hook', 'addon/impressum/impressum.php', 'impressum_show'); + logger("installed impressum plugin"); +} + +function impressum_uninstall() { + unregister_hook('about_hook', 'addon/impressum/impressum.php', 'impressum_show'); + logger("uninstalled impressum plugin"); +} +function obfuscate_email ($s) { + $s = str_replace('@','(at)',$s); + $s = str_replace('.','(dot)',$s); + return $s; +} +function impressum_show($a,&$b) { + $b .= '

'.t('Impressum').'

'; + $owner = get_config('impressum', 'owner'); + $owner_profile = get_config('impressum','ownerprofile'); + $postal = get_config('impressum', 'postal'); + $notes = get_config('impressum', 'notes'); + $email = obfuscate_email( get_config('impressum','email') ); + if (strlen($owner)) { + if (strlen($owner_profile)) { + $tmp = ''.$owner.''; + } else { + $tmp = $owner; + } + if (strlen($email)) { + $b .= '

'.t('Site Owner').': '. $tmp .'
'.t('Email Address').': '.$email.'

'; + } else { + $b .= '

'.t('Site Owner').': '. $tmp .'

'; + } + if (strlen($postal)) { + $b .= '

'.t('Postal Address').'
'. $postal .'

'; + } + if (strlen($notes)) { + $b .= '

'.$notes.'

'; + } + } else { + $b .= '

'.t('The impressum addon needs to be configured!
Please add at least the owner variable to your config file. For other variables please refer to the README file of the addon.').'

'; + } +} + +function impressum_plugin_admin_post (&$a) { + $owner = ((x($_POST, 'owner')) ? notags(trim($_POST['owner'])) : ''); + $ownerprofile = ((x($_POST, 'ownerprofile')) ? notags(trim($_POST['ownerprofile'])) : ''); + $postal = ((x($_POST, 'postal')) ? (trim($_POST['postal'])) : ''); + $notes = ((x($_POST, 'notes')) ? (trim($_POST['notes'])) : ''); + $email = ((x($_POST, 'email')) ? notags(trim($_POST['email'])) : ''); + set_config('impressum','owner',$owner); + set_config('impressum','ownerprofile',$ownerprofile); + set_config('impressum','postal',$postal); + set_config('impressum','email',$email); + set_config('impressum','notes',$notes); + info( t('Settings updated.'). EOL ); +} +function impressum_plugin_admin (&$a, &$o) { + $t = file_get_contents( dirname(__file__). "/admin.tpl" ); + $o = replace_macros($t, array( + '$submit' => t('Submit'), + '$owner' => array('owner', t('Site Owner'), get_config('impressum','owner'), ''), + '$ownerprofile' => array('ownerprofile', t('Site Owners Profile'), get_config('impressum','ownerprofile'), ''), + '$postal' => array('postal', t('Postal Address'), get_config('impressum','postal'), ''), + '$notes' => array('notes', t('Notes'), get_config('impressum','notes'), ''), + '$email' => array('email', t('Email Address'), get_config('impressum','email'), ''), + )); +}