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()
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' ), ''],
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);
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 .= '<div class="profile-jot-net"><input type="checkbox" name="tumblr_enable"' . $selected . ' value="1" /> '
- . L10n::t('Post to Tumblr') . '</div>';
+ 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')
+ ]
+ ];
}
}
}
}
+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