added possibility for the admin to set the used nitter server in the admin panel
This commit is contained in:
parent
1a76c3ec0f
commit
b45052c239
2 changed files with 31 additions and 2 deletions
28
nitter.php
28
nitter.php
|
@ -2,7 +2,7 @@
|
|||
/*
|
||||
* Name: nitter
|
||||
* Description: Replaces links to twitter.com to a nitter server in all displays of postings on a node.
|
||||
* Version: 1.0
|
||||
* Version: 1.1
|
||||
* Author: Tobias Diekershoff <tobias@social.diekershoff.de>
|
||||
*
|
||||
* Copyright (c) 2020 Tobias Diekershoff
|
||||
|
@ -23,19 +23,43 @@
|
|||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
use Friendica\App;
|
||||
use Friendica\Core\Addon;
|
||||
use Friendica\Core\Renderer;
|
||||
use Friendica\DI;
|
||||
|
||||
function nitter_install() {
|
||||
Addon::registerHook ('prepare_body', 'addon/nitter/nitter.php', 'nitter_render');
|
||||
}
|
||||
|
||||
/* Handle the send data from the admin settings
|
||||
*/
|
||||
function nitter_addon_admin_post(App $a)
|
||||
{
|
||||
$nitterserver = trim($_POST['nitterserver']);
|
||||
DI::config()->set('nitter', 'server', $nitterserver);
|
||||
}
|
||||
|
||||
/* Hook into the admin settings to let the admin choose a
|
||||
* nitter server to use for the replacement.
|
||||
*/
|
||||
function nitter_addon_admin(App $a, &$o)
|
||||
{
|
||||
$nitterserver = DI::config()->get('nitter', 'server');
|
||||
$t = Renderer::getMarkupTemplate("admin.tpl", "addon/nitter/");
|
||||
$o = Renderer::replaceMacros($t, [
|
||||
'$settingdescription' => DI::l10n()->t('Which nitter server shall be used for the replacements in the post bodies? Use the URL with servername and protocol. See %s for a list of available public Nitter servers.', "https://github.com/zedeus/nitter/wiki/Instances"),
|
||||
'$nitterserver' => ["nitterserver", DI::l10n()->t('Nitter server'), $nitterserver, 'http://example.com'],
|
||||
'$submit' => DI::l10n()->t('Save Settings'),
|
||||
]);
|
||||
}
|
||||
|
||||
/*
|
||||
* replace "twitter.com" with "nitter.net"
|
||||
*/
|
||||
function nitter_render(&$a, &$o) {
|
||||
// this needs to be a system setting
|
||||
$nitter = 'https://nitter.net';
|
||||
$nitter = DI::config()->get('nitter', 'server', 'https://nitter.net');
|
||||
if (strstr($o['html'],'https://twitter.com')) {
|
||||
$o['html'] = str_replace('https://twitter.com', $nitter, $o['html']);
|
||||
$o['html'] .= '<hr><p>'.DI::l10n()->t('Links to Twitter in this posting were replaced by links to the Nitter instance at %s', $nitter).'</p>';
|
||||
|
|
5
templates/admin.tpl
Normal file
5
templates/admin.tpl
Normal file
|
@ -0,0 +1,5 @@
|
|||
<p>{{$settingdescription}}</p>
|
||||
|
||||
{{include file="field_input.tpl" field=$nitterserver}}
|
||||
|
||||
<div class="submit"><input type="submit" name="page_site" value="{{$submit}}" /></div>
|
Loading…
Reference in a new issue