* @param $a array
* @param &$b array
*/
-function birdavatar_lookup(App $a, &$b)
+function birdavatar_lookup(App $a, array &$b)
{
$user = DBA::selectFirst('user', ['uid'], ['email' => $b['email']]);
if (DBA::isResult($user)) {
* THE SOFTWARE.
*/
+use Friendica\App;
use Friendica\Core\Hook;
use Friendica\Core\Logger;
use Friendica\Core\Renderer;
Hook::register('page_header', 'addon/blackout/blackout.php', 'blackout_redirect');
}
-function blackout_redirect ($a, $b) {
+function blackout_redirect (App $a, $b)
+{
// if we have a logged in user, don't throw her out
if (local_user()) {
return true;
$now = time();
$date1 = DateTime::createFromFormat('Y-m-d G:i', $mystart);
$date2 = DateTime::createFromFormat('Y-m-d G:i', $myend);
- if ( $date1 && $date2 ) {
+ if ($date1 && $date2) {
$date1 = DateTime::createFromFormat('Y-m-d G:i', $mystart)->format('U');
$date2 = DateTime::createFromFormat('Y-m-d G:i', $myend)->format('U');
} else {
- $date1 = 0;
- $date2 = 0;
+ $date1 = 0;
+ $date2 = 0;
}
+
if (( $date1 <= $now ) && ( $now <= $date2 )) {
Logger::notice('redirecting user to blackout page');
System::externalRedirect($myurl);
}
}
-function blackout_addon_admin(&$a, &$o) {
+function blackout_addon_admin(App $a, &$o) {
$mystart = DI::config()->get('blackout','begindate');
if (! is_string($mystart)) { $mystart = 'YYYY-MM-DD hh:mm'; }
$myend = DI::config()->get('blackout','enddate');
'$aboutredirect' => DI::l10n()->t("<strong>Note</strong>: The redirect will be active from the moment you press the submit button. Users currently logged in will <strong>not</strong> be thrown out but can't login again after logging out while the blackout is still in place."),
]);
}
-function blackout_addon_admin_post (&$a) {
+function blackout_addon_admin_post (App $a) {
$begindate = trim($_POST['startdate']);
$enddate = trim($_POST['enddate']);
$url = trim($_POST['rurl']);
require_once __DIR__ . DIRECTORY_SEPARATOR . 'vendor' . DIRECTORY_SEPARATOR . 'autoload.php';
-function blockbot_install() {
+function blockbot_install()
+{
Hook::register('init_1', __FILE__, 'blockbot_init_1');
}
-function blockbot_addon_admin(&$a, &$o) {
- $t = Renderer::getMarkupTemplate("admin.tpl", "addon/blockbot/");
+function blockbot_addon_admin(App $a, &$o)
+{
+ $t = Renderer::getMarkupTemplate('admin.tpl', 'addon/blockbot/');
$o = Renderer::replaceMacros($t, [
'$submit' => DI::l10n()->t('Save Settings'),
]);
}
-function blockbot_addon_admin_post(&$a) {
+function blockbot_addon_admin_post(App $a)
+{
DI::config()->set('blockbot', 'good_crawlers', $_POST['good_crawlers'] ?? false);
DI::config()->set('blockbot', 'block_gab', $_POST['block_gab'] ?? false);
DI::config()->set('blockbot', 'training', $_POST['training'] ?? false);
}
-function blockbot_init_1(App $a) {
+function blockbot_init_1(App $a)
+{
if (empty($_SERVER['HTTP_USER_AGENT'])) {
return;
}
Hook::register('page_end', 'addon/buglink/buglink.php', 'buglink_active');
}
-function buglink_active(App $a, &$b)
+function buglink_active(App $a, array &$b)
{
$b .= '<div id="buglink_wrapper" style="position: fixed; bottom: 5px; left: 5px;"><a href="https://github.com/friendica/friendica/issues" target="_blank" rel="noopener noreferrer" title="' . DI::l10n()->t('Report Bug') . '"><img src="addon/buglink/bug-x.gif" alt="' . DI::l10n()->t('Report Bug') . '" /></a></div>';
}
* Version: 1.0
* Author: Mike Macgirvin <http://macgirvin.com/profile/mike>
*/
+
+use Friendica\App;
use Friendica\Core\Hook;
use Friendica\DI;
Hook::register('app_menu', 'addon/calc/calc.php', 'calc_app_menu');
}
-function calc_app_menu($a,&$b) {
+function calc_app_menu(App $a, array &$b)
+{
$b['app_menu'][] = '<div class="app-title"><a href="calc">Calculator</a></div>';
}
-function calc_module() {}
-
-
-
-
-function calc_init($a) {
+function calc_module()
+{
+}
-$x = <<< EOT
+function calc_init(App $a)
+{
+ $x = <<< EOT
<script language="JavaScript">
/**************************************
</td></tr></tbody></table>
EOT;
-return $o;
-
+ return $o;
}
* @param $a array
* @param &$b array
*/
-function catavatar_lookup(App $a, &$b)
+function catavatar_lookup(App $a, array &$b)
{
$user = DBA::selectFirst('user', ['uid'], ['email' => $b['email']]);
if (DBA::isResult($user)) {
* Version: 1.0
* Author: Mike Macgirvin <http://macgirvin.com/profile/mike>
*/
+
+use Friendica\App;
use Friendica\Core\Hook;
function convert_install() {
Hook::register('app_menu', 'addon/convert/convert.php', 'convert_app_menu');
}
-function convert_app_menu($a,&$b) {
+function convert_app_menu(App $a, array &$b)
+{
$b['app_menu'][] = '<div class="app-title"><a href="convert">Units Conversion</a></div>';
}
*
* @return void
*/
-function cookienotice_page_content_top(App $a, &$b)
+function cookienotice_page_content_top(App $a, array &$b)
{
DI::page()->registerStylesheet(__DIR__ . '/cookienotice.css');
DI::page()->registerFooterScript(__DIR__ . '/cookienotice.js');
*
* @return void
*/
-function cookienotice_page_end(App $a, &$b)
+function cookienotice_page_end(App $a, array &$b)
{
$text = (string)DI::config()->get('cookienotice', 'text', DI::l10n()->t('This website uses cookies to recognize revisiting and logged in users. You accept the usage of these cookies by continue browsing this website.'));
$oktext = (string)DI::config()->get('cookienotice', 'oktext', DI::l10n()->t('OK'));
return $r;
}
-function curweather_network_mod_init(App $a, &$b)
+function curweather_network_mod_init(App $a, array &$b)
{
if (!intval(DI::pConfig()->get(local_user(), 'curweather', 'curweather_enable'))) {
return;
}
-function diaspora_settings_post(App $a, &$b)
+function diaspora_settings_post(App $a, array &$b)
{
if (!empty($_POST['diaspora-submit'])) {
DI::pConfig()->set(local_user(),'diaspora', 'post' , intval($_POST['enabled']));
}
}
-function diaspora_hook_fork(&$a, &$b)
+function diaspora_hook_fork(App $a, array &$b)
{
if ($b['name'] != 'notifier_normal') {
return;
Logger::notice("installed fromapp");
}
-function fromapp_settings_post($a, $post)
+function fromapp_settings_post(App $a, $post)
{
if (!local_user() || empty($_POST['fromapp-submit'])) {
return;
];
}
-function fromapp_post_hook(&$a, &$item)
+function fromapp_post_hook(App $a, &$item)
{
if (! local_user()) {
return;
* Author: Michael Vogel <https://pirati.ca/profile/heluecht>
*/
+use Friendica\App;
use Friendica\Core\Hook;
use Friendica\Core\Logger;
use Friendica\Core\Renderer;
DI::cache()->set("geocoordinates:".$language.":".$coords[0]."-".$coords[1], $item["location"]);
}
-function geocoordinates_post_hook($a, &$item)
+function geocoordinates_post_hook(App $a, &$item)
{
geocoordinates_resolve_item($item);
}
-function geocoordinates_addon_admin(&$a, &$o)
+function geocoordinates_addon_admin(App $a, &$o)
{
$t = Renderer::getMarkupTemplate("admin.tpl", "addon/geocoordinates/");
]);
}
-function geocoordinates_addon_admin_post(&$a)
+function geocoordinates_addon_admin_post(App $a)
{
$api_key = trim($_POST['api_key'] ?? '');
DI::config()->set('geocoordinates', 'api_key', $api_key);
use Friendica\DI;
use Friendica\Model\Notification;
-function gnot_install() {
-
+function gnot_install()
+{
Hook::register('addon_settings', 'addon/gnot/gnot.php', 'gnot_settings');
Hook::register('addon_settings_post', 'addon/gnot/gnot.php', 'gnot_settings_post');
Hook::register('enotify_mail', 'addon/gnot/gnot.php', 'gnot_enotify_mail');
}
/**
- *
* Callback from the settings post function.
* $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 gnot_settings_post($a,$post) {
+function gnot_settings_post(App $a, $post) {
if(! local_user() || empty($_POST['gnot-submit']))
return;
DI::pConfig()->set(local_user(),'gnot','enable',intval($_POST['gnot']));
}
-
/**
- *
* Called from the Addon Setting form.
* Add our own settings info to the page.
- *
*/
-
-
-
function gnot_settings(App &$a, array &$data)
{
if (!local_user()) {
];
}
-
-function gnot_enotify_mail(&$a,&$b) {
- if((! $b['uid']) || (! intval(DI::pConfig()->get($b['uid'], 'gnot','enable'))))
+function gnot_enotify_mail(App $a, array &$b)
+{
+ if ((!$b['uid']) || (! intval(DI::pConfig()->get($b['uid'], 'gnot','enable')))) {
return;
- if($b['type'] == Notification\Type::COMMENT)
+ }
+
+ if ($b['type'] == Notification\Type::COMMENT) {
$b['subject'] = DI::l10n()->t('[Friendica:Notify] Comment to conversation #%d', $b['parent']);
+ }
}
* Author: Michael Vogel <https://pirati.ca/profile/heluecht>
*
*/
+
+use Friendica\App;
use Friendica\Core\Hook;
use Friendica\Core\Logger;
{
Hook::register('render_location', 'addon/googlemaps/googlemaps.php', 'googlemaps_location');
- Logger::notice("installed googlemaps");
+ Logger::notice('installed googlemaps');
}
-function googlemaps_location($a, &$item)
+function googlemaps_location(App $a, &$item)
{
-
- if(! (strlen($item['location']) || strlen($item['coord']))) {
+ if (!(strlen($item['location']) || strlen($item['coord']))) {
return;
}
- if ($item['coord'] != ""){
- $target = "http://maps.google.com/?q=".urlencode($item['coord']);
+ if ($item['coord'] != '') {
+ $target = 'http://maps.google.com/?q=' . urlencode($item['coord']);
} else {
- $target = "http://maps.google.com/?q=".urlencode($item['location']);
+ $target = 'http://maps.google.com/?q=' . urlencode($item['location']);
}
- if ($item['location'] != "") {
+ if ($item['location'] != '') {
$title = $item['location'];
} else {
$title = $item['coord'];
}
- $item['html'] = '<a target="map" title="'.$title.'" href= "'.$target.'">'.$title.'</a>';
+ $item['html'] = '<a target="map" title="' . $title . '" href= "' . $target . '">' . $title . '</a>';
}
* @param $a array
* @param &$b array
*/
-function gravatar_lookup($a, &$b) {
+function gravatar_lookup(App $a, array &$b)
+{
$default_avatar = DI::config()->get('gravatar', 'default_avatar');
$rating = DI::config()->get('gravatar', 'rating');
/**
* Display admin settings for this addon
*/
-function gravatar_addon_admin (&$a, &$o) {
+function gravatar_addon_admin (App $a, &$o)
+{
$t = Renderer::getMarkupTemplate( "admin.tpl", "addon/gravatar/" );
$default_avatar = DI::config()->get('gravatar', 'default_avatar');
$rating = DI::config()->get('gravatar', 'rating');
// set default values for first configuration
- if(! $default_avatar)
+ if (!$default_avatar) {
$default_avatar = 'identicon'; // pseudo-random geometric pattern based on email hash
- if(! $rating)
+ }
+ if (!$rating) {
$rating = 'g'; // suitable for display on all websites with any audience type
+ }
// Available options for the select boxes
$default_avatars = [
/**
* Save admin settings
*/
-function gravatar_addon_admin_post (&$a) {
+function gravatar_addon_admin_post (App $a)
+{
BaseModule::checkFormSecurityToken('gravatarsave');
$default_avatar = trim($_POST['avatar'] ?? 'identicon');
*
*/
-function group_text_settings_post($a,$post) {
+function group_text_settings_post(App $a, $post) {
if(! local_user() || empty($_POST['group_text-submit']))
return;
DI::pConfig()->set(local_user(),'system','groupedit_image_limit',intval($_POST['group_text']));
Hook::register('footer', __FILE__, 'highlightjs_footer');
}
-function highlightjs_head(App $a, &$b)
+function highlightjs_head(App $a, array &$b)
{
if ($a->getCurrentTheme() == 'frio') {
$style = 'bootstrap';
DI::page()->registerStylesheet(__DIR__ . '/asset/styles/' . $style . '.css');
}
-function highlightjs_footer(App $a, &$b)
+function highlightjs_footer(App $a, array &$b)
{
DI::page()->registerFooterScript(__DIR__ . '/asset/highlight.pack.js');
DI::page()->registerFooterScript(__DIR__ . '/highlightjs.js');
];
}
-function ijpost_settings_post(&$a, &$b)
+function ijpost_settings_post(App $a, array &$b)
{
if (!empty($_POST['ijpost-submit'])) {
DI::pConfig()->set(local_user(), 'ijpost', 'post', intval($_POST['ijpost']));
}
}
-function ijpost_post_local(&$a, &$b)
+function ijpost_post_local(App $a, array &$b)
{
// This can probably be changed to allow editing by pointing to a different API endpoint
$b['postopts'] .= 'ijpost';
}
-function ijpost_send(&$a, &$b)
+function ijpost_send(App $a, array &$b)
{
if ($b['deleted'] || $b['private'] || ($b['created'] !== $b['edited'])) {
return;
* License: 3-clause BSD license
*/
+use Friendica\App;
use Friendica\Content\Text\BBCode;
use Friendica\Core\Hook;
use Friendica\Core\Logger;
use Friendica\Core\Config\Util\ConfigFileLoader;
use Friendica\Util\Proxy as ProxyUtils;
-function impressum_install() {
+function impressum_install()
+{
Hook::register('load_config', 'addon/impressum/impressum.php', 'impressum_load_config');
- Hook::register('about_hook', 'addon/impressum/impressum.php', 'impressum_show');
- Hook::register('page_end', 'addon/impressum/impressum.php', 'impressum_footer');
- Logger::notice("installed impressum Addon");
+ Hook::register('about_hook', 'addon/impressum/impressum.php', 'impressum_show');
+ Hook::register('page_end', 'addon/impressum/impressum.php', 'impressum_footer');
+ Logger::notice("installed impressum Addon");
}
-function impressum_module() {
+function impressum_module()
+{
}
-function impressum_content() {
- DI::baseUrl()->redirect('friendica/');
+
+function impressum_content()
+{
+ DI::baseUrl()->redirect('friendica/');
}
-function obfuscate_email ($s) {
- $s = str_replace('@','(at)',$s);
- $s = str_replace('.','(dot)',$s);
- return $s;
+function obfuscate_email (string $s): string
+{
+ $s = str_replace('@', '(at)', $s);
+ $s = str_replace('.', '(dot)', $s);
+ return $s;
}
-function impressum_footer($a, &$b) {
- $text = ProxyUtils::proxifyHtml(BBCode::convert(DI::config()->get('impressum','footer_text')));
-
- if (! $text == '') {
- DI::page()['htmlhead'] .= '<link rel="stylesheet" type="text/css" href="'.DI::baseUrl()->get().'/addon/impressum/impressum.css" media="all" />';
- $b .= '<div class="clear"></div>';
- $b .= '<div id="impressum_footer">'.$text.'</div>';
- }
+
+function impressum_footer(App $a, array &$b)
+{
+ $text = ProxyUtils::proxifyHtml(BBCode::convert(DI::config()->get('impressum','footer_text')));
+
+ if (! $text == '') {
+ DI::page()['htmlhead'] .= '<link rel="stylesheet" type="text/css" href="'.DI::baseUrl()->get().'/addon/impressum/impressum.css" media="all" />';
+ $b .= '<div class="clear"></div>';
+ $b .= '<div id="impressum_footer">'.$text.'</div>';
+ }
}
-function impressum_load_config(\Friendica\App $a, ConfigFileLoader $loader)
+function impressum_load_config(App $a, ConfigFileLoader $loader)
{
$a->getConfigCache()->load($loader->loadAddonConfig('impressum'));
}
-function impressum_show($a,&$b) {
- $b .= '<h3>'.DI::l10n()->t('Impressum').'</h3>';
- $owner = DI::config()->get('impressum', 'owner');
- $owner_profile = DI::config()->get('impressum','ownerprofile');
- $postal = ProxyUtils::proxifyHtml(BBCode::convert(DI::config()->get('impressum', 'postal')));
- $notes = ProxyUtils::proxifyHtml(BBCode::convert(DI::config()->get('impressum', 'notes')));
- $email = obfuscate_email( DI::config()->get('impressum','email') );
- if (strlen($owner)) {
- if (strlen($owner_profile)) {
- $tmp = '<a href="'.$owner_profile.'">'.$owner.'</a>';
- } else {
- $tmp = $owner;
- }
- if (strlen($email)) {
- $b .= '<p><strong>'.DI::l10n()->t('Site Owner').'</strong>: '. $tmp .'<br /><strong>'.DI::l10n()->t('Email Address').'</strong>: '.$email.'</p>';
- } else {
- $b .= '<p><strong>'.DI::l10n()->t('Site Owner').'</strong>: '. $tmp .'</p>';
- }
- if (strlen($postal)) {
- $b .= '<p><strong>'.DI::l10n()->t('Postal Address').'</strong><br />'. $postal .'</p>';
- }
- if (strlen($notes)) {
- $b .= '<p>'.$notes.'</p>';
- }
- } else {
- $b .= '<p>'.DI::l10n()->t('The impressum addon needs to be configured!<br />Please add at least the <tt>owner</tt> variable to your config file. For other variables please refer to the README file of the addon.').'</p>';
- }
+function impressum_show(App $a, array &$b)
+{
+ $b .= '<h3>' . DI::l10n()->t('Impressum') . '</h3>';
+ $owner = DI::config()->get('impressum', 'owner');
+ $owner_profile = DI::config()->get('impressum', 'ownerprofile');
+ $postal = ProxyUtils::proxifyHtml(BBCode::convert(DI::config()->get('impressum', 'postal')));
+ $notes = ProxyUtils::proxifyHtml(BBCode::convert(DI::config()->get('impressum', 'notes')));
+ $email = obfuscate_email( DI::config()->get('impressum', 'email') );
+
+ if (strlen($owner)) {
+ if (strlen($owner_profile)) {
+ $tmp = '<a href="' . $owner_profile . '">' . $owner . '</a>';
+ } else {
+ $tmp = $owner;
+ }
+
+ if (strlen($email)) {
+ $b .= '<p><strong>' . DI::l10n()->t('Site Owner').'</strong>: ' . $tmp .'<br /><strong>' . DI::l10n()->t('Email Address') . '</strong>: ' . $email . '</p>';
+ } else {
+ $b .= '<p><strong>' . DI::l10n()->t('Site Owner').'</strong>: ' . $tmp .'</p>';
+ }
+
+ if (strlen($postal)) {
+ $b .= '<p><strong>' . DI::l10n()->t('Postal Address') . '</strong><br />' . $postal . '</p>';
+ }
+
+ if (strlen($notes)) {
+ $b .= '<p>' . $notes . '</p>';
+ }
+ } else {
+ $b .= '<p>' . DI::l10n()->t('The impressum addon needs to be configured!<br />Please add at least the <tt>owner</tt> variable to your config file. For other variables please refer to the README file of the addon.') . '</p>';
+ }
}
-function impressum_addon_admin_post (&$a) {
- $owner = trim($_POST['owner'] ?? '');
- $ownerprofile = trim($_POST['ownerprofile'] ?? '');
- $postal = trim($_POST['postal'] ?? '');
- $notes = trim($_POST['notes'] ?? '');
- $email = trim($_POST['email'] ?? '');
- $footer_text = trim($_POST['footer_text'] ?? '');
- DI::config()->set('impressum','owner',strip_tags($owner));
- DI::config()->set('impressum','ownerprofile',strip_tags($ownerprofile));
- DI::config()->set('impressum','postal',strip_tags($postal));
- DI::config()->set('impressum','email',strip_tags($email));
- DI::config()->set('impressum','notes',strip_tags($notes));
- DI::config()->set('impressum','footer_text',strip_tags($footer_text));
+function impressum_addon_admin_post (App $a)
+{
+ $owner = trim($_POST['owner'] ?? '');
+ $ownerprofile = trim($_POST['ownerprofile'] ?? '');
+ $postal = trim($_POST['postal'] ?? '');
+ $notes = trim($_POST['notes'] ?? '');
+ $email = trim($_POST['email'] ?? '');
+ $footer_text = trim($_POST['footer_text'] ?? '');
+
+ DI::config()->set('impressum', 'owner', strip_tags($owner));
+ DI::config()->set('impressum', 'ownerprofile', strip_tags($ownerprofile));
+ DI::config()->set('impressum', 'postal', strip_tags($postal));
+ DI::config()->set('impressum', 'email', strip_tags($email));
+ DI::config()->set('impressum', 'notes', strip_tags($notes));
+ DI::config()->set('impressum', 'footer_text', strip_tags($footer_text));
}
-function impressum_addon_admin (&$a, &$o) {
- $t = Renderer::getMarkupTemplate( "admin.tpl", "addon/impressum/" );
- $o = Renderer::replaceMacros($t, [
- '$submit' => DI::l10n()->t('Save Settings'),
- '$owner' => ['owner', DI::l10n()->t('Site Owner'), DI::config()->get('impressum','owner'), DI::l10n()->t('The page operators name.')],
- '$ownerprofile' => ['ownerprofile', DI::l10n()->t('Site Owners Profile'), DI::config()->get('impressum','ownerprofile'), DI::l10n()->t('Profile address of the operator.')],
- '$postal' => ['postal', DI::l10n()->t('Postal Address'), DI::config()->get('impressum','postal'), DI::l10n()->t('How to contact the operator via snail mail. You can use BBCode here.')],
- '$notes' => ['notes', DI::l10n()->t('Notes'), DI::config()->get('impressum','notes'), DI::l10n()->t('Additional notes that are displayed beneath the contact information. You can use BBCode here.')],
- '$email' => ['email', DI::l10n()->t('Email Address'), DI::config()->get('impressum','email'), DI::l10n()->t('How to contact the operator via email. (will be displayed obfuscated)')],
- '$footer_text' => ['footer_text', DI::l10n()->t('Footer note'), DI::config()->get('impressum','footer_text'), DI::l10n()->t('Text for the footer. You can use BBCode here.')],
- ]);
+
+function impressum_addon_admin (App $a, &$o)
+{
+ $t = Renderer::getMarkupTemplate('admin.tpl', 'addon/impressum/' );
+ $o = Renderer::replaceMacros($t, [
+ '$submit' => DI::l10n()->t('Save Settings'),
+ '$owner' => ['owner', DI::l10n()->t('Site Owner'), DI::config()->get('impressum','owner'), DI::l10n()->t('The page operators name.')],
+ '$ownerprofile' => ['ownerprofile', DI::l10n()->t('Site Owners Profile'), DI::config()->get('impressum','ownerprofile'), DI::l10n()->t('Profile address of the operator.')],
+ '$postal' => ['postal', DI::l10n()->t('Postal Address'), DI::config()->get('impressum','postal'), DI::l10n()->t('How to contact the operator via snail mail. You can use BBCode here.')],
+ '$notes' => ['notes', DI::l10n()->t('Notes'), DI::config()->get('impressum','notes'), DI::l10n()->t('Additional notes that are displayed beneath the contact information. You can use BBCode here.')],
+ '$email' => ['email', DI::l10n()->t('Email Address'), DI::config()->get('impressum','email'), DI::l10n()->t('How to contact the operator via email. (will be displayed obfuscated)')],
+ '$footer_text' => ['footer_text', DI::l10n()->t('Footer note'), DI::config()->get('impressum','footer_text'), DI::l10n()->t('Text for the footer. You can use BBCode here.')],
+ ]);
}
* Version: 1.0
* Author: Thomas Willingham <https://kakste.com/profile/beardyunixer>
*/
+
+use Friendica\App;
use Friendica\Core\Hook;
use Friendica\DI;
Hook::register('app_menu', 'addon/infiniteimprobabilitydrive/infiniteimprobabilitydrive.php', 'infiniteimprobabilitydrive_app_menu');
}
-function infiniteimprobabilitydrive_app_menu($a, &$b)
+function infiniteimprobabilitydrive_app_menu(App $a, array &$b)
{
$b['app_menu'][] = '<div class="app-title"><a href="infiniteimprobabilitydrive">' . DI::l10n()->t('Infinite Improbability Drive') . '</a></div>';
}
}
-function infiniteimprobabilitydrive_content(&$a)
+function infiniteimprobabilitydrive_content(App $a)
{
$baseurl = DI::baseUrl()->get() . '/addon/infiniteimprobabilitydrive';
$o = '';
use Friendica\Core\Renderer;
use Friendica\DI;
-function irc_install() {
+function irc_install()
+{
Hook::register('app_menu', 'addon/irc/irc.php', 'irc_app_menu');
Hook::register('addon_settings', 'addon/irc/irc.php', 'irc_addon_settings');
Hook::register('addon_settings_post', 'addon/irc/irc.php', 'irc_addon_settings_post');
];
}
-function irc_addon_settings_post(&$a, &$b) {
- if(!local_user())
+function irc_addon_settings_post(App $a, array &$b)
+{
+ if (!local_user()) {
return;
+ }
- if(!empty($_POST['irc-submit'])) {
+ if (!empty($_POST['irc-submit'])) {
if (isset($_POST['autochans'])) {
DI::pConfig()->set(local_user(), 'irc', 'autochans', trim(($_POST['autochans'])));
}
}
}
-function irc_app_menu($a,&$b) {
+function irc_app_menu(App $a, array &$b)
+{
$b['app_menu'][] = '<div class="app-title"><a href="irc">' . DI::l10n()->t('IRC Chatroom') . '</a></div>';
}
}
-function irc_content(&$a) {
-
+function irc_content(App $a)
+{
$baseurl = DI::baseUrl()->get() . '/addon/irc';
$o = '';
/* set the list of popular channels */
if (local_user()) {
- $sitechats = DI::pConfig()->get( local_user(), 'irc', 'sitechats');
- if (!$sitechats)
- $sitechats = DI::config()->get('irc', 'sitechats');
+ $sitechats = DI::pConfig()->get( local_user(), 'irc', 'sitechats');
+ if (!$sitechats) {
+ $sitechats = DI::config()->get('irc', 'sitechats');
+ }
} else {
- $sitechats = DI::config()->get('irc','sitechats');
+ $sitechats = DI::config()->get('irc','sitechats');
}
- if($sitechats)
+
+ if ($sitechats) {
$chats = explode(',',$sitechats);
- else
+ } else {
$chats = ['friendica','chat','chatback','hottub','ircbar','dateroom','debian'];
+ }
DI::page()['aside'] .= '<div class="widget"><h3>' . DI::l10n()->t('Popular Channels') . '</h3><ul>';
- foreach($chats as $chat) {
+ foreach ($chats as $chat) {
DI::page()['aside'] .= '<li><a href="' . DI::baseUrl()->get() . '/irc?channels=' . $chat . '" >' . '#' . $chat . '</a></li>';
}
DI::page()['aside'] .= '</ul></div>';
} else {
$autochans = DI::config()->get('irc','autochans');
}
- if($autochans)
+
+ if ($autochans) {
$channels = $autochans;
- else
+ } else {
$channels = ($_GET['channels'] ?? '') ?: 'friendica';
+ }
/* add the chatroom frame and some html */
$o .= <<< EOT
<iframe src="//web.libera.chat?channels=$channels" style="width:100%; max-width:900px; height: 600px;"></iframe>
EOT;
-return $o;
-
+ return $o;
}
-function irc_addon_admin_post (&$a) {
- if(!$a->isSiteAdmin())
+function irc_addon_admin_post (App $a)
+{
+ if (!$a->isSiteAdmin()) {
return;
+ }
- if($_POST['irc-submit']) {
- DI::config()->set('irc','autochans',trim($_POST['autochans']));
- DI::config()->set('irc','sitechats',trim($_POST['sitechats']));
+ if ($_POST['irc-submit']) {
+ DI::config()->set('irc', 'autochans', trim($_POST['autochans']));
+ DI::config()->set('irc', 'sitechats', trim($_POST['sitechats']));
}
}
-function irc_addon_admin (&$a, &$o) {
- $sitechats = DI::config()->get('irc','sitechats'); /* popular channels */
- $autochans = DI::config()->get('irc','autochans'); /* auto connect chans */
- $t = Renderer::getMarkupTemplate( "admin.tpl", "addon/irc/" );
+function irc_addon_admin (App $a, &$o) {
+ $sitechats = DI::config()->get('irc', 'sitechats'); /* popular channels */
+ $autochans = DI::config()->get('irc', 'autochans'); /* auto connect chans */
+ $t = Renderer::getMarkupTemplate('admin.tpl', 'addon/irc/' );
$o = Renderer::replaceMacros($t, [
'$submit' => DI::l10n()->t('Save Settings'),
'$autochans' => [ 'autochans', DI::l10n()->t('Channel(s) to auto connect (comma separated)'), $autochans, DI::l10n()->t('List of channels that shall automatically connected to when the app is launched.')],
]);
}
-function js_upload_post_init(App $a, &$b)
+function js_upload_post_init(App $a, array &$b)
{
global $js_upload_result, $js_upload_jsonresponse;
$js_upload_result = $result;
}
-function js_upload_post_file(App $a, &$b)
+function js_upload_post_file(App $a, array &$b)
{
global $js_upload_result;
}
-function js_upload_post_end(App $a, &$b)
+function js_upload_post_end(App $a, array &$b)
{
global $js_upload_jsonresponse;
return $res;
}
-function keycloakpassword_authenticate($a, &$b)
+function keycloakpassword_authenticate(App $a, array &$b)
{
if (empty($b['password'])) {
return;
];
}
-function keycloakpassword_addon_admin(&$a, &$o)
+function keycloakpassword_addon_admin(App $a, &$o)
{
$form =
keycloakpassword_admin_input(
$o = Renderer::replaceMacros($t, $form);
}
-function keycloakpassword_addon_admin_post(&$a)
+function keycloakpassword_addon_admin_post(App $a)
{
if (!local_user()) {
return;
Logger::notice("installed krynn");
}
-function krynn_post_hook($a, &$item) {
+function krynn_post_hook(App $a, &$item) {
/**
*
*
*/
-function krynn_settings_post($a,$post) {
+function krynn_settings_post(App $a, $post) {
if(! local_user())
return;
if($_POST['krynn-submit'])
* 3rd save the settings to the DB for later usage
*/
-function langfilter_addon_settings_post(App $a, &$b)
+function langfilter_addon_settings_post(App $a, array &$b)
{
if (!local_user()) {
return;
* ...etc.
*/
+use Friendica\App;
use Friendica\Core\Hook;
use Friendica\Core\Logger;
use Friendica\Database\DBA;
Hook::register('authenticate', 'addon/ldapauth/ldapauth.php', 'ldapauth_hook_authenticate');
}
-function ldapauth_load_config(\Friendica\App $a, ConfigFileLoader $loader)
+function ldapauth_load_config(App $a, ConfigFileLoader $loader)
{
$a->getConfigCache()->load($loader->loadAddonConfig('ldapauth'));
}
-function ldapauth_hook_authenticate($a, &$b)
+function ldapauth_hook_authenticate(App $a, array &$b)
{
$user = ldapauth_authenticate($b['username'], $b['password']);
if (!empty($user['uid'])) {
function libertree_jot_nets(App &$a, array &$jotnets_fields)
{
- if(! local_user()) {
- return;
- }
+ if (!local_user()) {
+ return;
+ }
if (DI::pConfig()->get(local_user(), 'libertree', 'post')) {
$jotnets_fields[] = [
'field' => [
'libertree_enable',
DI::l10n()->t('Post to libertree'),
- DI::pConfig()->get(local_user(), 'libertree', 'post_by_default')
- ]
+ DI::pConfig()->get(local_user(), 'libertree', 'post_by_default'),
+ ],
];
}
}
-
function libertree_settings(App $a, array &$data)
{
if (!local_user()) {
];
}
-
-function libertree_settings_post(&$a,&$b) {
-
- if(!empty($_POST['libertree-submit'])) {
-
+function libertree_settings_post(App $a, array &$b)
+{
+ if (!empty($_POST['libertree-submit'])) {
DI::pConfig()->set(local_user(),'libertree','post',intval($_POST['libertree']));
DI::pConfig()->set(local_user(),'libertree','post_by_default',intval($_POST['libertree_bydefault']));
DI::pConfig()->set(local_user(),'libertree','libertree_api_token',trim($_POST['libertree_api_token']));
}
}
-function libertree_post_local(&$a,&$b) {
+function libertree_post_local(App $a, array &$b)
+{
// This can probably be changed to allow editing by pointing to a different API endpoint
$b['postopts'] .= 'libertree';
}
-
-
-
-function libertree_send(&$a,&$b) {
-
+function libertree_send(App $a, array &$b)
+{
Logger::notice('libertree_send: invoked');
if ($b['deleted'] || $b['private'] || ($b['created'] !== $b['edited'])) {
// remove multiple newlines
do {
$oldbody = $body;
- $body = str_replace("\n\n\n", "\n\n", $body);
- } while ($oldbody != $body);
+ $body = str_replace("\n\n\n", "\n\n", $body);
+ } while ($oldbody != $body);
// convert to markdown
$body = BBCode::toMarkdown($body, false);
// Adding the title
- if(strlen($title))
- $body = "## ".html_entity_decode($title)."\n\n".$body;
+ if (strlen($title)) {
+ $body = '## ' . html_entity_decode($title) . "\n\n" . $body;
+ }
$params = [
* @param $a array
* @param &$b array
*/
-function libravatar_lookup($a, &$b)
+function libravatar_lookup(array $a, array &$b)
{
$default_avatar = DI::config()->get('libravatar', 'default_avatar');
if (empty($default_avatar)) {
}
require_once 'Services/Libravatar.php';
+
$libravatar = new Services_Libravatar();
$libravatar->setSize($b['size']);
$libravatar->setDefault($default_avatar);
/**
* Display admin settings for this addon
*/
-function libravatar_addon_admin(&$a, &$o)
+function libravatar_addon_admin(App $a, &$o)
{
$t = Renderer::getMarkupTemplate("admin.tpl", "addon/libravatar");
/**
* Save admin settings
*/
-function libravatar_addon_admin_post(&$a)
+function libravatar_addon_admin_post(App $a)
{
$default_avatar = trim($_POST['avatar'] ?? 'identicon');
DI::config()->set('libravatar', 'default_avatar', $default_avatar);
use Friendica\Util\XML;
function ljpost_install() {
- Hook::register('post_local', 'addon/ljpost/ljpost.php', 'ljpost_post_local');
- Hook::register('notifier_normal', 'addon/ljpost/ljpost.php', 'ljpost_send');
- Hook::register('jot_networks', 'addon/ljpost/ljpost.php', 'ljpost_jot_nets');
- Hook::register('connector_settings', 'addon/ljpost/ljpost.php', 'ljpost_settings');
- Hook::register('connector_settings_post', 'addon/ljpost/ljpost.php', 'ljpost_settings_post');
+Hook::register('post_local', 'addon/ljpost/ljpost.php', 'ljpost_post_local');
+Hook::register('notifier_normal', 'addon/ljpost/ljpost.php', 'ljpost_send');
+Hook::register('jot_networks', 'addon/ljpost/ljpost.php', 'ljpost_jot_nets');
+Hook::register('connector_settings', 'addon/ljpost/ljpost.php', 'ljpost_settings');
+Hook::register('connector_settings_post', 'addon/ljpost/ljpost.php', 'ljpost_settings_post');
}
function ljpost_jot_nets(App &$a, array &$jotnets_fields)
{
- if(! local_user()) {
- return;
- }
-
- if (DI::pConfig()->get(local_user(),'ljpost','post')) {
- $jotnets_fields[] = [
- 'type' => 'checkbox',
- 'field' => [
- 'ljpost_enable',
- DI::l10n()->t('Post to LiveJournal'),
- DI::pConfig()->get(local_user(),'ljpost','post_by_default')
- ]
- ];
- }
+if(! local_user()) {
+return;
}
+if (DI::pConfig()->get(local_user(),'ljpost','post')) {
+ $jotnets_fields[] = [
+ 'type' => 'checkbox',
+ 'field' => [
+ 'ljpost_enable',
+ DI::l10n()->t('Post to LiveJournal'),
+ DI::pConfig()->get(local_user(),'ljpost','post_by_default')
+ ]
+ ];
+}
+}
function ljpost_settings(App &$a, array &$data)
{
return;
}
- $enabled = DI::pConfig()->get(local_user(), 'ljpost', 'post', false);
+ $enabled = DI::pConfig()->get(local_user(), 'ljpost', 'post', false);
$ij_username = DI::pConfig()->get(local_user(), 'ljpost', 'ij_username');
$def_enabled = DI::pConfig()->get(local_user(), 'ljpost', 'post_by_default');
- $t = Renderer::getMarkupTemplate('connector_settings.tpl', 'addon/ljpost/');
+ $t= Renderer::getMarkupTemplate('connector_settings.tpl', 'addon/ljpost/');
$html = Renderer::replaceMacros($t, [
'$enabled' => ['ljpost', DI::l10n()->t('Enable LiveJournal Post Addon'), $enabled],
'$username' => ['ij_username', DI::l10n()->t('LiveJournal username'), $ij_username],
$data = [
'connector' => 'ljpost',
- 'title' => DI::l10n()->t('LiveJournal Export'),
- 'image' => 'addon/ljpost/livejournal.png',
+ 'title' => DI::l10n()->t('LiveJournal Export'),
+ 'image' => 'addon/ljpost/livejournal.png',
'enabled' => $enabled,
- 'html' => $html,
+ 'html' => $html,
];
}
-
-function ljpost_settings_post(&$a,&$b) {
-
- if(!empty($_POST['ljpost-submit'])) {
-
- DI::pConfig()->set(local_user(),'ljpost','post',intval($_POST['ljpost']));
- DI::pConfig()->set(local_user(),'ljpost','post_by_default',intval($_POST['lj_bydefault']));
- DI::pConfig()->set(local_user(),'ljpost','lj_username',trim($_POST['lj_username']));
- DI::pConfig()->set(local_user(),'ljpost','lj_password',trim($_POST['lj_password']));
-
+function ljpost_settings_post(App $a, array &$b)
+{
+ if (!empty($_POST['ljpost-submit'])) {
+ DI::pConfig()->set(local_user(), 'ljpost', 'post', intval($_POST['ljpost']));
+ DI::pConfig()->set(local_user(), 'ljpost', 'post_by_default', intval($_POST['lj_bydefault']));
+ DI::pConfig()->set(local_user(), 'ljpost', 'lj_username', trim($_POST['lj_username']));
+ DI::pConfig()->set(local_user(), 'ljpost', 'lj_password', trim($_POST['lj_password']));
}
-
}
-function ljpost_post_local(&$a,&$b) {
-
+function ljpost_post_local(App $a, array &$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;
+ }
- $lj_post = intval(DI::pConfig()->get(local_user(),'ljpost','post'));
-
+ $lj_post = intval(DI::pConfig()->get(local_user(),'ljpost','post'));
$lj_enable = (($lj_post && !empty($_REQUEST['ljpost_enable'])) ? intval($_REQUEST['ljpost_enable']) : 0);
- if($b['api_source'] && intval(DI::pConfig()->get(local_user(),'ljpost','post_by_default')))
+ if ($b['api_source'] && intval(DI::pConfig()->get(local_user(), 'ljpost', 'post_by_default'))) {
$lj_enable = 1;
+ }
- if(! $lj_enable)
- return;
+ if (!$lj_enable) {
+ return;
+ }
- if(strlen($b['postopts']))
- $b['postopts'] .= ',';
- $b['postopts'] .= 'ljpost';
+ if (strlen($b['postopts'])) {
+ $b['postopts'] .= ',';
+ }
+ $b['postopts'] .= 'ljpost';
}
+function ljpost_send(App $a, array &$b)
+{
+ if ($b['deleted'] || $b['private'] || ($b['created'] !== $b['edited'])) {
+ return;
+ }
+ if (!strstr($b['postopts'],'ljpost')) {
+ return;
+ }
-
-function ljpost_send(&$a,&$b) {
-
- if($b['deleted'] || $b['private'] || ($b['created'] !== $b['edited']))
- return;
-
- if(! strstr($b['postopts'],'ljpost'))
- return;
-
- if($b['parent'] != $b['id'])
- return;
+ if ($b['parent'] != $b['id']) {
+ return;
+ }
$b['body'] = Post\Media::addAttachmentsToBody($b['uri-id'], $b['body']);
// $lj_journal = $lj_username;
$lj_blog = XML::escape(DI::pConfig()->get($b['uid'],'ljpost','lj_blog'));
- if(! strlen($lj_blog))
+ if (!strlen($lj_blog)) {
$lj_blog = XML::escape('http://www.livejournal.com/interface/xmlrpc');
+ }
- if($lj_username && $lj_password && $lj_blog) {
+ if ($lj_username && $lj_password && $lj_blog) {
$title = XML::escape($b['title']);
$post = BBCode::convertForUriId($b['uri-id'], $b['body'], BBCode::CONNECTORS);
$post = XML::escape($post);
$xml = <<< EOT
<?xml version="1.0" encoding="utf-8"?>
<methodCall>
- <methodName>LJ.XMLRPC.postevent</methodName>
- <params>
- <param><value>
- <struct>
- <member><name>username</name><value><string>$lj_username</string></value></member>
- <member><name>password</name><value><string>$lj_password</string></value></member>
- <member><name>event</name><value><string>$post</string></value></member>
- <member><name>subject</name><value><string>$title</string></value></member>
- <member><name>lineendings</name><value><string>unix</string></value></member>
- <member><name>year</name><value><int>$year</int></value></member>
- <member><name>mon</name><value><int>$mon</int></value></member>
- <member><name>day</name><value><int>$day</int></value></member>
- <member><name>hour</name><value><int>$hour</int></value></member>
- <member><name>min</name><value><int>$min</int></value></member>
- <member><name>usejournal</name><value><string>$lj_username</string></value></member>
- <member>
- <name>props</name>
+<methodName>LJ.XMLRPC.postevent</methodName>
+ <params>
+ <param>
<value>
<struct>
+ <member><name>username</name><value><string>$lj_username</string></value></member>
+ <member><name>password</name><value><string>$lj_password</string></value></member>
+ <member><name>event</name><value><string>$post</string></value></member>
+ <member><name>subject</name><value><string>$title</string></value></member>
+ <member><name>lineendings</name><value><string>unix</string></value></member>
+ <member><name>year</name><value><int>$year</int></value></member>
+ <member><name>mon</name><value><int>$mon</int></value></member>
+ <member><name>day</name><value><int>$day</int></value></member>
+ <member><name>hour</name><value><int>$hour</int></value></member>
+ <member><name>min</name><value><int>$min</int></value></member>
+ <member><name>usejournal</name><value><string>$lj_username</string></value></member>
<member>
- <name>useragent</name>
- <value><string>Friendica</string></value>
- </member>
- <member>
- <name>taglist</name>
- <value><string>$tags</string></value>
+ <name>props</name>
+ <value>
+ <struct>
+ <member>
+ <name>useragent</name>
+ <value><string>Friendica</string></value>
+ </member>
+ <member>
+ <name>taglist</name>
+ <value><string>$tags</string></value>
+ </member>
+ </struct>
+ </value>
</member>
</struct>
</value>
- </member>
- </struct>
- </value></param>
- </params>
+ </param>
+ </params>
</methodCall>
-
EOT;
Logger::debug('ljpost: data: ' . $xml);
if ($lj_blog !== 'test') {
$x = DI::httpClient()->post($lj_blog, $xml, ['Content-Type' => 'text/xml'])->getBody();
}
+
Logger::info('posted to livejournal: ' . ($x) ? $x : '');
}
}
* @param Friendica\App $a App object (unused)
* @param string $o HTML form data
*/
-function mailstream_addon_admin(&$a, &$o)
+function mailstream_addon_admin(App $a, &$o)
{
$frommail = DI::config()->get('mailstream', 'frommail');
$template = Renderer::getMarkupTemplate('admin.tpl', 'addon/mailstream/');
return $message_id;
}
-function mailstream_send_hook(&$a, $data)
+function mailstream_send_hook(App $a, $data)
{
$criteria = array('uid' => $data['uid'], 'contact-id' => $data['contact-id'], 'uri' => $data['uri']);
$item = Post::selectFirst([], $criteria);
* @param Friendica\App $a App object (unused)
* @param array $item content of the item (may or may not already be stored in the item table)
*/
-function mailstream_post_hook(&$a, &$item)
+function mailstream_post_hook(App $a, &$item)
{
mailstream_check_version();
];
}
-function markdown_addon_settings_post(App $a, &$b)
+function markdown_addon_settings_post(App $a, array &$b)
{
if (!local_user() || empty($_POST['markdown-submit'])) {
return;
Hook::register('addon_settings_post', __FILE__, 'mathjax_settings_post');
}
-function mathjax_settings_post($a)
+function mathjax_settings_post(App $a)
{
if (!local_user() || empty($_POST['mathjax-submit'])) {
return;
];
}
-function mathjax_footer(App $a, &$b)
+function mathjax_footer(App $a, array &$b)
{
// if the visitor of the page is not a local_user, use MathJax
// otherwise check the users settings.
Hook::register('profile_advanced', 'addon/membersince/membersince.php', 'membersince_display');
}
-function membersince_display(Friendica\App $a, &$b)
+function membersince_display(Friendica\App $a, array &$b)
{
if ($a->getCurrentTheme() == 'frio') {
// Works in Frio.
* Status: Deprecated
*/
+use Friendica\App;
use Friendica\Core\Hook;
use Friendica\DI;
Hook::register('marital_selector', 'addon/morechoice/morechoice.php', 'morechoice_marital_selector');
}
-function morechoice_gender_selector($a,&$b) {
+function morechoice_gender_selector(App $a, array &$b) {
$b['Androgyne'] = DI::l10n()->t('Androgyne');
$b['Bear'] = DI::l10n()->t('Bear');
$b['Bigender'] = DI::l10n()->t('Bigender');
$b['Hard to tell these days'] = DI::l10n()->t('Hard to tell these days');
}
-function morechoice_sexpref_selector($a,&$b) {
+function morechoice_sexpref_selector(App $a, array &$b) {
$b['Girls with big tits'] = DI::l10n()->t('Girls with big tits');
$b['Millionaires'] = DI::l10n()->t('Millionaires');
$b['Guys with big schlongs'] = DI::l10n()->t('Guys with big schlongs');
$b['I\'d rather just have some chocolate'] = DI::l10n()->t('I\'d rather just have some chocolate');
}
-function morechoice_marital_selector($a,&$b) {
+function morechoice_marital_selector(App $a, array &$b) {
$b['Married to my job'] = DI::l10n()->t('Married to my job');
$b['Polygamist'] = DI::l10n()->t('Polygamist');
$b['Half married'] = DI::l10n()->t('Half married');
* Author: Thomas Willingham <https://kakste.com/profile/beardyunixer>
*
*/
+
+use Friendica\App;
use Friendica\Core\Hook;
use Friendica\DI;
Hook::register('poke_verbs', 'addon/morepokes/morepokes.php', 'morepokes_poke_verbs');
}
-function morepokes_poke_verbs($a, &$b)
+function morepokes_poke_verbs(App $a, array &$b)
{
$b['bitchslap'] = ['bitchslapped', DI::l10n()->t('bitchslap'), DI::l10n()->t('bitchslapped')];
$b['shag'] = ['shag', DI::l10n()->t('shag'), DI::l10n()->t('shagged')];
* Author: Mike Macgirvin <http://macgirvin.com/profile/mike>
* Status: Unsupported
*/
+
+use Friendica\App;
use Friendica\Core\Hook;
use Friendica\DI;
-function namethingy_install() {
- Hook::register('app_menu', 'addon/namethingy/namethingy.php', 'namethingy_app_menu');
+function namethingy_install()
+{
+ Hook::register('app_menu', 'addon/namethingy/namethingy.php', 'namethingy_app_menu');
}
-function namethingy_app_menu($a,&$b) {
- $b['app_menu'][] = '<div class="app-title"><a href="namethingy">NameThingy</a></div>';
+function namethingy_app_menu(App $a, array &$b)
+{
+ $b['app_menu'][] = '<div class="app-title"><a href="namethingy">NameThingy</a></div>';
}
-function namethingy_module() {}
-
-function namethingy_content(&$a) {
+function namethingy_module()
+{
+}
-$baseurl = DI::baseUrl()->get() . '/addon/namethingy';
+function namethingy_content(App $a)
+{
+ $baseurl = DI::baseUrl()->get() . '/addon/namethingy';
-$o .= <<< EOT
+ $o .= <<< EOT
<iframe src="http://namethingy.com" width="900" height="700" />
EOT;
-return $o;
+ return $o;
}
* Author: Tobias Diekershoff <https://f.diekershoff.de/profile/tobias>
***/
+use Friendica\App;
use Friendica\Content\Text\BBCode;
use Friendica\Core\Hook;
use Friendica\Core\Logger;
Logger::notice('newmemberwidget installed');
}
-function newmemberwidget_network_mod_init ($a, $b)
+function newmemberwidget_network_mod_init (App $a, $b)
{
if (empty($_SESSION['new_member'])) {
return;
DI::page()['aside'] = $t . DI::page()['aside'];
}
-function newmemberwidget_addon_admin_post(&$a)
+function newmemberwidget_addon_admin_post(App $a)
{
$ft = (!empty($_POST['freetext']) ? trim($_POST['freetext']) : "");
$lsn = trim($_POST['localsupportname'] ?? '');
DI::config()->set('newmemberwidget', 'localsupport', trim($lsn));
}
-function newmemberwidget_addon_admin(&$a, &$o)
+function newmemberwidget_addon_admin(App $a, &$o)
{
$t = Renderer::getMarkupTemplate('admin.tpl', 'addon/newmemberwidget');
$o = Renderer::replaceMacros($t, [
/*
* replace "twitter.com" with "nitter.net"
*/
-function nitter_render(&$a, &$o)
+function nitter_render(App $a, &$o)
{
// this needs to be a system setting
$replaced = false;
* Author: Michael Vogel <https://pirati.ca/profile/heluecht>
*/
+use Friendica\App;
use Friendica\Core\Hook;
use Friendica\Core\Logger;
use Friendica\Core\Renderer;
}
}
-function nominatim_post_hook($a, &$item)
+function nominatim_post_hook(App $a, &$item)
{
nominatim_resolve_item($item);
}
-function nominatim_addon_admin(&$a, &$o)
+function nominatim_addon_admin(App $a, &$o)
{
$t = Renderer::getMarkupTemplate('admin.tpl', 'addon/nominatim/');
]);
}
-function nominatim_addon_admin_post(&$a)
+function nominatim_addon_admin_post(App $a)
{
$language = !empty($_POST['language']) ? trim($_POST['language']) : '';
DI::config()->set('nominatim', 'language', $language);
DI::baseUrl()->redirect('admin');
}
-function notifyall_content(&$a)
+function notifyall_content(App $a)
{
if (!$a->isSiteAdmin()) {
return '';
];
}
-function nsfw_addon_settings_post(&$a, &$b)
+function nsfw_addon_settings_post(App $a, array &$b)
{
if (!local_user()) {
return;
* and if so set our configuration setting for this person.
*
*/
-function numfriends_settings_post($a,$post) {
- if(! local_user() || empty($_POST['numfriends-submit']))
+function numfriends_settings_post(App $a, $post) {
+ if (! local_user() || empty($_POST['numfriends-submit'])) {
return;
+ }
- DI::pConfig()->set(local_user(),'system','display_friend_count',intval($_POST['numfriends']));
+ DI::pConfig()->set(local_user(), 'system', 'display_friend_count', intval($_POST['numfriends']));
}
*/
function numfriends_settings(App &$a, array &$data)
{
- if (! local_user()) {
+ if (!local_user()) {
return;
}
*
*/
+use Friendica\App;
use Friendica\Core\Cache\Enum\Duration;
use Friendica\Core\Hook;
use Friendica\Core\Logger;
Logger::notice("installed openstreetmap");
}
-function openstreetmap_load_config(\Friendica\App $a, ConfigFileLoader $loader)
+function openstreetmap_load_config(App $a, ConfigFileLoader $loader)
{
$a->getConfigCache()->load($loader->loadAddonConfig('openstreetmap'));
}
-function openstreetmap_alterheader($a, &$navHtml)
+function openstreetmap_alterheader(App $a, &$navHtml)
{
$addScriptTag = '<script type="text/javascript" src="' . DI::baseUrl()->get() . '/addon/openstreetmap/openstreetmap.js"></script>' . "\r\n";
DI::page()['htmlhead'] .= $addScriptTag;
* @param mixed $a
* @param array& $item
*/
-function openstreetmap_location($a, &$item)
+function openstreetmap_location(App $a, &$item)
{
if (!(strlen($item['location']) || strlen($item['coord']))) {
return;
$item['html'] = '<a target="map" title="'.$title.'" href= "'.$target.'">'.$title.'</a>';
}
-function openstreetmap_get_coordinates($a, &$b)
+function openstreetmap_get_coordinates(App $a, array &$b)
{
$nomserver = DI::config()->get('openstreetmap', 'nomserver', OSM_NOM);
}
}
-function openstreetmap_generate_named_map(&$a, &$b)
+function openstreetmap_generate_named_map(App $a, array &$b)
{
openstreetmap_get_coordinates($a, $b);
}
}
-function openstreetmap_generate_map(&$a, &$b)
+function openstreetmap_generate_map(App $a, array &$b)
{
$tmsserver = DI::config()->get('openstreetmap', 'tmsserver', OSM_TMS);
Logger::debug('generate_map: ' . $b['html']);
}
-function openstreetmap_addon_admin(&$a, &$o)
+function openstreetmap_addon_admin(App $a, &$o)
{
$t = Renderer::getMarkupTemplate("admin.tpl", "addon/openstreetmap/");
$tmsserver = DI::config()->get('openstreetmap', 'tmsserver', OSM_TMS);
]);
}
-function openstreetmap_addon_admin_post(&$a)
+function openstreetmap_addon_admin_post(App $a)
{
$urltms = ($_POST['tmsserver'] ?? '') ?: OSM_TMS;
$urlnom = ($_POST['nomserver'] ?? '') ?: OSM_NOM;
}
-function opmlexport_addon_settings_post(App $a, &$b)
+function opmlexport_addon_settings_post(App $a, array &$b)
{
if (!local_user() || empty($_POST['opmlexport-submit'])) {
return;
}
+
opmlexport($a);
}
}
}
-function pageheader_fetch(App $a, &$b)
+function pageheader_fetch(App $a, array &$b)
{
if(file_exists('pageheader.html')){
$s = file_get_contents('pageheader.html');
* setting.
*/
+use Friendica\App;
use Friendica\Core\Hook;
use Friendica\Core\Logger;
use Friendica\Core\Renderer;
Logger::notice("installed piwik addon");
}
-function piwik_load_config(\Friendica\App $a, ConfigFileLoader $loader)
+function piwik_load_config(App $a, ConfigFileLoader $loader)
{
$a->getConfigCache()->load($loader->loadAddonConfig('piwik'));
}
-function piwik_analytics($a,&$b) {
-
+function piwik_analytics(App $a, array &$b)
+{
/*
* styling of every HTML block added by this addon is done in the
* associated CSS file. We just have to tell Friendica to get it
$b .= "</div>";
}
}
-function piwik_addon_admin (&$a, &$o) {
+function piwik_addon_admin (App $a, &$o) {
$t = Renderer::getMarkupTemplate( "admin.tpl", "addon/piwik/" );
$o = Renderer::replaceMacros( $t, [
'$submit' => DI::l10n()->t('Save Settings'),
'$async' => ['async', DI::l10n()->t('Asynchronous tracking'), DI::config()->get('piwik','async' ), ''],
]);
}
-function piwik_addon_admin_post (&$a) {
+function piwik_addon_admin_post (App $a) {
$url = trim($_POST['baseurl'] ?? '');
$id = trim($_POST['siteid'] ?? '');
$optout = trim($_POST['optout'] ?? '');
Logger::notice("installed planets");
}
-function planets_post_hook($a, &$item) {
+function planets_post_hook(App $a, &$item) {
/**
*
*
*/
-function planets_settings_post($a,$post) {
- if(! local_user())
+function planets_settings_post(App $a,$post) {
+ if (! local_user()) {
return;
- if($_POST['planets-submit'])
- DI::pConfig()->set(local_user(),'planets','enable',intval($_POST['planets']));
+ }
+ if ($_POST['planets-submit']) {
+ DI::pConfig()->set(local_user(), 'planets', 'enable' ,intval($_POST['planets']));
+ }
}
$a->getConfigCache()->load($loader->loadAddonConfig('public_server'));
}
-function public_server_register_account($a, $b)
+function public_server_register_account(App $a, $b)
{
$uid = $b;
DBA::update('user', $fields, ['uid' => $uid]);
}
-function public_server_cron($a, $b)
+function public_server_cron(App $a, $b)
{
Logger::notice("public_server: cron start");
Logger::notice("public_server: cron end");
}
-function public_server_enotify(&$a, &$b)
+function public_server_enotify(App $a, array &$b)
{
if (!empty($b['params']) && $b['params']['type'] == Notification\Type::SYSTEM
&& !empty($b['params']['system_type']) && $b['params']['system_type'] === 'public_server_expire') {
}
}
-function public_server_login($a, $b)
+function public_server_login(App $a, $b)
{
$days = DI::config()->get('public_server', 'expiredays');
if (!$days) {
DBA::update('user', $fields, $condition);
}
-function public_server_addon_admin_post(&$a)
+function public_server_addon_admin_post(App $a)
{
BaseModule::checkFormSecurityTokenRedirectOnError('/admin/addons/publicserver', 'publicserver');
$expiredays = trim($_POST['expiredays'] ?? '');
DI::config()->set('public_server', 'flagpostsexpire', $flagpostsexpire);
}
-function public_server_addon_admin(&$a, &$o)
+function public_server_addon_admin(App $a, &$o)
{
$token = BaseModule::getFormSecurityToken("publicserver");
$t = Renderer::getMarkupTemplate("admin.tpl", "addon/public_server");
return '';
}
- require_once("mod/settings.php");
+ require_once 'mod/settings.php';
settings_init($a);
if (isset(DI::args()->getArgv()[1])) {
return $o;
}
-function pumpio_check_item_notification($a, &$notification_data)
+function pumpio_check_item_notification(App $a, &$notification_data)
{
$hostname = DI::pConfig()->get($notification_data["uid"], 'pumpio', 'host');
$username = DI::pConfig()->get($notification_data["uid"], "pumpio", "user");
Worker::add(PRIORITY_MEDIUM,"addon/pumpio/pumpio_sync.php");
}
-function pumpio_fetchtimeline(App $a, $uid)
+function pumpio_fetchtimeline(App $a, int $uid)
{
$ckey = DI::pConfig()->get($uid, 'pumpio', 'consumer_key');
$csecret = DI::pConfig()->get($uid, 'pumpio', 'consumer_secret');
return $top_item;
}
-function pumpio_fetchinbox(App $a, $uid)
+function pumpio_fetchinbox(App $a, int $uid)
{
$ckey = DI::pConfig()->get($uid, 'pumpio', 'consumer_key');
$csecret = DI::pConfig()->get($uid, 'pumpio', 'consumer_secret');
}
while ($item = DBA::fetch($lastitems)) {
- pumpio_fetchallcomments($a, $uid, $item["uri"]);
+ pumpio_fetchallcomments($a, $uid, $item['uri']);
}
DBA::close($lastitems);
DI::pConfig()->set($uid, 'pumpio', 'last_id', $last_id);
}
-function pumpio_getallusers(App &$a, $uid)
+function pumpio_getallusers(App &$a, int $uid)
{
$ckey = DI::pConfig()->get($uid, 'pumpio', 'consumer_key');
$csecret = DI::pConfig()->get($uid, 'pumpio', 'consumer_secret');
use Friendica\Core\Logger;
use Friendica\DI;
-function pumpio_sync_run($argv, $argc) {
+function pumpio_sync_run(array $argv, int $argc) {
$a = Friendica\DI::app();
- require_once("addon/pumpio/pumpio.php");
+ require_once 'addon/pumpio/pumpio.php';
if (function_exists('sys_getloadavg')) {
$load = sys_getloadavg();
Hook::register('footer' , __FILE__, 'qcomment_footer');
}
-function qcomment_footer(App $a, &$b)
+function qcomment_footer(App $a, array &$b)
{
DI::page()->registerFooterScript('addon/qcomment/qcomment.js');
}
];
}
-function qcomment_addon_settings_post(&$a, &$b)
+function qcomment_addon_settings_post(App $a, array &$b)
{
if (! local_user()) {
return;
use Friendica\Core\Renderer;
use Friendica\DI;
-function randplace_install() {
-
- /**
- *
+function randplace_install()
+{
+ /*
* Our demo addon will attach in three places.
* The first is just prior to storing a local post.
- *
*/
-
Hook::register('post_local', 'addon/randplace/randplace.php', 'randplace_post_hook');
- /**
- *
+ /*
* Then we'll attach into the addon settings page, and also the
* settings post hook so that we can create and update
* user preferences.
- *
*/
-
Hook::register('addon_settings', 'addon/randplace/randplace.php', 'randplace_settings');
Hook::register('addon_settings_post', 'addon/randplace/randplace.php', 'randplace_settings_post');
Logger::notice("installed randplace");
}
-
-function randplace_uninstall() {
-
- /**
- *
+function randplace_uninstall()
+{
+ /*
* This function should undo anything that was done in name_install()
*
* Except hooks, they are all unregistered automatically and don't need to be unregistered manually.
- *
*/
-
Logger::notice("removed randplace");
}
-
-
-function randplace_post_hook($a, &$item) {
-
- /**
- *
+function randplace_post_hook(App $a, &$item)
+{
+ /*
* An item was posted on the local system.
* We are going to look for specific items:
* - A status post by a profile owner
* - The profile owner must have allowed our addon
- *
*/
-
Logger::notice('randplace invoked');
- if(! local_user()) /* non-zero if this is a logged in user of this system */
+ if (!local_user()) {
+ /* non-zero if this is a logged in user of this system */
return;
+ }
- if(local_user() != $item['uid']) /* Does this person own the post? */
+ if (local_user() != $item['uid']) {
+ /* Does this person own the post? */
return;
+ }
- if($item['parent']) /* If the item has a parent, this is a comment or something else, not a status post. */
+ if ($item['parent']) {
+ /* If the item has a parent, this is a comment or something else, not a status post. */
return;
+ }
/* Retrieve our personal config setting */
$active = DI::pConfig()->get(local_user(), 'randplace', 'enable');
- if(! $active)
+ if (!$active) {
return;
+ }
/**
*
$cities = [];
$zones = timezone_identifiers_list();
foreach($zones as $zone) {
- if((strpos($zone,'/')) && (! stristr($zone,'US/')) && (! stristr($zone,'Etc/')))
- $cities[] = str_replace('_', ' ',substr($zone,strpos($zone,'/') + 1));
+ if ((strpos($zone, '/')) && (! stristr($zone, 'US/')) && (! stristr($zone, 'Etc/'))) {
+ $cities[] = str_replace('_', ' ',substr($zone, strpos($zone, '/') + 1));
+ }
}
- if(! count($cities))
+ if (!count($cities)) {
return;
+ }
+
$city = array_rand($cities,1);
$item['location'] = $cities[$city];
return;
}
-
-
-
/**
- *
* Callback from the settings post function.
* $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 randplace_settings_post($a,$post) {
- if(! local_user())
+function randplace_settings_post(App $a, $post)
+{
+ if (!local_user()) {
return;
- if($_POST['randplace-submit'])
- DI::pConfig()->set(local_user(),'randplace','enable',intval($_POST['randplace']));
+ }
+
+ if ($_POST['randplace-submit']) {
+ DI::pConfig()->set(local_user(), 'randplace', 'enable', intval($_POST['randplace']));
+ }
}
/**
- *
* Called from the Addon Setting form.
* Add our own settings info to the page.
- *
*/
-
-
-
function randplace_settings(App &$a, array &$data)
{
if(! local_user()) {
*
*/
+use Friendica\App;
use Friendica\Core\Hook;
use Friendica\Core\Renderer;
use Friendica\DI;
DI::config()->set('system', 'profiler', true);
}
-function rendertime_uninstall() {
+function rendertime_uninstall()
+{
DI::config()->delete('system', 'profiler');
}
-function rendertime_init_1(&$a) {
+function rendertime_init_1(App $a)
+{
}
-function rendertime_addon_admin(&$a, &$o) {
+function rendertime_addon_admin(App $a, &$o)
+{
$t = Renderer::getMarkupTemplate("admin.tpl", "addon/rendertime/");
$o = Renderer::replaceMacros($t, [
]);
}
-function rendertime_addon_admin_post(&$a) {
+function rendertime_addon_admin_post(App $a)
+{
DI::config()->set('rendertime', 'callstack', $_POST['callstack'] ?? false);
DI::config()->set('rendertime', 'minimal_time', $_POST['minimal_time'] ?? 0);
}
require_once __DIR__ . DIRECTORY_SEPARATOR . 'vendor' . DIRECTORY_SEPARATOR . 'autoload.php';
-function s3_storage_install($a)
+function s3_storage_install(App $a)
{
Hook::register('storage_instance' , __FILE__, 's3_storage_instance');
Hook::register('storage_config' , __FILE__, 's3_storage_config');
* Version: 1.0
* Author: Ryan <https://friendica.verya.pe/profile/ryan>
*/
+
+use Friendica\App;
use Friendica\Content\Text\BBCode;
use Friendica\Core\Hook;
use Friendica\Core\Logger;
use Friendica\DI;
use Friendica\Model\User;
use Friendica\Util\Strings;
+use OneLogin\Saml2\Utils;
require_once(__DIR__ . '/vendor/autoload.php');
Hook::register('footer', __FILE__, 'saml_footer');
}
-function saml_head(&$a, &$b)
+function saml_head(App $a, array &$b)
{
DI::page()->registerStylesheet(__DIR__ . '/saml.css');
}
-function saml_footer(&$a, &$b)
+function saml_footer(App $a, array &$b)
{
$fragment = addslashes(BBCode::convert(DI::config()->get('saml', 'settings_statement')));
$b .= <<<EOL
DI::config()->get('saml', 'idp_cert');
}
-function saml_sso_initiate(&$a, &$b)
+function saml_sso_initiate(App $a, array &$b)
{
if (!saml_is_configured()) {
Logger::warning('SAML SSO tried to trigger, but the SAML addon is not configured yet!');
DI::auth()->setForUser($a, $user);
}
- if (isset($_POST['RelayState'])
- && \OneLogin\Saml2\Utils::getSelfURL() != $_POST['RelayState']) {
+ if (isset($_POST['RelayState']) && Utils::getSelfURL() != $_POST['RelayState']) {
$auth->redirectTo($_POST['RelayState']);
}
}
-function saml_slo_initiate(&$a, &$b)
+function saml_slo_initiate(App $a, array &$b)
{
if (!saml_is_configured()) {
Logger::warning('SAML SLO tried to trigger, but the SAML addon is not configured yet!');
];
}
-function saml_addon_admin(&$a, &$o)
+function saml_addon_admin(App $a, &$o)
{
$form =
saml_input(
$o = Renderer::replaceMacros($t, $form);
}
-function saml_addon_admin_post(&$a)
+function saml_addon_admin_post(App $a)
{
$set = function ($key) {
$val = (!empty($_POST[$key]) ? trim($_POST[$key]) : '');
];
}
-function showmore_addon_settings_post(&$a, &$b)
+function showmore_addon_settings_post(App $a, array &$b)
{
if (!local_user()) {
return;
Hook::register('addon_settings_post', __FILE__, 'showmore_dyn_settings_post');
}
-function showmore_dyn_head(App $a, &$b)
+function showmore_dyn_head(App $a, array &$b)
{
DI::page()->registerStylesheet(__DIR__ . '/showmore_dyn.css');
}
-function showmore_dyn_footer(App $a, &$b)
+function showmore_dyn_footer(App $a, array &$b)
{
DI::page()->registerFooterScript(__DIR__ . '/showmore_dyn.js');
}
* Author: Thomas Willingham (based on Mike Macgirvin's Adult Smile template)
* All smileys from sites offering them as Public Domain
*/
+
+use Friendica\App;
use Friendica\Core\Hook;
use Friendica\DI;
Hook::register('smilie', 'addon/smiley_pack_es/smiley_pack_es.php', 'smiley_pack_smilies_es');
}
-function smiley_pack_smilies_es(&$a,&$b) {
+function smiley_pack_smilies_es(App $a, array &$b) {
#Smileys are split into various directories by the intended range of emotions. This is in case we get too big and need to modularise things. We can then cut and paste the right lines, move the right directory, and just change the name of the addon to happy_smilies or whatever.
* Name: Smiley Pack (Français)
* Description: Pack of smileys that make master too AOLish.
* Version: 1.01
- * Author: Thomas Willingham (based on Mike Macgirvin's Adult Smile template)
+ * Author: Thomas Willingham (based on Mike Macgirvin's Adult Smile template)
* All smileys from sites offering them as Public Domain
- *
- *
+ *
+ *
*/
+
+use Friendica\App;
use Friendica\Core\Hook;
use Friendica\DI;
-function smiley_pack_fr_install() {
+function smiley_pack_fr_install()
+{
Hook::register('smilie', 'addon/smiley_pack_fr/smiley_pack_fr.php', 'smiley_pack_fr_smilies');
}
-function smiley_pack_fr_smilies(&$a,&$b) {
+function smiley_pack_fr_smilies(App $a, array &$b)
+{
#Smileys are split into various directories by the intended range of emotions. This is in case we get too big and need to modularise things. We can then cut and paste the right lines, move the right directory, and just change the name of the addon to happy_smilies or whatever.
$b['texts'][] = ':cognetête';
$b['icons'][] = '<img src="' . DI::baseUrl()->get() . '/addon/smiley_pack/icons/oldcore/headbang.gif' . '" alt="' . ':cognetête' . '" />';
- $b['texts'][] = ':barbu';
+ $b['texts'][] = ':barbu';
$b['icons'][] = '<img src="' . DI::baseUrl()->get() . '/addon/smiley_pack/icons/oldcore/beard.png' . '" alt="' . ':barbu' . '" />';
$b['texts'][] = ':barbeblanche';
$b['texts'][] = ':tête';
$b['icons'][] = '<img src="' . DI::baseUrl()->get() . '/addon/smiley_pack/icons/oldcore/headbang.gif' . '" alt="' . ':tête' . '" />';
-
}
* All smileys from sites offering them as Public Domain
*/
+use Friendica\App;
use Friendica\Core\Hook;
use Friendica\DI;
Hook::register('smilie', 'addon/smiley_pack/smiley_pack.php', 'smiley_pack_smilies');
}
-function smiley_pack_smilies(&$a,&$b) {
-
+function smiley_pack_smilies(App $a, array &$b)
+{
#Smileys are split into various directories by the intended range of emotions. This is in case we get too big and need to modularise things. We can then cut and paste the right lines, move the right directory, and just change the name of the addon to happy_smilies or whatever.
#Be careful with invocation strings. If you have a smiley called foo, and another called foobar, typing :foobar will call foo. Avoid this with clever naming, using ~ instead of :
$b['texts'][] = ':twitch:';
$b['icons'][] = '<img class="smiley" src="' . DI::baseUrl()->get() . '/addon/smiley_pack/icons/commercial/twitch.gif' . '" alt="' . ':twitch:' . '" />';
-
}
Hook::register('jot_tool', 'addon/smileybutton/smileybutton.php', 'smileybutton_jot_tool');
}
-function smileybutton_jot_tool(Friendica\App $a, &$b)
+function smileybutton_jot_tool(Friendica\App $a, array &$b)
{
// Disable if theme is quattro
// TODO add style for quattro
* This is a template for how to extend the "smily" code.
*
*/
+
+use Friendica\App;
use Friendica\Core\Hook;
use Friendica\DI;
Hook::register('smilie', 'addon/smilies_adult/smilies_adult.php', 'smilies_adult_smilies');
}
-function smilies_adult_smilies(&$a,&$b) {
-
+function smilies_adult_smilies(App $a, array &$b)
+{
$b['texts'][] = '(o)(o)';
$b['icons'][] = '<img class="smiley" src="' . DI::baseUrl()->get() . '/addon/smilies_adult/icons/tits.gif' . '" alt="' . '(o)(o)' . '" />';
$b['texts'][] = ':finger';
$b['icons'][] = '<img class="smiley" src="' . DI::baseUrl()->get() . '/addon/smilies_adult/icons/finger.gif' . '" alt="' . ':finger' . '" />';
-
-}
\ No newline at end of file
+}
Hook::register('addon_settings_post', 'addon/startpage/startpage.php', 'startpage_settings_post');
}
-function startpage_home_init($a, $b)
+function startpage_home_init(App $a, $b)
{
if (!local_user()) {
return;
*
*/
-function startpage_settings_post($a, $post)
+function startpage_settings_post(App $a, $post)
{
if (!local_user()) {
return;
}
}
-function statusnet_post_local(App $a, &$b)
+function statusnet_post_local(App $a, array &$b)
{
if ($b['edit']) {
return;
Logger::info('statusnet_action "' . $action . '" send, result: ' . print_r($result, true));
}
-function statusnet_post_hook(App $a, &$b)
+function statusnet_post_hook(App $a, array &$b)
{
/**
* Post to GNU Social
]);
}
-function statusnet_prepare_body(App $a, &$b)
+function statusnet_prepare_body(App $a, array &$b)
{
if ($b['item']['network'] != Protocol::STATUSNET) {
return;
DI::config()->set('statusnet', 'last_poll', time());
}
-function statusnet_fetchtimeline(App $a, $uid)
+function statusnet_fetchtimeline(App $a, int $uid)
{
$ckey = DI::pConfig()->get($uid, 'statusnet', 'consumerkey');
$csecret = DI::pConfig()->get($uid, 'statusnet', 'consumersecret');
return $contact_id;
}
-function statusnet_createpost(App $a, $uid, $post, $self, $create_user, $only_existing_contact)
+function statusnet_createpost(App $a, int $uid, $post, $self, $create_user, bool $only_existing_contact)
{
Logger::info('statusnet_createpost: start');
return $body;
}
-function statusnet_fetch_own_contact(App $a, $uid)
+function statusnet_fetch_own_contact(App $a, int $uid)
{
$ckey = DI::pConfig()->get($uid, 'statusnet', 'consumerkey');
$csecret = DI::pConfig()->get($uid, 'statusnet', 'consumersecret');
return $contact_id;
}
-function statusnet_is_retweet(App $a, $uid, $body)
+function statusnet_is_retweet(App $a, int $uid, string $body)
{
$body = trim($body);
];
}
-function superblock_addon_settings_post(&$a, &$b)
+function superblock_addon_settings_post(App $a, array &$b)
{
if (!local_user()) {
return;
}
}
-function superblock_enotify_store(&$a,&$b) {
+function superblock_enotify_store(App $a, array &$b)
+{
if (empty($b['uid'])) {
return;
}
}
}
}
+
if ($found) {
// Empty out the fields
$b = [];
}
-function superblock_conversation_start(&$a, &$b)
+function superblock_conversation_start(App $a, array &$b)
{
if (!local_user()) {
return;
if ($words) {
$a->data['superblock'] = explode(',', $words);
}
- DI::page()['htmlhead'] .= <<< EOT
+ DI::page()['htmlhead'] .= <<< EOT
<script>
function superblockBlock(author) {
$.get('superblock?block=' +author, function(data) {
});
}
</script>
-
EOT;
}
-function superblock_item_photo_menu(&$a, &$b)
+function superblock_item_photo_menu(App $a, array &$b)
{
if (!local_user() || $b['item']['self']) {
return;
function superblock_module() {}
-function superblock_init(&$a)
+function superblock_init(App $a)
{
if (!local_user()) {
return;
use Friendica\Core\Config\Util\ConfigFileLoader;
use Friendica\Util\DateTimeFormat;
-function testdrive_install() {
-
+function testdrive_install()
+{
Hook::register('load_config', 'addon/testdrive/testdrive.php', 'testdrive_load_config');
Hook::register('register_account', 'addon/testdrive/testdrive.php', 'testdrive_register_account');
Hook::register('cron', 'addon/testdrive/testdrive.php', 'testdrive_cron');
Hook::register('enotify','addon/testdrive/testdrive.php', 'testdrive_enotify');
Hook::register('globaldir_update','addon/testdrive/testdrive.php', 'testdrive_globaldir_update');
-
}
function testdrive_load_config(App $a, ConfigFileLoader $loader)
$a->getConfigCache()->load($loader->loadAddonConfig('testdrive'));
}
-function testdrive_globaldir_update($a,&$b) {
+function testdrive_globaldir_update(App $a, array &$b)
+{
$b['url'] = '';
}
-function testdrive_register_account($a,$b) {
-
+function testdrive_register_account(App $a, $b)
+{
$uid = $b;
$days = DI::config()->get('testdrive','expiredays');
- if(! $days)
+ if (!$days) {
return;
+ }
DBA::update('user', ['account_expires_on' => DateTimeFormat::convert('now +' . $days . ' days')], ['uid' => $uid]);
-};
+}
-function testdrive_cron($a,$b) {
+function testdrive_cron(App $a, $b)
+{
$users = DBA::selectToArray('user', [], ["`account_expires_on` < ? AND `expire_notification_sent` <= ?",
- DateTimeFormat::utc('now + 5 days'), DBA::NULL_DATETIME]);
- foreach($users as $rr) {
+ DateTimeFormat::utc('now + 5 days'), DBA::NULL_DATETIME]);
+
+ foreach ($users as $rr) {
DI::notify()->createFromArray([
'type' => Notification\Type::SYSTEM,
'uid' => $rr['uid'],
}
}
-function testdrive_enotify(&$a, &$b) {
- if (!empty($b['params']) && $b['params']['type'] == Notification\Type::SYSTEM
+function testdrive_enotify(App $a, array &$b)
+{
+ if (!empty($b['params']) && $b['params']['type'] == Notification\Type::SYSTEM
&& !empty($b['params']['system_type']) && $b['params']['system_type'] === 'testdrive_expire') {
- $b['itemlink'] = DI::baseUrl()->get();
- $b['epreamble'] = $b['preamble'] = DI::l10n()->t('Your account on %s will expire in a few days.', DI::config()->get('system', 'sitename'));
- $b['subject'] = DI::l10n()->t('Your Friendica test account is about to expire.');
- $b['body'] = DI::l10n()->t("Hi %1\$s,\n\nYour test account on %2\$s will expire in less than five days. We hope you enjoyed this test drive and use this opportunity to find a permanent Friendica website for your integrated social communications. A list of public sites is available at %s/siteinfo - and for more information on setting up your own Friendica server please see the Friendica project website at https://friendi.ca.", $b['params']['to_name'], "[url=".DI::config()->get('system', 'url')."]".DI::config()->get('config', 'sitename')."[/url]", Search::getGlobalDirectory());
- }
+ $b['itemlink'] = DI::baseUrl()->get();
+ $b['epreamble'] = $b['preamble'] = DI::l10n()->t('Your account on %s will expire in a few days.', DI::config()->get('system', 'sitename'));
+ $b['subject'] = DI::l10n()->t('Your Friendica test account is about to expire.');
+ $b['body'] = DI::l10n()->t("Hi %1\$s,\n\nYour test account on %2\$s will expire in less than five days. We hope you enjoyed this test drive and use this opportunity to find a permanent Friendica website for your integrated social communications. A list of public sites is available at %s/siteinfo - and for more information on setting up your own Friendica server please see the Friendica project website at https://friendi.ca.", $b['params']['to_name'], "[url=".DI::config()->get('system', 'url')."]".DI::config()->get('config', 'sitename')."[/url]", Search::getGlobalDirectory());
+ }
}
* Version: 1.0
* Author: Mike Macgirvin <http://macgirvin.com/profile/mike>
*/
+
+use Friendica\App;
use Friendica\Core\Hook;
use Friendica\DI;
-function tictac_install() {
+function tictac_install()
+{
Hook::register('app_menu', 'addon/tictac/tictac.php', 'tictac_app_menu');
}
-function tictac_app_menu($a,&$b) {
+function tictac_app_menu(App $a, array &$b)
+{
$b['app_menu'][] = '<div class="app-title"><a href="tictac">' . DI::l10n()->t('Three Dimensional Tic-Tac-Toe') . '</a></div>';
}
-
-function tictac_module() {
+function tictac_module()
+{
return;
}
-
-
-
-
-function tictac_content(&$a) {
+function tictac_content(App $a) {
$o = '';
}
}
-function tumblr_hook_fork(&$a, &$b)
+function tumblr_hook_fork(App $a, array &$b)
{
if ($b['name'] != 'notifier_normal') {
return;
*
* @return array item data to be posted
*/
-function twitter_do_mirrorpost(App $a, $uid, $post)
+function twitter_do_mirrorpost(App $a, int $uid, $post)
{
$datarray['uid'] = $uid;
$datarray['extid'] = 'twitter::' . $post->id;
return $datarray;
}
-function twitter_fetchtimeline(App $a, $uid)
+function twitter_fetchtimeline(App $a, int $uid)
{
$ckey = DI::config()->get('twitter', 'consumerkey');
$csecret = DI::config()->get('twitter', 'consumersecret');
* @param integer $uriid URI Id used to store tags. 0 = create a new one; -1 = don't store tags for this post.
* @return array item array
*/
-function twitter_createpost(App $a, $uid, $post, array $self, $create_user, $only_existing_contact, $noquote, int $uriid = 0)
+function twitter_createpost(App $a, int $uid, $post, array $self, $create_user, bool $only_existing_contact, $noquote, int $uriid = 0)
{
$postarray = [];
$postarray['network'] = Protocol::TWITTER;
}
}
-function twitter_fetchparentposts(App $a, $uid, $post, TwitterOAuth $connection, array $self)
+function twitter_fetchparentposts(App $a, int $uid, $post, TwitterOAuth $connection, array $self)
{
Logger::info('Fetching parent posts', ['user' => $uid, 'post' => $post->id_str]);
}
}
-function twitter_fetchhometimeline(App $a, $uid)
+function twitter_fetchhometimeline(App $a, int $uid)
{
$ckey = DI::config()->get('twitter', 'consumerkey');
$csecret = DI::config()->get('twitter', 'consumersecret');
Logger::info('Last mentions ID for user ' . $uid . ' is now ' . $lastid);
}
-function twitter_fetch_own_contact(App $a, $uid)
+function twitter_fetch_own_contact(App $a, int $uid)
{
$ckey = DI::config()->get('twitter', 'consumerkey');
$csecret = DI::config()->get('twitter', 'consumersecret');
return $contact_id;
}
-function twitter_is_retweet(App $a, $uid, $body)
+function twitter_is_retweet(App $a, int $uid, string $body)
{
$body = trim($body);
return !isset($result->errors);
}
-function twitter_update_mentions($body)
+function twitter_update_mentions(string $body): string
{
$URLSearchString = '^\[\]';
$return = preg_replace_callback(
return $return;
}
-function twitter_convert_share(array $attributes, array $author_contact, $content, $is_quote_share)
+function twitter_convert_share(array $attributes, array $author_contact, string $content, bool $is_quote_share): string
{
if (empty($author_contact)) {
return $content . "\n\n" . $attributes['link'];
* Author: Michael Vogel <http://pirati.ca/profile/heluecht>
* Author: Matthias Ebers <https://loma.ml/profile/one>
*/
+
+use Friendica\App;
use Friendica\Content\Smilies;
use Friendica\Core\Hook;
Hook::register('smilie', 'addon/unicode_smilies/unicode_smilies.php', 'unicode_smilies_smilies');
}
-function unicode_smilies_smilies(&$a,&$b) {
+function unicode_smilies_smilies(App $a, array &$b)
+{
Smilies::add($b, ':-)', '😀');
Smilies::add($b, ':)', '😀');
Smilies::add($b, ':-(', '🙁');
* Author: Mike Macgirvin <http://macgirvin.com/profile/mike>
*
*/
+
+use Friendica\App;
use Friendica\Core\Hook;
use Friendica\DI;
Hook::register('page_end', 'addon/viewsrc/viewsrc.php', 'viewsrc_page_end');
}
-function viewsrc_page_end(&$a, &$o){
+function viewsrc_page_end(App $a, &$o){
DI::page()['htmlhead'] .= <<< EOS
<script>
$(function(){
EOS;
}
-function viewsrc_item_photo_menu(&$a, &$b)
+function viewsrc_item_photo_menu(App $a, array &$b)
{
if (!local_user()) {
return;
* Author: Stephen Mahood <https://friends.mayfirst.org/profile/marxistvegan>
* Author: Tobias Diekershoff <https://f.diekershoff.de/profile/tobias>
*/
+
+use Friendica\App;
use Friendica\Core\Hook;
use Friendica\Core\Renderer;
use Friendica\DI;
function webrtc_install() {
- Hook::register('app_menu', 'addon/webrtc/webrtc.php', 'webrtc_app_menu');
+ Hook::register('app_menu', 'addon/webrtc/webrtc.php', 'webrtc_app_menu');
}
-function webrtc_app_menu($a,&$b) {
+function webrtc_app_menu(App $a, array &$b)
+{
$b['app_menu'][] = '<div class="app-title"><a href="webrtc">' . DI::l10n()->t('WebRTC Videochat') . '</a></div>';
}
-function webrtc_addon_admin (&$a, &$o) {
- $t = Renderer::getMarkupTemplate( "admin.tpl", "addon/webrtc/" );
+function webrtc_addon_admin (App $a, &$o)
+{
+ $t = Renderer::getMarkupTemplate( "admin.tpl", "addon/webrtc/" );
$o = Renderer::replaceMacros( $t, [
'$submit' => DI::l10n()->t('Save Settings'),
'$webrtcurl' => ['webrtcurl', DI::l10n()->t('WebRTC Base URL'), DI::config()->get('webrtc','webrtcurl' ), DI::l10n()->t('Page your users will create a WebRTC chat room on. For example you could use https://live.mayfirst.org .')],
]);
}
-function webrtc_addon_admin_post (&$a) {
- $url = trim($_POST['webrtcurl'] ?? '');
- DI::config()->set('webrtc', 'webrtcurl', $url);
+function webrtc_addon_admin_post (App $a)
+{
+ $url = trim($_POST['webrtcurl'] ?? '');
+ DI::config()->set('webrtc', 'webrtcurl', $url);
}
function webrtc_module() {
return;
}
-function webrtc_content(&$a) {
- $o = '';
+function webrtc_content(App $a)
+{
+ $o = '';
- /* landingpage to create chatrooms */
- $webrtcurl = DI::config()->get('webrtc','webrtcurl');
+ /* landingpage to create chatrooms */
+ $webrtcurl = DI::config()->get('webrtc','webrtcurl');
- /* embedd the landing page in an iframe */
- $o .= '<h2>'.DI::l10n()->t('Video Chat').'</h2>';
- $o .= '<p>'.DI::l10n()->t('WebRTC is a video and audio conferencing tool that works in all modern browsers. Just create a new chat room and send the link to someone you want to chat with.').'</p>';
+ /* embedd the landing page in an iframe */
+ $o .= '<h2>'.DI::l10n()->t('Video Chat').'</h2>';
+ $o .= '<p>'.DI::l10n()->t('WebRTC is a video and audio conferencing tool that works in all modern browsers. Just create a new chat room and send the link to someone you want to chat with.').'</p>';
if ($webrtcurl == '') {
- $o .= '<p>'.DI::l10n()->t('Please contact your friendica admin and send a reminder to configure the WebRTC addon.').'</p>';
+ $o .= '<p>'.DI::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>';
+ $o .= '<iframe src="'.$webrtcurl.'" width="600px" height="600px"></iframe>';
}
-
- return $o;
+ return $o;
}
* 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)
+function windowsphonepush_settings_post(App $a, $post)
{
if (!local_user() || empty($_POST['windowsphonepush-submit'])) {
return;
}
-function wppost_settings_post(&$a, &$b)
+function wppost_settings_post(App $a, array &$b)
{
if(!empty($_POST['wppost-submit'])) {
DI::pConfig()->set(local_user(), 'wppost', 'post' , intval($_POST['wppost']));
}
}
-function wppost_hook_fork(&$a, &$b)
+function wppost_hook_fork(App $a, array &$b)
{
if ($b['name'] != 'notifier_normal') {
return;
}
}
-function wppost_post_local(&$a, &$b) {
+function wppost_post_local(App $a, array &$b) {
// This can probably be changed to allow editing by pointing to a different API endpoint
-function wppost_send(&$a, &$b)
+function wppost_send(App $a, array &$b)
{
if($b['deleted'] || $b['private'] || ($b['created'] !== $b['edited'])) {
return;