2011-09-25 04:56:03 -04:00
< ? php
/**
* Name : Impressum
2018-01-20 08:57:41 -05:00
* Description : Addon to add contact information to the about page ( / friendica )
2013-06-24 06:42:41 -04:00
* Version : 1.3
2013-06-14 13:40:10 -04:00
* Author : Tobias Diekershoff < https :// f . diekershoff . de / profile / tobias >
2011-09-25 04:56:03 -04:00
* License : 3 - clause BSD license
*/
2018-02-14 21:43:40 -05:00
use Friendica\Content\Text\BBCode ;
2017-11-06 18:55:24 -05:00
use Friendica\Core\Config ;
2018-12-26 02:28:16 -05:00
use Friendica\Core\Hook ;
2018-10-29 19:40:18 -04:00
use Friendica\Core\Logger ;
2018-10-31 10:55:15 -04:00
use Friendica\Core\Renderer ;
2019-12-15 18:28:30 -05:00
use Friendica\DI ;
2019-06-23 13:56:21 -04:00
use Friendica\Util\ConfigFileLoader ;
2018-07-30 21:20:29 -04:00
use Friendica\Util\Proxy as ProxyUtils ;
2018-11-08 11:45:19 -05:00
use Friendica\Util\Strings ;
2017-11-06 18:55:24 -05:00
2011-09-25 04:56:03 -04:00
function impressum_install () {
2018-12-26 02:28:16 -05:00
Hook :: register ( 'load_config' , 'addon/impressum/impressum.php' , 'impressum_load_config' );
Hook :: register ( 'about_hook' , 'addon/impressum/impressum.php' , 'impressum_show' );
Hook :: register ( 'page_end' , 'addon/impressum/impressum.php' , 'impressum_footer' );
2018-10-29 19:40:18 -04:00
Logger :: log ( " installed impressum Addon " );
2011-09-25 04:56:03 -04:00
}
function impressum_uninstall () {
2018-12-26 02:28:16 -05:00
Hook :: unregister ( 'load_config' , 'addon/impressum/impressum.php' , 'impressum_load_config' );
Hook :: unregister ( 'about_hook' , 'addon/impressum/impressum.php' , 'impressum_show' );
Hook :: unregister ( 'page_end' , 'addon/impressum/impressum.php' , 'impressum_footer' );
2018-10-29 19:40:18 -04:00
Logger :: log ( " uninstalled impressum Addon " );
2011-09-25 04:56:03 -04:00
}
2013-06-24 06:41:08 -04:00
function impressum_module () {
}
function impressum_content () {
2019-12-15 18:28:30 -05:00
DI :: baseUrl () -> redirect ( 'friendica/' );
2013-06-24 06:41:08 -04:00
}
2011-09-25 04:56:03 -04:00
function obfuscate_email ( $s ) {
$s = str_replace ( '@' , '(at)' , $s );
$s = str_replace ( '.' , '(dot)' , $s );
return $s ;
}
2012-04-06 08:34:47 -04:00
function impressum_footer ( $a , & $b ) {
2020-01-19 15:21:12 -05:00
$text = ProxyUtils :: proxifyHtml ( BBCode :: convert ( DI :: config () -> get ( 'impressum' , 'footer_text' )));
2018-07-26 20:08:03 -04:00
2012-04-06 08:34:47 -04:00
if ( ! $text == '' ) {
2019-12-30 15:53:43 -05:00
DI :: page ()[ 'htmlhead' ] .= '<link rel="stylesheet" type="text/css" href="' . DI :: baseUrl () -> get () . '/addon/impressum/impressum.css" media="all" />' ;
2012-08-27 11:39:52 -04:00
$b .= '<div class="clear"></div>' ;
2012-04-06 08:34:47 -04:00
$b .= '<div id="impressum_footer">' . $text . '</div>' ;
}
}
2018-06-27 23:13:20 -04:00
2019-03-24 07:54:26 -04:00
function impressum_load_config ( \Friendica\App $a , ConfigFileLoader $loader )
2018-06-27 23:13:20 -04:00
{
2019-02-10 14:10:59 -05:00
$a -> getConfigCache () -> load ( $loader -> loadAddonConfig ( 'impressum' ));
2018-06-27 23:13:20 -04:00
}
2011-09-25 04:56:03 -04:00
function impressum_show ( $a , & $b ) {
2020-01-18 14:52:33 -05:00
$b .= '<h3>' . DI :: l10n () -> t ( 'Impressum' ) . '</h3>' ;
2020-01-19 15:21:12 -05:00
$owner = DI :: config () -> get ( 'impressum' , 'owner' );
$owner_profile = DI :: config () -> get ( 'impressum' , 'ownerprofile' );
$postal = ProxyUtils :: proxifyHtml ( BBCode :: convert ( DI :: config () -> get ( 'impressum' , 'postal' )));
$notes = ProxyUtils :: proxifyHtml ( BBCode :: convert ( DI :: config () -> get ( 'impressum' , 'notes' )));
$email = obfuscate_email ( DI :: config () -> get ( 'impressum' , 'email' ) );
2011-09-25 04:56:03 -04:00
if ( strlen ( $owner )) {
if ( strlen ( $owner_profile )) {
$tmp = '<a href="' . $owner_profile . '">' . $owner . '</a>' ;
} else {
$tmp = $owner ;
}
if ( strlen ( $email )) {
2020-01-18 14:52:33 -05:00
$b .= '<p><strong>' . DI :: l10n () -> t ( 'Site Owner' ) . '</strong>: ' . $tmp . '<br /><strong>' . DI :: l10n () -> t ( 'Email Address' ) . '</strong>: ' . $email . '</p>' ;
2011-09-25 04:56:03 -04:00
} else {
2020-01-18 14:52:33 -05:00
$b .= '<p><strong>' . DI :: l10n () -> t ( 'Site Owner' ) . '</strong>: ' . $tmp . '</p>' ;
2011-09-25 04:56:03 -04:00
}
if ( strlen ( $postal )) {
2020-01-18 14:52:33 -05:00
$b .= '<p><strong>' . DI :: l10n () -> t ( 'Postal Address' ) . '</strong><br />' . $postal . '</p>' ;
2011-09-25 04:56:03 -04:00
}
if ( strlen ( $notes )) {
$b .= '<p>' . $notes . '</p>' ;
}
} else {
2020-01-18 14:52:33 -05:00
$b .= '<p>' . DI :: l10n () -> t ( 'The impressum addon needs to be configured!<br />Please add at least the <tt>owner</tt> variable to your config file. For other variables please refer to the README file of the addon.' ) . '</p>' ;
2011-09-25 04:56:03 -04:00
}
}
2018-01-20 08:57:41 -05:00
function impressum_addon_admin_post ( & $a ) {
2018-11-30 09:11:56 -05:00
$owner = ( ! empty ( $_POST [ 'owner' ]) ? Strings :: escapeTags ( trim ( $_POST [ 'owner' ])) : '' );
$ownerprofile = ( ! empty ( $_POST [ 'ownerprofile' ]) ? Strings :: escapeTags ( trim ( $_POST [ 'ownerprofile' ])) : '' );
$postal = ( ! empty ( $_POST [ 'postal' ]) ? ( trim ( $_POST [ 'postal' ])) : '' );
$notes = ( ! empty ( $_POST [ 'notes' ]) ? ( trim ( $_POST [ 'notes' ])) : '' );
$email = ( ! empty ( $_POST [ 'email' ]) ? Strings :: escapeTags ( trim ( $_POST [ 'email' ])) : '' );
$footer_text = ( ! empty ( $_POST [ 'footer_text' ]) ? ( trim ( $_POST [ 'footer_text' ])) : '' );
2017-11-06 18:55:24 -05:00
Config :: set ( 'impressum' , 'owner' , strip_tags ( $owner ));
Config :: set ( 'impressum' , 'ownerprofile' , strip_tags ( $ownerprofile ));
Config :: set ( 'impressum' , 'postal' , strip_tags ( $postal ));
Config :: set ( 'impressum' , 'email' , strip_tags ( $email ));
Config :: set ( 'impressum' , 'notes' , strip_tags ( $notes ));
Config :: set ( 'impressum' , 'footer_text' , strip_tags ( $footer_text ));
2020-01-18 14:52:33 -05:00
info ( DI :: l10n () -> t ( 'Settings updated.' ) . EOL );
2011-09-25 04:56:03 -04:00
}
2018-01-20 08:57:41 -05:00
function impressum_addon_admin ( & $a , & $o ) {
2018-10-31 10:55:15 -04:00
$t = Renderer :: getMarkupTemplate ( " admin.tpl " , " addon/impressum/ " );
$o = Renderer :: replaceMacros ( $t , [
2020-01-18 14:52:33 -05:00
'$submit' => DI :: l10n () -> t ( 'Save Settings' ),
2020-01-19 15:21:12 -05:00
'$owner' => [ 'owner' , DI :: l10n () -> t ( 'Site Owner' ), DI :: config () -> get ( 'impressum' , 'owner' ), DI :: l10n () -> t ( 'The page operators name.' )],
'$ownerprofile' => [ 'ownerprofile' , DI :: l10n () -> t ( 'Site Owners Profile' ), DI :: config () -> get ( 'impressum' , 'ownerprofile' ), DI :: l10n () -> t ( 'Profile address of the operator.' )],
'$postal' => [ 'postal' , DI :: l10n () -> t ( 'Postal Address' ), DI :: config () -> get ( 'impressum' , 'postal' ), DI :: l10n () -> t ( 'How to contact the operator via snail mail. You can use BBCode here.' )],
'$notes' => [ 'notes' , DI :: l10n () -> t ( 'Notes' ), DI :: config () -> get ( 'impressum' , 'notes' ), DI :: l10n () -> t ( 'Additional notes that are displayed beneath the contact information. You can use BBCode here.' )],
'$email' => [ 'email' , DI :: l10n () -> t ( 'Email Address' ), DI :: config () -> get ( 'impressum' , 'email' ), DI :: l10n () -> t ( 'How to contact the operator via email. (will be displayed obfuscated)' )],
'$footer_text' => [ 'footer_text' , DI :: l10n () -> t ( 'Footer note' ), DI :: config () -> get ( 'impressum' , 'footer_text' ), DI :: l10n () -> t ( 'Text for the footer. You can use BBCode here.' )],
2018-01-15 08:15:33 -05:00
]);
2011-09-25 04:56:03 -04:00
}