Visit [the Friendica website](http://friendi.ca/) to download the code with setup instructions.
It's a very simple installation process that anybody experienced in hosting websites, or with basic Linux experience can handle easily.
-###OpenID
+### OpenID
The first field on the Registration page is for an OpenID address.
If you do not have an OpenID address or do not wish to use OpenID, leave this field blank.
If you have an OpenID account elsewhere and wish to use it, enter the address into this field and click 'Register'.
Friendica will attempt to extract as much information as possible from your OpenID provider and return to this page with those items already filled in.
-###Your Full Name
+### Your Full Name
Please provide your full name **as you would like it to be displayed on this system**.
Most people use their real name for this, but you're under no obligation to do so yourself.
-###Email Address
+### Email Address
Please provide a valid email address.
Your email address is **never** published.
You can't get your initial password, or reset a lost password later without it.
This is the only bit of personal information that has to be accurate.
-###Nickname
+### Nickname
A nickname is used to generate web addresses for many of your personal pages, and is also treated like an email address when establishing communications with others.
Due to the way that the nickname is used, it has some limitations.
This is used in many places to identify your account, and once set it cannot be changed.
-###Directory Publishing
+### Directory Publishing
The registration form also allows you to choose whether or not to list your account in the online directory of your node.
This is like a "phone book" and you may choose to be unlisted.
If you choose 'No', you will essentially be invisible and have few opportunities for interaction.
Whichever you choose, this can be changed any time from your Settings page after you login.
-###Register
+### Register
Once you have provided the necessary details, click the 'Register' button.
An email will be sent to you providing your account login details.
'display_item' is called when formatting a post for display.
$b is an array:
- 'item' => The item (array) details pulled from the database
- 'output' => the (string) HTML representation of this item prior to adding it to the page
+ 'item' => The item (array) details pulled from the database
+ 'output' => the (string) HTML representation of this item prior to adding it to the page
### 'post_local'
* called when a status post or comment is entered on the local system
'profile_edit' is called prior to output of profile edit page.
$b is an array containing:
- 'profile' => profile (array) record from the database
- 'entry' => the (string) HTML of the generated entry
+ 'profile' => profile (array) record from the database
+ 'entry' => the (string) HTML of the generated entry
### 'profile_advanced'
* called when the HTML is generated for the 'Advanced profile', corresponding to the 'Profile' tab within a person's profile page
'directory_item' is called from the Directory page when formatting an item for display.
$b is an array:
- 'contact' => contact (array) record for the person from the database
+ 'contact' => contact (array) record for the person from the database
'entry' => the (string) HTML of the generated entry
### 'profile_sidebar_enter'
'profile_sidebar is called when generating the sidebar "short" profile for a page.
$b is an array:
- 'profile' => profile (array) record for the person from the database
- 'entry' => the (string) HTML of the generated entry
+ 'profile' => profile (array) record for the person from the database
+ 'entry' => the (string) HTML of the generated entry
### 'contact_block_end'
is called when formatting the block of contacts/friends on a profile sidebar has completed.
$b is an array:
- 'contacts' => array of contacts
- 'output' => the (string) generated HTML of the contact block
+ 'contacts' => array of contacts
+ 'output' => the (string) generated HTML of the contact block
### 'bbcode'
* called during conversion of bbcode to html
'personal_xrd' is called prior to output of personal XRD file.
$b is an array:
- 'user' => the user record for the person
- 'xml' => the complete XML to be output
+ 'user' => the user record for the person
+ 'xml' => the complete XML to be output
### 'home_content'
* called prior to output home page content, shown to unlogged users
is called when editing contact details on an individual from the Contacts page.
$b is an array:
- 'contact' => contact record (array) of target contact
- 'output' => the (string) generated HTML of the contact edit page
+ 'contact' => contact record (array) of target contact
+ 'output' => the (string) generated HTML of the contact edit page
### 'contact_edit_post'
* called when posting the contact edit page.
'avatar_lookup' is called when looking up the avatar.
$b is an array:
- 'size' => the size of the avatar that will be looked up
- 'email' => email to look up the avatar for
- 'url' => the (string) generated URL of the avatar
+ 'size' => the size of the avatar that will be looked up
+ 'email' => email to look up the avatar for
+ 'url' => the (string) generated URL of the avatar
### 'emailer_send_prepare'
'emailer_send_prepare' called from Emailer::send() before building the mime message.
Called after the HTML conversion in prepare_body.
Hook data:
'item' => item array (input)
- 'html' => converted item body (input/output)
- 'is_preview' => post preview flag (input)
+ 'html' => converted item body (input/output)
+ 'is_preview' => post preview flag (input)
'filter_reasons' => reasons array (input)
### 'prepare_body_final'
Called at the end of prepare_body.
Hook data:
'item' => item array (input)
- 'html' => converted item body (input/output)
+ 'html' => converted item body (input/output)
Complete list of hook callbacks
---
Here is a complete list of all hook callbacks with file locations (as of 01-Apr-2018). Please see the source for details of any hooks not documented above.
-index.php: Addon::callHooks('init_1');
-index.php: Addon::callHooks('app_menu', $arr);
-index.php: Addon::callHooks('page_content_top', $a->page['content']);
-index.php: Addon::callHooks($a->module.'_mod_init', $placeholder);
-index.php: Addon::callHooks($a->module.'_mod_init', $placeholder);
-index.php: Addon::callHooks($a->module.'_mod_post', $_POST);
-index.php: Addon::callHooks($a->module.'_mod_afterpost', $placeholder);
-index.php: Addon::callHooks($a->module.'_mod_content', $arr);
-index.php: Addon::callHooks($a->module.'_mod_aftercontent', $arr);
-index.php: Addon::callHooks('page_end', $a->page['content']);
+### index.php
+
+ Addon::callHooks('init_1');
+ Addon::callHooks('app_menu', $arr);
+ Addon::callHooks('page_content_top', $a->page['content']);
+ Addon::callHooks($a->module.'_mod_init', $placeholder);
+ Addon::callHooks($a->module.'_mod_init', $placeholder);
+ Addon::callHooks($a->module.'_mod_post', $_POST);
+ Addon::callHooks($a->module.'_mod_afterpost', $placeholder);
+ Addon::callHooks($a->module.'_mod_content', $arr);
+ Addon::callHooks($a->module.'_mod_aftercontent', $arr);
+ Addon::callHooks('page_end', $a->page['content']);
+
+### include/api.php
+
+ Addon::callHooks('logged_in', $a->user);
+ Addon::callHooks('authenticate', $addon_auth);
+ Addon::callHooks('logged_in', $a->user);
+
+### include/enotify.php
+
+ Addon::callHooks('enotify', $h);
+ Addon::callHooks('enotify_store', $datarray);
+ Addon::callHooks('enotify_mail', $datarray);
+ Addon::callHooks('check_item_notification', $notification_data);
+
+### include/conversation.php
+
+ Addon::callHooks('conversation_start', $cb);
+ Addon::callHooks('render_location', $locate);
+ Addon::callHooks('display_item', $arr);
+ Addon::callHooks('display_item', $arr);
+ Addon::callHooks('item_photo_menu', $args);
+ Addon::callHooks('jot_tool', $jotplugins);
+
+### include/security.php
+
+ Addon::callHooks('logged_in', $a->user);
+
+### include/text.php
+
+ Addon::callHooks('contact_block_end', $arr);
+ Addon::callHooks('poke_verbs', $arr);
+ Addon::callHooks('prepare_body_init', $item);
+ Addon::callHooks('prepare_body_content_filter', $hook_data);
+ Addon::callHooks('prepare_body', $hook_data);
+ Addon::callHooks('prepare_body_final', $hook_data);
+
+### include/items.php
+
+ Addon::callHooks('page_info_data', $data);
+
+### mod/directory.php
+
+ Addon::callHooks('directory_item', $arr);
+
+### mod/xrd.php
+
+ Addon::callHooks('personal_xrd', $arr);
+
+### mod/ping.php
+
+ Addon::callHooks('network_ping', $arr);
+
+### mod/parse_url.php
+
+ Addon::callHooks("parse_link", $arr);
+
+### mod/manage.php
+
+ Addon::callHooks('home_init', $ret);
+
+### mod/acl.php
+
+ Addon::callHooks('acl_lookup_end', $results);
+
+### mod/network.php
+
+ Addon::callHooks('network_content_init', $arr);
+ Addon::callHooks('network_tabs', $arr);
+
+### mod/friendica.php
+
+ Addon::callHooks('about_hook', $o);
+
+### mod/subthread.php
+
+ Addon::callHooks('post_local_end', $arr);
+
+### mod/profiles.php
+
+ Addon::callHooks('profile_post', $_POST);
+ Addon::callHooks('profile_edit', $arr);
+
+### mod/settings.php
+
+ Addon::callHooks('addon_settings_post', $_POST);
+ Addon::callHooks('connector_settings_post', $_POST);
+ Addon::callHooks('display_settings_post', $_POST);
+ Addon::callHooks('settings_post', $_POST);
+ Addon::callHooks('addon_settings', $settings_addons);
+ Addon::callHooks('connector_settings', $settings_connectors);
+ Addon::callHooks('display_settings', $o);
+ Addon::callHooks('settings_form', $o);
+
+### mod/photos.php
+
+ Addon::callHooks('photo_post_init', $_POST);
+ Addon::callHooks('photo_post_file', $ret);
+ Addon::callHooks('photo_post_end', $foo);
+ Addon::callHooks('photo_post_end', $foo);
+ Addon::callHooks('photo_post_end', $foo);
+ Addon::callHooks('photo_post_end', $foo);
+ Addon::callHooks('photo_post_end', intval($item_id));
+ Addon::callHooks('photo_upload_form', $ret);
+
+### mod/profile.php
+
+ Addon::callHooks('profile_advanced', $o);
+
+### mod/home.php
+
+ Addon::callHooks('home_init', $ret);
+ Addon::callHooks("home_content", $content);
+
+### mod/poke.php
+
+ Addon::callHooks('post_local_end', $arr);
+
+### mod/contacts.php
+
+ Addon::callHooks('contact_edit_post', $_POST);
+ Addon::callHooks('contact_edit', $arr);
+
+### mod/tagger.php
+
+ Addon::callHooks('post_local_end', $arr);
+
+### mod/lockview.php
+
+ Addon::callHooks('lockview_content', $item);
+
+### mod/uexport.php
+
+ Addon::callHooks('uexport_options', $options);
+
+### mod/register.php
+
+ Addon::callHooks('register_post', $arr);
+ Addon::callHooks('register_form', $arr);
+
+### mod/item.php
+
+ Addon::callHooks('post_local_start', $_REQUEST);
+ Addon::callHooks('post_local', $datarray);
+ Addon::callHooks('post_local_end', $datarray);
+
+### mod/editpost.php
+
+ Addon::callHooks('jot_tool', $jotplugins);
+
+### src/Network/FKOAuth1.php
+
+ Addon::callHooks('logged_in', $a->user);
+
+### src/Render/FriendicaSmartyEngine.php
-include/api.php: Addon::callHooks('logged_in', $a->user);
-include/api.php: Addon::callHooks('authenticate', $addon_auth);
-include/api.php: Addon::callHooks('logged_in', $a->user);
+ Addon::callHooks("template_vars", $arr);
-include/enotify.php: Addon::callHooks('enotify', $h);
-include/enotify.php: Addon::callHooks('enotify_store', $datarray);
-include/enotify.php: Addon::callHooks('enotify_mail', $datarray);
-include/enotify.php: Addon::callHooks('check_item_notification', $notification_data);
+### src/Model/Item.php
-include/conversation.php: Addon::callHooks('conversation_start', $cb);
-include/conversation.php: Addon::callHooks('render_location', $locate);
-include/conversation.php: Addon::callHooks('display_item', $arr);
-include/conversation.php: Addon::callHooks('display_item', $arr);
-include/conversation.php: Addon::callHooks('item_photo_menu', $args);
-include/conversation.php: Addon::callHooks('jot_tool', $jotplugins);
+ Addon::callHooks('post_local', $item);
+ Addon::callHooks('post_remote', $item);
+ Addon::callHooks('post_local_end', $posted_item);
+ Addon::callHooks('post_remote_end', $posted_item);
+ Addon::callHooks('tagged', $arr);
+ Addon::callHooks('post_local_end', $new_item);
-include/security.php: Addon::callHooks('logged_in', $a->user);
+### src/Model/Contact.php
-include/text.php: Addon::callHooks('contact_block_end', $arr);
-include/text.php: Addon::callHooks('poke_verbs', $arr);
-include/text.php: Addon::callHooks('prepare_body_init', $item);
-include/text.php: Addon::callHooks('prepare_body_content_filter', $hook_data);
-include/text.php: Addon::callHooks('prepare_body', $hook_data);
-include/text.php: Addon::callHooks('prepare_body_final', $hook_data);
+ Addon::callHooks('contact_photo_menu', $args);
+ Addon::callHooks('follow', $arr);
-include/items.php: Addon::callHooks('page_info_data', $data);
+### src/Model/Profile.php
-mod/directory.php: Addon::callHooks('directory_item', $arr);
+ Addon::callHooks('profile_sidebar_enter', $profile);
+ Addon::callHooks('profile_sidebar', $arr);
+ Addon::callHooks('profile_tabs', $arr);
+ Addon::callHooks('zrl_init', $arr);
-mod/xrd.php: Addon::callHooks('personal_xrd', $arr);
+### src/Model/Event.php
-mod/ping.php: Addon::callHooks('network_ping', $arr);
+ Addon::callHooks('event_updated', $event['id']);
+ Addon::callHooks("event_created", $event['id']);
-mod/parse_url.php: Addon::callHooks("parse_link", $arr);
+### src/Model/User.php
-mod/manage.php: Addon::callHooks('home_init', $ret);
+ Addon::callHooks('register_account', $uid);
+ Addon::callHooks('remove_user', $user);
-mod/acl.php: Addon::callHooks('acl_lookup_end', $results);
+### src/Content/Text/BBCode.php
-mod/network.php: Addon::callHooks('network_content_init', $arr);
-mod/network.php: Addon::callHooks('network_tabs', $arr);
+ Addon::callHooks('bbcode', $text);
+ Addon::callHooks('bb2diaspora', $text);
-mod/friendica.php: Addon::callHooks('about_hook', $o);
-mod/subthread.php: Addon::callHooks('post_local_end', $arr);
+### src/Content/Text/HTML.php
-mod/profiles.php: Addon::callHooks('profile_post', $_POST);
-mod/profiles.php: Addon::callHooks('profile_edit', $arr);
+ Addon::callHooks('html2bbcode', $message);
-mod/settings.php: Addon::callHooks('addon_settings_post', $_POST);
-mod/settings.php: Addon::callHooks('connector_settings_post', $_POST);
-mod/settings.php: Addon::callHooks('display_settings_post', $_POST);
-mod/settings.php: Addon::callHooks('settings_post', $_POST);
-mod/settings.php: Addon::callHooks('addon_settings', $settings_addons);
-mod/settings.php: Addon::callHooks('connector_settings', $settings_connectors);
-mod/settings.php: Addon::callHooks('display_settings', $o);
-mod/settings.php: Addon::callHooks('settings_form', $o);
+### src/Content/Smilies.php
-mod/photos.php: Addon::callHooks('photo_post_init', $_POST);
-mod/photos.php: Addon::callHooks('photo_post_file', $ret);
-mod/photos.php: Addon::callHooks('photo_post_end', $foo);
-mod/photos.php: Addon::callHooks('photo_post_end', $foo);
-mod/photos.php: Addon::callHooks('photo_post_end', $foo);
-mod/photos.php: Addon::callHooks('photo_post_end', $foo);
-mod/photos.php: Addon::callHooks('photo_post_end', intval($item_id));
-mod/photos.php: Addon::callHooks('photo_upload_form', $ret);
+ Addon::callHooks('smilie', $params);
-mod/profile.php: Addon::callHooks('profile_advanced', $o);
+### src/Content/Feature.php
-mod/home.php: Addon::callHooks('home_init', $ret);
-mod/home.php: Addon::callHooks("home_content", $content);
+ Addon::callHooks('isEnabled', $arr);
+ Addon::callHooks('get', $arr);
-mod/poke.php: Addon::callHooks('post_local_end', $arr);
+### src/Content/ContactSelector.php
-mod/contacts.php: Addon::callHooks('contact_edit_post', $_POST);
-mod/contacts.php: Addon::callHooks('contact_edit', $arr);
+ Addon::callHooks('network_to_name', $nets);
+ Addon::callHooks('gender_selector', $select);
+ Addon::callHooks('sexpref_selector', $select);
+ Addon::callHooks('marital_selector', $select);
-mod/tagger.php: Addon::callHooks('post_local_end', $arr);
+### src/Content/OEmbed.php
-mod/lockview.php: Addon::callHooks('lockview_content', $item);
+ Addon::callHooks('oembed_fetch_url', $embedurl, $j);
-mod/uexport.php: Addon::callHooks('uexport_options', $options);
+### src/Content/Nav.php
-mod/register.php: Addon::callHooks('register_post', $arr);
-mod/register.php: Addon::callHooks('register_form', $arr);
+ Addon::callHooks('page_header', $a->page['nav']);
+ Addon::callHooks('nav_info', $nav);
-mod/item.php: Addon::callHooks('post_local_start', $_REQUEST);
-mod/item.php: Addon::callHooks('post_local', $datarray);
-mod/item.php: Addon::callHooks('post_local_end', $datarray);
+### src/Worker/Directory.php
-mod/editpost.php: Addon::callHooks('jot_tool', $jotplugins);
+ Addon::callHooks('globaldir_update', $arr);
-src/Network/FKOAuth1.php: Addon::callHooks('logged_in', $a->user);
+### src/Worker/Notifier.php
-src/Render/FriendicaSmartyEngine.php: Addon::callHooks("template_vars", $arr);
+ Addon::callHooks('notifier_end', $target_item);
-src/Model/Item.php: Addon::callHooks('post_local', $item);
-src/Model/Item.php: Addon::callHooks('post_remote', $item);
-src/Model/Item.php: Addon::callHooks('post_local_end', $posted_item);
-src/Model/Item.php: Addon::callHooks('post_remote_end', $posted_item);
-src/Model/Item.php: Addon::callHooks('tagged', $arr);
-src/Model/Item.php: Addon::callHooks('post_local_end', $new_item);
+### src/Worker/Queue.php
-src/Model/Contact.php: Addon::callHooks('contact_photo_menu', $args);
-src/Model/Contact.php: Addon::callHooks('follow', $arr);
+ Addon::callHooks('queue_predeliver', $r);
+ Addon::callHooks('queue_deliver', $params);
-src/Model/Profile.php: Addon::callHooks('profile_sidebar_enter', $profile);
-src/Model/Profile.php: Addon::callHooks('profile_sidebar', $arr);
-src/Model/Profile.php: Addon::callHooks('profile_tabs', $arr);
-src/Model/Profile.php: Addon::callHooks('zrl_init', $arr);
+### src/Module/Login.php
-src/Model/Event.php: Addon::callHooks('event_updated', $event['id']);
-src/Model/Event.php: Addon::callHooks("event_created", $event['id']);
+ Addon::callHooks('authenticate', $addon_auth);
+ Addon::callHooks('login_hook', $o);
-src/Model/User.php: Addon::callHooks('register_account', $uid);
-src/Model/User.php: Addon::callHooks('remove_user', $user);
+### src/Module/Logout.php
-src/Content/Text/BBCode.php: Addon::callHooks('bbcode', $text);
-src/Content/Text/BBCode.php: Addon::callHooks('bb2diaspora', $text);
+ Addon::callHooks("logging_out");
-src/Content/Text/HTML.php: Addon::callHooks('html2bbcode', $message);
+### src/Object/Post.php
-src/Content/Smilies.php: Addon::callHooks('smilie', $params);
+ Addon::callHooks('render_location', $locate);
+ Addon::callHooks('display_item', $arr);
-src/Content/Feature.php: Addon::callHooks('isEnabled', $arr);
-src/Content/Feature.php: Addon::callHooks('get', $arr);
+### src/Core/ACL.php
-src/Content/ContactSelector.php: Addon::callHooks('network_to_name', $nets);
-src/Content/ContactSelector.php: Addon::callHooks('gender_selector', $select);
-src/Content/ContactSelector.php: Addon::callHooks('sexpref_selector', $select);
-src/Content/ContactSelector.php: Addon::callHooks('marital_selector', $select);
+ Addon::callHooks('contact_select_options', $x);
+ Addon::callHooks($a->module.'_pre_'.$selname, $arr);
+ Addon::callHooks($a->module.'_post_'.$selname, $o);
+ Addon::callHooks($a->module.'_pre_'.$selname, $arr);
+ Addon::callHooks($a->module.'_post_'.$selname, $o);
+ Addon::callHooks('jot_networks', $jotnets);
-src/Content/OEmbed.php: Addon::callHooks('oembed_fetch_url', $embedurl, $j);
+### src/Core/Worker.php
-src/Content/Nav.php: Addon::callHooks('page_header', $a->page['nav']);
-src/Content/Nav.php: Addon::callHooks('nav_info', $nav);
+ Addon::callHooks("proc_run", $arr);
-src/Worker/Directory.php: Addon::callHooks('globaldir_update', $arr);
-src/Worker/Notifier.php: Addon::callHooks('notifier_end', $target_item);
-src/Worker/Queue.php: Addon::callHooks('queue_predeliver', $r);
-src/Worker/Queue.php: Addon::callHooks('queue_deliver', $params);
+### src/Util/Emailer.php
-src/Module/Login.php: Addon::callHooks('authenticate', $addon_auth);
-src/Module/Login.php: Addon::callHooks('login_hook', $o);
-src/Module/Logout.php: Addon::callHooks("logging_out");
+ Addon::callHooks('emailer_send_prepare', $params);
+ Addon::callHooks("emailer_send", $hookdata);
-src/Object/Post.php: Addon::callHooks('render_location', $locate);
-src/Object/Post.php: Addon::callHooks('display_item', $arr);
+### src/Util/Map.php
-src/Core/ACL.php: Addon::callHooks('contact_select_options', $x);
-src/Core/ACL.php: Addon::callHooks($a->module.'_pre_'.$selname, $arr);
-src/Core/ACL.php: Addon::callHooks($a->module.'_post_'.$selname, $o);
-src/Core/ACL.php: Addon::callHooks($a->module.'_pre_'.$selname, $arr);
-src/Core/ACL.php: Addon::callHooks($a->module.'_post_'.$selname, $o);
-src/Core/ACL.php: Addon::callHooks('jot_networks', $jotnets);
+ Addon::callHooks('generate_map', $arr);
+ Addon::callHooks('generate_named_map', $arr);
+ Addon::callHooks('Map::getCoordinates', $arr);
-src/Core/Worker.php: Addon::callHooks("proc_run", $arr);
+### src/Util/Network.php
-src/Util/Emailer.php: Addon::callHooks('emailer_send_prepare', $params);
-src/Util/Emailer.php: Addon::callHooks("emailer_send", $hookdata);
+ Addon::callHooks('avatar_lookup', $avatar);
-src/Util/Map.php: Addon::callHooks('generate_map', $arr);
-src/Util/Map.php: Addon::callHooks('generate_named_map', $arr);
-src/Util/Map.php: Addon::callHooks('Map::getCoordinates', $arr);
+### src/Util/ParseUrl.php
-src/Util/Network.php: Addon::callHooks('avatar_lookup', $avatar);
+ Addon::callHooks("getsiteinfo", $siteinfo);
-src/Util/ParseUrl.php: Addon::callHooks("getsiteinfo", $siteinfo);
+### src/Protocol/DFRN.php
-src/Protocol/DFRN.php: Addon::callHooks('atom_feed_end', $atom);
-src/Protocol/DFRN.php: Addon::callHooks('atom_feed_end', $atom);
+ Addon::callHooks('atom_feed_end', $atom);
+ Addon::callHooks('atom_feed_end', $atom);
* [https://jappix.com](https://jappix.com)
* [http://xmpp.net](http://xmpp.net)
-###1. Basics
+### 1. Basics
At first you have to get the current version. You can either pull it from [Github](https://github.com) like so:
Activate the BOSH proxy.
-###2. Settings
+### 2. Settings
Go to your user account settings next and choose the addon page.
Scroll down until you find the Jappix Mini addon settings.
rendertime
-###rendertime
+### rendertime
This addon doesn't speed up your system.
It helps to analyze your bottlenecks.
The following Apache modules are recommended:
-###Cache-Control
+### Cache-Control
This module tells the client to cache the content of static files so that they aren't fetched with every request.
Enable the module "mod_expires" by typing in "a2enmod expires" as root.
Also see the Apache [2.2](http://httpd.apache.org/docs/2.2/mod/mod_expires.html) / [2.4](https://httpd.apache.org/docs/2.4/mod/mod_expires.html) documentation.
-###Compress content
+### Compress content
This module compresses the traffic between the web server and the client.
Enable the module "mod_deflate" by typing in "a2enmod deflate" as root.
PHP
--------
-###FCGI
+### FCGI
When using Apache think about using FCGI.
In a Debian-based distribution you will need to install the packages named "php5-cgi" and "libapache2-mod-fcgid".
Please refer to external documentation for a more detailed explanation how to set up a system based upon FCGI.
-###Database
+### Database
There are scripts like [tuning-primer.sh](http://www.day32.com/MySQL/) and [mysqltuner.pl](http://mysqltuner.pl) that analyze your database server and give hints on values that could be changed.
* tobias.diekershoff@gmx.net
* License: 3-clause BSD license
-###Configuration
+### Configuration
To use this addon you need a OAuth Consumer key pair (key & secret).
You can get it from [Twitter](https://twitter.com/apps).
After this, your users can configure their Twitter account settings from "Settings -> Connector Settings".
-###More documentation
+### More documentation
Find the author's documentation here: [http://diekershoff.homeunix.net/redmine/wiki/friendikaplugin/Twitter_Plugin](http://diekershoff.homeunix.net/redmine/wiki/friendikaplugin/Twitter_Plugin)
* tobias.diekershoff@gmx.net
* License: 3-clause BSD license
-###Configuration
+### Configuration
When the addon is activated the user has to acquire the following in order to connect to the GNU Social account of choice.
Connect to users of alternate networks
---
-###Across the Federation and Fedivese
+### Across the Federation and Fedivese
You can also use your Identity Address or other people's Identity Addresses to become friends across the so-called Federation/Fedivese of open source social media.
Currently, Friendica supports connections with people on diaspora*, Red, Hubzilla, GNU Social, StatusNet, Mastodon, Pleroma, socialhome, and ganggo platforms.
People on these networks can also initiate contact with you, if they know your contact details.
-###Other social media
+### Other social media
If you server provides this functionality, you can also connect with people one
Twitter or important feeds from Tumblr, Wordpress, and many more.
To connect, enter their contact details in the "connect" box on your "Contacts" page.
-###Email
+### Email
If you have supplied your mailbox connection information on your Settings page, you can enter the email address of anybody that has sent you a message recently and have their email messages show up in your social stream.
You can also reply to them from within Friendica.
Subscribing to mailing lists is done in the same way, but without the use of the "mailto:" prefix.
To subscribe to a mailing list, enter the email in following example format "mailling-list@list-server.net".
-###Syndication feeds
+### Syndication feeds
You can "follow" almost anybody or any website that produces a syndication feed (RSS/Atom,etc.).
If we can find an information stream and a name to attach to the contact, we'll try to connect with them.
**'post_remote'** - wird aufgerufen, wenn ein Beitrag aus einer anderen Quelle empfangen wird. Dies kann auch genutzt werden, um lokale Aktivitäten oder systemgenerierte Nachrichten zu veröffentlichen/posten.
$b ist das Item-Array einer Information, die in der Datenbank und im Item gespeichert ist.
- {Bitte beachte: der Seiteninhalt ist bbcode - nicht HTML)
+ {Bitte beachte: der Seiteninhalt ist bbcode - nicht HTML)
**'settings_form'** - wird aufgerufen, wenn die HTML-Ausgabe für die Einstellungsseite generiert wird.
$b ist die HTML-Ausgabe (String) der Einstellungsseite vor dem finalen "</form>"-Tag.
Eine komplette Liste aller Hook-Callbacks mit den zugehörigen Dateien (am 01-Apr-2018 generiert): Bitte schau in die Quellcodes für Details zu Hooks, die oben nicht dokumentiert sind.
-index.php: Addon::callHooks('init_1');
-index.php: Addon::callHooks('app_menu', $arr);
-index.php: Addon::callHooks('page_content_top', $a->page['content']);
-index.php: Addon::callHooks($a->module.'_mod_init', $placeholder);
-index.php: Addon::callHooks($a->module.'_mod_init', $placeholder);
-index.php: Addon::callHooks($a->module.'_mod_post', $_POST);
-index.php: Addon::callHooks($a->module.'_mod_afterpost', $placeholder);
-index.php: Addon::callHooks($a->module.'_mod_content', $arr);
-index.php: Addon::callHooks($a->module.'_mod_aftercontent', $arr);
-index.php: Addon::callHooks('page_end', $a->page['content']);
+### index.php
+
+ Addon::callHooks('init_1');
+ Addon::callHooks('app_menu', $arr);
+ Addon::callHooks('page_content_top', $a->page['content']);
+ Addon::callHooks($a->module.'_mod_init', $placeholder);
+ Addon::callHooks($a->module.'_mod_init', $placeholder);
+ Addon::callHooks($a->module.'_mod_post', $_POST);
+ Addon::callHooks($a->module.'_mod_afterpost', $placeholder);
+ Addon::callHooks($a->module.'_mod_content', $arr);
+ Addon::callHooks($a->module.'_mod_aftercontent', $arr);
+ Addon::callHooks('page_end', $a->page['content']);
+
+### include/api.php
+
+ Addon::callHooks('logged_in', $a->user);
+ Addon::callHooks('authenticate', $addon_auth);
+ Addon::callHooks('logged_in', $a->user);
+
+### include/enotify.php
+
+ Addon::callHooks('enotify', $h);
+ Addon::callHooks('enotify_store', $datarray);
+ Addon::callHooks('enotify_mail', $datarray);
+ Addon::callHooks('check_item_notification', $notification_data);
+
+### include/conversation.php
+
+ Addon::callHooks('conversation_start', $cb);
+ Addon::callHooks('render_location', $locate);
+ Addon::callHooks('display_item', $arr);
+ Addon::callHooks('display_item', $arr);
+ Addon::callHooks('item_photo_menu', $args);
+ Addon::callHooks('jot_tool', $jotplugins);
+
+### include/security.php
+
+ Addon::callHooks('logged_in', $a->user);
+
+### include/text.php
+
+ Addon::callHooks('contact_block_end', $arr);
+ Addon::callHooks('poke_verbs', $arr);
+ Addon::callHooks('prepare_body_init', $item);
+ Addon::callHooks('prepare_body_content_filter', $hook_data);
+ Addon::callHooks('prepare_body', $hook_data);
+ Addon::callHooks('prepare_body_final', $hook_data);
+
+### include/items.php
+
+ Addon::callHooks('page_info_data', $data);
+
+### mod/directory.php
+
+ Addon::callHooks('directory_item', $arr);
+
+### mod/xrd.php
+
+ Addon::callHooks('personal_xrd', $arr);
+
+### mod/ping.php
+
+ Addon::callHooks('network_ping', $arr);
+
+### mod/parse_url.php
+
+ Addon::callHooks("parse_link", $arr);
+
+### mod/manage.php
+
+ Addon::callHooks('home_init', $ret);
+
+### mod/acl.php
+
+ Addon::callHooks('acl_lookup_end', $results);
+
+### mod/network.php
+
+ Addon::callHooks('network_content_init', $arr);
+ Addon::callHooks('network_tabs', $arr);
+
+### mod/friendica.php
+
+ Addon::callHooks('about_hook', $o);
+
+### mod/subthread.php
+
+ Addon::callHooks('post_local_end', $arr);
+
+### mod/profiles.php
+
+ Addon::callHooks('profile_post', $_POST);
+ Addon::callHooks('profile_edit', $arr);
+
+### mod/settings.php
+
+ Addon::callHooks('addon_settings_post', $_POST);
+ Addon::callHooks('connector_settings_post', $_POST);
+ Addon::callHooks('display_settings_post', $_POST);
+ Addon::callHooks('settings_post', $_POST);
+ Addon::callHooks('addon_settings', $settings_addons);
+ Addon::callHooks('connector_settings', $settings_connectors);
+ Addon::callHooks('display_settings', $o);
+ Addon::callHooks('settings_form', $o);
+
+### mod/photos.php
+
+ Addon::callHooks('photo_post_init', $_POST);
+ Addon::callHooks('photo_post_file', $ret);
+ Addon::callHooks('photo_post_end', $foo);
+ Addon::callHooks('photo_post_end', $foo);
+ Addon::callHooks('photo_post_end', $foo);
+ Addon::callHooks('photo_post_end', $foo);
+ Addon::callHooks('photo_post_end', intval($item_id));
+ Addon::callHooks('photo_upload_form', $ret);
+
+### mod/profile.php
+
+ Addon::callHooks('profile_advanced', $o);
+
+### mod/home.php
+
+ Addon::callHooks('home_init', $ret);
+ Addon::callHooks("home_content", $content);
+
+### mod/poke.php
+
+ Addon::callHooks('post_local_end', $arr);
+
+### mod/contacts.php
+
+ Addon::callHooks('contact_edit_post', $_POST);
+ Addon::callHooks('contact_edit', $arr);
+
+### mod/tagger.php
+
+ Addon::callHooks('post_local_end', $arr);
+
+### mod/lockview.php
+
+ Addon::callHooks('lockview_content', $item);
+
+### mod/uexport.php
+
+ Addon::callHooks('uexport_options', $options);
+
+### mod/register.php
+
+ Addon::callHooks('register_post', $arr);
+ Addon::callHooks('register_form', $arr);
+
+### mod/item.php
+
+ Addon::callHooks('post_local_start', $_REQUEST);
+ Addon::callHooks('post_local', $datarray);
+ Addon::callHooks('post_local_end', $datarray);
+
+### mod/editpost.php
+
+ Addon::callHooks('jot_tool', $jotplugins);
+
+### src/Network/FKOAuth1.php
+
+ Addon::callHooks('logged_in', $a->user);
+
+### src/Render/FriendicaSmartyEngine.php
-include/api.php: Addon::callHooks('logged_in', $a->user);
-include/api.php: Addon::callHooks('authenticate', $addon_auth);
-include/api.php: Addon::callHooks('logged_in', $a->user);
+ Addon::callHooks("template_vars", $arr);
-include/enotify.php: Addon::callHooks('enotify', $h);
-include/enotify.php: Addon::callHooks('enotify_store', $datarray);
-include/enotify.php: Addon::callHooks('enotify_mail', $datarray);
-include/enotify.php: Addon::callHooks('check_item_notification', $notification_data);
+### src/Model/Item.php
-include/conversation.php: Addon::callHooks('conversation_start', $cb);
-include/conversation.php: Addon::callHooks('render_location', $locate);
-include/conversation.php: Addon::callHooks('display_item', $arr);
-include/conversation.php: Addon::callHooks('display_item', $arr);
-include/conversation.php: Addon::callHooks('item_photo_menu', $args);
-include/conversation.php: Addon::callHooks('jot_tool', $jotplugins);
+ Addon::callHooks('post_local', $item);
+ Addon::callHooks('post_remote', $item);
+ Addon::callHooks('post_local_end', $posted_item);
+ Addon::callHooks('post_remote_end', $posted_item);
+ Addon::callHooks('tagged', $arr);
+ Addon::callHooks('post_local_end', $new_item);
-include/security.php: Addon::callHooks('logged_in', $a->user);
+### src/Model/Contact.php
-include/text.php: Addon::callHooks('contact_block_end', $arr);
-include/text.php: Addon::callHooks('poke_verbs', $arr);
-include/text.php: Addon::callHooks('prepare_body_init', $item);
-include/text.php: Addon::callHooks('prepare_body_content_filter', $hook_data);
-include/text.php: Addon::callHooks('prepare_body', $hook_data);
-include/text.php: Addon::callHooks('prepare_body_final', $hook_data);
+ Addon::callHooks('contact_photo_menu', $args);
+ Addon::callHooks('follow', $arr);
-include/items.php: Addon::callHooks('page_info_data', $data);
+### src/Model/Profile.php
-mod/directory.php: Addon::callHooks('directory_item', $arr);
+ Addon::callHooks('profile_sidebar_enter', $profile);
+ Addon::callHooks('profile_sidebar', $arr);
+ Addon::callHooks('profile_tabs', $arr);
+ Addon::callHooks('zrl_init', $arr);
-mod/xrd.php: Addon::callHooks('personal_xrd', $arr);
+### src/Model/Event.php
-mod/ping.php: Addon::callHooks('network_ping', $arr);
+ Addon::callHooks('event_updated', $event['id']);
+ Addon::callHooks("event_created", $event['id']);
-mod/parse_url.php: Addon::callHooks("parse_link", $arr);
+### src/Model/User.php
-mod/manage.php: Addon::callHooks('home_init', $ret);
+ Addon::callHooks('register_account', $uid);
+ Addon::callHooks('remove_user', $user);
-mod/acl.php: Addon::callHooks('acl_lookup_end', $results);
+### src/Content/Text/BBCode.php
-mod/network.php: Addon::callHooks('network_content_init', $arr);
-mod/network.php: Addon::callHooks('network_tabs', $arr);
+ Addon::callHooks('bbcode', $text);
+ Addon::callHooks('bb2diaspora', $text);
-mod/friendica.php: Addon::callHooks('about_hook', $o);
-mod/subthread.php: Addon::callHooks('post_local_end', $arr);
+### src/Content/Text/HTML.php
-mod/profiles.php: Addon::callHooks('profile_post', $_POST);
-mod/profiles.php: Addon::callHooks('profile_edit', $arr);
+ Addon::callHooks('html2bbcode', $message);
-mod/settings.php: Addon::callHooks('addon_settings_post', $_POST);
-mod/settings.php: Addon::callHooks('connector_settings_post', $_POST);
-mod/settings.php: Addon::callHooks('display_settings_post', $_POST);
-mod/settings.php: Addon::callHooks('settings_post', $_POST);
-mod/settings.php: Addon::callHooks('addon_settings', $settings_addons);
-mod/settings.php: Addon::callHooks('connector_settings', $settings_connectors);
-mod/settings.php: Addon::callHooks('display_settings', $o);
-mod/settings.php: Addon::callHooks('settings_form', $o);
+### src/Content/Smilies.php
-mod/photos.php: Addon::callHooks('photo_post_init', $_POST);
-mod/photos.php: Addon::callHooks('photo_post_file', $ret);
-mod/photos.php: Addon::callHooks('photo_post_end', $foo);
-mod/photos.php: Addon::callHooks('photo_post_end', $foo);
-mod/photos.php: Addon::callHooks('photo_post_end', $foo);
-mod/photos.php: Addon::callHooks('photo_post_end', $foo);
-mod/photos.php: Addon::callHooks('photo_post_end', intval($item_id));
-mod/photos.php: Addon::callHooks('photo_upload_form', $ret);
+ Addon::callHooks('smilie', $params);
-mod/profile.php: Addon::callHooks('profile_advanced', $o);
+### src/Content/Feature.php
-mod/home.php: Addon::callHooks('home_init', $ret);
-mod/home.php: Addon::callHooks("home_content", $content);
+ Addon::callHooks('isEnabled', $arr);
+ Addon::callHooks('get', $arr);
-mod/poke.php: Addon::callHooks('post_local_end', $arr);
+### src/Content/ContactSelector.php
-mod/contacts.php: Addon::callHooks('contact_edit_post', $_POST);
-mod/contacts.php: Addon::callHooks('contact_edit', $arr);
+ Addon::callHooks('network_to_name', $nets);
+ Addon::callHooks('gender_selector', $select);
+ Addon::callHooks('sexpref_selector', $select);
+ Addon::callHooks('marital_selector', $select);
-mod/tagger.php: Addon::callHooks('post_local_end', $arr);
+### src/Content/OEmbed.php
-mod/lockview.php: Addon::callHooks('lockview_content', $item);
+ Addon::callHooks('oembed_fetch_url', $embedurl, $j);
-mod/uexport.php: Addon::callHooks('uexport_options', $options);
+### src/Content/Nav.php
-mod/register.php: Addon::callHooks('register_post', $arr);
-mod/register.php: Addon::callHooks('register_form', $arr);
+ Addon::callHooks('page_header', $a->page['nav']);
+ Addon::callHooks('nav_info', $nav);
-mod/item.php: Addon::callHooks('post_local_start', $_REQUEST);
-mod/item.php: Addon::callHooks('post_local', $datarray);
-mod/item.php: Addon::callHooks('post_local_end', $datarray);
+### src/Worker/Directory.php
-mod/editpost.php: Addon::callHooks('jot_tool', $jotplugins);
+ Addon::callHooks('globaldir_update', $arr);
-src/Network/FKOAuth1.php: Addon::callHooks('logged_in', $a->user);
+### src/Worker/Notifier.php
-src/Render/FriendicaSmartyEngine.php: Addon::callHooks("template_vars", $arr);
+ Addon::callHooks('notifier_end', $target_item);
-src/Model/Item.php: Addon::callHooks('post_local', $item);
-src/Model/Item.php: Addon::callHooks('post_remote', $item);
-src/Model/Item.php: Addon::callHooks('post_local_end', $posted_item);
-src/Model/Item.php: Addon::callHooks('post_remote_end', $posted_item);
-src/Model/Item.php: Addon::callHooks('tagged', $arr);
-src/Model/Item.php: Addon::callHooks('post_local_end', $new_item);
+### src/Worker/Queue.php
-src/Model/Contact.php: Addon::callHooks('contact_photo_menu', $args);
-src/Model/Contact.php: Addon::callHooks('follow', $arr);
+ Addon::callHooks('queue_predeliver', $r);
+ Addon::callHooks('queue_deliver', $params);
-src/Model/Profile.php: Addon::callHooks('profile_sidebar_enter', $profile);
-src/Model/Profile.php: Addon::callHooks('profile_sidebar', $arr);
-src/Model/Profile.php: Addon::callHooks('profile_tabs', $arr);
-src/Model/Profile.php: Addon::callHooks('zrl_init', $arr);
+### src/Module/Login.php
-src/Model/Event.php: Addon::callHooks('event_updated', $event['id']);
-src/Model/Event.php: Addon::callHooks("event_created", $event['id']);
+ Addon::callHooks('authenticate', $addon_auth);
+ Addon::callHooks('login_hook', $o);
-src/Model/User.php: Addon::callHooks('register_account', $uid);
-src/Model/User.php: Addon::callHooks('remove_user', $user);
+### src/Module/Logout.php
-src/Content/Text/BBCode.php: Addon::callHooks('bbcode', $text);
-src/Content/Text/BBCode.php: Addon::callHooks('bb2diaspora', $text);
+ Addon::callHooks("logging_out");
-src/Content/Text/HTML.php: Addon::callHooks('html2bbcode', $message);
+### src/Object/Post.php
-src/Content/Smilies.php: Addon::callHooks('smilie', $params);
+ Addon::callHooks('render_location', $locate);
+ Addon::callHooks('display_item', $arr);
-src/Content/Feature.php: Addon::callHooks('isEnabled', $arr);
-src/Content/Feature.php: Addon::callHooks('get', $arr);
+### src/Core/ACL.php
-src/Content/ContactSelector.php: Addon::callHooks('network_to_name', $nets);
-src/Content/ContactSelector.php: Addon::callHooks('gender_selector', $select);
-src/Content/ContactSelector.php: Addon::callHooks('sexpref_selector', $select);
-src/Content/ContactSelector.php: Addon::callHooks('marital_selector', $select);
+ Addon::callHooks('contact_select_options', $x);
+ Addon::callHooks($a->module.'_pre_'.$selname, $arr);
+ Addon::callHooks($a->module.'_post_'.$selname, $o);
+ Addon::callHooks($a->module.'_pre_'.$selname, $arr);
+ Addon::callHooks($a->module.'_post_'.$selname, $o);
+ Addon::callHooks('jot_networks', $jotnets);
-src/Content/OEmbed.php: Addon::callHooks('oembed_fetch_url', $embedurl, $j);
+### src/Core/Worker.php
-src/Content/Nav.php: Addon::callHooks('page_header', $a->page['nav']);
-src/Content/Nav.php: Addon::callHooks('nav_info', $nav);
+ Addon::callHooks("proc_run", $arr);
-src/Worker/Directory.php: Addon::callHooks('globaldir_update', $arr);
-src/Worker/Notifier.php: Addon::callHooks('notifier_end', $target_item);
-src/Worker/Queue.php: Addon::callHooks('queue_predeliver', $r);
-src/Worker/Queue.php: Addon::callHooks('queue_deliver', $params);
+### src/Util/Emailer.php
-src/Module/Login.php: Addon::callHooks('authenticate', $addon_auth);
-src/Module/Login.php: Addon::callHooks('login_hook', $o);
-src/Module/Logout.php: Addon::callHooks("logging_out");
+ Addon::callHooks('emailer_send_prepare', $params);
+ Addon::callHooks("emailer_send", $hookdata);
-src/Object/Post.php: Addon::callHooks('render_location', $locate);
-src/Object/Post.php: Addon::callHooks('display_item', $arr);
+### src/Util/Map.php
-src/Core/ACL.php: Addon::callHooks('contact_select_options', $x);
-src/Core/ACL.php: Addon::callHooks($a->module.'_pre_'.$selname, $arr);
-src/Core/ACL.php: Addon::callHooks($a->module.'_post_'.$selname, $o);
-src/Core/ACL.php: Addon::callHooks($a->module.'_pre_'.$selname, $arr);
-src/Core/ACL.php: Addon::callHooks($a->module.'_post_'.$selname, $o);
-src/Core/ACL.php: Addon::callHooks('jot_networks', $jotnets);
+ Addon::callHooks('generate_map', $arr);
+ Addon::callHooks('generate_named_map', $arr);
+ Addon::callHooks('Map::getCoordinates', $arr);
-src/Core/Worker.php: Addon::callHooks("proc_run", $arr);
+### src/Util/Network.php
-src/Util/Emailer.php: Addon::callHooks('emailer_send_prepare', $params);
-src/Util/Emailer.php: Addon::callHooks("emailer_send", $hookdata);
+ Addon::callHooks('avatar_lookup', $avatar);
-src/Util/Map.php: Addon::callHooks('generate_map', $arr);
-src/Util/Map.php: Addon::callHooks('generate_named_map', $arr);
-src/Util/Map.php: Addon::callHooks('Map::getCoordinates', $arr);
+### src/Util/ParseUrl.php
-src/Util/Network.php: Addon::callHooks('avatar_lookup', $avatar);
+ Addon::callHooks("getsiteinfo", $siteinfo);
-src/Util/ParseUrl.php: Addon::callHooks("getsiteinfo", $siteinfo);
+### src/Protocol/DFRN.php
-src/Protocol/DFRN.php: Addon::callHooks('atom_feed_end', $atom);
-src/Protocol/DFRN.php: Addon::callHooks('atom_feed_end', $atom);
+ Addon::callHooks('atom_feed_end', $atom);
+ Addon::callHooks('atom_feed_end', $atom);
* IRC - Internet Relay Chat
* Jappix
-##IRC Addon
+## IRC Addon
Sobald das Addon aktiviert ist, kannst Du den Chat unter [deineSeite.de/irc](../irc) finden.
Beachte aber, dass dieser Chat auch ohne Anmeldung auf Deiner Seite zugänglich ist und somit auch Fremde diesen Chat mitnutzen können.
Weiter Informationen zu IRC findest Du zum Beispiel auf <a href="http://wiki.ubuntuusers.de/IRC" target="_blank">ubuntuusers.de</a>, in <a href="https://de.wikipedia.org/wiki/Internet_Relay_Chat" target="_blank">Wikipedia</a> oder bei <a href="http://www.irchelp.org/" target="_blank">icrhelp.org</a> (in Englisch).
-##Jappix Mini
+## Jappix Mini
Das Jappix Mini Addon erlaubt das Erstellen einer Chatbox für Jabber/XMPP-Kontakte.
Ein Jabber/XMPP Account sollte vor der Installation bereits vorhanden sein.
rendertime
-###rendertime
+### rendertime
**Beschreibung**
Wenn du einen Apache-Webserver nutzt, aktiviere bitte die folgenden Module:
-###Cache-Control
+### Cache-Control
**Beschreibung**
Weitere Informationen findest du hier: http://httpd.apache.org/docs/2.2/mod/mod_expires.html.
-###Compress content
+### Compress content
**Beschreibung**
Weitere Informationen findest du hier: http://httpd.apache.org/docs/2.2/mod/mod_deflate.html
-###PHP
+### PHP
**FCGI**
Wenn du eine Debian-basierte Distribution nutzt, dann wirst du die Pakete "php5-cgi" und "libapache2-mod-fcgid" benötigen.
Nutze externe Dokumente, um eine detailiertere Erklärung für die Einrichtung eines Systems auf FCGI-Basis zu erhalten.
-###Database
+### Database
Es gibt Skripte wie [tuning-primer.sh](http://www.day32.com/MySQL/) und [mysqltuner.pl](http://mysqltuner.pl), die den Datenbankserver analysieren und Hinweise darauf geben, welche Werte verändert werden könnten.
$o = replace_macros($tpl, [
'$form_security_token' => get_form_security_token("send_invite"),
- '$invite' => L10n::t('Send invitations'),
- '$addr_text' => L10n::t('Enter email addresses, one per line:'),
- '$msg_text' => L10n::t('Your message:'),
- '$default_message' => L10n::t('You are cordially invited to join me and other close friends on Friendica - and help us to create a better social web.') . "\r\n" . "\r\n"
+ '$title' => L10n::t('Send invitations'),
+ '$recipients' => ['recipients', L10n::t('Enter email addresses, one per line:')],
+ '$message' => ['message', L10n::t('Your message:'),L10n::t('You are cordially invited to join me and other close friends on Friendica - and help us to create a better social web.') . "\r\n" . "\r\n"
. $linktxt
. "\r\n" . "\r\n" . (($invonly) ? L10n::t('You will need to supply this invitation code: $invite_code') . "\r\n" . "\r\n" : '') .L10n::t('Once you have registered, please connect with me via my profile page at:')
. "\r\n" . "\r\n" . System::baseUrl() . '/profile/' . $a->user['nickname']
- . "\r\n" . "\r\n" . L10n::t('For more information about the Friendica project and why we feel it is important, please visit http://friendi.ca') . "\r\n" . "\r\n" ,
+ . "\r\n" . "\r\n" . L10n::t('For more information about the Friendica project and why we feel it is important, please visit http://friendi.ca') . "\r\n" . "\r\n"],
'$submit' => L10n::t('Submit')
]);
// This is only needed for private postings since this is already done for public ones before
if (is_null($fields)) {
+ $private = true;
if (!($fields = self::validPosting($msg))) {
logger("Invalid posting");
return false;
}
+ } else {
+ $private = false;
}
$type = $fields->getName();
switch ($type) {
case "account_migration":
+ if (!$private) {
+ logger('Message with type ' . $type . ' is not private, quitting.');
+ return false;
+ }
return self::receiveAccountMigration($importer, $fields);
case "account_deletion":
- return self::receiveAccountDeletion($importer, $fields);
+ return self::receiveAccountDeletion($fields);
case "comment":
return self::receiveComment($importer, $sender, $fields, $msg["message"]);
case "contact":
+ if (!$private) {
+ logger('Message with type ' . $type . ' is not private, quitting.');
+ return false;
+ }
return self::receiveContactRequest($importer, $fields);
case "conversation":
+ if (!$private) {
+ logger('Message with type ' . $type . ' is not private, quitting.');
+ return false;
+ }
return self::receiveConversation($importer, $msg, $fields);
case "like":
return self::receiveLike($importer, $sender, $fields);
case "message":
+ if (!$private) {
+ logger('Message with type ' . $type . ' is not private, quitting.');
+ return false;
+ }
return self::receiveMessage($importer, $fields);
case "participation":
+ if (!$private) {
+ logger('Message with type ' . $type . ' is not private, quitting.');
+ return false;
+ }
return self::receiveParticipation($importer, $fields);
case "photo": // Not implemented
return self::receivePollParticipation($importer, $fields);
case "profile":
+ if (!$private) {
+ logger('Message with type ' . $type . ' is not private, quitting.');
+ return false;
+ }
return self::receiveProfile($importer, $fields);
case "reshare":
/**
* @brief Processes an account deletion
*
- * @param array $importer Array of the importer user
* @param object $data The message object
*
* @return bool Success
*/
- private static function receiveAccountDeletion($importer, $data)
+ private static function receiveAccountDeletion($data)
{
- /// @todo Account deletion should remove the contact from the global contacts as well
-
$author = notags(unxmlify($data->author));
- $contact = self::contactByHandle($importer["uid"], $author);
- if (!$contact) {
- logger("cannot find contact for author: ".$author);
- return false;
+ $contacts = dba::select('contact', ['id'], ['addr' => $author]);
+ while ($contact = dba::fetch($contacts)) {
+ Contact::remove($contact["id"]);
}
- // We now remove the contact
- Contact::remove($contact["id"]);
+ dba::delete('gcontact', ['addr' => $author]);
+
+ logger('Removed contacts for ' . $author);
+
return true;
}
<form action="invite" method="post" id="invite-form" >
-<input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
+ <input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
-<div id="invite-wrapper">
+ <div id="invite-wrapper">
-<h3>{{$invite}}</h3>
+ <h3>{{$title}}</h3>
-<div id="invite-recipient-text">
-{{$addr_text}}
-</div>
+ {{include file="field_textarea.tpl" field=$recipients}}
+ {{include file="field_textarea.tpl" field=$message}}
-<div id="invite-recipient-textarea">
-<textarea id="invite-recipients" name="recipients" rows="8" cols="32" ></textarea>
-</div>
+ <div id="invite-submit-wrapper">
+ <input type="submit" name="submit" value="{{$submit|escape:'html'}}" />
+ </div>
-<div id="invite-message-text">
-{{$msg_text}}
-</div>
-
-<div id="invite-message-textarea">
-<textarea id="invite-message" name="message" rows="10" cols="72" >{{$default_message}}</textarea>
-</div>
-
-<div id="invite-submit-wrapper">
-<input type="submit" name="submit" value="{{$submit|escape:'html'}}" />
-</div>
-
-</div>
+ </div>
</form>
#adminpage, .delegate-content-wrapper, .uexport-content-wrapper,
.viewcontacts-content-wrapper, .dfrn_request-content-wrapper,
.friendica-content-wrapper, .credits-content-wrapper, .nogroup-content-wrapper,
-.profperm-content-wrapper {
+.profperm-content-wrapper, .invite-content-wrapper {
min-height: calc(100vh - 150px);
padding: 15px;
padding-bottom: 20px;
//Get first element with the class "heading"
//and use it as title.
loadModalTitle();
+
+ // We need to initialize autosize again for new
+ // modal conent.
+ autosize($('.modal .text-autosize'));
}
});
}
--- /dev/null
+
+<div id="invite-wrapper">
+
+ <h3 class="heading">{{$title}}</h3>
+
+ <form action="invite" method="post" id="invite-form" >
+ <input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
+
+ <div id="invite-content-wrapper">
+ {{include file="field_textarea.tpl" field=$recipients}}
+ {{include file="field_textarea.tpl" field=$message}}
+
+ <div id="invite-submit-wrapper" class="form-group pull-right">
+ <button type="submit" name="submit" class="btn btn-primary">{{$submit|escape:'html'}}</button>
+ </div>
+ <div class="clear"></div>
+ </div>
+ </form>
+</div>
<div class="side-link" id="side-suggest-link"><a href="suggest" >{{$nv.suggest}}</a></div>
{{if $nv.inv}}
- <div class="side-link" id="side-invite-link" ><a href="invite" >{{$nv.inv}}</a></div>
+ <div class="side-link" id="side-invite-link" ><button type="button" class="btn-link" onclick="addToModal('invite'); return false;">{{$nv.inv}}</button></div>
{{/if}}
</div>
.videos .video-top-wrapper:hover .video-delete {
opacity: 1;
}
-
+/* invite page */
+#invite-wrapper textarea {
+ width: 100%;
+}
/* upload/select popup */
fbrowser.image .photo-album-image-wrapper { margin-left: 10px; }
#message-preview { margin-top: 15px; }