X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=blogger%2Fblogger.php;h=049ee0777558fdf767574a638a3873f4bcc673bc;hb=bbc629544f66f90d2e47d71094d34b436aaf70b8;hp=496a47c85ea9e6a91bdcf18f93a6304bcb40fbac;hpb=1af505701b5e341dcb57fd2e8b3c41461e84d9c5;p=friendica-addons.git diff --git a/blogger/blogger.php b/blogger/blogger.php index 496a47c8..049ee077 100644 --- a/blogger/blogger.php +++ b/blogger/blogger.php @@ -3,55 +3,60 @@ * Name: Blogger Post Connector * Description: Post to Blogger (or anything else which uses blogger XMLRPC API) * Version: 1.0 - * + * Status: Unsupported */ use Friendica\App; use Friendica\Content\Text\BBCode; -use Friendica\Core\Addon; +use Friendica\Core\Hook; use Friendica\Core\L10n; use Friendica\Core\Logger; use Friendica\Core\PConfig; +use Friendica\DI; use Friendica\Util\Network; use Friendica\Util\XML; function blogger_install() { - Addon::registerHook('post_local', 'addon/blogger/blogger.php', 'blogger_post_local'); - Addon::registerHook('notifier_normal', 'addon/blogger/blogger.php', 'blogger_send'); - Addon::registerHook('jot_networks', 'addon/blogger/blogger.php', 'blogger_jot_nets'); - Addon::registerHook('connector_settings', 'addon/blogger/blogger.php', 'blogger_settings'); - Addon::registerHook('connector_settings_post', 'addon/blogger/blogger.php', 'blogger_settings_post'); + Hook::register('hook_fork', 'addon/blogger/blogger.php', 'blogger_hook_fork'); + Hook::register('post_local', 'addon/blogger/blogger.php', 'blogger_post_local'); + Hook::register('notifier_normal', 'addon/blogger/blogger.php', 'blogger_send'); + Hook::register('jot_networks', 'addon/blogger/blogger.php', 'blogger_jot_nets'); + Hook::register('connector_settings', 'addon/blogger/blogger.php', 'blogger_settings'); + Hook::register('connector_settings_post', 'addon/blogger/blogger.php', 'blogger_settings_post'); } function blogger_uninstall() { - Addon::unregisterHook('post_local', 'addon/blogger/blogger.php', 'blogger_post_local'); - Addon::unregisterHook('notifier_normal', 'addon/blogger/blogger.php', 'blogger_send'); - Addon::unregisterHook('jot_networks', 'addon/blogger/blogger.php', 'blogger_jot_nets'); - Addon::unregisterHook('connector_settings', 'addon/blogger/blogger.php', 'blogger_settings'); - Addon::unregisterHook('connector_settings_post', 'addon/blogger/blogger.php', 'blogger_settings_post'); + Hook::unregister('hook_fork', 'addon/blogger/blogger.php', 'blogger_hook_fork'); + Hook::unregister('post_local', 'addon/blogger/blogger.php', 'blogger_post_local'); + Hook::unregister('notifier_normal', 'addon/blogger/blogger.php', 'blogger_send'); + Hook::unregister('jot_networks', 'addon/blogger/blogger.php', 'blogger_jot_nets'); + Hook::unregister('connector_settings', 'addon/blogger/blogger.php', 'blogger_settings'); + Hook::unregister('connector_settings_post', 'addon/blogger/blogger.php', 'blogger_settings_post'); // obsolete - remove - Addon::unregisterHook('post_local_end', 'addon/blogger/blogger.php', 'blogger_send'); - Addon::unregisterHook('addon_settings', 'addon/blogger/blogger.php', 'blogger_settings'); - Addon::unregisterHook('addon_settings_post', 'addon/blogger/blogger.php', 'blogger_settings_post'); + Hook::unregister('post_local_end', 'addon/blogger/blogger.php', 'blogger_send'); + Hook::unregister('addon_settings', 'addon/blogger/blogger.php', 'blogger_settings'); + Hook::unregister('addon_settings_post', 'addon/blogger/blogger.php', 'blogger_settings_post'); } -function blogger_jot_nets(App $a, &$b) +function blogger_jot_nets(App $a, array &$jotnets_fields) { if (!local_user()) { return; } - $bl_post = PConfig::get(local_user(), 'blogger', 'post'); - - if (intval($bl_post) == 1) { - $bl_defpost = PConfig::get(local_user(), 'blogger', 'post_by_default'); - $selected = ((intval($bl_defpost) == 1) ? ' checked="checked" ' : ''); - $b .= '
' - . L10n::t('Post to blogger') . '
'; + if (PConfig::get(local_user(), 'blogger', 'post')) { + $jotnets_fields[] = [ + 'type' => 'checkbox', + 'field' => [ + 'blogger_enable', + L10n::t('Post to blogger'), + PConfig::get(local_user(), 'blogger', 'post_by_default') + ] + ]; } } @@ -64,7 +69,7 @@ function blogger_settings(App $a, &$s) /* Add our stylesheet to the page so we can make our settings look nice */ - $a->page['htmlhead'] .= '' . "\r\n"; + $a->page['htmlhead'] .= '' . "\r\n"; /* Get the current state of our config variables */ @@ -122,14 +127,29 @@ function blogger_settings(App $a, &$s) function blogger_settings_post(App $a, array &$b) { if (!empty($_POST['blogger-submit'])) { - PConfig::set(local_user(), 'blogger', 'post', defaults($_POST, 'blogger', false)); - PConfig::set(local_user(), 'blogger', 'post_by_default', defaults($_POST, 'bl_bydefault', false)); + PConfig::set(local_user(), 'blogger', 'post', $_POST['blogger'] ?? false); + PConfig::set(local_user(), 'blogger', 'post_by_default', $_POST['bl_bydefault'] ?? false); PConfig::set(local_user(), 'blogger', 'bl_username', trim($_POST['bl_username'])); PConfig::set(local_user(), 'blogger', 'bl_password', trim($_POST['bl_password'])); PConfig::set(local_user(), 'blogger', 'bl_blog', trim($_POST['bl_blog'])); } } +function blogger_hook_fork(App &$a, array &$b) +{ + if ($b['name'] != 'notifier_normal') { + return; + } + + $post = $b['data']; + + if ($post['deleted'] || $post['private'] || ($post['created'] !== $post['edited']) || + !strstr($post['postopts'], 'blogger') || ($post['parent'] != $post['id'])) { + $b['execute'] = false; + return; + } +} + function blogger_post_local(App $a, array &$b) { // This can probably be changed to allow editing by pointing to a different API endpoint @@ -148,7 +168,7 @@ function blogger_post_local(App $a, array &$b) $bl_post = intval(PConfig::get(local_user(), 'blogger', 'post')); - $bl_enable = (($bl_post && x($_REQUEST, 'blogger_enable')) ? intval($_REQUEST['blogger_enable']) : 0); + $bl_enable = (($bl_post && !empty($_REQUEST['blogger_enable'])) ? intval($_REQUEST['blogger_enable']) : 0); if ($b['api_source'] && intval(PConfig::get(local_user(), 'blogger', 'post_by_default'))) { $bl_enable = 1;