}
}
- function blackout_plugin_admin(&$a, &$o) {
- $mystart = get_config('blackout','begindate');
+ function blackout_addon_admin(&$a, &$o) {
+ $mystart = Config::get('blackout','begindate');
if (! is_string($mystart)) { $mystart = "YYYY-MM-DD:hhmm"; }
- $myend = Config::get('blackout','enddate');
+ $myend = get_config('blackout','enddate');
if (! is_string($myend)) { $myend = "YYYY-MM-DD:hhmm"; }
- $myurl = Config::get('blackout','url');
+ $myurl = get_config('blackout','url');
if (! is_string($myurl)) { $myurl = "http://www.example.com"; }
$t = get_markup_template( "admin.tpl", "addon/blackout/" );
-
- $o = replace_macros($t, array(
- '$submit' => t('Save Settings'),
- '$rurl' => array("rurl", "Redirect URL", $myurl, "all your visitors from the web will be redirected to this URL"),
- '$startdate' => array("startdate", "Begin of the Blackout<br />(YYYY-MM-DD hh:mm)", $mystart, "format is <em>YYYY</em> year, <em>MM</em> month, <em>DD</em> day, <em>hh</em> hour and <em>mm</em> minute"),
- '$enddate' => array("enddate", "End of the Blackout<br />(YYYY-MM-DD hh:mm)", $myend, ""),
+
+ $o = replace_macros($t, [
+ '$submit' => L10n::t('Save Settings'),
+ '$rurl' => ["rurl", "Redirect URL", $myurl, "all your visitors from the web will be redirected to this URL"],
+ '$startdate' => ["startdate", "Begin of the Blackout<br />(YYYY-MM-DD hh:mm)", $mystart, "format is <em>YYYY</em> year, <em>MM</em> month, <em>DD</em> day, <em>hh</em> hour and <em>mm</em> minute"],
+ '$enddate' => ["enddate", "End of the Blackout<br />(YYYY-MM-DD hh:mm)", $myend, ""],
- ]);
+ ));
$date1 = DateTime::createFromFormat('Y-m-d G:i', $mystart);
$date2 = DateTime::createFromFormat('Y-m-d G:i', $myend);
if ($date2 < $date1) {
<?php
-
-
/**
* Name: blockem
- * Description: block people
+ * Description: Allows users to hide content by collapsing posts and replies.
* Version: 1.0
* Author: Mike Macgirvin <http://macgirvin.com/profile/mike>
- *
+ *
*/
-
- function blockem_install() {
- register_hook('prepare_body', 'addon/blockem/blockem.php', 'blockem_prepare_body');
- register_hook('display_item', 'addon/blockem/blockem.php', 'blockem_display_item');
- register_hook('plugin_settings', 'addon/blockem/blockem.php', 'blockem_addon_settings');
- register_hook('plugin_settings_post', 'addon/blockem/blockem.php', 'blockem_addon_settings_post');
- register_hook('conversation_start', 'addon/blockem/blockem.php', 'blockem_conversation_start');
- register_hook('item_photo_menu', 'addon/blockem/blockem.php', 'blockem_item_photo_menu');
- register_hook('enotify_store', 'addon/blockem/blockem.php', 'blockem_enotify_store' );
+ use Friendica\Core\Addon;
+ use Friendica\Core\L10n;
+ use Friendica\Core\PConfig;
+
+ function blockem_install()
+ {
+ Addon::registerHook('prepare_body', 'addon/blockem/blockem.php', 'blockem_prepare_body');
+ Addon::registerHook('display_item', 'addon/blockem/blockem.php', 'blockem_display_item');
+ Addon::registerHook('addon_settings', 'addon/blockem/blockem.php', 'blockem_addon_settings');
+ Addon::registerHook('addon_settings_post', 'addon/blockem/blockem.php', 'blockem_addon_settings_post');
+ Addon::registerHook('conversation_start', 'addon/blockem/blockem.php', 'blockem_conversation_start');
+ Addon::registerHook('item_photo_menu', 'addon/blockem/blockem.php', 'blockem_item_photo_menu');
+ Addon::registerHook('enotify_store', 'addon/blockem/blockem.php', 'blockem_enotify_store');
}
-
- function blockem_uninstall() {
- unregister_hook('prepare_body', 'addon/blockem/blockem.php', 'blockem_prepare_body');
- unregister_hook('display_item', 'addon/blockem/blockem.php', 'blockem_display_item');
- unregister_hook('plugin_settings', 'addon/blockem/blockem.php', 'blockem_addon_settings');
- unregister_hook('plugin_settings_post', 'addon/blockem/blockem.php', 'blockem_addon_settings_post');
- unregister_hook('conversation_start', 'addon/blockem/blockem.php', 'blockem_conversation_start');
- unregister_hook('item_photo_menu', 'addon/blockem/blockem.php', 'blockem_item_photo_menu');
- unregister_hook('enotify_store', 'addon/blockem/blockem.php', 'blockem_enotify_store' );
-
+ function blockem_uninstall()
+ {
+ Addon::unregisterHook('prepare_body', 'addon/blockem/blockem.php', 'blockem_prepare_body');
+ Addon::unregisterHook('display_item', 'addon/blockem/blockem.php', 'blockem_display_item');
+ Addon::unregisterHook('addon_settings', 'addon/blockem/blockem.php', 'blockem_addon_settings');
+ Addon::unregisterHook('addon_settings_post', 'addon/blockem/blockem.php', 'blockem_addon_settings_post');
+ Addon::unregisterHook('conversation_start', 'addon/blockem/blockem.php', 'blockem_conversation_start');
+ Addon::unregisterHook('item_photo_menu', 'addon/blockem/blockem.php', 'blockem_item_photo_menu');
+ Addon::unregisterHook('enotify_store', 'addon/blockem/blockem.php', 'blockem_enotify_store');
}
-
-
-
-
- function blockem_addon_settings(&$a,&$s) {
+ function blockem_addon_settings(&$a, &$s)
+ {
if(! local_user())
return;
}
}
-
function blockem_enotify_store(&$a,&$b) {
- $words = PConfig::get($b['uid'],'blockem','words');
+ $words = get_pconfig($b['uid'],'blockem','words');
if($words) {
$arr = explode(',',$words);
}
* Name: Blogger Post Connector
* Description: Post to Blogger (or anything else which uses blogger XMLRPC API)
* Version: 1.0
- *
+ *
*/
- function blogger_install() {
- register_hook('post_local', 'addon/blogger/blogger.php', 'blogger_post_local');
- register_hook('notifier_normal', 'addon/blogger/blogger.php', 'blogger_send');
- register_hook('jot_networks', 'addon/blogger/blogger.php', 'blogger_jot_nets');
- register_hook('connector_settings', 'addon/blogger/blogger.php', 'blogger_settings');
- register_hook('connector_settings_post', 'addon/blogger/blogger.php', 'blogger_settings_post');
-
+ use Friendica\Content\Text\BBCode;
+ use Friendica\Core\Addon;
+ use Friendica\Core\L10n;
+ use Friendica\Core\PConfig;
+ use Friendica\Util\Network;
+
+ 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');
}
- function blogger_uninstall() {
- unregister_hook('post_local', 'addon/blogger/blogger.php', 'blogger_post_local');
- unregister_hook('notifier_normal', 'addon/blogger/blogger.php', 'blogger_send');
- unregister_hook('jot_networks', 'addon/blogger/blogger.php', 'blogger_jot_nets');
- unregister_hook('connector_settings', 'addon/blogger/blogger.php', 'blogger_settings');
- unregister_hook('connector_settings_post', 'addon/blogger/blogger.php', 'blogger_settings_post');
- // obsolete - remove
- unregister_hook('post_local_end', 'addon/blogger/blogger.php', 'blogger_send');
- unregister_hook('plugin_settings', 'addon/blogger/blogger.php', 'blogger_settings');
- unregister_hook('plugin_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');
+ // 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');
}
}
- function blogger_settings(&$a,&$s) {
-
- if(! local_user())
- return;
+ function blogger_settings(&$a, &$s)
+ {
+ if (! local_user()) {
+ return;
+ }
- /* Add our stylesheet to the page so we can make our settings look nice */
+ /* Add our stylesheet to the page so we can make our settings look nice */
- $a->page['htmlhead'] .= '<link rel="stylesheet" type="text/css" href="' . $a->get_baseurl() . '/addon/blogger/blogger.css' . '" media="all" />' . "\r\n";
+ $a->page['htmlhead'] .= '<link rel="stylesheet" type="text/css" href="' . $a->get_baseurl() . '/addon/blogger/blogger.css' . '" media="all" />' . "\r\n";
- /* Get the current state of our config variables */
+ /* Get the current state of our config variables */
- $enabled = get_pconfig(local_user(),'blogger','post');
- $checked = (($enabled) ? ' checked="checked" ' : '');
- $css = (($enabled) ? '' : '-disabled');
+ $enabled = PConfig::get(local_user(), 'blogger', 'post');
+ $checked = (($enabled) ? ' checked="checked" ' : '');
+ $css = (($enabled) ? '' : '-disabled');
- $def_enabled = get_pconfig(local_user(),'blogger','post_by_default');
+ $def_enabled = PConfig::get(local_user(), 'blogger', 'post_by_default');
- $def_checked = (($def_enabled) ? ' checked="checked" ' : '');
+ $def_checked = (($def_enabled) ? ' checked="checked" ' : '');
- $bl_username = PConfig::get(local_user(), 'blogger', 'bl_username');
- $bl_password = PConfig::get(local_user(), 'blogger', 'bl_password');
- $bl_blog = PConfig::get(local_user(), 'blogger', 'bl_blog');
+ $bl_username = get_pconfig(local_user(), 'blogger', 'bl_username');
+ $bl_password = get_pconfig(local_user(), 'blogger', 'bl_password');
+ $bl_blog = get_pconfig(local_user(), 'blogger', 'bl_blog');
-
- /* Add some HTML to the existing form */
-
- $s .= '<span id="settings_blogger_inflated" class="settings-block fakelink" style="display: block;" onclick="openClose(\'settings_blogger_expanded\'); openClose(\'settings_blogger_inflated\');">';
- $s .= '<img class="connector'.$css.'" src="images/blogger.png" /><h3 class="connector">'. t('Blogger Export').'</h3>';
- $s .= '</span>';
- $s .= '<div id="settings_blogger_expanded" class="settings-block" style="display: none;">';
- $s .= '<span class="fakelink" onclick="openClose(\'settings_blogger_expanded\'); openClose(\'settings_blogger_inflated\');">';
- $s .= '<img class="connector'.$css.'" src="images/blogger.png" /><h3 class="connector">'. t('Blogger Export').'</h3>';
- $s .= '</span>';
-
- $s .= '<div id="blogger-enable-wrapper">';
- $s .= '<label id="blogger-enable-label" for="blogger-checkbox">' . t('Enable Blogger Post Plugin') . '</label>';
- $s .= '<input id="blogger-checkbox" type="checkbox" name="blogger" value="1" ' . $checked . '/>';
- $s .= '</div><div class="clear"></div>';
-
- $s .= '<div id="blogger-username-wrapper">';
- $s .= '<label id="blogger-username-label" for="blogger-username">' . t('Blogger username') . '</label>';
- $s .= '<input id="blogger-username" type="text" name="bl_username" value="' . $bl_username . '" />';
- $s .= '</div><div class="clear"></div>';
-
- $s .= '<div id="blogger-password-wrapper">';
- $s .= '<label id="blogger-password-label" for="blogger-password">' . t('Blogger password') . '</label>';
- $s .= '<input id="blogger-password" type="password" name="bl_password" value="' . $bl_password . '" />';
- $s .= '</div><div class="clear"></div>';
-
- $s .= '<div id="blogger-blog-wrapper">';
- $s .= '<label id="blogger-blog-label" for="blogger-blog">' . t('Blogger API URL') . '</label>';
- $s .= '<input id="blogger-blog" type="text" name="bl_blog" value="' . $bl_blog . '" />';
- $s .= '</div><div class="clear"></div>';
-
- $s .= '<div id="blogger-bydefault-wrapper">';
- $s .= '<label id="blogger-bydefault-label" for="blogger-bydefault">' . t('Post to Blogger by default') . '</label>';
- $s .= '<input id="blogger-bydefault" type="checkbox" name="bl_bydefault" value="1" ' . $def_checked . '/>';
- $s .= '</div><div class="clear"></div>';
-
- /* provide a submit button */
-
- $s .= '<div class="settings-submit-wrapper" ><input type="submit" id="blogger-submit" name="blogger-submit" class="settings-submit" value="' . t('Save Settings') . '" /></div></div>';
-
+ /* Add some HTML to the existing form */
+ $s .= '<span id="settings_blogger_inflated" class="settings-block fakelink" style="display: block;" onclick="openClose(\'settings_blogger_expanded\'); openClose(\'settings_blogger_inflated\');">';
+ $s .= '<img class="connector'.$css.'" src="images/blogger.png" /><h3 class="connector">'. L10n::t('Blogger Export').'</h3>';
+ $s .= '</span>';
+ $s .= '<div id="settings_blogger_expanded" class="settings-block" style="display: none;">';
+ $s .= '<span class="fakelink" onclick="openClose(\'settings_blogger_expanded\'); openClose(\'settings_blogger_inflated\');">';
+ $s .= '<img class="connector'.$css.'" src="images/blogger.png" /><h3 class="connector">'. L10n::t('Blogger Export').'</h3>';
+ $s .= '</span>';
+
+ $s .= '<div id="blogger-enable-wrapper">';
+ $s .= '<label id="blogger-enable-label" for="blogger-checkbox">' . L10n::t('Enable Blogger Post Addon') . '</label>';
+ $s .= '<input id="blogger-checkbox" type="checkbox" name="blogger" value="1" ' . $checked . '/>';
+ $s .= '</div><div class="clear"></div>';
+
+ $s .= '<div id="blogger-username-wrapper">';
+ $s .= '<label id="blogger-username-label" for="blogger-username">' . L10n::t('Blogger username') . '</label>';
+ $s .= '<input id="blogger-username" type="text" name="bl_username" value="' . $bl_username . '" />';
+ $s .= '</div><div class="clear"></div>';
+
+ $s .= '<div id="blogger-password-wrapper">';
+ $s .= '<label id="blogger-password-label" for="blogger-password">' . L10n::t('Blogger password') . '</label>';
+ $s .= '<input id="blogger-password" type="password" name="bl_password" value="' . $bl_password . '" />';
+ $s .= '</div><div class="clear"></div>';
+
+ $s .= '<div id="blogger-blog-wrapper">';
+ $s .= '<label id="blogger-blog-label" for="blogger-blog">' . L10n::t('Blogger API URL') . '</label>';
+ $s .= '<input id="blogger-blog" type="text" name="bl_blog" value="' . $bl_blog . '" />';
+ $s .= '</div><div class="clear"></div>';
+
+ $s .= '<div id="blogger-bydefault-wrapper">';
+ $s .= '<label id="blogger-bydefault-label" for="blogger-bydefault">' . L10n::t('Post to Blogger by default') . '</label>';
+ $s .= '<input id="blogger-bydefault" type="checkbox" name="bl_bydefault" value="1" ' . $def_checked . '/>';
+ $s .= '</div><div class="clear"></div>';
+
+ /* provide a submit button */
+ $s .= '<div class="settings-submit-wrapper" ><input type="submit" id="blogger-submit" name="blogger-submit" class="settings-submit" value="' . L10n::t('Save Settings') . '" /></div></div>';
}
- function blogger_settings_post(&$a,&$b) {
-
- if(x($_POST,'blogger-submit')) {
-
- set_pconfig(local_user(),'blogger','post',intval($_POST['blogger']));
- set_pconfig(local_user(),'blogger','post_by_default',intval($_POST['bl_bydefault']));
- set_pconfig(local_user(),'blogger','bl_username',trim($_POST['bl_username']));
- set_pconfig(local_user(),'blogger','bl_password',trim($_POST['bl_password']));
- set_pconfig(local_user(),'blogger','bl_blog',trim($_POST['bl_blog']));
-
+ function blogger_settings_post(&$a, &$b)
+ {
+ if (x($_POST, 'blogger-submit')) {
+ PConfig::set(local_user(), 'blogger', 'post', intval($_POST['blogger']));
+ PConfig::set(local_user(), 'blogger', 'post_by_default', intval($_POST['bl_bydefault']));
+ 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_post_local(&$a,&$b) {
-
+ function blogger_post_local(&$a, &$b)
+ {
// This can probably be changed to allow editing by pointing to a different API endpoint
- if ($b['edit']) {
+ if($b['edit'])
return;
- }
- if (!local_user() || (local_user() != $b['uid'])) {
+ if((! local_user()) || (local_user() != $b['uid']))
return;
- }
- if ($b['private'] || $b['parent']) {
+ if($b['private'] || $b['parent'])
return;
- }
- $bl_post = intval(get_pconfig(local_user(),'blogger','post'));
+ $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 && x($_REQUEST, 'blogger_enable')) ? intval($_REQUEST['blogger_enable']) : 0);
- if($b['api_source'] && intval(get_pconfig(local_user(),'blogger','post_by_default')))
+ if ($b['api_source'] && intval(PConfig::get(local_user(), 'blogger', 'post_by_default'))) {
$bl_enable = 1;
- }
-
- if (!$bl_enable) {
- return;
- }
- if (strlen($b['postopts'])) {
- $b['postopts'] .= ',';
- }
+ if(! $bl_enable)
+ return;
- $b['postopts'] .= 'blogger';
+ if(strlen($b['postopts']))
+ $b['postopts'] .= ',';
+ $b['postopts'] .= 'blogger';
}
- function blogger_send(&$a,&$b) {
-
- if($b['deleted'] || $b['private'] || ($b['created'] !== $b['edited']))
- return;
-
- if(! strstr($b['postopts'],'blogger'))
- return;
-
- if($b['parent'] != $b['id'])
- return;
-
+ function blogger_send(&$a, &$b)
+ {
+ if ($b['deleted'] || $b['private'] || ($b['created'] !== $b['edited'])) {
+ return;
+ }
- $bl_username = xmlify(get_pconfig($b['uid'],'blogger','bl_username'));
- $bl_password = xmlify(get_pconfig($b['uid'],'blogger','bl_password'));
- $bl_blog = get_pconfig($b['uid'],'blogger','bl_blog');
+ if (! strstr($b['postopts'], 'blogger')) {
+ return;
+ }
- if($bl_username && $bl_password && $bl_blog) {
- if ($b['parent'] != $b['id']) {
- return;
- }
- require_once('include/bbcode.php');
+ $bl_username = xmlify(PConfig::get($b['uid'], 'blogger', 'bl_username'));
+ $bl_password = xmlify(PConfig::get($b['uid'], 'blogger', 'bl_password'));
+ $bl_blog = PConfig::get($b['uid'], 'blogger', 'bl_blog');
- $title = '<title>' . (($b['title']) ? $b['title'] : t('Post from Friendica')) . '</title>';
- $post = $title . bbcode($b['body']);
+ if ($bl_username && $bl_password && $bl_blog) {
+ $title = '<title>' . (($b['title']) ? $b['title'] : L10n::t('Post from Friendica')) . '</title>';
+ $post = $title . BBCode::convert($b['body']);
$post = xmlify($post);
$xml = <<< EOT
logger('blogger: data: ' . $xml, LOGGER_DATA);
- if($bl_blog !== 'test')
- $x = post_url($bl_blog,$xml);
+ if ($bl_blog !== 'test') {
+ $x = Network::post($bl_blog, $xml);
+ }
+
logger('posted to blogger: ' . (($x) ? $x : ''), LOGGER_DEBUG);
+
}
}
-
if(! local_user())
return;
- $buffer_post = PConfig::get(local_user(),'buffer','post');
+ $buffer_post = get_pconfig(local_user(),'buffer','post');
if(intval($buffer_post) == 1) {
- $buffer_defpost = PConfig::get(local_user(),'buffer','post_by_default');
+ $buffer_defpost = get_pconfig(local_user(),'buffer','post_by_default');
$selected = ((intval($buffer_defpost) == 1) ? ' checked="checked" ' : '');
$b .= '<div class="profile-jot-net"><input type="checkbox" name="buffer_enable"' . $selected . ' value="1" /> '
- . t('Post to Buffer') . '</div>';
+ . L10n::t('Post to Buffer') . '</div>';
}
}
$s .= '</span>';
$s .= '<div id="settings_buffer_expanded" class="settings-block" style="display: none;">';
$s .= '<span class="fakelink" onclick="openClose(\'settings_buffer_expanded\'); openClose(\'settings_buffer_inflated\');">';
- $s .= '<img class="connector'.$css.'" src="images/buffer.png" /><h3 class="connector">'. t('Buffer Export').'</h3>';
+ $s .= '<img class="connector'.$css.'" src="images/buffer.png" /><h3 class="connector">'. L10n::t('Buffer Export').'</h3>';
$s .= '</span>';
- $client_id = Config::get("buffer", "client_id");
- $client_secret = Config::get("buffer", "client_secret");
- $access_token = PConfig::get(local_user(), "buffer", "access_token");
+ $client_id = get_config("buffer", "client_id");
+ $client_secret = get_config("buffer", "client_secret");
+ $access_token = get_pconfig(local_user(), "buffer", "access_token");
$s .= '<div id="buffer-password-wrapper">';
if ($access_token == "") {
//if($b['app'] == "Buffer")
// return;
- $client_id = Config::get("buffer", "client_id");
- $client_secret = Config::get("buffer", "client_secret");
- $access_token = PConfig::get($b['uid'], "buffer","access_token");
+ $client_id = get_config("buffer", "client_id");
+ $client_secret = get_config("buffer", "client_secret");
+ $access_token = get_pconfig($b['uid'], "buffer","access_token");
- if($access_token) {
+ if ($access_token) {
$buffer = new BufferApp($client_id, $client_secret, $callback_url, $access_token);
- require_once("include/plaintext.php");
- require_once("include/network.php");
-
$profiles = $buffer->go('/profiles');
if (is_array($profiles)) {
logger("Will send these parameter ".print_r($b, true), LOGGER_DEBUG);
0,
12
);
- # $tpl = file_get_contents( dirname(__file__).'/directory_item.tpl');
- $tpl = get_markup_template( 'directory_item.tpl', 'addon/communityhome/' );
- if(count($r)) {
+ # $tpl = file_get_contents( dirname(__file__).'/directory_item.tpl');
+ $tpl = get_markup_template('directory_item.tpl', 'addon/communityhome/');
+ if (count($r)) {
$photo = 'thumb';
- foreach($r as $rr) {
+ foreach ($r as $rr) {
$profile_link = $a->get_baseurl() . '/profile/' . ((strlen($rr['nickname'])) ? $rr['nickname'] : $rr['profile_uid']);
- $entry = replace_macros($tpl,array(
+ $entry = replace_macros($tpl, [
'$id' => $rr['id'],
'$profile_link' => $profile_link,
- '$photo' => $rr[$photo],
+ '$photo' => $a->get_cached_avatar_image($rr[$photo]),
'$alt_text' => $rr['name'],
- ]);
+ ));
$aside['$lastusers_items'][] = $entry;
}
}
}
// last 10 liked items
- if (get_config('communityhome','showlastlike')===true){
- $aside['$like_title'] = t('Latest likes');
- $aside['$like_items'] = array();
- $r = q("SELECT `T1`.`created`, `T1`.`liker`, `T1`.`liker-link`, `item`.* FROM
- (SELECT `parent-uri`, `created`, `author-name` AS `liker`,`author-link` AS `liker-link`
+ if (Config::get('communityhome', 'showlastlike')) {
+ $aside['$like_title'] = L10n::t('Latest likes');
+ $aside['$like_items'] = [];
+ $r = q("SELECT `T1`.`created`, `T1`.`liker`, `T1`.`liker-link`, `item`.* FROM
+ (SELECT `parent-uri`, `created`, `author-name` AS `liker`,`author-link` AS `liker-link`
FROM `item` WHERE `verb`='http://activitystrea.ms/schema/1.0/like' GROUP BY `parent-uri` ORDER BY `created` DESC) AS T1
- INNER JOIN `item` ON `item`.`uri`=`T1`.`parent-uri`
+ INNER JOIN `item` ON `item`.`uri`=`T1`.`parent-uri`
WHERE `T1`.`liker-link` LIKE '%s%%' OR `item`.`author-link` LIKE '%s%%'
GROUP BY `uri`
ORDER BY `T1`.`created` DESC
}
- function curweather_plugin_settings_post($a,$post) {
+ function curweather_addon_settings_post($a,$post) {
if(! local_user() || (! x($_POST,'curweather-settings-submit')))
return;
- PConfig::set(local_user(),'curweather','curweather_loc',trim($_POST['curweather_loc']));
- PConfig::set(local_user(),'curweather','curweather_enable',intval($_POST['curweather_enable']));
- PConfig::set(local_user(),'curweather','curweather_units',trim($_POST['curweather_units']));
+ set_pconfig(local_user(),'curweather','curweather_loc',trim($_POST['curweather_loc']));
+ set_pconfig(local_user(),'curweather','curweather_enable',intval($_POST['curweather_enable']));
+ set_pconfig(local_user(),'curweather','curweather_units',trim($_POST['curweather_units']));
- info( t('Current Weather settings updated.') . EOL);
+ info(L10n::t('Current Weather settings updated.') . EOL);
}
} else {
$noappidtext = '';
}
- $enable = intval(PConfig::get(local_user(),'curweather','curweather_enable'));
+ $enable = intval(get_pconfig(local_user(),'curweather','curweather_enable'));
$enable_checked = (($enable) ? ' checked="checked" ' : '');
-
+
// load template and replace the macros
$t = get_markup_template("settings.tpl", "addon/curweather/" );
- $s = replace_macros ($t, array(
- '$submit' => t('Save Settings'),
- '$header' => t('Current Weather').' '.t('Settings'),
+ $s = replace_macros ($t, [
+ '$submit' => L10n::t('Save Settings'),
+ '$header' => L10n::t('Current Weather').' '.L10n::t('Settings'),
'$noappidtext' => $noappidtext,
- '$info' => t('Enter either the name of your location or the zip code.'),
- '$curweather_loc' => array( 'curweather_loc', t('Your Location'), $curweather_loc, t('Identifier of your location (name or zip code), e.g. <em>Berlin,DE</em> or <em>14476,DE</em>.') ),
- '$curweather_units' => array( 'curweather_units', t('Units'), $curweather_units, t('select if the temperature should be displayed in °C or °F'), array('metric'=>'°C', 'imperial'=>'°F')),
- '$enabled' => array( 'curweather_enable', t('Show weather data'), $enable, '')
- ));
+ '$info' => L10n::t('Enter either the name of your location or the zip code.'),
+ '$curweather_loc' => [ 'curweather_loc', L10n::t('Your Location'), $curweather_loc, L10n::t('Identifier of your location (name or zip code), e.g. <em>Berlin,DE</em> or <em>14476,DE</em>.') ],
+ '$curweather_units' => [ 'curweather_units', L10n::t('Units'), $curweather_units, L10n::t('select if the temperature should be displayed in °C or °F'), ['metric'=>'°C', 'imperial'=>'°F']],
+ '$enabled' => [ 'curweather_enable', L10n::t('Show weather data'), $enable, '']
+ ]);
return;
}
if(! is_site_admin())
return;
if ($_POST['curweather-submit']) {
- set_config('curweather','appid',trim($_POST['appid']));
- set_config('curweather','cachetime',trim($_POST['cachetime']));
- info( t('Curweather settings saved.'.EOL));
+ Config::set('curweather','appid',trim($_POST['appid']));
+ Config::set('curweather','cachetime',trim($_POST['cachetime']));
+ info(L10n::t('Curweather settings saved.'.EOL));
}
}
- function curweather_plugin_admin (&$a, &$o) {
+ function curweather_addon_admin (&$a, &$o) {
if(! is_site_admin())
return;
- $appid = Config::get('curweather','appid');
- $cachetime = Config::get('curweather','cachetime');
+ $appid = get_config('curweather','appid');
+ $cachetime = get_config('curweather','cachetime');
$t = get_markup_template("admin.tpl", "addon/curweather/" );
- $o = replace_macros ($t, array(
- '$submit' => t('Save Settings'),
- '$cachetime' => array('cachetime', t('Caching Interval'), $cachetime, t('For how long should the weather data be cached? Choose according your OpenWeatherMap account type.'), array('0'=>t('no cache'), '300'=>'5 '.t('minutes'), '900'=>'15 '.t('minutes'), '1800'=>'30 '.t('minutes'), '3600'=>'60 '.t('minutes'))),
- '$appid' => array('appid', t('Your APPID'), $appid, t('Your API key provided by OpenWeatherMap'))
- ));
+ $o = replace_macros ($t, [
+ '$submit' => L10n::t('Save Settings'),
+ '$cachetime' => ['cachetime', L10n::t('Caching Interval'), $cachetime, L10n::t('For how long should the weather data be cached? Choose according your OpenWeatherMap account type.'), ['0'=>L10n::t('no cache'), '300'=>'5 '.L10n::t('minutes'), '900'=>'15 '.L10n::t('minutes'), '1800'=>'30 '.L10n::t('minutes'), '3600'=>'60 '.L10n::t('minutes')]],
+ '$appid' => ['appid', L10n::t('Your APPID'), $appid, L10n::t('Your API key provided by OpenWeatherMap')]
+ ]);
}
*/
function wdcal_create_std_calendars_get_statements($user_id, $withcheck = true)
{
- $stms = [];
+ $stms = array();
$a = get_app();
- $uris = array(
- 'private' => t("Private Calendar"),
- CALDAV_FRIENDICA_MINE => t("Friendica Events: Mine"),
- CALDAV_FRIENDICA_CONTACTS => t("Friendica Events: Contacts"),
- );
+ $uris = [
+ 'private' => L10n::t("Private Calendar"),
+ CALDAV_FRIENDICA_MINE => L10n::t("Friendica Events: Mine"),
+ CALDAV_FRIENDICA_CONTACTS => L10n::t("Friendica Events: Contacts"),
+ ];
foreach ($uris as $uri => $name) {
$cals = q("SELECT * FROM %s%scalendars WHERE `namespace` = %d AND `namespace_id` = %d AND `uri` = '%s'",
CALDAV_SQL_DB, CALDAV_SQL_PREFIX, CALDAV_NAMESPACE_PRIVATE, IntVal($user_id), dbesc($uri));
*/
function wdcal_create_std_addressbooks_get_statements($user_id, $withcheck = true)
{
- $stms = [];
+ $stms = array();
$a = get_app();
- $uris = array(
- 'private' => t("Private Addresses"),
- CARDDAV_FRIENDICA_CONTACT => t("Friendica Contacts"),
- );
+ $uris = [
+ 'private' => L10n::t("Private Addresses"),
+ CARDDAV_FRIENDICA_CONTACT => L10n::t("Friendica Contacts"),
+ ];
foreach ($uris as $uri => $name) {
$cals = q("SELECT * FROM %s%saddressbooks WHERE `namespace` = %d AND `namespace_id` = %d AND `uri` = '%s'",
CALDAV_SQL_DB, CALDAV_SQL_PREFIX, CALDAV_NAMESPACE_PRIVATE, IntVal($user_id), dbesc($uri));
else $sql_where .= " AND `finish` >= '" . dbesc($date_from) . "'";
}
if ($date_to != "") {
- if (is_numeric($date_to)) $sql_where .= " AND `start` <= '" . date("Y-m-d H:i:s", $date_to) . "'";
+ if (is_numeric($date_to)) $sql_where .= " AND `start` <= '" . date(DateTimeFormat::MYSQL, $date_to) . "'";
else $sql_where .= " AND `start` <= '" . dbesc($date_to) . "'";
}
- $ret = [];
+ $ret = array();
$r = q("SELECT * FROM `event` WHERE `uid` = %d " . $sql_where . " ORDER BY `start`", IntVal($calendar["namespace_id"]));
case "email":
case "display": // @TODO implement "Display"
foreach ($users as $user) {
- $find = ["%to%", "%event%", "%url%"];
- $repl = [$user["username"], $event[0]["Summary"], $a->get_baseurl() . "/dav/wdcal/" . $calendar[0]["id"] . "/" . $not["calendarobject_id"] . "/"];
+ $find = array("%to%", "%event%", "%url%");
+ $repl = array($user["username"], $event[0]["Summary"], $a->get_baseurl() . "/dav/wdcal/" . $calendar[0]["id"] . "/" . $not["calendarobject_id"] . "/");
$text_text = str_replace($find, $repl, "Hi %to%!\n\nThe event \"%event%\" is about to begin:\n%url%");
$text_html = str_replace($find, $repl, "Hi %to%!<br>\n<br>\nThe event \"%event%\" is about to begin:<br>\n<a href='" . "%url%" . "'>%url%</a>");
- $params = [
+ $params = array(
'fromName' => FRIENDICA_PLATFORM,
- 'fromEmail' => t('noreply') . '@' . $a->get_hostname(),
- 'replyTo' => t('noreply') . '@' . $a->get_hostname(),
+ 'fromEmail' => L10n::t('noreply') . '@' . $a->get_hostname(),
+ 'replyTo' => L10n::t('noreply') . '@' . $a->get_hostname(),
'toEmail' => $user["email"],
- 'messageSubject' => t("Notification: " . $event[0]["Summary"]),
+ 'messageSubject' => L10n::t("Notification: " . $event[0]["Summary"]),
'htmlVersion' => $text_html,
'textVersion' => $text_text,
'additionalMailHeader' => "",
if(! local_user())
return;
- $diaspora_post = PConfig::get(local_user(),'diaspora','post');
+ $diaspora_post = get_pconfig(local_user(),'diaspora','post');
if(intval($diaspora_post) == 1) {
- $diaspora_defpost = PConfig::get(local_user(),'diaspora','post_by_default');
+ $diaspora_defpost = get_pconfig(local_user(),'diaspora','post_by_default');
$selected = ((intval($diaspora_defpost) == 1) ? ' checked="checked" ' : '');
$b .= '<div class="profile-jot-net"><input type="checkbox" name="diaspora_enable"' . $selected . ' value="1" /> '
- . t('Post to Diaspora') . '</div>';
+ . L10n::t('Post to Diaspora') . '</div>';
}
}
if(! local_user())
return;
- $dw_post = PConfig::get(local_user(),'dwpost','post');
+ $dw_post = get_pconfig(local_user(),'dwpost','post');
if(intval($dw_post) == 1) {
- $dw_defpost = PConfig::get(local_user(),'dwpost','post_by_default');
+ $dw_defpost = get_pconfig(local_user(),'dwpost','post_by_default');
$selected = ((intval($dw_defpost) == 1) ? ' checked="checked" ' : '');
$b .= '<div class="profile-jot-net"><input type="checkbox" name="dwpost_enable" ' . $selected . ' value="1" /> '
- . t('Post to Dreamwidth') . '</div>';
+ . L10n::t('Post to Dreamwidth') . '</div>';
}
}
$admin = '';
- $o .= replace_macros($tpl, array(
- '$search' => $search,
+ $o .= replace_macros($tpl, [
+ '$search' => $search,
'$globaldir' => $globaldir,
- '$desc' => t('Find on this site'),
- '$admin' => $admin,
- '$finding' => (strlen($search) ? '<h4>' . t('Finding: ') . "'" . $search . "'" . '</h4>' : ""),
- '$sitedir' => t('Site Directory'),
- '$submit' => t('Find')
- ));
-
- if($search)
- $search = dbesc($search);
- $sql_extra = ((strlen($search)) ? " AND MATCH (`profile`.`name`, `user`.`nickname`, `pdesc`, `locality`,`region`,`country-name`,`gender`,`marital`,`sexual`,`about`,`romance`,`work`,`education`,`pub_keywords`,`prv_keywords` ) AGAINST ('$search' IN BOOLEAN MODE) " : "");
-
- $publish = ((get_config('system','publish_all')) ? '' : " AND `publish` = 1 " );
+ '$desc' => L10n::t('Find on this site'),
+ '$admin' => $admin,
+ '$finding' => (strlen($search) ? '<h4>' . L10n::t('Finding: ') . "'" . $search . "'" . '</h4>' : ""),
+ '$sitedir' => L10n::t('Site Directory'),
+ '$submit' => L10n::t('Find')
+ ]);
+
+ $sql_extra = '';
+ if (strlen($search)) {
+ $sql_extra = " AND MATCH (`profile`.`name`, `user`.`nickname`, `pdesc`, `locality`,`region`,`country-name`,"
+ . "`gender`,`marital`,`sexual`,`about`,`romance`,`work`,`education`,`pub_keywords`,`prv_keywords` )"
+ . " AGAINST ('" . dbesc($search) . "' IN BOOLEAN MODE) ";
+ }
+ $publish = Config::get('system', 'publish_all') ? '' : " AND `publish` = 1 ";
- $r = q("SELECT COUNT(*) AS `total` FROM `profile` LEFT JOIN `user` ON `user`.`uid` = `profile`.`uid` WHERE `is-default` = 1 $publish AND `user`.`blocked` = 0 AND `page-flags` = 2 $sql_extra ");
- if(count($r))
+ $r = q("SELECT COUNT(*) AS `total` FROM `profile` LEFT JOIN `user` ON `user`.`uid` = `profile`.`uid`"
+ . " WHERE `is-default` = 1 $publish AND `user`.`blocked` = 0 AND `page-flags` = 2 $sql_extra ");
+ if (DBM::is_result($r)) {
$a->set_pager_total($r[0]['total']);
+ }
- $order = " ORDER BY `name` ASC ";
+ $order = " ORDER BY `name` ASC ";
-
- $r = q("SELECT `profile`.*, `profile`.`uid` AS `profile_uid`, `user`.`nickname`, `user`.`timezone` , `user`.`page-flags` FROM `profile` LEFT JOIN `user` ON `user`.`uid` = `profile`.`uid` WHERE `is-default` = 1 $publish AND `user`.`blocked` = 0 AND `page-flags` = 2 $sql_extra $order LIMIT %d , %d ",
+ $r = q("SELECT `profile`.*, `profile`.`uid` AS `profile_uid`, `user`.`nickname`, `user`.`timezone` , `user`.`page-flags`"
+ . " FROM `profile` LEFT JOIN `user` ON `user`.`uid` = `profile`.`uid` WHERE `is-default` = 1 $publish"
+ . " AND `user`.`blocked` = 0 AND `page-flags` = 2 $sql_extra $order LIMIT %d , %d ",
intval($a->pager['start']),
intval($a->pager['itemspage'])
);
- if(count($r)) {
- if(in_array('small', $a->argv))
+ if (DBM::is_result($r)) {
+ if (in_array('small', $a->argv)) {
$photo = 'thumb';
- else
+ } else {
$photo = 'photo';
+ }
- foreach($r as $rr) {
-
-
+ foreach ($r as $rr) {
$profile_link = $a->get_baseurl() . '/profile/' . ((strlen($rr['nickname'])) ? $rr['nickname'] : $rr['profile_uid']);
-
+
$pdesc = (($rr['pdesc']) ? $rr['pdesc'] . '<br />' : '');
$details = '';
/* provide a submit button */
- $s .= '<div class="settings-submit-wrapper" ><input type="submit" name="fromapp-submit" class="settings-submit" value="' . t('Save Settings') . '" /></div></div>';
-
+ $s .= '<div class="settings-submit-wrapper" ><input type="submit" name="fromapp-submit" class="settings-submit" value="' . L10n::t('Save Settings') . '" /></div></div>';
}
-function fromapp_post_hook(&$a, &$item)
-{
- if (! local_user()) {
- return;
- }
+function fromapp_post_hook(&$a,&$item) {
+ if(! local_user())
+ return;
- if (local_user() != $item['uid']) {
- return;
- }
+ if(local_user() != $item['uid'])
+ return;
- $app = PConfig::get(local_user(), 'fromapp', 'app');
- $force = intval(PConfig::get(local_user(), 'fromapp', 'force'));
+ $app = get_pconfig(local_user(), 'fromapp', 'app');
+ $force = intval(get_pconfig(local_user(), 'fromapp','force'));
- if (is_null($app) || (! strlen($app))) {
- return;
- }
+ if(($app === false) || (! strlen($app)))
+ return;
- if (strlen(trim($item['app'])) && (! $force)) {
+ if(strlen(trim($item['app'])) && (! $force))
return;
- }
- $apps = explode(',', $app);
- $item['app'] = trim($apps[mt_rand(0, count($apps)-1)]);
-
+ $apps = explode(',',$app);
+ $item['app'] = trim($apps[mt_rand(0,count($apps)-1)]);
return;
+
}
if (count($result) > 0)
return;
- $enable_checked = (intval(PConfig::get(local_user(),'fromgplus','enable')) ? ' checked="checked"' : '');
- $keywords_checked = (intval(PConfig::get(local_user(), 'fromgplus', 'keywords')) ? ' checked="checked"' : '');
- $account = PConfig::get(local_user(),'fromgplus','account');
+ $enable_checked = (intval(get_pconfig(local_user(),'fromgplus','enable')) ? ' checked="checked"' : '');
+ $keywords_checked = (intval(get_pconfig(local_user(), 'fromgplus', 'keywords')) ? ' checked="checked"' : '');
+ $account = get_pconfig(local_user(),'fromgplus','account');
$s .= '<span id="settings_fromgplus_inflated" class="settings-block fakelink" style="display: block;" onclick="openClose(\'settings_fromgplus_expanded\'); openClose(\'settings_fromgplus_inflated\');">';
- $s .= '<img class="connector" src="images/googleplus.png" /><h3 class="connector">'. t('Google+ Mirror').'</h3>';
+ $s .= '<img class="connector" src="images/googleplus.png" /><h3 class="connector">'. L10n::t('Google+ Mirror').'</h3>';
$s .= '</span>';
$s .= '<div id="settings_fromgplus_expanded" class="settings-block" style="display: none;">';
$s .= '<span class="fakelink" onclick="openClose(\'settings_fromgplus_expanded\'); openClose(\'settings_fromgplus_inflated\');">';
return;
if($_POST['fromgplus-submit']) {
- PConfig::set(local_user(),'fromgplus','account',trim($_POST['fromgplus-account']));
+ set_pconfig(local_user(),'fromgplus','account',trim($_POST['fromgplus-account']));
$enable = ((x($_POST,'fromgplus-enable')) ? intval($_POST['fromgplus-enable']) : 0);
- PConfig::set(local_user(),'fromgplus','enable', $enable);
+ set_pconfig(local_user(),'fromgplus','enable', $enable);
$keywords = ((x($_POST, 'fromgplus-keywords')) ? intval($_POST['fromgplus-keywords']) : 0);
- PConfig::set(local_user(),'fromgplus', 'keywords', $keywords);
+ set_pconfig(local_user(),'fromgplus', 'keywords', $keywords);
if (!$enable)
- PConfig::delete(local_user(),'fromgplus','lastdate');
+ del_pconfig(local_user(),'fromgplus','lastdate');
- info( t('Google+ Import Settings saved.') . EOL);
+ info(L10n::t('Google+ Import Settings saved.') . EOL);
}
}
// Special blank to identify postings from the googleplus connector
$blank = html_entity_decode(" ", ENT_QUOTES, 'UTF-8');
- $account = PConfig::get($uid,'fromgplus','account');
- $key = Config::get('fromgplus','key');
+ $account = get_pconfig($uid,'fromgplus','account');
+ $key = get_config('fromgplus','key');
- $result = fetch_url("https://www.googleapis.com/plus/v1/people/".$account."/activities/public?alt=json&pp=1&key=".$key."&maxResults=".$maxfetch);
+ $result = Network::fetchUrl("https://www.googleapis.com/plus/v1/people/".$account."/activities/public?alt=json&pp=1&key=".$key."&maxResults=".$maxfetch);
//$result = file_get_contents("google.txt");
//file_put_contents("google.txt", $result);
}
- function geocoordinates_uninstall() {
- unregister_hook('post_local', 'addon/geocoordinates/geocoordinates.php', 'geocoordinates_post_hook');
- unregister_hook('post_remote', 'addon/geocoordinates/geocoordinates.php', 'geocoordinates_post_hook');
+ function geocoordinates_uninstall()
+ {
+ Addon::unregisterHook('post_local', 'addon/geocoordinates/geocoordinates.php', 'geocoordinates_post_hook');
+ Addon::unregisterHook('post_remote', 'addon/geocoordinates/geocoordinates.php', 'geocoordinates_post_hook');
}
-function geocoordinates_resolve_item(&$item)
-{
+function geocoordinates_resolve_item(&$item) {
if((!$item["coord"]) || ($item["location"]))
return;
*
*/
- function geonames_plugin_admin_post($a,$post) {
+ function geonames_addon_admin_post($a,$post) {
if(! local_user() || (! x($_POST,'geonames-submit')))
return;
- PConfig::set(local_user(),'geonames','enable',intval($_POST['geonames']));
+ set_pconfig(local_user(),'geonames','enable',intval($_POST['geonames']));
- info( t('Geonames settings updated.') . EOL);
+ info(L10n::t('Geonames settings updated.') . EOL);
}
function gnot_enotify_mail(&$a,&$b) {
- if((! $b['uid']) || (! intval(PConfig::get($b['uid'], 'gnot','enable'))))
+ if((! $b['uid']) || (! intval(get_pconfig($b['uid'], 'gnot','enable'))))
return;
if($b['type'] == NOTIFY_COMMENT)
- $b['subject'] = sprintf( t('[Friendica:Notify] Comment to conversation #%d'), $b['parent']);
+ $b['subject'] = L10n::t('[Friendica:Notify] Comment to conversation #%d', $b['parent']);
}
-
/**
* Display admin settings for this addon
*/
- function gravatar_plugin_admin (&$a, &$o) {
+ function gravatar_addon_admin (&$a, &$o) {
$t = get_markup_template( "admin.tpl", "addon/gravatar/" );
- $default_avatar = Config::get('gravatar', 'default_img');
- $rating = Config::get('gravatar', 'rating');
+ $default_avatar = get_config('gravatar', 'default_img');
+ $rating = get_config('gravatar', 'rating');
// set default values for first configuration
if(! $default_avatar)
function group_text_settings_post($a,$post) {
if(! local_user() || (! x($_POST,'group_text-submit')))
return;
- PConfig::set(local_user(),'system','groupedit_image_limit',intval($_POST['group_text']));
+ set_pconfig(local_user(),'system','groupedit_image_limit',intval($_POST['group_text']));
- info( t('Group Text settings updated.') . EOL);
+ info(L10n::t('Group Text settings updated.') . EOL);
}
* Version: 0.1
* Author: Michael Vogel <https://pirati.ca/profile/heluecht>
*/
-
- require_once("mod/item.php");
- require_once("include/items.php");
-
- function ifttt_install() {
- register_hook('connector_settings', 'addon/ifttt/ifttt.php', 'ifttt_settings');
- register_hook('connector_settings_post','addon/ifttt/ifttt.php', 'ifttt_settings_post');
+ require_once 'mod/item.php';
+ require_once 'include/items.php';
+ require_once 'include/text.php';
+
+ use Friendica\App;
+ use Friendica\Core\Addon;
+ use Friendica\Core\L10n;
+ use Friendica\Core\PConfig;
+ use Friendica\Database\DBM;
+
+ function ifttt_install()
+ {
+ Addon::registerHook('connector_settings', 'addon/ifttt/ifttt.php', 'ifttt_settings');
+ Addon::registerHook('connector_settings_post', 'addon/ifttt/ifttt.php', 'ifttt_settings_post');
}
- function ifttt_uninstall() {
- unregister_hook('connector_settings', 'addon/ifttt/ifttt.php', 'ifttt_settings');
- unregister_hook('connector_settings_post', 'addon/ifttt/ifttt.php', 'ifttt_settings_post');
+ function ifttt_uninstall()
+ {
+ Addon::unregisterHook('connector_settings', 'addon/ifttt/ifttt.php', 'ifttt_settings');
+ Addon::unregisterHook('connector_settings_post', 'addon/ifttt/ifttt.php', 'ifttt_settings_post');
}
-function ifttt_module()
-{
-
+function ifttt_module() {
}
-function ifttt_content()
-{
-
+function ifttt_content(&$a) {
}
-function ifttt_settings(App $a, &$s)
-{
- if (!local_user()) {
- return;
- }
+function ifttt_settings(&$a,&$s) {
+
+ if(! local_user())
+ return;
- $key = PConfig::get(local_user(), 'ifttt', 'key');
+ $key = get_pconfig(local_user(),'ifttt','key');
if (!$key) {
- $key = random_string(20);
- PConfig::set(local_user(), 'ifttt', 'key', $key);
+ $key = substr(random_string(),0,20);
+ set_pconfig(local_user(),'ifttt','key', $key);
}
$s .= '<span id="settings_ifttt_inflated" class="settings-block fakelink" style="display: block;" onclick="openClose(\'settings_ifttt_expanded\'); openClose(\'settings_ifttt_inflated\');">';
$s .= '<p>POST</p>';
$s .= '<h4>Content Type</h4>';
$s .= '<p>application/x-www-form-urlencoded</p>';
- $s .= '<h4>'.t("Body for 'new status message'").'</h4>';
- $s .= '<p><code>'.htmlentities('key='.$key.'&type=status&msg=<<<{{Message}}>>>&date=<<<{{UpdatedAt}}>>>&url=<<<{{PageUrl}}>>>').'</code></p>';
- $s .= '<h4>'.t("Body for 'new photo upload'").'</h4>';
- $s .= '<p><code>'.htmlentities('key='.$key.'&type=photo&link=<<<{{Link}}>>>&image=<<<{{ImageSource}}>>>&msg=<<<{{Caption}}>>>&date=<<<{{CreatedAt}}>>>&url=<<<{{PageUrl}}>>>').'</code></p>';
- $s .= '<h4>'.t("Body for 'new link post'").'</h4>';
- $s .= '<p><code>'.htmlentities('key='.$key.'&type=link&link=<<<{{Link}}>>>&title=<<<{{Title}}>>>&msg=<<<{{Message}}>>>&description=<<<{{Description}}>>>&date=<<<{{CreatedAt}}>>>&url=<<<{{PageUrl}}>>>').'</code></p>';
- $s .= '</div><div class="clear"></div>';
-
- $s .= '<div id="ifttt-rekey-wrapper">';
- $s .= '<label id="ifttt-rekey-label" for="ifttt-checkbox">' . t('Generate new key') . '</label>';
- $s .= '<input id="ifttt-checkbox" type="checkbox" name="ifttt-rekey" value="1" />';
- $s .= '</div><div class="clear"></div>';
-
- $s .= '<div class="settings-submit-wrapper" ><input type="submit" name="ifttt-submit" class="settings-submit" value="' . t('Save Settings') . '" /></div>';
- $s .= '</div>';
-
+ $s .= '<h4>' . L10n::t('Body for "new status message"') . '</h4>';
+ $s .= '<p><code>' . htmlentities('key=' . $key . '&type=status&msg=<<<{{Message}}>>>&date=<<<{{UpdatedAt}}>>>&url=<<<{{PageUrl}}>>>') . '</code></p>';
+ $s .= '<h4>' . L10n::t('Body for "new photo upload"') . '</h4>';
+ $s .= '<p><code>' . htmlentities('key=' . $key . '&type=photo&link=<<<{{Link}}>>>&image=<<<{{ImageSource}}>>>&msg=<<<{{Caption}}>>>&date=<<<{{CreatedAt}}>>>&url=<<<{{PageUrl}}>>>') . '</code></p>';
+ $s .= '<h4>' . L10n::t('Body for "new link post"') . '</h4>';
+ $s .= '<p><code>' . htmlentities('key=' . $key . '&type=link&link=<<<{{Link}}>>>&title=<<<{{Title}}>>>&msg=<<<{{Message}}>>>&description=<<<{{Description}}>>>&date=<<<{{CreatedAt}}>>>&url=<<<{{PageUrl}}>>>') . '</code></p>';
+ $s .= '</div><div class="clear"></div>';
+
+ $s .= '<div id="ifttt-rekey-wrapper">';
+ $s .= '<label id="ifttt-rekey-label" for="ifttt-checkbox">' . L10n::t('Generate new key') . '</label>';
+ $s .= '<input id="ifttt-checkbox" type="checkbox" name="ifttt-rekey" value="1" />';
+ $s .= '</div><div class="clear"></div>';
+
+ $s .= '<div class="settings-submit-wrapper" ><input type="submit" name="ifttt-submit" class="settings-submit" value="' . L10n::t('Save Settings') . '" /></div>';
+ $s .= '</div>';
}
-function ifttt_settings_post()
-{
- if (x($_POST, 'ifttt-submit') && isset($_POST['ifttt-rekey'])) {
- PConfig::delete(local_user(), 'ifttt', 'key');
- }
+function ifttt_settings_post(&$a,&$b) {
+
+ if(x($_POST,'ifttt-submit'))
+ if (isset($_POST['ifttt-rekey']))
+ del_pconfig(local_user(), 'ifttt', 'key');
}
-function ifttt_post(App $a)
-{
- if ($a->argc != 2) {
+function ifttt_post(&$a) {
+ if ($a->argc != 2)
return;
- }
- $nickname = $a->argv[1];
+ $user = $a->argv[1];
- $user = dba::selectFirst('user', ['uid'], ['nickname' => $nickname]);
- if (!DBM::is_result($user)) {
- logger('User ' . $nickname . ' not found.', LOGGER_DEBUG);
+ $r = q("SELECT `uid` FROM `user` WHERE `nickname` = '%s' LIMIT 1", dbesc($user));
+ if (!$r) {
+ logger("User ".$user." not found.", LOGGER_DEBUG);
return;
}
if(! local_user())
return;
- $ij_post = PConfig::get(local_user(),'ijpost','post');
+ $ij_post = get_pconfig(local_user(),'ijpost','post');
if(intval($ij_post) == 1) {
- $ij_defpost = PConfig::get(local_user(),'ijpost','post_by_default');
+ $ij_defpost = get_pconfig(local_user(),'ijpost','post_by_default');
$selected = ((intval($ij_defpost) == 1) ? ' checked="checked" ' : '');
$b .= '<div class="profile-jot-net"><input type="checkbox" name="ijpost_enable" ' . $selected . ' value="1" /> '
- . t('Post to Insanejournal') . '</div>';
+ . L10n::t('Post to Insanejournal') . '</div>';
}
}
// $a->page['htmlhead'] .= '<link rel="stylesheet" type="text/css" href="' . $a->get_baseurl() . '/addon/irc/irc.css' . '" media="all" />' . "\r\n";
/* setting popular channels, auto connect channels */
- $sitechats = PConfig::get( local_user(), 'irc','sitechats'); /* popular channels */
- $autochans = PConfig::get( local_user(), 'irc','autochans'); /* auto connect chans */
+ $sitechats = get_pconfig( local_user(), 'irc','sitechats'); /* popular channels */
+ $autochans = get_pconfig( local_user(), 'irc','autochans'); /* auto connect chans */
$t = get_markup_template( "settings.tpl", "addon/irc/" );
- $s .= replace_macros($t, array(
- '$header' => t('IRC Settings'),
- '$info' => t('Here you can change the system wide settings for the channels to automatically join and access via the side bar. Note the changes you do here, only effect the channel selection if you are logged in.'),
- '$submit' => t('Save Settings'),
- '$autochans' => array( 'autochans', t('Channel(s) to auto connect (comma separated)'), $autochans, t('List of channels that shall automatically connected to when the app is launched.')),
- '$sitechats' => array( 'sitechats', t('Popular Channels (comma separated)'), $sitechats, t('List of popular channels, will be displayed at the side and hotlinked for easy joining.') )
- ));
+ $s .= replace_macros($t, [
+ '$header' => L10n::t('IRC Settings'),
+ '$info' => L10n::t('Here you can change the system wide settings for the channels to automatically join and access via the side bar. Note the changes you do here, only effect the channel selection if you are logged in.'),
+ '$submit' => L10n::t('Save Settings'),
+ '$autochans' => [ 'autochans', L10n::t('Channel(s) to auto connect (comma separated)'), $autochans, L10n::t('List of channels that shall automatically connected to when the app is launched.')],
+ '$sitechats' => [ 'sitechats', L10n::t('Popular Channels (comma separated)'), $sitechats, L10n::t('List of popular channels, will be displayed at the side and hotlinked for easy joining.') ]
+ ]);
return;
return;
if($_POST['irc-submit']) {
- PConfig::set( local_user(), 'irc','autochans',trim($_POST['autochans']));
- PConfig::set( local_user(), 'irc','sitechats',trim($_POST['sitechats']));
+ set_pconfig( local_user(), 'irc','autochans',trim($_POST['autochans']));
+ set_pconfig( local_user(), 'irc','sitechats',trim($_POST['sitechats']));
/* upid pop-up thing */
- info( t('IRC settings saved.') . EOL);
+ info(L10n::t('IRC settings saved.') . EOL);
}
}
if($sitechats)
$chats = explode(',',$sitechats);
else
- $chats = ['friendica','chat','chatback','hottub','ircbar','dateroom','debian'];
+ $chats = array('friendica','chat','chatback','hottub','ircbar','dateroom','debian');
- $a->page['aside'] .= '<div class="widget"><h3>' . t('Popular Channels') . '</h3><ul>';
+ $a->page['aside'] .= '<div class="widget"><h3>' . L10n::t('Popular Channels') . '</h3><ul>';
foreach($chats as $chat) {
$a->page['aside'] .= '<li><a href="' . $a->get_baseurl() . '/irc?channels=' . $chat . '" >' . '#' . $chat . '</a></li>';
}
EOT;
return $o;
-
+
}
- function irc_plugin_admin_post (&$a) {
+ function irc_addon_admin_post (&$a) {
if(! is_site_admin())
return;
if($_POST['irc-submit']) {
- Config::set('irc','autochans',trim($_POST['autochans']));
- Config::set('irc','sitechats',trim($_POST['sitechats']));
+ set_config('irc','autochans',trim($_POST['autochans']));
+ set_config('irc','sitechats',trim($_POST['sitechats']));
/* stupid pop-up thing */
- info( t('IRC settings saved.') . EOL);
+ info(L10n::t('IRC settings saved.') . EOL);
}
}
- function irc_plugin_admin (&$a, &$o) {
- $sitechats = get_config('irc','sitechats'); /* popular channels */
- $autochans = get_config('irc','autochans'); /* auto connect chans */
+ function irc_addon_admin (&$a, &$o) {
+ $sitechats = Config::get('irc','sitechats'); /* popular channels */
+ $autochans = Config::get('irc','autochans'); /* auto connect chans */
$t = get_markup_template( "admin.tpl", "addon/irc/" );
- $o = replace_macros($t, array(
- '$submit' => t('Save Settings'),
- '$autochans' => array( 'autochans', t('Channel(s) to auto connect (comma separated)'), $autochans, t('List of channels that shall automatically connected to when the app is launched.')),
- '$sitechats' => array( 'sitechats', t('Popular Channels (comma separated)'), $sitechats, t('List of popular channels, will be displayed at the side and hotlinked for easy joining.') )
- ));
+ $o = replace_macros($t, [
+ '$submit' => L10n::t('Save Settings'),
+ '$autochans' => [ 'autochans', L10n::t('Channel(s) to auto connect (comma separated)'), $autochans, L10n::t('List of channels that shall automatically connected to when the app is launched.')],
+ '$sitechats' => [ 'sitechats', L10n::t('Popular Channels (comma separated)'), $sitechats, L10n::t('List of popular channels, will be displayed at the side and hotlinked for easy joining.') ]
+ ]);
}
decrypted_address = openssl_*_decrypt(encrypted_address)
save decrypted_address
- Interface for this:
- GET /jappixmini/?role=%s&signed_address=%s&dfrn_id=%s
-
- Response:
- json({"status":"ok", "encrypted_address":"%s"})
+Interface for this:
+GET /jappixmini/?role=%s&signed_address=%s&dfrn_id=%s
- */
+Response:
+json({"status":"ok", "encrypted_address":"%s"})
- */
+ use Friendica\App;
+ use Friendica\Core\Addon;
+ use Friendica\Core\Config;
+ use Friendica\Core\L10n;
+ use Friendica\Core\PConfig;
+ use Friendica\Model\User;
+ use Friendica\Util\Network;
- function jappixmini_install() {
- register_hook('plugin_settings', 'addon/jappixmini/jappixmini.php', 'jappixmini_settings');
- register_hook('plugin_settings_post', 'addon/jappixmini/jappixmini.php', 'jappixmini_settings_post');
+ function jappixmini_install()
+ {
+ Addon::registerHook('addon_settings', 'addon/jappixmini/jappixmini.php', 'jappixmini_settings');
+ Addon::registerHook('addon_settings_post', 'addon/jappixmini/jappixmini.php', 'jappixmini_settings_post');
- register_hook('page_end', 'addon/jappixmini/jappixmini.php', 'jappixmini_script');
- register_hook('authenticate', 'addon/jappixmini/jappixmini.php', 'jappixmini_login');
+ Addon::registerHook('page_end', 'addon/jappixmini/jappixmini.php', 'jappixmini_script');
+ Addon::registerHook('authenticate', 'addon/jappixmini/jappixmini.php', 'jappixmini_login');
- register_hook('cron', 'addon/jappixmini/jappixmini.php', 'jappixmini_cron');
+ Addon::registerHook('cron', 'addon/jappixmini/jappixmini.php', 'jappixmini_cron');
- // Jappix source download as required by AGPL
- register_hook('about_hook', 'addon/jappixmini/jappixmini.php', 'jappixmini_download_source');
+ // Jappix source download as required by AGPL
+ Addon::registerHook('about_hook', 'addon/jappixmini/jappixmini.php', 'jappixmini_download_source');
- // set standard configuration
- $info_text = Config::get("jappixmini", "infotext");
- if (!$info_text)
- set_confConfig::setig("jappixmini", "infotext", "To get the chat working, you need to know a BOSH host which works with your Jabber account. " .
- "An example of a BOSH server that works for all accounts is https://bind.jappix.com/, but keep " .
- "in mind that the BOSH server can read along all chat messages. If you know that your Jabber " .
- "server also provides an own BOSH server, it is much better to use this one!"
- );
-
- $bosh_proxy = Config::get("jappixmini", "bosh_proxy");
- if ($bosh_proxy === "") {
- Config::set("jappixmini", "bosh_proxy", "1");
- }
-
- // set addon version so that safe updates are possible later
- $addon_version = Config::get("jappixmini", "version");
- if ($addon_version === "") {
- Config::set("jappixmini", "version", "1");
- }
+// set standard configuration
+$info_text = get_config("jappixmini", "infotext");
+if (!$info_text) set_config("jappixmini", "infotext",
+ "To get the chat working, you need to know a BOSH host which works with your Jabber account. ".
+ "An example of a BOSH server that works for all accounts is https://bind.jappix.com/, but keep ".
+ "in mind that the BOSH server can read along all chat messages. If you know that your Jabber ".
+ "server also provides an own BOSH server, it is much better to use this one!"
+);
+
+$bosh_proxy = get_config("jappixmini", "bosh_proxy");
+if ($bosh_proxy==="") set_config("jappixmini", "bosh_proxy", "1");
+
+// set addon version so that safe updates are possible later
+$addon_version = get_config("jappixmini", "version");
+if ($addon_version==="") set_config("jappixmini", "version", "1");
}
+ function jappixmini_uninstall()
+ {
+ Addon::unregisterHook('addon_settings', 'addon/jappixmini/jappixmini.php', 'jappixmini_settings');
+ Addon::unregisterHook('addon_settings_post', 'addon/jappixmini/jappixmini.php', 'jappixmini_settings_post');
- function jappixmini_uninstall() {
- unregister_hook('plugin_settings', 'addon/jappixmini/jappixmini.php', 'jappixmini_settings');
- unregister_hook('plugin_settings_post', 'addon/jappixmini/jappixmini.php', 'jappixmini_settings_post');
-
- unregister_hook('page_end', 'addon/jappixmini/jappixmini.php', 'jappixmini_script');
- unregister_hook('authenticate', 'addon/jappixmini/jappixmini.php', 'jappixmini_login');
+ Addon::unregisterHook('page_end', 'addon/jappixmini/jappixmini.php', 'jappixmini_script');
+ Addon::unregisterHook('authenticate', 'addon/jappixmini/jappixmini.php', 'jappixmini_login');
- unregister_hook('cron', 'addon/jappixmini/jappixmini.php', 'jappixmini_cron');
+ Addon::unregisterHook('cron', 'addon/jappixmini/jappixmini.php', 'jappixmini_cron');
- unregister_hook('about_hook', 'addon/jappixmini/jappixmini.php', 'jappixmini_download_source');
+ Addon::unregisterHook('about_hook', 'addon/jappixmini/jappixmini.php', 'jappixmini_download_source');
}
- function jappixmini_plugin_admin(&$a, &$o) {
+ function jappixmini_addon_admin(App $a, &$o)
+ {
// display instructions and warnings on addon settings page for admin
+
if (!file_exists("addon/jappixmini.tgz")) {
$o .= '<p><strong style="color:#fff;background-color:#f00">The source archive jappixmini.tgz does not exist. This is probably a violation of the Jappix License (AGPL).</strong></p>';
}
$decrypt_func($signed_address, $trusted_address, $key);
$now = intval(time());
- PConfig::set($uid, "jappixmini", "id:$dfrn_id", "$now:$trusted_address");
+ set_pconfig($uid, "jappixmini", "id:$dfrn_id", "$now:$trusted_address");
} catch (Exception $e) {
-
}
- // do not return an address if user deactivated plugin
- $activated = get_pconfig($uid, 'jappixmini', 'activate');
- if (!$activated) killme();
+ // do not return an address if user deactivated addon
+ $activated = PConfig::get($uid, 'jappixmini', 'activate');
+ if (!$activated) {
+ killme();
+ }
// return the requested Jabber address
try {
$b['addon_text'] .= '<link href="' . $a->get_baseurl() . '/addon/js_upload/file-uploader/client/fileuploader.css" rel="stylesheet" type="text/css">';
$b['addon_text'] .= '<script src="' . $a->get_baseurl() . '/addon/js_upload/file-uploader/client/fileuploader.js" type="text/javascript"></script>';
-
- $upload_msg = t('Upload a file');
- $drop_msg = t('Drop files here to upload');
- $cancel = t('Cancel');
- $failed = t('Failed');
+
+ $upload_msg = L10n::t('Upload a file');
+ $drop_msg = L10n::t('Drop files here to upload');
+ $cancel = L10n::t('Cancel');
+ $failed = L10n::t('Failed');
- $maximagesize = intval(Config::get('system','maximagesize'));
+ $maximagesize = intval(get_config('system','maximagesize'));
$b['addon_text'] .= <<< EOT
-
- <div id="file-uploader-demo1">
- <noscript>
+
+ <div id="file-uploader-demo1">
+ <noscript>
<p>Please enable JavaScript to use file uploader.</p>
<!-- or put a simple form for upload here -->
- </noscript>
+ </noscript>
</div>
<script type="text/javascript">
* Returns array('success'=>true) or array('error'=>'error message')
*/
function handleUpload(){
-
+
if (!$this->file){
- return array('error' => t('No files were uploaded.'));
+ return ['error' => L10n::t('No files were uploaded.')];
}
-
+
$size = $this->file->getSize();
-
+
if ($size == 0) {
- return array('error' => t('Uploaded file is empty'));
+ return ['error' => L10n::t('Uploaded file is empty')];
}
-
+
// if ($size > $this->sizeLimit) {
- // return array('error' => t('Uploaded file is too large'));
+ // return array('error' => L10n::t('Uploaded file is too large'));
// }
+
-
- $maximagesize = Config::get('system','maximagesize');
+ $maximagesize = get_config('system','maximagesize');
if(($maximagesize) && ($size > $maximagesize)) {
- return array('error' => t('Image exceeds size limit of ') . $maximagesize );
+ return ['error' => L10n::t('Image exceeds size limit of ') . $maximagesize ];
}
if($this->allowedExtensions && !in_array(strtolower($ext), $this->allowedExtensions)){
$these = implode(', ', $this->allowedExtensions);
- return array('error' => t('File has an invalid extension, it should be one of ') . $these . '.');
+ return ['error' => L10n::t('File has an invalid extension, it should be one of ') . $these . '.'];
}
-
+
if ($this->file->save()){
- return [
+ return array(
'success'=>true,
- 'path' => $this->file->getPath(),
+ 'path' => $this->file->getPath(),
'filename' => $filename . '.' . $ext
- ];
+ );
} else {
- return array(
- 'error'=> t('Upload was cancelled, or server error encountered'),
- 'path' => $this->file->getPath(),
+ return [
+ 'error'=> L10n::t('Upload was cancelled, or server error encountered'),
+ 'path' => $this->file->getPath(),
'filename' => $filename . '.' . $ext
- ];
+ );
}
-
- }
+
+ }
}
* 2nd get the current settings
* 3rd parse a SMARTY3 template, replacing some translateable strings for the form
*/
-
-function langfilter_addon_settings(App $a, &$s)
-{
- if (!local_user()) {
+function langfilter_addon_settings(&$a,&$s) {
+ if(! local_user())
return;
- }
-
- $enable_checked = (intval(PConfig::get(local_user(), 'langfilter', 'disable')) ? '' : ' checked="checked" ');
- $languages = PConfig::get(local_user(), 'langfilter', 'languages');
- $minconfidence = PConfig::get(local_user(), 'langfilter', 'minconfidence') * 100;
- $minlength = PConfig::get(local_user(), 'langfilter', 'minlength');
- if (!$languages) {
+ $enable_checked = (intval(get_pconfig(local_user(),'langfilter','disable')) ? '' : ' checked="checked" ');
+ $languages = get_pconfig(local_user(),'langfilter','languages');
+ $minconfidence = get_pconfig(local_user(),'langfilter','minconfidence')*100;
+ $minlength = get_pconfig(local_user(),'langfilter','minlength');
+ if(! $languages)
$languages = 'en,de,fr,it,es';
- }
- $t = get_markup_template("settings.tpl", "addon/langfilter/" );
- $s .= replace_macros ($t, array(
- '$title' => t("Language Filter"),
- '$intro' => t ('This addon tries to identify the language of a postings. If it does not match any language spoken by you (see below) the posting will be collapsed. Remember detecting the language is not perfect, especially with short postings.'),
- '$enabled' => array('langfilter_enable', t('Use the language filter'), $enable_checked, ''),
- '$languages' => array('langfilter_languages', t('I speak'), $languages, t('List of abbreviations (iso2 codes) for languages you speak, comma separated. For example "de,it".') ),
- '$minconfidence' => array('langfilter_minconfidence', t('Minimum confidence in language detection'), $minconfidence, t('Minimum confidence in language detection being correct, from 0 to 100. Posts will not be filtered when the confidence of language detection is below this percent value.') ),
- '$minlength' => array('langfilter_minlength', t('Minimum length of message body'), $minlength, t('Minimum length of message body for language filter to be used. Posts shorter than this number of characters will not be filtered.') ),
- '$submit' => t('Save Settings'),
- ));
+ $t = get_markup_template("settings.tpl", "addon/langfilter/");
+ $s .= replace_macros($t, [
+ '$title' => L10n::t("Language Filter"),
+ '$intro' => L10n::t('This addon tries to identify the language of a postings. If it does not match any language spoken by you (see below) the posting will be collapsed. Remember detecting the language is not perfect, especially with short postings.'),
+ '$enabled' => ['langfilter_enable', L10n::t('Use the language filter'), $enable_checked, ''],
+ '$languages' => ['langfilter_languages', L10n::t('I speak'), $languages, L10n::t('List of abbreviations (iso2 codes) for languages you speak, comma separated. For example "de,it".')],
+ '$minconfidence' => ['langfilter_minconfidence', L10n::t('Minimum confidence in language detection'), $minconfidence, L10n::t('Minimum confidence in language detection being correct, from 0 to 100. Posts will not be filtered when the confidence of language detection is below this percent value.')],
+ '$minlength' => ['langfilter_minlength', L10n::t('Minimum length of message body'), $minlength, L10n::t('Minimum length of message body for language filter to be used. Posts shorter than this number of characters will not be filtered.')],
+ '$submit' => L10n::t('Save Settings'),
+ ]);
return;
}
* 2nd check the langfilter form is to be saved
* 3rd save the settings to the DB for later usage
*/
-
-function langfilter_addon_settings_post(App $a, &$b)
-{
- if (!local_user()) {
+function langfilter_addon_settings_post(&$a,&$b) {
+ if(! local_user())
return;
- }
- if($_POST['langfilter-settings-submit']) {
- set_pconfig(local_user(),'langfilter','languages',trim($_POST['langfilter_languages']));
- $enable = ((x($_POST,'langfilter_enable')) ? intval($_POST['langfilter_enable']) : 0);
- $disable = 1-$enable;
- set_pconfig(local_user(),'langfilter','disable', $disable);
- $minconfidence = 0+$_POST['langfilter_minconfidence'];
- if ( ! $minconfidence ) $minconfidence = 0;
- else if ( $minconfidence < 0 ) $minconfidence = 0;
- else if ( $minconfidence > 100 ) $minconfidence = 100;
- set_pconfig(local_user(),'langfilter','minconfidence', $minconfidence/100.0);
-
- $minlength = 0+$_POST['langfilter_minlength'];
- if ( ! $minlength ) $minlength = 32;
- else if ( $minlength < 0 ) $minlength = 32;
- set_pconfig(local_user(),'langfilter','minlength', $minlength);
-
- info( t('Language Filter Settings saved.') . EOL);
+ if ($_POST['langfilter-settings-submit']) {
+ PConfig::set(local_user(), 'langfilter', 'languages', trim($_POST['langfilter_languages']));
+ $enable = ((x($_POST, 'langfilter_enable')) ? intval($_POST['langfilter_enable']) : 0);
+ $disable = 1 - $enable;
+ PConfig::set(local_user(), 'langfilter', 'disable', $disable);
+ $minconfidence = 0 + $_POST['langfilter_minconfidence'];
+ if (!$minconfidence) {
+ $minconfidence = 0;
+ } elseif ($minconfidence < 0) {
+ $minconfidence = 0;
+ } elseif ($minconfidence > 100) {
+ $minconfidence = 100;
+ }
+ PConfig::set(local_user(), 'langfilter', 'minconfidence', $minconfidence / 100.0);
+
+ $minlength = 0 + $_POST['langfilter_minlength'];
+ if (!$minlength) {
+ $minlength = 32;
+ } elseif ($minlengt8h < 0) {
+ $minlength = 32;
+ }
+ PConfig::set(local_user(), 'langfilter', 'minlength', $minlength);
+
+ info(L10n::t('Language Filter Settings saved.') . EOL);
}
}
-
/* Actually filter postings by their language
* 1st check if the user wants to filter postings
* 2nd get the user settings which languages shall be not filtered out
* of the user, then collapse the posting, but provide a link to
* expand it again.
*/
+function langfilter_prepare_body(&$a,&$b) {
-function langfilter_prepare_body(App $a, &$b)
-{
- $logged_user = local_user();
- if (!$logged_user) {
- return;
- }
+ $logged_user = local_user();
+ if ( ! $logged_user ) return;
- // Never filter own messages
- // TODO: find a better way to extract this
- $logged_user_profile = $a->get_baseurl() . '/profile/' . $a->user['nickname'];
- if ($logged_user_profile == $b['item']['author-link']) {
- return;
- }
+ # Never filter own messages
+ # TODO: find a better way to extract this
+ $logged_user_profile = $a->config['system']['url'] . '/profile/' . $a->user['nickname'];
+ if ( $logged_user_profile == $b['item']['author-link'] ) return;
- // Don't filter if language filter is disabled
- if (PConfig::get($logged_user, 'langfilter', 'disable')) {
- return;
- }
+ # Don't filter if language filter is disabled
+ if( get_pconfig($logged_user,'langfilter','disable') ) return;
- // Don't filter if body lenght is below minimum
- $minlen = PConfig::get(local_user(), 'langfilter', 'minlength');
- if (!$minlen) {
- $minlen = 32;
- }
- if (strlen($b['item']['body']) < $minlen) {
- return;
- }
+ # Don't filter if body lenght is below minimum
+ $minlen = get_pconfig(local_user(),'langfilter','minlength');
+ if ( ! $minlen ) $minlen = 32;
+ if ( strlen($b['item']['body']) < $minlen ) return;
- $spoken_config = PConfig::get(local_user(), 'langfilter', 'languages');
- $minconfidence = PConfig::get(local_user(), 'langfilter', 'minconfidence');
+ $spoken_config = get_pconfig(local_user(),'langfilter','languages');
+ $minconfidence = get_pconfig(local_user(),'langfilter','minconfidence');
- // Don't filter if no spoken languages are configured
- if (!$spoken_config)
- return;
- $spoken_languages = explode(',', $spoken_config);
+ # Don't filter if no spoken languages are configured
+ if ( ! $spoken_config ) return;
+ $spoken_languages = explode(',', $spoken_config);
- // Extract the language of the post
- $opts = $b['item']['postopts'];
- if (!$opts) {
- // no options associated to post
- return;
- }
- if (!preg_match('/\blang=([^;]*);([^:]*)/', $opts, $matches)) {
- // no lang options associated to post
- return;
- }
+ # Extract the language of the post
+ $opts = $b['item']['postopts'];
+ if ( ! $opts ) return; # no options associated to post
+ if ( ! preg_match('/\blang=([^;]*);([^:]*)/', $opts, $matches ) )
+ return; # no lang options associated to post
- $lang = $matches[1];
- $confidence = $matches[2];
+ $lang = $matches[1];
+ $confidence = $matches[2];
- // Do not filter if language detection confidence is too low
- if ($minconfidence && $confidence < $minconfidence) {
- return;
- }
+ # Do not filter if language detection confidence is too low
+ if ( $minconfidence && $confidence < $minconfidence ) return;
- $iso2 = Text_LanguageDetect_ISO639::nameToCode2($lang);
+ $iso2 = Text_LanguageDetect_ISO639::nameToCode2($lang);
- if (!$iso2) {
- return;
- }
- $spoken = in_array($iso2, $spoken_languages);
+ if ( ! $iso2 ) return;
+ $spoken = in_array($iso2, $spoken_languages);
- if( ! $spoken ) {
- $rnd = random_string(8);
- $b['html'] = '<div id="langfilter-wrap-' . $rnd . '" class="fakelink" onclick=openClose(\'langfilter-' . $rnd . '\'); >' . sprintf( t('unspoken language %s - Click to open/close'),$lang ) . '</div><div id="langfilter-' . $rnd . '" style="display: none; " >' . $b['html'] . '</div>';
- }
+ if (!$spoken) {
+ $rnd = random_string(8);
+ $b['html'] = '<div id="langfilter-wrap-' . $rnd . '" class="fakelink" onclick=openClose(\'langfilter-' . $rnd . '\'); >' . L10n::t('unspoken language %s - Click to open/close', $lang) . '</div><div id="langfilter-' . $rnd . '" style="display: none; " >' . $b['html'] . '</div>';
+ }
}
+?>
*
* ...etc.
*/
+ use Friendica\Core\Addon;
+ use Friendica\Core\Config;
+ use Friendica\Model\User;
- require_once('include/user.php');
-
-
- function ldapauth_install() {
- register_hook('authenticate', 'addon/ldapauth/ldapauth.php', 'ldapauth_hook_authenticate');
+ function ldapauth_install()
+ {
+ Addon::registerHook('authenticate', 'addon/ldapauth/ldapauth.php', 'ldapauth_hook_authenticate');
}
-
- function ldapauth_uninstall() {
- unregister_hook('authenticate', 'addon/ldapauth/ldapauth.php', 'ldapauth_hook_authenticate');
+ function ldapauth_uninstall()
+ {
+ Addon::unregisterHook('authenticate', 'addon/ldapauth/ldapauth.php', 'ldapauth_hook_authenticate');
}
-function ldapauth_hook_authenticate($a, &$b)
-{
- if (ldapauth_authenticate($b['username'], $b['password'])) {
- $results = get_existing_account($b['username']);
- if (!empty($results)) {
- $b['user_record'] = $results[0];
- $b['authenticated'] = 1;
- }
- }
- return;
+
+function ldapauth_hook_authenticate($a,&$b) {
+ if(ldapauth_authenticate($b['username'],$b['password'])) {
+ $results = get_existing_account($b['username']);
+ if(! empty($results)){
+ $b['user_record'] = $results[0];
+ $b['authenticated'] = 1;
+ }
+ }
+ return;
}
-function ldapauth_authenticate($username, $password)
-{
- $ldap_server = Config::get('ldapauth', 'ldap_server');
- $ldap_binddn = Config::get('ldapauth', 'ldap_binddn');
- $ldap_bindpw = Config::get('ldapauth', 'ldap_bindpw');
- $ldap_searchdn = Config::get('ldapauth', 'ldap_searchdn');
- $ldap_userattr = Config::get('ldapauth', 'ldap_userattr');
- $ldap_group = Config::get('ldapauth', 'ldap_group');
- $ldap_autocreateaccount = Config::get('ldapauth', 'ldap_autocreateaccount');
- $ldap_autocreateaccount_emailattribute = Config::get('ldapauth', 'ldap_autocreateaccount_emailattribute');
- $ldap_autocreateaccount_nameattribute = Config::get('ldapauth', 'ldap_autocreateaccount_nameattribute');
-
- if (!(strlen($password) && function_exists('ldap_connect') && strlen($ldap_server))) {
- logger("ldapauth: not configured or missing php-ldap module");
- return false;
- }
-
- $connect = @ldap_connect($ldap_server);
-
- if ($connect === false) {
- logger("ldapauth: could not connect to $ldap_server");
- return false;
- }
-
- @ldap_set_option($connect, LDAP_OPT_PROTOCOL_VERSION, 3);
- @ldap_set_option($connect, LDAP_OPT_REFERRALS, 0);
- if ((@ldap_bind($connect, $ldap_binddn, $ldap_bindpw)) === false) {
- logger("ldapauth: could not bind $ldap_server as $ldap_binddn");
- return false;
- }
-
- $res = @ldap_search($connect, $ldap_searchdn, $ldap_userattr . '=' . $username);
-
- if (!$res) {
- logger("ldapauth: $ldap_userattr=$username,$ldap_searchdn not found");
- return false;
- }
-
- $id = @ldap_first_entry($connect, $res);
-
- if (!$id) {
- return false;
- }
-
- $dn = @ldap_get_dn($connect, $id);
-
- if (!@ldap_bind($connect, $dn, $password)) {
- return false;
- }
-
- $emailarray = [];
- $namearray = [];
- if ($ldap_autocreateaccount == "true") {
- if (!strlen($ldap_autocreateaccount_emailattribute)) {
- $ldap_autocreateaccount_emailattribute = "mail";
- }
- if (!strlen($ldap_autocreateaccount_nameattribute)) {
- $ldap_autocreateaccount_nameattribute = "givenName";
- }
- $emailarray = @ldap_get_values($connect, $id, $ldap_autocreateaccount_emailattribute);
- $namearray = @ldap_get_values($connect, $id, $ldap_autocreateaccount_nameattribute);
- }
-
- if (!strlen($ldap_group)) {
- ldap_autocreateaccount($ldap_autocreateaccount, $username, $password, $emailarray[0], $namearray[0]);
- return true;
- }
-
- $r = @ldap_compare($connect, $ldap_group, 'member', $dn);
- if ($r === -1) {
- $err = @ldap_error($connect);
- $eno = @ldap_errno($connect);
- @ldap_close($connect);
-
- if ($eno === 32) {
- logger("ldapauth: access control group Does Not Exist");
- return false;
- } elseif ($eno === 16) {
- logger('ldapauth: membership attribute does not exist in access control group');
- return false;
- } else {
- logger('ldapauth: error: ' . $err);
- return false;
- }
- } elseif ($r === false) {
- @ldap_close($connect);
- return false;
- }
-
- ldap_autocreateaccount($ldap_autocreateaccount, $username, $password, $emailarray[0], $namearray[0]);
- return true;
+function ldapauth_authenticate($username,$password) {
+
+ $ldap_server = get_config('ldapauth','ldap_server');
+ $ldap_binddn = get_config('ldapauth','ldap_binddn');
+ $ldap_bindpw = get_config('ldapauth','ldap_bindpw');
+ $ldap_searchdn = get_config('ldapauth','ldap_searchdn');
+ $ldap_userattr = get_config('ldapauth','ldap_userattr');
+ $ldap_group = get_config('ldapauth','ldap_group');
+ $ldap_autocreateaccount = get_config('ldapauth','ldap_autocreateaccount');
+ $ldap_autocreateaccount_emailattribute = get_config('ldapauth','ldap_autocreateaccount_emailattribute');
+ $ldap_autocreateaccount_nameattribute = get_config('ldapauth','ldap_autocreateaccount_nameattribute');
+
+ if(! ((strlen($password))
+ && (function_exists('ldap_connect'))
+ && (strlen($ldap_server)))) {
+ logger("ldapauth: not configured or missing php-ldap module");
+ return false;
+ }
+
+ $connect = @ldap_connect($ldap_server);
+
+ if($connect === false) {
+ logger("ldapauth: could not connect to $ldap_server");
+ return false;
+ }
+
+ @ldap_set_option($connect, LDAP_OPT_PROTOCOL_VERSION,3);
+ @ldap_set_option($connect, LDAP_OPT_REFERRALS, 0);
+ if((@ldap_bind($connect,$ldap_binddn,$ldap_bindpw)) === false) {
+ logger("ldapauth: could not bind $ldap_server as $ldap_binddn");
+ return false;
+ }
+
+ $res = @ldap_search($connect,$ldap_searchdn, $ldap_userattr . '=' . $username);
+
+ if(! $res) {
+ logger("ldapauth: $ldap_userattr=$username,$ldap_searchdn not found");
+ return false;
+ }
+
+ $id = @ldap_first_entry($connect,$res);
+
+ if(! $id) {
+ return false;
+ }
+
+ $dn = @ldap_get_dn($connect,$id);
+
+ if(! @ldap_bind($connect,$dn,$password))
+ return false;
+
+ $emailarray = [];
+ $namearray = [];
+ if($ldap_autocreateaccount == "true"){
+ if(! strlen($ldap_autocreateaccount_emailattribute))
+ $ldap_autocreateaccount_emailattribute = "mail";
+ if(! strlen($ldap_autocreateaccount_nameattribute))
+ $ldap_autocreateaccount_nameattribute = "givenName";
+ $emailarray = @ldap_get_values($connect, $id, $ldap_autocreateaccount_emailattribute);
+ $namearray = @ldap_get_values($connect, $id, $ldap_autocreateaccount_nameattribute);
+ }
+
+ if(! strlen($ldap_group)){
+ ldap_autocreateaccount($ldap_autocreateaccount,$username,$password,$emailarray[0],$namearray[0]);
+ return true;
+ }
+
+ $r = @ldap_compare($connect,$ldap_group,'member',$dn);
+ if ($r === -1) {
+ $err = @ldap_error($connect);
+ $eno = @ldap_errno($connect);
+ @ldap_close($connect);
+
+ if ($eno === 32) {
+ logger("ldapauth: access control group Does Not Exist");
+ return false;
+ }
+ elseif ($eno === 16) {
+ logger('ldapauth: membership attribute does not exist in access control group');
+ return false;
+ }
+ else {
+ logger('ldapauth: error: ' . $err);
+ return false;
+ }
+ }
+ elseif ($r === false) {
+ @ldap_close($connect);
+ return false;
+ }
+
+ ldap_autocreateaccount($ldap_autocreateaccount,$username,$password,$emailarray[0],$namearray[0]);
+ return true;
}
-function ldap_autocreateaccount($ldap_autocreateaccount, $username, $password, $email, $name)
-{
- if ($ldap_autocreateaccount == "true") {
- $results = get_existing_account($username);
- if (empty($results)) {
- if (strlen($email) > 0 && strlen($name) > 0) {
- $arr = ['username' => $name, 'nickname' => $username, 'email' => $email, 'password' => $password, 'verified' => 1];
-
- try {
- User::create($arr);
- logger("ldapauth: account " . $username . " created");
- } catch (Exception $ex) {
- logger("ldapauth: account " . $username . " was not created ! : " . $ex->getMessage());
- }
- } else {
- logger("ldapauth: unable to create account, no email or nickname found");
- }
- }
- }
+function ldap_autocreateaccount($ldap_autocreateaccount,$username,$password,$email,$name) {
+ if($ldap_autocreateaccount == "true"){
+ $results = get_existing_account($username);
+ if(empty($results)){
+ if (strlen($email) > 0 && strlen($name) > 0){
+ $arr = array('username'=>$name,'nickname'=>$username,'email'=>$email,'password'=>$password,'verified'=>1);
+ $result = create_user($arr);
+ if ($result['success']){
+ logger("ldapauth: account " . $username . " created");
+ }else{
+ logger("ldapauth: account " . $username . " was not created ! : " . implode($result));
+ }
+ }else{
+ logger("ldapauth: unable to create account, no email or nickname found");
+ }
+ }
+ }
}
-function get_existing_account($username)
-{
- return q("SELECT * FROM `user` WHERE `nickname` = '%s' AND `blocked` = 0 AND `verified` = 1 LIMIT 1", $username);
+function get_existing_account($username){
+ return q("SELECT * FROM `user` WHERE `nickname` = '%s' AND `blocked` = 0 AND `verified` = 1 LIMIT 1",$username);
}
return $text;
}
- function leistungsschutzrecht_fetchsites() {
- require_once("include/network.php");
-
+ function leistungsschutzrecht_fetchsites()
+ {
// This list works - but question is how current it is
$url = "http://leistungsschutzrecht-stoppen.d-64.org/blacklist.txt";
- $sitelist = fetch_url($url);
+ $sitelist = Network::fetchUrl($url);
$siteurls = explode(',', $sitelist);
- $whitelist = ['tagesschau.de', 'heute.de', 'wdr.de'];
+ $whitelist = array('tagesschau.de', 'heute.de', 'wdr.de');
- $sites = array();
- foreach ($siteurls AS $site) {
+ $sites = [];
+ foreach ($siteurls as $site) {
if (!in_array($site, $whitelist)) {
$sites[$site] = $site;
}
if(! local_user())
return;
- $ltree_post = PConfig::get(local_user(),'libertree','post');
+ $ltree_post = get_pconfig(local_user(),'libertree','post');
if(intval($ltree_post) == 1) {
- $ltree_defpost = PConfig::get(local_user(),'libertree','post_by_default');
+ $ltree_defpost = get_pconfig(local_user(),'libertree','post_by_default');
$selected = ((intval($ltree_defpost) == 1) ? ' checked="checked" ' : '');
$b .= '<div class="profile-jot-net"><input type="checkbox" name="libertree_enable"' . $selected . ' value="1" /> '
- . t('Post to libertree') . '</div>';
+ . L10n::t('Post to libertree') . '</div>';
}
}
'text' => $body,
'source' => $ltree_source
// 'token' => $ltree_api_token
- ];
+ );
- $result = post_url($ltree_blog,$params);
+ $result = Network::post($ltree_blog, $params);
logger('libertree: ' . $result);
-
}
}
-
if (! $default_avatar) {
// if not set, look up if there was one from the gravatar addon
- $default_avatar = Config::get('gravatar', 'default_img');
+ $default_avatar = get_config('gravatar', 'default_img');
// setting default avatar if nothing configured
- if (! $default_avatar)
+ if (!$default_avatar) {
$default_avatar = 'identicon'; // default image will be a random pattern
+ }
}
require_once 'Services/Libravatar.php';
/**
* Display admin settings for this addon
*/
- function libravatar_plugin_admin (&$a, &$o) {
- $t = get_markup_template( "admin.tpl", "addon/libravatar" );
+ function libravatar_addon_admin(&$a, &$o)
+ {
+ $t = get_markup_template("admin.tpl", "addon/libravatar");
- $default_avatar = Config::get('libravatar', 'default_img');
+ $default_avatar = get_config('libravatar', 'default_img');
// set default values for first configuration
- if(! $default_avatar)
+ if (!$default_avatar) {
$default_avatar = 'identicon'; // pseudo-random geometric pattern based on email hash
+ }
// Available options for the select boxes
- $default_avatars = array(
- 'mm' => t('generic profile image'),
- 'identicon' => t('random geometric pattern'),
- 'monsterid' => t('monster face'),
- 'wavatar' => t('computer generated face'),
- 'retro' => t('retro arcade style face'),
- );
+ $default_avatars = [
+ 'mm' => L10n::t('generic profile image'),
+ 'identicon' => L10n::t('random geometric pattern'),
+ 'monsterid' => L10n::t('monster face'),
+ 'wavatar' => L10n::t('computer generated face'),
+ 'retro' => L10n::t('retro arcade style face'),
+ ];
// Show warning if PHP version is too old
if (! version_compare(PHP_VERSION, '5.3.0', '>=')) {
if(! local_user())
return;
- $lj_post = PConfig::get(local_user(),'ljpost','post');
+ $lj_post = get_pconfig(local_user(),'ljpost','post');
if(intval($lj_post) == 1) {
- $lj_defpost = PConfig::get(local_user(),'ljpost','post_by_default');
+ $lj_defpost = get_pconfig(local_user(),'ljpost','post_by_default');
$selected = ((intval($lj_defpost) == 1) ? ' checked="checked" ' : '');
$b .= '<div class="profile-jot-net"><input type="checkbox" name="ljpost_enable" ' . $selected . ' value="1" /> '
- . t('Post to LiveJournal') . '</div>';
+ . L10n::t('Post to LiveJournal') . '</div>';
}
}
* Author: Matthew Exon <http://mat.exon.name>
*/
+ use Friendica\Content\Text\BBCode;
+ use Friendica\Core\Addon;
+ use Friendica\Core\Config;
+ use Friendica\Core\L10n;
+ use Friendica\Core\PConfig;
+ use Friendica\Database\DBM;
+ use Friendica\Util\Network;
+
function mailstream_install() {
- register_hook('plugin_settings', 'addon/mailstream/mailstream.php', 'mailstream_plugin_settings');
- register_hook('plugin_settings_post', 'addon/mailstream/mailstream.php', 'mailstream_plugin_settings_post');
- register_hook('post_local_end', 'addon/mailstream/mailstream.php', 'mailstream_post_hook');
- register_hook('post_remote_end', 'addon/mailstream/mailstream.php', 'mailstream_post_hook');
- register_hook('cron', 'addon/mailstream/mailstream.php', 'mailstream_cron');
+ Addon::registerHook('addon_settings', 'addon/mailstream/mailstream.php', 'mailstream_addon_settings');
+ Addon::registerHook('addon_settings_post', 'addon/mailstream/mailstream.php', 'mailstream_addon_settings_post');
+ Addon::registerHook('post_local_end', 'addon/mailstream/mailstream.php', 'mailstream_post_hook');
+ Addon::registerHook('post_remote_end', 'addon/mailstream/mailstream.php', 'mailstream_post_hook');
+ Addon::registerHook('cron', 'addon/mailstream/mailstream.php', 'mailstream_cron');
- if (Config::get('mailstream', 'dbversion') == '0.1') {
+ if (get_config('mailstream', 'dbversion') == '0.1') {
q('ALTER TABLE `mailstream_item` DROP INDEX `uid`');
q('ALTER TABLE `mailstream_item` DROP INDEX `contact-id`');
q('ALTER TABLE `mailstream_item` DROP INDEX `plink`');
function mailstream_module() {}
- function mailstream_plugin_admin(&$a,&$o) {
- $frommail = get_config('mailstream', 'frommail');
+ function mailstream_addon_admin(&$a,&$o) {
+ $frommail = Config::get('mailstream', 'frommail');
$template = get_markup_template('admin.tpl', 'addon/mailstream/');
- $config = array('frommail',
- t('From Address'),
+ $config = ['frommail',
+ L10n::t('From Address'),
$frommail,
- t('Email address that stream items will appear to be from.'));
- $o .= replace_macros($template, array(
+ L10n::t('Email address that stream items will appear to be from.')];
+ $o .= replace_macros($template, [
'$frommail' => $config,
- '$submit' => t('Save Settings')));
+ '$submit' => L10n::t('Save Settings')]);
}
- function mailstream_plugin_admin_post ($a) {
+ function mailstream_addon_admin_post ($a) {
if (x($_POST, 'frommail')) {
- Config::set('mailstream', 'frommail', $_POST['frommail']);
+ set_config('mailstream', 'frommail', $_POST['frommail']);
}
}
foreach (array_merge($matches1[3], $matches2[1]) as $url) {
$redirects;
$cookiejar = tempnam(get_temppath(), 'cookiejar-mailstream-');
- $attachments[$url] = array(
- 'data' => fetch_url($url, true, $redirects, 0, Null, $cookiejar),
+ $attachments[$url] = [
+ 'data' => Network::fetchUrl($url, true, $redirects, 0, null, $cookiejar),
'guid' => hash("crc32", $url),
'filename' => basename($url),
- 'type' => $a->get_curl_content_type()];
+ 'type' => $a->get_curl_content_type());
if (strlen($attachments[$url]['data'])) {
$item['body'] = str_replace($url, 'cid:' . $attachments[$url]['guid'], $item['body']);
continue;
return;
}
require_once(dirname(__file__).'/phpmailer/class.phpmailer.php');
- require_once('include/bbcode.php');
- $attachments = array();
+
+ $attachments = [];
mailstream_do_images($a, $item, $attachments);
- $frommail = Config::get('mailstream', 'frommail');
+ $frommail = get_config('mailstream', 'frommail');
if ($frommail == "") {
$frommail = 'friendica@localhost.local';
}
mailstream_tidy();
}
- function mailstream_plugin_settings(&$a,&$s) {
- $enabled = get_pconfig(local_user(), 'mailstream', 'enabled');
- $address = get_pconfig(local_user(), 'mailstream', 'address');
- $nolikes = get_pconfig(local_user(), 'mailstream', 'nolikes');
- $attachimg= get_pconfig(local_user(), 'mailstream', 'attachimg');
+ function mailstream_addon_settings(&$a,&$s) {
+ $enabled = PConfig::get(local_user(), 'mailstream', 'enabled');
+ $address = PConfig::get(local_user(), 'mailstream', 'address');
+ $nolikes = PConfig::get(local_user(), 'mailstream', 'nolikes');
+ $attachimg= PConfig::get(local_user(), 'mailstream', 'attachimg');
$template = get_markup_template('settings.tpl', 'addon/mailstream/');
- $s .= replace_macros($template, [
- '$enabled' => [
+ $s .= replace_macros($template, array(
+ '$enabled' => array(
'mailstream_enabled',
- t('Enabled'),
- $enabled),
- '$address' => array(
+ L10n::t('Enabled'),
+ $enabled],
+ '$address' => [
'mailstream_address',
- t('Email Address'),
+ L10n::t('Email Address'),
$address,
- t("Leave blank to use your account email address")),
- '$nolikes' => array(
+ L10n::t("Leave blank to use your account email address")],
+ '$nolikes' => [
'mailstream_nolikes',
- t('Exclude Likes'),
+ L10n::t('Exclude Likes'),
$nolikes,
- t("Check this to omit mailing \"Like\" notifications")),
- '$attachimg' => array(
+ L10n::t("Check this to omit mailing \"Like\" notifications")],
+ '$attachimg' => [
'mailstream_attachimg',
- t('Attach Images'),
+ L10n::t('Attach Images'),
$attachimg,
- t("Download images in posts and attach them to the email. Useful for reading email while offline.")),
- '$title' => t('Mail Stream Settings'),
- '$submit' => t('Save Settings')));
+ L10n::t("Download images in posts and attach them to the email. Useful for reading email while offline.")],
+ '$title' => L10n::t('Mail Stream Settings'),
+ '$submit' => L10n::t('Save Settings')]);
}
- function mailstream_plugin_settings_post($a,$post) {
+ function mailstream_addon_settings_post($a,$post) {
if ($_POST['mailstream_address'] != "") {
- PConfig::set(local_user(), 'mailstream', 'address', $_POST['mailstream_address']);
+ set_pconfig(local_user(), 'mailstream', 'address', $_POST['mailstream_address']);
}
else {
- PConfig::delete(local_user(), 'mailstream', 'address');
+ del_pconfig(local_user(), 'mailstream', 'address');
}
if ($_POST['mailstream_nolikes']) {
- PConfig::set(local_user(), 'mailstream', 'nolikes', $_POST['mailstream_enabled']);
+ set_pconfig(local_user(), 'mailstream', 'nolikes', $_POST['mailstream_enabled']);
}
else {
- PConfig::delete(local_user(), 'mailstream', 'nolikes');
+ del_pconfig(local_user(), 'mailstream', 'nolikes');
}
if ($_POST['mailstream_enabled']) {
- PConfig::set(local_user(), 'mailstream', 'enabled', $_POST['mailstream_enabled']);
+ set_pconfig(local_user(), 'mailstream', 'enabled', $_POST['mailstream_enabled']);
}
else {
- PConfig::delete(local_user(), 'mailstream', 'enabled');
+ del_pconfig(local_user(), 'mailstream', 'enabled');
}
if ($_POST['mailstream_attachimg']) {
- PConfig::set(local_user(), 'mailstream', 'attachimg', $_POST['mailstream_attachimg']);
+ set_pconfig(local_user(), 'mailstream', 'attachimg', $_POST['mailstream_attachimg']);
}
else {
- PConfig::delete(local_user(), 'mailstream', 'attachimg');
+ del_pconfig(local_user(), 'mailstream', 'attachimg');
}
}
function mathjax_settings (&$a, &$s) {
if (! local_user())
return;
- $use = PConfig::get(local_user(),'mathjax','use');
+ $use = get_pconfig(local_user(),'mathjax','use');
$usetext = (($use) ? ' checked="checked" ' : '');
$s .= '<span id="settings_mathjax_inflated" class="settings-block fakelink" style="display: block;" onclick="openClose(\'settings_mathjax_expanded\'); openClose(\'settings_mathjax_inflated\');">';
- $s .= '<h3>MathJax '.t('Settings').'</h3>';
+ $s .= '<h3>MathJax '.L10n::t('Settings').'</h3>';
$s .= '</span>';
$s .= '<div id="settings_mathjax_expanded" class="settings-block" style="display: none;">';
$s .= '<span class="fakelink" onclick="openClose(\'settings_mathjax_expanded\'); openClose(\'settings_mathjax_inflated\');">';
}
}
}
- function mathjax_plugin_admin_post (&$a) {
+ function mathjax_addon_admin_post (&$a) {
$baseurl = ((x($_POST, 'baseurl')) ? trim($_POST['baseurl']) : 'http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML');
- set_config('mathjax','baseurl',$baseurl);
- info( t('Settings updated.'). EOL);
+ Config::set('mathjax','baseurl',$baseurl);
+ info(L10n::t('Settings updated.'). EOL);
}
- function mathjax_plugin_admin (&$a, &$o) {
+ function mathjax_addon_admin (&$a, &$o) {
$t = get_markup_template( "admin.tpl", "addon/mathjax/" );
- if (Config::get('mathjax','baseurl','') == '') {
- Config::set('mathjax','baseurl','http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML');
+ if (get_config('mathjax','baseurl','') == '') {
+ set_config('mathjax','baseurl','http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML');
}
- $o = replace_macros( $t, array(
- '$submit' => t('Save Settings'),
- '$baseurl' => array('baseurl', t('MathJax Base URL'), get_config('mathjax','baseurl' ), t('The URL for the javascript file that should be included to use MathJax. Can be either the MathJax CDN or another installation of MathJax.')),
- ));
+ $o = replace_macros( $t, [
+ '$submit' => L10n::t('Save Settings'),
+ '$baseurl' => ['baseurl', L10n::t('MathJax Base URL'), Config::get('mathjax','baseurl' ), L10n::t('The URL for the javascript file that should be included to use MathJax. Can be either the MathJax CDN or another installation of MathJax.')],
+ ]);
}
$subject = $_REQUEST['subject'];
- $textversion = strip_tags(html_entity_decode(bbcode(stripslashes(str_replace(array("\\r", "\\n"),array( "", "\n"), $text))),ENT_QUOTES,'UTF-8'));
+ $textversion = strip_tags(html_entity_decode(BBCode::convert(stripslashes(str_replace(["\\r", "\\n"], ["", "\n"], $text))), ENT_QUOTES, 'UTF-8'));
+
+ $htmlversion = BBCode::convert(stripslashes(str_replace(["\\r", "\\n"], ["", "<br />\n"], $text)));
+ $htmlversion = bbcode(stripslashes(str_replace(array("\\r","\\n"), array("","<br />\n"),$text)));
+
// if this is a test, send it only to the admin(s)
// admin_email might be a comma separated list, but we need "a@b','c@d','e@f
- if ( intval($_REQUEST['test'])) {
+ if (intval($_REQUEST['test'])) {
$email = $a->config['admin_email'];
- $email = "'" . str_replace([" ",","], ["","','"], $email) . "'";
+ $email = "'" . str_replace(array(" ",","), array("","','"), $email) . "'";
}
$sql_extra = ((intval($_REQUEST['test'])) ? sprintf(" AND `email` in ( %s )", $email) : '');
'messageSubject' => $subject,
'htmlVersion' => $htmlversion,
'textVersion' => $textversion
- ]);
+ ));
}
- notice( t('Emails sent'));
+ notice(L10n::t('Emails sent'));
goaway('admin');
}
* Description: Disable "Archives" widget on profile page
* Version: 1.0
* Author: Mike Macgirvin <http://macgirvin.com/profile/mike>
- *
*
*/
-
-
- function notimeline_install() {
-
- register_hook('plugin_settings', 'addon/notimeline/notimeline.php', 'notimeline_settings');
- register_hook('plugin_settings_post', 'addon/notimeline/notimeline.php', 'notimeline_settings_post');
-
+ use Friendica\Core\Addon;
+ use Friendica\Core\L10n;
+ use Friendica\Core\PConfig;
+
+ function notimeline_install()
+ {
+ Addon::registerHook('addon_settings', 'addon/notimeline/notimeline.php', 'notimeline_settings');
+ Addon::registerHook('addon_settings_post', 'addon/notimeline/notimeline.php', 'notimeline_settings_post');
}
-
- function notimeline_uninstall() {
- unregister_hook('plugin_settings', 'addon/notimeline/notimeline.php', 'notimeline_settings');
- unregister_hook('plugin_settings_post', 'addon/notimeline/notimeline.php', 'notimeline_settings_post');
-
+ function notimeline_uninstall()
+ {
+ Addon::unregisterHook('addon_settings', 'addon/notimeline/notimeline.php', 'notimeline_settings');
+ Addon::unregisterHook('addon_settings_post', 'addon/notimeline/notimeline.php', 'notimeline_settings_post');
}
-
- function notimeline_settings_post($a,$post) {
- if(! local_user() || (! x($_POST,'notimeline-submit')))
+ function notimeline_settings_post($a, $post)
+ {
+ if (!local_user() || (!x($_POST, 'notimeline-submit'))) {
return;
+ }
- set_pconfig(local_user(),'system','no_wall_archive_widget',intval($_POST['notimeline']));
- info( t('No Timeline settings updated.') . EOL);
+ PConfig::set(local_user(), 'system', 'no_wall_archive_widget', intval($_POST['notimeline']));
+ info(L10n::t('No Timeline settings updated.') . EOL);
}
-function notimeline_settings(&$a, &$s)
-{
- if (! local_user()) {
+function notimeline_settings(&$a,&$s) {
+
+ if(! local_user())
return;
- }
/* Add our stylesheet to the page so we can make our settings look nice */
* Description: Collapse posts with inappropriate content
* Version: 1.0
* Author: Mike Macgirvin <http://macgirvin.com/profile/mike>
- *
+ *
*/
-
- function nsfw_install() {
- register_hook('prepare_body', 'addon/nsfw/nsfw.php', 'nsfw_prepare_body', 10);
- register_hook('plugin_settings', 'addon/nsfw/nsfw.php', 'nsfw_addon_settings');
- register_hook('plugin_settings_post', 'addon/nsfw/nsfw.php', 'nsfw_addon_settings_post');
-
+ use Friendica\Core\Addon;
+ use Friendica\Core\L10n;
+ use Friendica\Core\PConfig;
+
+ function nsfw_install()
+ {
+ Addon::registerHook('prepare_body', 'addon/nsfw/nsfw.php', 'nsfw_prepare_body', 10);
+ Addon::registerHook('addon_settings', 'addon/nsfw/nsfw.php', 'nsfw_addon_settings');
+ Addon::registerHook('addon_settings_post', 'addon/nsfw/nsfw.php', 'nsfw_addon_settings_post');
}
- function nsfw_uninstall() {
- unregister_hook('prepare_body', 'addon/nsfw/nsfw.php', 'nsfw_prepare_body');
- unregister_hook('plugin_settings', 'addon/nsfw/nsfw.php', 'nsfw_addon_settings');
- unregister_hook('plugin_settings_post', 'addon/nsfw/nsfw.php', 'nsfw_addon_settings_post');
-
+ function nsfw_uninstall()
+ {
+ Addon::unregisterHook('prepare_body', 'addon/nsfw/nsfw.php', 'nsfw_prepare_body');
+ Addon::unregisterHook('addon_settings', 'addon/nsfw/nsfw.php', 'nsfw_addon_settings');
+ Addon::unregisterHook('addon_settings_post', 'addon/nsfw/nsfw.php', 'nsfw_addon_settings_post');
}
-// This function isn't perfect and isn't trying to preserve the html structure - it's just a
-// quick and dirty filter to pull out embedded photo blobs because 'nsfw' seems to come up
+// This function isn't perfect and isn't trying to preserve the html structure - it's just a
+// quick and dirty filter to pull out embedded photo blobs because 'nsfw' seems to come up
// inside them quite often. We don't need anything fancy, just pull out the data blob so we can
- // check against the rest of the body.
-
- function nsfw_extract_photos($body) {
+ // check against the rest of the body.
+ function nsfw_extract_photos($body)
+ {
$new_body = '';
-
- $img_start = strpos($body,'src="data:');
- $img_end = (($img_start !== false) ? strpos(substr($body,$img_start),'>') : false);
+
+ $img_start = strpos($body, 'src="data:');
+ $img_end = (($img_start !== false) ? strpos(substr($body, $img_start), '>') : false);
$cnt = 0;
}
}
}
- }
- }
+ }
+ }
}
- if($found) {
+
+ if ($found) {
$rnd = random_string(8);
- $b['html'] = '<div id="nsfw-wrap-' . $rnd . '" class="fakelink" onclick=openClose(\'nsfw-' . $rnd . '\'); >' . sprintf( t('%s - Click to open/close'),$word ) . '</div><div id="nsfw-' . $rnd . '" style="display: none; " >' . $b['html'] . '</div>';
+ $b['html'] = '<div id="nsfw-wrap-' . $rnd . '" class="fakelink" onclick=openClose(\'nsfw-' . $rnd . '\'); >' . L10n::t('%s - Click to open/close', $word) . '</div><div id="nsfw-' . $rnd . '" style="display: none; " >' . $b['html'] . '</div>';
}
}
* Add our own settings info to the page.
*
*/
-
-
-
- function numfriends_settings(&$a,&$s) {
-
- if(! local_user())
+ function numfriends_settings(&$a, &$s)
+ {
+ if (! local_user()) {
return;
- }
/* Add our stylesheet to the page so we can make our settings look nice */
* @param mixed $a
* @param array& $item
*/
- function openstreetmap_location($a, &$item) {
-
- if(! (strlen($item['location']) || strlen($item['coord'])))
+ function openstreetmap_location($a, &$item)
+ {
+ if (!(strlen($item['location']) || strlen($item['coord']))) {
return;
- }
/*
* Get the configuration variables from the config.
logger('lat: ' . $lat, LOGGER_DATA);
logger('lon: ' . $lon, LOGGER_DATA);
+ $cardlink = '<a href="' . $tmsserver;
- $b['html'] = '<iframe style="width:100%; height:300px; border:1px solid #ccc" src="' . $tmsserver . '/export/embed.html?bbox=' . ($lon - 0.01) . '%2C' . ($lat - 0.01) . '%2C' . ($lon + 0.01) . '%2C' . ($lat + 0.01) ;
+ if ($marker > 0) {
+ $cardlink .= '?mlat=' . $lat . '&mlon=' . $lon;
+ }
- $b['html'] .= '&layer=mapnik&marker=' . $lat . '%2C' . $lon . '" style="border: 1px solid black"></iframe><br/><small><a href="' . $tmsserver . '/?mlat=' . $lat . '&mlon=' . $lon . '#map=16/' . $lat . '/' . $lon . '">' . (($b['location']) ? escape_tags($b['location']) : t('View Larger')) . '</a></small>';
+ $cardlink .= '#map=' . $zoom . '/' . $lat . '/' . $lon . '">' . ($b['location'] ? escape_tags($b['location']) : L10n::t('View Larger')) . '</a>';
+ if (empty($b['mode'])) {
+ $b['html'] = '<iframe style="width:100%; height:300px; border:1px solid #ccc" src="' . $tmsserver .
+ '/export/embed.html?bbox=' . ($lon - 0.01) . '%2C' . ($lat - 0.01) . '%2C' . ($lon + 0.01) . '%2C' . ($lat + 0.01) .
+ '&layer=mapnik&marker=' . $lat . '%2C' . $lon . '" style="border: 1px solid black"></iframe>' .
+ '<br/><small>' . $cardlink . '</small>';
+ } else {
+ $b['html'] .= '<br/>' . $cardlink;
+ }
logger('generate_map: ' . $b['html'], LOGGER_DATA);
-
}
- function openstreetmap_plugin_admin(&$a, &$o) {
+ function openstreetmap_addon_admin(&$a, &$o)
+ {
$t = get_markup_template("admin.tpl", "addon/openstreetmap/");
- $tmsserver = get_config('openstreetmap', 'tmsserver');
- if(! $tmsserver)
- $tmsserver = 'http://www.openstreetmap.org';
- $nomserver = get_config('openstreetmap', 'nomserver');
- if(! $nomserver)
- $nomserver = 'http://nominatim.openstreetmap.org/search.php';
- $zoom = get_config('openstreetmap', 'zoom');
- if(! $zoom)
- $zoom = 16;
- $marker = get_config('openstreetmap', 'marker');
- if(! $marker)
- $marker = 0;
-
- $o = replace_macros($t, array(
- '$submit' => t('Submit'),
- '$tmsserver' => array('tmsserver', t('Tile Server URL'), $tmsserver, t('A list of <a href="http://wiki.openstreetmap.org/wiki/TMS" target="_blank">public tile servers</a>')),
- '$nomserver' => array('nomserver', t('Nominatim (reverse geocoding) Server URL'), $nomserver, t('A list of <a href="http://wiki.openstreetmap.org/wiki/Nominatim" target="_blank">Nominatim servers</a>')),
- '$zoom' => array('zoom', t('Default zoom'), $zoom, t('The default zoom level. (1:world, 18:highest, also depends on tile server)')),
- '$marker' => array('marker', t('Include marker on map'), $marker, t('Include a marker on the map.')),
- ));
+ $tmsserver = Config::get('openstreetmap', 'tmsserver', OSM_TMS);
+ $nomserver = Config::get('openstreetmap', 'nomserver', OSM_NOM);
+ $zoom = Config::get('openstreetmap', 'zoom', OSM_ZOOM);
+ $marker = Config::get('openstreetmap', 'marker', OSM_MARKER);
+
+ // This is needed since we stored an empty string in the config in previous versions
+ if (empty($nomserver)) {
+ $nomserver = OSM_NOM;
+ }
+
+ $o = replace_macros($t, [
+ '$submit' => L10n::t('Submit'),
+ '$tmsserver' => ['tmsserver', L10n::t('Tile Server URL'), $tmsserver, L10n::t('A list of <a href="http://wiki.openstreetmap.org/wiki/TMS" target="_blank">public tile servers</a>')],
+ '$nomserver' => ['nomserver', L10n::t('Nominatim (reverse geocoding) Server URL'), $nomserver, L10n::t('A list of <a href="http://wiki.openstreetmap.org/wiki/Nominatim" target="_blank">Nominatim servers</a>')],
+ '$zoom' => ['zoom', L10n::t('Default zoom'), $zoom, L10n::t('The default zoom level. (1:world, 18:highest, also depends on tile server)')],
+ '$marker' => ['marker', L10n::t('Include marker on map'), $marker, L10n::t('Include a marker on the map.')],
+ ]);
}
- function openstreetmap_plugin_admin_post(&$a) {
- $urltms = ((x($_POST, 'tmsserver')) ? notags(trim($_POST['tmsserver'])) : '');
- $urlnom = ((x($_POST, 'nomserver')) ? notags(trim($_POST['nomserver'])) : '');
- $zoom = ((x($_POST, 'zoom')) ? intval(trim($_POST['zoom'])) : '16');
- $marker = ((x($_POST, 'marker')) ? intval(trim($_POST['marker'])) : '0');
- set_config('openstreetmap', 'tmsserver', $urltms);
- set_config('openstreetmap', 'nomserver', $urlnom);
- set_config('openstreetmap', 'zoom', $zoom);
- set_config('openstreetmap', 'marker', $marker);
- info( t('Settings updated.') . EOL);
+
+ function openstreetmap_addon_admin_post(&$a)
+ {
+ $urltms = defaults($_POST, 'tmsserver', OSM_TMS);
+ $urlnom = defaults($_POST, 'nomserver', OSM_NOM);
+ $zoom = defaults($_POST, 'zoom', OSM_ZOOM);
+ $marker = defaults($_POST, 'marker', OSM_MARKER);
+
+ Config::set('openstreetmap', 'tmsserver', $urltms);
+ Config::set('openstreetmap', 'nomserver', $urlnom);
+ Config::set('openstreetmap', 'zoom', $zoom);
+ Config::set('openstreetmap', 'marker', $marker);
+
+ info(L10n::t('Settings updated.') . EOL);
}
+
+
'language' => $rr['language'],
'to_name' => $rr['username'],
'to_email' => $rr['email'],
- 'source_name' => t('Administrator'),
+ 'source_name' => L10n::t('Administrator'),
'source_link' => $a->get_baseurl(),
'source_photo' => $a->get_baseurl() . '/images/person-80.jpg',
- ]);
+ ));
- q("update user set expire_notification_sent = '%s' where uid = %d",
- dbesc(datetime_convert()),
- intval($rr['uid'])
- );
+ $fields = ['expire_notification_sent' => DateTimeFormat::utcNow()];
+ dba::update('user', $fields, ['uid' => $rr['uid']]);
}
}
if(! local_user())
return;
- $pumpio_post = PConfig::get(local_user(),'pumpio','post');
+ $pumpio_post = get_pconfig(local_user(),'pumpio','post');
if(intval($pumpio_post) == 1) {
- $pumpio_defpost = PConfig::get(local_user(),'pumpio','post_by_default');
+ $pumpio_defpost = get_pconfig(local_user(),'pumpio','post_by_default');
$selected = ((intval($pumpio_defpost) == 1) ? ' checked="checked" ' : '');
$b .= '<div class="profile-jot-net"><input type="checkbox" name="pumpio_enable"' . $selected . ' value="1" /> '
- . t('Post to pumpio') . '</div>';
+ . L10n::t('Post to pumpio') . '</div>';
}
}
// Support for native shares
// http://<hostname>/api/<type>/shares?id=<the-object-id>
- $oauth_token = PConfig::get($b['uid'], "pumpio", "oauth_token");
- $oauth_token_secret = PConfig::get($b['uid'], "pumpio", "oauth_token_secret");
- $consumer_key = PConfig::get($b['uid'], "pumpio","consumer_key");
- $consumer_secret = PConfig::get($b['uid'], "pumpio","consumer_secret");
+ $oauth_token = get_pconfig($b['uid'], "pumpio", "oauth_token");
+ $oauth_token_secret = get_pconfig($b['uid'], "pumpio", "oauth_token_secret");
+ $consumer_key = get_pconfig($b['uid'], "pumpio","consumer_key");
+ $consumer_secret = get_pconfig($b['uid'], "pumpio","consumer_secret");
- $host = PConfig::get($b['uid'], "pumpio", "host");
- $user = PConfig::get($b['uid'], "pumpio", "user");
- $public = PConfig::get($b['uid'], "pumpio", "public");
+ $host = get_pconfig($b['uid'], "pumpio", "host");
+ $user = get_pconfig($b['uid'], "pumpio", "user");
+ $public = get_pconfig($b['uid'], "pumpio", "public");
if($oauth_token && $oauth_token_secret) {
-
- require_once('include/bbcode.php');
-
$title = trim($b['title']);
- $content = bbcode($b['body'], false, false, 4);
+ $content = BBCode::convert($b['body'], false, 4);
- $params = [];
+ $params = array();
$params["verb"] = "post";
// get the application name for the pump.io app
// 1st try personal config, then system config and fallback to the
// hostname of the node if neither one is set.
- $application_name = get_pconfig( $uid, 'pumpio', 'application_name');
+ $application_name = PConfig::get($uid, 'pumpio', 'application_name');
if ($application_name == "")
- $application_name = Config::get('pumpio', 'application_name');
+ $application_name = get_config('pumpio', 'application_name');
if ($application_name == "")
$application_name = $a->get_hostname();
}
-
-
-
-
- function qcomment_addon_settings(&$a,&$s) {
-
- if(! local_user())
+ function qcomment_addon_settings(&$a, &$s)
+ {
+ if (! local_user()) {
return;
- }
- /* Add our stylesheet to the page so we can make our settings look nice */
+ /* Add our stylesheet to the page so we can make our settings look nice */
- $a->page['htmlhead'] .= '<link rel="stylesheet" type="text/css" href="' . $a->get_baseurl() . '/addon/qcomment/qcomment.css' . '" media="all" />' . "\r\n";
+ $a->page['htmlhead'] .= '<link rel="stylesheet" type="text/css" href="' . $a->get_baseurl() . '/addon/qcomment/qcomment.css' . '" media="all" />' . "\r\n";
- $words = get_pconfig(local_user(),'qcomment','words');
- if($words === false)
- $words = t(':-)') . "\n" . t(':-(') . "\n" . t('lol');
+ $words = PConfig::get(local_user(), 'qcomment', 'words', L10n::t(':-)') . "\n" . L10n::t(':-(') . "\n" . L10n::t('lol'));
- $s .= '<div class="settings-block">';
- $s .= '<h3>' . t('Quick Comment Settings') . '</h3>';
- $s .= '<div id="qcomment-wrapper">';
- $s .= '<div id="qcomment-desc">' . t("Quick comments are found near comment boxes, sometimes hidden. Click them to provide simple replies.") . '</div>';
- $s .= '<label id="qcomment-label" for="qcomment-words">' . t('Enter quick comments, one per line') . ' </label>';
- $s .= '<textarea id="qcomment-words" type="text" name="qcomment-words" >' . htmlspecialchars(unxmlify($words)) . '</textarea>';
- $s .= '</div><div class="clear"></div>';
+ $s .= '<div class="settings-block">';
+ $s .= '<h3>' . L10n::t('Quick Comment Settings') . '</h3>';
+ $s .= '<div id="qcomment-wrapper">';
+ $s .= '<div id="qcomment-desc">' . L10n::t("Quick comments are found near comment boxes, sometimes hidden. Click them to provide simple replies.") . '</div>';
+ $s .= '<label id="qcomment-label" for="qcomment-words">' . L10n::t('Enter quick comments, one per line') . ' </label>';
+ $s .= '<textarea id="qcomment-words" type="text" name="qcomment-words" >' . htmlspecialchars(unxmlify($words)) . '</textarea>';
+ $s .= '</div><div class="clear"></div>';
- $s .= '<div class="settings-submit-wrapper" ><input type="submit" id="qcomment-submit" name="qcomment-submit" class="settings-submit" value="' . t('Save Settings') . '" /></div>';
+ $s .= '<div class="settings-submit-wrapper" ><input type="submit" id="qcomment-submit" name="qcomment-submit" class="settings-submit" value="' . L10n::t('Save Settings') . '" /></div>';
$s .= '</div>';
return;
<?php
/**
* Name: Random place
- * Description: Sample Friendica plugin/addon. Set a random place when posting.
+ * Description: Sample Friendica addon. Set a random place when posting.
* Version: 1.0
* Author: Mike Macgirvin <http://macgirvin.com/profile/mike>
- *
- *
- *
+ *
+ *
+ *
*
* Addons are registered with the system through the admin
* panel.
*
- * When registration is detected, the system calls the plugin
+ * When registration is detected, the system calls the addon
* name_install() function, located in 'addon/name/name.php',
* where 'name' is the name of the addon.
- * If the addon is removed from the configuration list, the
+ * If the addon is removed from the configuration list, the
* system will call the name_uninstall() function.
*
*/
* Description: Allow the recipients of private posts to see who else can see the post by clicking the lock icon
* Version: 1.0
* Author: Zach <https://f.shmuz.in/profile/techcity>
- *
+ *
*/
-
+ use Friendica\Core\Addon;
+ use Friendica\Core\Config;
+ use Friendica\Core\L10n;
+ use Friendica\Core\PConfig;
function remote_permissions_install() {
- register_hook('lockview_content', 'addon/remote_permissions/remote_permissions.php', 'remote_permissions_content');
- register_hook('plugin_settings', 'addon/remote_permissions/remote_permissions.php', 'remote_permissions_settings');
- register_hook('plugin_settings_post', 'addon/remote_permissions/remote_permissions.php', 'remote_permissions_settings_post');
+ Addon::registerHook('lockview_content', 'addon/remote_permissions/remote_permissions.php', 'remote_permissions_content');
+ Addon::registerHook('addon_settings', 'addon/remote_permissions/remote_permissions.php', 'remote_permissions_settings');
+ Addon::registerHook('addon_settings_post', 'addon/remote_permissions/remote_permissions.php', 'remote_permissions_settings_post');
}
function remote_permissions_uninstall() {
$ignored = in_array($a->module, $ignored_modules);
if (is_site_admin() && ($_GET["mode"] != "minimal") && !$a->is_mobile && !$a->is_tablet && !$ignored) {
- $o = $o.'<div class="renderinfo">'.sprintf(t("Database: %s/%s, Network: %s, Rendering: %s, Session: %s, I/O: %s, Other: %s, Total: %s"),
- round($a->performance["database"] - $a->performance["database_write"], 3),
- round($a->performance["database_write"], 3),
- round($a->performance["network"], 2),
- round($a->performance["rendering"], 2),
- round($a->performance["parser"], 2),
- round($a->performance["file"], 2),
- round($duration - $a->performance["database"]
- - $a->performance["network"] - $a->performance["rendering"]
- - $a->performance["parser"] - $a->performance["file"], 2),
- round($duration, 2)
- //round($a->performance["markstart"], 3)
- //round($a->performance["plugin"], 3)
- )."</div>";
+ $o = $o.'<div class="renderinfo">'. L10n::t("Database: %s/%s, Network: %s, Rendering: %s, Session: %s, I/O: %s, Other: %s, Total: %s",
+ round($a->performance["database"] - $a->performance["database_write"], 3),
+ round($a->performance["database_write"], 3),
+ round($a->performance["network"], 2),
+ round($a->performance["rendering"], 2),
+ round($a->performance["parser"], 2),
+ round($a->performance["file"], 2),
+ round($duration - $a->performance["database"]
+ - $a->performance["network"] - $a->performance["rendering"]
+ - $a->performance["parser"] - $a->performance["file"], 2),
+ round($duration, 2)
+ //round($a->performance["markstart"], 3)
+ //round($a->performance["plugin"], 3)
+ )."</div>";
- if (Config::get("rendertime", "callstack")) {
+ if (get_config("rendertime", "callstack")) {
$o .= "<pre>";
$o .= "\nDatabase Read:\n";
foreach ($a->callstack["database"] AS $func => $time) {
}
if ($_POST['securemail-submit']) {
- PConfig::set(local_user(), 'securemail', 'pkey', trim($_POST['securemail-pkey']));
+ set_pconfig(local_user(), 'securemail', 'pkey', trim($_POST['securemail-pkey']));
$enable = ((x($_POST, 'securemail-enable')) ? 1 : 0);
- set_pconfig(local_user(), 'securemail', 'enable', $enable);
- info(t('Secure Mail Settings saved.') . EOL);
+ PConfig::set(local_user(), 'securemail', 'enable', $enable);
+ info(L10n::t('Secure Mail Settings saved.') . EOL);
- if ($_POST['securemail-submit'] == t('Save and send test')) {
+ if ($_POST['securemail-submit'] == L10n::t('Save and send test')) {
$sitename = $a->config['sitename'];
$hostname = $a->get_hostname();
$res = Emailer::send($params);
// revert to saved value
- PConfig::set(local_user(), 'securemail', 'enable', $enable);
+ set_pconfig(local_user(), 'securemail', 'enable', $enable);
if ($res) {
- info(t('Test email sent') . EOL);
+ info(L10n::t('Test email sent') . EOL);
} else {
- notice(t('There was an error sending the test email') . EOL);
+ notice(L10n::t('There was an error sending the test email') . EOL);
}
}
}
return;
if($_POST['showmore-submit']) {
- PConfig::set(local_user(),'showmore','chars',trim($_POST['showmore-chars']));
+ set_pconfig(local_user(),'showmore','chars',trim($_POST['showmore-chars']));
$enable = ((x($_POST,'showmore-enable')) ? intval($_POST['showmore-enable']) : 0);
$disable = 1-$enable;
- set_pconfig(local_user(),'showmore','disable', $disable);
- info( t('Show More Settings saved.') . EOL);
+ PConfig::set(local_user(),'showmore','disable', $disable);
+ info(L10n::t('Show More Settings saved.') . EOL);
}
}
'<img class="smiley" src="' . $a->get_baseurl() . '/images/dislike.gif" alt=":dislike" />',
'<img class="smiley" src="' . $a->get_baseurl() . '/images/friendica-16.png" alt="~friendica" />',
'<img class="smiley" src="' . $a->get_baseurl() . '/images/rhash-16.png" alt="red" />'
- ];
-
+ );
+
// Call hooks to get aditional smileies from other addons
- $params = array('texts' => $texts, 'icons' => $icons, 'string' => ""); //changed
- call_hooks('smilie', $params);
+ $params = ['texts' => $texts, 'icons' => $icons, 'string' => ""]; //changed
+ Addon::callHooks('smilie', $params);
//Generate html for smiley list
$s = "<table class=\"smiley-preview\"><tr>\n\t";
* Description: Set a preferred page to load on login from home page
* Version: 1.0
* Author: Mike Macgirvin <http://macgirvin.com/profile/mike>
- *
+ *
*/
-
+ use Friendica\Core\Addon;
+ use Friendica\Core\L10n;
+ use Friendica\Core\PConfig;
function startpage_install() {
- register_hook('home_init', 'addon/startpage/startpage.php', 'startpage_home_init');
- register_hook('plugin_settings', 'addon/startpage/startpage.php', 'startpage_settings');
- register_hook('plugin_settings_post', 'addon/startpage/startpage.php', 'startpage_settings_post');
+ Addon::registerHook('home_init', 'addon/startpage/startpage.php', 'startpage_home_init');
+ Addon::registerHook('addon_settings', 'addon/startpage/startpage.php', 'startpage_settings');
+ Addon::registerHook('addon_settings_post', 'addon/startpage/startpage.php', 'startpage_settings_post');
}
if(! local_user())
return;
if($_POST['startpage-submit'])
- PConfig::set(local_user(),'startpage','startpage',strip_tags(trim($_POST['startpage'])));
+ set_pconfig(local_user(),'startpage','startpage',strip_tags(trim($_POST['startpage'])));
}
-
/**
*
- * Called from the Plugin Setting form.
+ * Called from the Addon Setting form.
* Add our own settings info to the page.
*
*/
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
-
-
- /***
- * We have to alter the TwitterOAuth class a little bit to work with any GNU Social
- * installation abroad. Basically it's only make the API path variable and be happy.
- *
- * Thank you guys for the Twitter compatible API!
- */
-
define('STATUSNET_DEFAULT_POLL_INTERVAL', 5); // given in minutes
- require_once('library/twitteroauth.php');
- require_once('include/enotify.php');
- require_once("include/socgraph.php");
-
- class StatusNetOAuth extends TwitterOAuth {
- function get_maxlength() {
- $config = $this->get($this->host . 'statusnet/config.json');
- return $config->site->textlimit;
- }
- function accessTokenURL() { return $this->host.'oauth/access_token'; }
- function authenticateURL() { return $this->host.'oauth/authenticate'; }
- function authorizeURL() { return $this->host.'oauth/authorize'; }
- function requestTokenURL() { return $this->host.'oauth/request_token'; }
- function __construct($apipath, $consumer_key, $consumer_secret, $oauth_token = NULL, $oauth_token_secret = NULL) {
- parent::__construct($consumer_key, $consumer_secret, $oauth_token, $oauth_token_secret);
- $this->host = $apipath;
- }
- /**
- * Make an HTTP request
- *
- * @return API results
- *
- * Copied here from the twitteroauth library and complemented by applying the proxy settings of friendica
- */
- function http($url, $method, $postfields = NULL) {
- $this->http_info = array();
- $ci = curl_init();
- /* Curl settings */
- $prx = get_config('system','proxy');
- if(strlen($prx)) {
- curl_setopt($ci, CURLOPT_HTTPPROXYTUNNEL, 1);
- curl_setopt($ci, CURLOPT_PROXY, $prx);
- $prxusr = get_config('system','proxyuser');
- if(strlen($prxusr))
- curl_setopt($ci, CURLOPT_PROXYUSERPWD, $prxusr);
- }
- curl_setopt($ci, CURLOPT_USERAGENT, $this->useragent);
- curl_setopt($ci, CURLOPT_CONNECTTIMEOUT, $this->connecttimeout);
- curl_setopt($ci, CURLOPT_TIMEOUT, $this->timeout);
- curl_setopt($ci, CURLOPT_RETURNTRANSFER, TRUE);
- curl_setopt($ci, CURLOPT_HTTPHEADER, array('Expect:'));
- curl_setopt($ci, CURLOPT_SSL_VERIFYPEER, $this->ssl_verifypeer);
- curl_setopt($ci, CURLOPT_HEADERFUNCTION, array($this, 'getHeader'));
- curl_setopt($ci, CURLOPT_HEADER, FALSE);
-
- switch ($method) {
- case 'POST':
- curl_setopt($ci, CURLOPT_POST, TRUE);
- if (!empty($postfields)) {
- curl_setopt($ci, CURLOPT_POSTFIELDS, $postfields);
- }
- break;
- case 'DELETE':
- curl_setopt($ci, CURLOPT_CUSTOMREQUEST, 'DELETE');
- if (!empty($postfields)) {
- $url = "{$url}?{$postfields}";
- }
- }
-
- curl_setopt($ci, CURLOPT_URL, $url);
- $response = curl_exec($ci);
- $this->http_code = curl_getinfo($ci, CURLINFO_HTTP_CODE);
- $this->http_info = array_merge($this->http_info, curl_getinfo($ci));
- $this->url = $url;
- curl_close ($ci);
- return $response;
- }
- }
+ require_once __DIR__ . DIRECTORY_SEPARATOR . 'library' . DIRECTORY_SEPARATOR . 'statusnetoauth.php';
+ require_once 'include/enotify.php';
+
+ use Codebird\Codebird;
+ use CodebirdSN\CodebirdSN;
+ use Friendica\App;
+ use Friendica\Content\OEmbed;
+ use Friendica\Content\Text\BBCode;
+ use Friendica\Content\Text\Plaintext;
+ use Friendica\Core\Addon;
+ use Friendica\Core\Config;
+ use Friendica\Core\L10n;
+ use Friendica\Core\PConfig;
+ use Friendica\Model\GContact;
+ use Friendica\Model\Group;
+ use Friendica\Model\Item;
+ use Friendica\Model\Photo;
+ use Friendica\Model\User;
+ use Friendica\Util\DateTimeFormat;
+ use Friendica\Util\Network;
-function statusnet_install()
-{
+function statusnet_install() {
// we need some hooks, for the configuration and for sending tweets
- register_hook('connector_settings', 'addon/statusnet/statusnet.php', 'statusnet_settings');
- register_hook('connector_settings_post', 'addon/statusnet/statusnet.php', 'statusnet_settings_post');
- register_hook('notifier_normal', 'addon/statusnet/statusnet.php', 'statusnet_post_hook');
- register_hook('post_local', 'addon/statusnet/statusnet.php', 'statusnet_post_local');
- register_hook('jot_networks', 'addon/statusnet/statusnet.php', 'statusnet_jot_nets');
- register_hook('cron', 'addon/statusnet/statusnet.php', 'statusnet_cron');
- register_hook('prepare_body', 'addon/statusnet/statusnet.php', 'statusnet_prepare_body');
- register_hook('check_item_notification','addon/statusnet/statusnet.php', 'statusnet_check_item_notification');
+ Addon::registerHook('connector_settings', 'addon/statusnet/statusnet.php', 'statusnet_settings');
+ Addon::registerHook('connector_settings_post', 'addon/statusnet/statusnet.php', 'statusnet_settings_post');
+ Addon::registerHook('notifier_normal', 'addon/statusnet/statusnet.php', 'statusnet_post_hook');
+ Addon::registerHook('post_local', 'addon/statusnet/statusnet.php', 'statusnet_post_local');
+ Addon::registerHook('jot_networks', 'addon/statusnet/statusnet.php', 'statusnet_jot_nets');
+ Addon::registerHook('cron', 'addon/statusnet/statusnet.php', 'statusnet_cron');
+ Addon::registerHook('prepare_body', 'addon/statusnet/statusnet.php', 'statusnet_prepare_body');
+ Addon::registerHook('check_item_notification', 'addon/statusnet/statusnet.php', 'statusnet_check_item_notification');
logger("installed GNU Social");
}
-
- function statusnet_uninstall() {
- unregister_hook('connector_settings', 'addon/statusnet/statusnet.php', 'statusnet_settings');
- unregister_hook('connector_settings_post', 'addon/statusnet/statusnet.php', 'statusnet_settings_post');
- unregister_hook('notifier_normal', 'addon/statusnet/statusnet.php', 'statusnet_post_hook');
- unregister_hook('post_local', 'addon/statusnet/statusnet.php', 'statusnet_post_local');
- unregister_hook('jot_networks', 'addon/statusnet/statusnet.php', 'statusnet_jot_nets');
- unregister_hook('cron', 'addon/statusnet/statusnet.php', 'statusnet_cron');
- unregister_hook('prepare_body', 'addon/statusnet/statusnet.php', 'statusnet_prepare_body');
- unregister_hook('check_item_notification','addon/statusnet/statusnet.php', 'statusnet_check_item_notification');
+ function statusnet_uninstall()
+ {
+ Addon::unregisterHook('connector_settings', 'addon/statusnet/statusnet.php', 'statusnet_settings');
+ Addon::unregisterHook('connector_settings_post', 'addon/statusnet/statusnet.php', 'statusnet_settings_post');
+ Addon::unregisterHook('notifier_normal', 'addon/statusnet/statusnet.php', 'statusnet_post_hook');
+ Addon::unregisterHook('post_local', 'addon/statusnet/statusnet.php', 'statusnet_post_local');
+ Addon::unregisterHook('jot_networks', 'addon/statusnet/statusnet.php', 'statusnet_jot_nets');
+ Addon::unregisterHook('cron', 'addon/statusnet/statusnet.php', 'statusnet_cron');
+ Addon::unregisterHook('prepare_body', 'addon/statusnet/statusnet.php', 'statusnet_prepare_body');
+ Addon::unregisterHook('check_item_notification', 'addon/statusnet/statusnet.php', 'statusnet_check_item_notification');
// old setting - remove only
- unregister_hook('post_local_end', 'addon/statusnet/statusnet.php', 'statusnet_post_hook');
- unregister_hook('plugin_settings', 'addon/statusnet/statusnet.php', 'statusnet_settings');
- unregister_hook('plugin_settings_post', 'addon/statusnet/statusnet.php', 'statusnet_settings_post');
-
+ Addon::unregisterHook('post_local_end', 'addon/statusnet/statusnet.php', 'statusnet_post_hook');
+ Addon::unregisterHook('addon_settings', 'addon/statusnet/statusnet.php', 'statusnet_settings');
+ Addon::unregisterHook('addon_settings_post', 'addon/statusnet/statusnet.php', 'statusnet_settings_post');
}
-function statusnet_check_item_notification(App $a, &$notification_data)
-{
- $notification_data["profiles"][] = PConfig::get($notification_data["uid"], 'statusnet', 'own_url');
+function statusnet_check_item_notification($a, &$notification_data) {
+ $notification_data["profiles"][] = get_pconfig($notification_data["uid"], 'statusnet', 'own_url');
}
-function statusnet_jot_nets(App $a, &$b)
-{
- if (!local_user()) {
+function statusnet_jot_nets(&$a,&$b) {
+ if(! local_user())
return;
- }
- $statusnet_post = PConfig::get(local_user(), 'statusnet', 'post');
- if (intval($statusnet_post) == 1) {
- $statusnet_defpost = PConfig::get(local_user(), 'statusnet', 'post_by_default');
+ $statusnet_post = get_pconfig(local_user(),'statusnet','post');
+ if(intval($statusnet_post) == 1) {
+ $statusnet_defpost = get_pconfig(local_user(),'statusnet','post_by_default');
$selected = ((intval($statusnet_defpost) == 1) ? ' checked="checked" ' : '');
$b .= '<div class="profile-jot-net"><input type="checkbox" name="statusnet_enable"' . $selected . ' value="1" /> '
- . t('Post to GNU Social') . '</div>';
+ . L10n::t('Post to GNU Social') . '</div>';
}
}
-function statusnet_settings_post(App $a, $post)
-{
- if (!local_user()) {
+function statusnet_settings_post ($a,$post) {
+ if(! local_user())
return;
- }
// don't check GNU Social settings if GNU Social submit button is not clicked
- if (!x($_POST, 'statusnet-submit')) {
+ if (!x($_POST,'statusnet-submit'))
return;
- }
if (isset($_POST['statusnet-disconnect'])) {
- /* * *
+ /***
* if the GNU Social-disconnect checkbox is set, clear the GNU Social configuration
*/
- PConfig::delete(local_user(), 'statusnet', 'consumerkey');
- PConfig::delete(local_user(), 'statusnet', 'consumersecret');
- PConfig::delete(local_user(), 'statusnet', 'post');
- PConfig::delete(local_user(), 'statusnet', 'post_by_default');
- PConfig::delete(local_user(), 'statusnet', 'oauthtoken');
- PConfig::delete(local_user(), 'statusnet', 'oauthsecret');
- PConfig::delete(local_user(), 'statusnet', 'baseapi');
- PConfig::delete(local_user(), 'statusnet', 'lastid');
- PConfig::delete(local_user(), 'statusnet', 'mirror_posts');
- PConfig::delete(local_user(), 'statusnet', 'import');
- PConfig::delete(local_user(), 'statusnet', 'create_user');
- PConfig::delete(local_user(), 'statusnet', 'own_id');
+ del_pconfig(local_user(), 'statusnet', 'consumerkey');
+ del_pconfig(local_user(), 'statusnet', 'consumersecret');
+ del_pconfig(local_user(), 'statusnet', 'post');
+ del_pconfig(local_user(), 'statusnet', 'post_by_default');
+ del_pconfig(local_user(), 'statusnet', 'oauthtoken');
+ del_pconfig(local_user(), 'statusnet', 'oauthsecret');
+ del_pconfig(local_user(), 'statusnet', 'baseapi');
+ del_pconfig(local_user(), 'statusnet', 'lastid');
+ del_pconfig(local_user(), 'statusnet', 'mirror_posts');
+ del_pconfig(local_user(), 'statusnet', 'import');
+ del_pconfig(local_user(), 'statusnet', 'create_user');
+ del_pconfig(local_user(), 'statusnet', 'own_id');
} else {
- if (isset($_POST['statusnet-preconf-apiurl'])) {
- /***
- * If the user used one of the preconfigured GNU Social server credentials
- * use them. All the data are available in the global config.
- * Check the API Url never the less and blame the admin if it's not working ^^
- */
- $globalsn = get_config('statusnet', 'sites');
- foreach ( $globalsn as $asn) {
- if ($asn['apiurl'] == $_POST['statusnet-preconf-apiurl'] ) {
- $apibase = $asn['apiurl'];
- $c = fetch_url( $apibase . 'statusnet/version.xml' );
+ if (isset($_POST['statusnet-preconf-apiurl'])) {
+ /* * *
+ * If the user used one of the preconfigured GNU Social server credentials
+ * use them. All the data are available in the global config.
+ * Check the API Url never the less and blame the admin if it's not working ^^
+ */
+ $globalsn = Config::get('statusnet', 'sites');
+ foreach ($globalsn as $asn) {
+ if ($asn['apiurl'] == $_POST['statusnet-preconf-apiurl']) {
+ $apibase = $asn['apiurl'];
+ $c = Network::fetchUrl($apibase . 'statusnet/version.xml');
+ if (strlen($c) > 0) {
+ PConfig::set(local_user(), 'statusnet', 'consumerkey', $asn['consumerkey']);
+ PConfig::set(local_user(), 'statusnet', 'consumersecret', $asn['consumersecret']);
+ PConfig::set(local_user(), 'statusnet', 'baseapi', $asn['apiurl']);
+ //PConfig::set(local_user(), 'statusnet', 'application_name', $asn['applicationname'] );
+ } else {
+ notice(L10n::t('Please contact your site administrator.<br />The provided API URL is not valid.') . EOL . $asn['apiurl'] . EOL);
+ }
+ }
+ }
+ goaway('settings/connectors');
+ } else {
+ if (isset($_POST['statusnet-consumersecret'])) {
+ // check if we can reach the API of the GNU Social server
+ // we'll check the API Version for that, if we don't get one we'll try to fix the path but will
+ // resign quickly after this one try to fix the path ;-)
+ $apibase = $_POST['statusnet-baseapi'];
+ $c = Network::fetchUrl($apibase . 'statusnet/version.xml');
if (strlen($c) > 0) {
- // ok the API path is correct, let's save the settings
- PConfig::set(local_user(), 'statusnet', 'consumerkey', $_POST['statusnet-consumerkey']);
- PConfig::set(local_user(), 'statusnet', 'consumersecret', $_POST['statusnet-consumersecret']);
- PConfig::set(local_user(), 'statusnet', 'baseapi', $apibase);
- //PConfig::set(local_user(), 'statusnet', 'application_name', $_POST['statusnet-applicationname'] );
+ set_pconfig(local_user(), 'statusnet', 'consumerkey', $asn['consumerkey'] );
+ set_pconfig(local_user(), 'statusnet', 'consumersecret', $asn['consumersecret'] );
+ set_pconfig(local_user(), 'statusnet', 'baseapi', $asn['apiurl'] );
+ //set_pconfig(local_user(), 'statusnet', 'application_name', $asn['applicationname'] );
} else {
- notice( t('Please contact your site administrator.<br />The provided API URL is not valid.').EOL.$asn['apiurl'].EOL );
+ // the API path is not correct, maybe missing trailing / ?
+ $apibase = $apibase . '/';
+ $c = Network::fetchUrl($apibase . 'statusnet/version.xml');
+ if (strlen($c) > 0) {
+ // ok the API path is now correct, let's save the settings
+ PConfig::set(local_user(), 'statusnet', 'consumerkey', $_POST['statusnet-consumerkey']);
+ PConfig::set(local_user(), 'statusnet', 'consumersecret', $_POST['statusnet-consumersecret']);
+ PConfig::set(local_user(), 'statusnet', 'baseapi', $apibase);
+ } else {
+ // still not the correct API base, let's do noting
+ notice(L10n::t('We could not contact the GNU Social API with the Path you entered.') . EOL);
+ }
}
- goaway('settings/connectors');
+ }
+ }
+ goaway($a->get_baseurl().'/settings/connectors');
+ } else {
+ if (isset($_POST['statusnet-consumersecret'])) {
+ // check if we can reach the API of the GNU Social server
+ // we'll check the API Version for that, if we don't get one we'll try to fix the path but will
+ // resign quickly after this one try to fix the path ;-)
+ $apibase = $_POST['statusnet-baseapi'];
+ $c = fetch_url( $apibase . 'statusnet/version.xml' );
+ if (strlen($c) > 0) {
+ // ok the API path is correct, let's save the settings
+ set_pconfig(local_user(), 'statusnet', 'consumerkey', $_POST['statusnet-consumerkey']);
+ set_pconfig(local_user(), 'statusnet', 'consumersecret', $_POST['statusnet-consumersecret']);
+ set_pconfig(local_user(), 'statusnet', 'baseapi', $apibase );
+ //set_pconfig(local_user(), 'statusnet', 'application_name', $_POST['statusnet-applicationname'] );
+ } else {
+ // the API path is not correct, maybe missing trailing / ?
+ $apibase = $apibase . '/';
+ $c = fetch_url( $apibase . 'statusnet/version.xml' );
+ if (strlen($c) > 0) {
+ // ok the API path is now correct, let's save the settings
+ set_pconfig(local_user(), 'statusnet', 'consumerkey', $_POST['statusnet-consumerkey']);
+ set_pconfig(local_user(), 'statusnet', 'consumersecret', $_POST['statusnet-consumersecret']);
+ set_pconfig(local_user(), 'statusnet', 'baseapi', $apibase );
} else {
- // still not the correct API base, let's do noting
- notice( t('We could not contact the GNU Social API with the Path you entered.').EOL );
+ if (isset($_POST['statusnet-pin'])) {
+ // if the user supplied us with a PIN from GNU Social, let the magic of OAuth happen
+ $api = PConfig::get(local_user(), 'statusnet', 'baseapi');
+ $ckey = PConfig::get(local_user(), 'statusnet', 'consumerkey');
+ $csecret = PConfig::get(local_user(), 'statusnet', 'consumersecret');
+ // the token and secret for which the PIN was generated were hidden in the settings
+ // form as token and token2, we need a new connection to GNU Social using these token
+ // and secret to request a Access Token with the PIN
+ $connection = new StatusNetOAuth($api, $ckey, $csecret, $_POST['statusnet-token'], $_POST['statusnet-token2']);
+ $token = $connection->getAccessToken($_POST['statusnet-pin']);
+ // ok, now that we have the Access Token, save them in the user config
+ PConfig::set(local_user(), 'statusnet', 'oauthtoken', $token['oauth_token']);
+ PConfig::set(local_user(), 'statusnet', 'oauthsecret', $token['oauth_token_secret']);
+ PConfig::set(local_user(), 'statusnet', 'post', 1);
+ PConfig::set(local_user(), 'statusnet', 'post_taglinks', 1);
+ // reload the Addon Settings page, if we don't do it see Bug #42
+ goaway('settings/connectors');
+ } else {
+ // if no PIN is supplied in the POST variables, the user has changed the setting
+ // to post a dent for every new __public__ posting to the wall
+ PConfig::set(local_user(), 'statusnet', 'post', intval($_POST['statusnet-enable']));
+ PConfig::set(local_user(), 'statusnet', 'post_by_default', intval($_POST['statusnet-default']));
+ PConfig::set(local_user(), 'statusnet', 'mirror_posts', intval($_POST['statusnet-mirror']));
+ PConfig::set(local_user(), 'statusnet', 'import', intval($_POST['statusnet-import']));
+ PConfig::set(local_user(), 'statusnet', 'create_user', intval($_POST['statusnet-create_user']));
+
+ if (!intval($_POST['statusnet-mirror']))
+ PConfig::delete(local_user(), 'statusnet', 'lastid');
+
+ info(L10n::t('GNU Social settings updated.') . EOL);
+ }
}
}
- }
+ goaway($a->get_baseurl().'/settings/connectors');
+ } else {
+ if (isset($_POST['statusnet-pin'])) {
+ // if the user supplied us with a PIN from GNU Social, let the magic of OAuth happen
+ $api = get_pconfig(local_user(), 'statusnet', 'baseapi');
+ $ckey = get_pconfig(local_user(), 'statusnet', 'consumerkey' );
+ $csecret = get_pconfig(local_user(), 'statusnet', 'consumersecret' );
+ // the token and secret for which the PIN was generated were hidden in the settings
+ // form as token and token2, we need a new connection to GNU Social using these token
+ // and secret to request a Access Token with the PIN
+ $connection = new StatusNetOAuth($api, $ckey, $csecret, $_POST['statusnet-token'], $_POST['statusnet-token2']);
+ $token = $connection->getAccessToken( $_POST['statusnet-pin'] );
+ // ok, now that we have the Access Token, save them in the user config
+ set_pconfig(local_user(),'statusnet', 'oauthtoken', $token['oauth_token']);
+ set_pconfig(local_user(),'statusnet', 'oauthsecret', $token['oauth_token_secret']);
+ set_pconfig(local_user(),'statusnet', 'post', 1);
+ set_pconfig(local_user(),'statusnet', 'post_taglinks', 1);
+ // reload the Addon Settings page, if we don't do it see Bug #42
+ goaway($a->get_baseurl().'/settings/connectors');
+ } else {
+ // if no PIN is supplied in the POST variables, the user has changed the setting
+ // to post a dent for every new __public__ posting to the wall
+ set_pconfig(local_user(),'statusnet','post',intval($_POST['statusnet-enable']));
+ set_pconfig(local_user(),'statusnet','post_by_default',intval($_POST['statusnet-default']));
+ set_pconfig(local_user(), 'statusnet', 'mirror_posts', intval($_POST['statusnet-mirror']));
+ set_pconfig(local_user(), 'statusnet', 'import', intval($_POST['statusnet-import']));
+ set_pconfig(local_user(), 'statusnet', 'create_user', intval($_POST['statusnet-create_user']));
+
+ if (!intval($_POST['statusnet-mirror']))
+ del_pconfig(local_user(),'statusnet','lastid');
+
+ info( t('GNU Social settings updated.') . EOL);
+ }}}}
}
-
-function statusnet_settings(App $a, &$s)
-{
- if (!local_user()) {
+function statusnet_settings(&$a,&$s) {
+ if(! local_user())
return;
- }
$a->page['htmlhead'] .= '<link rel="stylesheet" type="text/css" href="' . $a->get_baseurl() . '/addon/statusnet/statusnet.css' . '" media="all" />' . "\r\n";
- /* * *
+ /***
* 1) Check that we have a base api url and a consumer key & secret
* 2) If no OAuthtoken & stuff is present, generate button to get some
* allow the user to cancel the connection process at this step
$s .= '</span>';
$s .= '<div id="settings_statusnet_expanded" class="settings-block" style="display: none;">';
$s .= '<span class="fakelink" onclick="openClose(\'settings_statusnet_expanded\'); openClose(\'settings_statusnet_inflated\');">';
- $s .= '<img class="connector'.$css.'" src="images/gnusocial.png" /><h3 class="connector">'. t('GNU Social Import/Export/Mirror').'</h3>';
+ $s .= '<img class="connector' . $css . '" src="images/gnusocial.png" /><h3 class="connector">' . L10n::t('GNU Social Import/Export/Mirror') . '</h3>';
$s .= '</span>';
- if ((!$ckey) && (!$csecret)) {
- /* * *
+ if ( (!$ckey) && (!$csecret) ) {
+ /***
* no consumer keys
*/
- $globalsn = Config::get('statusnet', 'sites');
- /* * *
+ $globalsn = get_config('statusnet', 'sites');
+ /***
* lets check if we have one or more globally configured GNU Social
* server OAuth credentials in the configuration. If so offer them
* with a little explanation to the user as choice - otherwise
* ignore this option entirely.
*/
- if (! $globalsn == null) {
- $s .= '<h4>' . t('Globally Available GNU Social OAuthKeys') . '</h4>';
- $s .= '<p>'. t("There are preconfigured OAuth key pairs for some GNU Social servers available. If you are using one of them, please use these credentials. If not feel free to connect to any other GNU Social instance \x28see below\x29.") .'</p>';
+ if (!$globalsn == null) {
+ $s .= '<h4>' . L10n::t('Globally Available GNU Social OAuthKeys') . '</h4>';
+ $s .= '<p>' . L10n::t("There are preconfigured OAuth key pairs for some GNU Social servers available. If you are using one of them, please use these credentials. If not feel free to connect to any other GNU Social instance \x28see below\x29.") . '</p>';
$s .= '<div id="statusnet-preconf-wrapper">';
foreach ($globalsn as $asn) {
- $s .= '<input type="radio" name="statusnet-preconf-apiurl" value="' . $asn['apiurl'] . '">' . $asn['sitename'] . '<br />';
+ $s .= '<input type="radio" name="statusnet-preconf-apiurl" value="'. $asn['apiurl'] .'">'. $asn['sitename'] .'<br />';
}
$s .= '<p></p><div class="clear"></div></div>';
- $s .= '<div class="settings-submit-wrapper" ><input type="submit" name="statusnet-submit" class="settings-submit" value="' . t('Save Settings') . '" /></div>';
+ $s .= '<div class="settings-submit-wrapper" ><input type="submit" name="statusnet-submit" class="settings-submit" value="' . L10n::t('Save Settings') . '" /></div>';
}
- $s .= '<h4>' . t('Provide your own OAuth Credentials') . '</h4>';
- $s .= '<p>'. t('No consumer key pair for GNU Social found. Register your Friendica Account as an desktop client on your GNU Social account, copy the consumer key pair here and enter the API base root.<br />Before you register your own OAuth key pair ask the administrator if there is already a key pair for this Friendica installation at your favorited GNU Social installation.') .'</p>';
+ $s .= '<h4>' . L10n::t('Provide your own OAuth Credentials') . '</h4>';
+ $s .= '<p>' . L10n::t('No consumer key pair for GNU Social found. Register your Friendica Account as an desktop client on your GNU Social account, copy the consumer key pair here and enter the API base root.<br />Before you register your own OAuth key pair ask the administrator if there is already a key pair for this Friendica installation at your favorited GNU Social installation.') . '</p>';
$s .= '<div id="statusnet-consumer-wrapper">';
- $s .= '<label id="statusnet-consumerkey-label" for="statusnet-consumerkey">'. t('OAuth Consumer Key') .'</label>';
+ $s .= '<label id="statusnet-consumerkey-label" for="statusnet-consumerkey">' . L10n::t('OAuth Consumer Key') . '</label>';
$s .= '<input id="statusnet-consumerkey" type="text" name="statusnet-consumerkey" size="35" /><br />';
$s .= '<div class="clear"></div>';
- $s .= '<label id="statusnet-consumersecret-label" for="statusnet-consumersecret">'. t('OAuth Consumer Secret') .'</label>';
+ $s .= '<label id="statusnet-consumersecret-label" for="statusnet-consumersecret">' . L10n::t('OAuth Consumer Secret') . '</label>';
$s .= '<input id="statusnet-consumersecret" type="text" name="statusnet-consumersecret" size="35" /><br />';
$s .= '<div class="clear"></div>';
- $s .= '<label id="statusnet-baseapi-label" for="statusnet-baseapi">'. t("Base API Path \x28remember the trailing /\x29") .'</label>';
+ $s .= '<label id="statusnet-baseapi-label" for="statusnet-baseapi">' . L10n::t("Base API Path \x28remember the trailing /\x29") . '</label>';
$s .= '<input id="statusnet-baseapi" type="text" name="statusnet-baseapi" size="35" /><br />';
$s .= '<div class="clear"></div>';
- //$s .= '<label id="statusnet-applicationname-label" for="statusnet-applicationname">'.t('GNU Socialapplication name').'</label>';
+ //$s .= '<label id="statusnet-applicationname-label" for="statusnet-applicationname">'.L10n::t('GNU Socialapplication name').'</label>';
//$s .= '<input id="statusnet-applicationname" type="text" name="statusnet-applicationname" size="35" /><br />';
$s .= '<p></p><div class="clear"></div>';
- $s .= '<div class="settings-submit-wrapper" ><input type="submit" name="statusnet-submit" class="settings-submit" value="' . t('Save Settings') . '" /></div>';
+ $s .= '<div class="settings-submit-wrapper" ><input type="submit" name="statusnet-submit" class="settings-submit" value="' . L10n::t('Save Settings') . '" /></div>';
$s .= '</div>';
} else {
- /* * *
+ /***
* ok we have a consumer key pair now look into the OAuth stuff
*/
- if ((!$otoken) && (!$osecret)) {
- /* * *
+ if ( (!$otoken) && (!$osecret) ) {
+ /***
* the user has not yet connected the account to GNU Social
* get a temporary OAuth key/secret pair and display a button with
* which the user can request a PIN to connect the account to a
$connection = new StatusNetOAuth($api, $ckey, $csecret);
$request_token = $connection->getRequestToken('oob');
$token = $request_token['oauth_token'];
- /* * *
+ /***
* make some nice form
*/
- $s .= '<p>'. t('To connect to your GNU Social account click the button below to get a security code from GNU Social which you have to copy into the input box below and submit the form. Only your <strong>public</strong> posts will be posted to GNU Social.') .'</p>';
- $s .= '<a href="'.$connection->getAuthorizeURL($token,False).'" target="_statusnet"><img src="addon/statusnet/signinwithstatusnet.png" alt="'. t('Log in with GNU Social') .'"></a>';
+ $s .= '<p>' . L10n::t('To connect to your GNU Social account click the button below to get a security code from GNU Social which you have to copy into the input box below and submit the form. Only your <strong>public</strong> posts will be posted to GNU Social.') . '</p>';
+ $s .= '<a href="' . $connection->getAuthorizeURL($token, False) . '" target="_statusnet"><img src="addon/statusnet/signinwithstatusnet.png" alt="' . L10n::t('Log in with GNU Social') . '"></a>';
$s .= '<div id="statusnet-pin-wrapper">';
- $s .= '<label id="statusnet-pin-label" for="statusnet-pin">'. t('Copy the security code from GNU Social here') .'</label>';
+ $s .= '<label id="statusnet-pin-label" for="statusnet-pin">' . L10n::t('Copy the security code from GNU Social here') . '</label>';
$s .= '<input id="statusnet-pin" type="text" name="statusnet-pin" />';
- $s .= '<input id="statusnet-token" type="hidden" name="statusnet-token" value="' . $token . '" />';
- $s .= '<input id="statusnet-token2" type="hidden" name="statusnet-token2" value="' . $request_token['oauth_token_secret'] . '" />';
+ $s .= '<input id="statusnet-token" type="hidden" name="statusnet-token" value="'.$token.'" />';
+ $s .= '<input id="statusnet-token2" type="hidden" name="statusnet-token2" value="'.$request_token['oauth_token_secret'].'" />';
$s .= '</div><div class="clear"></div>';
- $s .= '<div class="settings-submit-wrapper" ><input type="submit" name="statusnet-submit" class="settings-submit" value="' . t('Save Settings') . '" /></div>';
- $s .= '<h4>'.t('Cancel Connection Process').'</h4>';
+ $s .= '<div class="settings-submit-wrapper" ><input type="submit" name="statusnet-submit" class="settings-submit" value="' . L10n::t('Save Settings') . '" /></div>';
+ $s .= '<h4>' . L10n::t('Cancel Connection Process') . '</h4>';
$s .= '<div id="statusnet-cancel-wrapper">';
- $s .= '<p>'.t('Current GNU Social API is').': '.$api.'</p>';
- $s .= '<label id="statusnet-cancel-label" for="statusnet-cancel">'. t('Cancel GNU Social Connection') . '</label>';
+ $s .= '<p>' . L10n::t('Current GNU Social API is') . ': ' . $api . '</p>';
+ $s .= '<label id="statusnet-cancel-label" for="statusnet-cancel">' . L10n::t('Cancel GNU Social Connection') . '</label>';
$s .= '<input id="statusnet-cancel" type="checkbox" name="statusnet-disconnect" value="1" />';
$s .= '</div><div class="clear"></div>';
- $s .= '<div class="settings-submit-wrapper" ><input type="submit" name="statusnet-submit" class="settings-submit" value="' . t('Save Settings') . '" /></div>';
+ $s .= '<div class="settings-submit-wrapper" ><input type="submit" name="statusnet-submit" class="settings-submit" value="' . L10n::t('Save Settings') . '" /></div>';
} else {
- /* * *
+ /***
* we have an OAuth key / secret pair for the user
* so let's give a chance to disable the postings to GNU Social
*/
- $connection = new StatusNetOAuth($api, $ckey, $csecret, $otoken, $osecret);
+ $connection = new StatusNetOAuth($api,$ckey,$csecret,$otoken,$osecret);
$details = $connection->get('account/verify_credentials');
- $s .= '<div id="statusnet-info" ><img id="statusnet-avatar" src="'.$details->profile_image_url.'" /><p id="statusnet-info-block">'. t('Currently connected to: ') .'<a href="'.$details->statusnet_profile_url.'" target="_statusnet">'.$details->screen_name.'</a><br /><em>'.$details->description.'</em></p></div>';
- $s .= '<p>'. t('If enabled all your <strong>public</strong> postings can be posted to the associated GNU Social account. You can choose to do so by default (here) or for every posting separately in the posting options when writing the entry.') .'</p>';
+ $s .= '<div id="statusnet-info" ><img id="statusnet-avatar" src="' . $details->profile_image_url . '" /><p id="statusnet-info-block">' . L10n::t('Currently connected to: ') . '<a href="' . $details->statusnet_profile_url . '" target="_statusnet">' . $details->screen_name . '</a><br /><em>' . $details->description . '</em></p></div>';
+ $s .= '<p>' . L10n::t('If enabled all your <strong>public</strong> postings can be posted to the associated GNU Social account. You can choose to do so by default (here) or for every posting separately in the posting options when writing the entry.') . '</p>';
if ($a->user['hidewall']) {
- $s .= '<p>'. t('<strong>Note</strong>: Due your privacy settings (<em>Hide your profile details from unknown viewers?</em>) the link potentially included in public postings relayed to GNU Social will lead the visitor to a blank page informing the visitor that the access to your profile has been restricted.') .'</p>';
+ $s .= '<p>' . L10n::t('<strong>Note</strong>: Due your privacy settings (<em>Hide your profile details from unknown viewers?</em>) the link potentially included in public postings relayed to GNU Social will lead the visitor to a blank page informing the visitor that the access to your profile has been restricted.') . '</p>';
}
$s .= '<div id="statusnet-enable-wrapper">';
- $s .= '<label id="statusnet-enable-label" for="statusnet-checkbox">'. t('Allow posting to GNU Social') .'</label>';
+ $s .= '<label id="statusnet-enable-label" for="statusnet-checkbox">' . L10n::t('Allow posting to GNU Social') . '</label>';
$s .= '<input id="statusnet-checkbox" type="checkbox" name="statusnet-enable" value="1" ' . $checked . '/>';
$s .= '<div class="clear"></div>';
- $s .= '<label id="statusnet-default-label" for="statusnet-default">'. t('Send public postings to GNU Social by default') .'</label>';
+ $s .= '<label id="statusnet-default-label" for="statusnet-default">' . L10n::t('Send public postings to GNU Social by default') . '</label>';
$s .= '<input id="statusnet-default" type="checkbox" name="statusnet-default" value="1" ' . $defchecked . '/>';
$s .= '<div class="clear"></div>';
logger('GNU Socialpost invoked');
- PConfig::load($b['uid'], 'statusnet');
+ load_pconfig($b['uid'], 'statusnet');
+
+ $api = get_pconfig($b['uid'], 'statusnet', 'baseapi');
+ $ckey = get_pconfig($b['uid'], 'statusnet', 'consumerkey');
+ $csecret = get_pconfig($b['uid'], 'statusnet', 'consumersecret');
+ $otoken = get_pconfig($b['uid'], 'statusnet', 'oauthtoken');
+ $osecret = get_pconfig($b['uid'], 'statusnet', 'oauthsecret');
- $api = PConfig::get($b['uid'], 'statusnet', 'baseapi');
- $ckey = PConfig::get($b['uid'], 'statusnet', 'consumerkey');
- $csecret = PConfig::get($b['uid'], 'statusnet', 'consumersecret');
- $otoken = PConfig::get($b['uid'], 'statusnet', 'oauthtoken');
- $osecret = PConfig::get($b['uid'], 'statusnet', 'oauthsecret');
+ if($ckey && $csecret && $otoken && $osecret) {
- if ($ckey && $csecret && $otoken && $osecret) {
// If it's a repeated message from GNU Social then do a native retweet and exit
- if (statusnet_is_retweet($a, $b['uid'], $b['body'])) {
+ if (statusnet_is_retweet($a, $b['uid'], $b['body']))
return;
- }
- require_once('include/bbcode.php');
- $dent = new StatusNetOAuth($api,$ckey,$csecret,$otoken,$osecret);
+ $dent = new StatusNetOAuth($api, $ckey, $csecret, $otoken, $osecret);
$max_char = $dent->get_maxlength(); // max. length for a dent
- PConfig::set($b['uid'], 'statusnet', 'max_char', $max_char);
+ set_pconfig($b['uid'], 'statusnet', 'max_char', $max_char);
$tempfile = "";
- require_once("include/plaintext.php");
- require_once("include/network.php");
- $msgarr = plaintext($a, $b, $max_char, true, 7);
+ $msgarr = BBCode::toPlaintext($b, $max_char, true, 7);
$msg = $msgarr["text"];
if (($msg == "") && isset($msgarr["title"]))
$image = "";
if (isset($msgarr["url"]) && ($msgarr["type"] != "photo")) {
- if ((strlen($msgarr["url"]) > 20) &&
- ((strlen($msg." \n".$msgarr["url"]) > $max_char)))
- $msg .= " \n".short_link($msgarr["url"]);
- else
- $msg .= " \n".$msgarr["url"];
- } elseif (isset($msgarr["image"]) && ($msgarr["type"] != "video"))
+ $msg .= " \n" . $msgarr["url"];
+ } elseif (isset($msgarr["image"]) && ($msgarr["type"] != "video")) {
$image = $msgarr["image"];
- }
if ($image != "") {
- $img_str = fetch_url($image);
+ $img_str = Network::fetchUrl($image);
$tempfile = tempnam(get_temppath(), "cache");
file_put_contents($tempfile, $img_str);
- $postdata = ["status" => $msg, "media[]" => $tempfile];
- } else {
- $postdata = ["status" => $msg];
- }
+ $postdata = array("status" => $msg, "media[]" => $tempfile);
+ } else
+ $postdata = array("status"=>$msg);
- // and now dent it :-)
- if(strlen($msg)) {
-
+ // and now send it :-)
+ if (strlen($msg)) {
if ($iscomment) {
$postdata["in_reply_to_status_id"] = substr($orig_post["uri"], $hostlength);
- logger('statusnet_post send reply ' . print_r($postdata, true), LOGGER_DEBUG);
+ logger('statusnet_post send reply '.print_r($postdata, true), LOGGER_DEBUG);
}
// New code that is able to post pictures
$cb->setToken($otoken, $osecret);
$result = $cb->statuses_update($postdata);
//$result = $dent->post('statuses/update', $postdata);
- logger('statusnet_post send, result: ' . print_r($result, true) .
- "\nmessage: " . $msg, LOGGER_DEBUG . "\nOriginal post: " . print_r($b, true) . "\nPost Data: " . print_r($postdata, true));
+ logger('statusnet_post send, result: ' . print_r($result, true).
+ "\nmessage: ".$msg, LOGGER_DEBUG."\nOriginal post: ".print_r($b, true)."\nPost Data: ".print_r($postdata, true));
- if ($result->source) {
- PConfig::set($b["uid"], "statusnet", "application_name", strip_tags($result->source));
- }
+ if ($result->source)
+ set_pconfig($b["uid"], "statusnet", "application_name", strip_tags($result->source));
if ($result->error) {
- logger('Send to GNU Social failed: "' . $result->error . '"');
+ logger('Send to GNU Social failed: "'.$result->error.'"');
} elseif ($iscomment) {
- logger('statusnet_post: Update extid '.$result->id." for post id ".$b['id']);
- q("UPDATE `item` SET `extid` = '%s', `body` = '%s' WHERE `id` = %d",
- dbesc($hostname."::".$result->id),
- dbesc($result->text),
- intval($b['id'])
- );
+ logger('statusnet_post: Update extid ' . $result->id . " for post id " . $b['id']);
+ Item::update(['extid' => $hostname . "::" . $result->id, 'body' => $result->text], ['id' => $b['id']]);
}
}
- if ($tempfile != "") {
+ if ($tempfile != "")
unlink($tempfile);
- }
}
}
- function statusnet_plugin_admin_post(&$a){
+ function statusnet_addon_admin_post(App $a)
+ {
+ $sites = [];
- foreach ($_POST['sitename'] as $id => $sitename) {
- $sitename = trim($sitename);
- $apiurl = trim($_POST['apiurl'][$id]);
- if (!(substr($apiurl, -1) == '/')) {
- $apiurl = $apiurl . '/';
- }
- $secret = trim($_POST['secret'][$id]);
- $key = trim($_POST['key'][$id]);
+ $sites = array();
+
+ foreach($_POST['sitename'] as $id=>$sitename){
+ $sitename=trim($sitename);
+ $apiurl=trim($_POST['apiurl'][$id]);
+ if (! (substr($apiurl, -1)=='/'))
+ $apiurl=$apiurl.'/';
+ $secret=trim($_POST['secret'][$id]);
+ $key=trim($_POST['key'][$id]);
//$applicationname = ((x($_POST, 'applicationname')) ? notags(trim($_POST['applicationname'][$id])):'');
- if ($sitename != "" &&
- $apiurl != "" &&
- $secret != "" &&
- $key != "" &&
- !x($_POST['delete'][$id])) {
-
- $sites[] = [
- 'sitename' => $sitename,
- 'apiurl' => $apiurl,
- 'consumersecret' => $secret,
- 'consumerkey' => $key,
- //'applicationname' => $applicationname
- ];
+ if ($sitename!="" &&
+ $apiurl!="" &&
+ $secret!="" &&
+ $key!="" &&
+ !x($_POST['delete'][$id])){
+
+ $sites[] = Array(
+ 'sitename' => $sitename,
+ 'apiurl' => $apiurl,
+ 'consumersecret' => $secret,
+ 'consumerkey' => $key,
+ //'applicationname' => $applicationname
+ );
}
}
- $sites = Config::set('statusnet', 'sites', $sites);
+ $sites = set_config('statusnet','sites', $sites);
+
}
- function statusnet_plugin_admin(&$a, &$o){
-
- $sites = get_config('statusnet','sites');
- $sitesform=array();
- if (is_array($sites)){
- foreach($sites as $id=>$s){
- $sitesform[] = Array(
- 'sitename' => Array("sitename[$id]", "Site name", $s['sitename'], ""),
- 'apiurl' => Array("apiurl[$id]", "Api url", $s['apiurl'], t("Base API Path \x28remember the trailing /\x29") ),
- 'secret' => Array("secret[$id]", "Secret", $s['consumersecret'], ""),
- 'key' => Array("key[$id]", "Key", $s['consumerkey'], ""),
+ function statusnet_addon_admin(App $a, &$o)
+ {
+ $sites = Config::get('statusnet', 'sites');
+ $sitesform = [];
+ if (is_array($sites)) {
+ foreach ($sites as $id => $s) {
+ $sitesform[] = [
+ 'sitename' => ["sitename[$id]", "Site name", $s['sitename'], ""],
+ 'apiurl' => ["apiurl[$id]", "Api url", $s['apiurl'], L10n::t("Base API Path \x28remember the trailing /\x29")],
+ 'secret' => ["secret[$id]", "Secret", $s['consumersecret'], ""],
+ 'key' => ["key[$id]", "Key", $s['consumerkey'], ""],
//'applicationname' => Array("applicationname[$id]", "Application name", $s['applicationname'], ""),
- 'delete' => ["delete[$id]", "Delete", False, "Check to delete this preset"],
- ];
+ 'delete' => Array("delete[$id]", "Delete", False , "Check to delete this preset"),
+ );
}
}
/* empty form to add new site */
$id++;
- $sitesform[] = Array(
- 'sitename' => Array("sitename[$id]", t("Site name"), "", ""),
- 'apiurl' => Array("apiurl[$id]", "Api url", "", t("Base API Path \x28remember the trailing /\x29") ),
- 'secret' => Array("secret[$id]", t("Consumer Secret"), "", ""),
- 'key' => Array("key[$id]", t("Consumer Key"), "", ""),
- //'applicationname' => Array("applicationname[$id]", t("Application name"), "", ""),
- );
-
- $t = get_markup_template( "admin.tpl", "addon/statusnet/" );
- $o = replace_macros($t, array(
- '$submit' => t('Save Settings'),
+ $sitesform[] = [
+ 'sitename' => ["sitename[$id]", L10n::t("Site name"), "", ""],
+ 'apiurl' => ["apiurl[$id]", "Api url", "", L10n::t("Base API Path \x28remember the trailing /\x29")],
+ 'secret' => ["secret[$id]", L10n::t("Consumer Secret"), "", ""],
+ 'key' => ["key[$id]", L10n::t("Consumer Key"), "", ""],
+ //'applicationname' => Array("applicationname[$id]", L10n::t("Application name"), "", ""),
+ ];
+
+ $t = get_markup_template("admin.tpl", "addon/statusnet/");
+ $o = replace_macros($t, [
+ '$submit' => L10n::t('Save Settings'),
'$sites' => $sitesform,
- ]);
+ ));
}
-function statusnet_prepare_body(App $a, &$b)
-{
- if ($b["item"]["network"] != NETWORK_STATUSNET) {
- return;
- }
+function statusnet_prepare_body(&$a,&$b) {
+ if ($b["item"]["network"] != NETWORK_STATUSNET)
+ return;
- if ($b["preview"]) {
- $max_char = PConfig::get(local_user(), 'statusnet', 'max_char');
- if (intval($max_char) == 0) {
+ if ($b["preview"]) {
+ $max_char = get_pconfig(local_user(),'statusnet','max_char');
+ if (intval($max_char) == 0)
$max_char = 140;
- }
- require_once("include/plaintext.php");
- $item = $b["item"];
- $item["plink"] = $a->get_baseurl()."/display/".$a->user["nickname"]."/".$item["parent"];
+ $item = $b["item"];
+ $item["plink"] = $a->get_baseurl() . "/display/" . $a->user["nickname"] . "/" . $item["parent"];
$r = q("SELECT `item`.`author-link`, `item`.`uri`, `contact`.`nick` AS contact_nick
FROM `item` INNER JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
$nick = preg_replace("=https?://(.*)/(.*)=ism", "$2", $orig_post["author-link"]);
- $nickname = "@[url=" . $orig_post["author-link"] . "]" . $nick . "[/url]";
- $nicknameplain = "@" . $nick;
+ $nickname = "@[url=".$orig_post["author-link"]."]".$nick."[/url]";
+ $nicknameplain = "@".$nick;
- if ((strpos($item["body"], $nickname) === false) && (strpos($item["body"], $nicknameplain) === false)) {
- $item["body"] = $nickname . " " . $item["body"];
- }
- }
+ if ((strpos($item["body"], $nickname) === false) && (strpos($item["body"], $nicknameplain) === false))
+ $item["body"] = $nickname." ".$item["body"];
+ }
+ $msgarr = BBCode::toPlaintext($item, $max_char, true, 7);
+ $msg = $msgarr["text"];
- if (isset($msgarr["url"]) && ($msgarr["type"] != "photo")) {
- $msg .= " " . $msgarr["url"];
- }
+ $msgarr = plaintext($a, $item, $max_char, true, 7);
+ $msg = $msgarr["text"];
- if (isset($msgarr["image"])) {
- $msg .= " " . $msgarr["image"];
- }
+ if (isset($msgarr["url"]) && ($msgarr["type"] != "photo"))
+ $msg .= " ".$msgarr["url"];
- $b['html'] = nl2br(htmlspecialchars($msg));
- }
+ if (isset($msgarr["image"]))
+ $msg .= " ".$msgarr["image"];
+
+ $b['html'] = nl2br(htmlspecialchars($msg));
+ }
}
-function statusnet_cron(App $a, $b)
-{
- $last = Config::get('statusnet', 'last_poll');
+function statusnet_cron($a,$b) {
+ $last = get_config('statusnet','last_poll');
- $poll_interval = intval(Config::get('statusnet', 'poll_interval'));
- if (!$poll_interval) {
+ $poll_interval = intval(get_config('statusnet','poll_interval'));
+ if(! $poll_interval)
$poll_interval = STATUSNET_DEFAULT_POLL_INTERVAL;
- }
- if ($last) {
+ if($last) {
$next = $last + ($poll_interval * 60);
- if ($next > time()) {
+ if($next > time()) {
logger('statusnet: poll intervall not reached');
return;
}
}
}
- $abandon_days = intval(Config::get('system', 'account_abandon_days'));
- if ($abandon_days < 1) {
+ $abandon_days = intval(get_config('system','account_abandon_days'));
+ if ($abandon_days < 1)
$abandon_days = 0;
- }
- $abandon_limit = date("Y-m-d H:i:s", time() - $abandon_days * 86400);
+ $abandon_limit = date(DateTimeFormat::MYSQL, time() - $abandon_days * 86400);
$r = q("SELECT * FROM `pconfig` WHERE `cat` = 'statusnet' AND `k` = 'import' AND `v` ORDER BY RAND()");
- if (count($r)) {
- foreach ($r as $rr) {
+ if(count($r)) {
+ foreach($r as $rr) {
if ($abandon_days != 0) {
$user = q("SELECT `login_date` FROM `user` WHERE uid=%d AND `login_date` >= '%s'", $rr['uid'], $abandon_limit);
if (!count($user)) {
);
} else {
// update profile photos once every two weeks as we have no notification of when they change.
-
- //$update_photo = (($r[0]['avatar-date'] < datetime_convert('','','now -2 days')) ? true : false);
- $update_photo = ($r[0]['avatar-date'] < datetime_convert('','','now -12 hours'));
+ //$update_photo = (($r[0]['avatar-date'] < DateTimeFormat::convert('now -2 days', '', '', )) ? true : false);
+ $update_photo = ($r[0]['avatar-date'] < DateTimeFormat::utc('now -12 hours'));
// check that we have all the photos, this has been known to fail on occasion
- if ((!$r[0]['photo']) || (!$r[0]['thumb']) || (!$r[0]['micro']) || ($update_photo)) {
- logger("statusnet_fetch_contact: Updating contact " . $contact->screen_name, LOGGER_DEBUG);
- $photos = Photo::importProfilePhoto($contact->profile_image_url, $uid, $r[0]['id']);
+ if((!$r[0]['photo']) || (!$r[0]['thumb']) || (!$r[0]['micro']) || ($update_photo)) {
+
+ logger("statusnet_fetch_contact: Updating contact ".$contact->screen_name, LOGGER_DEBUG);
+
+ require_once("Photo.php");
+
+ $photos = import_profile_photo($contact->profile_image_url, $uid, $r[0]['id']);
q("UPDATE `contact` SET `photo` = '%s',
`thumb` = '%s',
}
}
- return $r[0]["id"];
+ return($r[0]["id"]);
}
-function statusnet_fetchuser(App $a, $uid, $screen_name = "", $user_id = "")
-{
- $ckey = PConfig::get($uid, 'statusnet', 'consumerkey');
- $csecret = PConfig::get($uid, 'statusnet', 'consumersecret');
- $api = PConfig::get($uid, 'statusnet', 'baseapi');
- $otoken = PConfig::get($uid, 'statusnet', 'oauthtoken');
- $osecret = PConfig::get($uid, 'statusnet', 'oauthsecret');
+function statusnet_fetchuser($a, $uid, $screen_name = "", $user_id = "") {
+ $ckey = get_pconfig($uid, 'statusnet', 'consumerkey');
+ $csecret = get_pconfig($uid, 'statusnet', 'consumersecret');
+ $api = get_pconfig($uid, 'statusnet', 'baseapi');
+ $otoken = get_pconfig($uid, 'statusnet', 'oauthtoken');
+ $osecret = get_pconfig($uid, 'statusnet', 'oauthsecret');
- require_once("addon/statusnet/codebird.php");
+ require_once __DIR__ . DIRECTORY_SEPARATOR . 'library' . DIRECTORY_SEPARATOR . 'codebirdsn.php';
- $cb = \Codebird\Codebird::getInstance();
+ $cb = \CodebirdSN\CodebirdSN::getInstance();
$cb->setConsumerKey($ckey, $csecret);
$cb->setToken($otoken, $osecret);
$postarray['body'] = $converted["body"];
$postarray['tag'] = $converted["tags"];
- $postarray['created'] = datetime_convert('UTC','UTC',$content->created_at);
- $postarray['edited'] = datetime_convert('UTC','UTC',$content->created_at);
+ $postarray['created'] = DateTimeFormat::utc($content->created_at);
+ $postarray['edited'] = DateTimeFormat::utc($content->created_at);
- if (is_string($content->place->name)) {
+ if (is_string($content->place->name))
$postarray["location"] = $content->place->name;
- }
- if (is_string($content->place->full_name)) {
+ if (is_string($content->place->full_name))
$postarray["location"] = $content->place->full_name;
- }
- if (is_array($content->geo->coordinates)) {
- $postarray["coord"] = $content->geo->coordinates[0] . " " . $content->geo->coordinates[1];
- }
+ if (is_array($content->geo->coordinates))
+ $postarray["coord"] = $content->geo->coordinates[0]." ".$content->geo->coordinates[1];
- if (is_array($content->coordinates->coordinates)) {
- $postarray["coord"] = $content->coordinates->coordinates[1] . " " . $content->coordinates->coordinates[0];
- }
+ if (is_array($content->coordinates->coordinates))
+ $postarray["coord"] = $content->coordinates->coordinates[1]." ".$content->coordinates->coordinates[0];
- logger("statusnet_createpost: end", LOGGER_DEBUG);
+ /*if (is_object($post->retweeted_status)) {
+ $postarray['body'] = html2bbcode($post->retweeted_status->statusnet_html);
+
+ $converted = statusnet_convertmsg($a, $postarray['body'], false);
+ $postarray['body'] = $converted["body"];
+ $postarray['tag'] = $converted["tags"];
+
+ statusnet_fetch_contact($uid, $post->retweeted_status->user, false);
- return $postarray;
+ // Let retweets look like wall-to-wall posts
+ $postarray['author-name'] = $post->retweeted_status->user->name;
+ $postarray['author-link'] = $post->retweeted_status->user->statusnet_profile_url;
+ $postarray['author-avatar'] = $post->retweeted_status->user->profile_image_url;
+ }*/
+ logger("statusnet_createpost: end", LOGGER_DEBUG);
+ return($postarray);
}
-function statusnet_checknotification(App $a, $uid, $own_url, $top_item, $postarray)
-{
+function statusnet_checknotification($a, $uid, $own_url, $top_item, $postarray) {
+
// This function necer worked and need cleanup
+
$user = q("SELECT * FROM `contact` WHERE `uid` = %d AND `self` LIMIT 1",
intval($uid)
- );
+ );
- if (!count($user)) {
+ if(!count($user))
return;
- }
// Is it me?
- if (link_compare($user[0]["url"], $postarray['author-link'])) {
+ if (link_compare($user[0]["url"], $postarray['author-link']))
return;
- }
$own_user = q("SELECT * FROM `contact` WHERE `uid` = %d AND `alias` = '%s' LIMIT 1",
intval($uid),
$conv_parent = $conv['parent'];
- notification([
- 'type' => NOTIFY_COMMENT,
+ notification(array(
+ 'type' => NOTIFY_COMMENT,
'notify_flags' => $user[0]['notify-flags'],
- 'language' => $user[0]['language'],
- 'to_name' => $user[0]['username'],
- 'to_email' => $user[0]['email'],
- 'uid' => $user[0]['uid'],
- 'item' => $postarray,
- 'link' => $a->get_baseurl().'/display/'.urlencode(get_item_guid($top_item)),
- 'source_name' => $postarray['author-name'],
- 'source_link' => $postarray['author-link'],
+ 'language' => $user[0]['language'],
+ 'to_name' => $user[0]['username'],
+ 'to_email' => $user[0]['email'],
+ 'uid' => $user[0]['uid'],
+ 'item' => $postarray,
+ 'link' => $a->get_baseurl() . '/display/' . urlencode(Item::getGuidById($top_item)),
+ 'source_name' => $postarray['author-name'],
+ 'source_link' => $postarray['author-link'],
'source_photo' => $postarray['author-avatar'],
- 'verb' => ACTIVITY_POST,
- 'otype' => 'item',
- 'parent' => $conv_parent,
- ]);
+ 'verb' => ACTIVITY_POST,
+ 'otype' => 'item',
+ 'parent' => $conv_parent,
+ ));
// only send one notification
break;
// "create_user" is deactivated, since currently you cannot add users manually by now
$create_user = true;
- logger("statusnet_fetchhometimeline: Fetching for user " . $uid, LOGGER_DEBUG);
+ logger("statusnet_fetchhometimeline: Fetching for user ".$uid, LOGGER_DEBUG);
- require_once('library/twitteroauth.php');
- require_once('include/items.php');
+ require_once 'include/items.php';
- $connection = new StatusNetOAuth($api, $ckey, $csecret, $otoken, $osecret);
+ $connection = new StatusNetOAuth($api, $ckey,$csecret,$otoken,$osecret);
$own_contact = statusnet_fetch_own_contact($a, $uid);
} else {
$postarray = statusnet_createpost($a, $uid, $post, $self, $create_user, true);
- if (trim($postarray['body']) == "") {
+ if (trim($postarray['body']) == "")
continue;
- }
- $item = item_store($postarray);
+ $item = Item::insert($postarray);
$postarray["id"] = $item;
- logger('statusnet_fetchhometimeline: User ' . $self["nick"] . ' posted home timeline item ' . $item);
+ logger('statusnet_fetchhometimeline: User '.$self["nick"].' posted home timeline item '.$item);
- if ($item && !function_exists("check_item_notification")) {
+ if ($item && !function_exists("check_item_notification"))
statusnet_checknotification($a, $uid, $nick, $item, $postarray);
- }
}
+
}
}
- PConfig::set($uid, 'statusnet', 'lasthometimelineid', $lastid);
+ set_pconfig($uid, 'statusnet', 'lasthometimelineid', $lastid);
}
// Fetching mentions
$conversations[$post->statusnet_conversation_id] = $post->statusnet_conversation_id;
}
} else {
- if (trim($postarray['body']) == "") {
+ if (trim($postarray['body']) != "") {
continue;
- }
- $item = item_store($postarray);
- $postarray["id"] = $item;
+ $item = Item::insert($postarray);
+ $postarray["id"] = $item;
- logger('statusnet_fetchhometimeline: User ' . $self["nick"] . ' posted mention timeline item ' . $item);
+ logger('statusnet_fetchhometimeline: User '.$self["nick"].' posted mention timeline item '.$item);
- if ($item && function_exists("check_item_notification")) {
- check_item_notification($item, $uid, NOTIFY_TAGSELF);
+ if ($item && function_exists("check_item_notification"))
+ check_item_notification($item, $uid, NOTIFY_TAGSELF);
}
}
}
}
- PConfig::set($uid, 'statusnet', 'lastmentionid', $lastid);
+ set_pconfig($uid, 'statusnet', 'lastmentionid', $lastid);
}
-function statusnet_complete_conversation(App $a, $uid, $self, $create_user, $nick, $conversation)
-{
- $ckey = PConfig::get($uid, 'statusnet', 'consumerkey');
- $csecret = PConfig::get($uid, 'statusnet', 'consumersecret');
- $api = PConfig::get($uid, 'statusnet', 'baseapi');
- $otoken = PConfig::get($uid, 'statusnet', 'oauthtoken');
- $osecret = PConfig::get($uid, 'statusnet', 'oauthsecret');
- $own_url = PConfig::get($uid, 'statusnet', 'own_url');
+function statusnet_complete_conversation($a, $uid, $self, $create_user, $nick, $conversation) {
+ $ckey = get_pconfig($uid, 'statusnet', 'consumerkey');
+ $csecret = get_pconfig($uid, 'statusnet', 'consumersecret');
+ $api = get_pconfig($uid, 'statusnet', 'baseapi');
+ $otoken = get_pconfig($uid, 'statusnet', 'oauthtoken');
+ $osecret = get_pconfig($uid, 'statusnet', 'oauthsecret');
+ $own_url = get_pconfig($uid, 'statusnet', 'own_url');
- require_once('library/twitteroauth.php');
-
- $connection = new StatusNetOAuth($api, $ckey,$csecret,$otoken,$osecret);
+ $connection = new StatusNetOAuth($api, $ckey, $csecret, $otoken, $osecret);
$parameters["count"] = 200;
if (is_array($items)) {
$posts = array_reverse($items);
- foreach($posts AS $post) {
+ foreach ($posts as $post) {
$postarray = statusnet_createpost($a, $uid, $post, $self, false, false);
- if (trim($postarray['body']) == "") {
+ if (trim($postarray['body']) == "")
continue;
- }
- //print_r($postarray);
- $item = item_store($postarray);
+ $item = Item::insert($postarray);
$postarray["id"] = $item;
- logger('statusnet_complete_conversation: User ' . $self["nick"] . ' posted home timeline item ' . $item);
+ logger('statusnet_complete_conversation: User '.$self["nick"].' posted home timeline item '.$item);
- if ($item && !function_exists("check_item_notification")) {
+ if ($item && !function_exists("check_item_notification"))
statusnet_checknotification($a, $uid, $nick, $item, $postarray);
- }
}
}
}
- function statusnet_convertmsg($a, $body, $no_tags = false) {
-
- require_once("include/oembed.php");
- require_once("include/items.php");
- require_once("include/network.php");
+ function statusnet_convertmsg(App $a, $body, $no_tags = false)
+ {
+ require_once "include/items.php";
- $body = preg_replace("=\[url\=https?://([0-9]*).([0-9]*).([0-9]*).([0-9]*)/([0-9]*)\](.*?)\[\/url\]=ism", "$1.$2.$3.$4/$5", $body);
+ $body = preg_replace("=\[url\=https?://([0-9]*).([0-9]*).([0-9]*).([0-9]*)/([0-9]*)\](.*?)\[\/url\]=ism","$1.$2.$3.$4/$5",$body);
$URLSearchString = "^\[\]";
- $links = preg_match_all("/[^!#@]\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism", $body, $matches, PREG_SET_ORDER);
+ $links = preg_match_all("/[^!#@]\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism", $body,$matches,PREG_SET_ORDER);
$footer = "";
$footerurl = "";
if ($links) {
foreach ($matches AS $match) {
- $search = "[url=" . $match[1] . "]" . $match[2] . "[/url]";
+ $search = "[url=".$match[1]."]".$match[2]."[/url]";
- logger("statusnet_convertmsg: expanding url " . $match[1], LOGGER_DEBUG);
+ logger("statusnet_convertmsg: expanding url ".$match[1], LOGGER_DEBUG);
- $expanded_url = original_url($match[1]);
+ $expanded_url = Network::finalUrl($match[1]);
- logger("statusnet_convertmsg: fetching data for " . $expanded_url, LOGGER_DEBUG);
+ logger("statusnet_convertmsg: fetching data for ".$expanded_url, LOGGER_DEBUG);
- $oembed_data = OEmbed::fetchURL($expanded_url, true);
+ $oembed_data = oembed_fetch_url($expanded_url, true);
logger("statusnet_convertmsg: fetching data: done", LOGGER_DEBUG);
//$body = str_replace($search, "[video]".$expanded_url."[/video]", $body);
$type = $oembed_data->type;
$footerurl = $expanded_url;
- $footerlink = "[url=" . $expanded_url . "]" . $expanded_url . "[/url]";
+ $footerlink = "[url=".$expanded_url."]".$expanded_url."[/url]";
$body = str_replace($search, $footerlink, $body);
- } elseif (($oembed_data->type == "photo") && isset($oembed_data->url) && !$dontincludemedia)
- $body = str_replace($search, "[url=".$expanded_url."][img]".$oembed_data->url."[/img][/url]", $body);
- elseif ($oembed_data->type != "link")
- $body = str_replace($search, "[url=".$expanded_url."]".$expanded_url."[/url]", $body);
- else {
- $img_str = fetch_url($expanded_url, true, $redirects, 4);
+ } elseif (($oembed_data->type == "photo") && isset($oembed_data->url) && !$dontincludemedia) {
+ $body = str_replace($search, "[url=" . $expanded_url . "][img]" . $oembed_data->url . "[/img][/url]", $body);
+ } elseif ($oembed_data->type != "link") {
+ $body = str_replace($search, "[url=" . $expanded_url . "]" . $expanded_url . "[/url]", $body);
+ } else {
+ $img_str = Network::fetchUrl($expanded_url, true, $redirects, 4);
$tempfile = tempnam(get_temppath(), "cache");
file_put_contents($tempfile, $img_str);
'language' => $rr['language'],
'to_name' => $rr['username'],
'to_email' => $rr['email'],
- 'source_name' => t('Administrator'),
+ 'source_name' => L10n::t('Administrator'),
'source_link' => $a->get_baseurl(),
'source_photo' => $a->get_baseurl() . '/images/person-80.jpg',
- ]);
+ ));
q("update user set expire_notification_sent = '%s' where uid = %d",
- dbesc(datetime_convert()),
+ dbesc(DateTimeFormat::utcNow()),
intval($rr['uid'])
);
}
// What's next? Now that we have an Access Token and Secret, we can make an API call.
- PConfig::set(local_user(), "tumblr", "oauth_token", $access_token['oauth_token']);
- PConfig::set(local_user(), "tumblr", "oauth_token_secret", $access_token['oauth_token_secret']);
+ set_pconfig(local_user(), "tumblr", "oauth_token", $access_token['oauth_token']);
+ set_pconfig(local_user(), "tumblr", "oauth_token_secret", $access_token['oauth_token_secret']);
- $o = t("You are now authenticated to tumblr.");
- $o .= '<br /><a href="'.$a->get_baseurl().'/settings/connectors">'.t("return to the connector page").'</a>';
+ $o = L10n::t("You are now authenticated to tumblr.");
+ $o .= '<br /><a href="'.$a->get_baseurl().'/settings/connectors">'.L10n::t("return to the connector page").'</a>';
return($o);
}
if(! local_user())
return;
- $tmbl_post = PConfig::get(local_user(),'tumblr','post');
+ $tmbl_post = get_pconfig(local_user(),'tumblr','post');
if(intval($tmbl_post) == 1) {
- $tmbl_defpost = PConfig::get(local_user(),'tumblr','post_by_default');
+ $tmbl_defpost = get_pconfig(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" /> '
- . t('Post to Tumblr') . '</div>';
+ . L10n::t('Post to Tumblr') . '</div>';
}
}
$userinfo = $tum_oauth->get('user/info');
- $blogs = [];
+ $blogs = array();
- $s .= '<label id="tumblr-page-label" for="tumblr-page">' . t('Post to page:') . '</label>';
+ $s .= '<label id="tumblr-page-label" for="tumblr-page">' . L10n::t('Post to page:') . '</label>';
$s .= '<select name="tumblr_page" id="tumblr-page">';
foreach($userinfo->response->user->blogs as $blog) {
- $blogurl = substr(str_replace(["http://", "https://"], ["", ""], $blog->url), 0, -1);
+ $blogurl = substr(str_replace(array("http://", "https://"), array("", ""), $blog->url), 0, -1);
if ($page == $blogurl)
$s .= "<option value='".$blogurl."' selected>".$blogurl."</option>";
else
$tags = implode(',',$tag_arr);
$title = trim($b['title']);
- require_once('include/plaintext.php');
- $siteinfo = get_attached_data($b["body"]);
+ $siteinfo = BBCode::getAttachedData($b["body"]);
- $params = [
+ $params = array(
'state' => 'published',
'tags' => $tags,
'tweet' => 'off',
"<p>".$params['caption']."</p>";
if (trim($params['caption']) == "")
- $params['caption'] = bbcode("[quote]".$siteinfo["description"]."[/quote]", false, false, 4);
+ $params['caption'] = BBCode::convert("[quote]" . $siteinfo["description"] . "[/quote]", false, 4);
- $consumer_key = Config::get('tumblr','consumer_key');
- $consumer_secret = Config::get('tumblr','consumer_secret');
+ $consumer_key = get_config('tumblr','consumer_key');
+ $consumer_secret = get_config('tumblr','consumer_secret');
$tum_oauth = new TumblrOAuth($consumer_key, $consumer_secret, $oauth_token, $oauth_token_secret);
define('TWITTER_DEFAULT_POLL_INTERVAL', 5); // given in minutes
-function twitter_install()
-{
+function twitter_install() {
// we need some hooks, for the configuration and for sending tweets
- register_hook('connector_settings', 'addon/twitter/twitter.php', 'twitter_settings');
- register_hook('connector_settings_post', 'addon/twitter/twitter.php', 'twitter_settings_post');
- register_hook('post_local', 'addon/twitter/twitter.php', 'twitter_post_local');
- register_hook('notifier_normal', 'addon/twitter/twitter.php', 'twitter_post_hook');
- register_hook('jot_networks', 'addon/twitter/twitter.php', 'twitter_jot_nets');
- register_hook('cron', 'addon/twitter/twitter.php', 'twitter_cron');
- register_hook('queue_predeliver', 'addon/twitter/twitter.php', 'twitter_queue_hook');
- register_hook('follow', 'addon/twitter/twitter.php', 'twitter_follow');
- register_hook('expire', 'addon/twitter/twitter.php', 'twitter_expire');
- register_hook('prepare_body', 'addon/twitter/twitter.php', 'twitter_prepare_body');
- register_hook('check_item_notification','addon/twitter/twitter.php', 'twitter_check_item_notification');
+ Addon::registerHook('connector_settings', 'addon/twitter/twitter.php', 'twitter_settings');
+ Addon::registerHook('connector_settings_post', 'addon/twitter/twitter.php', 'twitter_settings_post');
+ Addon::registerHook('post_local', 'addon/twitter/twitter.php', 'twitter_post_local');
+ Addon::registerHook('notifier_normal', 'addon/twitter/twitter.php', 'twitter_post_hook');
+ Addon::registerHook('jot_networks', 'addon/twitter/twitter.php', 'twitter_jot_nets');
+ Addon::registerHook('cron', 'addon/twitter/twitter.php', 'twitter_cron');
+ Addon::registerHook('queue_predeliver', 'addon/twitter/twitter.php', 'twitter_queue_hook');
+ Addon::registerHook('follow', 'addon/twitter/twitter.php', 'twitter_follow');
+ Addon::registerHook('expire', 'addon/twitter/twitter.php', 'twitter_expire');
+ Addon::registerHook('prepare_body', 'addon/twitter/twitter.php', 'twitter_prepare_body');
+ Addon::registerHook('check_item_notification', 'addon/twitter/twitter.php', 'twitter_check_item_notification');
logger("installed twitter");
}
-
- function twitter_uninstall() {
- unregister_hook('connector_settings', 'addon/twitter/twitter.php', 'twitter_settings');
- unregister_hook('connector_settings_post', 'addon/twitter/twitter.php', 'twitter_settings_post');
- unregister_hook('post_local', 'addon/twitter/twitter.php', 'twitter_post_local');
- unregister_hook('notifier_normal', 'addon/twitter/twitter.php', 'twitter_post_hook');
- unregister_hook('jot_networks', 'addon/twitter/twitter.php', 'twitter_jot_nets');
- unregister_hook('cron', 'addon/twitter/twitter.php', 'twitter_cron');
- unregister_hook('queue_predeliver', 'addon/twitter/twitter.php', 'twitter_queue_hook');
- unregister_hook('follow', 'addon/twitter/twitter.php', 'twitter_follow');
- unregister_hook('expire', 'addon/twitter/twitter.php', 'twitter_expire');
- unregister_hook('prepare_body', 'addon/twitter/twitter.php', 'twitter_prepare_body');
- unregister_hook('check_item_notification','addon/twitter/twitter.php', 'twitter_check_item_notification');
+ function twitter_uninstall()
+ {
+ Addon::unregisterHook('connector_settings', 'addon/twitter/twitter.php', 'twitter_settings');
+ Addon::unregisterHook('connector_settings_post', 'addon/twitter/twitter.php', 'twitter_settings_post');
+ Addon::unregisterHook('post_local', 'addon/twitter/twitter.php', 'twitter_post_local');
+ Addon::unregisterHook('notifier_normal', 'addon/twitter/twitter.php', 'twitter_post_hook');
+ Addon::unregisterHook('jot_networks', 'addon/twitter/twitter.php', 'twitter_jot_nets');
+ Addon::unregisterHook('cron', 'addon/twitter/twitter.php', 'twitter_cron');
+ Addon::unregisterHook('queue_predeliver', 'addon/twitter/twitter.php', 'twitter_queue_hook');
+ Addon::unregisterHook('follow', 'addon/twitter/twitter.php', 'twitter_follow');
+ Addon::unregisterHook('expire', 'addon/twitter/twitter.php', 'twitter_expire');
+ Addon::unregisterHook('prepare_body', 'addon/twitter/twitter.php', 'twitter_prepare_body');
+ Addon::unregisterHook('check_item_notification', 'addon/twitter/twitter.php', 'twitter_check_item_notification');
// old setting - remove only
- unregister_hook('post_local_end', 'addon/twitter/twitter.php', 'twitter_post_hook');
- unregister_hook('plugin_settings', 'addon/twitter/twitter.php', 'twitter_settings');
- unregister_hook('plugin_settings_post', 'addon/twitter/twitter.php', 'twitter_settings_post');
-
+ Addon::unregisterHook('post_local_end', 'addon/twitter/twitter.php', 'twitter_post_hook');
+ Addon::unregisterHook('addon_settings', 'addon/twitter/twitter.php', 'twitter_settings');
+ Addon::unregisterHook('addon_settings_post', 'addon/twitter/twitter.php', 'twitter_settings_post');
}
-function twitter_check_item_notification(App $a, &$notification_data)
-{
- $own_id = PConfig::get($notification_data["uid"], 'twitter', 'own_id');
+function twitter_check_item_notification($a, &$notification_data) {
+ $own_id = get_pconfig($notification_data["uid"], 'twitter', 'own_id');
$own_user = q("SELECT `url` FROM `contact` WHERE `uid` = %d AND `alias` = '%s' LIMIT 1",
intval($notification_data["uid"]),
FROM `contact` WHERE `uid` = %d AND `nick` = '%s'",
intval($uid),
dbesc($nickname));
- if (count($r)) {
+ if (count($r))
$contact["contact"] = $r[0];
- }
}
-function twitter_jot_nets(App $a, &$b)
-{
- if (!local_user()) {
+function twitter_jot_nets(&$a,&$b) {
+ if(! local_user())
return;
- }
- $tw_post = PConfig::get(local_user(), 'twitter', 'post');
- if (intval($tw_post) == 1) {
- $tw_defpost = PConfig::get(local_user(), 'twitter', 'post_by_default');
+ $tw_post = get_pconfig(local_user(),'twitter','post');
+ if(intval($tw_post) == 1) {
+ $tw_defpost = get_pconfig(local_user(),'twitter','post_by_default');
$selected = ((intval($tw_defpost) == 1) ? ' checked="checked" ' : '');
$b .= '<div class="profile-jot-net"><input type="checkbox" name="twitter_enable"' . $selected . ' value="1" /> '
- . t('Post to Twitter') . '</div>';
+ . L10n::t('Post to Twitter') . '</div>';
}
}
-function twitter_settings_post(App $a, $post)
-{
- if (!local_user()) {
+function twitter_settings_post ($a,$post) {
+ if(! local_user())
return;
- }
// don't check twitter settings if twitter submit button is not clicked
- if (!x($_POST,'twitter-submit'))
+ if (empty($_POST['twitter-disconnect']) && empty($_POST['twitter-submit'])) {
return;
- }
- if (isset($_POST['twitter-disconnect'])) {
- /***
+ if (!empty($_POST['twitter-disconnect'])) {
+ /* * *
* if the twitter-disconnect checkbox is set, clear the OAuth key/secret pair
* from the user configuration
*/
- PConfig::delete(local_user(), 'twitter', 'consumerkey');
- PConfig::delete(local_user(), 'twitter', 'consumersecret');
- PConfig::delete(local_user(), 'twitter', 'oauthtoken');
- PConfig::delete(local_user(), 'twitter', 'oauthsecret');
- PConfig::delete(local_user(), 'twitter', 'post');
- PConfig::delete(local_user(), 'twitter', 'post_by_default');
- PConfig::delete(local_user(), 'twitter', 'lastid');
- PConfig::delete(local_user(), 'twitter', 'mirror_posts');
- PConfig::delete(local_user(), 'twitter', 'import');
- PConfig::delete(local_user(), 'twitter', 'create_user');
- PConfig::delete(local_user(), 'twitter', 'own_id');
+ del_pconfig(local_user(), 'twitter', 'consumerkey');
+ del_pconfig(local_user(), 'twitter', 'consumersecret');
+ del_pconfig(local_user(), 'twitter', 'oauthtoken');
+ del_pconfig(local_user(), 'twitter', 'oauthsecret');
+ del_pconfig(local_user(), 'twitter', 'post');
+ del_pconfig(local_user(), 'twitter', 'post_by_default');
+ del_pconfig(local_user(), 'twitter', 'lastid');
+ del_pconfig(local_user(), 'twitter', 'mirror_posts');
+ del_pconfig(local_user(), 'twitter', 'import');
+ del_pconfig(local_user(), 'twitter', 'create_user');
+ del_pconfig(local_user(), 'twitter', 'own_id');
} else {
- if (isset($_POST['twitter-pin'])) {
- // if the user supplied us with a PIN from Twitter, let the magic of OAuth happen
- logger('got a Twitter PIN');
- require_once('library/twitteroauth.php');
- $ckey = get_config('twitter', 'consumerkey');
- $csecret = get_config('twitter', 'consumersecret');
- // the token and secret for which the PIN was generated were hidden in the settings
- // form as token and token2, we need a new connection to Twitter using these token
- // and secret to request a Access Token with the PIN
- $connection = new TwitterOAuth($ckey, $csecret, $_POST['twitter-token'], $_POST['twitter-token2']);
- $token = $connection->getAccessToken( $_POST['twitter-pin'] );
- // ok, now that we have the Access Token, save them in the user config
- set_pconfig(local_user(),'twitter', 'oauthtoken', $token['oauth_token']);
- set_pconfig(local_user(),'twitter', 'oauthsecret', $token['oauth_token_secret']);
- set_pconfig(local_user(),'twitter', 'post', 1);
- // reload the Addon Settings page, if we don't do it see Bug #42
- goaway($a->get_baseurl().'/settings/connectors');
- } else {
- // if no PIN is supplied in the POST variables, the user has changed the setting
- // to post a tweet for every new __public__ posting to the wall
- set_pconfig(local_user(),'twitter','post',intval($_POST['twitter-enable']));
- set_pconfig(local_user(),'twitter','post_by_default',intval($_POST['twitter-default']));
- set_pconfig(local_user(), 'twitter', 'mirror_posts', intval($_POST['twitter-mirror']));
- set_pconfig(local_user(), 'twitter', 'import', intval($_POST['twitter-import']));
- set_pconfig(local_user(), 'twitter', 'create_user', intval($_POST['twitter-create_user']));
-
- if (!intval($_POST['twitter-mirror']))
- del_pconfig(local_user(),'twitter','lastid');
-
- info(t('Twitter settings updated.') . EOL);
- }}
+ if (isset($_POST['twitter-pin'])) {
+ // if the user supplied us with a PIN from Twitter, let the magic of OAuth happen
+ logger('got a Twitter PIN');
+ $ckey = Config::get('twitter', 'consumerkey');
+ $csecret = Config::get('twitter', 'consumersecret');
+ // the token and secret for which the PIN was generated were hidden in the settings
+ // form as token and token2, we need a new connection to Twitter using these token
+ // and secret to request a Access Token with the PIN
+ try {
+ if (empty($_POST['twitter-pin'])) {
+ throw new Exception(L10n::t('You submitted an empty PIN, please Sign In with Twitter again to get a new one.'));
+ }
+
+ $connection = new TwitterOAuth($ckey, $csecret, $_POST['twitter-token'], $_POST['twitter-token2']);
+ $token = $connection->oauth("oauth/access_token", ["oauth_verifier" => $_POST['twitter-pin']]);
+ // ok, now that we have the Access Token, save them in the user config
+ PConfig::set(local_user(), 'twitter', 'oauthtoken', $token['oauth_token']);
+ PConfig::set(local_user(), 'twitter', 'oauthsecret', $token['oauth_token_secret']);
+ PConfig::set(local_user(), 'twitter', 'post', 1);
+ } catch(Exception $e) {
+ info($e->getMessage());
+ }
+ // reload the Addon Settings page, if we don't do it see Bug #42
+ goaway('settings/connectors');
+ } else {
+ // if no PIN is supplied in the POST variables, the user has changed the setting
+ // to post a tweet for every new __public__ posting to the wall
+ PConfig::set(local_user(), 'twitter', 'post', intval($_POST['twitter-enable']));
+ PConfig::set(local_user(), 'twitter', 'post_by_default', intval($_POST['twitter-default']));
+ PConfig::set(local_user(), 'twitter', 'mirror_posts', intval($_POST['twitter-mirror']));
+ PConfig::set(local_user(), 'twitter', 'import', intval($_POST['twitter-import']));
+ PConfig::set(local_user(), 'twitter', 'create_user', intval($_POST['twitter-create_user']));
+
+ if (!intval($_POST['twitter-mirror'])) {
+ PConfig::delete(local_user(), 'twitter', 'lastid');
+ }
+
+ info(L10n::t('Twitter settings updated.') . EOL);
+ }
+ }
}
-
-function twitter_settings(App $a, &$s)
-{
- if (!local_user()) {
+function twitter_settings(&$a,&$s) {
+ if(! local_user())
return;
- }
$a->page['htmlhead'] .= '<link rel="stylesheet" type="text/css" href="' . $a->get_baseurl() . '/addon/twitter/twitter.css' . '" media="all" />' . "\r\n";
- /* * *
+ /***
* 1) Check that we have global consumer key & secret
* 2) If no OAuthtoken & stuff is present, generate button to get some
- * 3) Checkbox for "Send public notices (280 chars only)
+ * 3) Checkbox for "Send public notices (140 chars only)
*/
- $ckey = get_config('twitter', 'consumerkey' );
- $csecret = get_config('twitter', 'consumersecret' );
- $otoken = get_pconfig(local_user(), 'twitter', 'oauthtoken' );
- $osecret = get_pconfig(local_user(), 'twitter', 'oauthsecret' );
- $enabled = get_pconfig(local_user(), 'twitter', 'post');
- $checked = (($enabled) ? ' checked="checked" ' : '');
- $defenabled = get_pconfig(local_user(),'twitter','post_by_default');
- $defchecked = (($defenabled) ? ' checked="checked" ' : '');
- $mirrorenabled = get_pconfig(local_user(),'twitter','mirror_posts');
- $mirrorchecked = (($mirrorenabled) ? ' checked="checked" ' : '');
- $importenabled = get_pconfig(local_user(),'twitter','import');
- $importchecked = (($importenabled) ? ' checked="checked" ' : '');
- $create_userenabled = get_pconfig(local_user(),'twitter','create_user');
- $create_userchecked = (($create_userenabled) ? ' checked="checked" ' : '');
+ $ckey = Config::get('twitter', 'consumerkey');
+ $csecret = Config::get('twitter', 'consumersecret');
+ $otoken = PConfig::get(local_user(), 'twitter', 'oauthtoken');
+ $osecret = PConfig::get(local_user(), 'twitter', 'oauthsecret');
+
+ $enabled = intval(PConfig::get(local_user(), 'twitter', 'post'));
+ $defenabled = intval(PConfig::get(local_user(), 'twitter', 'post_by_default'));
+ $mirrorenabled = intval(PConfig::get(local_user(), 'twitter', 'mirror_posts'));
+ $importenabled = intval(PConfig::get(local_user(), 'twitter', 'import'));
+ $create_userenabled = intval(PConfig::get(local_user(), 'twitter', 'create_user'));
$css = (($enabled) ? '' : '-disabled');
* which the user can request a PIN to connect the account to a
* account at Twitter.
*/
- require_once('library/twitteroauth.php');
$connection = new TwitterOAuth($ckey, $csecret);
- $request_token = $connection->getRequestToken();
- $token = $request_token['oauth_token'];
- /***
- * make some nice form
- */
- $s .= '<p>'. t('At this Friendica instance the Twitter plugin was enabled but you have not yet connected your account to your Twitter account. To do so click the button below to get a PIN from Twitter which you have to copy into the input box below and submit the form. Only your <strong>public</strong> posts will be posted to Twitter.') .'</p>';
- $s .= '<a href="'.$connection->getAuthorizeURL($token).'" target="_twitter"><img src="addon/twitter/lighter.png" alt="'.t('Log in with Twitter').'"></a>';
+ $result = $connection->oauth('oauth/request_token', ['oauth_callback' => 'oob']);
+
+ $s .= '<p>' . L10n::t('At this Friendica instance the Twitter addon was enabled but you have not yet connected your account to your Twitter account. To do so click the button below to get a PIN from Twitter which you have to copy into the input box below and submit the form. Only your <strong>public</strong> posts will be posted to Twitter.') . '</p>';
+ $s .= '<a href="' . $connection->url('oauth/authorize', ['oauth_token' => $result['oauth_token']]) . '" target="_twitter"><img src="addon/twitter/lighter.png" alt="' . L10n::t('Log in with Twitter') . '"></a>';
$s .= '<div id="twitter-pin-wrapper">';
- $s .= '<label id="twitter-pin-label" for="twitter-pin">'. t('Copy the PIN from Twitter here') .'</label>';
+ $s .= '<label id="twitter-pin-label" for="twitter-pin">' . L10n::t('Copy the PIN from Twitter here') . '</label>';
$s .= '<input id="twitter-pin" type="text" name="twitter-pin" />';
- $s .= '<input id="twitter-token" type="hidden" name="twitter-token" value="'.$token.'" />';
- $s .= '<input id="twitter-token2" type="hidden" name="twitter-token2" value="'.$request_token['oauth_token_secret'].'" />';
- $s .= '</div><div class="clear"></div>';
- $s .= '<div class="settings-submit-wrapper" ><input type="submit" name="twitter-submit" class="settings-submit" value="' . t('Save Settings') . '" /></div>';
+ $s .= '<input id="twitter-token" type="hidden" name="twitter-token" value="' . $result['oauth_token'] . '" />';
+ $s .= '<input id="twitter-token2" type="hidden" name="twitter-token2" value="' . $result['oauth_token_secret'] . '" />';
+ $s .= '</div><div class="clear"></div>';
+ $s .= '<div class="settings-submit-wrapper" ><input type="submit" name="twitter-submit" class="settings-submit" value="' . L10n::t('Save Settings') . '" /></div>';
} else {
- /* * *
+ /***
* we have an OAuth key / secret pair for the user
* so let's give a chance to disable the postings to Twitter
*/
- require_once('library/twitteroauth.php');
- $connection = new TwitterOAuth($ckey,$csecret,$otoken,$osecret);
+ $connection = new TwitterOAuth($ckey, $csecret, $otoken, $osecret);
$details = $connection->get('account/verify_credentials');
+ $s .= '<div id="twitter-info" ><img id="twitter-avatar" src="'.$details->profile_image_url.'" /><p id="twitter-info-block">'. t('Currently connected to: ') .'<a href="https://twitter.com/'.$details->screen_name.'" target="_twitter">'.$details->screen_name.'</a><br /><em>'.$details->description.'</em></p></div>';
+ $s .= '<p>'. t('If enabled all your <strong>public</strong> postings can be posted to the associated Twitter account. You can choose to do so by default (here) or for every posting separately in the posting options when writing the entry.') .'</p>';
+ if ($a->user['hidewall']) {
+ $s .= '<p>'. t('<strong>Note</strong>: Due your privacy settings (<em>Hide your profile details from unknown viewers?</em>) the link potentially included in public postings relayed to Twitter will lead the visitor to a blank page informing the visitor that the access to your profile has been restricted.') .'</p>';
+ }
+ $s .= '<div id="twitter-enable-wrapper">';
+ $s .= '<label id="twitter-enable-label" for="twitter-checkbox">'. t('Allow posting to Twitter'). '</label>';
+ $s .= '<input id="twitter-checkbox" type="checkbox" name="twitter-enable" value="1" ' . $checked . '/>';
+ $s .= '<div class="clear"></div>';
+ $s .= '<label id="twitter-default-label" for="twitter-default">'. t('Send public postings to Twitter by default') .'</label>';
+ $s .= '<input id="twitter-default" type="checkbox" name="twitter-default" value="1" ' . $defchecked . '/>';
+ $s .= '<div class="clear"></div>';
- $s .= '<label id="twitter-mirror-label" for="twitter-mirror">'.t('Mirror all posts from twitter that are no replies').'</label>';
- $s .= '<input id="twitter-mirror" type="checkbox" name="twitter-mirror" value="1" '. $mirrorchecked . '/>';
+ $field_checkbox = get_markup_template('field_checkbox.tpl');
+
+ $s .= '<div id="twitter-info" >
+ <p>' . L10n::t('Currently connected to: ') . '<a href="https://twitter.com/' . $details->screen_name . '" target="_twitter">' . $details->screen_name . '</a>
+ <button type="submit" name="twitter-disconnect" value="1">' . L10n::t('Disconnect') . '</button>
+ </p>
+ <p id="twitter-info-block">
+ <a href="https://twitter.com/' . $details->screen_name . '" target="_twitter"><img id="twitter-avatar" src="' . $details->profile_image_url . '" /></a>
+ <em>' . $details->description . '</em>
+ </p>
+ </div>';
$s .= '<div class="clear"></div>';
+ $s .= '</div>';
- $s .= '<label id="twitter-import-label" for="twitter-import">'.t('Import the remote timeline').'</label>';
- $s .= '<input id="twitter-import" type="checkbox" name="twitter-import" value="1" '. $importchecked . '/>';
- $s .= '<div class="clear"></div>';
+ $s .= replace_macros($field_checkbox, [
+ '$field' => ['twitter-enable', L10n::t('Allow posting to Twitter'), $enabled, L10n::t('If enabled all your <strong>public</strong> postings can be posted to the associated Twitter account. You can choose to do so by default (here) or for every posting separately in the posting options when writing the entry.')]
+ ]);
+ if ($a->user['hidewall']) {
+ $s .= '<p>' . L10n::t('<strong>Note</strong>: Due to your privacy settings (<em>Hide your profile details from unknown viewers?</em>) the link potentially included in public postings relayed to Twitter will lead the visitor to a blank page informing the visitor that the access to your profile has been restricted.') . '</p>';
+ }
+ $s .= replace_macros($field_checkbox, [
+ '$field' => ['twitter-default', L10n::t('Send public postings to Twitter by default'), $defenabled, '']
+ ]);
+ $s .= replace_macros($field_checkbox, [
+ '$field' => ['twitter-mirror', L10n::t('Mirror all posts from twitter that are no replies'), $mirrorenabled, '']
+ ]);
+ $s .= replace_macros($field_checkbox, [
+ '$field' => ['twitter-import', L10n::t('Import the remote timeline'), $importenabled, '']
+ ]);
+ $s .= replace_macros($field_checkbox, [
+ '$field' => ['twitter-create_user', L10n::t('Automatically create contacts'), $create_userenabled, '']
+ ]);
+ $s .= '<label id="twitter-create_user-label" for="twitter-create_user">'.t('Automatically create contacts').'</label>';
+ $s .= '<input id="twitter-create_user" type="checkbox" name="twitter-create_user" value="1" '. $create_userchecked . '/>';
$s .= '<div class="clear"></div>';
-
- $s .= '<div id="twitter-disconnect-wrapper">';
- $s .= '<label id="twitter-disconnect-label" for="twitter-disconnect">'. t('Clear OAuth configuration') .'</label>';
- $s .= '<input id="twitter-disconnect" type="checkbox" name="twitter-disconnect" value="1" />';
- $s .= '</div><div class="clear"></div>';
- $s .= '<div class="settings-submit-wrapper" ><input type="submit" name="twitter-submit" class="settings-submit" value="' . t('Save Settings') . '" /></div>';
+ $s .= '<div class="settings-submit-wrapper" ><input type="submit" name="twitter-submit" class="settings-submit" value="' . L10n::t('Save Settings') . '" /></div>';
}
}
$s .= '</div><div class="clear"></div>';
$b['postopts'] .= 'twitter';
}
-function twitter_action(App $a, $uid, $pid, $action)
-{
- $ckey = Config::get('twitter', 'consumerkey');
- $csecret = Config::get('twitter', 'consumersecret');
- $otoken = PConfig::get($uid, 'twitter', 'oauthtoken');
- $osecret = PConfig::get($uid, 'twitter', 'oauthsecret');
+function twitter_action($a, $uid, $pid, $action) {
- $ckey = get_config('twitter', 'consumerkey');
- $csecret = get_config('twitter', 'consumersecret');
- $otoken = get_pconfig($uid, 'twitter', 'oauthtoken');
- $osecret = get_pconfig($uid, 'twitter', 'oauthsecret');
-
- require_once("addon/twitter/codebird.php");
-
- $cb = \Codebird\Codebird::getInstance();
- $cb->setConsumerKey($ckey, $csecret);
- $cb->setToken($otoken, $osecret);
+ $connection = new TwitterOAuth($ckey, $csecret, $otoken, $osecret);
- $post = ['id' => $pid];
+ $post = array('id' => $pid);
- logger("twitter_action '" . $action . "' ID: " . $pid . " data: " . print_r($post, true), LOGGER_DATA);
+ logger("twitter_action '".$action."' ID: ".$pid." data: " . print_r($post, true), LOGGER_DATA);
switch ($action) {
case "delete":
- // To-Do: $result = $cb->statuses_destroy($post);
+ // To-Do: $result = $connection->post('statuses/destroy', $post);
break;
case "like":
- $result = $cb->favorites_create($post);
+ $result = $connection->post('favorites/create', $post);
break;
case "unlike":
- $result = $cb->favorites_destroy($post);
+ $result = $connection->post('favorites/destroy', $post);
break;
}
- logger("twitter_action '" . $action . "' send, result: " . print_r($result, true), LOGGER_DEBUG);
+ logger("twitter_action '".$action."' send, result: " . print_r($result, true), LOGGER_DEBUG);
}
- function twitter_post_hook(&$a,&$b) {
-
- /**
- * Post to Twitter
- */
-
- require_once("include/network.php");
-
- if (!get_pconfig($b["uid"],'twitter','import')) {
- if($b['deleted'] || $b['private'] || ($b['created'] !== $b['edited']))
- return;
+ function twitter_post_hook(App $a, &$b)
+ {
+ // Post to Twitter
+ if (!PConfig::get($b["uid"], 'twitter', 'import')
+ && ($b['deleted'] || $b['private'] || ($b['created'] !== $b['edited']))) {
+ return;
}
- if ($b['parent'] != $b['id']) {
- logger("twitter_post_hook: parameter " . print_r($b, true), LOGGER_DATA);
+ if($b['parent'] != $b['id']) {
+ logger("twitter_post_hook: parameter ".print_r($b, true), LOGGER_DATA);
// Looking if its a reply to a twitter post
- if ((substr($b["parent-uri"], 0, 9) != "twitter::") && (substr($b["extid"], 0, 9) != "twitter::") && (substr($b["thr-parent"], 0, 9) != "twitter::")) {
- logger("twitter_post_hook: no twitter post ".$b["parent"]);
+ if ((substr($b["parent-uri"], 0, 9) != "twitter::")
+ && (substr($b["extid"], 0, 9) != "twitter::")
+ && (substr($b["thr-parent"], 0, 9) != "twitter::"))
+ {
+ logger("twitter_post_hook: no twitter post " . $b["parent"]);
return;
}
} else {
$iscomment = false;
- if ($b['private'] || !strstr($b['postopts'], 'twitter')) {
+ if($b['private'] || !strstr($b['postopts'],'twitter'))
return;
- }
-
- // Dont't post if the post doesn't belong to us.
- // This is a check for forum postings
- $self = dba::selectFirst('contact', ['id'], ['uid' => $b['uid'], 'self' => true]);
- if ($b['contact-id'] != $self['id']) {
- return;
- }
}
- if (($b['verb'] == ACTIVITY_POST) && $b['deleted']) {
+ if (($b['verb'] == ACTIVITY_POST) && $b['deleted'])
twitter_action($a, $b["uid"], substr($orig_post["uri"], 9), "delete");
- }
- if($b['verb'] == ACTIVITY_LIKE) {
- logger("twitter_post_hook: parameter 2 ".substr($b["thr-parent"], 9), LOGGER_DEBUG);
- if ($b['deleted'])
+ if ($b['verb'] == ACTIVITY_LIKE) {
+ logger("twitter_post_hook: parameter 2 " . substr($b["thr-parent"], 9), LOGGER_DEBUG);
+ if ($b['deleted']) {
twitter_action($a, $b["uid"], substr($b["thr-parent"], 9), "unlike");
- else
+ } else {
twitter_action($a, $b["uid"], substr($b["thr-parent"], 9), "like");
+ }
+
return;
}
logger('twitter: we have customer key and oauth stuff, going to send.', LOGGER_DEBUG);
// If it's a repeated message from twitter then do a native retweet and exit
- if (twitter_is_retweet($a, $b['uid'], $b['body'])) {
+ if (twitter_is_retweet($a, $b['uid'], $b['body']))
return;
- }
- require_once('library/twitteroauth.php');
- require_once('include/bbcode.php');
- $tweet = new TwitterOAuth($ckey,$csecret,$otoken,$osecret);
+ $connection = new TwitterOAuth($ckey, $csecret, $otoken, $osecret);
- $max_char = 140;
- require_once("include/plaintext.php");
- $msgarr = plaintext($a, $b, $max_char, true, 8);
+ $max_char = 280;
+ $msgarr = BBCode::toPlaintext($b, $max_char, true, 8);
$msg = $msgarr["text"];
- if (($msg == "") && isset($msgarr["title"]))
- $msg = shortenmsg($msgarr["title"], $max_char - 50);
+ if (($msg == "") && isset($msgarr["title"])) {
+ $msg = Plaintext::shorten($msgarr["title"], $max_char - 50);
+ }
$image = "";
- if (isset($msgarr["url"]) && ($msgarr["type"] != "photo")) {
- $msg .= "\n" . $msgarr["url"];
- }
+ if (isset($msgarr["url"]) && ($msgarr["type"] != "photo"))
+ $msg .= "\n".$msgarr["url"];
- if (isset($msgarr["image"]) && ($msgarr["type"] != "video")) {
+ if (isset($msgarr["image"]) && ($msgarr["type"] != "video"))
$image = $msgarr["image"];
- }
// and now tweet it :-)
- if(strlen($msg) && ($image != "")) {
- $img_str = fetch_url($image);
-
- $tempfile = tempnam(get_temppath(), "cache");
- file_put_contents($tempfile, $img_str);
+ if (strlen($msg) && ($image != "")) {
+ $connection = new TwitterOAuth($ckey, $csecret, $otoken, $osecret);
+ $media = $connection->upload('media/upload', ['media' => $image]);
- // Twitter had changed something so that the old library doesn't work anymore
- // so we are using a new library for twitter
- // To-Do:
- // Switching completely to this library with all functions
- require_once("addon/twitter/codebird.php");
-
- $cb = \Codebird\Codebird::getInstance();
- $cb->setConsumerKey($ckey, $csecret);
- $cb->setToken($otoken, $osecret);
-
- $post = array('status' => $msg, 'media[]' => $tempfile);
+ $post = ['status' => $msg, 'media_ids' => $media->media_id_string];
- if ($iscomment) {
+ if ($iscomment)
$post["in_reply_to_status_id"] = substr($orig_post["uri"], 9);
- }
- $result = $cb->statuses_updateWithMedia($post);
- unlink($tempfile);
+ $result = $connection->post('statuses/update', $post);
logger('twitter_post_with_media send, result: ' . print_r($result, true), LOGGER_DEBUG);
logger('Send to Twitter failed: "' . print_r($result->errors, true) . '"');
// Workaround: Remove the picture link so that the post can be reposted without it
- $msg .= " " . $image;
+ $msg .= " ".$image;
$image = "";
} elseif ($iscomment) {
- logger('twitter_post: Update extid '.$result->id_str." for post id ".$b['id']);
- q("UPDATE `item` SET `extid` = '%s', `body` = '%s' WHERE `id` = %d",
- dbesc("twitter::".$result->id_str),
- dbesc($result->text),
- intval($b['id'])
- );
+ logger('twitter_post: Update extid ' . $result->id_str . " for post id " . $b['id']);
+ Item::update(['extid' => "twitter::" . $result->id_str, 'body' => $result->text], ['id' => $b['id']]);
}
}
- if(strlen($msg) && ($image == "")) {
+ if (strlen($msg) && ($image == "")) {
+ // -----------------
+ $max_char = 280;
+ $msgarr = BBCode::toPlaintext($b, $max_char, true, 8);
+ $msg = $msgarr["text"];
+
+ if (($msg == "") && isset($msgarr["title"])) {
+ $msg = Plaintext::shorten($msgarr["title"], $max_char - 50);
+ }
+
+ if (isset($msgarr["url"])) {
+ $msg .= "\n" . $msgarr["url"];
+ }
+ // -----------------
$url = 'statuses/update';
- $post = ['status' => $msg, 'weighted_character_count' => 'true'];
+ $post = array('status' => $msg);
- if ($iscomment) {
+ if ($iscomment)
$post["in_reply_to_status_id"] = substr($orig_post["uri"], 9);
- }
- $result = $tweet->post($url, $post);
+ $result = $connection->post($url, $post);
logger('twitter_post send, result: ' . print_r($result, true), LOGGER_DEBUG);
- if ($result->source) {
- Config::set("twitter", "application_name", strip_tags($result->source));
- }
+ if ($result->source)
+ set_config("twitter", "application_name", strip_tags($result->source));
if ($result->errors) {
logger('Send to Twitter failed: "' . print_r($result->errors, true) . '"');
$r = q("SELECT `id` FROM `contact` WHERE `uid` = %d AND `self`", intval($b['uid']));
- if (count($r)) {
+ if (count($r))
$a->contact = $r[0]["id"];
- }
- $s = serialize(array('url' => $url, 'item' => $b['id'], 'post' => $post));
- require_once('include/queue_fn.php');
- add_to_queue($a->contact,NETWORK_TWITTER,$s);
- notice(t('Twitter post failed. Queued for retry.').EOL);
+ $s = serialize(['url' => $url, 'item' => $b['id'], 'post' => $post]);
+
+ Queue::add($a->contact, NETWORK_TWITTER, $s);
+ notice(L10n::t('Twitter post failed. Queued for retry.') . EOL);
} elseif ($iscomment) {
- logger('twitter_post: Update extid '.$result->id_str." for post id ".$b['id']);
- q("UPDATE `item` SET `extid` = '%s' WHERE `id` = %d",
- dbesc("twitter::".$result->id_str),
- intval($b['id'])
- );
- //q("UPDATE `item` SET `extid` = '%s', `body` = '%s' WHERE `id` = %d",
- // dbesc("twitter::".$result->id_str),
- // dbesc($result->text),
- // intval($b['id'])
- //);
+ logger('twitter_post: Update extid ' . $result->id_str . " for post id " . $b['id']);
+ Item::update(['extid' => "twitter::" . $result->id_str], ['id' => $b['id']]);
}
}
}
}
- function twitter_plugin_admin_post(&$a){
- $consumerkey = ((x($_POST,'consumerkey')) ? notags(trim($_POST['consumerkey'])) : '');
- $consumersecret = ((x($_POST,'consumersecret')) ? notags(trim($_POST['consumersecret'])): '');
- $applicationname = ((x($_POST, 'applicationname')) ? notags(trim($_POST['applicationname'])):'');
- set_config('twitter','consumerkey',$consumerkey);
- set_config('twitter','consumersecret',$consumersecret);
- //set_config('twitter','application_name',$applicationname);
- info( t('Settings updated.'). EOL );
+ function twitter_addon_admin_post(App $a)
+ {
+ $consumerkey = x($_POST, 'consumerkey') ? notags(trim($_POST['consumerkey'])) : '';
+ $consumersecret = x($_POST, 'consumersecret') ? notags(trim($_POST['consumersecret'])) : '';
+ Config::set('twitter', 'consumerkey', $consumerkey);
+ Config::set('twitter', 'consumersecret', $consumersecret);
+ info(L10n::t('Settings updated.') . EOL);
}
+function twitter_plugin_admin(&$a, &$o){
+ $t = get_markup_template( "admin.tpl", "addon/twitter/" );
- $o = replace_macros($t, array(
- '$submit' => t('Save Settings'),
- // name, label, value, help, [extra values]
- '$consumerkey' => array('consumerkey', t('Consumer key'), get_config('twitter', 'consumerkey' ), ''),
- '$consumersecret' => array('consumersecret', t('Consumer secret'), get_config('twitter', 'consumersecret' ), ''),
- //'$applicationname' => array('applicationname', t('Name of the Twitter Application'), get_config('twitter','application_name'),t('Set this to the exact name you gave the app on twitter.com/apps to avoid mirroring postings from ~friendica back to ~friendica'))
- ));
+ function twitter_addon_admin(App $a, &$o)
+ {
+ $t = get_markup_template("admin.tpl", "addon/twitter/");
+
+ $o = replace_macros($t, [
+ '$submit' => L10n::t('Save Settings'),
+ // name, label, value, help, [extra values]
+ '$consumerkey' => ['consumerkey', L10n::t('Consumer key'), Config::get('twitter', 'consumerkey'), ''],
+ '$consumersecret' => ['consumersecret', L10n::t('Consumer secret'), Config::get('twitter', 'consumersecret'), ''],
+ ]);
}
-function twitter_cron(App $a, $b)
-{
- $last = Config::get('twitter', 'last_poll');
+function twitter_cron($a,$b) {
+ $last = get_config('twitter','last_poll');
- $poll_interval = intval(Config::get('twitter', 'poll_interval'));
- if (!$poll_interval) {
+ $poll_interval = intval(get_config('twitter','poll_interval'));
+ if(! $poll_interval)
$poll_interval = TWITTER_DEFAULT_POLL_INTERVAL;
- }
- if ($last) {
+ if($last) {
$next = $last + ($poll_interval * 60);
- if ($next > time()) {
+ if($next > time()) {
logger('twitter: poll intervall not reached');
return;
}
}
}
- $abandon_days = intval(get_config('system','account_abandon_days'));
- if ($abandon_days < 1)
+ $abandon_days = intval(Config::get('system', 'account_abandon_days'));
+ if ($abandon_days < 1) {
$abandon_days = 0;
+ }
- $abandon_limit = date("Y-m-d H:i:s", time() - $abandon_days * 86400);
+ $abandon_limit = date(DateTimeFormat::MYSQL, time() - $abandon_days * 86400);
$r = q("SELECT * FROM `pconfig` WHERE `cat` = 'twitter' AND `k` = 'import' AND `v` = '1'");
- if (count($r)) {
- foreach ($r as $rr) {
+ if(count($r)) {
+ foreach($r as $rr) {
if ($abandon_days != 0) {
$user = q("SELECT `login_date` FROM `user` WHERE uid=%d AND `login_date` >= '%s'", $rr['uid'], $abandon_limit);
if (!count($user)) {
logger('twitter_expire: expire_end');
}
-function twitter_prepare_body(App $a, &$b)
-{
- if ($b["item"]["network"] != NETWORK_TWITTER) {
+function twitter_prepare_body(&$a,&$b) {
+ if ($b["item"]["network"] != NETWORK_TWITTER)
return;
- }
if ($b["preview"]) {
- $max_char = 140;
- require_once("include/plaintext.php");
+ $max_char = 280;
$item = $b["item"];
- $item["plink"] = $a->get_baseurl() . "/display/" . $a->user["nickname"] . "/" . $item["parent"];
+ $item["plink"] = $a->get_baseurl()."/display/".$a->user["nickname"]."/".$item["parent"];
$r = q("SELECT `author-link` FROM item WHERE item.uri = '%s' AND item.uid = %d LIMIT 1",
dbesc($item["thr-parent"]),
$orig_post = $r[0];
$nicknameplain = preg_replace("=https?://twitter.com/(.*)=ism", "$1", $orig_post["author-link"]);
- $nickname = "@[url=" . $orig_post["author-link"] . "]" . $nicknameplain . "[/url]";
- $nicknameplain = "@" . $nicknameplain;
+ $nickname = "@[url=".$orig_post["author-link"]."]".$nicknameplain."[/url]";
+ $nicknameplain = "@".$nicknameplain;
- if ((strpos($item["body"], $nickname) === false) && (strpos($item["body"], $nicknameplain) === false)) {
- $item["body"] = $nickname . " " . $item["body"];
- }
+ if ((strpos($item["body"], $nickname) === false) && (strpos($item["body"], $nicknameplain) === false))
+ $item["body"] = $nickname." ".$item["body"];
}
-
- $msgarr = plaintext($a, $item, $max_char, true, 8);
+ $msgarr = BBCode::toPlaintext($item, $max_char, true, 8);
$msg = $msgarr["text"];
- if (isset($msgarr["url"]) && ($msgarr["type"] != "photo")) {
- $msg .= " " . $msgarr["url"];
- }
+ if (isset($msgarr["url"]) && ($msgarr["type"] != "photo"))
+ $msg .= " ".$msgarr["url"];
- if (isset($msgarr["image"])) {
- $msg .= " " . $msgarr["image"];
- }
+ if (isset($msgarr["image"]))
+ $msg .= " ".$msgarr["image"];
- $b['html'] = nl2br(htmlspecialchars($msg));
+ $b['html'] = nl2br(htmlspecialchars($msg));
}
}
if (is_object($post->retweeted_status)) {
// We don't support nested shares, so we mustn't show quotes as shares on retweets
- $item = twitter_createpost($a, $uid, $post->retweeted_status, ['id' => 0], false, false, true);
+ $item = twitter_createpost($a, $uid, $post->retweeted_status, array('id' => 0), false, false, true);
- $datarray['body'] = "\n".share_header($item['author-name'], $item['author-link'], $item['author-avatar'], "",
- $item['created'], $item['plink']);
+ $datarray['body'] = "\n" . share_header(
+ $item['author-name'],
+ $item['author-link'],
+ $item['author-avatar'],
+ "",
+ $item['created'],
+ $item['plink']
+ );
- $datarray['body'] .= $item['body'] . '[/share]';
+ $datarray['body'] .= $item['body'].'[/share]';
} else {
- $item = twitter_createpost($a, $uid, $post, ['id' => 0], false, false, false);
+ $item = twitter_createpost($a, $uid, $post, array('id' => 0), false, false, false);
$datarray['body'] = $item['body'];
}
$has_picture = false;
- require_once 'mod/item.php';
- require_once 'include/items.php';
- require_once 'mod/share.php';
+ require_once('mod/item.php');
+ require_once('include/items.php');
+ require_once('mod/share.php');
- require_once('library/twitteroauth.php');
- $connection = new TwitterOAuth($ckey,$csecret,$otoken,$osecret);
+ $connection = new TwitterOAuth($ckey, $csecret, $otoken, $osecret);
- $parameters = ["exclude_replies" => true, "trim_user" => false, "contributor_details" => true, "include_rts" => true, "tweet_mode" => "extended"];
+ $parameters = array("exclude_replies" => true, "trim_user" => false, "contributor_details" => true, "include_rts" => true, "tweet_mode" => "extended");
$first_time = ($lastid == "");
$posts = array_reverse($items);
if (count($posts)) {
- foreach ($posts as $post) {
- if ($post->id_str > $lastid) {
- $lastid = $post->id_str;
- PConfig::set($uid, 'twitter', 'lastid', $lastid);
- }
+ foreach ($posts as $post) {
+ if ($post->id_str > $lastid) {
+ $lastid = $post->id_str;
+ set_pconfig($uid, 'twitter', 'lastid', $lastid);
+ }
- if ($first_time) {
- continue;
- }
+ if ($first_time)
+ continue;
- if (!stristr($post->source, $application_name)) {
- $_SESSION["authenticated"] = true;
- $_SESSION["uid"] = $uid;
+ if (!stristr($post->source, $application_name)) {
- $_REQUEST = twitter_do_mirrorpost($a, $uid, $post);
+ $_SESSION["authenticated"] = true;
+ $_SESSION["uid"] = $uid;
- logger('twitter: posting for user ' . $uid);
+ $_REQUEST = twitter_do_mirrorpost($a, $uid, $post);
- item_post($a);
- }
+ logger('twitter: posting for user '.$uid);
+
+ item_post($a);
}
+ }
}
- PConfig::set($uid, 'twitter', 'lastid', $lastid);
+ set_pconfig($uid, 'twitter', 'lastid', $lastid);
}
-function twitter_queue_hook(App $a, &$b)
-{
+function twitter_queue_hook(&$a,&$b) {
+
$qi = q("SELECT * FROM `queue` WHERE `network` = '%s'",
dbesc(NETWORK_TWITTER)
- );
- if (!count($qi)) {
+ );
+ if(! count($qi))
return;
- }
- require_once('include/queue_fn.php');
-
- foreach($qi as $x) {
- if($x['network'] !== NETWORK_TWITTER)
+ foreach ($qi as $x) {
+ if ($x['network'] !== NETWORK_TWITTER) {
continue;
- }
logger('twitter_queue: run');
logger('twitter_queue: post result: ' . print_r($result, true), LOGGER_DEBUG);
- if ($result->errors) {
+ if ($result->errors)
logger('twitter_queue: Send to Twitter failed: "' . print_r($result->errors, true) . '"');
- } else {
+ else {
$success = true;
- remove_queue_item($x['id']);
+ Queue::removeItem($x['id']);
}
- } else {
- logger("twitter_queue: Error getting tokens for user " . $user['uid']);
- }
+ } else
+ logger("twitter_queue: Error getting tokens for user ".$user['uid']);
if (!$success) {
logger('twitter_queue: delayed');
$avatar = twitter_fix_avatar($contact->profile_image_url_https);
- GContact::update(["url" => "https://twitter.com/" . $contact->screen_name,
- "network" => NETWORK_TWITTER, "photo" => $avatar, "hide" => true,
- "name" => $contact->name, "nick" => $contact->screen_name,
- "location" => $contact->location, "about" => $contact->description,
- "addr" => $contact->screen_name . "@twitter.com", "generation" => 2]);
+ update_gcontact(array("url" => "https://twitter.com/".$contact->screen_name,
+ "network" => NETWORK_TWITTER, "photo" => $avatar, "hide" => true,
+ "name" => $contact->name, "nick" => $contact->screen_name,
+ "location" => $contact->location, "about" => $contact->description,
+ "addr" => $contact->screen_name."@twitter.com", "generation" => 2));
$r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `alias` = '%s' LIMIT 1",
- intval($uid), dbesc("twitter::".$contact->id_str));
+ intval($uid),
+ dbesc("twitter::" . $contact->id_str));
- if (!count($r) && !$create_user) {
- return 0;
- }
+ if(!count($r) && !$create_user)
+ return(0);
if (count($r) && ($r[0]["readonly"] || $r[0]["blocked"])) {
- logger("twitter_fetch_contact: Contact '" . $r[0]["nick"] . "' is blocked or readonly.", LOGGER_DEBUG);
- return -1;
+ logger("twitter_fetch_contact: Contact '".$r[0]["nick"]."' is blocked or readonly.", LOGGER_DEBUG);
+ return(-1);
}
- if (!count($r)) {
+ if(!count($r)) {
// create contact record
q("INSERT INTO `contact` (`uid`, `created`, `url`, `nurl`, `addr`, `alias`, `notify`, `poll`,
`name`, `nick`, `photo`, `network`, `rel`, `priority`,
`location`, `about`, `writable`, `blocked`, `readonly`, `pending`)
VALUES (%d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, '%s', '%s', %d, 0, 0, 0)",
intval($uid),
- dbesc(datetime_convert()),
- dbesc("https://twitter.com/".$contact->screen_name),
- dbesc(normalise_link("https://twitter.com/".$contact->screen_name)),
+ dbesc(DateTimeFormat::utcNow()),
+ dbesc("https://twitter.com/" . $contact->screen_name),
+ dbesc(normalise_link("https://twitter.com/" . $contact->screen_name)),
dbesc($contact->screen_name."@twitter.com"),
- dbesc("twitter::" . $contact->id_str),
+ dbesc("twitter::".$contact->id_str),
dbesc(''),
- dbesc("twitter::" . $contact->id_str),
+ dbesc("twitter::".$contact->id_str),
dbesc($contact->name),
dbesc($contact->screen_name),
dbesc($avatar),
}
} else {
// update profile photos once every two weeks as we have no notification of when they change.
-
- //$update_photo = (($r[0]['avatar-date'] < datetime_convert('','','now -2 days')) ? true : false);
- $update_photo = ($r[0]['avatar-date'] < datetime_convert('','','now -12 hours'));
+ //$update_photo = (($r[0]['avatar-date'] < DateTimeFormat::convert('now -2 days', '', '', )) ? true : false);
+ $update_photo = ($r[0]['avatar-date'] < DateTimeFormat::utc('now -12 hours'));
// check that we have all the photos, this has been known to fail on occasion
- if ((!$r[0]['photo']) || (!$r[0]['thumb']) || (!$r[0]['micro']) || ($update_photo)) {
- logger("twitter_fetch_contact: Updating contact " . $contact->screen_name, LOGGER_DEBUG);
- $photos = Photo::importProfilePhoto($avatar, $uid, $r[0]['id'], true);
+ if((! $r[0]['photo']) || (! $r[0]['thumb']) || (! $r[0]['micro']) || ($update_photo)) {
+
+ logger("twitter_fetch_contact: Updating contact ".$contact->screen_name, LOGGER_DEBUG);
+
+ require_once("Photo.php");
+
+ $photos = import_profile_photo($avatar, $uid, $r[0]['id'], true);
if ($photos) {
q("UPDATE `contact` SET `photo` = '%s',
}
}
- return $r[0]["id"];
+ return($r[0]["id"]);
}
- function twitter_fetchuser($a, $uid, $screen_name = "", $user_id = "") {
- $ckey = get_config('twitter', 'consumerkey');
- $csecret = get_config('twitter', 'consumersecret');
- $otoken = get_pconfig($uid, 'twitter', 'oauthtoken');
- $osecret = get_pconfig($uid, 'twitter', 'oauthsecret');
-
- require_once("addon/twitter/codebird.php");
-
- $cb = \Codebird\Codebird::getInstance();
- $cb->setConsumerKey($ckey, $csecret);
- $cb->setToken($otoken, $osecret);
+ function twitter_fetchuser(App $a, $uid, $screen_name = "", $user_id = "")
+ {
+ $ckey = Config::get('twitter', 'consumerkey');
+ $csecret = Config::get('twitter', 'consumersecret');
+ $otoken = PConfig::get($uid, 'twitter', 'oauthtoken');
+ $osecret = PConfig::get($uid, 'twitter', 'oauthsecret');
$r = q("SELECT * FROM `contact` WHERE `self` = 1 AND `uid` = %d LIMIT 1",
intval($uid));
- if (count($r)) {
+ if(count($r)) {
$self = $r[0];
- } else {
+ } else
return;
- }
- $parameters = [];
+ $parameters = array();
- if ($screen_name != "") {
+ if ($screen_name != "")
$parameters["screen_name"] = $screen_name;
- }
- if ($user_id != "") {
+ if ($user_id != "")
$parameters["user_id"] = $user_id;
- }
// Fetching user data
- $user = $cb->users_show($parameters);
+ $connection = new TwitterOAuth($ckey, $csecret, $otoken, $osecret);
+ $user = $connection->get('users/show', $parameters);
- if (!is_object($user)) {
+ if (!is_object($user))
return;
- }
$contact_id = twitter_fetch_contact($uid, $user, true);
$plain = str_replace($url->url, '', $plain);
if ($url->url && $url->expanded_url && $url->display_url) {
-
- $expanded_url = original_url($url->expanded_url);
+ $expanded_url = Network::finalUrl($url->expanded_url);
- $oembed_data = OEmbed::fetchURL($expanded_url);
+ $oembed_data = oembed_fetch_url($expanded_url);
// Quickfix: Workaround for URL with "[" and "]" in it
- if (strpos($expanded_url, "[") || strpos($expanded_url, "]")) {
+ if (strpos($expanded_url, "[") || strpos($expanded_url, "]"))
$expanded_url = $url->url;
- }
- if ($type == "") {
+ if ($type == "")
$type = $oembed_data->type;
- }
if ($oembed_data->type == "video") {
//$body = str_replace($url->url,
//$dontincludemedia = true;
$type = $oembed_data->type;
$footerurl = $expanded_url;
- $footerlink = "[url=" . $expanded_url . "]" . $expanded_url . "[/url]";
+ $footerlink = "[url=".$expanded_url."]".$expanded_url."[/url]";
$body = str_replace($url->url, $footerlink, $body);
- //} elseif (($oembed_data->type == "photo") AND isset($oembed_data->url) AND !$dontincludemedia) {
+ //} elseif (($oembed_data->type == "photo") AND isset($oembed_data->url) AND !$dontincludemedia) {
} elseif (($oembed_data->type == "photo") && isset($oembed_data->url)) {
- $body = str_replace($url->url, "[url=" . $expanded_url . "][img]" . $oembed_data->url . "[/img][/url]", $body);
+ $body = str_replace($url->url,
+ "[url=".$expanded_url."][img]".$oembed_data->url."[/img][/url]",
+ $body);
//$dontincludemedia = true;
- } elseif ($oembed_data->type != "link")
- $body = str_replace($url->url,
- "[url=".$expanded_url."]".$expanded_url."[/url]",
- $body);
- else {
- $img_str = fetch_url($expanded_url, true, $redirects, 4);
+ } elseif ($oembed_data->type != "link") {
+ $body = str_replace($url->url, "[url=" . $expanded_url . "]" . $expanded_url . "[/url]", $body);
+ } else {
+ $img_str = Network::fetchUrl($expanded_url, true, $redirects, 4);
$tempfile = tempnam(get_temppath(), "cache");
file_put_contents($tempfile, $img_str);
$body .= $footer;
}
- if (($footer == "") && ($picture != "")) {
- $body .= "\n\n[img]" . $picture . "[/img]\n";
- } elseif (($footer == "") && ($picture == "")) {
+ if (($footer == "") && ($picture != ""))
+ $body .= "\n\n[img]".$picture."[/img]\n";
+ elseif (($footer == "") && ($picture == ""))
$body = add_page_info_to_body($body);
-
- if ($no_tags)
- return array("body" => $body, "tags" => "", "plain" => $plain);
-
- $tags_arr = array();
-
- foreach ($item->entities->hashtags AS $hashtag) {
- $url = "#[url=".$a->get_baseurl()."/search?tag=".rawurlencode($hashtag->text)."]".$hashtag->text."[/url]";
- $tags_arr["#".$hashtag->text] = $url;
- $body = str_replace("#".$hashtag->text, $url, $body);
}
+ }
- foreach ($item->entities->user_mentions AS $mention) {
- $url = "@[url=https://twitter.com/".rawurlencode($mention->screen_name)."]".$mention->screen_name."[/url]";
- $tags_arr["@".$mention->screen_name] = $url;
- $body = str_replace("@".$mention->screen_name, $url, $body);
- }
+ // it seems as if the entities aren't always covering all mentions. So the rest will be checked here
+ $tags = get_tags($body);
- // it seems as if the entities aren't always covering all mentions. So the rest will be checked here
- $tags = get_tags($body);
+ if (count($tags)) {
+ foreach ($tags as $tag) {
+ if (strstr(trim($tag), " ")) {
+ continue;
+ }
- if(count($tags)) {
- foreach($tags as $tag) {
- if (strstr(trim($tag), " "))
+ if (strpos($tag, '#') === 0) {
+ if (strpos($tag, '[url=')) {
continue;
- }
- if(strpos($tag,'#') === 0) {
- if(strpos($tag,'[url='))
- continue;
-
- // don't link tags that are already embedded in links
-
- if(preg_match('/\[(.*?)' . preg_quote($tag,'/') . '(.*?)\]/',$body))
- continue;
- if(preg_match('/\[(.*?)\]\((.*?)' . preg_quote($tag,'/') . '(.*?)\)/',$body))
- continue;
+ // don't link tags that are already embedded in links
+ if (preg_match('/\[(.*?)' . preg_quote($tag, '/') . '(.*?)\]/', $body)) {
+ continue;
+ }
+ if (preg_match('/\[(.*?)\]\((.*?)' . preg_quote($tag, '/') . '(.*?)\)/', $body)) {
+ continue;
+ }
- $basetag = str_replace('_',' ',substr($tag,1));
- $url = '#[url='.$a->get_baseurl().'/search?tag='.rawurlencode($basetag).']'.$basetag.'[/url]';
- $body = str_replace($tag,$url,$body);
- $tags_arr["#".$basetag] = $url;
+ $basetag = str_replace('_', ' ', substr($tag, 1));
+ $url = '#[url=' . $a->get_baseurl() . '/search?tag=' . rawurlencode($basetag) . ']' . $basetag . '[/url]';
+ $body = str_replace($tag, $url, $body);
+ $tags_arr["#" . $basetag] = $url;
+ } elseif (strpos($tag, '@') === 0) {
+ if (strpos($tag, '[url=')) {
continue;
- } elseif(strpos($tag,'@') === 0) {
- if(strpos($tag,'[url='))
- continue;
-
- $basetag = substr($tag,1);
- $url = '@[url=https://twitter.com/'.rawurlencode($basetag).']'.$basetag.'[/url]';
- $body = str_replace($tag,$url,$body);
- $tags_arr["@".$basetag] = $url;
}
+
+ $basetag = substr($tag, 1);
+ $url = '@[url=https://twitter.com/' . rawurlencode($basetag) . ']' . $basetag . '[/url]';
+ $body = str_replace($tag, $url, $body);
+ $tags_arr["@" . $basetag] = $url;
}
}
+ }
+ $tags = implode($tags_arr, ",");
- $tags = implode($tags_arr, ",");
-
- }
- return array("body" => $body, "tags" => $tags, "plain" => $plain);
+ return ["body" => $body, "tags" => $tags, "plain" => $plain];
}
/**
* @param object $post Twitter object with the post
* @param array $postarray Array of the item that is about to be posted
*
- * @return $picture string Returns a a single picture string if it isn't a media post
+ * @return $picture string Image URL or empty string
*/
-function twitter_media_entities($post, &$postarray)
-{
+function twitter_media_entities($post, &$postarray) {
+
// There are no media entities? So we quit.
if (!is_array($post->extended_entities->media)) {
return "";
// Don't import our own comments
$r = q("SELECT * FROM `item` WHERE `extid` = '%s' AND `uid` = %d LIMIT 1",
- dbesc($postarray['uri']),
- intval($uid)
- );
+ dbesc($postarray['uri']),
+ intval($uid)
+ );
if (count($r)) {
- logger("Item with extid " . $postarray['uri'] . " found.", LOGGER_DEBUG);
- return [];
+ logger("Item with extid ".$postarray['uri']." found.", LOGGER_DEBUG);
+ return(array());
}
$contactid = 0;
if ($post->in_reply_to_status_id_str != "") {
- $parent = "twitter::" . $post->in_reply_to_status_id_str;
+
+ $parent = "twitter::".$post->in_reply_to_status_id_str;
$r = q("SELECT * FROM `item` WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
- dbesc($parent),
- intval($uid)
- );
+ dbesc($parent),
+ intval($uid)
+ );
if (count($r)) {
$postarray['thr-parent'] = $r[0]["uri"];
$postarray['parent-uri'] = $r[0]["parent-uri"];
$postarray['body'] = $statustext;
- $postarray['body'] .= "\n".share_header($quoted['author-name'], $quoted['author-link'], $quoted['author-avatar'], "",
- $quoted['created'], $quoted['plink']);
+ $postarray['body'] .= "\n" . share_header(
+ $quoted['author-name'],
+ $quoted['author-link'],
+ $quoted['author-avatar'],
+ "",
+ $quoted['created'],
+ $quoted['plink']
+ );
- $postarray['body'] .= $quoted['body'] . '[/share]';
+ $postarray['body'] .= $quoted['body'].'[/share]';
}
- return $postarray;
+ return($postarray);
}
-function twitter_checknotification(App $a, $uid, $own_id, $top_item, $postarray)
-{
- /// TODO: this whole function doesn't seem to work. Needs complete check
+function twitter_checknotification($a, $uid, $own_id, $top_item, $postarray) {
+
+ // this whole function doesn't seem to work. Needs complete check
+
$user = q("SELECT * FROM `contact` WHERE `uid` = %d AND `self` LIMIT 1",
- intval($uid)
- );
+ intval($uid)
+ );
- if (!count($user)) {
+ if(!count($user))
return;
- }
// Is it me?
- if (link_compare($user[0]["url"], $postarray['author-link'])) {
+ if (link_compare($user[0]["url"], $postarray['author-link']))
return;
- }
$own_user = q("SELECT * FROM `contact` WHERE `uid` = %d AND `alias` = '%s' LIMIT 1",
- intval($uid),
- dbesc("twitter::".$own_id)
- );
+ intval($uid),
+ dbesc("twitter::".$own_id)
+ );
- if (!count($own_user)) {
+ if(!count($own_user))
return;
- }
// Is it me from twitter?
- if (link_compare($own_user[0]["url"], $postarray['author-link'])) {
+ if (link_compare($own_user[0]["url"], $postarray['author-link']))
return;
- }
$myconv = q("SELECT `author-link`, `author-avatar`, `parent` FROM `item` WHERE `parent-uri` = '%s' AND `uid` = %d AND `parent` != 0 AND `deleted` = 0",
- dbesc($postarray['parent-uri']),
- intval($uid)
- );
-
- if(count($myconv)) {
+ dbesc($postarray['parent-uri']),
+ intval($uid)
+ );
- if (count($myconv)) {
- foreach ($myconv as $conv) {
+ foreach($myconv as $conv) {
// now if we find a match, it means we're in this conversation
- if (!link_compare($conv['author-link'], $user[0]["url"]) && !link_compare($conv['author-link'], $own_user[0]["url"])) {
+
+ if(!link_compare($conv['author-link'],$user[0]["url"]) && !link_compare($conv['author-link'],$own_user[0]["url"]))
continue;
- }
- require_once 'include/enotify.php';
+ require_once('include/enotify.php');
$conv_parent = $conv['parent'];
- notification([
- 'type' => NOTIFY_COMMENT,
+ notification(array(
+ 'type' => NOTIFY_COMMENT,
'notify_flags' => $user[0]['notify-flags'],
- 'language' => $user[0]['language'],
- 'to_name' => $user[0]['username'],
- 'to_email' => $user[0]['email'],
- 'uid' => $user[0]['uid'],
- 'item' => $postarray,
- 'link' => $a->get_baseurl().'/display/'.urlencode(get_item_guid($top_item)),
- 'source_name' => $postarray['author-name'],
- 'source_link' => $postarray['author-link'],
+ 'language' => $user[0]['language'],
+ 'to_name' => $user[0]['username'],
+ 'to_email' => $user[0]['email'],
+ 'uid' => $user[0]['uid'],
+ 'item' => $postarray,
+ 'link' => $a->get_baseurl() . '/display/' . urlencode(Item::getGuidById($top_item)),
+ 'source_name' => $postarray['author-name'],
+ 'source_link' => $postarray['author-link'],
'source_photo' => $postarray['author-avatar'],
- 'verb' => ACTIVITY_POST,
- 'otype' => 'item',
- 'parent' => $conv_parent,
- ]);
+ 'verb' => ACTIVITY_POST,
+ 'otype' => 'item',
+ 'parent' => $conv_parent,
+ ));
// only send one notification
break;
}
$r = q("SELECT * FROM `item` WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
- dbesc("twitter::".$post->id_str),
- intval($uid)
- );
+ dbesc("twitter::".$post->id_str),
+ intval($uid)
+ );
- if (count($r)) {
+ if (count($r))
break;
- }
$posts[] = $post;
}
foreach ($posts as $post) {
$postarray = twitter_createpost($a, $uid, $post, $self, false, false, false);
- if (trim($postarray['body']) == "")
+ if (trim($postarray['body']) == "") {
continue;
+ }
- $item = item_store($postarray);
+ $item = Item::insert($postarray);
$postarray["id"] = $item;
- logger('twitter_fetchparentpost: User ' . $self["nick"] . ' posted parent timeline item ' . $item);
+ logger('twitter_fetchparentpost: User '.$self["nick"].' posted parent timeline item '.$item);
- if ($item && !function_exists("check_item_notification")) {
+ if ($item && !function_exists("check_item_notification"))
twitter_checknotification($a, $uid, $own_id, $item, $postarray);
- }
}
}
}
-function twitter_fetchhometimeline(App $a, $uid)
-{
- $ckey = Config::get('twitter', 'consumerkey');
- $csecret = Config::get('twitter', 'consumersecret');
- $otoken = PConfig::get($uid, 'twitter', 'oauthtoken');
- $osecret = PConfig::get($uid, 'twitter', 'oauthsecret');
- $create_user = PConfig::get($uid, 'twitter', 'create_user');
- $mirror_posts = PConfig::get($uid, 'twitter', 'mirror_posts');
+function twitter_fetchhometimeline($a, $uid) {
+ $ckey = get_config('twitter', 'consumerkey');
+ $csecret = get_config('twitter', 'consumersecret');
+ $otoken = get_pconfig($uid, 'twitter', 'oauthtoken');
+ $osecret = get_pconfig($uid, 'twitter', 'oauthsecret');
+ $create_user = get_pconfig($uid, 'twitter', 'create_user');
+ $mirror_posts = get_pconfig($uid, 'twitter', 'mirror_posts');
- logger("twitter_fetchhometimeline: Fetching for user " . $uid, LOGGER_DEBUG);
+ logger("twitter_fetchhometimeline: Fetching for user ".$uid, LOGGER_DEBUG);
- $application_name = Config::get('twitter', 'application_name');
+ $application_name = get_config('twitter', 'application_name');
- if ($application_name == "") {
+ if ($application_name == "")
$application_name = $a->get_hostname();
- }
- require_once('library/twitteroauth.php');
- require_once('include/items.php');
+ require_once 'include/items.php';
- $connection = new TwitterOAuth($ckey, $csecret, $otoken, $osecret);
+ $connection = new TwitterOAuth($ckey,$csecret,$otoken,$osecret);
$own_contact = twitter_fetch_own_contact($a, $uid);
$postarray = twitter_createpost($a, $uid, $post, $self, $create_user, true, false);
- if (trim($postarray['body']) == "") {
+ if (trim($postarray['body']) == "")
continue;
- }
- $item = item_store($postarray);
+ $item = Item::insert($postarray);
$postarray["id"] = $item;
- logger('twitter_fetchhometimeline: User ' . $self["nick"] . ' posted home timeline item ' . $item);
+ logger('twitter_fetchhometimeline: User '.$self["nick"].' posted home timeline item '.$item);
- if ($item && !function_exists("check_item_notification")) {
+ if ($item && !function_exists("check_item_notification"))
twitter_checknotification($a, $uid, $own_id, $item, $postarray);
- }
+
}
}
- PConfig::set($uid, 'twitter', 'lasthometimelineid', $lastid);
+ set_pconfig($uid, 'twitter', 'lasthometimelineid', $lastid);
// Fetching mentions
- $lastid = PConfig::get($uid, 'twitter', 'lastmentionid');
+ $lastid = get_pconfig($uid, 'twitter', 'lastmentionid');
$first_time = ($lastid == "");
$postarray = twitter_createpost($a, $uid, $post, $self, false, false, false);
- if (trim($postarray['body']) == "") {
+ if (trim($postarray['body']) == "")
continue;
- }
- $item = item_store($postarray);
+ $item = Item::insert($postarray);
$postarray["id"] = $item;
- if ($item && function_exists("check_item_notification")) {
+ if ($item && function_exists("check_item_notification"))
check_item_notification($item, $uid, NOTIFY_TAGSELF);
- }
- if (!isset($postarray["parent"]) || ($postarray["parent"] == 0)) {
+ if (!isset($postarray["parent"]) || ($postarray["parent"] == 0))
$postarray["parent"] = $item;
- }
- logger('twitter_fetchhometimeline: User ' . $self["nick"] . ' posted mention timeline item ' . $item);
+ logger('twitter_fetchhometimeline: User '.$self["nick"].' posted mention timeline item '.$item);
if ($item == 0) {
$r = q("SELECT * FROM `item` WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
$item = $r[0]['id'];
$parent_id = $r[0]['parent'];
}
- } else
+ } else {
$parent_id = $postarray['parent'];
+ }
if (($item != 0) && !function_exists("check_item_notification")) {
- require_once 'include/enotify.php';
- notification([
+ require_once('include/enotify.php');
+ notification(array(
'type' => NOTIFY_TAGSELF,
'notify_flags' => $u[0]['notify-flags'],
'language' => $u[0]['language'],
$link = "";
preg_match("/link='(.*?)'/ism", $attributes, $matches);
- if ($matches[1] != "") {
+ if ($matches[1] != "")
$link = $matches[1];
- }
preg_match('/link="(.*?)"/ism', $attributes, $matches);
- if ($matches[1] != "") {
+ if ($matches[1] != "")
$link = $matches[1];
- }
$id = preg_replace("=https?://twitter.com/(.*)/status/(.*)=ism", "$2", $link);
- if ($id == $link) {
- return false;
- }
+ if ($id == $link)
+ return(false);
- logger('twitter_is_retweet: Retweeting id ' . $id . ' for user ' . $uid, LOGGER_DEBUG);
+ logger('twitter_is_retweet: Retweeting id '.$id.' for user '.$uid, LOGGER_DEBUG);
- $ckey = Config::get('twitter', 'consumerkey');
- $csecret = Config::get('twitter', 'consumersecret');
- $otoken = PConfig::get($uid, 'twitter', 'oauthtoken');
- $osecret = PConfig::get($uid, 'twitter', 'oauthsecret');
+ $ckey = get_config('twitter', 'consumerkey');
+ $csecret = get_config('twitter', 'consumersecret');
+ $otoken = get_pconfig($uid, 'twitter', 'oauthtoken');
+ $osecret = get_pconfig($uid, 'twitter', 'oauthsecret');
- require_once('library/twitteroauth.php');
- $connection = new TwitterOAuth($ckey,$csecret,$otoken,$osecret);
-
- $result = $connection->post('statuses/retweet/'.$id);
+ $connection = new TwitterOAuth($ckey, $csecret, $otoken, $osecret);
+ $result = $connection->post('statuses/retweet/' . $id);
- logger('twitter_is_retweet: result ' . print_r($result, true), LOGGER_DEBUG);
+ logger('twitter_is_retweet: result '.print_r($result, true), LOGGER_DEBUG);
- return !isset($result->errors);
+ return(!isset($result->errors));
}
+?>
* Description: Add "View Source" link to item context
* Version: 1.0
* Author: Mike Macgirvin <http://macgirvin.com/profile/mike>
- *
+ *
*/
+ use Friendica\Core\Addon;
+ use Friendica\Core\L10n;
function viewsrc_install() {
- register_hook('item_photo_menu', 'addon/viewsrc/viewsrc.php', 'viewsrc_item_photo_menu');
- register_hook('page_end', 'addon/viewsrc/viewsrc.php', 'viewsrc_page_end');
+ Addon::registerHook('item_photo_menu', 'addon/viewsrc/viewsrc.php', 'viewsrc_item_photo_menu');
+ Addon::registerHook('page_end', 'addon/viewsrc/viewsrc.php', 'viewsrc_page_end');
}
$o = '';
/* landingpage to create chatrooms */
- $webrtcurl = Config::get('webrtc','webrtcurl');
+ $webrtcurl = get_config('webrtc','webrtcurl');
/* embedd the landing page in an iframe */
- $o .= '<h2>'.t('Video Chat').'</h2>';
- $o .= '<p>'.t('WebRTC is a video and audio conferencing tool that works with Firefox (version 21 and above) and Chrome/Chromium (version 25 and above). Just create a new chat room and send the link to someone you want to chat with.').'</p>';
+ $o .= '<h2>'.L10n::t('Video Chat').'</h2>';
+ $o .= '<p>'.L10n::t('WebRTC is a video and audio conferencing tool that works with Firefox (version 21 and above) and Chrome/Chromium (version 25 and above). Just create a new chat room and send the link to someone you want to chat with.').'</p>';
if ($webrtcurl == '') {
- $o .= '<p>'.t('Please contact your friendica admin and send a reminder to configure the WebRTC addon.').'</p>';
+ $o .= '<p>'.L10n::t('Please contact your friendica admin and send a reminder to configure the WebRTC addon.').'</p>';
} else {
$o .= '<iframe src="'.$webrtcurl.'" width="600px" height="600px"></iframe>';
}
.allcontact-link { float: right; margin: 0px; }
.contact-block-content { clear:both; }
.contact-block-div { display: block !important; float: left!important; width: 50px!important; height: 50px!important; margin: 2px!important;}
-
+
</style>";
$o .= _abs_url(contact_block());
- $o .= "<a href='".$a->get_baseurl().'/profile/'.$a->profile['nickname']."' target=new>". t('Get added to this list!') ."</a>";
-
+ $o .= "<a href='".$a->get_baseurl().'/profile/'.$a->profile['nickname']."' target=new>". L10n::t('Get added to this list!') ."</a>";
+
return $o;
}
.allcontact-link { float: right; margin: 0px; }
.contact-block-content { clear:both; }
.contact-block-div { display: block !important; float: left!important; width: 50px!important; height: 50px!important; margin: 2px!important;}
-
+
</style>";
$o .= _abs_url(contact_block());
- $o .= "<a href='".$a->get_baseurl().'/profile/'.$a->profile['nickname']."'>". t('Connect on Friendica!') ."</a>";
+ $o .= "<a href='".$a->get_baseurl().'/profile/'.$a->profile['nickname']."'>". L10n::t('Connect on Friendica!') ."</a>";
return $o;
}
dbesc($args[0])
);
$dislikes = $r[0]['c'];
-
-
+
+
require_once("include/conversation.php");
-
+
$o = "";
-
+
# $t = file_get_contents( dirname(__file__). "/widget_like.tpl" );
$t = get_markup_template("widget_like.tpl", "addon/widgets/");
- $o .= replace_macros($t, [
+ $o .= replace_macros($t, array(
'$like' => $likes,
- '$strlike' => sprintf( tt("%d person likes this", "%d people like this", $likes), $likes),
-
+ '$strlike' => L10n::tt("%d person likes this", "%d people like this", $likes),
+
'$dislike' => $dislikes,
- '$strdislike'=> sprintf( tt("%d person doesn't like this", "%d people don't like this", $dislikes), $dislikes),
-
+ '$strdislike'=> L10n::tt("%d person doesn't like this", "%d people don't like this", $dislikes),
+
'$baseurl' => $a->get_baseurl(),
- ]);
-
+ ));
+
return $o;
}
}
}
-
-
+
+
# $t = file_get_contents( dirname(__file__). "/settings.tpl" );
$t = get_markup_template("settings.tpl", "addon/widgets/");
- $o .= replace_macros($t, array(
- '$submit' => t('Generate new key'),
+ $o .= replace_macros($t, [
+ '$submit' => L10n::t('Generate new key'),
'$baseurl' => $a->get_baseurl(),
'$title' => "Widgets",
- '$label' => t('Widgets key'),
+ '$label' => L10n::t('Widgets key'),
'$key' => $key,
- '$widgets_h' => t('Widgets available'),
+ '$widgets_h' => L10n::t('Widgets available'),
'$widgets' => $widgets,
- ]);
-
+ ));
+
}
function widgets_module() {
.htmlspecialchars('"></script>')
."</code>";
-
+
return $o;
- }
-
- }
-
+ }
+ }
+
echo $o;
killme();
}
* Pre-requisite: Windows Phone mobile device (at least WP 7.0)
* Friendica mobile app on Windows Phone
*
- * When plugin is installed, the system calls the plugin
+ * When addon is installed, the system calls the addon
* name_install() function, located in 'addon/name/name.php',
* where 'name' is the name of the addon.
- * If the addon is removed from the configuration list, the
+ * If the addon is removed from the configuration list, the
* system will call the name_uninstall() function.
*
* Version history:
* count only unseen elements which are not type=activity (likes and dislikes not seen as new elements)
*/
-
- function windowsphonepush_install() {
-
- /**
- *
- * Our plugin will attach in three places.
- * The first is within cron - so the push notifications will be
+ use Friendica\App;
+ use Friendica\Content\Text\BBCode;
+ use Friendica\Core\Addon;
+ use Friendica\Core\L10n;
+ use Friendica\Core\PConfig;
+ use Friendica\Model\User;
+
+ function windowsphonepush_install()
+ {
+ /* Our addon will attach in three places.
+ * The first is within cron - so the push notifications will be
* sent every 10 minutes (or whatever is set in crontab).
+ *
*/
+ Addon::registerHook('cron', 'addon/windowsphonepush/windowsphonepush.php', 'windowsphonepush_cron');
- register_hook('cron', 'addon/windowsphonepush/windowsphonepush.php', 'windowsphonepush_cron');
-
- /**
- *
- * Then we'll attach into the plugin settings page, and also the
+ /* Then we'll attach into the addon settings page, and also the
* settings post hook so that we can create and update
- * user preferences. User shall be able to activate the plugin and
+ * user preferences. User shall be able to activate the addon and
* define whether he allows pushing first characters of item text
+ *
*/
-
- register_hook('plugin_settings', 'addon/windowsphonepush/windowsphonepush.php', 'windowsphonepush_settings');
- register_hook('plugin_settings_post', 'addon/windowsphonepush/windowsphonepush.php', 'windowsphonepush_settings_post');
+ Addon::registerHook('addon_settings', 'addon/windowsphonepush/windowsphonepush.php', 'windowsphonepush_settings');
+ Addon::registerHook('addon_settings_post', 'addon/windowsphonepush/windowsphonepush.php', 'windowsphonepush_settings_post');
logger("installed windowsphonepush");
}
-function windowsphonepush_uninstall()
-{
- /* uninstall unregisters any hooks created with register_hook
+
+function windowsphonepush_uninstall() {
+
+ /**
+ *
+ * uninstall unregisters any hooks created with register_hook
* during install. Don't delete data in table `pconfig`.
+ *
*/
-
- unregister_hook('cron', 'addon/windowsphonepush/windowsphonepush.php', 'windowsphonepush_cron');
- unregister_hook('plugin_settings', 'addon/windowsphonepush/windowsphonepush.php', 'windowsphonepush_settings');
- unregister_hook('plugin_settings_post', 'addon/windowsphonepush/windowsphonepush.php', 'windowsphonepush_settings_post');
+ Addon::unregisterHook('cron', 'addon/windowsphonepush/windowsphonepush.php', 'windowsphonepush_cron');
+ Addon::unregisterHook('addon_settings', 'addon/windowsphonepush/windowsphonepush.php', 'windowsphonepush_settings');
+ Addon::unregisterHook('addon_settings_post', 'addon/windowsphonepush/windowsphonepush.php', 'windowsphonepush_settings_post');
logger("removed windowsphonepush");
}
* $post contains the $_POST array.
* We will make sure we've got a valid user account
* and if so set our configuration setting for this person.
+ *
*/
-function windowsphonepush_settings_post($a, $post)
-{
- if (!local_user() || (!x($_POST, 'windowsphonepush-submit'))) {
+function windowsphonepush_settings_post($a,$post) {
+ if(! local_user() || (! x($_POST,'windowsphonepush-submit')))
return;
- }
$enable = intval($_POST['windowsphonepush']);
- PConfig::set(local_user(), 'windowsphonepush', 'enable', $enable);
+ set_pconfig(local_user(),'windowsphonepush','enable',$enable);
- if ($enable) {
- PConfig::set(local_user(), 'windowsphonepush', 'counterunseen', 0);
+ if($enable) {
+ set_pconfig(local_user(),'windowsphonepush','counterunseen', 0);
}
- PConfig::set(local_user(), 'windowsphonepush', 'senditemtext', intval($_POST['windowsphonepush-senditemtext']));
+ set_pconfig(local_user(),'windowsphonepush','senditemtext',intval($_POST['windowsphonepush-senditemtext']));
- info( t('WindowsPhonePush settings updated.') . EOL);
+ info(L10n::t('WindowsPhonePush settings updated.') . EOL);
}
-
- /**
- *
- * Called from the Plugin Setting form.
+ /* Called from the Addon Setting form.
* Add our own settings info to the page.
+ *
*/
-function windowsphonepush_settings(&$a, &$s)
-{
- if (!local_user()) {
+function windowsphonepush_settings(&$a,&$s) {
+
+ if(! local_user())
return;
- }
/* Add our stylesheet to the page so we can make our settings look nice */
$a->page['htmlhead'] .= '<link rel="stylesheet" type="text/css" href="' . $a->get_baseurl() . '/addon/windowsphonepush/windowsphonepush.css' . '" media="all" />' . "\r\n";
$s .= '<label id="windowsphonepush-device_url-label" for="windowsphonepush-device_url-text">Device-URL</label>';
$s .= '<input id="windowsphonepush-device_url-text" type="text" readonly value=' . $device_url . '/>';
$s .= '</div><div class="clear"></div></div>';
-
+
return;
+
}
-
- /**
- *
- * Cron function used to regularly check all users on the server with active windowsphonepushplugin and send
+ /* Cron function used to regularly check all users on the server with active windowsphonepushaddon and send
* notifications to the Microsoft servers and consequently to the Windows Phone device
+ *
*/
-
- function windowsphonepush_cron() {
- // retrieve all UID's for which the plugin windowsphonepush is enabled and loop through every user
+ function windowsphonepush_cron()
+ {
+ // retrieve all UID's for which the addon windowsphonepush is enabled and loop through every user
$r = q("SELECT * FROM `pconfig` WHERE `cat` = 'windowsphonepush' AND `k` = 'enable' AND `v` = 1");
- if (count($r)) {
- foreach ($r as $rr) {
+ if(count($r)) {
+ foreach($r as $rr) {
// load stored information for the user-id of the current loop
- $device_url = PConfig::get($rr['uid'], 'windowsphonepush', 'device_url');
- $lastpushid = PConfig::get($rr['uid'], 'windowsphonepush', 'lastpushid');
+ $device_url = get_pconfig($rr['uid'], 'windowsphonepush', 'device_url');
+ $lastpushid = get_pconfig($rr['uid'], 'windowsphonepush', 'lastpushid');
- // pushing only possible if device_url (the URI on Microsoft server) is available or not "NA" (which will be sent
+ // pushing only possible if device_url (the URI on Microsoft server) is available or not "NA" (which will be sent
// by app if user has switched the server setting in app - sending blank not possible as this would return an update error)
- if ( ( $device_url == "" ) || ( $device_url == "NA" ) ) {
- // no Device-URL for the user availabe, but plugin is enabled --> write info to Logger
+ if (( $device_url == "" ) || ( $device_url == "NA" )) {
+ // no Device-URL for the user availabe, but addon is enabled --> write info to Logger
logger("WARN: windowsphonepush is enable for user " . $rr['uid'] . ", but no Device-URL is specified for the user.");
} else {
- // retrieve the number of unseen items and the id of the latest one (if there are more than
+ // retrieve the number of unseen items and the id of the latest one (if there are more than
// one new entries since last poller run, only the latest one will be pushed)
- $count = q("SELECT count(`id`) as count, max(`id`) as max FROM `item` WHERE `unseen` = 1 AND `type` <> 'activity' AND `uid` = %d", intval($rr['uid']));
+ $count = q("SELECT count(`id`) as count, max(`id`) as max FROM `item` WHERE `unseen` = 1 AND `type` <> 'activity' AND `uid` = %d",
+ intval($rr['uid'])
+ );
- // send number of unseen items to the device (the number will be displayed on Start screen until
- // App will be started by user) - this update will be sent every 10 minutes to update the number to 0 if
+ // send number of unseen items to the device (the number will be displayed on Start screen until
+ // App will be started by user) - this update will be sent every 10 minutes to update the number to 0 if
// user has loaded the timeline through app or website
$res_tile = send_tile_update($device_url, "", $count[0]['count'], "");
switch (trim($res_tile)) {
// Otherwise BBcode-Tags will be eliminated and plain text cutted to 140 chars (incl. dots)
// BTW: information only possible in English
$body = $item[0]['body'];
- if (substr($body, 0, 4) == "[url") {
+ if (substr($body, 0, 4) == "[url")
$body = "URL/Image ...";
- else {
- require_once('include/bbcode.php');
+ } else {
require_once("include/html2plain.php");
- $body = bbcode($body, false, false, 2, true);
+
+ $body = BBCode::convert($body, false, 2, true);
$body = html2plain($body, 0);
$body = ((strlen($body) > 137) ? substr($body, 0, 137) . "..." : $body);
}
return "Counter set to zero";
}
-/* helper function to login to the server with the specified Network credentials
+/*
+ * helper function to login to the server with the specified Network credentials
* (mainly copied from api.php)
*/
-function windowsphonepush_login(App $a)
-{
+function windowsphonepush_login() {
if (!isset($_SERVER['PHP_AUTH_USER'])) {
- logger('API_login: ' . print_r($_SERVER, true), LOGGER_DEBUG);
- header('WWW-Authenticate: Basic realm="Friendica"');
- header('HTTP/1.0 401 Unauthorized');
- die('This api requires login');
+ logger('API_login: ' . print_r($_SERVER, true), LOGGER_DEBUG);
+ header('WWW-Authenticate: Basic realm="Friendica"');
+ header('HTTP/1.0 401 Unauthorized');
+ die('This api requires login');
}
- $user_id = User::authenticate($_SERVER['PHP_AUTH_USER'], trim($_SERVER['PHP_AUTH_PW']));
+ $user = $_SERVER['PHP_AUTH_USER'];
+ $encrypted = hash('whirlpool',trim($_SERVER['PHP_AUTH_PW']));
- if ($user_id) {
- $record = dba::selectFirst('user', [], ['uid' => $user_id]);
+ // check if user specified by app is available in the user table
+ $r = q("SELECT * FROM `user` WHERE ( `email` = '%s' OR `nickname` = '%s' )
+ AND `password` = '%s' AND `blocked` = 0 AND `account_expired` = 0 AND `account_removed` = 0 AND `verified` = 1 LIMIT 1",
+ dbesc(trim($user)),
+ dbesc(trim($user)),
+ dbesc($encrypted)
+ );
+
+ if(count($r)){
+ $record = $r[0];
} else {
- logger('API_login failure: ' . print_r($_SERVER, true), LOGGER_DEBUG);
- header('WWW-Authenticate: Basic realm="Friendica"');
- header('HTTP/1.0 401 Unauthorized');
- die('This api requires login');
+ logger('API_login failure: ' . print_r($_SERVER,true), LOGGER_DEBUG);
+ header('WWW-Authenticate: Basic realm="Friendica"');
+ header('HTTP/1.0 401 Unauthorized');
+ die('This api requires login');
}
- require_once('include/security.php');
- authenticate_success($record); $_SESSION["allow_api"] = true;
- call_hooks('logged_in', $a->user);
+ require_once 'include/security.php';
+ authenticate_success($record);
+ $_SESSION["allow_api"] = true;
+ Addon::callHooks('logged_in', $a->user);
}
+
if(! local_user())
return;
- $wp_post = PConfig::get(local_user(),'wppost','post');
+ $wp_post = get_pconfig(local_user(),'wppost','post');
if(intval($wp_post) == 1) {
- $wp_defpost = PConfig::get(local_user(),'wppost','post_by_default');
+ $wp_defpost = get_pconfig(local_user(),'wppost','post_by_default');
$selected = ((intval($wp_defpost) == 1) ? ' checked="checked" ' : '');
$b .= '<div class="profile-jot-net"><input type="checkbox" name="wppost_enable" ' . $selected . ' value="1" /> '
- . t('Post to Wordpress') . '</div>';
+ . L10n::t('Post to Wordpress') . '</div>';
}
}
if(x($_POST,'wppost-submit')) {
- PConfig::set(local_user(),'wppost','post',intval($_POST['wppost']));
- PConfig::set(local_user(),'wppost','post_by_default',intval($_POST['wp_bydefault']));
- PConfig::set(local_user(),'wppost','wp_username',trim($_POST['wp_username']));
- PConfig::set(local_user(),'wppost','wp_password',trim($_POST['wp_password']));
- PConfig::set(local_user(),'wppost','wp_blog',trim($_POST['wp_blog']));
- PConfig::set(local_user(),'wppost','backlink',trim($_POST['wp_backlink']));
- PConfig::set(local_user(),'wppost','shortcheck',trim($_POST['wp_shortcheck']));
+ set_pconfig(local_user(),'wppost','post',intval($_POST['wppost']));
+ set_pconfig(local_user(),'wppost','post_by_default',intval($_POST['wp_bydefault']));
+ set_pconfig(local_user(),'wppost','wp_username',trim($_POST['wp_username']));
+ set_pconfig(local_user(),'wppost','wp_password',trim($_POST['wp_password']));
+ set_pconfig(local_user(),'wppost','wp_blog',trim($_POST['wp_blog']));
+ set_pconfig(local_user(),'wppost','backlink',trim($_POST['wp_backlink']));
+ set_pconfig(local_user(),'wppost','shortcheck',trim($_POST['wp_shortcheck']));
$wp_backlink_text = notags(trim($_POST['wp_backlink_text']));
- $wp_backlink_text = bbcode($wp_backlink_text, false, false, 8);
+ $wp_backlink_text = BBCode::convert($wp_backlink_text, false, 8);
$wp_backlink_text = html2plain($wp_backlink_text, 0, true);
- PConfig::set(local_user(),'wppost','wp_backlink_text', $wp_backlink_text);
+ set_pconfig(local_user(),'wppost','wp_backlink_text', $wp_backlink_text);
}
function wppost_send(&$a,&$b) {
- if($b['deleted'] || $b['private'] || ($b['created'] !== $b['edited'])) {
+ if($b['deleted'] || $b['private'] || ($b['created'] !== $b['edited']))
return;
- }
- if(! strstr($b['postopts'],'wppost')) {
+ if(! strstr($b['postopts'],'wppost'))
return;
- }
- if($b['parent'] != $b['id']) {
+ if($b['parent'] != $b['id'])
return;
- }
- // Dont't post if the post doesn't belong to us.
- // This is a check for forum postings
- $self = dba::selectFirst('contact', ['id'], ['uid' => $b['uid'], 'self' => true]);
- if ($b['contact-id'] != $self['id']) {
- return;
- }
- $wp_username = xmlify(PConfig::get($b['uid'],'wppost','wp_username'));
- $wp_password = xmlify(PConfig::get($b['uid'],'wppost','wp_password'));
- $wp_blog = PConfig::get($b['uid'],'wppost','wp_blog');
- $wp_backlink_text = PConfig::get($b['uid'],'wppost','wp_backlink_text');
+ $wp_username = xmlify(get_pconfig($b['uid'],'wppost','wp_username'));
+ $wp_password = xmlify(get_pconfig($b['uid'],'wppost','wp_password'));
+ $wp_blog = get_pconfig($b['uid'],'wppost','wp_blog');
+ $wp_backlink_text = get_pconfig($b['uid'],'wppost','wp_backlink_text');
if ($wp_backlink_text == '') {
- $wp_backlink_text = t('Read the original post and comment stream on Friendica');
+ $wp_backlink_text = L10n::t('Read the original post and comment stream on Friendica');
}
- if($wp_username && $wp_password && $wp_blog) {
-
- require_once('include/bbcode.php');
- require_once('include/html2plain.php');
- require_once('include/plaintext.php');
+ if ($wp_username && $wp_password && $wp_blog) {
+ require_once 'include/html2plain.php';
$wptitle = trim($b['title']);
* Version: 0.1
* Author: Michael Vogel <https://pirati.ca/profile/heluecht>
*/
-
- function xmpp_install() {
- register_hook('plugin_settings', 'addon/xmpp/xmpp.php', 'xmpp_plugin_settings');
- register_hook('plugin_settings_post', 'addon/xmpp/xmpp.php', 'xmpp_plugin_settings_post');
- register_hook('page_end', 'addon/xmpp/xmpp.php', 'xmpp_script');
- register_hook('logged_in', 'addon/xmpp/xmpp.php', 'xmpp_login');
+ use Friendica\App;
+ use Friendica\Core\Addon;
+ use Friendica\Core\Config;
+ use Friendica\Core\L10n;
+ use Friendica\Core\PConfig;
+
+ function xmpp_install()
+ {
+ Addon::registerHook('addon_settings', 'addon/xmpp/xmpp.php', 'xmpp_addon_settings');
+ Addon::registerHook('addon_settings_post', 'addon/xmpp/xmpp.php', 'xmpp_addon_settings_post');
+ Addon::registerHook('page_end', 'addon/xmpp/xmpp.php', 'xmpp_script');
+ Addon::registerHook('logged_in', 'addon/xmpp/xmpp.php', 'xmpp_login');
}
- function xmpp_uninstall() {
- unregister_hook('plugin_settings', 'addon/xmpp/xmpp.php', 'xmpp_plugin_settings');
- unregister_hook('plugin_settings_post', 'addon/xmpp/xmpp.php', 'xmpp_plugin_settings_post');
- unregister_hook('page_end', 'addon/xmpp/xmpp.php', 'xmpp_script');
- unregister_hook('logged_in', 'addon/xmpp/xmpp.php', 'xmpp_login');
+ function xmpp_uninstall()
+ {
+ Addon::unregisterHook('addon_settings', 'addon/xmpp/xmpp.php', 'xmpp_addon_settings');
+ Addon::unregisterHook('addon_settings_post', 'addon/xmpp/xmpp.php', 'xmpp_addon_settings_post');
+ Addon::unregisterHook('page_end', 'addon/xmpp/xmpp.php', 'xmpp_script');
+ Addon::unregisterHook('logged_in', 'addon/xmpp/xmpp.php', 'xmpp_login');
}
- function xmpp_plugin_settings_post($a,$post) {
- if(! local_user() || (! x($_POST,'xmpp-settings-submit')))
+ function xmpp_addon_settings_post()
+ {
+ if (!local_user() || (!x($_POST, 'xmpp-settings-submit'))) {
return;
- }
- PConfig::set(local_user(), 'xmpp', 'enabled', intval($_POST['xmpp_enabled']));
- PConfig::set(local_user(), 'xmpp', 'individual', intval($_POST['xmpp_individual']));
- PConfig::set(local_user(), 'xmpp', 'bosh_proxy', $_POST['xmpp_bosh_proxy']);
+ set_pconfig(local_user(),'xmpp','enabled',intval($_POST['xmpp_enabled']));
+ set_pconfig(local_user(),'xmpp','individual',intval($_POST['xmpp_individual']));
+ set_pconfig(local_user(),'xmpp','bosh_proxy',$_POST['xmpp_bosh_proxy']);
- info( t('XMPP settings updated.') . EOL);
+ info(L10n::t('XMPP settings updated.') . EOL);
}
- function xmpp_plugin_settings(&$a,&$s) {
-
- if(! local_user())
+ function xmpp_addon_settings(App $a, &$s)
+ {
+ if (!local_user()) {
return;
- }
/* Add our stylesheet to the xmpp so we can make our settings look nice */
/* provide a submit button */
- $s .= '<div class="settings-submit-wrapper" ><input type="submit" name="xmpp-settings-submit" class="settings-submit" value="' . t('Save Settings') . '" /></div></div>';
-
+ $s .= '<div class="settings-submit-wrapper" ><input type="submit" name="xmpp-settings-submit" class="settings-submit" value="' . L10n::t('Save Settings') . '" /></div></div>';
}
-function xmpp_login()
-{
+function xmpp_login($a,$b) {
if (!$_SESSION["allow_api"]) {
- $password = random_string(16);
- PConfig::set(local_user(), "xmpp", "password", $password);
+ $password = substr(random_string(),0,16);
+ set_pconfig(local_user(), "xmpp", "password", $password);
}
}
- function xmpp_plugin_admin(&$a, &$o){
+ function xmpp_addon_admin(App $a, &$o)
+ {
$t = get_markup_template("admin.tpl", "addon/xmpp/");
- $o = replace_macros($t, array(
- '$submit' => t('Save Settings'),
- '$bosh_proxy' => array('bosh_proxy', t('Jabber BOSH host'), get_config('xmpp', 'bosh_proxy'), ''),
- '$central_userbase' => array('central_userbase', t('Use central userbase'), get_config('xmpp', 'central_userbase'), t('If enabled, users will automatically login to an ejabberd server that has to be installed on this machine with synchronized credentials via the "auth_ejabberd.php" script.')),
- ));
+ $o = replace_macros($t, [
+ '$submit' => L10n::t('Save Settings'),
+ '$bosh_proxy' => ['bosh_proxy', L10n::t('Jabber BOSH host'), Config::get('xmpp', 'bosh_proxy'), ''],
+ '$central_userbase' => ['central_userbase', L10n::t('Use central userbase'), Config::get('xmpp', 'central_userbase'), L10n::t('If enabled, users will automatically login to an ejabberd server that has to be installed on this machine with synchronized credentials via the "auth_ejabberd.php" script.')],
+ ]);
}
- function xmpp_plugin_admin_post(&$a){
- $bosh_proxy = ((x($_POST,'bosh_proxy')) ? trim($_POST['bosh_proxy']) : '');
- $central_userbase = ((x($_POST,'central_userbase')) ? intval($_POST['central_userbase']) : false);
- set_config('xmpp','bosh_proxy',$bosh_proxy);
- set_config('xmpp','central_userbase',$central_userbase);
- info( t('Settings updated.'). EOL );
+ function xmpp_addon_admin_post()
+ {
+ $bosh_proxy = ((x($_POST, 'bosh_proxy')) ? trim($_POST['bosh_proxy']) : '');
+ $central_userbase = ((x($_POST, 'central_userbase')) ? intval($_POST['central_userbase']) : false);
+ Config::set('xmpp', 'bosh_proxy', $bosh_proxy);
+ Config::set('xmpp', 'central_userbase', $central_userbase);
+ info(L10n::t('Settings updated.') . EOL);
}
-function xmpp_script(App $a)
-{
- xmpp_converse($a);
+function xmpp_script(&$a,&$s) {
+ xmpp_converse($a,$s);
}
-function xmpp_converse(App $a)
-{
- if (!local_user()) {
+function xmpp_converse(&$a,&$s) {
+ if (!local_user())
return;
- }
- if ($_GET["mode"] == "minimal") {
+ if ($_GET["mode"] == "minimal")
return;
- }
- if ($a->is_mobile || $a->is_tablet) {
+ if ($a->is_mobile || $a->is_tablet)
return;
- }
- if (!PConfig::get(local_user(), "xmpp", "enabled")) {
+ if (!get_pconfig(local_user(),"xmpp","enabled"))
return;
- }
- if (in_array($a->query_string, ["admin/federation/"])) {
+ if (in_array($a->query_string, array("admin/federation/")))
return;
- }
- $a->page['htmlhead'] .= '<link type="text/css" rel="stylesheet" media="screen" href="addon/xmpp/converse/css/converse.css" />' . "\n";
- $a->page['htmlhead'] .= '<script src="addon/xmpp/converse/builds/converse.min.js"></script>' . "\n";
+ $a->page['htmlhead'] .= '<link type="text/css" rel="stylesheet" media="screen" href="addon/xmpp/converse/css/converse.css" />'."\n";
+ $a->page['htmlhead'] .= '<script src="addon/xmpp/converse/builds/converse.min.js"></script>'."\n";
- if (Config::get("xmpp", "central_userbase") && !PConfig::get(local_user(), "xmpp", "individual")) {
- $bosh_proxy = Config::get("xmpp", "bosh_proxy");
+ if (get_config("xmpp", "central_userbase") && !get_pconfig(local_user(),"xmpp","individual")) {
+ $bosh_proxy = get_config("xmpp", "bosh_proxy");
- $password = PConfig::get(local_user(), "xmpp", "password", '', true);
+ $password = get_pconfig(local_user(), "xmpp", "password");
if ($password == "") {
- $password = random_string(16);
- PConfig::set(local_user(), "xmpp", "password", $password);
+ $password = substr(random_string(),0,16);
+ set_pconfig(local_user(), "xmpp", "password", $password);
}
- $jid = $a->user["nickname"] . "@" . $a->get_hostname() . "/converse-" . random_string(5);
+ $jid = $a->user["nickname"]."@".$a->get_hostname()."/converse-".substr(random_string(),0,5);;
$auto_login = "auto_login: true,
authentication: 'login',
- $yourls_ssl = Config::get('yourls', 'ssl1');
+ $yourls_ssl = get_config('yourls', 'ssl1');
$s .= '<span id="settings_yourls_inflated" class="settings-block fakelink" style="display: block;" onclick="openClose(\'settings_yourls_expanded\'); openClose(\'settings_yourls_inflated\');">';
- $s .= '<h3>' . t('YourLS') . '</h3>';
+ $s .= '<h3>' . L10n::t('YourLS') . '</h3>';
$s .= '</span>';
$s .= '<div id="settings_yourls_expanded" class="settings-block" style="display: none;">';
$s .= '<span class="fakelink" onclick="openClose(\'settings_yourls_expanded\'); openClose(\'settings_yourls_inflated\');">';