X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=tumblr%2Ftumblr.php;h=3bf258b39764a7d3ee4f3db03218ab9b06a7cae1;hb=80ec21c76bc7a0cc5f1e73acf91db16ceaa06b04;hp=7d232a6a660ef6b3f32cf06fa5221bdcae5852ff;hpb=807a9bf383fc05dba070519fc630c91a32d1a87d;p=friendica-addons.git diff --git a/tumblr/tumblr.php b/tumblr/tumblr.php index 7d232a6a..3bf258b3 100644 --- a/tumblr/tumblr.php +++ b/tumblr/tumblr.php @@ -11,29 +11,33 @@ require_once __DIR__ . DIRECTORY_SEPARATOR . 'library' . DIRECTORY_SEPARATOR . ' use Friendica\App; use Friendica\Content\Text\BBCode; -use Friendica\Core\Addon; use Friendica\Core\Config; +use Friendica\Core\Hook; use Friendica\Core\L10n; use Friendica\Core\Logger; use Friendica\Core\PConfig; +use Friendica\Core\Renderer; use Friendica\Database\DBA; +use Friendica\Util\Strings; function tumblr_install() { - Addon::registerHook('post_local', 'addon/tumblr/tumblr.php', 'tumblr_post_local'); - Addon::registerHook('notifier_normal', 'addon/tumblr/tumblr.php', 'tumblr_send'); - Addon::registerHook('jot_networks', 'addon/tumblr/tumblr.php', 'tumblr_jot_nets'); - Addon::registerHook('connector_settings', 'addon/tumblr/tumblr.php', 'tumblr_settings'); - Addon::registerHook('connector_settings_post', 'addon/tumblr/tumblr.php', 'tumblr_settings_post'); + Hook::register('hook_fork', 'addon/tumblr/tumblr.php', 'tumblr_hook_fork'); + Hook::register('post_local', 'addon/tumblr/tumblr.php', 'tumblr_post_local'); + Hook::register('notifier_normal', 'addon/tumblr/tumblr.php', 'tumblr_send'); + Hook::register('jot_networks', 'addon/tumblr/tumblr.php', 'tumblr_jot_nets'); + Hook::register('connector_settings', 'addon/tumblr/tumblr.php', 'tumblr_settings'); + Hook::register('connector_settings_post', 'addon/tumblr/tumblr.php', 'tumblr_settings_post'); } function tumblr_uninstall() { - Addon::unregisterHook('post_local', 'addon/tumblr/tumblr.php', 'tumblr_post_local'); - Addon::unregisterHook('notifier_normal', 'addon/tumblr/tumblr.php', 'tumblr_send'); - Addon::unregisterHook('jot_networks', 'addon/tumblr/tumblr.php', 'tumblr_jot_nets'); - Addon::unregisterHook('connector_settings', 'addon/tumblr/tumblr.php', 'tumblr_settings'); - Addon::unregisterHook('connector_settings_post', 'addon/tumblr/tumblr.php', 'tumblr_settings_post'); + Hook::unregister('hook_fork', 'addon/tumblr/tumblr.php', 'tumblr_hook_fork'); + Hook::unregister('post_local', 'addon/tumblr/tumblr.php', 'tumblr_post_local'); + Hook::unregister('notifier_normal', 'addon/tumblr/tumblr.php', 'tumblr_send'); + Hook::unregister('jot_networks', 'addon/tumblr/tumblr.php', 'tumblr_jot_nets'); + Hook::unregister('connector_settings', 'addon/tumblr/tumblr.php', 'tumblr_settings'); + Hook::unregister('connector_settings_post', 'addon/tumblr/tumblr.php', 'tumblr_settings_post'); } function tumblr_module() @@ -70,9 +74,9 @@ function tumblr_content(App $a) function tumblr_addon_admin(App $a, &$o) { - $t = get_markup_template( "admin.tpl", "addon/tumblr/" ); + $t = Renderer::getMarkupTemplate( "admin.tpl", "addon/tumblr/" ); - $o = replace_macros($t, [ + $o = Renderer::replaceMacros($t, [ '$submit' => L10n::t('Save Settings'), // name, label, value, help, [extra values] '$consumer_key' => ['consumer_key', L10n::t('Consumer Key'), Config::get('tumblr', 'consumer_key' ), ''], @@ -82,8 +86,8 @@ function tumblr_addon_admin(App $a, &$o) function tumblr_addon_admin_post(App $a) { - $consumer_key = ((!empty($_POST['consumer_key'])) ? notags(trim($_POST['consumer_key'])) : ''); - $consumer_secret = ((!empty($_POST['consumer_secret'])) ? notags(trim($_POST['consumer_secret'])): ''); + $consumer_key = (!empty($_POST['consumer_key']) ? Strings::escapeTags(trim($_POST['consumer_key'])) : ''); + $consumer_secret = (!empty($_POST['consumer_secret']) ? Strings::escapeTags(trim($_POST['consumer_secret'])): ''); Config::set('tumblr', 'consumer_key',$consumer_key); Config::set('tumblr', 'consumer_secret',$consumer_secret); @@ -189,19 +193,21 @@ function tumblr_callback(App $a) return $o; } -function tumblr_jot_nets(App $a, &$b) +function tumblr_jot_nets(App $a, array &$jotnets_fields) { if (! local_user()) { return; } - $tmbl_post = PConfig::get(local_user(), 'tumblr', 'post'); - - if (intval($tmbl_post) == 1) { - $tmbl_defpost = PConfig::get(local_user(), 'tumblr', 'post_by_default'); - $selected = ((intval($tmbl_defpost) == 1) ? ' checked="checked" ' : ''); - $b .= '
' - . L10n::t('Post to Tumblr') . '
'; + if (PConfig::get(local_user(),'tumblr','post')) { + $jotnets_fields[] = [ + 'type' => 'checkbox', + 'field' => [ + 'tumblr_enable', + L10n::t('Post to Tumblr'), + PConfig::get(local_user(),'tumblr','post_by_default') + ] + ]; } } @@ -297,6 +303,21 @@ function tumblr_settings_post(App $a, array &$b) } } +function tumblr_hook_fork(&$a, &$b) +{ + if ($b['name'] != 'notifier_normal') { + return; + } + + $post = $b['data']; + + if ($post['deleted'] || $post['private'] || ($post['created'] !== $post['edited']) || + !strstr($post['postopts'], 'tumblr') || ($post['parent'] != $post['id'])) { + $b['execute'] = false; + return; + } +} + function tumblr_post_local(App $a, array &$b) { // This can probably be changed to allow editing by pointing to a different API endpoint