X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=impressum%2Fimpressum.php;h=754cb82863bb589db69146ce14b295dc6c3547ca;hb=959576080072b2c7e8c59cbf7672158ad5ce74b9;hp=9f791728152290d3204d5be58a4ec6ebe2f43add;hpb=65e4726718a10e1d15782d299b348add76377751;p=friendica-addons.git diff --git a/impressum/impressum.php b/impressum/impressum.php index 9f791728..754cb828 100644 --- a/impressum/impressum.php +++ b/impressum/impressum.php @@ -7,108 +7,111 @@ * License: 3-clause BSD license */ +use Friendica\App; use Friendica\Content\Text\BBCode; use Friendica\Core\Hook; use Friendica\Core\Logger; use Friendica\Core\Renderer; use Friendica\DI; -use Friendica\Util\ConfigFileLoader; -use Friendica\Util\Proxy as ProxyUtils; -use Friendica\Util\Strings; +use Friendica\Core\Config\Util\ConfigFileManager; +use Friendica\Model\User; -function impressum_install() { +function impressum_install() +{ 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'); - Logger::log("installed impressum Addon"); + Hook::register('about_hook', 'addon/impressum/impressum.php', 'impressum_show'); + Hook::register('page_end', 'addon/impressum/impressum.php', 'impressum_footer'); + Logger::notice("installed impressum Addon"); } -function impressum_uninstall() { - 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'); - Logger::log("uninstalled impressum Addon"); -} +/** + * This is a statement rather than an actual function definition. The simple + * existence of this method is checked to figure out if the addon offers a + * module. + */ +function impressum_module() {} -function impressum_module() { -} -function impressum_content() { - DI::baseUrl()->redirect('friendica/'); +function impressum_content() +{ + DI::baseUrl()->redirect('friendica/'); } -function obfuscate_email ($s) { - $s = str_replace('@','(at)',$s); - $s = str_replace('.','(dot)',$s); - return $s; +function obfuscate_email (string $s): string +{ + $s = str_replace('@', '(at)', $s); + $s = str_replace('.', '(dot)', $s); + return $s; } -function impressum_footer($a, &$b) { - $text = ProxyUtils::proxifyHtml(BBCode::convert(DI::config()->get('impressum','footer_text'))); - if (! $text == '') { - DI::page()['htmlhead'] .= ''; - $b .= '
'; - $b .= ''; - } +function impressum_footer(string &$body) +{ + $text = BBCode::convertForUriId(User::getSystemUriId(), DI::config()->get('impressum', 'footer_text')); + + if ($text != '') { + DI::page()['htmlhead'] .= ''; + $body .= '
'; + $body .= ''; + } } -function impressum_load_config(\Friendica\App $a, ConfigFileLoader $loader) +function impressum_load_config(ConfigFileManager $loader) { - $a->getConfigCache()->load($loader->loadAddonConfig('impressum')); + DI::app()->getConfigCache()->load($loader->loadAddonConfig('impressum'), \Friendica\Core\Config\ValueObject\Cache::SOURCE_STATIC); } -function impressum_show($a,&$b) { - $b .= '

'.DI::l10n()->t('Impressum').'

'; - $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') ); - if (strlen($owner)) { - if (strlen($owner_profile)) { - $tmp = ''.$owner.''; - } else { - $tmp = $owner; - } - if (strlen($email)) { - $b .= '

'.DI::l10n()->t('Site Owner').': '. $tmp .'
'.DI::l10n()->t('Email Address').': '.$email.'

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

'.DI::l10n()->t('Site Owner').': '. $tmp .'

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

'.DI::l10n()->t('Postal Address').'
'. $postal .'

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

'.$notes.'

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

'.DI::l10n()->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_show(string &$body) +{ + $body .= '

' . DI::l10n()->t('Impressum') . '

'; + $owner = DI::config()->get('impressum', 'owner'); + $owner_profile = DI::config()->get('impressum', 'ownerprofile'); + $postal = BBCode::convertForUriId(User::getSystemUriId(), DI::config()->get('impressum', 'postal')); + $notes = BBCode::convertForUriId(User::getSystemUriId(), DI::config()->get('impressum', 'notes')); + + if ($owner) { + if ($owner_profile) { + $tmp = '' . $owner . ''; + } else { + $tmp = $owner; + } + + if ($email = DI::config()->get('impressum', 'email')) { + $body .= '

' . DI::l10n()->t('Site Owner').': ' . $tmp .'
' . DI::l10n()->t('Email Address') . ': ' . obfuscate_email($email) . '

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

' . DI::l10n()->t('Site Owner').': ' . $tmp .'

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

' . DI::l10n()->t('Postal Address') . '
' . $postal . '

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

' . $notes . '

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

' . DI::l10n()->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_addon_admin_post (&$a) { - $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'])) : ''); - DI::config()->set('impressum','owner',strip_tags($owner)); - DI::config()->set('impressum','ownerprofile',strip_tags($ownerprofile)); - DI::config()->set('impressum','postal',strip_tags($postal)); - DI::config()->set('impressum','email',strip_tags($email)); - DI::config()->set('impressum','notes',strip_tags($notes)); - DI::config()->set('impressum','footer_text',strip_tags($footer_text)); - info(DI::l10n()->t('Settings updated.'). EOL ); +function impressum_addon_admin_post () +{ + DI::config()->set('impressum', 'owner', strip_tags(trim($_POST['owner'] ?? ''))); + DI::config()->set('impressum', 'ownerprofile', strip_tags(trim($_POST['ownerprofile'] ?? ''))); + DI::config()->set('impressum', 'postal', strip_tags(trim($_POST['postal'] ?? ''))); + DI::config()->set('impressum', 'email', strip_tags(trim($_POST['email'] ?? ''))); + DI::config()->set('impressum', 'notes', strip_tags(trim($_POST['notes'] ?? ''))); + DI::config()->set('impressum', 'footer_text', strip_tags(trim($_POST['footer_text'] ?? ''))); } -function impressum_addon_admin (&$a, &$o) { - $t = Renderer::getMarkupTemplate( "admin.tpl", "addon/impressum/" ); - $o = Renderer::replaceMacros($t, [ - '$submit' => DI::l10n()->t('Save Settings'), - '$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.')], - ]); + +function impressum_addon_admin (string &$o) +{ + $t = Renderer::getMarkupTemplate('admin.tpl', 'addon/impressum/' ); + $o = Renderer::replaceMacros($t, [ + '$submit' => DI::l10n()->t('Save Settings'), + '$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.')], + ]); }