aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/Comparison-of-activity-stream-networks.md4
-rw-r--r--doc/Developers.md4
-rw-r--r--doc/Hooks.md136
-rw-r--r--doc/Hubzilla_on_OpenShift.bb105
-rw-r--r--doc/Plugins.md6
-rw-r--r--doc/Primary-Directory.md (renamed from doc/Primary-Directory)0
-rw-r--r--doc/Privacy.md33
-rw-r--r--doc/README.md45
-rw-r--r--doc/Remove-Account.md1
-rw-r--r--doc/Widgets.md10
-rw-r--r--doc/about.bb14
-rw-r--r--doc/addons.bb4
-rw-r--r--doc/addons_gnusocial.bb7
-rw-r--r--doc/admins.bb15
-rw-r--r--doc/api_posting.bb5
-rw-r--r--doc/bugs.bb45
-rw-r--r--doc/campaign.bb2
-rw-r--r--doc/classRedmatrix_1_1Import_1_1Import-members.html131
-rw-r--r--doc/classRedmatrix_1_1Import_1_1Import.html446
-rw-r--r--doc/credits.bb2
-rw-r--r--doc/database.bb124
-rw-r--r--doc/database/db_abook.bb (renamed from doc/db_abook.bb)0
-rw-r--r--doc/database/db_account.bb (renamed from doc/db_account.bb)0
-rw-r--r--doc/database/db_addon.bb (renamed from doc/db_addon.bb)0
-rw-r--r--doc/database/db_app.bb (renamed from doc/db_app.bb)0
-rw-r--r--doc/database/db_attach.bb (renamed from doc/db_attach.bb)0
-rw-r--r--doc/database/db_auth_codes.bb (renamed from doc/db_auth_codes.bb)0
-rw-r--r--doc/database/db_cache.bb (renamed from doc/db_cache.bb)0
-rw-r--r--doc/database/db_channel.bb (renamed from doc/db_channel.bb)0
-rw-r--r--doc/database/db_chat.bb (renamed from doc/db_chat.bb)0
-rw-r--r--doc/database/db_chatpresence.bb (renamed from doc/db_chatpresence.bb)0
-rw-r--r--doc/database/db_chatroom.bb (renamed from doc/db_chatroom.bb)0
-rw-r--r--doc/database/db_clients.bb (renamed from doc/db_clients.bb)0
-rw-r--r--doc/database/db_config.bb (renamed from doc/db_config.bb)0
-rw-r--r--doc/database/db_conv.bb (renamed from doc/db_conv.bb)0
-rw-r--r--doc/database/db_event.bb (renamed from doc/db_event.bb)0
-rw-r--r--doc/database/db_fcontact.bb (renamed from doc/db_fcontact.bb)0
-rw-r--r--doc/database/db_ffinder.bb (renamed from doc/db_ffinder.bb)0
-rw-r--r--doc/database/db_fserver.bb (renamed from doc/db_fserver.bb)0
-rw-r--r--doc/database/db_fsuggest.bb (renamed from doc/db_fsuggest.bb)0
-rw-r--r--doc/database/db_group_member.bb (renamed from doc/db_group_member.bb)0
-rw-r--r--doc/database/db_groups.bb (renamed from doc/db_groups.bb)0
-rw-r--r--doc/database/db_hook.bb (renamed from doc/db_hook.bb)0
-rw-r--r--doc/database/db_hubloc.bb (renamed from doc/db_hubloc.bb)0
-rw-r--r--doc/database/db_issue.bb (renamed from doc/db_issue.bb)0
-rw-r--r--doc/database/db_item.bb (renamed from doc/db_item.bb)0
-rw-r--r--doc/database/db_item_id.bb (renamed from doc/db_item_id.bb)0
-rw-r--r--doc/database/db_likes.bb (renamed from doc/db_likes.bb)0
-rw-r--r--doc/database/db_mail.bb (renamed from doc/db_mail.bb)0
-rw-r--r--doc/database/db_manage.bb (renamed from doc/db_manage.bb)0
-rw-r--r--doc/database/db_menu.bb (renamed from doc/db_menu.bb)0
-rw-r--r--doc/database/db_menu_item.bb (renamed from doc/db_menu_item.bb)0
-rw-r--r--doc/database/db_notify.bb (renamed from doc/db_notify.bb)0
-rw-r--r--doc/database/db_obj.bb (renamed from doc/db_obj.bb)0
-rw-r--r--doc/database/db_outq.bb (renamed from doc/db_outq.bb)0
-rw-r--r--doc/database/db_pconfig.bb (renamed from doc/db_pconfig.bb)0
-rw-r--r--doc/database/db_photo.bb (renamed from doc/db_photo.bb)0
-rw-r--r--doc/database/db_poll.bb (renamed from doc/db_poll.bb)0
-rw-r--r--doc/database/db_poll_elm.bb (renamed from doc/db_poll_elm.bb)0
-rw-r--r--doc/database/db_profdef.bb (renamed from doc/db_profdef.bb)0
-rw-r--r--doc/database/db_profext.bb (renamed from doc/db_profext.bb)0
-rw-r--r--doc/database/db_profile.bb (renamed from doc/db_profile.bb)0
-rw-r--r--doc/database/db_profile_check.bb (renamed from doc/db_profile_check.bb)0
-rw-r--r--doc/database/db_register.bb (renamed from doc/db_register.bb)0
-rw-r--r--doc/database/db_session.bb (renamed from doc/db_session.bb)0
-rw-r--r--doc/database/db_shares.bb (renamed from doc/db_shares.bb)0
-rw-r--r--doc/database/db_sign.bb (renamed from doc/db_sign.bb)0
-rw-r--r--doc/database/db_site.bb (renamed from doc/db_site.bb)0
-rw-r--r--doc/database/db_source.bb (renamed from doc/db_source.bb)0
-rw-r--r--doc/database/db_spam.bb (renamed from doc/db_spam.bb)0
-rw-r--r--doc/database/db_sys_perms.bb (renamed from doc/db_sys_perms.bb)0
-rw-r--r--doc/database/db_term.bb (renamed from doc/db_term.bb)0
-rw-r--r--doc/database/db_tokens.bb (renamed from doc/db_tokens.bb)0
-rw-r--r--doc/database/db_updates.bb (renamed from doc/db_updates.bb)0
-rw-r--r--doc/database/db_verify.bb (renamed from doc/db_verify.bb)0
-rw-r--r--doc/database/db_vote.bb (renamed from doc/db_vote.bb)0
-rw-r--r--doc/database/db_xchan.bb (renamed from doc/db_xchan.bb)0
-rw-r--r--doc/database/db_xchat.bb (renamed from doc/db_xchat.bb)0
-rw-r--r--doc/database/db_xconfig.bb (renamed from doc/db_xconfig.bb)0
-rw-r--r--doc/database/db_xign.bb (renamed from doc/db_xign.bb)0
-rw-r--r--doc/database/db_xlink.bb (renamed from doc/db_xlink.bb)0
-rw-r--r--doc/database/db_xprof.bb (renamed from doc/db_xprof.bb)0
-rw-r--r--doc/database/db_xtag.bb (renamed from doc/db_xtag.bb)0
-rw-r--r--doc/dav_dolphin.bb4
-rw-r--r--doc/dav_mount.bb8
-rw-r--r--doc/dav_nautilus.bb4
-rw-r--r--doc/dav_nemo.bb10
-rw-r--r--doc/dav_windows.bb6
-rw-r--r--doc/de/features.bb75
-rw-r--r--doc/de/main.bb29
-rw-r--r--doc/dev_beginner.bb6
-rw-r--r--doc/develop.bb36
-rw-r--r--doc/developers.bb4
-rw-r--r--doc/diaspora_compat.md6
-rw-r--r--doc/directories.bb95
-rw-r--r--doc/encryption.bb2
-rw-r--r--doc/external-resource-links.bb2
-rw-r--r--doc/faq_developers.bb422
-rw-r--r--doc/features.bb34
-rw-r--r--doc/general.bb20
-rw-r--r--doc/hidden_configs.bb43
-rw-r--r--doc/history.md19
-rw-r--r--doc/hook/about_hook.bb1
-rw-r--r--doc/hook/accept_follow.bb1
-rw-r--r--doc/hook/account_downgrade.bb1
-rw-r--r--doc/hook/account_settings.bb1
-rw-r--r--doc/hook/account_settings_post.bb1
-rw-r--r--doc/hook/activity_received.bb1
-rw-r--r--doc/hook/affinity_labels.bb1
-rw-r--r--doc/hook/api_perm_is_allowed.bb1
-rw-r--r--doc/hook/app_menu.bb1
-rw-r--r--doc/hook/atom_author.bb1
-rw-r--r--doc/hook/atom_entry.bb1
-rw-r--r--doc/hook/atom_feed.bb1
-rw-r--r--doc/hook/atom_feed_end.bb1
-rw-r--r--doc/hook/attach_upload_file.bb1
-rw-r--r--doc/hook/authenticate.bb29
-rw-r--r--doc/hook/avatar_lookup.bb1
-rw-r--r--doc/hook/bb2diaspora.bb1
-rw-r--r--doc/hook/bbcode.bb1
-rw-r--r--doc/hook/channel_remove.bb1
-rw-r--r--doc/hook/chat_message.bb1
-rw-r--r--doc/hook/chat_post.bb1
-rw-r--r--doc/hook/check_account_email.bb1
-rw-r--r--doc/hook/check_account_invite.bb1
-rw-r--r--doc/hook/check_account_password.bb1
-rw-r--r--doc/hook/connect_premium.bb1
-rw-r--r--doc/hook/connector_settings.bb1
-rw-r--r--doc/hook/construct_page.bb1
-rw-r--r--doc/hook/contact_block_end.bb1
-rw-r--r--doc/hook/contact_edit.bb1
-rw-r--r--doc/hook/contact_edit_post.bb1
-rw-r--r--doc/hook/contact_select_options.bb1
-rw-r--r--doc/hook/conversation_start.bb1
-rw-r--r--doc/hook/create_identity.bb1
-rw-r--r--doc/hook/cron.bb1
-rw-r--r--doc/hook/cron_daily.bb1
-rw-r--r--doc/hook/cron_weekly.bb1
-rw-r--r--doc/hook/directory_item.bb1
-rw-r--r--doc/hook/discover_by_webbie.bb1
-rw-r--r--doc/hook/display_item.bb1
-rw-r--r--doc/hook/display_settings.bb1
-rw-r--r--doc/hook/display_settings_post.bb1
-rw-r--r--doc/hook/donate_contributors.bb1
-rw-r--r--doc/hook/donate_plugin.bb1
-rw-r--r--doc/hook/donate_sponsors.bb1
-rw-r--r--doc/hook/dreport_is_storable.bb1
-rw-r--r--doc/hook/drop_item.bb1
-rw-r--r--doc/hook/enotify.bb1
-rw-r--r--doc/hook/enotify_mail.bb1
-rw-r--r--doc/hook/enotify_store.bb1
-rw-r--r--doc/hook/event_created.bb1
-rw-r--r--doc/hook/event_updated.bb1
-rw-r--r--doc/hook/externals_url_select.bb1
-rw-r--r--doc/hook/feature_enabled.bb1
-rw-r--r--doc/hook/feature_settings.bb1
-rw-r--r--doc/hook/feature_settings_post.bb1
-rw-r--r--doc/hook/follow.bb1
-rw-r--r--doc/hook/follow_allow.bb1
-rw-r--r--doc/hook/gender_selector.bb1
-rw-r--r--doc/hook/gender_selector_min.bb1
-rw-r--r--doc/hook/generate_map.bb1
-rw-r--r--doc/hook/generate_named_map.bb1
-rw-r--r--doc/hook/get_all_api_perms.bb1
-rw-r--r--doc/hook/get_all_perms.bb1
-rw-r--r--doc/hook/get_features.bb1
-rw-r--r--doc/hook/get_role_perms.bb1
-rw-r--r--doc/hook/get_widgets.bb1
-rw-r--r--doc/hook/global_permissions.bb1
-rw-r--r--doc/hook/home_content.bb1
-rw-r--r--doc/hook/home_init.bb1
-rw-r--r--doc/hook/hostxrd.bb1
-rw-r--r--doc/hook/html2bbcode.bb1
-rw-r--r--doc/hook/identity_basic_export.bb1
-rw-r--r--doc/hook/import_author_xchan.bb1
-rw-r--r--doc/hook/import_channel.bb1
-rw-r--r--doc/hook/import_directory_profile.bb1
-rw-r--r--doc/hook/import_xchan.bb1
-rw-r--r--doc/hook/item_photo_menu.bb1
-rw-r--r--doc/hook/item_store.bb1
-rw-r--r--doc/hook/item_store_update.bb1
-rw-r--r--doc/hook/item_translate.bb1
-rw-r--r--doc/hook/jot_networks.bb1
-rw-r--r--doc/hook/jot_tool.bb1
-rw-r--r--doc/hook/load_pdl.bb1
-rw-r--r--doc/hook/local_dir_update.bb1
-rw-r--r--doc/hook/logged_in.bb1
-rw-r--r--doc/hook/logging_out.bb1
-rw-r--r--doc/hook/login_hook.bb1
-rw-r--r--doc/hook/magic_auth.bb1
-rw-r--r--doc/hook/magic_auth_openid_success.bb1
-rw-r--r--doc/hook/magic_auth_success.bb1
-rw-r--r--doc/hook/main_slider.bb1
-rw-r--r--doc/hook/marital_selector.bb1
-rw-r--r--doc/hook/marital_selector_min.bb1
-rw-r--r--doc/hook/module_loaded.bb1
-rw-r--r--doc/hook/module_mod_aftercontent.bb12
-rw-r--r--doc/hook/module_mod_content.bb10
-rw-r--r--doc/hook/module_mod_init.bb1
-rw-r--r--doc/hook/module_mod_post.bb1
-rw-r--r--doc/hook/mood_verbs.bb1
-rw-r--r--doc/hook/nav.bb1
-rw-r--r--doc/hook/network_content_init.bb1
-rw-r--r--doc/hook/network_ping.bb1
-rw-r--r--doc/hook/network_tabs.bb1
-rw-r--r--doc/hook/network_to_name.bb1
-rw-r--r--doc/hook/notifier_end.bb1
-rw-r--r--doc/hook/notifier_hub.bb1
-rw-r--r--doc/hook/notifier_normal.bb1
-rw-r--r--doc/hook/obj_verbs.bb1
-rw-r--r--doc/hook/oembed_probe.bb1
-rw-r--r--doc/hook/page_content_top.bb1
-rw-r--r--doc/hook/page_end.bb1
-rw-r--r--doc/hook/page_header.bb1
-rw-r--r--doc/hook/parse_atom.bb1
-rw-r--r--doc/hook/parse_link.bb1
-rw-r--r--doc/hook/pdl_selector.bb1
-rw-r--r--doc/hook/perm_is_allowed.bb1
-rw-r--r--doc/hook/permissions_create.bb1
-rw-r--r--doc/hook/permissions_update.bb1
-rw-r--r--doc/hook/personal_xrd.bb1
-rw-r--r--doc/hook/photo_post_end.bb1
-rw-r--r--doc/hook/photo_upload_begin.bb1
-rw-r--r--doc/hook/photo_upload_end.bb1
-rw-r--r--doc/hook/photo_upload_file.bb1
-rw-r--r--doc/hook/photo_upload_form.bb1
-rw-r--r--doc/hook/poke_verbs.bb1
-rw-r--r--doc/hook/post_local.bb1
-rw-r--r--doc/hook/post_local_end.bb1
-rw-r--r--doc/hook/post_local_start.bb1
-rw-r--r--doc/hook/post_mail.bb1
-rw-r--r--doc/hook/post_mail_end.bb1
-rw-r--r--doc/hook/post_remote.bb1
-rw-r--r--doc/hook/post_remote_end.bb1
-rw-r--r--doc/hook/post_remote_update.bb1
-rw-r--r--doc/hook/post_remote_update_end.bb1
-rw-r--r--doc/hook/prepare_body.bb1
-rw-r--r--doc/hook/prepare_body_final.bb1
-rw-r--r--doc/hook/prepare_body_init.bb1
-rw-r--r--doc/hook/probe_well_known.bb1
-rw-r--r--doc/hook/proc_run.bb1
-rw-r--r--doc/hook/process_channel_sync_delivery.bb1
-rw-r--r--doc/hook/profile_advanced.bb1
-rw-r--r--doc/hook/profile_edit.bb1
-rw-r--r--doc/hook/profile_photo_content_end.bb1
-rw-r--r--doc/hook/profile_post.bb1
-rw-r--r--doc/hook/profile_sidebar.bb1
-rw-r--r--doc/hook/profile_sidebar_enter.bb1
-rw-r--r--doc/hook/profile_tabs.bb1
-rw-r--r--doc/hook/register_account.bb1
-rw-r--r--doc/hook/render_location.bb1
-rw-r--r--doc/hook/replace_macros.bb1
-rw-r--r--doc/hook/reverse_magic_auth.bb1
-rw-r--r--doc/hook/settings_form.bb1
-rw-r--r--doc/hook/settings_post.bb1
-rw-r--r--doc/hook/sexpref_selector.bb1
-rw-r--r--doc/hook/sexpref_selector_min.bb1
-rw-r--r--doc/hook/smilie.bb1
-rw-r--r--doc/hook/tagged.bb1
-rw-r--r--doc/hook/validate_channelname.bb1
-rw-r--r--doc/hook/webfinger.bb1
-rw-r--r--doc/hook/well_known.bb1
-rw-r--r--doc/hook/zid.bb1
-rw-r--r--doc/hook/zid_init.bb1
-rw-r--r--doc/hook/zot_finger.bb1
-rw-r--r--doc/hooklist.bb494
-rw-r--r--doc/hooks.html1
-rw-r--r--doc/html/index.php1
-rw-r--r--doc/install/sample-lighttpd.conf90
-rw-r--r--doc/install/sample-nginx.conf142
-rw-r--r--doc/main.bb82
-rw-r--r--doc/members.bb25
-rw-r--r--doc/plugins.bb4
-rw-r--r--doc/red2pi.bb4
-rw-r--r--doc/roadmap.bb2
-rw-r--r--doc/theme_management.bb10
-rw-r--r--doc/to_do_code.bb16
-rw-r--r--doc/to_do_doco.bb23
-rw-r--r--doc/troubleshooting.bb2
-rw-r--r--doc/what_is_zot.bb32
280 files changed, 2391 insertions, 712 deletions
diff --git a/doc/Comparison-of-activity-stream-networks.md b/doc/Comparison-of-activity-stream-networks.md
index 9d8972d7c..d76ae1006 100644
--- a/doc/Comparison-of-activity-stream-networks.md
+++ b/doc/Comparison-of-activity-stream-networks.md
@@ -4,7 +4,7 @@ The goal of this table was to provide an overview of the security and privacy pr
| project | license | distributed | supports node isolation | server-to-server encryption | 1-click E2EE* | database encryption sceme | supports cloning[^5] | encryption of private messages | PFS chat | wall-to-wall interaction | supports post editing and unsend private message | other |
|-----------+---------------+-------------+-------------------------+-------------------------------------------+------------------------------------------+-----------------------------------------------------+-------------------------+-------------------------------------------------------------------------------------------------+-----------------------------------------------+--------------------------------------------------------------+--------------------------------------------------+------------------------------------------------------------------------------|
-| redmatrix | ISC aka MIT | yes | yes | Zot (PKI) + TLS | yes (via JavaScript, AES-256) | content obfuscation, private keys hidden in the DB. | yes, partly implemented | impossible to message privately in plaintext | no | yes, multiple separated channels possible within one account | yes | privacy built in, run your own @ home, nodes are called hubs |
+| hubzilla | ISC aka MIT | yes | yes | Zot (PKI) + TLS | yes (via JavaScript, AES-256) | content obfuscation, private keys hidden in the DB. | yes, partly implemented | impossible to message privately in plaintext | no | yes, multiple separated channels possible within one account | yes | privacy built in, run your own @ home, nodes are called hubs |
| diaspora | AGPLv3orlater | yes | no[^1] | PKI + SSL/TLS[^1] | no[^2] | mostly plaintext | no | ? | no | yes, no naming policy | no | nodes are called pods |
| facebook | proprietary | no | no | planned, probably not implemented yet[^3] | implemented but not offered to users[^4] | unknown | no, walled garden | no, 3-d party plugin Cryptocat and pidgin is availiable but the user is not informed about this | no, with Cryptocat: yes, with pidgin+OTR: yes | only one wall allowed | only post editing | "real name"-policy enforced, advertising-driven, for profit company US-based |
| twitter | proprietary | no | no | unknown | no | unknown, probably none | no, walled garden | no | no | yes | only post editing | advertising-driven, for profit company US-based |
@@ -20,4 +20,4 @@ This table was edited with emacs using org-mode.
[^4]: http://www.computerworld.com/article/2488773/cybercrime-hacking/facebook-holds-back-on-end-to-end-encryption.html
-[^5]: see the redmatrix help files for details about this feature.
+[^5]: see the hubzilla help files for details about this feature.
diff --git a/doc/Developers.md b/doc/Developers.md
index e6f113bca..b19b4fc2f 100644
--- a/doc/Developers.md
+++ b/doc/Developers.md
@@ -1,4 +1,4 @@
-Red Developer Guide
+Developer Guide
===================
**Here is how you can join us.**
@@ -8,7 +8,7 @@ doing development.
Create your own github account.
-You may fork/clone the Red repository from [https://github.com/redmatrix/redmatrix.git](https://github.com/redmatrix/redmatrix.git).
+You may fork/clone the Red repository from [https://github.com/redmatrix/hubzilla.git](https://github.com/redmatrix/hubzilla.git).
Follow the instructions provided here: [http://help.github.com/fork-a-repo/](http://help.github.com/fork-a-repo/)
to create and use your own tracking fork on github
diff --git a/doc/Hooks.md b/doc/Hooks.md
deleted file mode 100644
index 90edff623..000000000
--- a/doc/Hooks.md
+++ /dev/null
@@ -1,136 +0,0 @@
-Hooks - Complete List
-=====================
-
-
-* 'about_hook'
-* 'account_settings'
-* 'app_menu'
-* 'atom_author'
-* 'atom_entry'
-* 'atom_feed'
-* 'atom_feed_end'
-* 'authenticate'
-* 'avatar_lookup'
-* 'bb2diaspora'
-* 'bbcode'
-* 'channel_remove'
-* 'check_account_email'
-* 'check_account_invite'
-* 'check_account_password'
-* 'connect_premium'
-* 'connector_settings'
-* 'contact_block_end'
-* 'contact_edit'
-* 'contact_edit_post'
-* 'contact_photo_menu'
-* 'contact_select_options'
-* 'conversation_start'
-* 'cron'
-* 'directory_item'
-* 'display_item'
-* 'display_item'
-* 'display_settings'
-* 'display_settings_post'
-* 'enotify'
-* 'enotify_mail'
-* 'enotify_store'
-* 'event_created'
-* 'event_updated'
-* 'feature_enabled'
-* 'feature_settings'
-* 'feature_settings_post'
-* 'follow'
-* 'gender_selector'
-* 'get_all_perms'
-* 'get_features'
-* 'get_widgets'
-* 'global_permissions'
-* 'home_content'
-* 'home_init'
-* 'html2bbcode'
-* 'import_directory_profile'
-* 'init_1'
-* 'item_photo_menu'
-* 'item_translate'
-* 'jot_networks'
-* 'jot_tool'
-* 'logged_in'
-* 'login_hook'
-* 'logging_out'
-* 'magic_auth'
-* 'magic_auth_success'
-* 'main_slider'
-* 'marital_selector'
-* 'mood_verbs'
-* 'network_content_init'
-* 'network_ping'
-* 'network_tabs'
-* 'network_to_name'
-* 'notifier_end'
-* 'notifier_normal'
-* 'obj_verbs'
-* 'oembed_probe'
-* 'page_content_top'
-* 'page_end'
-* 'page_header'
-* 'parse_atom'
-* 'parse_link'
-* 'pdl_selector'
-* 'perm_is_allowed'
-* 'personal_xrd'
-* 'photo_post_end'
-* 'photo_post_end'
-* 'photo_upload_begin'
-* 'photo_upload_end'
-* 'photo_upload_file'
-* 'photo_upload_form'
-* 'poke_verbs'
-* 'post_local'
-* 'post_local_end'
-* 'post_local_start'
-* 'post_mail'
-* 'post_mail_end'
-* 'post_remote'
-* 'post_remote_end'
-* 'post_remote_update'
-* 'post_remote_update_end'
-* 'prepare_body'
-* 'prepare_body_final'
-* 'prepare_body_init'
-* 'proc_run'
-* 'profile_advanced'
-* 'profile_edit'
-* 'profile_post'
-* 'profile_sidebar'
-* 'profile_sidebar_enter'
-* 'profile_tabs'
-* 'register_account'
-* 'render_location'
-* 'settings_account'
-* 'settings_form'
-* 'settings_post'
-* 'sexpref_selector'
-* 'smilie'
-* 'validate_channelname'
-* 'webfinger'
-* 'zid'
-* 'zid_init'
-
-***General Module Hooks***
-
-* $a->module . '_mod_aftercontent'
-* $a->module . '_mod_aside'
-* $a->module . '_mod_content'
-* $a->module . '_mod_init'
-* $a->module . '_mod_post'
-
-***General Selector Hooks***
-
-* $a->module . '_post_' . $selname
-* $a->module . '_post_' . $selname
-* $a->module . '_post_' . $selname
-* $a->module . '_pre_' . $selname
-* $a->module . '_pre_' . $selname
-* $a->module . '_pre_' . $selname
-
-#include doc/macros/main_footer.bb;
diff --git a/doc/Hubzilla_on_OpenShift.bb b/doc/Hubzilla_on_OpenShift.bb
new file mode 100644
index 000000000..9b2c539dc
--- /dev/null
+++ b/doc/Hubzilla_on_OpenShift.bb
@@ -0,0 +1,105 @@
+[b]Hubzilla on OpenShift[/b]
+You will notice a new .openshift folder when you fetch from upstream, i.e. from [url=https://github.com/redmatrix/hubzilla.git]https://github.com/redmatrix/hubzilla.git[/url] , which contains a deploy script to set up Hubzilla on OpenShift with plugins and extra themes.
+
+As of this writing, 2015-10-28, you do not have to pay for OpenShift on the Free plan, which gives you three gears at no cost. The Bronze plan gives you three gears at no cost too, but you can expand to 16 gears by paying, and this requires you to register your payment card. The three gears can give three instances of Hubzilla with one gear each, or you can combine two gears into one high-availability Hubzilla instance and one extra gear. The main difference to be aware of is this: gears on the Free plan will go into hibernation if left idle for too long, this does not happen on the Bronze plan.
+
+Create an account on OpenShift, then use the registration e-mail and password to create your first Hubzilla instance. Install git and RedHat's command line tools - rhc - if you have not already done so. See for example https://developers.openshift.com/en/getting-started-debian-ubuntu.html on how to do this on Debian GNU/Linux, or in the menu on that page for other GNU/Linux distributions or other operating systems.
+
+[code]rhc app-create your_app_name php-5.4 mysql-5.5 cron phpmyadmin --namespace your_domain --from-code https://github.com/redmatrix/hubzilla.git -l your@email.address -p your_account_password
+[/code]
+
+Make a note of the database username and password OpenShift creates for your instance, and use these at [url=https://your_app_name-your_domain.rhcloud.com/]https://your_app_name-your_domain.rhcloud.com/[/url] to complete the setup.
+
+NOTE: PostgreSQL is NOT supported by the deploy script yet, see [zrl=https://zot-mor.rhcloud.com/display/3c7035f2a6febf87057d84ea0ae511223e9b38dc27913177bc0df053edecac7c@zot-mor.rhcloud.com?zid=haakon%40zot-mor.rhcloud.com]this thread[/zrl].
+
+[b]Update[/b]
+To update, consider your own workflow first. I have forked Hubzilla code into my GitHub account to be able to try things out, this remote repo is called origin. Here is how I fetch new code from upstream, merge into my local repo, then push the updated code both into origin and the remote repo called openshift.
+
+[code]git fetch upstream;git checkout master;git merge upstream/master;git push origin;git push openshift HEAD
+[/code]
+
+[b]Administration[/b]
+Symptoms of need for MySQL database administration are:
+[list]
+[*] you can visit your domain and see the Hubzilla frontpage, but trying to login throws you back to login. This can mean your session table is marked as crashed.
+[*] you can login, but your channel posts are not visible. This can mean your item table is marked as crashed.
+[*] you can login and you can see your channel posts, but apparently nobody is getting your posts, comments, likes and so on. This can mean your outq table is marked as crashed.
+[/list]
+
+You can check your OpenShift logs by doing
+
+[code]
+rhc tail -a your_app_name -n your_domain -l your@email.address -p your_account_password
+[/code]
+
+and you might be able to confirm the above suspicions about crashed tables, or other problems you need to fix.
+
+[b]How to fix crashed tables in MySQL[/b]
+Using MySQL and the MyISAM database engine can result in table indexes coming out of sync, and you have at least two options for fixing tables marked as crashed.
+[list]
+[*] Use the database username and password OpenShift creates for your instance at [url=https://your_app_name-your_domain.rhcloud.com/phpmyadmin/]https://your_app_name-your_domain.rhcloud.com/phpmyadmin/[/url] to login via the web into your phpMyAdmin web interface, click your database in the left column, in the right column scroll down to the bottom of the list of tables and click the checkbox for marking all tables, then select Check tables from the drop down menu. This will check the tables for problems, and you can then checkmark only those tables with problems, and select Repair table from the same drop down menu at the bottom.
+[*] You can port-forward the MySQL database service to your own machine and use the MySQL client called mysqlcheck to check, repair and optimize your database or individual database tables without stopping the MySQL service on OpenShift. Run the following in two separate console windows.
+
+To port-forward do
+
+[code]rhc port-forward -a your_app_name -n your_domain -l your@email.address -p your_password[/code]
+
+in one console window, then do either -o for optimize, -c for check or -r for repair, like this
+
+[code]mysqlcheck -h 127.0.0.1 -r your_app_name -u your_app_admin_name -p[/code]
+
+and give the app's password at the prompt. If all goes well you should see a number of table names with an OK behind them.
+
+You can now
+[code]Press CTRL-C to terminate port forwarding[/code]
+[*] You can do
+
+[code]rhc cartridge stop mysql-5.5 -a your_app_name[/code]
+
+to stop the MySQL service running in your app on OpenShift before running myisamchk - which should only be run when MySQL is stopped, and then
+login to your instance with SSH - see OpenShift for details - and do
+
+[code]cd mysql/data/your_database
+myisamchk -r *.MYI[/code]
+
+or if you get
+
+[code]Can't create new tempfile[/code]
+
+check your OpenShift's gear quota with
+
+[code]quota -gus[/code]
+
+and if you are short on space, then locally (not SSH) do
+
+[code]rhc app-tidy your_app_name -l your_login -p your_password[/code]
+
+to have rhc delete temporary files and OpenShift logs to free space first, then check the size of your local repo dir and execute
+
+[code]git gc[/code]
+
+against it and check the size again, and then to minimize your remote repo connect via SSH to your application gear and execute the same command against it by changing to the remote repo directory - your repo should be in
+
+[code]~/git/your_app_name.git[/code]
+
+(if not, do find -size +1M to find it), then do
+
+[code]
+cd
+cd mysql/data/yourdatabase
+myisamchk -r -v -f*.MYI[/code]
+
+and hopefully your database tables are now okay.
+You can now start the MySQL service on OpenShift by locally doing
+
+[code]rhc cartridge start mysql-5.5 -a your_app_name[/code]
+[/list]
+
+[b]Notes[/b]
+[list]
+[*] definitely DO turn off feeds and discovery by default and limit delivery reports from 30 days to 3 days if you are on the Free or Bronze plan on OpenShift with a single 1Gb gear by visiting [observer.baseurl]/admin/site when logged in as administrator of your Hubzilla site.
+[*] The above defaults have been added into the deploy script.
+[*] DO add git gc to the deploy script
+[*] MAYBE DO add myisamchk - only checking? to the end of the deploy script.
+[*] mysqlcheck is similar in function to myisamchk, but works differently. The main operational difference is that mysqlcheck must be used when the mysqld server is running, whereas myisamchk should be used when it is not. The benefit of using mysqlcheck is that you do not have to stop the server to perform table maintenance - this means this documenation should be fixed.
+[/list]
diff --git a/doc/Plugins.md b/doc/Plugins.md
index f92f4c3f2..90ff0fb7d 100644
--- a/doc/Plugins.md
+++ b/doc/Plugins.md
@@ -1,3 +1,4 @@
+
Creating Plugins/Addons for the $Projectname
==========================================
@@ -7,6 +8,7 @@ So you want to make the $Projectname do something it doesn't already do. There a
In your $Projectname folder/directory, you will probably see a sub-directory called 'addon'. If you don't have one already, go ahead and create it.
+
mkdir addon
Then figure out a name for your addon. You probably have at least a vague idea of what you want it to do. For our example I'm going to create a plugin called 'randplace' that provides a somewhat random location for each of your posts. The name of your plugin is used to find the functions we need to access and is part of the function names, so to be safe, use only simple text characters.
@@ -99,8 +101,8 @@ Let's go ahead and add some code to implement our post_local hook handler.
if(local_channel() != $item['uid']) /* Does this person own the post? */
return;
- if(($item['parent']) || ($item['item_restrict'])) {
- /* If the item has a parent, or item_restrict is non-zero, this is a comment or something else, not a status post. */
+ if(($item['parent']) || (! is_item_normal($item))) {
+ /* If the item has a parent, or isn't "normal", this is a comment or something else, not a status post. */
return;
}
diff --git a/doc/Primary-Directory b/doc/Primary-Directory.md
index 37b0c0431..37b0c0431 100644
--- a/doc/Primary-Directory
+++ b/doc/Primary-Directory.md
diff --git a/doc/Privacy.md b/doc/Privacy.md
index fd6df6315..ff5eac181 100644
--- a/doc/Privacy.md
+++ b/doc/Privacy.md
@@ -1,25 +1,28 @@
-#Privacy Policy
+Privacy Policy
+==============
+
+
+##Summary##
-##Summary
Q: Who can see my content?
-A: By default ANYBODY on the internet, UNLESS you restrict it. The $Projectname allows you to choose the privacy level you desire. Restricted content will NOT be visible to spy networks and their advertisers. It will be protected against eavesdropping by outsiders - to the best of our ability. Hub administrators with sufficient skills and patience MAY be able to eavesdrop on some private communications but they must expend effort to do so. Privacy modes exist within the $Projectname which are even resistant to eavesdropping by skilled and determined hub administrators.
+A: By default ANYBODY on the internet, UNLESS you restrict it. $Projectname allows you to choose the privacy level you desire. Restricted content will NOT be visible to "spy networks" and advertisers. It will be protected against eavesdropping by outsiders - to the best of our ability. Hub administrators with sufficient skills and patience MAY be able to eavesdrop on some private communications but they must expend effort to do so. Privacy modes exist within $Projectname which are even resistant to eavesdropping by skilled and determined hub administrators.
Q: Can my content be censored?
-A: The $Projectname (the network) CANNOT censor your content. Server and hub administrators are subject to local laws and MAY remove objectionable content from their site/hub. Anybody MAY become a hub administrator, including you; and therefore publish content which might otherwise be censored. You still MAY be subject to local laws.
+A: $Projectname (the network) CANNOT censor your content. Server and hub administrators are subject to local laws and MAY remove objectionable content from their site/hub. Anybody MAY become a hub administrator, including you; and therefore publish content which might otherwise be censored. You still MAY be subject to local laws.
##Definitions
**$Projectname**
-Otherwise referred to as "the network", the $Projectname is a collection of individual computers/servers (aka **hubs**) which connect together to form a larger cooperative network.
+Otherwise referred to as "the network", $Projectname is a collection of individual computers/servers (aka **hubs**) which connect together to form a larger cooperative network.
**hub**
-An individual computer or server connected to the $Projectname. These are provided by a **hub administrator** and may be public or private, paid or free.
+An individual computer or server connected to $Projectname. These are provided by a **hub administrator** and may be public or private, paid or free.
**hub administrator**
@@ -29,7 +32,7 @@ The system operator of an individual hub.
**Public Information**
-Any information or anything posted by you within the $Projectname MAY be public or visible to anybody on the internet. To the extent possible, the $Projectname allows you to protect content and restrict who can view it.
+Any information or anything posted by you within $Projectname MAY be public or visible to anybody on the internet. To the extent possible, $Projectname allows you to protect content and restrict who can view it.
Your profile photo, your channel name, and the location (URL or network address) of your channel are visible to anybody on the internet and privacy controls will not affect the display of these items.
@@ -37,7 +40,7 @@ You MAY additionally provide other profile information. Any information which yo
**Content**
-Content you provide (status posts, photos, files, etc.) belongs to you. The $Projectname default is to publish content openly and visible to anybody on the internet (PUBLIC). You MAY control this in your channel settings and restrict the default permissions or you MAY restrict the visibility of any single published item separately (PRIVATE). The $Projectname developers will ensure that restricted content is ONLY visible to those in the restriction list - to the best of their ability.
+Content you provide (status posts, photos, files, etc.) belongs to you. The $Projectname default is to publish content openly and visible to anybody on the internet (PUBLIC). You MAY control this in your channel settings and restrict the default permissions or you MAY restrict the visibility of any single published item separately (PRIVATE). $Projectname developers will ensure that restricted content is ONLY visible to those in the restriction list - to the best of their ability.
Content (especially status posts) that you share with other networks or that you have made visible to anybody on the internet (PUBLIC) cannot easily be taken back once it has been published. It MAY be shared with other networks and made available through RSS/Atom feeds. It may also be syndicated on other $Projectname sites. It MAY appear on spy networks and internet searches. If you do not wish this default behaviour please adjust your channel settings and restrict who can see your content.
@@ -48,25 +51,27 @@ Comments to posts that were created by others and posts which are designated as
**Private Information**
-$Projectname developers will ensure that any content you provide which is designated as PRIVATE will be protected against eavesdropping - to the best of their ability. Private content is generally hidden or obscured even from hub administrators. It is also stripped from email notifications. It is difficult but NOT impossible for this content to be seen by a hub administrator. This is a side effect of the physical laws of the universe. Unfortunately, if a database needs to decrypt a post at display time, it must have the means to decrypt the post! End to end encryption is also provided and this CANNOT be seen, even by a determined administrator.
+$Projectname developers will ensure that any content you provide which is designated as PRIVATE will be protected against eavesdropping - to the best of their ability. Private content is generally hidden or obscured even from hub administrators. It is also stripped from email notifications. It is difficult but NOT impossible for this content to be seen by a hub administrator. End to end encryption is provided as an optional feature and this CANNOT be seen, even by a determined administrator.
##Identity Privacy
-Privacy for your identity is another aspect. Because you have a decentralized identity in the $Projectname, your privacy extends beyond your home hub. If you want to have complete control of your privacy and security you should run your own hub on a dedicated server. For many people, this is complicated and may stretch their technical abilities. So let's list a few precautions you can make to assure your privacy as much as possible.
+Privacy for your identity is another aspect. Because you have a decentralized identity in $Projectname, your privacy extends beyond your home hub. If you want to have complete control of your privacy and security you should run your own hub on a dedicated server. For many people, this is complicated and may stretch their technical abilities. So let's list a few precautions you can make to assure your privacy as much as possible.
A decentralized identity has a lot of advantages and gives you al lot of interesting features, but you should be aware of the fact that your identity is known by other hubs in the $Projectname network. One of those advantages is that other channels can serve you customized content and allow you to see private things (such as private photos which others wish to share with you). Because of this those channels need to know who you are. But we understand that sometimes those other channels know more from you than you might desire. For instance the plug-in Visage that can tell a channel owner the last time you visit their profile. You can easily OPT-OUT of this low level and we think, harmless tracking.
-* You can enable [Do Not Track (DNT)](http://donottrack.us/) in your web browser. We respect this new privacy policy proposal. All modern browsers support DNT. You will find it in the privacy settings of your browsers or else you can consult the web browser's manual. This will not affect the functionality of the $Projectname. This setting is probably enough for most people.
+* You can enable [Do Not Track (DNT)](http://donottrack.us/) in your web browser. We respect this new privacy policy proposal. All modern browsers support DNT. You will find it in the privacy settings of your browsers or else you can consult the web browser's manual. This will not affect the functionality of $Projectname. This setting is probably enough for most people.
+
*You can [disable publication](settings) of your channel in our channel directory. If you want people to find your channel, you should give your channel address directly to them. We think this is a good indication that you prefer extra privacy and automatically enable "Do Not Track" if this is the case.
+
* You can have a blocked hub. That means that all channels and content on that hub is not public, and not visible to the outside world. This is something only your hub administrator can do. We also respect this and automatically enable "Do Not Track" if it is set.
###Censorship
-The $Projectname is a global network which is inclusive of all religions and cultures. This does not imply that every member of the network feels the same way you do on contentious issues, and some people may be STRONGLY opposed to the content you post. In general, if you wish to post something that you know may nor be universally acceptable, the best approach is to restrict the audience using privacy controls to a small circle of friends.
+$Projectname is a global network which is inclusive of all religions and cultures. This does not imply that every member of the network feels the same way you do on contentious issues, and some people may be STRONGLY opposed to the content you post. In general, if you wish to post something that you know may nor be universally acceptable, the best approach is to restrict the audience using privacy controls to a small circle of friends.
-The $Projectname as a network provider is unable to censor content. However, hub administrators MAY censor any content which appears on their hub to comply with local laws or even personal judgement. Their decision is final. If you have issues with any hub administrator, you may move your account and postings to another site which is more in line with your expectations. Please check (periodically) the [Terms of Service](help/TermsOfService) of your hub to learn about any rules or guidelines. If your content consists of material which is illegal or may cause issues, you are STRONGLY encouraged to host your own (become a hub administrator). You may still find that your content is blocked on some hubs, but the $Projectname as a network cannot block it from being posted.
+$Projectname as a network provider is unable to censor content. However, hub administrators MAY censor any content which appears on their hub to comply with local laws or even personal judgement. Their decision is final. If you have issues with any hub administrator, you may move your account and postings to another site which is more in line with your expectations. Please check (periodically) the [Terms of Service](help/TermsOfService) of your hub to learn about any rules or guidelines. If your content consists of material which is illegal or may cause issues, you are STRONGLY encouraged to host your own (become a hub administrator). You may still find that your content is blocked on some hubs, but $Projectname as a network cannot block it from being posted.
-The $Projectname RECOMMENDS that hub administrators provide a grace period of 1-2 days between warning an account holder of content that needs to be removed and physically removing or disabling the account. This will give the content owner an opportunity to export their channel meta-data and import it to another site. In rare cases the content may be of such a nature to justify the immediate termination of the account. This is a hub decision, not a $Projectname decision.
+$Projectname RECOMMENDS that hub administrators provide a grace period of 1-2 days between warning an account holder of content that needs to be removed and physically removing or disabling the account. This will give the content owner an opportunity to export their channel meta-data and import it to another site. In rare cases the content may be of such a nature to justify the immediate termination of the account. This is a hub decision, not a $Projectname decision.
If you typically and regularly post content of an adult or offensive nature, you are STRONGLY encouraged to mark your account "NSFW" (Not Safe For Work). This will prevent the display of your profile photo in the directory except to viewers that have chosen to disable "safe mode". If your profile photo is found by directory administrators to be adult or offensive, the directory administrator MAY flag your profile photo as NSFW. There is currently no official mechanism to contest or reverse this decision, which is why you SHOULD mark your own account NSFW if it is likely to be inappropriate for general audiences.
diff --git a/doc/README.md b/doc/README.md
index 68183577e..10fba445b 100644
--- a/doc/README.md
+++ b/doc/README.md
@@ -1,11 +1,42 @@
-![the $Projectname](images/rm-480x115.png)
-The $Projectname (aka "red") is an open source webapp platform providing a complete **decentralised** publishing, sharing, and communications system. It combines communications (private messaging, chat and social networking), and media management (photos, events, files, web pages, app distribution) with enough features to make your head spin.
+Hubzilla
+========
-What makes the $Projectname unique is what we call "magic authentication" - which is based on our groundbreaking work in decentralised identity services. This ties all $Projectname sites and channels together into a single super-network where the boundaries between different websites are blurred or seemingly non-existent; where "who you are" has nothing to do with "what computer you're connected to", and where website content can adapt itself according to who is viewing it.
+###Websites. Redefined.
-Warning: After experiencing magic authentication and nomadic identity, you may find it disconcerting and a bit "primitive" to go back to the old internet. You shouldn't need hundreds of different passwords to use the web ... or be totally isolated from your friends and family because a server or router in another country is having "*issues*".
-For the average person, the biggest advantage of decentralised identity is that you decide who you want to share your stuff with, and if somebody isn't on your list, they're not going to see it. It's all under your control (we're big on privacy). Use the $Projectname as a social network or a business website or for personal cloud storage or media publishing - or any number of other uses; limited only by your imagination.
-
-The $Projectname is free and open source distributed under the MIT license.
+![Hubzilla](../images/hz-32.png)
+
+**What are Hubs?**
+
+Hubs are independent general-purpose websites that not only connect with their associated members and viewers, but also connect together to exchange personal communications and other information with each other.
+This allows hub members on any hub to securely and privately share anything; with anybody, on any hub - anywhere; or share stuff publicly with anybody on the internet if desired.
+
+**Hubzilla** is the server software which makes this possible. It is a sophisticated and unique combination of an open source content management system and a decentralised identity, communications, and permissions framework and protocol suite, built using common webserver technology (PHP/MySQL/Apache, although Mariadb or Postgres and Nginx could also be used - we're pretty easy). The end result is a level of systems integration, privacy control, and communications features that you wouldn't think are possible in either a content management system or a decentralised communications network. It also brings a new level of cooperation and privacy to the web and introduces the concept of personally owned "single sign-on" to web services across the entire internet.
+
+Hubzilla hubs are
+
+* decentralised
+* inherently social
+* optionally inter-networked with other hubs
+* privacy-enabled (privacy exclusions work across the entire internet to any registered identity on any compatible hubs)
+
+Possible website applications include
+
+* decentralised social networking nodes
+* personal cloud storage
+* file dropboxes
+* managing organisational communications and activities
+* collaboration and community decision-making
+* small business websites
+* public and private media/file libraries
+* blogs
+* event promotion
+* feed aggregation and republishing
+* forums
+* dating websites
+* pretty much anything you can do on a traditional blog or community website, but that you could do better if you could easily connect it with other websites or privately share things across website boundaries.
+
+
+
+This project is under development and is not yet available for general use.
diff --git a/doc/Remove-Account.md b/doc/Remove-Account.md
index e846f0366..a8ef733a6 100644
--- a/doc/Remove-Account.md
+++ b/doc/Remove-Account.md
@@ -14,6 +14,7 @@ Visit the URL
https://yoursite/removeme
(replace 'yoursite' with the domain name of your $Projectname site).
+
You will need to confirm your password and the channel you are currently logged into will be removed.
This is irreversible.
diff --git a/doc/Widgets.md b/doc/Widgets.md
index d9df66eee..7acd9241b 100644
--- a/doc/Widgets.md
+++ b/doc/Widgets.md
@@ -88,7 +88,7 @@ Some/many of these widgets have restrictions which may restrict the type of page
* photo_rand - display a random photo from one of your photo albums. Photo permissions are honoured
* args:
* album - album name (very strongly recommended if you have lots of photos)
- * scale - typically 0 (original size), 1 (640px), or 2 (320px)
+ * scale - typically 0 (original size), 1 (1024px), 2, (640px), or 3 (320px)
* style - CSS style string
* channel_id - if not your own
<br />&nbsp;<br />
@@ -99,6 +99,14 @@ Some/many of these widgets have restrictions which may restrict the type of page
* channel_id - if not your own
<br />&nbsp;<br />
+* tasklist - provide a task or to-do list for the currently logged-in channel.
+ * args:
+ * all - display completed tasks if all is non-zero.
+<br />&nbsp;<br />
+
+* forums - provide a list of connected public forums with unseen counts for the current logged-in channel.
+<br />&nbsp;<br />
+
Creating New Widgets
====================
diff --git a/doc/about.bb b/doc/about.bb
index 508795aed..1d1a2d099 100644
--- a/doc/about.bb
+++ b/doc/about.bb
@@ -1,8 +1,8 @@
[b]About[/b]
-The $Projectname is a decentralized communication network, which aims to provide communication that is censorship-resistant, privacy-respecting, and thus free from the oppressive claws of contemporary corporate communication giants. These giants function primarily as spy networks for paying clients of all sorts and types, in addition to monopolizing and centralizing the Internet; a feature that was not part of the original and revolutionary goals that produced the World Wide Web.
+$Projectname is a decentralized communication network, which aims to provide communication that is censorship-resistant, privacy-respecting, and thus free from the oppressive claws of contemporary corporate communication giants. These giants function primarily as spy networks for paying clients of all sorts and types, in addition to monopolizing and centralizing the Internet; a feature that was not part of the original and revolutionary goals that produced the World Wide Web.
-The $Projectname is free and open source. It is designed to scale from a $35 Raspberry Pi, to top of the line AMD and Intel Xeon-powered multi-core enterprise servers. It can be used to support communication between a few individuals, or scale to many thousands and more.
+$Projectname is free and open source. It is designed to scale from a $35 Raspberry Pi, to top of the line AMD and Intel Xeon-powered multi-core enterprise servers. It can be used to support communication between a few individuals, or scale to many thousands and more.
Red aims to be skill and resource agnostic. It is easy to use by everyday computer users, as well as by systems administrators and developers.
@@ -10,15 +10,15 @@ How you use it depends on how you want to use it.
It is written in the PHP scripting language, thus making it trivial to install on any hosting platform in use today. This includes self-hosting at home, at hosting providers such as [url=http://mediatemple.com/]Media Temple[/url] and [url=http://www.dreamhost.com/]Dreamhost[/url], or on virtual and dedicated servers, offered by the likes of [url=https://www.linode.com]Linode[/url], [url=http://greenqloud.com]GreenQloud[/url] or [url=https://aws.amazon.com]Amazon AWS[/url].
-In other words, the $Projectname can run on any computing platform that comes with a web server, a MySQL-compatible database, and the PHP scripting language.
+In other words, $Projectname can run on any computing platform that comes with a web server, a MySQL-compatible database, and the PHP scripting language.
-Along the way, Red offers a number of unique goodies:
+Along the way, $Projectname offers a number of unique goodies:
-[b]Single-click user identification:[/b] meaning you can access sites on the $Projectname simply by clicking on links to remote sites. Authentication just happens automagically behind the scenes. Forget about remembering multiple user names with multiple passwords when accessing different sites online.
+[b]Single-click user identification:[/b] meaning you can access sites on $Projectname simply by clicking on links to remote sites. Authentication just happens automagically behind the scenes. Forget about remembering multiple user names with multiple passwords when accessing different sites online.
-[b]Cloning:[/b] of online identities. Your online presence no longer has to be tied to a single server, domain name or IP address. You can clone and import your identity (or channel as we call it) to another server (or, a hub as servers are known in the $Projectname). Now, should your primary hub go down, no worries, your contacts, posts[i]*[/i], and messages[i]*[/i] will automagically continue to be available and accessible under your cloned channel. [i](*: only posts and messages as from the moment you cloned your channel)[/i]
+[b]Cloning:[/b] of online identities. Your online presence no longer has to be tied to a single server, domain name or IP address. You can clone and import your identity (or channel as we call it) to another server (or, a hub as servers are known in $Projectname). Now, should your primary hub go down, no worries, your contacts, posts[i]*[/i], and messages[i]*[/i] will automagically continue to be available and accessible under your cloned channel. [i](*: only posts and messages as from the moment you cloned your channel)[/i]
-[b]Privacy:[/b] Red identities (Zot IDs) can be deleted, backed up/downloaded, and cloned. The user is in full control of their data. Should you decide to delete all your content and erase your Zot ID, all you have to do is click on a link and it's immediately deleted from the hub. No questions, no fuss.
+[b]Privacy:[/b] $Projectname identities (Zot IDs) can be deleted, backed up/downloaded, and cloned. The user is in full control of their data. Should you decide to delete all your content and erase your Zot ID, all you have to do is click on a link and it's immediately deleted from the hub. No questions, no fuss.
#include doc/macros/main_footer.bb;
diff --git a/doc/addons.bb b/doc/addons.bb
index 120f668ae..a6d2cfc2f 100644
--- a/doc/addons.bb
+++ b/doc/addons.bb
@@ -42,7 +42,7 @@
[*] qrator - generate QR code images
[*] rainbowtag - display your tag and category clouds in colours
[*] randpost - post/reply bot based on and requires fortunate
-[*] redred - Crosspost to another Redmatrix or Hubzilla channel
+[*] redred - Crosspost to another Red Matrix or Hubzilla channel
[*] rtof - Crosspost to Friendica
[*] smiley_pack - extend the built-in smilie (emoticon) support
[*] smileybutton - provides a smiley selector on the post window
@@ -61,7 +61,7 @@
[h3]Addon Repositories[/h3]
-[url=https://github.com/redmatrix/redmatrix-addons]https://github.com/redmatrix/redmatrix-addons[/url] Main project addon repository
+[url=https://github.com/redmatrix/hubzilla-addons]https://github.com/redmatrix/hubzilla-addons[/url] Main project addon repository
[url=https://github.com/23n/red-addons]https://github.com/23n/red-addons[/url] Oliver's repository (mayan_places and flip)
diff --git a/doc/addons_gnusocial.bb b/doc/addons_gnusocial.bb
index ff3aefe45..dfdce5f6a 100644
--- a/doc/addons_gnusocial.bb
+++ b/doc/addons_gnusocial.bb
@@ -10,13 +10,14 @@ Next, click the link to Register a new application. That brings up the new appli
Icon. I uploaded the $Projectname icon located at this link, after saving it to my computer:
-https://github.com/redmatrix/redmatrix/blob/master/images/rm-32.png
+https://github.com/redmatrix/hubzilla/blob/master/images/rm-32.png
-Name. Give the application an appropriate name. I called mine redmatrix. You might prefer r2g.
+Name. Give the application an appropriate name. I called mine hubzilla. You might prefer r2g.
Description. Use this field to describe the purpose of the application. I put something to the effect of use for crossposting from $Projectname to GNUsocial.
-Source URL. Put the main domain name of the Red site you're using. Don't forget to put the "s" in https://yourredmatrixsite.com. If your Red installation is a subdomain, that would probably be called for.
+
+Source URL. Put the main domain name of the Red site you're using. Don't forget to put the "s" in https://yourhubzillasite.com. If your Red installation is a subdomain, that would probably be called for.
Organization. Since $Projectname is unorganized, I put that. If you use your installation for a group or business, that might be a good option.
diff --git a/doc/admins.bb b/doc/admins.bb
new file mode 100644
index 000000000..484212024
--- /dev/null
+++ b/doc/admins.bb
@@ -0,0 +1,15 @@
+[h2]Documentation for Hub Administrators[/h2]
+
+[h3]Administrators[/h3]
+
+[zrl=[baseurl]/help/install]Install[/zrl]
+[zrl=[baseurl]/help/red2pi]Installing $Projectname on the Raspberry Pi[/zrl]
+[zrl=[baseurl]/help/Hubzilla_on_OpenShift]$Projectname on OpenShift[/zrl]
+[zrl=[baseurl]/help/troubleshooting]Troubleshooting Tips[/zrl]
+[zrl=[baseurl]/help/hidden_configs]Tweaking $Projectname's Hidden Configurations[/zrl]
+[zrl=[baseurl]/help/faq_admins]FAQ For Admins[/zrl]
+[zrl=[baseurl]/help/service_classes]Service Classes[/zrl]
+[zrl=[baseurl]/help/directories]Working with and configuring Directories[/zrl]
+[zrl=[baseurl]/help/theme_management]Theme Management[/zrl]
+
+
diff --git a/doc/api_posting.bb b/doc/api_posting.bb
index fa9558268..c708ad143 100644
--- a/doc/api_posting.bb
+++ b/doc/api_posting.bb
@@ -4,19 +4,20 @@ The API allows you to post to the red# by HTTP POST request. Below you see an ex
[code]curl -ssl -u [color=blue]$E-Mail[/color]:[color=blue]$Password[/color] -d "[color=blue]$Parameters[/color]" [url][observer=1][observer.baseurl][/observer][observer=0]example.com[/observer]/api/statuses/update
[/url][/code]
-[table][tr][td]$E-Mail:[/td][td]The E-Mail Adress you use to login[/td][/tr]
+[table][tr][td]$E-Mail:[/td][td]The E-Mail Address you use to login, or the channel nickname (without the hostname)[/td][/tr]
[tr][td]$Password:[/td][td]The Password you use to login[/td][/tr]
[tr][td]$Parameters:[/td][td]That's the interesting part, here you insert the content you want to send using the following parameters:[/td][/tr][/table]
[ul]
[*]title: the title of the posting
-[*]channel: the channel you want to post to
+[*]channel: the channel you want to post to (do not use this parameter with HTTP Basic auth)
[*]category: a comma-seperated list of categories for the posting
[*]status: the content of the posting, formatted with BBCode
OR
[*]htmlstatus:the content of the posting, formatted in HTML.
[/ul]
+To post to a specific channel, replace the email address with the channel nickname. If you supply the channel parameter, it has to match the "email", but is superfluous anyway.
Instead of calling [observer=1][observer.baseurl][/observer][observer=0]example.com[/observer]/api/statuses/update which returns a json (you could also add .json on the end to clarify) output, you can use [observer.baseurl]/api/statuses/update.xml to get an xml formatted return.
diff --git a/doc/bugs.bb b/doc/bugs.bb
new file mode 100644
index 000000000..1a27e66ba
--- /dev/null
+++ b/doc/bugs.bb
@@ -0,0 +1,45 @@
+[h2]Bugs, Issues, and things that go bump in the night...[/h2]
+[h3]Something went wrong! Who is charge of fixing it?[/h3]
+
+[b]Hubzilla Community Server[/b]
+
+Hubzilla Community Server is open source software which is maintained by "the community" - essentially unpaid volunteers.
+
+[b]Hubzilla Enterprise Server[/b]
+
+Hubzilla Enterprise Server is commercial software with a variety of support plans depending on the specific license terms.
+
+
+The first thing you need to do is talk to your hub administrator - the person who runs and manages your site. They are in the unique position of having access to the internal software and database and [b]logfiles[/b] and will need to be involved in fixing your problem. Other people "on the net" can't really help with this. The first thing the hub administrator needs to do is look at their logs and/or try to reproduce the problem. So try to be as helpful and courteous as possible in helping them look into the problem.
+
+To find your hub administrator (if you don't know who they are) please look at [url=[baseurl]/siteinfo]this page[/url]. If they have not provided any contact info on that page or provided an "Impressum" there, see [url=[baseurl]/siteinfo/json]this site info summary[/url] under the heading "admin:".
+
+[h3]I'm a hub administrator; what do I do?[/h3]
+
+The software instructions which provide this server are open source and are available for your inspection. If an error message was reported, often one can do a search on the source files for that error message and find out what triggered it. With this information and the site logfiles it may be possible to figure out the sequence of events leading to the error. There could also be other sites involved, and the problem may not even be on your site but elsewhere in the network. Try to pin down the communication endpoints (hubs or sites) involved in the problem and contact the administrator of that site or those sites. Please try and provide an event time of when things went wrong so it can be found in the logs. Work with the other administrator(s) to try and find the cause of the problem. Logfiles are your friend. When something happens in the software that we didn't expect, it is nearly always logged.
+
+[h3]The white screen of death[/h3]
+
+If you get a blank white screen when doing something, this is almost always a code or syntax error. There are instructions in your .htconfig.php file for enabling syntax logging. We recommend all sites use this. With syntax logging enabled repeat the sequence which led to the error and it should log the offending line of code. Hopefully you will be able to fix the problem with this information. When you do, please submit the fix "upstream" so that we can share the fix with the rest of the project members and other communities. This is a key benefit of using open source software - we share with each other and everybody benefits.
+
+[h3]I'm stumped. I can't figure out what is wrong.[/h3]
+
+[b]Hubzilla Enterprise Server[/b]
+
+Please make contact with the vendor - who will have provided you with support contact details. Preferably this contact will be made by the hub administrator so that he/she can assist us in collecting the necessary issue details. We will assign a ticket and notify you of progress.
+
+
+[b]Hubzilla Community Server[/b]
+
+At this point it might be worthwhile discussing the issue on one of the online forums. There may be several of these and some may be more suited to your spoken language. As a last resort, try "Channel One", which is in English.
+
+If the community developers can't help you right away, understand that they are volunteers and may have a lot of other work and demands on their time. At this point you need to file a bug report. You will need an account on github.com to do this. So register, and then visit https://github.com/redmatrix/hubzilla/issues
+. Create an issue here and provide all the same information that you provided online. Don't leave out anything.
+
+Then you wait. If it's a high profile issue, it may get fixed quickly. But nobody is in charge of fixing bugs. If it lingers without resolution, please spend some more time investigating the problem. Ask about anything you don't understand related to the behaviour. You will learn more about how the software works and quite possibly figure out why it isn't working now. Ultimately it is somebody in the community who is going to fix this and you are a member of the community; and this is how the open source process works.
+
+
+[b]In either case[/b]
+
+Other developers working to fix the problem may need to find out more, so do your homework and document what is happening and everything you've tried. Don't say "I did xyz and it didn't work." That doesn't tell us anything. Tell us precisely what steps you took and what you expected the result to be, and precisely what happened as a result. If there were any error messages, don't say "there was an error message". Tell us exactly what the message said.
+ \ No newline at end of file
diff --git a/doc/campaign.bb b/doc/campaign.bb
index 68a2ac63d..48f28f0c0 100644
--- a/doc/campaign.bb
+++ b/doc/campaign.bb
@@ -153,7 +153,7 @@ Each contributor at this level gets their own $Projectname virtual private serve
We're a handful of volunteers, and we understand that not everyone can contribute by donating money. There are many other ways you can in getting the Matrix to version 1.0!
-First, you can checkout our source code on github: https://github.com/redmatrix/redmatrix
+First, you can checkout our source code on github: https://github.com/redmatrix/hubzilla
Maybe you can dive in and help us out with some development.
diff --git a/doc/classRedmatrix_1_1Import_1_1Import-members.html b/doc/classRedmatrix_1_1Import_1_1Import-members.html
new file mode 100644
index 000000000..d5e2f9277
--- /dev/null
+++ b/doc/classRedmatrix_1_1Import_1_1Import-members.html
@@ -0,0 +1,131 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Hubzilla: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rm-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Hubzilla
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classHubzilla_1_1Import_1_1Import.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Hubzilla\Import\Import Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classHubzilla_1_1Import_1_1Import.html">Hubzilla\Import\Import</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classHubzilla_1_1Import_1_1Import.html#a864aac9fadb4846f5d9f840e8e0f440f">$credentials</a></td><td class="entry"><a class="el" href="classHubzilla_1_1Import_1_1Import.html">Hubzilla\Import\Import</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classHubzilla_1_1Import_1_1Import.html#ad0d2bdc3b388220479063915b4f5c2fc">$itemlist</a></td><td class="entry"><a class="el" href="classHubzilla_1_1Import_1_1Import.html">Hubzilla\Import\Import</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classHubzilla_1_1Import_1_1Import.html#a0a05dac405ccc5b617b7b7b3c8ed783c">$items</a></td><td class="entry"><a class="el" href="classHubzilla_1_1Import_1_1Import.html">Hubzilla\Import\Import</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classHubzilla_1_1Import_1_1Import.html#a88c2eeba8d0cba3e7c12a2c45ba0fbc6">$src_items</a></td><td class="entry"><a class="el" href="classHubzilla_1_1Import_1_1Import.html">Hubzilla\Import\Import</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classHubzilla_1_1Import_1_1Import.html#a5434325afb2c633c52540127d717800a">convert_child</a>($child)</td><td class="entry"><a class="el" href="classHubzilla_1_1Import_1_1Import.html">Hubzilla\Import\Import</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classHubzilla_1_1Import_1_1Import.html#a107703a43a1b0ceb2af7ae470cb3f218">convert_item</a>($item_ident)</td><td class="entry"><a class="el" href="classHubzilla_1_1Import_1_1Import.html">Hubzilla\Import\Import</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classHubzilla_1_1Import_1_1Import.html#addf6e53dacd971eaab49be4b17a767d6">convert_taxonomy</a>($item_ident)</td><td class="entry"><a class="el" href="classHubzilla_1_1Import_1_1Import.html">Hubzilla\Import\Import</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classHubzilla_1_1Import_1_1Import.html#a57561904b0f127e0d9a3e2c33688daf8">get_children</a>($item_ident)</td><td class="entry"><a class="el" href="classHubzilla_1_1Import_1_1Import.html">Hubzilla\Import\Import</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classHubzilla_1_1Import_1_1Import.html#a24134929d9a8a682da2036a0bf326367">get_credentials</a>()</td><td class="entry"><a class="el" href="classHubzilla_1_1Import_1_1Import.html">Hubzilla\Import\Import</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classHubzilla_1_1Import_1_1Import.html#a27987a41cb703a796f1821baeb4774a2">get_item</a>($item_ident)</td><td class="entry"><a class="el" href="classHubzilla_1_1Import_1_1Import.html">Hubzilla\Import\Import</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classHubzilla_1_1Import_1_1Import.html#a772c28edf36aaf8e66007a95004c4059">get_item_ident</a>($item)</td><td class="entry"><a class="el" href="classHubzilla_1_1Import_1_1Import.html">Hubzilla\Import\Import</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classHubzilla_1_1Import_1_1Import.html#a855cd5a79b95d269ae8737fae774e3bc">get_itemlist</a>()</td><td class="entry"><a class="el" href="classHubzilla_1_1Import_1_1Import.html">Hubzilla\Import\Import</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classHubzilla_1_1Import_1_1Import.html#ae3c6472bea1a44025bc2e152604eb20c">get_taxonomy</a>($item_ident)</td><td class="entry"><a class="el" href="classHubzilla_1_1Import_1_1Import.html">Hubzilla\Import\Import</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classHubzilla_1_1Import_1_1Import.html#a8d138a9a7d4f79b81d3446ca216a602c">run</a>()</td><td class="entry"><a class="el" href="classHubzilla_1_1Import_1_1Import.html">Hubzilla\Import\Import</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classHubzilla_1_1Import_1_1Import.html#a33ed595de044c0ec1cd84cca719e31dc">store</a>($item, $update=false)</td><td class="entry"><a class="el" href="classHubzilla_1_1Import_1_1Import.html">Hubzilla\Import\Import</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content --> \ No newline at end of file
diff --git a/doc/classRedmatrix_1_1Import_1_1Import.html b/doc/classRedmatrix_1_1Import_1_1Import.html
new file mode 100644
index 000000000..9a7128d65
--- /dev/null
+++ b/doc/classRedmatrix_1_1Import_1_1Import.html
@@ -0,0 +1,446 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Hubzilla: Hubzilla\Import\Import Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rm-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Hubzilla
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classHubzilla_1_1Import_1_1Import.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pro-attribs">Protected Attributes</a> &#124;
+<a href="#pri-attribs">Private Attributes</a> &#124;
+<a href="classHubzilla_1_1Import_1_1Import-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">Hubzilla\Import\Import Class Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a24134929d9a8a682da2036a0bf326367"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classHubzilla_1_1Import_1_1Import.html#a24134929d9a8a682da2036a0bf326367">get_credentials</a> ()</td></tr>
+<tr class="separator:a24134929d9a8a682da2036a0bf326367"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a855cd5a79b95d269ae8737fae774e3bc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classHubzilla_1_1Import_1_1Import.html#a855cd5a79b95d269ae8737fae774e3bc">get_itemlist</a> ()</td></tr>
+<tr class="separator:a855cd5a79b95d269ae8737fae774e3bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a772c28edf36aaf8e66007a95004c4059"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classHubzilla_1_1Import_1_1Import.html#a772c28edf36aaf8e66007a95004c4059">get_item_ident</a> ($item)</td></tr>
+<tr class="separator:a772c28edf36aaf8e66007a95004c4059"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a27987a41cb703a796f1821baeb4774a2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classHubzilla_1_1Import_1_1Import.html#a27987a41cb703a796f1821baeb4774a2">get_item</a> ($item_ident)</td></tr>
+<tr class="separator:a27987a41cb703a796f1821baeb4774a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae3c6472bea1a44025bc2e152604eb20c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classHubzilla_1_1Import_1_1Import.html#ae3c6472bea1a44025bc2e152604eb20c">get_taxonomy</a> ($item_ident)</td></tr>
+<tr class="separator:ae3c6472bea1a44025bc2e152604eb20c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a57561904b0f127e0d9a3e2c33688daf8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classHubzilla_1_1Import_1_1Import.html#a57561904b0f127e0d9a3e2c33688daf8">get_children</a> ($item_ident)</td></tr>
+<tr class="separator:a57561904b0f127e0d9a3e2c33688daf8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a107703a43a1b0ceb2af7ae470cb3f218"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classHubzilla_1_1Import_1_1Import.html#a107703a43a1b0ceb2af7ae470cb3f218">convert_item</a> ($item_ident)</td></tr>
+<tr class="separator:a107703a43a1b0ceb2af7ae470cb3f218"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:addf6e53dacd971eaab49be4b17a767d6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classHubzilla_1_1Import_1_1Import.html#addf6e53dacd971eaab49be4b17a767d6">convert_taxonomy</a> ($item_ident)</td></tr>
+<tr class="separator:addf6e53dacd971eaab49be4b17a767d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5434325afb2c633c52540127d717800a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classHubzilla_1_1Import_1_1Import.html#a5434325afb2c633c52540127d717800a">convert_child</a> ($child)</td></tr>
+<tr class="separator:a5434325afb2c633c52540127d717800a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a33ed595de044c0ec1cd84cca719e31dc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classHubzilla_1_1Import_1_1Import.html#a33ed595de044c0ec1cd84cca719e31dc">store</a> ($item, $update=false)</td></tr>
+<tr class="separator:a33ed595de044c0ec1cd84cca719e31dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8d138a9a7d4f79b81d3446ca216a602c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classHubzilla_1_1Import_1_1Import.html#a8d138a9a7d4f79b81d3446ca216a602c">run</a> ()</td></tr>
+<tr class="separator:a8d138a9a7d4f79b81d3446ca216a602c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
+Protected Attributes</h2></td></tr>
+<tr class="memitem:ad0d2bdc3b388220479063915b4f5c2fc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classHubzilla_1_1Import_1_1Import.html#ad0d2bdc3b388220479063915b4f5c2fc">$itemlist</a> = null</td></tr>
+<tr class="separator:ad0d2bdc3b388220479063915b4f5c2fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a88c2eeba8d0cba3e7c12a2c45ba0fbc6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classHubzilla_1_1Import_1_1Import.html#a88c2eeba8d0cba3e7c12a2c45ba0fbc6">$src_items</a> = null</td></tr>
+<tr class="separator:a88c2eeba8d0cba3e7c12a2c45ba0fbc6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0a05dac405ccc5b617b7b7b3c8ed783c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classHubzilla_1_1Import_1_1Import.html#a0a05dac405ccc5b617b7b7b3c8ed783c">$items</a> = null</td></tr>
+<tr class="separator:a0a05dac405ccc5b617b7b7b3c8ed783c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
+Private Attributes</h2></td></tr>
+<tr class="memitem:a864aac9fadb4846f5d9f840e8e0f440f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classHubzilla_1_1Import_1_1Import.html#a864aac9fadb4846f5d9f840e8e0f440f">$credentials</a> = null</td></tr>
+<tr class="separator:a864aac9fadb4846f5d9f840e8e0f440f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a5434325afb2c633c52540127d717800a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Hubzilla\Import\Import::convert_child </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$child</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classHubzilla_1_1Import_1_1Import.html#a8d138a9a7d4f79b81d3446ca216a602c">Hubzilla\Import\Import\run()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a107703a43a1b0ceb2af7ae470cb3f218"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Hubzilla\Import\Import::convert_item </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item_ident</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classHubzilla_1_1Import_1_1Import.html#a8d138a9a7d4f79b81d3446ca216a602c">Hubzilla\Import\Import\run()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="addf6e53dacd971eaab49be4b17a767d6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Hubzilla\Import\Import::convert_taxonomy </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item_ident</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classHubzilla_1_1Import_1_1Import.html#a8d138a9a7d4f79b81d3446ca216a602c">Hubzilla\Import\Import\run()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a57561904b0f127e0d9a3e2c33688daf8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Hubzilla\Import\Import::get_children </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item_ident</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classHubzilla_1_1Import_1_1Import.html#a8d138a9a7d4f79b81d3446ca216a602c">Hubzilla\Import\Import\run()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a24134929d9a8a682da2036a0bf326367"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Hubzilla\Import\Import::get_credentials </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classHubzilla_1_1Import_1_1Import.html#a8d138a9a7d4f79b81d3446ca216a602c">Hubzilla\Import\Import\run()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a27987a41cb703a796f1821baeb4774a2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Hubzilla\Import\Import::get_item </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item_ident</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classHubzilla_1_1Import_1_1Import.html#a8d138a9a7d4f79b81d3446ca216a602c">Hubzilla\Import\Import\run()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a772c28edf36aaf8e66007a95004c4059"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Hubzilla\Import\Import::get_item_ident </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a855cd5a79b95d269ae8737fae774e3bc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Hubzilla\Import\Import::get_itemlist </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classHubzilla_1_1Import_1_1Import.html#a8d138a9a7d4f79b81d3446ca216a602c">Hubzilla\Import\Import\run()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae3c6472bea1a44025bc2e152604eb20c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Hubzilla\Import\Import::get_taxonomy </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item_ident</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classHubzilla_1_1Import_1_1Import.html#a8d138a9a7d4f79b81d3446ca216a602c">Hubzilla\Import\Import\run()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a8d138a9a7d4f79b81d3446ca216a602c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Hubzilla\Import\Import::run </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a33ed595de044c0ec1cd84cca719e31dc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Hubzilla\Import\Import::store </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$update</em> = <code>false</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Member Data Documentation</h2>
+<a class="anchor" id="a864aac9fadb4846f5d9f840e8e0f440f"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Hubzilla\Import\Import::$credentials = null</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classHubzilla_1_1Import_1_1Import.html#a24134929d9a8a682da2036a0bf326367">Hubzilla\Import\Import\get_credentials()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad0d2bdc3b388220479063915b4f5c2fc"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Hubzilla\Import\Import::$itemlist = null</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classHubzilla_1_1Import_1_1Import.html#a855cd5a79b95d269ae8737fae774e3bc">Hubzilla\Import\Import\get_itemlist()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0a05dac405ccc5b617b7b7b3c8ed783c"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Hubzilla\Import\Import::$items = null</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a88c2eeba8d0cba3e7c12a2c45ba0fbc6"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Hubzilla\Import\Import::$src_items = null</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>include/Import/<a class="el" href="Importer_8php.html">Importer.php</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content --> \ No newline at end of file
diff --git a/doc/credits.bb b/doc/credits.bb
index 200f1fc85..5219d7bf5 100644
--- a/doc/credits.bb
+++ b/doc/credits.bb
@@ -14,7 +14,7 @@ tommy tomson
Simon
zottel
Christian Vogeley
-jeroenpraat
+Jeroen van Riet Paap (jeroenpraat)
Michael Vogel
erik
Zach Prezkuta
diff --git a/doc/database.bb b/doc/database.bb
index 7be6735c9..fe193cf7f 100644
--- a/doc/database.bb
+++ b/doc/database.bb
@@ -1,66 +1,66 @@
[h2]Database Tables[/h2]
[table]
[tr][th]Table[/th][th]Description[/th][/tr]
-[tr][td][zrl=[baseurl]/help/db_abook]abook[/zrl][/td][td]connections of local channels[/td][/tr]
-[tr][td][zrl=[baseurl]/help/db_account]account[/zrl][/td][td]service provider account[/td][/tr]
-[tr][td][zrl=[baseurl]/help/db_addon]addon[/zrl][/td][td]registered plugins[/td][/tr]
-[tr][td][zrl=[baseurl]/help/db_app]app[/zrl][/td][td]personal app data[/td][/tr]
-[tr][td][zrl=[baseurl]/help/db_attach]attach[/zrl][/td][td]file attachments[/td][/tr]
-[tr][td][zrl=[baseurl]/help/db_auth_codes]auth_codes[/zrl][/td][td]OAuth usage[/td][/tr]
-[tr][td][zrl=[baseurl]/help/db_cache]cache[/zrl][/td][td]OEmbed cache[/td][/tr]
-[tr][td][zrl=[baseurl]/help/db_channel]channel[/zrl][/td][td]local channels[/td][/tr]
-[tr][td][zrl=[baseurl]/help/db_chat]chat[/zrl][/td][td]chat room content[/td][/tr]
-[tr][td][zrl=[baseurl]/help/db_chatpresence]chatpresence[/zrl][/td][td]channel presence information for chat[/td][/tr]
-[tr][td][zrl=[baseurl]/help/db_chatroom]chatroom[/zrl][/td][td]data for the actual chat room[/td][/tr]
-[tr][td][zrl=[baseurl]/help/db_clients]clients[/zrl][/td][td]OAuth usage[/td][/tr]
-[tr][td][zrl=[baseurl]/help/db_config]config[/zrl][/td][td]main configuration storage[/td][/tr]
-[tr][td][zrl=[baseurl]/help/db_conv]conv[/zrl][/td][td]Diaspora private messages meta conversation structure[/td][/tr]
-[tr][td][zrl=[baseurl]/help/db_event]event[/zrl][/td][td]Events[/td][/tr]
-[tr][td][zrl=[baseurl]/help/db_fcontact]fcontact[/zrl][/td][td]friend suggestion stuff (obsolete)[/td][/tr]
-[tr][td][zrl=[baseurl]/help/db_ffinder]ffinder[/zrl][/td][td]friend suggestion stuff (obsolete)[/td][/tr]
-[tr][td][zrl=[baseurl]/help/db_fserver]fserver[/zrl][/td][td]obsolete[/td][/tr]
-[tr][td][zrl=[baseurl]/help/db_fsuggest]fsuggest[/zrl][/td][td]friend suggestion stuff (unused)[/td][/tr]
-[tr][td][zrl=[baseurl]/help/db_group_member]group_member[/zrl][/td][td]privacy groups (collections), group info[/td][/tr]
-[tr][td][zrl=[baseurl]/help/db_groups]groups[/zrl][/td][td]privacy groups (collections), member info[/td][/tr]
-[tr][td][zrl=[baseurl]/help/db_hook]hook[/zrl][/td][td]plugin hook registry[/td][/tr]
-[tr][td][zrl=[baseurl]/help/db_hubloc]hubloc[/zrl][/td][td]Red location storage, ties a hub location to an xchan[/td][/tr]
-[tr][td][zrl=[baseurl]/help/db_issue]issue[/zrl][/td][td]future bug/issue database[/td][/tr]
-[tr][td][zrl=[baseurl]/help/db_item]item[/zrl][/td][td]all posts and webpages[/td][/tr]
-[tr][td][zrl=[baseurl]/help/db_item_id]item_id[/zrl][/td][td]other identifiers on other services for posts[/td][/tr]
-[tr][td][zrl=[baseurl]/help/db_likes]likes[/zrl][/td][td]likes of 'things'[/td][/tr]
-[tr][td][zrl=[baseurl]/help/db_mail]mail[/zrl][/td][td]private messages[/td][/tr]
-[tr][td][zrl=[baseurl]/help/db_manage]manage[/zrl][/td][td]may be unused in Red, table of accounts that can "su" each other[/td][/tr]
-[tr][td][zrl=[baseurl]/help/db_menu]menu[/zrl][/td][td]webpage menu data[/td][/tr]
-[tr][td][zrl=[baseurl]/help/db_menu_item]menu_item[/zrl][/td][td]entries for webpage menus[/td][/tr]
-[tr][td][zrl=[baseurl]/help/db_notify]notify[/zrl][/td][td]notifications[/td][/tr]
-[tr][td][zrl=[baseurl]/help/db_obj]obj[/zrl][/td][td]object data for things (x has y)[/td][/tr]
-[tr][td][zrl=[baseurl]/help/db_outq]outq[/zrl][/td][td]Red output queue[/td][/tr]
-[tr][td][zrl=[baseurl]/help/db_pconfig]pconfig[/zrl][/td][td]personal (per channel) configuration storage[/td][/tr]
-[tr][td][zrl=[baseurl]/help/db_photo]photo[/zrl][/td][td]photo storage[/td][/tr]
-[tr][td][zrl=[baseurl]/help/db_poll]poll[/zrl][/td][td]data for polls[/td][/tr]
-[tr][td][zrl=[baseurl]/help/db_poll_elm]poll_elm[/zrl][/td][td]data for poll elements[/td][/tr]
-[tr][td][zrl=[baseurl]/help/db_profdef]profdef[/zrl][/td][td]custom profile field definitions[/td][/tr]
-[tr][td][zrl=[baseurl]/help/db_profext]profext[/zrl][/td][td]custom profile field data[/td][/tr]
-[tr][td][zrl=[baseurl]/help/db_profile]profile[/zrl][/td][td]channel profiles[/td][/tr]
-[tr][td][zrl=[baseurl]/help/db_profile_check]profile_check[/zrl][/td][td]DFRN remote auth use, may be obsolete[/td][/tr]
-[tr][td][zrl=[baseurl]/help/db_register]register[/zrl][/td][td]registrations requiring admin approval[/td][/tr]
-[tr][td][zrl=[baseurl]/help/db_session]session[/zrl][/td][td]web session storage[/td][/tr]
-[tr][td][zrl=[baseurl]/help/db_shares]shares[/zrl][/td][td]shared item information[/td][/tr]
-[tr][td][zrl=[baseurl]/help/db_sign]sign[/zrl][/td][td]Diaspora signatures. To be phased out.[/td][/tr]
-[tr][td][zrl=[baseurl]/help/db_site]site[/zrl][/td][td]site table to find directory peers[/td][/tr]
-[tr][td][zrl=[baseurl]/help/db_source]source[/zrl][/td][td]channel sources data[/td][/tr]
-[tr][td][zrl=[baseurl]/help/db_spam]spam[/zrl][/td][td]unfinished[/td][/tr]
-[tr][td][zrl=[baseurl]/help/db_sys_perms]sys_perms[/zrl][/td][td]extensible permissions for OAuth[/td][/tr]
-[tr][td][zrl=[baseurl]/help/db_term]term[/zrl][/td][td]item taxonomy (categories, tags, etc.) table[/td][/tr]
-[tr][td][zrl=[baseurl]/help/db_tokens]tokens[/zrl][/td][td]OAuth usage[/td][/tr]
-[tr][td][zrl=[baseurl]/help/db_updates]updates[/zrl][/td][td]directory sync updates[/td][/tr]
-[tr][td][zrl=[baseurl]/help/db_verify]verify[/zrl][/td][td]general purpose verification structure[/td][/tr]
-[tr][td][zrl=[baseurl]/help/db_vote]vote[/zrl][/td][td]vote data for polls[/td][/tr]
-[tr][td][zrl=[baseurl]/help/db_xchan]xchan[/zrl][/td][td]list of known channels in the universe[/td][/tr]
-[tr][td][zrl=[baseurl]/help/db_xchat]xchat[/zrl][/td][td]bookmarked chat rooms[/td][/tr]
-[tr][td][zrl=[baseurl]/help/db_xconfig]xconfig[/zrl][/td][td]as pconfig but for channels with no local account[/td][/tr]
-[tr][td][zrl=[baseurl]/help/db_xign]xign[/zrl][/td][td]channels ignored by friend suggestions[/td][/tr]
-[tr][td][zrl=[baseurl]/help/db_xlink]xlink[/zrl][/td][td]"friends of friends" linkages derived from poco, also ratings storage[/td][/tr]
-[tr][td][zrl=[baseurl]/help/db_xprof]xprof[/zrl][/td][td]if this hub is a directory server, contains basic public profile info of everybody in the network[/td][/tr]
-[tr][td][zrl=[baseurl]/help/db_xtag]xtag[/zrl][/td][td]if this hub is a directory server, contains tags or interests of everybody in the network[/td][/tr]
+[tr][td][zrl=[baseurl]/help/database/db_abook]abook[/zrl][/td][td]connections of local channels[/td][/tr]
+[tr][td][zrl=[baseurl]/help/database/db_account]account[/zrl][/td][td]service provider account[/td][/tr]
+[tr][td][zrl=[baseurl]/help/database/db_addon]addon[/zrl][/td][td]registered plugins[/td][/tr]
+[tr][td][zrl=[baseurl]/help/database/db_app]app[/zrl][/td][td]personal app data[/td][/tr]
+[tr][td][zrl=[baseurl]/help/database/db_attach]attach[/zrl][/td][td]file attachments[/td][/tr]
+[tr][td][zrl=[baseurl]/help/database/db_auth_codes]auth_codes[/zrl][/td][td]OAuth usage[/td][/tr]
+[tr][td][zrl=[baseurl]/help/database/db_cache]cache[/zrl][/td][td]OEmbed cache[/td][/tr]
+[tr][td][zrl=[baseurl]/help/database/db_channel]channel[/zrl][/td][td]local channels[/td][/tr]
+[tr][td][zrl=[baseurl]/help/database/db_chat]chat[/zrl][/td][td]chat room content[/td][/tr]
+[tr][td][zrl=[baseurl]/help/database/db_chatpresence]chatpresence[/zrl][/td][td]channel presence information for chat[/td][/tr]
+[tr][td][zrl=[baseurl]/help/database/db_chatroom]chatroom[/zrl][/td][td]data for the actual chat room[/td][/tr]
+[tr][td][zrl=[baseurl]/help/database/db_clients]clients[/zrl][/td][td]OAuth usage[/td][/tr]
+[tr][td][zrl=[baseurl]/help/database/db_config]config[/zrl][/td][td]main configuration storage[/td][/tr]
+[tr][td][zrl=[baseurl]/help/database/db_conv]conv[/zrl][/td][td]Diaspora private messages meta conversation structure[/td][/tr]
+[tr][td][zrl=[baseurl]/help/database/db_event]event[/zrl][/td][td]Events[/td][/tr]
+[tr][td][zrl=[baseurl]/help/database/db_fcontact]fcontact[/zrl][/td][td]friend suggestion stuff (obsolete)[/td][/tr]
+[tr][td][zrl=[baseurl]/help/database/db_ffinder]ffinder[/zrl][/td][td]friend suggestion stuff (obsolete)[/td][/tr]
+[tr][td][zrl=[baseurl]/help/database/db_fserver]fserver[/zrl][/td][td]obsolete[/td][/tr]
+[tr][td][zrl=[baseurl]/help/database/db_fsuggest]fsuggest[/zrl][/td][td]friend suggestion stuff (unused)[/td][/tr]
+[tr][td][zrl=[baseurl]/help/database/db_group_member]group_member[/zrl][/td][td]privacy groups (collections), group info[/td][/tr]
+[tr][td][zrl=[baseurl]/help/database/db_groups]groups[/zrl][/td][td]privacy groups (collections), member info[/td][/tr]
+[tr][td][zrl=[baseurl]/help/database/db_hook]hook[/zrl][/td][td]plugin hook registry[/td][/tr]
+[tr][td][zrl=[baseurl]/help/database/db_hubloc]hubloc[/zrl][/td][td]Red location storage, ties a hub location to an xchan[/td][/tr]
+[tr][td][zrl=[baseurl]/help/database/db_issue]issue[/zrl][/td][td]future bug/issue database[/td][/tr]
+[tr][td][zrl=[baseurl]/help/database/db_item]item[/zrl][/td][td]all posts and webpages[/td][/tr]
+[tr][td][zrl=[baseurl]/help/database/db_item_id]item_id[/zrl][/td][td]other identifiers on other services for posts[/td][/tr]
+[tr][td][zrl=[baseurl]/help/database/db_likes]likes[/zrl][/td][td]likes of 'things'[/td][/tr]
+[tr][td][zrl=[baseurl]/help/database/db_mail]mail[/zrl][/td][td]private messages[/td][/tr]
+[tr][td][zrl=[baseurl]/help/database/db_manage]manage[/zrl][/td][td]may be unused in Red, table of accounts that can "su" each other[/td][/tr]
+[tr][td][zrl=[baseurl]/help/database/db_menu]menu[/zrl][/td][td]webpage menu data[/td][/tr]
+[tr][td][zrl=[baseurl]/help/database/db_menu_item]menu_item[/zrl][/td][td]entries for webpage menus[/td][/tr]
+[tr][td][zrl=[baseurl]/help/database/db_notify]notify[/zrl][/td][td]notifications[/td][/tr]
+[tr][td][zrl=[baseurl]/help/database/db_obj]obj[/zrl][/td][td]object data for things (x has y)[/td][/tr]
+[tr][td][zrl=[baseurl]/help/database/db_outq]outq[/zrl][/td][td]Red output queue[/td][/tr]
+[tr][td][zrl=[baseurl]/help/database/db_pconfig]pconfig[/zrl][/td][td]personal (per channel) configuration storage[/td][/tr]
+[tr][td][zrl=[baseurl]/help/database/db_photo]photo[/zrl][/td][td]photo storage[/td][/tr]
+[tr][td][zrl=[baseurl]/help/database/db_poll]poll[/zrl][/td][td]data for polls[/td][/tr]
+[tr][td][zrl=[baseurl]/help/database/db_poll_elm]poll_elm[/zrl][/td][td]data for poll elements[/td][/tr]
+[tr][td][zrl=[baseurl]/help/database/db_profdef]profdef[/zrl][/td][td]custom profile field definitions[/td][/tr]
+[tr][td][zrl=[baseurl]/help/database/db_profext]profext[/zrl][/td][td]custom profile field data[/td][/tr]
+[tr][td][zrl=[baseurl]/help/database/db_profile]profile[/zrl][/td][td]channel profiles[/td][/tr]
+[tr][td][zrl=[baseurl]/help/database/db_profile_check]profile_check[/zrl][/td][td]DFRN remote auth use, may be obsolete[/td][/tr]
+[tr][td][zrl=[baseurl]/help/database/db_register]register[/zrl][/td][td]registrations requiring admin approval[/td][/tr]
+[tr][td][zrl=[baseurl]/help/database/db_session]session[/zrl][/td][td]web session storage[/td][/tr]
+[tr][td][zrl=[baseurl]/help/database/db_shares]shares[/zrl][/td][td]shared item information[/td][/tr]
+[tr][td][zrl=[baseurl]/help/database/db_sign]sign[/zrl][/td][td]Diaspora signatures. To be phased out.[/td][/tr]
+[tr][td][zrl=[baseurl]/help/database/db_site]site[/zrl][/td][td]site table to find directory peers[/td][/tr]
+[tr][td][zrl=[baseurl]/help/database/db_source]source[/zrl][/td][td]channel sources data[/td][/tr]
+[tr][td][zrl=[baseurl]/help/database/db_spam]spam[/zrl][/td][td]unfinished[/td][/tr]
+[tr][td][zrl=[baseurl]/help/database/db_sys_perms]sys_perms[/zrl][/td][td]extensible permissions for OAuth[/td][/tr]
+[tr][td][zrl=[baseurl]/help/database/db_term]term[/zrl][/td][td]item taxonomy (categories, tags, etc.) table[/td][/tr]
+[tr][td][zrl=[baseurl]/help/database/db_tokens]tokens[/zrl][/td][td]OAuth usage[/td][/tr]
+[tr][td][zrl=[baseurl]/help/database/db_updates]updates[/zrl][/td][td]directory sync updates[/td][/tr]
+[tr][td][zrl=[baseurl]/help/database/db_verify]verify[/zrl][/td][td]general purpose verification structure[/td][/tr]
+[tr][td][zrl=[baseurl]/help/database/db_vote]vote[/zrl][/td][td]vote data for polls[/td][/tr]
+[tr][td][zrl=[baseurl]/help/database/db_xchan]xchan[/zrl][/td][td]list of known channels in the universe[/td][/tr]
+[tr][td][zrl=[baseurl]/help/database/db_xchat]xchat[/zrl][/td][td]bookmarked chat rooms[/td][/tr]
+[tr][td][zrl=[baseurl]/help/database/db_xconfig]xconfig[/zrl][/td][td]as pconfig but for channels with no local account[/td][/tr]
+[tr][td][zrl=[baseurl]/help/database/db_xign]xign[/zrl][/td][td]channels ignored by friend suggestions[/td][/tr]
+[tr][td][zrl=[baseurl]/help/database/db_xlink]xlink[/zrl][/td][td]"friends of friends" linkages derived from poco, also ratings storage[/td][/tr]
+[tr][td][zrl=[baseurl]/help/database/db_xprof]xprof[/zrl][/td][td]if this hub is a directory server, contains basic public profile info of everybody in the network[/td][/tr]
+[tr][td][zrl=[baseurl]/help/database/db_xtag]xtag[/zrl][/td][td]if this hub is a directory server, contains tags or interests of everybody in the network[/td][/tr]
[/table]
diff --git a/doc/db_abook.bb b/doc/database/db_abook.bb
index a34e51996..a34e51996 100644
--- a/doc/db_abook.bb
+++ b/doc/database/db_abook.bb
diff --git a/doc/db_account.bb b/doc/database/db_account.bb
index 354f2d3a8..354f2d3a8 100644
--- a/doc/db_account.bb
+++ b/doc/database/db_account.bb
diff --git a/doc/db_addon.bb b/doc/database/db_addon.bb
index afa06d56c..afa06d56c 100644
--- a/doc/db_addon.bb
+++ b/doc/database/db_addon.bb
diff --git a/doc/db_app.bb b/doc/database/db_app.bb
index 7076bffdd..7076bffdd 100644
--- a/doc/db_app.bb
+++ b/doc/database/db_app.bb
diff --git a/doc/db_attach.bb b/doc/database/db_attach.bb
index 4514c87f8..4514c87f8 100644
--- a/doc/db_attach.bb
+++ b/doc/database/db_attach.bb
diff --git a/doc/db_auth_codes.bb b/doc/database/db_auth_codes.bb
index c60f064a4..c60f064a4 100644
--- a/doc/db_auth_codes.bb
+++ b/doc/database/db_auth_codes.bb
diff --git a/doc/db_cache.bb b/doc/database/db_cache.bb
index 02c292f20..02c292f20 100644
--- a/doc/db_cache.bb
+++ b/doc/database/db_cache.bb
diff --git a/doc/db_channel.bb b/doc/database/db_channel.bb
index 215db3fb7..215db3fb7 100644
--- a/doc/db_channel.bb
+++ b/doc/database/db_channel.bb
diff --git a/doc/db_chat.bb b/doc/database/db_chat.bb
index 6221f36e2..6221f36e2 100644
--- a/doc/db_chat.bb
+++ b/doc/database/db_chat.bb
diff --git a/doc/db_chatpresence.bb b/doc/database/db_chatpresence.bb
index cdc948a60..cdc948a60 100644
--- a/doc/db_chatpresence.bb
+++ b/doc/database/db_chatpresence.bb
diff --git a/doc/db_chatroom.bb b/doc/database/db_chatroom.bb
index b2da762cf..b2da762cf 100644
--- a/doc/db_chatroom.bb
+++ b/doc/database/db_chatroom.bb
diff --git a/doc/db_clients.bb b/doc/database/db_clients.bb
index d342b529f..d342b529f 100644
--- a/doc/db_clients.bb
+++ b/doc/database/db_clients.bb
diff --git a/doc/db_config.bb b/doc/database/db_config.bb
index f32d3c259..f32d3c259 100644
--- a/doc/db_config.bb
+++ b/doc/database/db_config.bb
diff --git a/doc/db_conv.bb b/doc/database/db_conv.bb
index ba1ba7f01..ba1ba7f01 100644
--- a/doc/db_conv.bb
+++ b/doc/database/db_conv.bb
diff --git a/doc/db_event.bb b/doc/database/db_event.bb
index 7c31d7fde..7c31d7fde 100644
--- a/doc/db_event.bb
+++ b/doc/database/db_event.bb
diff --git a/doc/db_fcontact.bb b/doc/database/db_fcontact.bb
index 9bd8c20fe..9bd8c20fe 100644
--- a/doc/db_fcontact.bb
+++ b/doc/database/db_fcontact.bb
diff --git a/doc/db_ffinder.bb b/doc/database/db_ffinder.bb
index c20158d56..c20158d56 100644
--- a/doc/db_ffinder.bb
+++ b/doc/database/db_ffinder.bb
diff --git a/doc/db_fserver.bb b/doc/database/db_fserver.bb
index 4c4b0b530..4c4b0b530 100644
--- a/doc/db_fserver.bb
+++ b/doc/database/db_fserver.bb
diff --git a/doc/db_fsuggest.bb b/doc/database/db_fsuggest.bb
index 9da1f2f6d..9da1f2f6d 100644
--- a/doc/db_fsuggest.bb
+++ b/doc/database/db_fsuggest.bb
diff --git a/doc/db_group_member.bb b/doc/database/db_group_member.bb
index d31fa1edb..d31fa1edb 100644
--- a/doc/db_group_member.bb
+++ b/doc/database/db_group_member.bb
diff --git a/doc/db_groups.bb b/doc/database/db_groups.bb
index 03e4fe2d7..03e4fe2d7 100644
--- a/doc/db_groups.bb
+++ b/doc/database/db_groups.bb
diff --git a/doc/db_hook.bb b/doc/database/db_hook.bb
index 6e8e907a1..6e8e907a1 100644
--- a/doc/db_hook.bb
+++ b/doc/database/db_hook.bb
diff --git a/doc/db_hubloc.bb b/doc/database/db_hubloc.bb
index e4ab7159d..e4ab7159d 100644
--- a/doc/db_hubloc.bb
+++ b/doc/database/db_hubloc.bb
diff --git a/doc/db_issue.bb b/doc/database/db_issue.bb
index 0a6f2912b..0a6f2912b 100644
--- a/doc/db_issue.bb
+++ b/doc/database/db_issue.bb
diff --git a/doc/db_item.bb b/doc/database/db_item.bb
index b31823d6c..b31823d6c 100644
--- a/doc/db_item.bb
+++ b/doc/database/db_item.bb
diff --git a/doc/db_item_id.bb b/doc/database/db_item_id.bb
index b77ae2d1a..b77ae2d1a 100644
--- a/doc/db_item_id.bb
+++ b/doc/database/db_item_id.bb
diff --git a/doc/db_likes.bb b/doc/database/db_likes.bb
index 118c9a87e..118c9a87e 100644
--- a/doc/db_likes.bb
+++ b/doc/database/db_likes.bb
diff --git a/doc/db_mail.bb b/doc/database/db_mail.bb
index 0628584ae..0628584ae 100644
--- a/doc/db_mail.bb
+++ b/doc/database/db_mail.bb
diff --git a/doc/db_manage.bb b/doc/database/db_manage.bb
index a0fdf5aa6..a0fdf5aa6 100644
--- a/doc/db_manage.bb
+++ b/doc/database/db_manage.bb
diff --git a/doc/db_menu.bb b/doc/database/db_menu.bb
index 5b478115d..5b478115d 100644
--- a/doc/db_menu.bb
+++ b/doc/database/db_menu.bb
diff --git a/doc/db_menu_item.bb b/doc/database/db_menu_item.bb
index b14aac5e4..b14aac5e4 100644
--- a/doc/db_menu_item.bb
+++ b/doc/database/db_menu_item.bb
diff --git a/doc/db_notify.bb b/doc/database/db_notify.bb
index 42f9350e5..42f9350e5 100644
--- a/doc/db_notify.bb
+++ b/doc/database/db_notify.bb
diff --git a/doc/db_obj.bb b/doc/database/db_obj.bb
index cc5e75598..cc5e75598 100644
--- a/doc/db_obj.bb
+++ b/doc/database/db_obj.bb
diff --git a/doc/db_outq.bb b/doc/database/db_outq.bb
index 970f99de5..970f99de5 100644
--- a/doc/db_outq.bb
+++ b/doc/database/db_outq.bb
diff --git a/doc/db_pconfig.bb b/doc/database/db_pconfig.bb
index 2ac36e61a..2ac36e61a 100644
--- a/doc/db_pconfig.bb
+++ b/doc/database/db_pconfig.bb
diff --git a/doc/db_photo.bb b/doc/database/db_photo.bb
index 6a0cdf362..6a0cdf362 100644
--- a/doc/db_photo.bb
+++ b/doc/database/db_photo.bb
diff --git a/doc/db_poll.bb b/doc/database/db_poll.bb
index 57d808b71..57d808b71 100644
--- a/doc/db_poll.bb
+++ b/doc/database/db_poll.bb
diff --git a/doc/db_poll_elm.bb b/doc/database/db_poll_elm.bb
index fd649d5a6..fd649d5a6 100644
--- a/doc/db_poll_elm.bb
+++ b/doc/database/db_poll_elm.bb
diff --git a/doc/db_profdef.bb b/doc/database/db_profdef.bb
index a0904fd79..a0904fd79 100644
--- a/doc/db_profdef.bb
+++ b/doc/database/db_profdef.bb
diff --git a/doc/db_profext.bb b/doc/database/db_profext.bb
index ada9dce2a..ada9dce2a 100644
--- a/doc/db_profext.bb
+++ b/doc/database/db_profext.bb
diff --git a/doc/db_profile.bb b/doc/database/db_profile.bb
index 83db75713..83db75713 100644
--- a/doc/db_profile.bb
+++ b/doc/database/db_profile.bb
diff --git a/doc/db_profile_check.bb b/doc/database/db_profile_check.bb
index 3be64c5da..3be64c5da 100644
--- a/doc/db_profile_check.bb
+++ b/doc/database/db_profile_check.bb
diff --git a/doc/db_register.bb b/doc/database/db_register.bb
index 50672b5e1..50672b5e1 100644
--- a/doc/db_register.bb
+++ b/doc/database/db_register.bb
diff --git a/doc/db_session.bb b/doc/database/db_session.bb
index d7ff0482d..d7ff0482d 100644
--- a/doc/db_session.bb
+++ b/doc/database/db_session.bb
diff --git a/doc/db_shares.bb b/doc/database/db_shares.bb
index be5255c03..be5255c03 100644
--- a/doc/db_shares.bb
+++ b/doc/database/db_shares.bb
diff --git a/doc/db_sign.bb b/doc/database/db_sign.bb
index e80ea7ef3..e80ea7ef3 100644
--- a/doc/db_sign.bb
+++ b/doc/database/db_sign.bb
diff --git a/doc/db_site.bb b/doc/database/db_site.bb
index 8dea4dae6..8dea4dae6 100644
--- a/doc/db_site.bb
+++ b/doc/database/db_site.bb
diff --git a/doc/db_source.bb b/doc/database/db_source.bb
index 92850a82e..92850a82e 100644
--- a/doc/db_source.bb
+++ b/doc/database/db_source.bb
diff --git a/doc/db_spam.bb b/doc/database/db_spam.bb
index b75e1edd3..b75e1edd3 100644
--- a/doc/db_spam.bb
+++ b/doc/database/db_spam.bb
diff --git a/doc/db_sys_perms.bb b/doc/database/db_sys_perms.bb
index 04416a26b..04416a26b 100644
--- a/doc/db_sys_perms.bb
+++ b/doc/database/db_sys_perms.bb
diff --git a/doc/db_term.bb b/doc/database/db_term.bb
index c0546cc6a..c0546cc6a 100644
--- a/doc/db_term.bb
+++ b/doc/database/db_term.bb
diff --git a/doc/db_tokens.bb b/doc/database/db_tokens.bb
index 35da2458c..35da2458c 100644
--- a/doc/db_tokens.bb
+++ b/doc/database/db_tokens.bb
diff --git a/doc/db_updates.bb b/doc/database/db_updates.bb
index f2e25d84c..f2e25d84c 100644
--- a/doc/db_updates.bb
+++ b/doc/database/db_updates.bb
diff --git a/doc/db_verify.bb b/doc/database/db_verify.bb
index 9d01181c5..9d01181c5 100644
--- a/doc/db_verify.bb
+++ b/doc/database/db_verify.bb
diff --git a/doc/db_vote.bb b/doc/database/db_vote.bb
index 0b9a423eb..0b9a423eb 100644
--- a/doc/db_vote.bb
+++ b/doc/database/db_vote.bb
diff --git a/doc/db_xchan.bb b/doc/database/db_xchan.bb
index fd1d68296..fd1d68296 100644
--- a/doc/db_xchan.bb
+++ b/doc/database/db_xchan.bb
diff --git a/doc/db_xchat.bb b/doc/database/db_xchat.bb
index 0897408d1..0897408d1 100644
--- a/doc/db_xchat.bb
+++ b/doc/database/db_xchat.bb
diff --git a/doc/db_xconfig.bb b/doc/database/db_xconfig.bb
index 111d1ce3a..111d1ce3a 100644
--- a/doc/db_xconfig.bb
+++ b/doc/database/db_xconfig.bb
diff --git a/doc/db_xign.bb b/doc/database/db_xign.bb
index e216e11cc..e216e11cc 100644
--- a/doc/db_xign.bb
+++ b/doc/database/db_xign.bb
diff --git a/doc/db_xlink.bb b/doc/database/db_xlink.bb
index 2eefec14a..2eefec14a 100644
--- a/doc/db_xlink.bb
+++ b/doc/database/db_xlink.bb
diff --git a/doc/db_xprof.bb b/doc/database/db_xprof.bb
index d98fb3f17..d98fb3f17 100644
--- a/doc/db_xprof.bb
+++ b/doc/database/db_xprof.bb
diff --git a/doc/db_xtag.bb b/doc/database/db_xtag.bb
index 1e6fb9961..1e6fb9961 100644
--- a/doc/db_xtag.bb
+++ b/doc/database/db_xtag.bb
diff --git a/doc/dav_dolphin.bb b/doc/dav_dolphin.bb
index a1ebba394..ae60a6d52 100644
--- a/doc/dav_dolphin.bb
+++ b/doc/dav_dolphin.bb
@@ -1,8 +1,8 @@
[b]Using The Cloud - Dolphin[/b]
-Visit webdavs://example.com/cloud where &quot;example.com&quot; is the URL of your hub.
+Visit webdavs://example.com/dav where &quot;example.com&quot; is the URL of your hub.
-When prompted for a username and password, enter your username (the first part of your webbie - no @ or domain name) and password for your normal account.
+When prompted for a username and password, enter your channel name (the first part of your webbie - no @ or domain name) and password for your normal account.
Note, if you are already logged in to the web interface via Konqueror, you will not be prompted for further authentication.
diff --git a/doc/dav_mount.bb b/doc/dav_mount.bb
index d8cb2e08e..0fd3d4691 100644
--- a/doc/dav_mount.bb
+++ b/doc/dav_mount.bb
@@ -25,14 +25,14 @@ Edit /etc/fstab
to include your cloud directory by adding
[code]
-[baseurl]/cloud/ /mount/point davfs user,noauto,uid=&lt;DesktopUser&gt;,file_mode=600,dir_mode=700 0 1
+[baseurl]/dav/ /mount/point davfs user,noauto,uid=&lt;DesktopUser&gt;,file_mode=600,dir_mode=700 0 1
[/code]
Where [baseurl] is the URL of your hub, /mount/point is the location you want to mount the cloud, and &lt;DesktopUser&gt; is the user you log in to one your computer. Note that if you are mounting as a normal user (not root) the mount point must be in your home directory.
For example, if I wanted to mount my cloud to a directory called 'cloud' in my home directory, and my username was bob, my fstab would be
-[code][baseurl]/cloud/ /home/bob/cloud davfs user,noauto,uid=bob,file_mode=600,dir_mode=700 0 1[/code]
+[code][baseurl]/dav/ /home/bob/cloud davfs user,noauto,uid=bob,file_mode=600,dir_mode=700 0 1[/code]
Now, create the mount point.
@@ -49,7 +49,7 @@ Create a file called 'secrets'
and add your cloud login credentials
[code]
-[baseurl]/cloud &lt;username&gt; &lt;password&gt;
+[baseurl]/dav &lt;username&gt; &lt;password&gt;
[/code]
Where &lt;username&gt; and &lt;password&gt; are the username and password [i]for your hub[/i].
@@ -60,7 +60,7 @@ Don't let this file be writeable by anyone who doesn't need it with
Finally, mount the drive.
-[code]mount [baseurl]/cloud[/code]
+[code]mount [baseurl]/dav[/code]
You can now find your cloud at /home/bob/cloud and use it as though it were part of your local filesystem - even if the applications you are using have no dav support themselves.
diff --git a/doc/dav_nautilus.bb b/doc/dav_nautilus.bb
index 51663b6de..c8911cda8 100644
--- a/doc/dav_nautilus.bb
+++ b/doc/dav_nautilus.bb
@@ -2,8 +2,8 @@
1. Open a File browsing window (that's Nautilus)
2. Select File &gt; Connect to server from the menu
-3. Type davs://&lt;domain_name&gt;/cloud/&lt;your_username&gt; and click Connect
-4. You will be prompted for your username (same as above) and password
+3. Type davs://&lt;domain_name&gt;/dav/&lt;your_channelname&gt; and click Connect
+4. You will be prompted for your channel name (same as above) and password
5. Your personal DAV directory will be shown in the window
#include doc/macros/cloud_footer.bb;
diff --git a/doc/dav_nemo.bb b/doc/dav_nemo.bb
index 2c88b0782..f2d994fbb 100644
--- a/doc/dav_nemo.bb
+++ b/doc/dav_nemo.bb
@@ -3,16 +3,16 @@
For (file browser) Nemo 1.8.2 under Linux Mint 15, Cinnamon 1.8.8. Nemo ist the standard file browser there.
1st way
-type &quot;davs://yourusername@friendicared.net/cloud&quot; in the address bar
+type &quot;davs://&lt;domain_name&gt;/dav/&lt;your_channelname&gt;&quot; in the address bar.
2nd way
Menu &gt; file &gt; connect to server
Fill the dialog
-- Server: friendicared.net
+- Server: hubzilla_domain_name
- Type: Secure WebDAV (https)
-- Folder: /cloud
-- Username: yourusername
-- Passwort: yourpasswort
+- Folder: /dav
+- Username: yourchannelname
+- Password: yourpassword
Once open you can set a bookmark.
diff --git a/doc/dav_windows.bb b/doc/dav_windows.bb
index 0eaffd4d0..96862e2b5 100644
--- a/doc/dav_windows.bb
+++ b/doc/dav_windows.bb
@@ -4,8 +4,8 @@ RedDav using Windows 7 graphical user interface wizard:
1. Left-click the Start-button to open the start menu.
2. Right-click the My computer icon to access its menu.
3. Left-click Map network drive... to open the connection dialog wizard.
-4. Type #^[url=https://example.net/cloud/your_user_name]https://example.net/cloud/your_user_name[/url] in the textbox and click the Complete button where &quot;example.net&quot; is the URL of your hub.
-5. Type your Red account's user name. IMPORTANT - NO at-sign or domain name.
-6. Type your Red password
+4. Type #^[url=https://example.net/dav/your_channel_name]https://example.net/dav/your_channel_name[/url] in the textbox and click the Complete button where &quot;example.net&quot; is the URL of your hub.
+5. Type your Hubzilla account's user name. IMPORTANT - NO at-sign or domain name.
+6. Type your Hubzilla password
#include doc/macros/cloud_footer.bb;
diff --git a/doc/de/features.bb b/doc/de/features.bb
index 3e882b7b4..6bee360eb 100644
--- a/doc/de/features.bb
+++ b/doc/de/features.bb
@@ -1,34 +1,23 @@
-[h1][b]$Projectname-Features[/b][/h1]
+[size=large][b]Features der $Projectname[/b][/size]
-[h1]$Projectname kurz zusammengefasst[/h1]
+Die $Projectname ist ein Allzweck-Kommunikationsnetzwerk mit einigen einzigartigen Features. Sie wurde für eine große Bandbreite von Nutzern entwickelt, von Nutzern sozialer Netzwerke über technisch nicht interessierte Blogger bis hin zu PHP-Experten und erfahrenen Systemadministratoren.
-tl;dr
-
-$Projectname stellt verteiltes Web-Publishing und soziale Kommunikation mit [b]dezentraler Rechteverwaltung[/b] zur Verfügung.
-
-Aber was genau ist eine dezentrale Rechteverwaltung? Sie gibt mir die Möglichkeit, etwas auf einem Website (Fotos, Medien, Dateien, Webseiten etc.) mit bestimmten Personen auf anderen Websites zu teilen – aber nicht unbedingt mit [i]allen[/i] auf diesen Websites. Und: Sie brauchen kein Konto auf meiner Website und müssen sich auf meiner Website nicht extra einloggen, um sich die Dinge anzusehen, die ich mit ihnen geteilt habe. Sie haben ein Konto auf ihrer Heimat-Website, und „Magic Authentication“ zwischen den Websites besorgt den Rest. Da das Netzwerk dezentral aufgebaut ist, gibt es auch keinen einzelnen Betreiber des Netzwerks, der an der Rechteverwaltung vorbei alles sehen kann.
-
-$Projectname kombiniert viele Features von tradionellen Blogs, sozialen Netzwerken und Medien, Content-Management-Systemen und persönlichem Cloud-Speicher auf einer einfach zu nutzenden Plattform. Jeder Hub (Web-Server) in der Matrix kann isoliert operieren oder sich mit anderen Hubs zu einem Super-Netzwerk vereinen. Die Kontrolle über die Privatsphäre hat immer derjenige, der die Inhalte veröffentlicht.
-
-$Projectname ist ein Open-Source Webserver-Applikation, geschrieben ursprünglich für PHP/MySQL. Mit minimaler Erfahrung als Admin ist sie leicht zu installieren. Sie kann auch durch Plugins und Themes und weitere Angebote von Drittanbietern erweitert werden.
-
-[h1][b]$Projectname-Features[/b][/h1]
-
-$Projectname ist ein Allzweck-Web-Publishing- und Kommunikationsnetzwerk mit einigen einzigartigen Features. Sie wurde für eine große Bandbreite von Nutzern entwickelt, von Nutzern sozialer Netzwerke über technisch nicht interessierte Blogger bis hin zu PHP-Experten und erfahrenen Systemadministratoren.
-
-Diese Seite listet einige der Kern-Features von $Projectname auf, die in der offiziellen Distribution enthalten sind. Wie immer bei freier Open-Source-Software sind den Möglichkeiten keine Grenzen gesetzt. Beliebige Erweiterungen, Addons, Themes und Konfigurationen sind möglich.
+Diese Seite listet einige der Kern-Features von Red auf, die in der offiziellen Distribution enthalten sind. Wie immer bei freier Open-Source-Software sind den Möglichkeiten keine Grenzen gesetzt. Beliebige Erweiterungen, Addons, Themes und Konfigurationen sind möglich.
[h2]Entwickelt für Privatsphäre und Freiheit[/h2]
-Eines der Design-Ziele von $Projectname ist einfache Kommunikations über das Web, ohne die Privatsphäre zu vernachlässigen, wenn die Nutzer das wünschen. Um dieses Ziel zu erreichen, verfügt $Projectname über einige Features, die beliebige Stufen des Privatsphäre-Schutzes ermöglichen:
+Eines der Design-Ziele von Red ist einfache Kommunikations über das Web, ohne die Privatsphäre zu vernachlässigen, wenn die Nutzer das Wünschen. Um dieses Ziel zu erreichen, verfügt Red über einige Features, die beliebige Stufen des Privatsphäre-Schutzes ermöglichen:
[b]Beziehungs-Tool[/b]
Wenn Du in der $Projectname einen Kontakt hinzufügst (und das Beziehungs-Tool aktiviert hast), hast Du die Möglichkeit, einen „Grad der Freundschaft“ zu bestimmen. Bespiel: Wenn Du ein Blog eines Bekannten hinzufügst, könntest Du ihm den Freundschaftsgrad „Bekannte“ (Acquaintances) geben.
+
+[img]https://friendicared.net/photo/b07b0262e3146325508b81a9d1ae4a1e-0.png[/img]
+
Wenn Du aber den privaten Kanal eines Freundes hinzufügst, wäre der Freundschaftsgrad „Freunde“ vermutlich passender.
-Wenn Du allen Kontakten solche Freundschaftsgrade zugeordnet hast, kannst Du mit dem Beziehungs-Tool, das (sofern aktiviert) oben auf Deiner Matrix-Seite erscheint, bestimmen, welche Inhalte Du sehen willst. Indem Du die Schieberegler einstellst, legst Du fest, was angezeigt wird – nur Kanäle mit einem Freundschaftsgrad innerhalb des eingestellten Bereichs werden angezeigt
+Wenn Du allen Kontakten solche Freundschaftsgrade zugeordnet hast, kannst Du mit dem Beziehungs-Tool, das (sofern aktiviert) oben auf Deiner Matrix-Seite erscheint, bestimmen, welche Inhalte Du sehen willst. Indem Du die Schieberegler so einstellst, dass der linke auf „Ich“ und der rechte auf „Freunde“ steht, kannst Du dafür sorgen, dass nur Inhalte von Kontakten angezeigt werden, deren Freundschaftsgrad sich irgendwo im Bereich zwischen „Ich“, „Beste Freunde“ und „Freunde“ bewegt. Alle anderen Kontakte, zum Beispiel solche mit einem Freundschaftsgrad in der Nähe von „Bekannte“, werden nicht angezeigt.
Das Beziehungs-Tool erlaubt blitzschnelles Filtern von großen Mengen Inhalt, gruppiert nach Freundschaftsgrad.
@@ -42,7 +31,7 @@ Solche Zugriffsrechte gibt es bei Beiträgen, Fotos, Terminen, Webseiten, Chat-R
[b]Ein Passwort für alle $Projectname-Server (Single Sign-on)[/b]
-Zugriffsrechte funktionieren in der gesamten Matrix mit allen Kanälen. Die meisten Links, die innerhalb von $Projectname verlinken, enthalten Deine Identität (zid), so dass der Zielserver Dich direkt anmelden kann. Du kannst Dich aber auch so auf jedem $Projectname-Server mit Deiner $Projectname-Identität anmelden und erhältst dann Zugriff auf die Inhalte, die für Dich freigegeben sind.
+Zugriffsrechte funktionieren in der gesamten $Projectname mit allen Kanälen. Die meisten Links, die innerhalb der $Projectname verlinken, enthalten deine Identität (zid), so dass der Zielserver Dich direkt anmelden kann. Du kannst Dich aber auch so auf jedem $Projectname-Server mit Deinem $Projectname-Identität anmelden und erhältst dann Zugriff auf die Inhalte, die für Dich freigegeben sind.
Du loggst Dich nur einmal auf Deinem Heimatserver ein. Ab dann funktioniert die Authentifizierung gegenüber anderen $Projectname-Servern „magisch“ von selbst.
@@ -56,7 +45,7 @@ Stelle Deine Fotos online in Alben zur Verfügung. Auch hier kann der Zugriff ü
[b]Terminkalender[/b]
-Im eingebauten Terminkalender kannst Du Termine erstellen und verwalten. Auch hier greifen die Zugriffsrechte für andere. Termine können im vcalendar/iCal-Format exportiert und mit anderen geteilt werden. Wenn Deine Kontakte ihren Geburtstag in ihr Profil eingetragen haben, werden diese Geburtstage automatisch zu Deinem Kalender hinzugefügt – mit entsprechender Anpassung der Zeitzone, so dass Du nie zu früh oder zu spät gratulierst. Termine werden normalerweise mit Teilnehmerzählern erstellt, so dass Deine Freunde und Verbindungen sofort zu- oder absagen können.
+Im eingebauten Terminkalender kannst Du Termine erstellen und verwalten. Auch hier greifen die Zugriffsrechte für andere. Termine können im vcalendar/iCal-Format exportiert und mit anderen geteilt werden. Wenn Deine Kontakte ihren Geburtstag in ihr Profil eingetragen haben, werden diese Geburtstage automatisch zu Deinem Kalender hinzugefügt – mit entsprechender Anpassung der Zeitzone, so dass Du nie zu früh oder zu spät gratulierst.
[b]Chat-Räume[/b]
@@ -64,7 +53,7 @@ Du kannst Chaträume erstellen und über die Zugriffsrechte nur bestimmten Nutze
[b]Erstellen von Webseiten[/b]
-In $Projectname gibt es Werkzeuge für „Content Management“, mit denen Du einfache Webseiten erstellen kannst, aber auch komplexe Layouts, Menüs, Blöcke und Widgets. Auch hier greifen die Zugriffsrechte, so dass die entstandenen Seiten nur von denen betrachtet werden können, denen Du das Recht dazu eingeräumt hast.
+In der $Projectname gibt es Werkzeuge für „Content Management“, mit denen Du einfache Webseiten erstellen kannst, aber auch komplexe Layouts, Menüs, Blöcke und Widgets. Auch hier greifen die Zugriffsrechte, so dass die entstandenen Seiten nur von denen betrachtet werden können, denen Du das Recht dazu eingeräumt hast.
[b]Apps[/b]
@@ -72,7 +61,7 @@ $Projectname-Mitglieder könnnen Apps erstellen und verteilen. Anders als bei an
[b]Layout[/b]
-Das Seiten-Layout basiert auf eine Beschreibungssprache namens Comanche. $Projectname ist selbst in Comanche-Layouts verfasst, die man verändern kann. Dadurch ist eine sehr starke Anpassung an die eigenen Bedürfnisse möglich, wie man sie so in Multi-User-Umgebungen normalerweise nicht findet.
+Das Seiten-Layout basiert auf eine Beschreibungssprache namens Comanche. Die $Projectname ist selbst in Comanche-Layouts verfasst, die man verändern kann. Dadurch ist eine sehr starke Anpassung an die eigenen Bedürfnisse möglich, wie man sie so in Multi-User-Umgebungen normalerweise nicht findet.
[b]Lesezeichen[/b]
@@ -80,9 +69,9 @@ Du kannst Lesezeichen teilen, speichern und verwalten, direkt aus den Unterhaltu
[b]Verschlüsselung privater Nachrichten[/b]
-Nachrichten mit eingeschränktem Empfängerkreis werden mit einem symmetrischen 256-bit-AES-CBC-Schlüssel verschlüsselt, der seinerseits mit Public-Key-Kryptografie auf Basis von 4096-bittigen RSA-Schlüsseln geschützt (nochmal verschlüsselt) wird, die mit dem sendenden Kanal verbunden sind. Diese Nachrichten werden auch auf anderen $Pojectname-Servern verschlüsselt gespeichert.
+Nachrichten mit eingeschränktem Empfängerkreis werden mit einem symmetrischen 256-bit-AES-CBC-Schlüssel verschlüsselt, der seinerseits mit Public-Key-Kryptografie auf Basis von 4096-bittigen RSA-Schlüsseln geschützt (nochmal verschlüsselt) wird, die mit dem sendenden Kanal verbunden sind. Diese Nachrichten werden auch auf anderen Red-Servern verschlüsselt gespeichert.
-Jeder $Projectname-Kanal hat seinen eigenes 4096-bit-RSA-Schlüsselpaar, das erzeugt wird, wenn der Kanal erstellt wird.
+Jeder Red-Kanal hat seinen eigenes 4096-bit-RSA-Schlüsselpaar, das erzeugt wird, wenn der Kanal erstellt wird.
Zusätzlich können Nachrichten mit Ende-zu-Ende-Verschlüsselung versehen werden, so dass weder $Projectname-Server-Administratoren noch ISPs irgendetwas mitlesen können, solange sie nicht über das Passwort verfügen.
@@ -94,15 +83,15 @@ Alle Nachrichten können mit einem „Verfallsdatum“ versehen werden. Zu diese
[b]Verbindung zu anderen Diensten[/b]
-Neben Plugins, die das „crossposten“ zu diversen anderen Netzwerk erlauben, wird der Import von RSS/Atom-Feeds nativ unterstützt, auch, um mit diesen Inhalten spezielle Kanäle zu erstellen. Außerdem kann über das Diaspora-Protokoll mit Kontakten in den Netzwerken Friendica und Diaspora kommuniziert werden. Diese Unterstützung ist als experimentell eingestuft, da diese Netzwerke nicht die gleichen Möglichkeiten wie $Projectname in Sachen Privatsphäre und Verschlüsselung bieten, so dass Kommunikation mit ihnen zu Privatsphäreproblemen führen könnte.
+Neben Plugins, die das „crossposten“ zu diversen anderen Netzwerk erlauben, wird der Import von RSS/Atom-Feeds nativ unterstützt, auch, um mit diesen Inhalten spezielle Kanäle zu erstellen. Außerdem kann über das Diaspora-Protokoll mit Kontakten in den Netzwerken Friendica und Diaspora kommuniziert werden. Diese Unterstützung ist als experimentell eingestuft, da diese Netzwerke nicht die gleichen Möglichkeiten wie die $Projectname in Sachen Privatsphäre und Verschlüsselung bieten, so dass Kommunikation mit ihnen zu Privatsphäreproblemen führen könnte.
-Weiterhin wird OpenID auf experimenteller Ebene unterstützt und kann bei den Zugriffsrechten genutzt werden, um Inhalte für per OpenID authentifizierte Nutzer freizugeben. An dieser Funktion wird noch gearbeitet. Jeder $Projectname-Hub kann außerdem als OpenID-Provider dienen.
+Weiterhin wird OpenID auf experimenteller Ebene unterstützt und kann bei den Zugriffsrechten genutzt werden, um Inhalte für per OpenID authentifizierte Nutzer freizugeben. An dieser Funktion wird noch gearbeitet.
Die Inhalte von Kanälen können als Quellen für andere Kanäle dienen (wenn der Kanalinhaber das erlaubt), so dass Themen-Kanäle mit den Inhalten von zwei oder mehr Kanälen erstellt werden können.
[b]Sammlungen[/b]
-„Sammlungen“ sind unsere Implementierung von Privatsphäregruppen, ähnlich den „Kreisen“ bei Google+ und den „Aspekten“ bei Diaspora. Sammlungen können zur Filterung der angezeigten Nachrichten genutzt werden (nur Threads anzeigen, die von einem Mitglied dieser Sammlung gestartet wurden), aber auch zum Setzen von Zugriffsrechten (bevor der Beitrag abgeschickt wird).
+„Sammlungen“ sind unsere Implementation von Privatsphäregruppen, ähnlich den „Kreisen“ bei Google+ und den „Aspekten“ bei Diaspora. Sammlungen können zur Filterung der angezeigten Nachrichten genutzt werden (nur Threads anzeigen, die von einem Mitglied dieser Sammlung gestartet wurden), aber auch zum Setzen von Zugriffsrechten.
[b]Verzeichnisdienste[/b]
@@ -110,7 +99,7 @@ Wir stellen einfachen Zugriff auf ein Mitgliederverzeichnis zur Verfügung, samt
[b]TLS/SSL[/b]
-$Projectname-Server, die TLS/SSL benutzen, verschlüsseln ihre Kommunikation vom Server zum Nutzer mit SSL. Nach den aktuellen Enthüllungen über das Umgehen von Verschlüsselung durch NSA, GHCQ und andere Dienste, sollte man jedoch nicht mehr davon ausgehen, dass diese Verbindungen nicht mitgelesen werden können. Private Kommunikation (nicht komplett öffentliche Beiträge) wird darüberhinaus zusätzlich verschlüsselt, bevor sie von einem Server zum anderen geschickt wird.
+Red-Server, die TLS/SSL benutzen, verschlüsseln ihre Kommunikation vom Server zum Nutzer mit SSL. Nach den aktuellen Enthüllungen über das Umgehen von Verschlüsselung durch NSA, GHCQ und andere Dienste, sollte man jedoch nicht mehr davon ausgehen, dass diese Verbindungen nicht mitgelesen werden können.
[b]Kanal-Einstellungen[/b]
@@ -118,13 +107,15 @@ Wenn ein Kanal erstellt wird, muss eine bestimmte Zugriffsrechte-Kategorie (z.B.
Wenn Du die Experten-Kategorie wählst, kannst Du detaillierte Zugriffseinstellungen für verschiedenste Aspekte der Kommunikation festlegen. Unter den „Sicherheits- und Privatsphäre-Einstellungen“ kann für jeden Punkt auf der linken Seite eine von 7-8 möglichen Optionen aus dem Menü gewählt werden. Daneben gibt es diverse weitere Einstellmöglichkeiten zum Thema Privatsphäre.
+[img]https://friendicared.net/photo/0f5be8da282858edd645b0a1a6626491.png[/img]
+
Die Optionen für die einzelnen Punkte (z.B., wer Deine normalen Beiträge sehen kann) sind:
[ul][*]Niemand außer Du selbst
[*]Nur die, denen Du es explizit erlaubst
[*]Angenommene Verbindungen
[*]Beliebige Verbindungen
[*]Jeder auf diesem Website
-[*]Alle $Projectname-Nutzer
+[*]Alle Red-Nutzer
[*]Jeder authentifizierte
[*]Jeder im Internet[/ul]
@@ -134,19 +125,19 @@ Foren sind Kanäle, in denen mehrere Nutzer als Autoren fungieren können; eine
[b]Klone[/b]
-Konten in der $Projectname werden auch als [i]nomadische Identitäten[/i] bezeichnet. Nomadisch, weil bei anderen Diensten die Identität eines Nutzers an den Server oder die Plattform gebunden ist, auf der er ursprünglich erstellt wurde. Ein Facebook- oder Gmail-Konto ist and diese Dienste gekettet. Er funktioniert nicht ohne Facebook.com bzw. Gmail.com.
+Konten in der $Projectname werden auch als [i]nomadische Identitäten[/i] bezeichnet (eine ausführliche Erklärung dazu gibt es unter [url=[baseurl]/help/what_is_zot]What is Zot?[/url]). Nomadisch, weil bei anderen Diensten die Identität eines Nutzers an den Server oder die Plattform gebunden ist, auf der er ursprünglich erstellt wurde. Ein Facebook- oder Gmail-Konto ist and diese Dienste gekettet. Er funktioniert nicht ohne Facebook.com bzw. Gmail.com.
-Bei $Projectname ist das anders. Sagen wir, Du hast eine $Projectname-Indentität namens tina@$projectnamehub.com. Die kannst Du auf einen anderen Server klonen, mit dem gleichen oder einem anderen Namen, zum Beispiel lebtEwig@matrixserver.info.
+Bei Red ist das anders. Sagen wir, Du hast eine Red-Indentität namens tina@redhub.com. Die kannst Du auf einen anderen Server klonen, mit dem gleichen oder einem anderen Namen, zum Beispiel lebtEwig@matrixserver.info.
Beide Kanäle sind jetzt miteinander synchronisiert, das heißt, dass alle Kontakte und Einstellungen auf dem Klon immer die gleichen sind wie auf dem ursprünglichen Kanal. Es ist egal, ob Du eine Nachricht von dort aus oder vom Klon aus schickst. Alle Nachrichten sind in beiden Klonen vorhanden.
Das ist ein ziemlich revolutionäres Feature, wenn man sich einige Szenarien dazu ansieht:
-[ul][*]Was passiert, wenn ein Server, auf dem sich Deine Identität befindet, plötzlich offline ist (sicher haben viele von Euch den Twitter-„Fail Whale“ gesehen und verflucht)? Ohne Klone ist der Nutzer nicht in der Lage zu kommunizieren, bis der Server wieder online ist. Mit Klonen loggst Du Dich einfach bei Deinem geklonten Kanal ein und lebst glücklich bis an Dein Ende.
-[*]Der Administrator Deines $Projectname-Hubs kann es sich nicht länger leisten, seinen für alle kostenlosen Server zu bezahlen. Er gibt bekannt, dass der Server in zwei Wochen vom Netz gehen wird. Zeit genug, um Deine $Projectname-Kanäle auf andere Server zu klonen und somit Verbindungen und Freunde zu behalten.
-[*]Was, wenn Dein Kanal staatlicher Zensur unterliegt? Dein Server-Admin könnte gezwungen werden, Dein Konto und alle damit verbundenen Kanäle und Daten zu löschen. Durch Klone bietet $Projectname Zensur-Resistenz. Wenn Du willst, kannst Du hunderte von Klonen haben, alle mit unterschiedlichen Namen und auf unterschiedlichen Servern überall im Internet.[/ul]
+[ul][*]Was passiert, wenn ein Server, auf dem sich Deine Identität befindet, plötzlich offline ist? Ohne Klone ist der Nutzer nicht in der Lage zu kommunzieren, bis der Server wieder online ist. Mit Klonen loggst Du Dich einfach bei Deinem geklonten Kanal ein und lebst glücklich bis an Dein Ende.
+[*]Der Administrator Deines Red-Servers kann es sich nicht länger leisten, seinen für alle kostenlosen Server zu bezahlen. Er gibt bekannt, dass der Server in zwei Wochen vom Netz gehen wird. Zeit genug, um Deine Red-Kanäle auf andere Server zu klonen und somit Verbindungen und Freunde zu behalten.
+[*]Was, wenn Dein Kanal staatlicher Zensur unterliegt? Dein Server-Admin wird gezwungen, Dein Konto und alle damit verbundenen Kanäle und Daten zu löschen. Durch Klone bietet die $Projectname Zensur-Resistenz. Wenn Du willst, kannst Du hunderte von Klonen haben, alle mit unterschiedlichen Namen und auf unterschiedlichen Servern überall im Internet.[/ul]
-$Projectname bietet interessante, neue Möglichkeiten in Bezug auf die Privatsphäre. Mehr dazu unter „Tipps und Tricks zur privaten Kommunikation“.
+Red bietet interessante, neue Möglichkeiten in Bezug auf die Privatsphäre. Mehr dazu unter „Tipps und Tricks zur privaten Kommunikation“.
Klone unterliegen einigen Restriktionen. Eine vollständige Erklärung zum Klonen von Identitäten gibt es unter „Klone“.
@@ -156,7 +147,7 @@ Jeder Kanal kann beliebig viele Profile mit unterschiedlichen Informationen defi
[b]Kanal-Backups[/b]
-In $Projectname gibt es ein einfaches Ein-Klick-Backup, mit dem Du ein komplettes Backup Deiner Kanal-Einstellungen und Verbindungen herunterladen kannst.
+In Red gibt es ein einfaches Ein-Klick-Backup, mit dem Du ein komplettes Backup Deiner Kanal-Einstellungen und Verbindungen herunterladen kannst.
Solche Backups sind ein Weg, um Klone zu erstellen, und können genutzt werden, um einen Kanal wiederherzustellen.
@@ -168,26 +159,22 @@ Konten und Kanäle können sofort gelöscht werden, indem Du einfach auf einen L
[b]Beiträge schreiben[/b]
-$Projectname unterstützt diverse verschiedene Wege, um Inhalte mit Auszeichnung (z.B. fett, kursiv, farbig etc.) zu erstellen. Voreinstellung ist die $Projectname-Variante von BBCode (wie in vielen Web-Foren) mit einigen Ergänzungen, die nur hier funktionieren. Du kannst auch Markdown benutzen, wenn Dir das leichter fällt. Bis vor kurzem konnte auch ein grafischer Editor eingesetzt werden, der jedoch große Probleme aufwies und deshalb entfernt wurde. Wir suchen gerade nach einer Alternative.
+Red unterstützt diverse verschiedene Wege, um Inhalte mit Auszeichnung (z.B. fett, kursiv, farbig etc.) zu erstellen. Voreinstellung ist die $Projectname-Variante von BBCode (wie in vielen Web-Foren) mit einigen Ergänzungen, die nur hier funktionieren. Du kannst auch Markdown benutzen, wenn Dir das leichter fällt. Bis vor kurzem konnte auch ein grafischer Editor eingesetzt werden, der jedoch große Probleme aufwies und deshalb entfernt wurde. Wir suchen gerade nach einer Alternative.
Webseiten können neben BBCode und Markdown auch in HTML und Plain Text erstellt werden.
[b]Inhalte löschen[/b]
-Alle Inhalte in der $Projectname bleiben unter der Kontrolle des Mitglieds (bzw. Kanals), der sie ursprünglich erstellt hat. Alle Beiträge können jederzeit gelöscht werden, egal, ob sie auf dem Heimat-Server des Nutzers oder auf einem anderen Server erstellt wurden, an dem der Nutzer via Zot (Kommuikations- und Authentifizierungsprotokoll von $Projectname) angemeldet war.
+Alle Inhalte in der $Projectname bleiben unter der Kontrolle des Mitglieds (bzw. Kanals), der sie ursprünglich erstellt hat. Alle Beiträge können jederzeit gelöscht werden, egal, ob sie auf dem Heimat-Server des Nutzers oder auf einem anderen Server erstellt wurden, an dem der Nutzer via Zot angemeldet war.
[b]Medien[/b]
-Genau wie jedes andere Blog-System, soziale Netzwerk oder Mikro-Blogging-Dienst unterstützt $Projectname das Hochladen von Dateien, das Einbetten von Bildern und Videos und das Verlinken von Seiten.
+Genau wie jedes andere Blog-System, soziale Netzwerk oder Mikro-Blogging-Dienst unterstützt Red das Hochladen von Dateien, das Einbetten von Bildern und Videos und das Verlinken von Seiten.
[b]Vorschau/Editieren[/b]
Vor dem Absenden kann eine Vorschau von Beiträgen betrachtet werden. Außerdem können Beiträge auch nach dem Absenden noch verändert werden.
-[b]Umfragen[/b]
-
-Beiträge können als Umfragen gestaltet werden – die Leser können dann mittels entsprechender Buttons zustimmen, ablehnen oder sich enthalten, was ähnlich wie „Likes“ am Beitrag sichtbar wird. Dadurch kannst Du abschätzen, wie gut neue Ideen ankommen, oder informelle Umfragen starten.
-
[b]$Projectname erweitern[/b]
Die $Projectname kann auf vielerlei Art erweitert werden: Durch Server-Anpassung, persönliche Anpassung, setzen von Optionen, Themes und Addons/Plugins.
diff --git a/doc/de/main.bb b/doc/de/main.bb
index 1bfac634b..dab34c19a 100644
--- a/doc/de/main.bb
+++ b/doc/de/main.bb
@@ -1,19 +1,19 @@
[img][baseurl]/assets/hashlogo.png[/img]
-[zrl=[baseurl]/help/about]Was ist die RedMatrix?[/zrl]
-Die RedMatrix ist eine dezentrale Kommunikations- und Publishing-Plattform. Sie ermöglicht Dir die volle Kontrolle über all Deine Kommunikation mit Hilfe von automatischer Verschlüsselung und detaillierter Zugriffskontrolle. Du, und [i]nur[/i] Du, entscheidest, wer Deine Beiträge sehen darf.
+[zrl=[baseurl]/help/about]Was ist Hubzilla?[/zrl]
+Hubzilla ist eine dezentrale Kommunikations- und Publishing-Plattform. Sie ermöglicht Dir die volle Kontrolle über all Deine Kommunikation mit Hilfe von automatischer Verschlüsselung und detaillierter Zugriffskontrolle. Du, und [i]nur[/i] Du, entscheidest, wer Deine Beiträge sehen darf. Hubzilla ist der Nachfolger, der seit einigen Jahren erfolgreichen Plattformen Firendica und Red Matrix.
-[zrl=[baseurl]/help/features]Features der RedMatrix[/zrl]
-Die RedMatrix funktioniert schon heute als ein globales verteiltes Netzwerk und beweist täglich ihre Vielseitigkeit und Skalierbarkeit auf kleinen Privatservern wie auch auf riesigen Sites.
-Kommunikationsplattformen für Familien, verteilte Online-Communities, Support-Foren, Blogs und Homepages. Oder auch professionelle Inhalte-Anbieter mit kommerziellen Premium-Kanälen und eingeschränktem Zugriff – was immer Du willst, die RedMatrix unterstützt Dich in Deinem kreativen Schaffen.
+[zrl=[baseurl]/help/features]Features von Hubzilla[/zrl]
+Hubzilla, basierend auf der Red Matrix, funktioniert schon heute als ein globales verteiltes Netzwerk und beweist täglich ihre Vielseitigkeit und Skalierbarkeit - auf kleinen Privatservern wie auch auf riesigen Sites.
+Kommunikationsplattformen für Familien, verteilte Online-Communities, Support-Foren, Blogs und Homepages. Oder auch professionelle Inhalte-Anbieter mit kommerziellen Premium-Kanälen und eingeschränktem Zugriff – was immer Du willst, Hubzilla unterstützt Dich in Deinem kreativen Schaffen.
[zrl=[baseurl]/help/what_is_zot]Got Zot? Hast Du schon Zot? Wenn nicht wird es Zeit.[/zrl]
-Zot ist das großartige neue Kommunikationsprotokoll, das extra für die RedMatrix entwickelt wurde. Als Mitglied bist Du dank „Nomadischer Identität“ nicht länger an einen einzigen Server oder Anbieter gebunden. Ziehe einfach auf einen anderen Server um und behalte dabei alle Deine Kontakte, oder klone Deinen Kanal und lasse ihn auf mehreren Servern gleichzeitig laufen – sollte einer davon plötzlich geschlossen werden, ist das kein Problem für Dich. Und bist Du erst Teil der RedMatrix, musst Du Dich nie wieder mehrfach anmelden, selbst wenn Du Seiten auf einem andere Red-Server betrachtest. Zot ist, was die RedMatrix besonders macht.
+Zot ist ein großartiges neues Kommunikationsprotokoll, das für Hubzilla - und vorher die Red Matrix - entwickelt wurde. Als Mitglied bist Du dank „Nomadischer Identität“ nicht länger an einen einzigen Server oder einen einzigen Anbieter gebunden. Ziehe einfach auf einen anderen Server um und behalte dabei alle Deine Kontakte, oder klone Deinen Kanal und lasse ihn auf mehreren Servern gleichzeitig laufen – sollte einer davon plötzlich geschlossen werden, ist das kein Problem für Dich. Und bist Du erst Teil des Hubzilla-Netzwerkes, musst Du Dich nie wieder mehrfach anmelden, selbst wenn Du Seiten auf einem andere Hub (den Hubzilla-Servern) betrachtest. Zot ist es, was das Hubzilla-Netzwerk besonders macht.
[h3]Erste Schritte[/h3]
[zrl=[baseurl]/help/Privacy]Datenschutz[/zrl]
[zrl=[baseurl]/help/registration]Ein Konto registrieren[/zrl]
-[zrl=[baseurl]/help/accounts_profiles_channels_basics]Du in der RedMatrix: Konten, Profile und Kanäle kurz erklärt[/zrl]
+[zrl=[baseurl]/help/accounts_profiles_channels_basics]Du im Hubzilla-Netzwerk: Konten, Profile und Kanäle kurz erklärt[/zrl]
[zrl=[baseurl]/help/profiles]Profile[/zrl]
[zrl=[baseurl]/help/channels]Kanäle[/zrl]
[zrl=[baseurl]/help/roles]Zugriffsrechte-Kategorien und Kanaltypen[/zrl]
@@ -26,7 +26,7 @@ Zot ist das großartige neue Kommunikationsprotokoll, das extra für die RedMatr
[h3]Hilfe für $Projectname-Mitglieder[/h3]
[zrl=[baseurl]/help/tags_and_mentions]Tags und Erwähnungen[/zrl]
[zrl=[baseurl]/help/webpages]Webseiten[/zrl]
-[zrl=[baseurl]/help/bbcode]BBcode-Referenz für Posts und Kommentare[/zrl]
+[zrl=[baseurl]/help/bbcode]BBcode-Referenz für Beiträge und Kommentare[/zrl]
[zrl=[baseurl]/help/checking_account_quota_usage]Überprüfung der Kontenlimits[/zrl]
[zrl=[baseurl]/help/cloud_desktop_clients]Desktop-Anwendungen und die Cloud[/zrl]
[zrl=[baseurl]/help/AdvancedSearch]Fortgeschrittene Suche im Kanalverzeichnis[/zrl]
@@ -36,7 +36,7 @@ Zot ist das großartige neue Kommunikationsprotokoll, das extra für die RedMatr
[h3]Hilfe für Administratoren[/h3]
[zrl=[baseurl]/help/install]Installation[/zrl]
-[zrl=[baseurl]/help/red2pi]Red auf einem Raspberry Pi installieren[/zrl]
+[zrl=[baseurl]/help/red2pi]Hubzilla auf einem Raspberry Pi installieren[/zrl]
[zrl=[baseurl]/help/troubleshooting]Troubleshooting-Tipps[/zrl]
[zrl=[baseurl]/help/hidden_configs]Versteckte Konfigurations-Optionen[/zrl]
[zrl=[baseurl]/help/faq_admins]FAQ für Admins[/zrl]
@@ -60,9 +60,9 @@ Zot ist das großartige neue Kommunikationsprotokoll, das extra für die RedMatr
[zrl=[baseurl]/help/database]Datenbank-Schema[/zrl]
[zrl=[baseurl]/help/api_functions]API-Funktionen[/zrl]
[zrl=[baseurl]/help/api_posting]Mit der API einen Beitrag erstellen[/zrl]
-[zrl=[baseurl]/help/developer_function_primer]Übersicht der wichtigsten Red-Funktionen[/zrl]
+[zrl=[baseurl]/help/developer_function_primer]Übersicht der wichtigsten Hubzilla-Funktionen[/zrl]
[zrl=[baseurl]/doc/html/]Code-Referenz (mit doxygen generiert - setzt Cookies)[/zrl]
-[zrl=[baseurl]/help/to_do_doco]To-Do-Liste für das Projekt Red-Dokumentation[/zrl]
+[zrl=[baseurl]/help/to_do_doco]To-Do-Liste für das Projekt Hubzilla-Dokumentation[/zrl]
[zrl=[baseurl]/help/to_do_code]To-Do-Liste für Entwickler[/zrl]
[zrl=[baseurl]/help/roadmap]Roadmap für Version 3[/zrl]
[zrl=[baseurl]/help/git_for_non_developers]Git für Nicht-Entwickler[/zrl]
@@ -78,10 +78,9 @@ Zot ist das großartige neue Kommunikationsprotokoll, das extra für die RedMatr
[url=https://zothub.com/channel/one]Entwickler-Kanal[/url]
[url=https://federated.social/channel/postgres]Postgres-spezifischer Admin-Support-Kanal[/url]
-
[url=[baseurl]/help/credits]$Projectname Credits[/url]
-[h3]Über diesen Red-Server[/h3]
-[zrl=[baseurl]/help/TermsOfService]Nutzungsbedingungen dieses Red-Servers[/zrl]
-[zrl=[baseurl]/siteinfo]Informationen zu diesem Server und der Red-Version[/zrl]
+[h3]Über diesen Hub (Hubzilla-Server)[/h3]
+[zrl=[baseurl]/help/TermsOfService]Nutzungsbedingungen dieses Hubs (Hubzilla-Servers)[/zrl]
+[zrl=[baseurl]/siteinfo]Informationen zu diesem Server und der Hubzilla-Version[/zrl]
[zrl=[baseurl]/siteinfo/json]Detaillierte technische Informationen zu diesem Server im JSON-Format[/zrl]
diff --git a/doc/dev_beginner.bb b/doc/dev_beginner.bb
index 33b0edc95..729625713 100644
--- a/doc/dev_beginner.bb
+++ b/doc/dev_beginner.bb
@@ -174,8 +174,8 @@ It is a good idea to read the whole manual! Git is different to other version co
Now you should
[list]
[*] create an account at github.com
-[*] fork https://github.com/redmatrix/redmatrix
-[*] fork https://github.com/redmatrix/redmatrix-addons
+[*] fork https://github.com/redmatrix/hubzilla
+[*] fork https://github.com/redmatrix/hubzilla-addons
[/list]
If you not want to use GIT from the command line - there is a usefull Eclipse plugin named ""Eclipse Mylyn to GitHub connector".
@@ -362,7 +362,7 @@ surfer@debian:/var/www$ git checkout -b dev_beginning
Make sure your local repository is up-to-date with the main project.
Add the original repository as a remote named “upstream” if not done yet
[code]
-surfer@debian:/var/www$ git remote add upstream https://github.com/redmatrix/redmatrix
+surfer@debian:/var/www$ git remote add upstream https://github.com/redmatrix/hubzilla
[/code]
Fetch the newest work from that remote
diff --git a/doc/develop.bb b/doc/develop.bb
new file mode 100644
index 000000000..09ea1ee71
--- /dev/null
+++ b/doc/develop.bb
@@ -0,0 +1,36 @@
+[h2]Documentation for Developers[/h2]
+
+[h3]Technical Documentation[/h3]
+[zrl=[baseurl]/help/Zot---A-High-Level-Overview]A high level overview of Zot[/zrl]
+[zrl=[baseurl]/help/zot]An introduction to Zot[/zrl]
+[zrl=[baseurl]/help/zot_structures]Zot Stuctures[/zrl]
+[zrl=[baseurl]/help/comanche]Comanche Page Descriptions[/zrl]
+[zrl=[baseurl]/help/Creating-Templates]Creating Comanche Templates[/zrl]
+[zrl=[baseurl]/help/Widgets]Widgets[/zrl]
+[zrl=[baseurl]/help/plugins]Plugins[/zrl]
+[zrl=[baseurl]/help/hooks]Hooks[/zrl]
+[zrl=[baseurl]/help/hooklist]Hooks (detailed - under construction)[/zrl]
+[zrl=[baseurl]/help/doco]Contributing Documentation[/zrl]
+[zrl=[baseurl]/help/DerivedTheme1]Creating Derivative Themes[/zrl]
+[zrl=[baseurl]/help/schema_development]Schemas[/zrl]
+[zrl=[baseurl]/help/Translations]Translations[/zrl]
+[zrl=[baseurl]/help/developers]Developers[/zrl]
+[zrl=[baseurl]/help/intro_for_developers]Intro for Developers[/zrl]
+[zrl=[baseurl]/help/database]Database schema documantation[/zrl]
+[zrl=[baseurl]/help/api_functions]API functions[/zrl]
+[zrl=[baseurl]/help/api_posting]Posting to the red# using the API[/zrl]
+[zrl=[baseurl]/help/developer_function_primer]Red Functions 101[/zrl]
+[zrl=[baseurl]/doc/html/]Code Reference (Doxygen generated - sets cookies)[/zrl]
+[zrl=[baseurl]/help/to_do_doco]To-Do list for the Red Documentation Project[/zrl]
+[zrl=[baseurl]/help/to_do_code]To-Do list for Developers[/zrl]
+[zrl=[baseurl]/help/roadmap]Version 3 roadmap[/zrl]
+[zrl=[baseurl]/help/git_for_non_developers]Git for Non-Developers[/zrl]
+[zrl=[baseurl]/help/dev_beginner]Step-for-step manual for beginning developers[/zrl]
+
+[h3]Frequently Asked Questions For Developers[/h3]
+[zrl=[baseurl]/help/faq_developers]FAQ For Developers[/zrl]
+
+[h3]External Resources[/h3]
+
+[url=https://zothub.com/channel/one]Development Channel[/url]
+[url=https://federated.social/channel/postgres]Postgres-specific $Projectname Admin Support Channel[/url]
diff --git a/doc/developers.bb b/doc/developers.bb
index bec9914c8..6f7752577 100644
--- a/doc/developers.bb
+++ b/doc/developers.bb
@@ -9,7 +9,7 @@ doing development.
Create your own github account.
-You may fork/clone the Red repository from [url=https://github.com/redmatrix/redmatrix.git]https://github.com/redmatrix/redmatrix.git[/url]
+You may fork/clone the Red repository from [url=https://github.com/redmatrix/hubzilla.git]https://github.com/redmatrix/hubzilla.git[/url]
Follow the instructions provided here: [url=http://help.github.com/fork-a-repo/]http://help.github.com/fork-a-repo/[/url]
to create and use your own tracking fork on github
@@ -64,6 +64,8 @@ In the interests of consistency we adopt the following code styling. We may acce
[li] Generally speaking, opening braces go on the same line as the thing which opens the brace. They are the last character on the line. Closing braces are on a line by themselves. [/li]
+[li] Some functions take arguments in argc/argv style like main() in C or function args in bash or Perl. Urls are broken up within a module. e.g, given "http://example.com/module/arg1/arg2", then $this->argc will be 3 (integer) and $this->argv will contain: [0] => 'module', [1] => 'arg1', [2] => 'arg2'. There will always be one argument. If provided a naked domain URL, $this->argv[0] is set to "home".[/li]
+
[b]See Also[/b]
[zrl=[baseurl]/help/sql_conventions]SQL Conventions[/zrl]
diff --git a/doc/diaspora_compat.md b/doc/diaspora_compat.md
index eb7ec656d..255b565a2 100644
--- a/doc/diaspora_compat.md
+++ b/doc/diaspora_compat.md
@@ -1,12 +1,12 @@
##Diaspora Compatibility
-Diaspora protocol compatibility is presently considered an ***experimental*** feature. It may not be available on all sites and presents some serious compatibility issues with redmatrix. At the moment these compatibility issues will be shared with "Friendica-over-Diaspora" protocol communications.
+Diaspora protocol compatibility is presently considered an ***experimental*** feature. It may not be available on all sites and presents some serious compatibility issues with hubzilla. At the moment these compatibility issues will be shared with "Friendica-over-Diaspora" protocol communications.
Private mail retraction (unsend) will not be possible on Diaspora.
Private posts and their associated comments are sent in plaintext email notifications in Diaspora and Friendica. This is a major privacy issue and affects any private communications you have where *any* member of the conversation is on another network. Be aware of it.
-Access control only works on posts and comments. Diaspora members will get permission denied trying to access any other access controlled redmatrix objects such as files, photos, webpages, chatrooms, etc. In the case of private photos that are linked to posts, they will see a "prohibited sign" instead of the photo. Diaspora has no concept of private media. There is no workaround except to make your media resources public (to everybody on the internet).
+Access control only works on posts and comments. Diaspora members will get permission denied trying to access any other access controlled hubzilla objects such as files, photos, webpages, chatrooms, etc. In the case of private photos that are linked to posts, they will see a "prohibited sign" instead of the photo. Diaspora has no concept of private media. There is no workaround except to make your media resources public (to everybody on the internet).
Edited posts will not be delivered. Diaspora members will see the original post/comment without edits. There is no mechanism in the protocol to update an existing post. We cannot delete it and submit another invisibly because the message-id will change and we need to keep the same message-id on our own network. The only workaround is to delete the post/comment and do it over. We may eventually provide a way to delete the out of date copy only from Diaspora and keep it intact on networks that can handle edits.
@@ -32,7 +32,7 @@ Community tags will not work. We will send a tagging activity as a comment. It w
Privacy tags (@!somebody) will not be available to Diaspora members. These tags may have to be stripped or obscured to prevent them from being hijacked - which could result in privacy issues.
-Plus-tagged redmatrix forums should work from Diaspora.
+Plus-tagged hubzilla forums should work from Diaspora.
Premium channel redirects will not be sent. If you allow Diaspora connections, they will not see that you have a premium channel.
diff --git a/doc/directories.bb b/doc/directories.bb
new file mode 100644
index 000000000..d81dd84c5
--- /dev/null
+++ b/doc/directories.bb
@@ -0,0 +1,95 @@
+[h3]Directory Configuration[/h3]
+
+Directories in $Projectname serve the purpose of searching and locating members anywhere in the network. They are also used to store and query "ratings" of members and sites. The directory services are distributed and mirrored so that a failure of one will not take down or disrupt the entire network.
+
+[b]Standard Configuration[/b]
+
+New sites operating as directory clients will automatically select from a hard-coded list of directory servers during their first directory access. You may examine or over-ride this decision using
+
+[code]
+util/config system directory_server
+[/code]
+
+To set a different server,
+
+[code]
+util/config system directory_server https://newdirectory.something
+[/code]
+
+
+[b]Standalone configuration[/b]
+
+Some sites may wish to operate in 'standalone' mode and not connect to any external directory services. This is useful for isolated sites ("off the gird") and test sites, but can also be useful for small organisations who do not wish to connect with other sites in the network.
+
+To configure this, please look in your .htconfig.php file for the following text and set the configuration accordingly.
+
+[code]
+// Configure how we communicate with directory servers.
+// DIRECTORY_MODE_NORMAL = directory client, we will find a directory
+// DIRECTORY_MODE_SECONDARY = caching directory or mirror
+// DIRECTORY_MODE_PRIMARY = main directory server
+// DIRECTORY_MODE_STANDALONE = "off the grid" or private directory services
+
+$a->config['system']['directory_mode'] = DIRECTORY_MODE_STANDALONE;
+[/code]
+
+
+[b]Secondary server configuration[/b]
+
+You may also configure your site as a secondary server. This operates as a mirror of the primary directory and allows disitribution of the load amongst available servers. There is very little functional difference between a primary and secondary sever, however there may only be *one* primary directory server per realm (realms are discussed later in this document).
+
+Before choosing to be a directory server, please be advised that you should be an active member of the network and have the resources and time available to manage these services. They don't typically require management, but the requirement is more for stability as losing a directory server can cause issues to directory clients which are reliant on it.
+
+
+[b]Changing the directory server[/b]
+
+If a directory server indicates that it is no longer a directory server, this should be detected by the software and the configuration for that server will be removed (blanked). If it goes offline permanently without warning, you will only know if site members report that directory services are unavailable. Currently this can only be repaired manually by the site administrator by selecting a new directory and performing:
+
+[code]
+util/config system directory_server https://newdirectory.something
+[/code]
+
+Eventually we hope to make this a selectable box from the site admin panel.
+
+
+[h2]Directory realms[/h2]
+
+Large organisations may wish to use directory 'realms' rather than a single standalone directory. The standard and default realm is known as RED_GLOBAL. By creating a new realm, your organisation has the ability to create its own hierarchy of primary and secondary servers and clients.
+
+[code]
+util/config system directory_realm MY_REALM
+[/code]
+
+Your realm *must* have a primary directory. Create this first. Then set the realm the same on all sites within your directory realm (servers and clients).
+
+You may also provide a "sub-realm" that operates indepently from the RED_GLOBAL realm (or any other realm) but allows cross membership and some ability to lookup members of the entire directory space. This has only undergone light testing so be prepared to help out and fix any issues that may arise. A sub-realm contains its parent realm within the realm name.
+
+
+[code]
+util/config system directory_realm RED_GLOBAL:MY_REALM
+[/code]
+
+
+[b]Realm access[/b]
+
+You may wish that your directory servers and services are only used by members of your realm. To do this a token or password must be supplied to access the realm directory services. This token is not encrypted during transit, but is sufficient to prevent casual access to your directory servers. The following must be configured for all sites (clients and directory servers) within the realm:
+
+[code]
+util/config system realm_token my-secret-realm-password
+[/code]
+
+
+
+[h2]Directory mirrors[/h2]
+
+Mirroring occurs with a daily transaction log of activities which are shared between directory servers. In the case of directory and profile updates, the channel address performing the update is transmitted, and the other directory servers probe that channel at its source for changes. We do not and should not trust any information given us by other directory servers. We always check the information at the source.
+
+Ratings are handled slightly differently - an encrypted packet (signed by the channel that created the rating) is passed between the servers. This signature needs to be verified before the rating is accepted. Ratings are always published to the primary directory server and propagated to all other directory servers from there. For this reason there can only be one primary server in a realm. If a misconfigured site claims to be a primary directory, it is ignored in the RED_GLOBAL realm. For other realms there is currently no such protection. Be aware of this when working with alternate realms.
+
+Newly created directory servers are not provided a "full dump", but for performance reasons and minimal disruption to the other servers in the network, they are brought online slowly. It may take up to a month for a new secondary directory server to provide a full view of the network. Please do not add any secondary servers to the hard-coded list of fallback directory servers until it has been operating as a directory for at least a month.
+
+All channels are configured to "ping" their directory server once a month, at somewhat random times during the month. This gives the ability for the directory to discover dead channels and sites (they stop pinging). Subsequently they are marked dead or unreachable and over time will be removed from the directory results.
+
+Channels may be configured to be "hidden" from the directory. These channels may still exist in the directory but will be un-searchable and some "sensitive" personal information will not be stored at all.
+
+ \ No newline at end of file
diff --git a/doc/encryption.bb b/doc/encryption.bb
index ae51bd9fa..9985f4b33 100644
--- a/doc/encryption.bb
+++ b/doc/encryption.bb
@@ -2,6 +2,7 @@
Full disclosure: The encryption $Projectname uses per default is not absolutely waterproof. There [i]are[/i] known procedures to circumvent it. [i]But[/i] this takes a lot of effort and needs to be done individually for each channel. And to make this clear: Other services store your messages in plaintext, therefore we regard this approach as a [i]significant[/i] improvement for your privacy. Plus you are always free to use further encryption and password protection if you so desire.
+
To explain this in more detail:
- each channel has its key pair
@@ -13,4 +14,5 @@ So what is the scope of security? Full disclosure: This might be great, but it i
We believe that the NSA-level dragnet plaintext extracting mass surveillance is probably not possible due to the design of the zot protocol. Dedicated attacks including hacking into one hub to obtain the server logs and database only partly reveal what is going on between people communication between different hubs. We believe that this makes it much more expensive for state-level attackers to access your content in $Projectname.
+
We gladly accept help improving the security of the system and auditing it as well.
diff --git a/doc/external-resource-links.bb b/doc/external-resource-links.bb
index f5f87aef7..412e84467 100644
--- a/doc/external-resource-links.bb
+++ b/doc/external-resource-links.bb
@@ -15,6 +15,6 @@
[*][url=https://addons.mozilla.org/en-US/firefox/addon/redshare/]Redshare for Firefox[/url]
[*][url=https://github.com/cvogeley/red-for-android]Red for Android[/url]
[*][url=https://github.com/zzottel/feed2red]feed2red.pl (posts Atom/RSS feeds to channel)[/url]
-[*][url=https://wordpress.org/plugins/redmatrix-wp/]WordPress gateway (combine with wppost addon for full features)[/url]
+[*][url=https://wordpress.org/plugins/hubzilla-wp/]WordPress gateway (combine with wppost addon for full features)[/url]
#include doc/macros/main_footer.bb;
diff --git a/doc/faq_developers.bb b/doc/faq_developers.bb
index 6591de3f2..c74ec3c56 100644
--- a/doc/faq_developers.bb
+++ b/doc/faq_developers.bb
@@ -5,6 +5,7 @@
[h3]What does $a mean?[/h3]
$a is a class defined in boot.php and passed all around $Projectname as a global reference variable. It defines everything necessary for the $Projectname application: Server variables, URL arguments, page structures, layouts, content, installed plugins, output device info, theme info, identity of the observer and (potential) page owner ...
+
We don't ever create more than one instance and always modify the elements of the single instance. The mechanics of this are somewhat tricky. If you have a function that is passed $a and needs to modify $a you need to declare it as a reference with '&' e.g.
[code]function foo(&$a) { $a->something = 'x'; // whatever };
@@ -27,6 +28,427 @@ function foo() {
[/code]
+An example (large) &$a object showing some of its many members and structures-- in JSON format for easier readability-- is here:
+
+[code] {
+ "category": null,
+ "nav_sel": {
+ "home": null,
+ "community": null,
+ "contacts": null,
+ "directory": null,
+ "settings": null,
+ "notifications": null,
+ "intros": null,
+ "messages": null,
+ "register": null,
+ "manage": null,
+ "profiles": null,
+ "network": null,
+ "help": "active"
+ },
+ "argc": 2,
+ "install": false,
+ "is_mobile": false,
+ "timezone": "America/Los_Angeles",
+ "sourcename": "",
+ "module_loaded": true,
+ "contacts": null,
+ "interactive": true,
+ "config": {
+ "system": {
+ "max_import_size": 200000,
+ "logfile": "/tmp/hubzilla.log",
+ "channels_active_monthly_stat": "3",
+ "last_expire_day": "4",
+ "loglevel": "4",
+ "sitename": "Hubzilla",
+ "access_policy": 0,
+ "directory_mode": 0,
+ "debugging": "1",
+ "verify_email": 1,
+ "register_text": "",
+ "urlverify": "687474703a2f2f6875627a696c6c61",
+ "register_policy": 2,
+ "theme": "redbasic",
+ "smarty3_folder": "/home/src/hubzilla/store/[data]/smarty3",
+ "channels_total_stat": "4",
+ "admin_email": "foo@bar.com",
+ "channels_active_halfyear_stat": "3",
+ "location_hash": "910792b7bf75296cbf238ae29a5493f3c78805812652d3f0396e88763a26ce1b",
+ "local_posts_stat": "63",
+ "lastpollcheck": "2015-11-03 07:40:38",
+ "baseurl": "http://hubzilla",
+ "config_loaded": true,
+ "pubkey": "-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAuR4neYAxuWwZg34fqofU\nZg8y1YSTX39Tzhgcgn7QFCeH600NHJBHWXbPdS5imdYq6W+P1vtKxsVNLI9d01+j\ns3MF3amgEuJH0X+JLLjyittQksyAiukvh/o4MSit8mcYcXs8Dxaybe+KaY09N4ys\ndxKcn6EPlthUiQPJMPitybp4vYkw9LupWZOQWThz9ur6T5wnk9ehBIPFN8gYvKrT\nAG9RFfbq3y59rTOiSHNA2PIUMzo2HEh4QBVCvVolKt7GPhUM4Bze40VRe8ELZTPp\nyehNxEHyhHZfnC+XRVNlvSPXBU2vtE+zcok+5DXsKAqMt8YgFIThNEOLQKvff/lv\nsdGvk6jJZok7+9lKtYfwnNnRWf51aVVuSAO3aIIVLroLyhiji0KA7G5YRHeF1rNL\np88e8peMyUMCX2Svv1wudJzqOfWSvOpY0NLZrdGZXRN2/rXyHPRD/TtS3SNDdd7J\nYQUjyxGjF1/zB3xqvPr09s8tzXqJl9pZNcN9iz58oPBbTuGdUr8CJro/3nVHgkRf\nw7/zhapSW1UaroJjecrC9yWx5QUD3KNU51phsP9iHCFdMyPBdUHjmNvE5f7YJWBh\nO1rRKUoE3i+eHLYAWeYblFX7T+EKOCB2hd3NUrIqDL98OSpfDiZT7rf9PdcWCOY5\nuddm6KzwHjffl5kZd8MM8bMCAwEAAQ==\n-----END PUBLIC KEY-----\n",
+ "addon": "converse",
+ "lastpoll": "2015-11-04 07:40:01",
+ "php_path": "/usr/bin/php",
+ "allowed_themes": "redbasic",
+ "sellpage": "",
+ "prvkey": "-----BEGIN PRIVATE KEY-----\n-----END PRIVATE KEY-----\n",
+ "directory_server": "https://red.zottel.red",
+ "curl_ssl_ciphers": "ALL:!eNULL",
+ "db_version": "1158"
+ },
+ "config": {
+ "config_loaded": true
+ },
+ "feature": {
+ "config_loaded": true
+ },
+ "2": {
+ "redbasic": {
+ "schema": "dark",
+ "comment_indent": "",
+ "toolicon_activecolour": "",
+ "item_colour": "",
+ "nav_gradient_top": "",
+ "nav_active_icon_colour": "",
+ "nav_active_gradient_top": "",
+ "top_photo": "",
+ "converse_width": "",
+ "nav_min_opacity": "",
+ "body_font_size": "",
+ "reply_photo": "",
+ "background_colour": "",
+ "radius": "",
+ "nav_gradient_bottom": "",
+ "toolicon_colour": "",
+ "nav_active_gradient_bottom": "",
+ "nav_icon_colour": "",
+ "narrow_navbar": "",
+ "nav_bg": "",
+ "comment_item_colour": "",
+ "config_loaded": true,
+ "banner_colour": "",
+ "comment_border_colour": "",
+ "align_left": "",
+ "font_size": "",
+ "font_colour": "",
+ "nav_bd": "",
+ "photo_shadow": "",
+ "background_image": "",
+ "link_colour": ""
+ },
+ "system": {
+ "network_list_mode": "0",
+ "post_joingroup": "0",
+ "channel_list_mode": "0",
+ "title_tosource": "0",
+ "blocktags": "0",
+ "photo_path": "%Y-%m",
+ "suggestme": "0",
+ "autoperms": "0",
+ "hide_presence": "0",
+ "channel_divmore_height": "400",
+ "network_divmore_height": "400",
+ "post_profilechange": "0",
+ "channel_menu": "",
+ "always_show_in_notices": "0",
+ "use_browser_location": "0",
+ "update_interval": "80000",
+ "itemspage": "20",
+ "attach_path": "%Y-%m",
+ "permissions_role": "social",
+ "vnotify": "2047",
+ "post_newfriend": "0",
+ "config_loaded": true,
+ "no_smilies": "0",
+ "evdays": "3",
+ "user_scalable": "1"
+ }
+ }
+ },
+ "layout": {
+ "region_aside": "\n&lt;div class=&quot;widget&quot;&gt;&lt;h3&gt;Documentation&lt;/h3&gt;&lt;ul class=&quot;nav nav-pills nav-stacked&quot;&gt;&lt;li&gt;&lt;a href=&quot;help/general&quot;&gt;Project/Site Information&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;help/members&quot;&gt;For Members&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;help/admins&quot;&gt;For Administrators&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;help/develop&quot;&gt;For Developers&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;\n"
+ },
+ "is_sys": false,
+ "content": null,
+ "cid": null,
+ "profile_uid": 0,
+ "hooks": {
+ "construct_page": [
+ [
+ "addon/converse/converse.php",
+ "converse_content"
+ ]
+ ]
+ },
+ "strings": [],
+ "js_sources": [
+ "jquery.js",
+ "library/justifiedGallery/jquery.justifiedGallery.min.js",
+ "library/sprintf.js/dist/sprintf.min.js",
+ "spin.js",
+ "jquery.spin.js",
+ "jquery.textinputs.js",
+ "autocomplete.js",
+ "library/jquery-textcomplete/jquery.textcomplete.js",
+ "library/jquery.timeago.js",
+ "library/readmore.js/readmore.js",
+ "library/jgrowl/jquery.jgrowl_minimized.js",
+ "library/cryptojs/components/core-min.js",
+ "library/cryptojs/rollups/aes.js",
+ "library/cryptojs/rollups/rabbit.js",
+ "library/cryptojs/rollups/tripledes.js",
+ "acl.js",
+ "webtoolkit.base64.js",
+ "main.js",
+ "crypto.js",
+ "library/jRange/jquery.range.js",
+ "library/colorbox/jquery.colorbox-min.js",
+ "library/jquery.AreYouSure/jquery.are-you-sure.js",
+ "library/tableofcontents/jquery.toc.js",
+ "library/bootstrap/js/bootstrap.min.js",
+ "library/bootbox/bootbox.min.js",
+ "library/bootstrap-tagsinput/bootstrap-tagsinput.js",
+ "library/datetimepicker/jquery.datetimepicker.js",
+ "library/bootstrap-colorpicker/dist/js/bootstrap-colorpicker.js",
+ "view/theme/redbasic/js/redbasic.js",
+ "mod_help.js"
+ ],
+ "channel": {
+ "channel_hash": "uRy0nF-urp6k_bFrkdtCc2EkBynwpgCJL_FQFoTwyw2Hep7AHkrSt1MZcHWV_8DQucNlHSY1vHgUNS2Fvoirpw",
+ "channel_address": "testes",
+ "channel_primary": "1",
+ "channel_allow_gid": "",
+ "xchan_deleted": "0",
+ "xchan_connpage": "",
+ "channel_r_storage": "1",
+ "xchan_pubforum": "0",
+ "channel_pubkey": "-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA7MP/xxsq/srA8I7m+WKf\nHlguwwg0b1tz+I3o+djp7b+wF8q03XPKQpYmKfXIj47vpAOu75nKA4Tn90lLymmk\nSXUHogOqOMy1CHoaVrAw2T2/tAeRoMAjAJ5IxSOAM7Xda0nVUK6FmfxPcvftKf9y\nPmvvFadXpaHT4JGPH0tszDhGXLkqlt9xSkIkpsgMA6emj/7bacc6x8eTdtvzo2e5\n/NyPXvBKH4henmYaKjq/4aIYZcBWYVGt6onxaP2j1cSNbksnOY7GbJl+hy95iFoZ\nDWGxiFwQd+CroiBbdlpVGp13cV/WKp2spZzlzkmCRGYoNbbM5RlgFLnmyTa4XMZE\nwnA3ZUB59MsrUJK+0H/utiZrpX5NQcFl33z8k5zB3pPnhc5S5/P+UJZRnqhet1wQ\n7AZVmdP30D75QD8LZ4SytZ1DHn/N76EsVhSADNMnUfEphs708V33Z0gFWultYDoK\nlvXUf4O0/V8GTufFHb6XdAiy92IUzrormXCpXoOmdOcJdaH9RnotZi/DkuQ0zP+Y\nCvxU9nrjyZvAwAdew//XFDjw4HoThVM4k4jzkIhCTlCao/yRnNM7A/i3OKcXq9wU\n7OZqcRfM9o0BFpZTIoXB7BMtpeioJcBi/7FUaV9U9uYLFuLL0qWa1YxLwfsN9rDk\n6A1gbhD60G9/dAbolp8xAHkCAwEAAQ==\n-----END PUBLIC KEY-----\n",
+ "xchan_flags": "0",
+ "channel_allow_cid": "",
+ "xchan_censored": "0",
+ "channel_w_pages": "128",
+ "xchan_instance_url": "",
+ "xchan_photo_s": "http://hubzilla/photo/profile/s/2",
+ "channel_w_stream": "128",
+ "channel_timezone": "America/Los_Angeles",
+ "xchan_pubkey": "-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA7MP/xxsq/srA8I7m+WKf\nHlguwwg0b1tz+I3o+djp7b+wF8q03XPKQpYmKfXIj47vpAOu75nKA4Tn90lLymmk\nSXUHogOqOMy1CHoaVrAw2T2/tAeRoMAjAJ5IxSOAM7Xda0nVUK6FmfxPcvftKf9y\nPmvvFadXpaHT4JGPH0tszDhGXLkqlt9xSkIkpsgMA6emj/7bacc6x8eTdtvzo2e5\n/NyPXvBKH4henmYaKjq/4aIYZcBWYVGt6onxaP2j1cSNbksnOY7GbJl+hy95iFoZ\nDWGxiFwQd+CroiBbdlpVGp13cV/WKp2spZzlzkmCRGYoNbbM5RlgFLnmyTa4XMZE\nwnA3ZUB59MsrUJK+0H/utiZrpX5NQcFl33z8k5zB3pPnhc5S5/P+UJZRnqhet1wQ\n7AZVmdP30D75QD8LZ4SytZ1DHn/N76EsVhSADNMnUfEphs708V33Z0gFWultYDoK\nlvXUf4O0/V8GTufFHb6XdAiy92IUzrormXCpXoOmdOcJdaH9RnotZi/DkuQ0zP+Y\nCvxU9nrjyZvAwAdew//XFDjw4HoThVM4k4jzkIhCTlCao/yRnNM7A/i3OKcXq9wU\n7OZqcRfM9o0BFpZTIoXB7BMtpeioJcBi/7FUaV9U9uYLFuLL0qWa1YxLwfsN9rDk\n6A1gbhD60G9/dAbolp8xAHkCAwEAAQ==\n-----END PUBLIC KEY-----\n",
+ "channel_w_chat": "128",
+ "xchan_connurl": "http://hubzilla/poco/testes",
+ "channel_guid_sig": "XXX",
+ "xchan_name_date": "2015-10-09 00:45:41",
+ "channel_expire_days": "0",
+ "xchan_system": "0",
+ "xchan_photo_date": "2015-10-09 00:45:41",
+ "channel_startpage": "",
+ "channel_deny_gid": "",
+ "channel_lastpost": "2015-10-09 02:53:23",
+ "xchan_photo_m": "http://hubzilla/photo/profile/m/2",
+ "channel_passwd_reset": "",
+ "xchan_hidden": "0",
+ "xchan_selfcensored": "0",
+ "xchan_photo_mimetype": "image/jpeg",
+ "channel_a_republish": "128",
+ "channel_w_tagwall": "128",
+ "channel_r_stream": "1",
+ "channel_w_comment": "128",
+ "channel_system": "0",
+ "channel_w_mail": "128",
+ "channel_pageflags": "0",
+ "xchan_network": "zot",
+ "channel_id": "2",
+ "xchan_guid": "Ok-ycNKQYMzjokLnIz5OTCF8M5f4CtRT4vJCUeUivJhIOJWk3ORwIQgGx3P5g2Yz79KxQ-rs_Cn2G_jsgM6hmw",
+ "channel_removed": "0",
+ "channel_dirdate": "2015-10-09 00:46:00",
+ "channel_w_storage": "128",
+ "channel_w_photos": "0",
+ "channel_prvkey": "-----BEGIN PRIVATE KEY----------END PRIVATE KEY-----\n",
+ "channel_guid": "Ok-ycNKQYMzjokLnIz5OTCF8M5f4CtRT4vJCUeUivJhIOJWk3ORwIQgGx3P5g2Yz79KxQ-rs_Cn2G_jsgM6hmw",
+ "channel_max_friend_req": "0",
+ "channel_w_wall": "128",
+ "channel_r_abook": "1",
+ "channel_max_anon_mail": "0",
+ "channel_location": "",
+ "channel_a_delegate": "128",
+ "channel_deny_cid": "",
+ "channel_r_profile": "1",
+ "channel_name": "testes",
+ "xchan_guid_sig": "XXX",
+ "xchan_hash": "uRy0nF-urp6k_bFrkdtCc2EkBynwpgCJL_FQFoTwyw2Hep7AHkrSt1MZcHWV_8DQucNlHSY1vHgUNS2Fvoirpw",
+ "channel_notifyflags": "703",
+ "channel_theme": "redbasic",
+ "channel_w_like": "2",
+ "xchan_url": "http://hubzilla/channel/testes",
+ "channel_default_group": "",
+ "channel_r_photos": "0",
+ "channel_account_id": "1",
+ "xchan_addr": "testes@hubzilla",
+ "channel_r_pages": "1",
+ "channel_deleted": "0000-00-00 00:00:00",
+ "xchan_orphan": "0",
+ "xchan_follow": "http://hubzilla/follow?f=&amp;url=%s",
+ "xchan_name": "testes",
+ "xchan_photo_l": "http://hubzilla/photo/profile/l/2"
+ },
+ "page": {
+ "content": "&lt;div id=&quot;help-content&quot; class=&quot;generic-content-wrapper&quot;&gt;\n\t&lt;div class=&quot;section-title-wrapper&quot;&gt;\n\t&lt;h2&gt;Hubzilla Documentation&lt;/h2&gt;\n\t&lt;/div&gt;\n\t&lt;div class=&quot;section-content-wrapper&quot;&gt;\n\t&lt;h2&gt;Documentation for Developers&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Technical Documentation&lt;/h3&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/Zot---A-High-Level-Overview&quot; target=&quot;_newwin&quot; &gt;A high level overview of Zot&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/zot&quot; target=&quot;_newwin&quot; &gt;An introduction to Zot&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/zot_structures&quot; target=&quot;_newwin&quot; &gt;Zot Stuctures&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/comanche&quot; target=&quot;_newwin&quot; &gt;Comanche Page Descriptions&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/Creating-Templates&quot; target=&quot;_newwin&quot; &gt;Creating Comanche Templates&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/Widgets&quot; target=&quot;_newwin&quot; &gt;Widgets&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/plugins&quot; target=&quot;_newwin&quot; &gt;Plugins&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/hooks&quot; target=&quot;_newwin&quot; &gt;Hooks&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/doco&quot; target=&quot;_newwin&quot; &gt;Contributing Documentation&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/DerivedTheme1&quot; target=&quot;_newwin&quot; &gt;Creating Derivative Themes&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/schema_development&quot; target=&quot;_newwin&quot; &gt;Schemas&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/Translations&quot; target=&quot;_newwin&quot; &gt;Translations&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/developers&quot; target=&quot;_newwin&quot; &gt;Developers&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/intro_for_developers&quot; target=&quot;_newwin&quot; &gt;Intro for Developers&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/database&quot; target=&quot;_newwin&quot; &gt;Database schema documantation&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/api_functions&quot; target=&quot;_newwin&quot; &gt;API functions&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/api_posting&quot; target=&quot;_newwin&quot; &gt;Posting to the red# using the API&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/developer_function_primer&quot; target=&quot;_newwin&quot; &gt;Red Functions 101&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/doc/html/&quot; target=&quot;_newwin&quot; &gt;Code Reference (Doxygen generated - sets cookies)&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/to_do_doco&quot; target=&quot;_newwin&quot; &gt;To-Do list for the Red Documentation Project&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/to_do_code&quot; target=&quot;_newwin&quot; &gt;To-Do list for Developers&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/roadmap&quot; target=&quot;_newwin&quot; &gt;Version 3 roadmap&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/git_for_non_developers&quot; target=&quot;_newwin&quot; &gt;Git for Non-Developers&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/dev_beginner&quot; target=&quot;_newwin&quot; &gt;Step-for-step manual for beginning developers&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Frequently Asked Questions For Developers&lt;/h3&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/faq_developers&quot; target=&quot;_newwin&quot; &gt;FAQ For Developers&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;External Resources&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://zothub.com/channel/one&quot; target=&quot;_newwin&quot; &gt;Development Channel&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://federated.social/channel/postgres&quot; target=&quot;_newwin&quot; &gt;Postgres-specific Hubzilla Admin Support Channel&lt;/a&gt;&lt;br /&gt;\n\t&lt;/div&gt;\n&lt;/div&gt;\n&lt;script&gt;var homebase = &quot;http://hubzilla/channel/testes&quot;;&lt;/script&gt;",
+ "page_title": "help",
+ "title": "Help: Develop",
+ "nav": "\t&lt;div class=&quot;container-fluid&quot;&gt;\n\t\t&lt;div class=&quot;navbar-header&quot;&gt;\n\t\t\t&lt;button type=&quot;button&quot; class=&quot;navbar-toggle&quot; data-toggle=&quot;collapse&quot; data-target=&quot;#navbar-collapse-1&quot;&gt;\n\t\t\t\t&lt;span class=&quot;icon-bar&quot;&gt;&lt;/span&gt;\n\t\t\t\t&lt;span class=&quot;icon-bar&quot;&gt;&lt;/span&gt;\n\t\t\t\t&lt;span class=&quot;icon-bar&quot;&gt;&lt;/span&gt;\n\t\t\t&lt;/button&gt;\n\t\t\t&lt;button id=&quot;expand-tabs&quot; type=&quot;button&quot; class=&quot;navbar-toggle&quot; data-toggle=&quot;collapse&quot; data-target=&quot;#tabs-collapse-1&quot;&gt;\n\t\t\t\t&lt;i class=&quot;icon-circle-arrow-down&quot; id=&quot;expand-tabs-icon&quot;&gt;&lt;/i&gt;\n\t\t\t&lt;/button&gt;\n\t\t\t&lt;button id=&quot;expand-aside&quot; type=&quot;button&quot; class=&quot;navbar-toggle&quot; data-toggle=&quot;offcanvas&quot; data-target=&quot;#region_1&quot;&gt;\n\t\t\t\t&lt;i class=&quot;icon-circle-arrow-right&quot; id=&quot;expand-aside-icon&quot;&gt;&lt;/i&gt;\n\t\t\t&lt;/button&gt;\n\t\t\t\t\t\t\t&lt;img class=&quot;dropdown-toggle fakelink&quot; data-toggle=&quot;dropdown&quot; id=&quot;avatar&quot; src=&quot;http://hubzilla/photo/profile/m/2&quot; alt=&quot;testes@hubzilla&quot;&gt;&lt;span class=&quot;caret&quot; id=&quot;usermenu-caret&quot;&gt;&lt;/span&gt;\n\t\t\t\t\t\t\t\t\t&lt;ul class=&quot;dropdown-menu&quot; role=&quot;menu&quot; aria-labelledby=&quot;avatar&quot;&gt;\n\t\t\t\t\t\t\t\t\t\t\t\t&lt;li role=&quot;presentation&quot;&gt;&lt;a href=&quot;channel/testes&quot; title=&quot;Your posts and conversations&quot; role=&quot;menuitem&quot; id=&quot;channel_nav_btn&quot;&gt;Home&lt;/a&gt;&lt;/li&gt;\n\t\t\t\t\t\t\t\t\t\t\t\t&lt;li role=&quot;presentation&quot;&gt;&lt;a href=&quot;profile/testes&quot; title=&quot;Your profile page&quot; role=&quot;menuitem&quot; id=&quot;profile_nav_btn&quot;&gt;View Profile&lt;/a&gt;&lt;/li&gt;\n\t\t\t\t\t\t\t\t\t\t\t\t&lt;li role=&quot;presentation&quot;&gt;&lt;a href=&quot;profiles/2&quot; title=&quot;Edit your profile&quot; role=&quot;menuitem&quot; id=&quot;profiles_nav_btn&quot;&gt;Edit Profile&lt;/a&gt;&lt;/li&gt;\n\t\t\t\t\t\t\t\t\t\t\t\t&lt;li role=&quot;presentation&quot;&gt;&lt;a href=&quot;photos/testes&quot; title=&quot;Your photos&quot; role=&quot;menuitem&quot; id=&quot;photos_nav_btn&quot;&gt;Photos&lt;/a&gt;&lt;/li&gt;\n\t\t\t\t\t\t\t\t\t\t\t\t&lt;li role=&quot;presentation&quot;&gt;&lt;a href=&quot;cloud/testes&quot; title=&quot;Your files&quot; role=&quot;menuitem&quot; id=&quot;cloud_nav_btn&quot;&gt;Files&lt;/a&gt;&lt;/li&gt;\n\t\t\t\t\t\t\t\t\t\t\t\t&lt;li role=&quot;presentation&quot;&gt;&lt;a href=&quot;chat/testes/new&quot; title=&quot;Your chatrooms&quot; role=&quot;menuitem&quot; id=&quot;chat_nav_btn&quot;&gt;Chat&lt;/a&gt;&lt;/li&gt;\n\t\t\t\t\t\t\t\t\t\t\t\t&lt;li role=&quot;presentation&quot; class=&quot;divider&quot;&gt;&lt;/li&gt;\n\t\t\t\t\t\t\t\t\t\t\t\t&lt;li role=&quot;presentation&quot;&gt;&lt;a href=&quot;settings&quot; title=&quot;Account/Channel Settings&quot; role=&quot;menuitem&quot; id=&quot;settings_nav_btn&quot;&gt;Settings&lt;/a&gt;&lt;/li&gt;\t\t\t\t\t\t&lt;li role=&quot;presentation&quot;&gt;&lt;a href=&quot;manage&quot; title=&quot;Manage Your Channels&quot; role=&quot;menuitem&quot; id=&quot;manage_nav_btn&quot;&gt;Channel Manager&lt;/a&gt;&lt;/li&gt;\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t&lt;li role=&quot;presentation&quot; class=&quot;divider&quot;&gt;&lt;/li&gt;\n\t\t\t\t\t\t&lt;li role=&quot;presentation&quot;&gt;&lt;a href=&quot;admin/&quot; title=&quot;Site Setup and Configuration&quot; role=&quot;menuitem&quot; id=&quot;admin_nav_btn&quot;&gt;Admin&lt;/a&gt;&lt;/li&gt;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t&lt;li role=&quot;presentation&quot; class=&quot;divider&quot;&gt;&lt;/li&gt;\n\t\t\t\t\t\t&lt;li role=&quot;presentation&quot;&gt;&lt;a href=&quot;logout&quot; title=&quot;End this session&quot; role=&quot;menuitem&quot; id=&quot;logout_nav_btn&quot;&gt;Logout&lt;/a&gt;&lt;/li&gt;\n\t\t\t\t\t\t\t\t\t\t\t&lt;/ul&gt;\n\t\t\t\t\t\t\t\t\t&lt;/div&gt;\n\t\t&lt;div class=&quot;collapse navbar-collapse&quot; id=&quot;navbar-collapse-1&quot;&gt;\n\t\t\t&lt;ul class=&quot;nav navbar-nav navbar-left&quot;&gt;\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\t\t\t&lt;li class=&quot; hidden-xs&quot;&gt;\n\t\t\t\t\t&lt;a href=&quot;network&quot; title=&quot;Your grid&quot; id=&quot;network_nav_btn&quot;&gt;&lt;i class=&quot;icon-th&quot;&gt;&lt;/i&gt;&lt;/a&gt;\n\t\t\t\t\t&lt;span class=&quot;net-update badge dropdown-toggle&quot; data-toggle=&quot;dropdown&quot; rel=&quot;#nav-network-menu&quot;&gt;&lt;/span&gt;\n\t\t\t\t\t&lt;ul id=&quot;nav-network-menu&quot; role=&quot;menu&quot; class=&quot;dropdown-menu&quot; rel=&quot;network&quot;&gt;\n\t\t\t\t\t\t\n\t\t\t\t\t\t&lt;li id=&quot;nav-network-mark-all&quot;&gt;&lt;a href=&quot;#&quot; onclick=&quot;markRead('network'); return false;&quot;&gt;Mark all grid notifications seen&lt;/a&gt;&lt;/li&gt;\n\t\t\t\t\t\t&lt;li class=&quot;empty&quot;&gt;Loading...&lt;/li&gt;\n\t\t\t\t\t&lt;/ul&gt;\n\t\t\t\t&lt;/li&gt;\n\t\t\t\t&lt;li class=&quot; visible-xs&quot;&gt;\n\t\t\t\t\t&lt;a href=&quot;network&quot; title=&quot;Your grid&quot; &gt;&lt;i class=&quot;icon-th&quot;&gt;&lt;/i&gt;&lt;/a&gt;\n\t\t\t\t\t&lt;span class=&quot;net-update badge&quot; rel=&quot;#nav-network-menu&quot;&gt;&lt;/span&gt;\n\t\t\t\t&lt;/li&gt;\n\t\t\t\n\t\t\t\t\t\t\t&lt;li class=&quot; hidden-xs&quot;&gt;\n\t\t\t\t\t&lt;a class=&quot;&quot; href=&quot;channel/testes&quot; title=&quot;Channel home&quot; id=&quot;home_nav_btn&quot;&gt;&lt;i class=&quot;icon-home&quot;&gt;&lt;/i&gt;&lt;/a&gt;\n\t\t\t\t\t&lt;span class=&quot;home-update badge dropdown-toggle&quot; data-toggle=&quot;dropdown&quot; rel=&quot;#nav-home-menu&quot;&gt;&lt;/span&gt;\n\t\t\t\t\t&lt;ul id=&quot;nav-home-menu&quot; class=&quot;dropdown-menu&quot; rel=&quot;home&quot;&gt;\n\t\t\t\t\t\t\n\t\t\t\t\t\t&lt;li id=&quot;nav-home-mark-all&quot;&gt;&lt;a href=&quot;#&quot; onclick=&quot;markRead('home'); return false;&quot;&gt;Mark all channel notifications seen&lt;/a&gt;&lt;/li&gt;\n\t\t\t\t\t\t&lt;li class=&quot;empty&quot;&gt;Loading...&lt;/li&gt;\n\t\t\t\t\t&lt;/ul&gt;\n\t\t\t\t&lt;/li&gt;\n\t\t\t\t&lt;li class=&quot; visible-xs&quot;&gt;\n\t\t\t\t\t&lt;a class=&quot;&quot; href=&quot;channel/testes&quot; title=&quot;Channel home&quot; &gt;&lt;i class=&quot;icon-home&quot;&gt;&lt;/i&gt;&lt;/a&gt;\n\t\t\t\t\t&lt;span class=&quot;home-update badge&quot; rel=&quot;#nav-home-menu&quot;&gt;&lt;/span&gt;\n\t\t\t\t&lt;/li&gt;\n\t\t\t\n\n\t\t\t\t\t\t\t&lt;li class=&quot; hidden-xs&quot;&gt;\n\t\t\t\t\t&lt;a class=&quot;&quot; href=&quot;mail/combined&quot; title=&quot;Private mail&quot; id=&quot;mail_nav_btn&quot;&gt;&lt;i class=&quot;icon-envelope&quot;&gt;&lt;/i&gt;&lt;/a&gt;\n\t\t\t\t\t&lt;span class=&quot;mail-update badge dropdown-toggle&quot; data-toggle=&quot;dropdown&quot; rel=&quot;#nav-messages-menu&quot;&gt;&lt;/span&gt;\n\t\t\t\t\t&lt;ul id=&quot;nav-messages-menu&quot; class=&quot;dropdown-menu&quot; rel=&quot;messages&quot;&gt;\n\t\t\t\t\t\t&lt;li id=&quot;nav-messages-see-all&quot;&gt;&lt;a href=&quot;mail/combined&quot;&gt;See all private messages&lt;/a&gt;&lt;/li&gt;\n\t\t\t\t\t\t&lt;li id=&quot;nav-messages-mark-all&quot;&gt;&lt;a href=&quot;#&quot; onclick=&quot;markRead('messages'); return false;&quot;&gt;Mark all private messages seen&lt;/a&gt;&lt;/li&gt;\n\t\t\t\t\t\t&lt;li class=&quot;empty&quot;&gt;Loading...&lt;/li&gt;\n\t\t\t\t\t&lt;/ul&gt;\n\t\t\t\t&lt;/li&gt;\n\t\t\t\t&lt;li class=&quot; visible-xs&quot;&gt;\n\t\t\t\t\t&lt;a class=&quot;&quot; href=&quot;mail/combined&quot; title=&quot;Private mail&quot; &gt;&lt;i class=&quot;icon-envelope&quot;&gt;&lt;/i&gt;&lt;/a&gt;\n\t\t\t\t\t&lt;span class=&quot;mail-update badge&quot; rel=&quot;#nav-messages-menu&quot;&gt;&lt;/span&gt;\n\t\t\t\t&lt;/li&gt;\n\t\t\t\n\t\t\t\t\t\t\t&lt;li class=&quot; hidden-xs&quot;&gt;\n\t\t\t\t\t&lt;a class=&quot;&quot; href=&quot;events&quot; title=&quot;Event Calendar&quot; id='events_nav_btn'&gt;&lt;i class=&quot;icon-calendar&quot;&gt;&lt;/i&gt;&lt;/a&gt;\n\t\t\t\t\t&lt;span class=&quot;all_events-update badge dropdown-toggle&quot; data-toggle=&quot;dropdown&quot; rel=&quot;#nav-all_events-menu&quot;&gt;&lt;/span&gt;\n\t\t\t\t\t&lt;ul id=&quot;nav-all_events-menu&quot; class=&quot;dropdown-menu&quot; rel=&quot;all_events&quot;&gt;\n\t\t\t\t\t\t&lt;li id=&quot;nav-all_events-see-all&quot;&gt;&lt;a href=&quot;events&quot;&gt;See all events&lt;/a&gt;&lt;/li&gt;\n\t\t\t\t\t\t&lt;li id=&quot;nav-all_events-mark-all&quot;&gt;&lt;a href=&quot;#&quot; onclick=&quot;markRead('all_events'); return false;&quot;&gt;Mark all events seen&lt;/a&gt;&lt;/li&gt;\n\t\t\t\t\t\t&lt;li class=&quot;empty&quot;&gt;Loading...&lt;/li&gt;\n\t\t\t\t\t&lt;/ul&gt;\n\t\t\t\t&lt;/li&gt;\n\t\t\t\t&lt;li class=&quot; visible-xs&quot;&gt;\n\t\t\t\t\t&lt;a class=&quot;&quot; href=&quot;events&quot; title=&quot;Event Calendar&quot; &gt;&lt;i class=&quot;icon-calendar&quot;&gt;&lt;/i&gt;&lt;/a&gt;\n\t\t\t\t\t&lt;span class=&quot;all_events-update badge&quot; rel=&quot;#nav-all_events-menu&quot;&gt;&lt;/span&gt;\n\t\t\t\t&lt;/li&gt;\n\t\t\t\n\t\t\t\t\t\t\t&lt;li class=&quot; hidden-xs&quot;&gt;\n\t\t\t\t\t&lt;a class=&quot;&quot; href=&quot;connections/ifpending&quot; title=&quot;Connections&quot; id=&quot;connections_nav_btn&quot;&gt;&lt;i class=&quot;icon-user&quot;&gt;&lt;/i&gt;&lt;/a&gt;\n\t\t\t\t\t&lt;span class=&quot;intro-update badge dropdown-toggle&quot; data-toggle=&quot;dropdown&quot; rel=&quot;#nav-intros-menu&quot;&gt;&lt;/span&gt;\n\t\t\t\t\t&lt;ul id=&quot;nav-intros-menu&quot; class=&quot;dropdown-menu&quot; rel=&quot;intros&quot;&gt;\n\t\t\t\t\t\t&lt;li id=&quot;nav-intros-see-all&quot;&gt;&lt;a href=&quot;&quot;&gt;&lt;/a&gt;&lt;/li&gt;\n\t\t\t\t\t\t&lt;li class=&quot;empty&quot;&gt;Loading...&lt;/li&gt;\n\t\t\t\t\t&lt;/ul&gt;\n\t\t\t\t&lt;/li&gt;\n\t\t\t\t&lt;li class=&quot; visible-xs&quot;&gt;\n\t\t\t\t\t&lt;a class=&quot;&quot; href=&quot;connections/ifpending&quot; title=&quot;Connections&quot; &gt;&lt;i class=&quot;icon-user&quot;&gt;&lt;/i&gt;&lt;/a&gt;\n\t\t\t\t\t&lt;span class=&quot;intro-update badge&quot; rel=&quot;#nav-intros-menu&quot;&gt;&lt;/span&gt;\n\t\t\t\t&lt;/li&gt;\n\t\t\t\t\t\n\t\t\t\t\t\t\t&lt;li class=&quot; hidden-xs&quot;&gt;\n\t\t\t\t\t&lt;a href=&quot;notifications/system&quot; title=&quot;Notices&quot; id=&quot;notifications_nav_btn&quot;&gt;&lt;i class=&quot;icon-exclamation&quot;&gt;&lt;/i&gt;&lt;/a&gt;\n\t\t\t\t\t&lt;span class=&quot;notify-update badge dropdown-toggle&quot; data-toggle=&quot;dropdown&quot; rel=&quot;#nav-notify-menu&quot;&gt;&lt;/span&gt;\n\t\t\t\t\t&lt;ul id=&quot;nav-notify-menu&quot; class=&quot;dropdown-menu&quot; rel=&quot;notify&quot;&gt;\n\t\t\t\t\t\t&lt;li id=&quot;nav-notify-see-all&quot;&gt;&lt;a href=&quot;notifications/system&quot;&gt;See all notifications&lt;/a&gt;&lt;/li&gt;\n\t\t\t\t\t\t&lt;li id=&quot;nav-notify-mark-all&quot;&gt;&lt;a href=&quot;#&quot; onclick=&quot;markRead('notify'); return false;&quot;&gt;Mark all system notifications seen&lt;/a&gt;&lt;/li&gt;\n\t\t\t\t\t\t&lt;li class=&quot;empty&quot;&gt;Loading...&lt;/li&gt;\n\t\t\t\t\t&lt;/ul&gt;\n\t\t\t\t&lt;/li&gt;\n\t\t\t\t&lt;li class=&quot; visible-xs&quot;&gt;\n\t\t\t\t\t&lt;a href=&quot;notifications/system&quot; title=&quot;Notices&quot;&gt;&lt;i class=&quot;icon-exclamation&quot;&gt;&lt;/i&gt;&lt;/a&gt;\n\t\t\t\t\t&lt;span class=&quot;notify-update badge&quot; rel=&quot;#nav-notify-menu&quot;&gt;&lt;/span&gt;\n\t\t\t\t&lt;/li&gt;\n\t\t\t\t\t\t&lt;/ul&gt;\n\t\t\t&lt;ul class=&quot;nav navbar-nav navbar-right&quot;&gt;\n\t\t\t\t&lt;li class=&quot;hidden-xs&quot;&gt;\n\t\t\t\t\t&lt;form method=&quot;get&quot; action=&quot;search&quot; role=&quot;search&quot;&gt;\n\t\t\t\t\t\t&lt;div id=&quot;nav-search-spinner&quot;&gt;&lt;/div&gt;&lt;input class=&quot;icon-search&quot; id=&quot;nav-search-text&quot; type=&quot;text&quot; value=&quot;&quot; placeholder=&quot;&amp;#xf002; @name, #tag, ?doc, content&quot; name=&quot;search&quot; title=&quot;Search site @name, #tag, ?docs, content&quot; onclick=&quot;this.submit();&quot;/&gt;\n\t\t\t\t\t&lt;/form&gt;\n\t\t\t\t&lt;/li&gt;\n\t\t\t\t&lt;li class=&quot;visible-xs&quot;&gt;\n\t\t\t\t\t&lt;a href=&quot;/search&quot; title=&quot;Search site @name, #tag, ?docs, content&quot;&gt;&lt;i class=&quot;icon-search&quot;&gt;&lt;/i&gt;&lt;/a&gt;\n\t\t\t\t&lt;/li&gt;\n\n\t\t\t\t\t\t\t\t\t\t&lt;li class=&quot;&quot;&gt;\n\t\t\t\t\t&lt;a class=&quot;&quot; href=&quot;directory&quot; title=&quot;Channel Directory&quot; id=&quot;directory_nav_btn&quot;&gt;&lt;i class=&quot;icon-sitemap&quot;&gt;&lt;/i&gt;&lt;/a&gt;\n\t\t\t\t&lt;/li&gt;\n\t\t\t\n\t\t\t\t\t\t\t&lt;li class=&quot;&quot;&gt;\n\t\t\t\t\t&lt;a class=&quot;&quot; href=&quot;apps&quot; title=&quot;Applications, utilities, links, games&quot; id=&quot;apps_nav_btn&quot;&gt;&lt;i class=&quot;icon-cogs&quot;&gt;&lt;/i&gt;&lt;/a&gt;\n\t\t\t\t&lt;/li&gt;\n\t\t\t\n\t\t\t\t\t\t\t&lt;li class=&quot;active&quot;&gt;\n\t\t\t\t\t&lt;a class=&quot;&quot; target=&quot;hubzilla-help&quot; href=&quot;http://hubzilla/help?f=&amp;cmd=help/develop&quot; title=&quot;Help and documentation&quot; id=&quot;help_nav_btn&quot;&gt;&lt;i class=&quot;icon-question&quot;&gt;&lt;/i&gt;&lt;/a&gt;\n\t\t\t\t&lt;/li&gt;\n\t\t\t\t\t\t&lt;/ul&gt;\n\t\t&lt;/div&gt;\n\t&lt;/div&gt;\n",
+ "htmlhead": "&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html;charset=utf-8&quot; /&gt;\n&lt;base href=&quot;http://hubzilla/&quot; /&gt;\n&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, height=device-height, initial-scale=1, user-scalable=1&quot; /&gt;\n&lt;meta name=&quot;generator&quot; content=&quot;hubzilla 2015-11-03.1205H&quot; /&gt;\n\n&lt;!--[if IE]&gt;\n&lt;script src=&quot;http://hubzilla/library/html5.js&quot;&gt;&lt;/script&gt;\n&lt;![endif]--&gt;\n\n&lt;link rel=&quot;stylesheet&quot; href=&quot;http://hubzilla/library/font_awesome/css/font-awesome.min.css&quot; type=&quot;text/css&quot; media=&quot;screen&quot;&gt;\r\n&lt;link rel=&quot;stylesheet&quot; href=&quot;http://hubzilla/library/bootstrap/css/bootstrap.min.css&quot; type=&quot;text/css&quot; media=&quot;screen&quot;&gt;\r\n&lt;link rel=&quot;stylesheet&quot; href=&quot;http://hubzilla/library/bootstrap-tagsinput/bootstrap-tagsinput.css&quot; type=&quot;text/css&quot; media=&quot;screen&quot;&gt;\r\n&lt;link rel=&quot;stylesheet&quot; href=&quot;http://hubzilla/view/css/bootstrap-red.css&quot; type=&quot;text/css&quot; media=&quot;screen&quot;&gt;\r\n&lt;link rel=&quot;stylesheet&quot; href=&quot;http://hubzilla/library/datetimepicker/jquery.datetimepicker.css&quot; type=&quot;text/css&quot; media=&quot;screen&quot;&gt;\r\n&lt;link rel=&quot;stylesheet&quot; href=&quot;http://hubzilla/library/bootstrap-colorpicker/dist/css/bootstrap-colorpicker.min.css&quot; type=&quot;text/css&quot; media=&quot;screen&quot;&gt;\r\n&lt;link rel=&quot;stylesheet&quot; href=&quot;http://hubzilla/library/tiptip/tipTip.css&quot; type=&quot;text/css&quot; media=&quot;screen&quot;&gt;\r\n&lt;link rel=&quot;stylesheet&quot; href=&quot;http://hubzilla/library/jgrowl/jquery.jgrowl.css&quot; type=&quot;text/css&quot; media=&quot;screen&quot;&gt;\r\n&lt;link rel=&quot;stylesheet&quot; href=&quot;http://hubzilla/library/jRange/jquery.range.css&quot; type=&quot;text/css&quot; media=&quot;screen&quot;&gt;\r\n&lt;link rel=&quot;stylesheet&quot; href=&quot;http://hubzilla/view/css/conversation.css&quot; type=&quot;text/css&quot; media=&quot;screen&quot;&gt;\r\n&lt;link rel=&quot;stylesheet&quot; href=&quot;http://hubzilla/view/css/widgets.css&quot; type=&quot;text/css&quot; media=&quot;screen&quot;&gt;\r\n&lt;link rel=&quot;stylesheet&quot; href=&quot;http://hubzilla/view/css/colorbox.css&quot; type=&quot;text/css&quot; media=&quot;screen&quot;&gt;\r\n&lt;link rel=&quot;stylesheet&quot; href=&quot;http://hubzilla/library/justifiedGallery/justifiedGallery.min.css&quot; type=&quot;text/css&quot; media=&quot;screen&quot;&gt;\r\n&lt;link rel=&quot;stylesheet&quot; href=&quot;http://hubzilla/view/css/default.css&quot; type=&quot;text/css&quot; media=&quot;screen&quot;&gt;\r\n&lt;link rel=&quot;stylesheet&quot; href=&quot;http://hubzilla/view/theme/redbasic/php/style.pcss&quot; type=&quot;text/css&quot; media=&quot;screen&quot;&gt;\r\n\n\n&lt;script&gt;\n\n\tvar aStr = {\n\n\t\t'delitem' : &quot;Delete this item?&quot;,\n\t\t'comment' : &quot;Comment&quot;,\n\t\t'showmore' : &quot;[+] show all&quot;,\n\t\t'showfewer' : &quot;[-] show less&quot;,\n\t\t'divgrowmore' : &quot;[+] expand&quot;,\n\t\t'divgrowless' : &quot;[-] collapse&quot;,\n\t\t'pwshort' : &quot;Password too short&quot;,\n\t\t'pwnomatch' : &quot;Passwords do not match&quot;,\n\t\t'everybody' : &quot;everybody&quot;,\n\t\t'passphrase' : &quot;Secret Passphrase&quot;,\n\t\t'passhint' : &quot;Passphrase hint&quot;,\n\t\t'permschange' : &quot;Notice: Permissions have changed but have not yet been submitted.&quot;,\n\t\t'closeAll' : &quot;close all&quot;,\n\t\t'nothingnew' : &quot;Nothing new here&quot;,\n\t\t'rating_desc' : &quot;Rate This Channel (this is public)&quot;,\n\t\t'rating_val' : &quot;Rating&quot;,\n\t\t'rating_text' : &quot;Describe (optional)&quot;,\n\t\t'submit' : &quot;Submit&quot;,\n\t\t'linkurl' : &quot;Please enter a link URL&quot;,\n\t\t'leavethispage' : &quot;Unsaved changes. Are you sure you wish to leave this page?&quot;,\n\n\t\t't01' : &quot;&quot;,\n\t\t't02' : &quot;&quot;,\n\t\t't03' : &quot;ago&quot;,\n\t\t't04' : &quot;from now&quot;,\n\t\t't05' : &quot;less than a minute&quot;,\n\t\t't06' : &quot;about a minute&quot;,\n\t\t't07' : &quot;%d minutes&quot;,\n\t\t't08' : &quot;about an hour&quot;,\n\t\t't09' : &quot;about %d hours&quot;,\n\t\t't10' : &quot;a day&quot;,\n\t\t't11' : &quot;%d days&quot;,\n\t\t't12' : &quot;about a month&quot;,\n\t\t't13' : &quot;%d months&quot;,\n\t\t't14' : &quot;about a year&quot;,\n\t\t't15' : &quot;%d years&quot;,\n\t\t't16' : &quot; &quot;,\n\t\t't17' : &quot;[]&quot;,\n\n\t\t'monthNames' : [ &quot;January&quot;,&quot;February&quot;,&quot;March&quot;,&quot;April&quot;,&quot;May&quot;,&quot;June&quot;,&quot;July&quot;,&quot;August&quot;,&quot;September&quot;,&quot;October&quot;,&quot;November&quot;,&quot;December&quot; ],\n\t\t'monthNamesShort' : [ &quot;Jan&quot;,&quot;Feb&quot;,&quot;Mar&quot;,&quot;Apr&quot;,&quot;May&quot;,&quot;Jun&quot;,&quot;Jul&quot;,&quot;Aug&quot;,&quot;Sep&quot;,&quot;Oct&quot;,&quot;Nov&quot;,&quot;Dec&quot; ],\n\t\t'dayNames' : [&quot;Sunday&quot;,&quot;Monday&quot;,&quot;Tuesday&quot;,&quot;Wednesday&quot;,&quot;Thursday&quot;,&quot;Friday&quot;,&quot;Saturday&quot;],\n\t\t'dayNamesShort' : [&quot;Sun&quot;,&quot;Mon&quot;,&quot;Tue&quot;,&quot;Wed&quot;,&quot;Thu&quot;,&quot;Fri&quot;,&quot;Sat&quot;],\n\t\t'today' : &quot;today&quot;,\n\t\t'month' : &quot;month&quot;,\n\t\t'week' : &quot;week&quot;,\n\t\t'day' : &quot;day&quot;,\n\t\t'allday' : &quot;All day&quot;\n\t};\n\n&lt;/script&gt;\n\t\t\n\n\n&lt;script src=&quot;http://hubzilla/view/js/jquery.js&quot; &gt;&lt;/script&gt;\r\n&lt;script src=&quot;http://hubzilla/library/justifiedGallery/jquery.justifiedGallery.min.js&quot; &gt;&lt;/script&gt;\r\n&lt;script src=&quot;http://hubzilla/library/sprintf.js/dist/sprintf.min.js&quot; &gt;&lt;/script&gt;\r\n&lt;script src=&quot;http://hubzilla/view/js/spin.js&quot; &gt;&lt;/script&gt;\r\n&lt;script src=&quot;http://hubzilla/view/js/jquery.spin.js&quot; &gt;&lt;/script&gt;\r\n&lt;script src=&quot;http://hubzilla/view/js/jquery.textinputs.js&quot; &gt;&lt;/script&gt;\r\n&lt;script src=&quot;http://hubzilla/view/js/autocomplete.js&quot; &gt;&lt;/script&gt;\r\n&lt;script src=&quot;http://hubzilla/library/jquery-textcomplete/jquery.textcomplete.js&quot; &gt;&lt;/script&gt;\r\n&lt;script src=&quot;http://hubzilla/library/jquery.timeago.js&quot; &gt;&lt;/script&gt;\r\n&lt;script src=&quot;http://hubzilla/library/readmore.js/readmore.js&quot; &gt;&lt;/script&gt;\r\n&lt;script src=&quot;http://hubzilla/library/jgrowl/jquery.jgrowl_minimized.js&quot; &gt;&lt;/script&gt;\r\n&lt;script src=&quot;http://hubzilla/library/cryptojs/components/core-min.js&quot; &gt;&lt;/script&gt;\r\n&lt;script src=&quot;http://hubzilla/library/cryptojs/rollups/aes.js&quot; &gt;&lt;/script&gt;\r\n&lt;script src=&quot;http://hubzilla/library/cryptojs/rollups/rabbit.js&quot; &gt;&lt;/script&gt;\r\n&lt;script src=&quot;http://hubzilla/library/cryptojs/rollups/tripledes.js&quot; &gt;&lt;/script&gt;\r\n&lt;script src=&quot;http://hubzilla/view/js/acl.js&quot; &gt;&lt;/script&gt;\r\n&lt;script src=&quot;http://hubzilla/view/js/webtoolkit.base64.js&quot; &gt;&lt;/script&gt;\r\n&lt;script src=&quot;http://hubzilla/view/js/crypto.js&quot; &gt;&lt;/script&gt;\r\n&lt;script src=&quot;http://hubzilla/library/jRange/jquery.range.js&quot; &gt;&lt;/script&gt;\r\n&lt;script src=&quot;http://hubzilla/library/colorbox/jquery.colorbox-min.js&quot; &gt;&lt;/script&gt;\r\n&lt;script src=&quot;http://hubzilla/library/jquery.AreYouSure/jquery.are-you-sure.js&quot; &gt;&lt;/script&gt;\r\n&lt;script src=&quot;http://hubzilla/library/tableofcontents/jquery.toc.js&quot; &gt;&lt;/script&gt;\r\n&lt;script src=&quot;http://hubzilla/library/bootstrap/js/bootstrap.min.js&quot; &gt;&lt;/script&gt;\r\n&lt;script src=&quot;http://hubzilla/library/bootbox/bootbox.min.js&quot; &gt;&lt;/script&gt;\r\n&lt;script src=&quot;http://hubzilla/library/bootstrap-tagsinput/bootstrap-tagsinput.js&quot; &gt;&lt;/script&gt;\r\n&lt;script src=&quot;http://hubzilla/library/datetimepicker/jquery.datetimepicker.js&quot; &gt;&lt;/script&gt;\r\n&lt;script src=&quot;http://hubzilla/library/bootstrap-colorpicker/dist/js/bootstrap-colorpicker.js&quot; &gt;&lt;/script&gt;\r\n&lt;script src=&quot;http://hubzilla/view/theme/redbasic/js/redbasic.js&quot; &gt;&lt;/script&gt;\r\n\n\n&lt;link rel=&quot;shortcut icon&quot; href=&quot;http://hubzilla/images/hz-32.png&quot; /&gt;\n&lt;link rel=&quot;search&quot;\n href=&quot;http://hubzilla/opensearch&quot; \n type=&quot;application/opensearchdescription+xml&quot; \n title=&quot;Search in the Hubzilla&quot; /&gt;\n\n\n&lt;script&gt;\n\n\tvar updateInterval = 80000;\n\tvar localUser = 2;\n\tvar zid = 'testes@hubzilla';\n\tvar justifiedGalleryActive = false;\n\t\t\n&lt;/script&gt;\n\n\n\n\n&lt;script&gt;$(document).ready(function() {\n\t$(&quot;#nav-search-text&quot;).search_autocomplete('http://hubzilla/acl');\n});\n\n&lt;/script&gt;&lt;script src=&quot;http://hubzilla/view/js/main.js&quot; &gt;&lt;/script&gt;\r\n&lt;link rel=&quot;stylesheet&quot; href=&quot;http://hubzilla/addon/converse/converse.min.js&quot; media=&quot;all&quot; /&gt;&lt;script src=&quot;http://hubzilla/addon/converse/converse.min.js&quot;&gt;&lt;/script&gt;",
+ "header": "&lt;div id=&quot;banner&quot; class=&quot;hidden-sm hidden-xs&quot;&gt;Hubzilla&lt;/div&gt;\n\n&lt;ul id=&quot;nav-notifications-template&quot; style=&quot;display:none;&quot; rel=&quot;template&quot;&gt;\n\t&lt;li class=&quot;{5}&quot;&gt;&lt;a href=&quot;{0}&quot; title=&quot;{2} {3}&quot;&gt;&lt;img data-src=&quot;{1}&quot;&gt;&lt;span class=&quot;contactname&quot;&gt;{2}&lt;/span&gt;&lt;span class=&quot;dropdown-sub-text&quot;&gt;{3}&lt;br&gt;{4}&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n"
+ },
+ "poi": null,
+ "force_max_items": 0,
+ "module": "help",
+ "template_engines": {
+ "smarty3": "FriendicaSmartyEngine",
+ "internal": "Template"
+ },
+ "account": {
+ "account_flags": "0",
+ "account_service_class": "",
+ "account_id": "1",
+ "account_salt": "9bf8c193c35a56c4c666f47728fe20da",
+ "account_expires": "0000-00-00 00:00:00",
+ "account_lastlog": "2015-11-04 07:47:55",
+ "account_password_changed": "0000-00-00 00:00:00",
+ "account_language": "en",
+ "account_default_channel": "2",
+ "account_password": "",
+ "account_parent": "1",
+ "account_expire_notified": "0000-00-00 00:00:00",
+ "account_reset": "",
+ "account_email": "foo@bar.com",
+ "account_level": "0",
+ "account_roles": "4096",
+ "account_external": "",
+ "account_created": "2015-10-09 00:44:51"
+ },
+ "theme_info": [],
+ "argv": [
+ "help",
+ "develop"
+ ],
+ "template_engine_instance": {
+ "smarty3": {}
+ },
+ "language": "en",
+ "pager": {
+ "page": 1,
+ "itemspage": 60,
+ "start": 0,
+ "total": 0
+ },
+ "plugins": [
+ "converse"
+ ],
+ "error": false,
+ "pdl": "[region=aside]\n[widget=helpindex][/widget]\n[/region]\n",
+ "query_string": "help/develop",
+ "cmd": "help/develop",
+ "groups": null,
+ "videowidth": 425,
+ "css_sources": [
+ [
+ "library/font_awesome/css/font-awesome.min.css",
+ "screen"
+ ],
+ [
+ "library/bootstrap/css/bootstrap.min.css",
+ "screen"
+ ],
+ [
+ "library/bootstrap-tagsinput/bootstrap-tagsinput.css",
+ "screen"
+ ],
+ [
+ "view/css/bootstrap-red.css",
+ "screen"
+ ],
+ [
+ "library/datetimepicker/jquery.datetimepicker.css",
+ "screen"
+ ],
+ [
+ "library/bootstrap-colorpicker/dist/css/bootstrap-colorpicker.min.css",
+ "screen"
+ ],
+ [
+ "library/tiptip/tipTip.css",
+ "screen"
+ ],
+ [
+ "library/jgrowl/jquery.jgrowl.css",
+ "screen"
+ ],
+ [
+ "library/jRange/jquery.range.css",
+ "screen"
+ ],
+ [
+ "view/css/conversation.css",
+ "screen"
+ ],
+ [
+ "view/css/widgets.css",
+ "screen"
+ ],
+ [
+ "view/css/colorbox.css",
+ "screen"
+ ],
+ [
+ "library/justifiedGallery/justifiedGallery.min.css",
+ "screen"
+ ],
+ [
+ "default.css",
+ "screen"
+ ],
+ [
+ "mod_help.css",
+ "screen"
+ ],
+ [
+ "view/theme/redbasic/php/style.pcss",
+ "screen"
+ ]
+ ],
+ "is_tablet": false,
+ "observer": {
+ "xchan_deleted": "0",
+ "xchan_connpage": "",
+ "xchan_pubforum": "0",
+ "xchan_flags": "0",
+ "xchan_censored": "0",
+ "xchan_instance_url": "",
+ "xchan_photo_s": "http://hubzilla/photo/profile/s/2",
+ "xchan_pubkey": "-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA7MP/xxsq/srA8I7m+WKf\nHlguwwg0b1tz+I3o+djp7b+wF8q03XPKQpYmKfXIj47vpAOu75nKA4Tn90lLymmk\nSXUHogOqOMy1CHoaVrAw2T2/tAeRoMAjAJ5IxSOAM7Xda0nVUK6FmfxPcvftKf9y\nPmvvFadXpaHT4JGPH0tszDhGXLkqlt9xSkIkpsgMA6emj/7bacc6x8eTdtvzo2e5\n/NyPXvBKH4henmYaKjq/4aIYZcBWYVGt6onxaP2j1cSNbksnOY7GbJl+hy95iFoZ\nDWGxiFwQd+CroiBbdlpVGp13cV/WKp2spZzlzkmCRGYoNbbM5RlgFLnmyTa4XMZE\nwnA3ZUB59MsrUJK+0H/utiZrpX5NQcFl33z8k5zB3pPnhc5S5/P+UJZRnqhet1wQ\n7AZVmdP30D75QD8LZ4SytZ1DHn/N76EsVhSADNMnUfEphs708V33Z0gFWultYDoK\nlvXUf4O0/V8GTufFHb6XdAiy92IUzrormXCpXoOmdOcJdaH9RnotZi/DkuQ0zP+Y\nCvxU9nrjyZvAwAdew//XFDjw4HoThVM4k4jzkIhCTlCao/yRnNM7A/i3OKcXq9wU\n7OZqcRfM9o0BFpZTIoXB7BMtpeioJcBi/7FUaV9U9uYLFuLL0qWa1YxLwfsN9rDk\n6A1gbhD60G9/dAbolp8xAHkCAwEAAQ==\n-----END PUBLIC KEY-----\n",
+ "xchan_connurl": "http://hubzilla/poco/testes",
+ "xchan_name_date": "2015-10-09 00:45:41",
+ "xchan_system": "0",
+ "xchan_photo_date": "2015-10-09 00:45:41",
+ "xchan_photo_m": "http://hubzilla/photo/profile/m/2",
+ "xchan_hidden": "0",
+ "xchan_selfcensored": "0",
+ "xchan_photo_mimetype": "image/jpeg",
+ "xchan_network": "zot",
+ "xchan_guid": "Ok-ycNKQYMzjokLnIz5OTCF8M5f4CtRT4vJCUeUivJhIOJWk3ORwIQgGx3P5g2Yz79KxQ-rs_Cn2G_jsgM6hmw",
+ "xchan_guid_sig": "XXX",
+ "xchan_hash": "uRy0nF-urp6k_bFrkdtCc2EkBynwpgCJL_FQFoTwyw2Hep7AHkrSt1MZcHWV_8DQucNlHSY1vHgUNS2Fvoirpw",
+ "xchan_url": "http://hubzilla/channel/testes",
+ "xchan_addr": "testes@hubzilla",
+ "xchan_orphan": "0",
+ "xchan_follow": "http://hubzilla/follow?f=&amp;url=%s",
+ "xchan_name": "testes",
+ "xchan_photo_l": "http://hubzilla/photo/profile/l/2"
+ },
+ "contact": null,
+ "identities": null,
+ "user": null,
+ "videoheight": 350,
+ "profile": null,
+ "theme_thread_allow": true,
+ "data": {
+ "pageicon": "/images/hz-32.png"
+ }
+}[/code]
+
#include doc/macros/main_footer.bb;
diff --git a/doc/features.bb b/doc/features.bb
index e8d1cd687..2abf0ec30 100644
--- a/doc/features.bb
+++ b/doc/features.bb
@@ -8,14 +8,14 @@ $Projectname provides distributed web publishing and social communications with
So what exactly are "decentralised permissions"? They give me the ability to share something on my website (photos, media, files, webpages, etc.) with specific people on completely different websites - but not necessarily [i]everybody[/i] on those websites; and they do not need a password on my website and do not need to login to my website to view the things I've shared with them. They have one password on their own website and "magic authentication" between affiliated websites in the network. Also, as it is decentralised, there is no third party which has the ability to bypass permissions and see everything in the network.
-$Projectname combines many features of traditional blogs, social networking and media, content management systems, and personal cloud storage into an easy to use framework. Each node in the matrix can operate standalone or link with other nodes to create a super-network; leaving privacy under the control of the original publisher.
+$Projectname combines many features of traditional blogs, social networking and media, content management systems, and personal cloud storage into an easy to use framework. Each node in the grid can operate standalone or link with other nodes to create a super-network; leaving privacy under the control of the original publisher.
$Projectname is an open source webserver application written originally in PHP/MySQL and is easily installable by those with basic website administration skills. It is also easily extended via plugins and themes and other third-party tools.
[b][size=24]$Projectname Features[/size][/b]
-The $Projectname is a general-purpose web publishing and communication network, with several unique features. It is designed to be used by the widest range of people on the web, from non-technical bloggers, to expert PHP programmers and seasoned systems administrators.
+$Projectname is a general-purpose web publishing and communication network, with several unique features. It is designed to be used by the widest range of people on the web, from non-technical bloggers, to expert PHP programmers and seasoned systems administrators.
This page lists some of the core features of $Projectname that are bundled with the official release. As with most free and open source software, there may be many other extensions, additions, plugins, themes and configurations that are limited only by the needs and imagination of the members.
@@ -29,10 +29,14 @@ When adding connnections in $Projectname, members have the option of assigning "
On the other hand, when adding a friend's channel, they could be placed under the affinity level of &quot;Friends&quot;.
-At this point, the $Projectname [i]Affinity Slider[/i] tool, which usually appears at the top of your &quot;Matrix&quot; page, adjusts the content on the page to include those within the desired affinity range. Channels outside that range will not be displayed, unless you adjust the slider to include them.
+At this point, $Projectname [i]Affinity Slider[/i] tool, which usually appears at the top of your &quot;Matrix&quot; page, adjusts the content on the page to include those within the desired affinity range. Channels outside that range will not be displayed, unless you adjust the slider to include them.
The Affinity Slider allows instantaneous filtering of large amounts of content, grouped by levels of closeness.
+[b]Connection Filtering[/b]
+
+You have the ability to control precisely what appears in your stream using the optional "Connection Filter". When enabled, the Connection Editor provides inputs for selecting criteria which needs to be matched in order to include or exclude a specific post from a specific channel. Once a post has been allowed, all comments to that post are allowed regardless of whether they match the selection criteria. You may select words that if present block the post or ensure it is included in your stream. Regular expressions may be used for even finer control, as well as hashtags or even the detected language of the post.
+
[b]Access Control Lists[/b]
When sharing content, members have the option of restricting who sees the content. By clicking on the padlock underneath the sharing box, one may choose desired recipients of the post, by clicking on their names.
@@ -43,7 +47,7 @@ Access Control Lists may be applied to content and posts, photos, events, webpag
[b]Single Sign-on[/b]
-Access Control Lists work for all channels in the matrix due to our unique single sign-on technology. Most internal links provide an identity token which can be verified on other $Projectname sites and used to control access to private resources. You login once to your home hub. After that, authentication to all $Projectname resources is "magic".
+Access Control Lists work for all channels in the grid due to our unique single sign-on technology. Most internal links provide an identity token which can be verified on other $Projectname sites and used to control access to private resources. You login once to your home hub. After that, authentication to all $Projectname resources is "magic".
[b]WebDAV enabled File Storage[/b]
@@ -56,7 +60,7 @@ Store photos in albums. All your photos may be protected by Access Control Lists
[b]Events Calendar[/b]
-Create and manage events, which may also be protected with Access Control Lists. Events can be exported to other software using the industry standard vcalendar/iCal format and shared in posts with others. Birthday events are automatically added from your friends and converted to your correct timezone so that you will know precisely when the birthday occurs - no matter where you are located in the world in relation to the birthday person. Events are normally created with attendance counters so your friends and connections can RSVP instantly.
+Create and manage events and tasks, which may also be protected with Access Control Lists. Events can be imported/exported to other software using the industry standard vcalendar/iCal format and shared in posts with others. Birthday events are automatically added from your friends and converted to your correct timezone so that you will know precisely when the birthday occurs - no matter where you are located in the world in relation to the birthday person. Events are normally created with attendance counters so your friends and connections can RSVP instantly.
[b]Chatrooms[/b]
@@ -81,11 +85,9 @@ Share and save/manage bookmarks from links provided in conversations.
[b]Private Message Encryption and Privacy Concerns[/b]
-Messages marked [b]private[/b] are encrypted with AES-CBC 256-bit symmetric cipher, which is then protected (encrypted in turn) by public key cryptography, based on 4096-bit RSA keys, associated with the channel that is sending the message.
-
-These private messages are also stored in an encrypted form on remote systems.
+Private mail is stored in an obscured format. While this is not bullet-proof it typically prevents casual snooping by the site administrator or ISP.
-Each Red channel has it's own unique set of private and associated public RSA 4096-bit keys, generated when the channels is first created.
+Each $Projectname channel has it's own unique set of private and associated public RSA 4096-bit keys, generated when the channels is first created. This is used to protect private messages and posts in transit.
Additionally, messages may be created utilising "end-to-end encryption" which cannot be read by $Projectname operators or ISPs or anybody who does not know the passcode.
@@ -142,9 +144,9 @@ Forums are typically channels which may be open to participation from multiple a
[b]Account Cloning[/b]
-Accounts in the $Projectname are referred to as [i]nomadic identities[/i], because a member's identity is not bound to the hub where the identity was originally created. For example, when you create a Facebook or Gmail account, it is tied to those services. They cannot function without Facebook.com or Gmail.com.
+Accounts in $Projectname are referred to as [i]nomadic identities[/i], because a member's identity is not bound to the hub where the identity was originally created. For example, when you create a Facebook or Gmail account, it is tied to those services. They cannot function without Facebook.com or Gmail.com.
-By contrast, say you've created a Red identity called [b]tina@redhub.com[/b]. You can clone it to another Red hub by choosing the same, or a different name: [b]liveForever@Some$ProjectnameHub.info[/b]
+By contrast, say you've created a$Projectname identity called [b]tina@redhub.com[/b]. You can clone it to another$Projectname hub by choosing the same, or a different name: [b]liveForever@Some$ProjectnameHub.info[/b]
Both channels are now synchronized, which means all your contacts and preferences will be duplicated on your clone. It doesn't matter whether you send a post from your original hub, or the new hub. Posts will be mirrored on both accounts.
@@ -152,9 +154,9 @@ This is a rather revolutionary feature, if we consider some scenarios:
- What happens if the hub where an identity is based suddenly goes offline? Without cloning, a member will not be able to communicate until that hub comes back online (no doubt many of you have seen and cursed the Twitter "Fail Whale"). With cloning, you just log into your cloned account, and life goes on happily ever after.
- - The administrator of your hub can no longer afford to pay for his free and public $Projectname hub. He announces that the hub will be shutting down in two weeks. This gives you ample time to clone your identity(ies) and preserve your Red relationships, friends and content.
+ - The administrator of your hub can no longer afford to pay for his free and public $Projectname hub. He announces that the hub will be shutting down in two weeks. This gives you ample time to clone your identity(ies) and preserve your$Projectname relationships, friends and content.
- - What if your identity is subject to government censorship? Your hub provider may be compelled to delete your account, along with any identities and associated data. With cloning, the $Projectname offers [b]censorship resistance[/b]. You can have hundreds of clones, if you wanted to, all named different, and existing on many different hubs, strewn around the internet.
+ - What if your identity is subject to government censorship? Your hub provider may be compelled to delete your account, along with any identities and associated data. With cloning, $Projectname offers [b]censorship resistance[/b]. You can have hundreds of clones, if you wanted to, all named different, and existing on many different hubs, strewn around the internet.
Red offers interesting new possibilities for privacy. You can read more at the &lt;&lt;Private Communications Best Practices&gt;&gt; page.
@@ -172,7 +174,7 @@ Backups can then be used to clone or restore a profile.
[b]Account Deletion[/b]
-Accounts can be immediately deleted by clicking on a link. That's it. All associated content is then deleted from the matrix (this includes posts and any other content produced by the deleted profile). Depending on the number of connections you have, the process of deleting remote content could take some time but it is scheduled to happen as quickly as is practical.
+Accounts can be immediately deleted by clicking on a link. That's it. All associated content is then deleted from the grid (this includes posts and any other content produced by the deleted profile). Depending on the number of connections you have, the process of deleting remote content could take some time but it is scheduled to happen as quickly as is practical.
[b][size=20]Content Creation[/size][/b]
@@ -183,10 +185,10 @@ Red supports a number of different ways of adding rich-text content. The default
When creating &quot;Websites&quot;, content may be entered in HTML, Markdown, BBcode, and/or plain text.
[b]Deletion of content[/b]
-Any content created in the $Projectname remains under the control of the member (or channel) that originally created it. At any time, a member can delete a message, or a range of messages. The deletion process ensures that the content is deleted, regardless of whether it was posted on a channel's primary (home) hub, or on another hub, where the channel was remotely authenticated via Zot (the $Projectname communication and authentication protocol).
+Any content created in $Projectname remains under the control of the member (or channel) that originally created it. At any time, a member can delete a message, or a range of messages. The deletion process ensures that the content is deleted, regardless of whether it was posted on a channel's primary (home) hub, or on another hub, where the channel was remotely authenticated via Zot ($Projectname communication and authentication protocol).
[b]Media[/b]
-Similar to any other modern blogging system, social network, or a micro-blogging service, Red supports the uploading of files, embedding of videos, linking web pages.
+Similar to any other modern blogging system, social network, or a micro-blogging service, $Projectname supports the uploading of files, embedding of videos, linking web pages.
[b]Previewing/Editing[/b]
Post can be previewed prior to sending and edited after sending.
diff --git a/doc/general.bb b/doc/general.bb
new file mode 100644
index 000000000..c9c2501e5
--- /dev/null
+++ b/doc/general.bb
@@ -0,0 +1,20 @@
+
+[h2]Project/Site Information[/h2]
+
+[zrl=[baseurl]/help/Privacy]Privacy Policy[/zrl]
+
+[zrl=[baseurl]/help/history]$Projectname history[/zrl]
+
+[h3]External Resources[/h3]
+[zrl=[baseurl]/help/external-resource-links]External Resource Links[/zrl]
+
+[url=https://github.com/redmatrix/hubzilla]Main Website[/url]
+[url=https://github.com/redmatrix/hubzilla-addons]Addon Website[/url]
+
+[url=[baseurl]/help/credits]$Projectname Credits[/url]
+
+[h3]About This $Projectname Hub[/h3]
+[zrl=[baseurl]/help/TermsOfService]Terms of Service For This Hub[/zrl]
+[zrl=[baseurl]/siteinfo]Hub Information (/siteinfo)[/zrl]
+[zrl=[baseurl]/siteinfo/json]Detailed Technical Hub Information in JSON format(/siteinfo/json)[/zrl]
+
diff --git a/doc/hidden_configs.bb b/doc/hidden_configs.bb
index 576c53f08..44114967b 100644
--- a/doc/hidden_configs.bb
+++ b/doc/hidden_configs.bb
@@ -1,6 +1,7 @@
[b]Advanced Configurations for Administrators[/b]
$Projectname contains many configuration options hidden from the main admin panel.
+
These are generally options considered too niche, confusing, or advanced for
the average member. These settings can be activated from the the top level Red
directory with the syntax [code]util/config cat key value[/code] for a site
@@ -111,7 +112,7 @@ This document assumes you're an administrator.
[b]system > cron_hour[/b]
Specify an hour in which to run cron_daily. By default with no config, this will run at midnight UTC.
[b]system > minimum_feedcheck_minutes[/b]
- The minimum interval between polling RSS feeds. If this is lower than the cron interval, feeds will be polled with each cronjob
+ The minimum interval between polling RSS feeds. If this is lower than the cron interval, feeds will be polled with each cronjob. Defaults to 60 if not set. The site setting can also be over-ridden on a channel by channel basis by a service class setting aptly named 'minimum_feedcheck_minutes'.
[b]system > blacklisted_sites[/b]
An array of specific hubs to block from this hub completely.
[b]system > ignore_imagick[/b]
@@ -132,7 +133,45 @@ This document assumes you're an administrator.
How long to cache photos, in seconds. Default is 86400 (1 day).
Longer time increases performance, but it also means it takes longer for changed permissions to apply.
[b]system > poco_rating_enable[/b]
- Distributed reputation reporting and data collection may be disabled. If your site does not participate in distributed reputation you will also not be able to make use of the data from your connections on other sites. By default and in the absence of any setting it is enabled. Individual members can opt out by restricting who can see their connections or by not providing any reputation information for their connections.
+ Distributed reputation reporting and data collection may be disabled. If your site does not participate in distributed reputation you will also not be able to make use of the data from your connections on other sites. By default and in the absence of any setting it is enabled. Individual members can opt out by restricting who can see their connections or by not providing any reputation information for their connections.
+ [b]system > register_link[/b]
+ path to direct to from the "register" link on the login form. On closed sites this will direct to 'pubsites'. For open sites it will normally redirect to 'register' but you may change this to a custom site page offering subscriptions or whatever.
+ [b]system > max_import_size[/b]
+ If configured, the maximum length of an imported text message. This is normally left at 200Kbytes or more to accomodate Friendica private photos, which are embedded.
+ [b]system > tempdir[/b]
+ Place to store temporary files, default is defined in the PHP configuration
+ [b]system > uploaddir[/b]
+ Location to upload files (default is system.tempdir)
+ [b]system > disable_discover_tab[/b]
+ This allows you to completely disable the ability to discover public content from external sites.
+ [b]system > sys_expire_days[/b]
+ How many days to keep discovered public content from other sites
+ [b]system > openssl_encrypt[/b]
+ Use openssl encryption engine, default is false (uses mcrypt for AES encryption)
+ [b]system > max_tagged_forums[/b]
+ Spam prevention. Limits the number of tagged forums which are recognised in any post. Default is 2. Only the first 'n' tags will be delivered as forums, the others will not cause any delivery.
+ [b]system > openssl_conf_file[/b]
+ Needed in some Windows installations to locate the openssl configuration file on the system.
+
+
+[b]Directory config[/b]
+[b]Directory search defaults[/b]
+ [b]directory > safemode[/b]
+ 0 or 1.
+ [b]directory > globaldir[/b]
+ 0 or 1. Default 0. If you visit the directory on a site you'll just see the members of that site by default. You have to go through an extra step to see the people in the rest of the network; and by doing so there's a clear delineation that these people *aren't* members of that site but of a larger network.
+ [b]directory > pubforums[/b]
+ 0 or 1. Public forums *should* be default 0.
+[b]Directory server configuration (see [zrl=[baseurl]/help/directories]help/directories[/zrl])[/b]
+ [b]system > directory_server[/b]
+ [b]system > directory_primary[/b]
+ [b]system > directory_realm[/b]
+ [b]system > realm_token[/b]
+ [b]system > directory_mode[/b]
+
+
+
+
#include doc/macros/main_footer.bb;
diff --git a/doc/history.md b/doc/history.md
index 40bfaeb74..7360c6b22 100644
--- a/doc/history.md
+++ b/doc/history.md
@@ -1,7 +1,7 @@
-Redmatrix History
-=================
+Hubzilla History
+================
-Redmatrix is a collaborative effort by the Redmatrix community and based on work introduced in Friendica by the Friendica community. The core design, the project mission, and software base itself were created/written primarily by Mike Macgirvin and represent the culmination of over a decade of software design using variations of this platform and an evolving vision of the role of communication software in our lives. Many others have contributed to this work, both conceptually and in terms of actual code (way too many to list individually).
+Hubzilla is a community developed open source project based on work introduced in Friendica by the Friendica community and which previously was named Redmatrix. The core design, the project mission, and software base itself were created/written primarily by Mike Macgirvin and represent the culmination of over a decade of software design using variations of this platform and an evolving vision of the role of communication software in our lives. Many others have contributed to this work, both conceptually and in terms of actual code (far too many to list individually).
##Mike Macgirvin -- Biography
@@ -10,9 +10,9 @@ Mike Macgirvin is an American software engineer now living in Australia. He spen
During a layoff round, Mike was let go from America Online in August 2001 and purchased a music store in Mountain View, California later to be known as "Sonica Music Company". Opening a retail store for non-essential goods at the beginning of a prolonged economic downturn was in retrospect probably not the wisest career move. Sonica eventually folded; in late 2006. Mike returned to working on software and systems support full-time and was employed briefly at Symantec before moving to Australia in early 2007. He currently lives on a farm "out in the middle of nowhere" and is employed as a Computer Systems Officer at the University of Wollongong.
-##Redmatrix - The Early Years
+##Hubzilla - The Early Years
-The software which went into creating Redmatrix has been through three distinct historical phases. It began in 2003 when Mike Macgirvin was looking for a content management system to power the website for his music store and found the available solutions to be lacking in various respects. The project was born as the "PurpleHaze weblog" under the nom de plume "Nerdware Communications". It was a multi-user PHP/MySQL CMS which provided blogs, forums, photo albums, events and more. Initially it provided the basis for a social community and shopping for customers of the store, but was also linked to Mike's personal weblog running on another domain. The distinguishing characteristic of this software was the ability for so-called "normal users" to re-assemble the components and choose different content feeds - and in essence create their own personal "multi-user CMS" as a view. Their custom view was able to communicate with anybody else that used the system, but could be partitioned so that adult sites and motorcycle enthusiast sites would not be visible to each other and not clash (or in this case Mike's personal website and the music store website). This software was developed primarily from 2003 until 2008.
+The software which went into creating Hubzilla has been through several distinct historical phases. It began in 2003 when Mike Macgirvin was looking for a content management system to power the website for his music store and found the available solutions to be lacking in various respects. The project was born as the "PurpleHaze weblog" under the nom de plume "Nerdware Communications". It was a multi-user PHP/MySQL CMS which provided blogs, forums, photo albums, events and more. Initially it provided the basis for a social community and shopping for customers of the store, but was also linked to Mike's personal weblog running on another domain. The distinguishing characteristic of this software was the ability for so-called "normal users" to re-assemble the components and choose different content feeds - and in essence create their own personal "multi-user CMS" as a view. Their custom view was able to communicate with anybody else that used the system, but could be partitioned so that adult sites and motorcycle enthusiast sites would not be visible to each other and not clash (or in this case Mike's personal website and the music store website). This software was developed primarily from 2003 until 2008.
In 2006 this software was used as the prototype for Symantec's "safeweb" reputation and community site. It was developed and enhanced until about 2008. A rewrite took place in 2008 named "Reflection" but work stagnated as the community dwindled. The need for content management systems and communications software dropped dramatically during this time as humans flocked to the new social aggregrators - Facebook and Twitter.
@@ -44,6 +44,13 @@ The concept of identity-aware content was alien to anything that existed previou
Over time a few federation components re-emerged. The ability to view RSS feeds was important to many people. Diaspora never really managed to re-write their protocol, so that was re-implemented and allowed Redmatrix to connect with Diaspora and Friendica again (Friendica still had their Diaspora protocol intact, so this was the most common language now remaining on the free web - despite its faults). Diaspora communications aren't able to make use of the advanced identity features, but they work for basic communications.
-Mike stepped down as active coordinator for the project in early 2015.
+
+##Hubzilla
+
+The Redmatrix project reached a point of stagnation in early 2015 as network growth leveled and active interest in the project declined. Mike met with several external high tech developers and innovators in a round of discussions that were called "Zotopia" in early 2015 to perform an independent review of the project and try to identify what had gone wrong and plan a route forward. The basic consensus is that the project suffered from bad marketing decisions which were compounded by mixed messages about the project goals and target audience. A "rival" project (Diaspora) was marketing itself as a Facebook competitor, but after some long discussions it was determined that Redmatrix wasn't a Facebook competitor at all, and too much emphasis was being placed on the "social network" and "anti-Facebook" features. It was a novel decentralisation platform with distributed identity and permissions, and as was pointed out, the "end user" was the wrong target market. These marketing mistakes were now identified with the project name and random sampling of various "customers" showed that none of them really had a clue about the software goals or target market segment. The mixed messages were associated with the brand identity and this was a problem.
+
+The Redmatrix community held a vote and the project was renamed "Hubzilla", with a renewed identity and focus - to provide software for creating and ultimately linking together unrelated community websites or "hubs" into a global community. This is in fact what we were building all along, but didn't fully recognise it. The target audience for this software as it turns out is not the members or end users, but software integrators and digital community architects and builders. These in turn will be responsible for marketing their own product (their respective online communities) to end-users or members. The software solves a real world need of linking isolated and "walled garden" community sites together into a larger cooperative. The transition from Redmatrix to Hubzilla was complex and has taken several months as we consolidated the marketing and media assets to deliver a consistent message. It is still ongoing at this time, and should be completed in Q4 2015.
+
+Mike stepped down as active coordinator for the project in early 2015 and turned management over to the community. He remains active as a Hubzilla developer.
#include doc/macros/main_footer.bb;
diff --git a/doc/hook/about_hook.bb b/doc/hook/about_hook.bb
new file mode 100644
index 000000000..22b60d786
--- /dev/null
+++ b/doc/hook/about_hook.bb
@@ -0,0 +1 @@
+[h2]about_hook[/h2]
diff --git a/doc/hook/accept_follow.bb b/doc/hook/accept_follow.bb
new file mode 100644
index 000000000..e8b1ed0c4
--- /dev/null
+++ b/doc/hook/accept_follow.bb
@@ -0,0 +1 @@
+[h2]accept_follow[/h2]
diff --git a/doc/hook/account_downgrade.bb b/doc/hook/account_downgrade.bb
new file mode 100644
index 000000000..63bae0a58
--- /dev/null
+++ b/doc/hook/account_downgrade.bb
@@ -0,0 +1 @@
+[h2]account_downgrade[/h2]
diff --git a/doc/hook/account_settings.bb b/doc/hook/account_settings.bb
new file mode 100644
index 000000000..91b3a8385
--- /dev/null
+++ b/doc/hook/account_settings.bb
@@ -0,0 +1 @@
+[h2]account_settings[/h2]
diff --git a/doc/hook/account_settings_post.bb b/doc/hook/account_settings_post.bb
new file mode 100644
index 000000000..bbd7a57a8
--- /dev/null
+++ b/doc/hook/account_settings_post.bb
@@ -0,0 +1 @@
+[h2]account_settings_post[/h2]
diff --git a/doc/hook/activity_received.bb b/doc/hook/activity_received.bb
new file mode 100644
index 000000000..2e9d68bf3
--- /dev/null
+++ b/doc/hook/activity_received.bb
@@ -0,0 +1 @@
+[h2]activity_received[/h2]
diff --git a/doc/hook/affinity_labels.bb b/doc/hook/affinity_labels.bb
new file mode 100644
index 000000000..7234b7632
--- /dev/null
+++ b/doc/hook/affinity_labels.bb
@@ -0,0 +1 @@
+[h2]affinity_labels[/h2]
diff --git a/doc/hook/api_perm_is_allowed.bb b/doc/hook/api_perm_is_allowed.bb
new file mode 100644
index 000000000..862cbd653
--- /dev/null
+++ b/doc/hook/api_perm_is_allowed.bb
@@ -0,0 +1 @@
+[h2]api_perm_is_allowed[/h2]
diff --git a/doc/hook/app_menu.bb b/doc/hook/app_menu.bb
new file mode 100644
index 000000000..0458a692a
--- /dev/null
+++ b/doc/hook/app_menu.bb
@@ -0,0 +1 @@
+[h2]app_menu[/h2]
diff --git a/doc/hook/atom_author.bb b/doc/hook/atom_author.bb
new file mode 100644
index 000000000..c9d05a593
--- /dev/null
+++ b/doc/hook/atom_author.bb
@@ -0,0 +1 @@
+[h2]atom_author[/h2]
diff --git a/doc/hook/atom_entry.bb b/doc/hook/atom_entry.bb
new file mode 100644
index 000000000..0aec89f16
--- /dev/null
+++ b/doc/hook/atom_entry.bb
@@ -0,0 +1 @@
+[h2]atom_entry[/h2]
diff --git a/doc/hook/atom_feed.bb b/doc/hook/atom_feed.bb
new file mode 100644
index 000000000..69775ca5e
--- /dev/null
+++ b/doc/hook/atom_feed.bb
@@ -0,0 +1 @@
+[h2]atom_feed[/h2]
diff --git a/doc/hook/atom_feed_end.bb b/doc/hook/atom_feed_end.bb
new file mode 100644
index 000000000..4f019fc8f
--- /dev/null
+++ b/doc/hook/atom_feed_end.bb
@@ -0,0 +1 @@
+[h2]atom_feed_end[/h2]
diff --git a/doc/hook/attach_upload_file.bb b/doc/hook/attach_upload_file.bb
new file mode 100644
index 000000000..1f8056caa
--- /dev/null
+++ b/doc/hook/attach_upload_file.bb
@@ -0,0 +1 @@
+[h2]attach_upload_file[/h2]
diff --git a/doc/hook/authenticate.bb b/doc/hook/authenticate.bb
new file mode 100644
index 000000000..eb8071e73
--- /dev/null
+++ b/doc/hook/authenticate.bb
@@ -0,0 +1,29 @@
+[h2]authenticate[/h2]
+
+Invoked when a POST request is made with non-null $_POST['auth-params'] such as from the login form.
+If the hook handler does not set the 'authenticated' parameter of the passed array, normal login functions continue;
+
+The 'user_record' is in fact an account DB record. To provide automatic provisioning of accounts from other authentication realms, this record should be generated and stored during the verification phase.
+
+
+[code]
+ $addon_auth = array(
+ 'username' => trim($_POST['username']),
+ 'password' => trim($_POST['password']),
+ 'authenticated' => 0,
+ 'user_record' => null
+ );
+
+ /**
+ *
+ * A plugin indicates successful login by setting 'authenticated' to non-zero value and returning a user record
+ * Plugins should never set 'authenticated' except to indicate success - as hooks may be chained
+ * and later plugins should not interfere with an earlier one that succeeded.
+ *
+ */
+
+ call_hooks('authenticate', $addon_auth);
+[/code]
+
+
+See include/auth.php
diff --git a/doc/hook/avatar_lookup.bb b/doc/hook/avatar_lookup.bb
new file mode 100644
index 000000000..abd84de5e
--- /dev/null
+++ b/doc/hook/avatar_lookup.bb
@@ -0,0 +1 @@
+[h2]avatar_lookup[/h2]
diff --git a/doc/hook/bb2diaspora.bb b/doc/hook/bb2diaspora.bb
new file mode 100644
index 000000000..c28f1883e
--- /dev/null
+++ b/doc/hook/bb2diaspora.bb
@@ -0,0 +1 @@
+[h2]bb2diaspora[/h2]
diff --git a/doc/hook/bbcode.bb b/doc/hook/bbcode.bb
new file mode 100644
index 000000000..2996a8528
--- /dev/null
+++ b/doc/hook/bbcode.bb
@@ -0,0 +1 @@
+[h2]bbcode[/h2]
diff --git a/doc/hook/channel_remove.bb b/doc/hook/channel_remove.bb
new file mode 100644
index 000000000..db9e9dd82
--- /dev/null
+++ b/doc/hook/channel_remove.bb
@@ -0,0 +1 @@
+[h2]channel_remove[/h2]
diff --git a/doc/hook/chat_message.bb b/doc/hook/chat_message.bb
new file mode 100644
index 000000000..ccc93bb2c
--- /dev/null
+++ b/doc/hook/chat_message.bb
@@ -0,0 +1 @@
+[h2]chat_message[/h2]
diff --git a/doc/hook/chat_post.bb b/doc/hook/chat_post.bb
new file mode 100644
index 000000000..7cb3c9fa1
--- /dev/null
+++ b/doc/hook/chat_post.bb
@@ -0,0 +1 @@
+[h2]chat_post[/h2]
diff --git a/doc/hook/check_account_email.bb b/doc/hook/check_account_email.bb
new file mode 100644
index 000000000..b309706a0
--- /dev/null
+++ b/doc/hook/check_account_email.bb
@@ -0,0 +1 @@
+[h2]check_account_email[/h2]
diff --git a/doc/hook/check_account_invite.bb b/doc/hook/check_account_invite.bb
new file mode 100644
index 000000000..8d4a40522
--- /dev/null
+++ b/doc/hook/check_account_invite.bb
@@ -0,0 +1 @@
+[h2]check_account_invite[/h2]
diff --git a/doc/hook/check_account_password.bb b/doc/hook/check_account_password.bb
new file mode 100644
index 000000000..53562ec6e
--- /dev/null
+++ b/doc/hook/check_account_password.bb
@@ -0,0 +1 @@
+[h2]check_account_password[/h2]
diff --git a/doc/hook/connect_premium.bb b/doc/hook/connect_premium.bb
new file mode 100644
index 000000000..ae3aafc66
--- /dev/null
+++ b/doc/hook/connect_premium.bb
@@ -0,0 +1 @@
+[h2]connect_premium[/h2]
diff --git a/doc/hook/connector_settings.bb b/doc/hook/connector_settings.bb
new file mode 100644
index 000000000..9b59c49da
--- /dev/null
+++ b/doc/hook/connector_settings.bb
@@ -0,0 +1 @@
+[h2]connector_settings[/h2]
diff --git a/doc/hook/construct_page.bb b/doc/hook/construct_page.bb
new file mode 100644
index 000000000..700d9256f
--- /dev/null
+++ b/doc/hook/construct_page.bb
@@ -0,0 +1 @@
+[h2]construct_page[/h2]
diff --git a/doc/hook/contact_block_end.bb b/doc/hook/contact_block_end.bb
new file mode 100644
index 000000000..30a7d2d76
--- /dev/null
+++ b/doc/hook/contact_block_end.bb
@@ -0,0 +1 @@
+[h2]contact_block_end[/h2]
diff --git a/doc/hook/contact_edit.bb b/doc/hook/contact_edit.bb
new file mode 100644
index 000000000..5fd31fb1d
--- /dev/null
+++ b/doc/hook/contact_edit.bb
@@ -0,0 +1 @@
+[h2]contact_edit[/h2]
diff --git a/doc/hook/contact_edit_post.bb b/doc/hook/contact_edit_post.bb
new file mode 100644
index 000000000..bc736f8b8
--- /dev/null
+++ b/doc/hook/contact_edit_post.bb
@@ -0,0 +1 @@
+[h2]contact_edit_post[/h2]
diff --git a/doc/hook/contact_select_options.bb b/doc/hook/contact_select_options.bb
new file mode 100644
index 000000000..65f9154ff
--- /dev/null
+++ b/doc/hook/contact_select_options.bb
@@ -0,0 +1 @@
+[h2]contact_select_options[/h2]
diff --git a/doc/hook/conversation_start.bb b/doc/hook/conversation_start.bb
new file mode 100644
index 000000000..7208c8d8f
--- /dev/null
+++ b/doc/hook/conversation_start.bb
@@ -0,0 +1 @@
+[h2]conversation_start[/h2]
diff --git a/doc/hook/create_identity.bb b/doc/hook/create_identity.bb
new file mode 100644
index 000000000..5c1da2d43
--- /dev/null
+++ b/doc/hook/create_identity.bb
@@ -0,0 +1 @@
+[h2]create_identity[/h2]
diff --git a/doc/hook/cron.bb b/doc/hook/cron.bb
new file mode 100644
index 000000000..ebbb64d50
--- /dev/null
+++ b/doc/hook/cron.bb
@@ -0,0 +1 @@
+[h2]cron[/h2]
diff --git a/doc/hook/cron_daily.bb b/doc/hook/cron_daily.bb
new file mode 100644
index 000000000..c5062330a
--- /dev/null
+++ b/doc/hook/cron_daily.bb
@@ -0,0 +1 @@
+[h2]cron_daily[/h2]
diff --git a/doc/hook/cron_weekly.bb b/doc/hook/cron_weekly.bb
new file mode 100644
index 000000000..8dc85e494
--- /dev/null
+++ b/doc/hook/cron_weekly.bb
@@ -0,0 +1 @@
+[h2]cron_weekly[/h2]
diff --git a/doc/hook/directory_item.bb b/doc/hook/directory_item.bb
new file mode 100644
index 000000000..cb710e0b4
--- /dev/null
+++ b/doc/hook/directory_item.bb
@@ -0,0 +1 @@
+[h2]directory_item[/h2]
diff --git a/doc/hook/discover_by_webbie.bb b/doc/hook/discover_by_webbie.bb
new file mode 100644
index 000000000..f9228932e
--- /dev/null
+++ b/doc/hook/discover_by_webbie.bb
@@ -0,0 +1 @@
+[h2]discover_by_webbie[/h2]
diff --git a/doc/hook/display_item.bb b/doc/hook/display_item.bb
new file mode 100644
index 000000000..a6bfd621d
--- /dev/null
+++ b/doc/hook/display_item.bb
@@ -0,0 +1 @@
+[h2]display_item[/h2]
diff --git a/doc/hook/display_settings.bb b/doc/hook/display_settings.bb
new file mode 100644
index 000000000..1f1e0b491
--- /dev/null
+++ b/doc/hook/display_settings.bb
@@ -0,0 +1 @@
+[h2]display_settings[/h2]
diff --git a/doc/hook/display_settings_post.bb b/doc/hook/display_settings_post.bb
new file mode 100644
index 000000000..d3bb39359
--- /dev/null
+++ b/doc/hook/display_settings_post.bb
@@ -0,0 +1 @@
+[h2]display_settings_post[/h2]
diff --git a/doc/hook/donate_contributors.bb b/doc/hook/donate_contributors.bb
new file mode 100644
index 000000000..f97c77efa
--- /dev/null
+++ b/doc/hook/donate_contributors.bb
@@ -0,0 +1 @@
+[h2]donate_contributors[/h2]
diff --git a/doc/hook/donate_plugin.bb b/doc/hook/donate_plugin.bb
new file mode 100644
index 000000000..db4a6f113
--- /dev/null
+++ b/doc/hook/donate_plugin.bb
@@ -0,0 +1 @@
+[h2]donate_plugin[/h2]
diff --git a/doc/hook/donate_sponsors.bb b/doc/hook/donate_sponsors.bb
new file mode 100644
index 000000000..3abd46d42
--- /dev/null
+++ b/doc/hook/donate_sponsors.bb
@@ -0,0 +1 @@
+[h2]donate_sponsors[/h2]
diff --git a/doc/hook/dreport_is_storable.bb b/doc/hook/dreport_is_storable.bb
new file mode 100644
index 000000000..9ca99b896
--- /dev/null
+++ b/doc/hook/dreport_is_storable.bb
@@ -0,0 +1 @@
+[h2]dreport_is_storable[/h2]
diff --git a/doc/hook/drop_item.bb b/doc/hook/drop_item.bb
new file mode 100644
index 000000000..35bb80f82
--- /dev/null
+++ b/doc/hook/drop_item.bb
@@ -0,0 +1 @@
+[h2]drop_item[/h2]
diff --git a/doc/hook/enotify.bb b/doc/hook/enotify.bb
new file mode 100644
index 000000000..703a3ffa0
--- /dev/null
+++ b/doc/hook/enotify.bb
@@ -0,0 +1 @@
+[h2]enotify[/h2]
diff --git a/doc/hook/enotify_mail.bb b/doc/hook/enotify_mail.bb
new file mode 100644
index 000000000..adeb8bd30
--- /dev/null
+++ b/doc/hook/enotify_mail.bb
@@ -0,0 +1 @@
+[h2]enotify_mail[/h2]
diff --git a/doc/hook/enotify_store.bb b/doc/hook/enotify_store.bb
new file mode 100644
index 000000000..dc44cc320
--- /dev/null
+++ b/doc/hook/enotify_store.bb
@@ -0,0 +1 @@
+[h2]enotify_store[/h2]
diff --git a/doc/hook/event_created.bb b/doc/hook/event_created.bb
new file mode 100644
index 000000000..222602e77
--- /dev/null
+++ b/doc/hook/event_created.bb
@@ -0,0 +1 @@
+[h2]event_created[/h2]
diff --git a/doc/hook/event_updated.bb b/doc/hook/event_updated.bb
new file mode 100644
index 000000000..69e3c72c1
--- /dev/null
+++ b/doc/hook/event_updated.bb
@@ -0,0 +1 @@
+[h2]event_updated[/h2]
diff --git a/doc/hook/externals_url_select.bb b/doc/hook/externals_url_select.bb
new file mode 100644
index 000000000..a542dcb29
--- /dev/null
+++ b/doc/hook/externals_url_select.bb
@@ -0,0 +1 @@
+[h2]externals_url_select[/h2]
diff --git a/doc/hook/feature_enabled.bb b/doc/hook/feature_enabled.bb
new file mode 100644
index 000000000..5630cc768
--- /dev/null
+++ b/doc/hook/feature_enabled.bb
@@ -0,0 +1 @@
+[h2]feature_enabled[/h2]
diff --git a/doc/hook/feature_settings.bb b/doc/hook/feature_settings.bb
new file mode 100644
index 000000000..d1691eb38
--- /dev/null
+++ b/doc/hook/feature_settings.bb
@@ -0,0 +1 @@
+[h2]feature_settings[/h2]
diff --git a/doc/hook/feature_settings_post.bb b/doc/hook/feature_settings_post.bb
new file mode 100644
index 000000000..eecf941ff
--- /dev/null
+++ b/doc/hook/feature_settings_post.bb
@@ -0,0 +1 @@
+[h2]feature_settings_post[/h2]
diff --git a/doc/hook/follow.bb b/doc/hook/follow.bb
new file mode 100644
index 000000000..a97632b06
--- /dev/null
+++ b/doc/hook/follow.bb
@@ -0,0 +1 @@
+[h2]follow[/h2]
diff --git a/doc/hook/follow_allow.bb b/doc/hook/follow_allow.bb
new file mode 100644
index 000000000..fdab1865c
--- /dev/null
+++ b/doc/hook/follow_allow.bb
@@ -0,0 +1 @@
+[h2]follow_allow[/h2]
diff --git a/doc/hook/gender_selector.bb b/doc/hook/gender_selector.bb
new file mode 100644
index 000000000..0b56b5c9b
--- /dev/null
+++ b/doc/hook/gender_selector.bb
@@ -0,0 +1 @@
+[h2]gender_selector[/h2]
diff --git a/doc/hook/gender_selector_min.bb b/doc/hook/gender_selector_min.bb
new file mode 100644
index 000000000..9d143855a
--- /dev/null
+++ b/doc/hook/gender_selector_min.bb
@@ -0,0 +1 @@
+[h2]gender_selector_min[/h2]
diff --git a/doc/hook/generate_map.bb b/doc/hook/generate_map.bb
new file mode 100644
index 000000000..33672d552
--- /dev/null
+++ b/doc/hook/generate_map.bb
@@ -0,0 +1 @@
+[h2]generate_map[/h2]
diff --git a/doc/hook/generate_named_map.bb b/doc/hook/generate_named_map.bb
new file mode 100644
index 000000000..5bacb846d
--- /dev/null
+++ b/doc/hook/generate_named_map.bb
@@ -0,0 +1 @@
+[h2]generate_named_map[/h2]
diff --git a/doc/hook/get_all_api_perms.bb b/doc/hook/get_all_api_perms.bb
new file mode 100644
index 000000000..eb41f8a02
--- /dev/null
+++ b/doc/hook/get_all_api_perms.bb
@@ -0,0 +1 @@
+[h2]get_all_api_perms[/h2]
diff --git a/doc/hook/get_all_perms.bb b/doc/hook/get_all_perms.bb
new file mode 100644
index 000000000..149f8c78c
--- /dev/null
+++ b/doc/hook/get_all_perms.bb
@@ -0,0 +1 @@
+[h2]get_all_perms[/h2]
diff --git a/doc/hook/get_features.bb b/doc/hook/get_features.bb
new file mode 100644
index 000000000..66e81f13c
--- /dev/null
+++ b/doc/hook/get_features.bb
@@ -0,0 +1 @@
+[h2]get_features[/h2]
diff --git a/doc/hook/get_role_perms.bb b/doc/hook/get_role_perms.bb
new file mode 100644
index 000000000..87830f8e3
--- /dev/null
+++ b/doc/hook/get_role_perms.bb
@@ -0,0 +1 @@
+[h2]get_role_perms[/h2]
diff --git a/doc/hook/get_widgets.bb b/doc/hook/get_widgets.bb
new file mode 100644
index 000000000..54b43858a
--- /dev/null
+++ b/doc/hook/get_widgets.bb
@@ -0,0 +1 @@
+[h2]get_widgets[/h2]
diff --git a/doc/hook/global_permissions.bb b/doc/hook/global_permissions.bb
new file mode 100644
index 000000000..fe998ee9c
--- /dev/null
+++ b/doc/hook/global_permissions.bb
@@ -0,0 +1 @@
+[h2]global_permissions[/h2]
diff --git a/doc/hook/home_content.bb b/doc/hook/home_content.bb
new file mode 100644
index 000000000..7f32b3547
--- /dev/null
+++ b/doc/hook/home_content.bb
@@ -0,0 +1 @@
+[h2]home_content[/h2]
diff --git a/doc/hook/home_init.bb b/doc/hook/home_init.bb
new file mode 100644
index 000000000..25dd72792
--- /dev/null
+++ b/doc/hook/home_init.bb
@@ -0,0 +1 @@
+[h2]home_init[/h2]
diff --git a/doc/hook/hostxrd.bb b/doc/hook/hostxrd.bb
new file mode 100644
index 000000000..2b67320cf
--- /dev/null
+++ b/doc/hook/hostxrd.bb
@@ -0,0 +1 @@
+[h2]hostxrd[/h2]
diff --git a/doc/hook/html2bbcode.bb b/doc/hook/html2bbcode.bb
new file mode 100644
index 000000000..3061f05f0
--- /dev/null
+++ b/doc/hook/html2bbcode.bb
@@ -0,0 +1 @@
+[h2]html2bbcode[/h2]
diff --git a/doc/hook/identity_basic_export.bb b/doc/hook/identity_basic_export.bb
new file mode 100644
index 000000000..3f4e88799
--- /dev/null
+++ b/doc/hook/identity_basic_export.bb
@@ -0,0 +1 @@
+[h2]identity_basic_export[/h2]
diff --git a/doc/hook/import_author_xchan.bb b/doc/hook/import_author_xchan.bb
new file mode 100644
index 000000000..e2340469d
--- /dev/null
+++ b/doc/hook/import_author_xchan.bb
@@ -0,0 +1 @@
+[h2]import_author_xchan[/h2]
diff --git a/doc/hook/import_channel.bb b/doc/hook/import_channel.bb
new file mode 100644
index 000000000..b220b7415
--- /dev/null
+++ b/doc/hook/import_channel.bb
@@ -0,0 +1 @@
+[h2]import_channel[/h2]
diff --git a/doc/hook/import_directory_profile.bb b/doc/hook/import_directory_profile.bb
new file mode 100644
index 000000000..e2fac59bc
--- /dev/null
+++ b/doc/hook/import_directory_profile.bb
@@ -0,0 +1 @@
+[h2]import_directory_profile[/h2]
diff --git a/doc/hook/import_xchan.bb b/doc/hook/import_xchan.bb
new file mode 100644
index 000000000..40e0783ce
--- /dev/null
+++ b/doc/hook/import_xchan.bb
@@ -0,0 +1 @@
+[h2]import_xchan[/h2]
diff --git a/doc/hook/item_photo_menu.bb b/doc/hook/item_photo_menu.bb
new file mode 100644
index 000000000..8f9860a90
--- /dev/null
+++ b/doc/hook/item_photo_menu.bb
@@ -0,0 +1 @@
+[h2]item_photo_menu[/h2]
diff --git a/doc/hook/item_store.bb b/doc/hook/item_store.bb
new file mode 100644
index 000000000..5d49b725c
--- /dev/null
+++ b/doc/hook/item_store.bb
@@ -0,0 +1 @@
+[h2]item_store[/h2]
diff --git a/doc/hook/item_store_update.bb b/doc/hook/item_store_update.bb
new file mode 100644
index 000000000..a7c58939a
--- /dev/null
+++ b/doc/hook/item_store_update.bb
@@ -0,0 +1 @@
+[h2]item_store_update[/h2]
diff --git a/doc/hook/item_translate.bb b/doc/hook/item_translate.bb
new file mode 100644
index 000000000..695494b9c
--- /dev/null
+++ b/doc/hook/item_translate.bb
@@ -0,0 +1 @@
+[h2]item_translate[/h2]
diff --git a/doc/hook/jot_networks.bb b/doc/hook/jot_networks.bb
new file mode 100644
index 000000000..4c1629ba7
--- /dev/null
+++ b/doc/hook/jot_networks.bb
@@ -0,0 +1 @@
+[h2]jot_networks[/h2]
diff --git a/doc/hook/jot_tool.bb b/doc/hook/jot_tool.bb
new file mode 100644
index 000000000..22ba9701e
--- /dev/null
+++ b/doc/hook/jot_tool.bb
@@ -0,0 +1 @@
+[h2]jot_tool[/h2]
diff --git a/doc/hook/load_pdl.bb b/doc/hook/load_pdl.bb
new file mode 100644
index 000000000..149a3e766
--- /dev/null
+++ b/doc/hook/load_pdl.bb
@@ -0,0 +1 @@
+[h2]load_pdl[/h2]
diff --git a/doc/hook/local_dir_update.bb b/doc/hook/local_dir_update.bb
new file mode 100644
index 000000000..d0b0f8ac1
--- /dev/null
+++ b/doc/hook/local_dir_update.bb
@@ -0,0 +1 @@
+[h2]local_dir_update[/h2]
diff --git a/doc/hook/logged_in.bb b/doc/hook/logged_in.bb
new file mode 100644
index 000000000..b01041576
--- /dev/null
+++ b/doc/hook/logged_in.bb
@@ -0,0 +1 @@
+[h2]logged_in[/h2]
diff --git a/doc/hook/logging_out.bb b/doc/hook/logging_out.bb
new file mode 100644
index 000000000..d47b9f1df
--- /dev/null
+++ b/doc/hook/logging_out.bb
@@ -0,0 +1 @@
+[h2]logging_out[/h2]
diff --git a/doc/hook/login_hook.bb b/doc/hook/login_hook.bb
new file mode 100644
index 000000000..156a0afcd
--- /dev/null
+++ b/doc/hook/login_hook.bb
@@ -0,0 +1 @@
+[h2]login_hook[/h2]
diff --git a/doc/hook/magic_auth.bb b/doc/hook/magic_auth.bb
new file mode 100644
index 000000000..80d6edb27
--- /dev/null
+++ b/doc/hook/magic_auth.bb
@@ -0,0 +1 @@
+[h2]magic_auth[/h2]
diff --git a/doc/hook/magic_auth_openid_success.bb b/doc/hook/magic_auth_openid_success.bb
new file mode 100644
index 000000000..810f2e06d
--- /dev/null
+++ b/doc/hook/magic_auth_openid_success.bb
@@ -0,0 +1 @@
+[h2]magic_auth_openid_success[/h2]
diff --git a/doc/hook/magic_auth_success.bb b/doc/hook/magic_auth_success.bb
new file mode 100644
index 000000000..d795e43e5
--- /dev/null
+++ b/doc/hook/magic_auth_success.bb
@@ -0,0 +1 @@
+[h2]magic_auth_success[/h2]
diff --git a/doc/hook/main_slider.bb b/doc/hook/main_slider.bb
new file mode 100644
index 000000000..a63c2170a
--- /dev/null
+++ b/doc/hook/main_slider.bb
@@ -0,0 +1 @@
+[h2]main_slider[/h2]
diff --git a/doc/hook/marital_selector.bb b/doc/hook/marital_selector.bb
new file mode 100644
index 000000000..0f76c3f5a
--- /dev/null
+++ b/doc/hook/marital_selector.bb
@@ -0,0 +1 @@
+[h2]marital_selector[/h2]
diff --git a/doc/hook/marital_selector_min.bb b/doc/hook/marital_selector_min.bb
new file mode 100644
index 000000000..f02d21f20
--- /dev/null
+++ b/doc/hook/marital_selector_min.bb
@@ -0,0 +1 @@
+[h2]marital_selector_min[/h2]
diff --git a/doc/hook/module_loaded.bb b/doc/hook/module_loaded.bb
new file mode 100644
index 000000000..cb0d2302d
--- /dev/null
+++ b/doc/hook/module_loaded.bb
@@ -0,0 +1 @@
+[h2]module_loaded[/h2]
diff --git a/doc/hook/module_mod_aftercontent.bb b/doc/hook/module_mod_aftercontent.bb
new file mode 100644
index 000000000..5d48435b8
--- /dev/null
+++ b/doc/hook/module_mod_aftercontent.bb
@@ -0,0 +1,12 @@
+[h2]module_mod_aftercontent[/h2]
+
+
+
+The hook data for this call consists of an array
+
+ $arr['content']
+
+This element contains the HTML content which was prepared for this page by calling the module_content() function. It is invoked after the content has been created. It does not contain the result of AJAX or asynchronous page load calls.
+
+ The current module may be determined by lookin at $a->module
+
diff --git a/doc/hook/module_mod_content.bb b/doc/hook/module_mod_content.bb
new file mode 100644
index 000000000..39f5743b1
--- /dev/null
+++ b/doc/hook/module_mod_content.bb
@@ -0,0 +1,10 @@
+[h2]module_mod_content[/h2]
+
+The hook data for this call consists of an array
+
+ $arr['content']
+
+This element contains the HTML content before calling the module_content() function. It is invoked before the content region has been populated. This may or may not be empty as there may be other processes or addons generating content prior to your hook handler is run. Be certain to preserve any current content. Typically anything you add here will be placed at the top of the content region of the page, but in any event prior to the main content region being generated.
+
+ The current module may be determined by lookin at $a->module
+
diff --git a/doc/hook/module_mod_init.bb b/doc/hook/module_mod_init.bb
new file mode 100644
index 000000000..52fe5a616
--- /dev/null
+++ b/doc/hook/module_mod_init.bb
@@ -0,0 +1 @@
+[h2]module_mod_init[/h2]
diff --git a/doc/hook/module_mod_post.bb b/doc/hook/module_mod_post.bb
new file mode 100644
index 000000000..3adb0e737
--- /dev/null
+++ b/doc/hook/module_mod_post.bb
@@ -0,0 +1 @@
+[h2]module_mod_post[/h2]
diff --git a/doc/hook/mood_verbs.bb b/doc/hook/mood_verbs.bb
new file mode 100644
index 000000000..67fb719dd
--- /dev/null
+++ b/doc/hook/mood_verbs.bb
@@ -0,0 +1 @@
+[h2]mood_verbs[/h2]
diff --git a/doc/hook/nav.bb b/doc/hook/nav.bb
new file mode 100644
index 000000000..847573620
--- /dev/null
+++ b/doc/hook/nav.bb
@@ -0,0 +1 @@
+[h2]nav[/h2]
diff --git a/doc/hook/network_content_init.bb b/doc/hook/network_content_init.bb
new file mode 100644
index 000000000..224da393a
--- /dev/null
+++ b/doc/hook/network_content_init.bb
@@ -0,0 +1 @@
+[h2]network_content_init[/h2]
diff --git a/doc/hook/network_ping.bb b/doc/hook/network_ping.bb
new file mode 100644
index 000000000..78deefe78
--- /dev/null
+++ b/doc/hook/network_ping.bb
@@ -0,0 +1 @@
+[h2]network_ping[/h2]
diff --git a/doc/hook/network_tabs.bb b/doc/hook/network_tabs.bb
new file mode 100644
index 000000000..677d7f2b9
--- /dev/null
+++ b/doc/hook/network_tabs.bb
@@ -0,0 +1 @@
+[h2]network_tabs[/h2]
diff --git a/doc/hook/network_to_name.bb b/doc/hook/network_to_name.bb
new file mode 100644
index 000000000..eea4a1841
--- /dev/null
+++ b/doc/hook/network_to_name.bb
@@ -0,0 +1 @@
+[h2]network_to_name[/h2]
diff --git a/doc/hook/notifier_end.bb b/doc/hook/notifier_end.bb
new file mode 100644
index 000000000..df9d852bd
--- /dev/null
+++ b/doc/hook/notifier_end.bb
@@ -0,0 +1 @@
+[h2]notifier_end[/h2]
diff --git a/doc/hook/notifier_hub.bb b/doc/hook/notifier_hub.bb
new file mode 100644
index 000000000..4255ce446
--- /dev/null
+++ b/doc/hook/notifier_hub.bb
@@ -0,0 +1 @@
+[h2]notifier_hub[/h2]
diff --git a/doc/hook/notifier_normal.bb b/doc/hook/notifier_normal.bb
new file mode 100644
index 000000000..0059baa47
--- /dev/null
+++ b/doc/hook/notifier_normal.bb
@@ -0,0 +1 @@
+[h2]notifier_normal[/h2]
diff --git a/doc/hook/obj_verbs.bb b/doc/hook/obj_verbs.bb
new file mode 100644
index 000000000..ca98229aa
--- /dev/null
+++ b/doc/hook/obj_verbs.bb
@@ -0,0 +1 @@
+[h2]obj_verbs[/h2]
diff --git a/doc/hook/oembed_probe.bb b/doc/hook/oembed_probe.bb
new file mode 100644
index 000000000..4f32ac267
--- /dev/null
+++ b/doc/hook/oembed_probe.bb
@@ -0,0 +1 @@
+[h2]oembed_probe[/h2]
diff --git a/doc/hook/page_content_top.bb b/doc/hook/page_content_top.bb
new file mode 100644
index 000000000..137e3abfd
--- /dev/null
+++ b/doc/hook/page_content_top.bb
@@ -0,0 +1 @@
+[h2]page_content_top[/h2]
diff --git a/doc/hook/page_end.bb b/doc/hook/page_end.bb
new file mode 100644
index 000000000..09293cf50
--- /dev/null
+++ b/doc/hook/page_end.bb
@@ -0,0 +1 @@
+[h2]page_end[/h2]
diff --git a/doc/hook/page_header.bb b/doc/hook/page_header.bb
new file mode 100644
index 000000000..ffaa791c9
--- /dev/null
+++ b/doc/hook/page_header.bb
@@ -0,0 +1 @@
+[h2]page_header[/h2]
diff --git a/doc/hook/parse_atom.bb b/doc/hook/parse_atom.bb
new file mode 100644
index 000000000..c8037317f
--- /dev/null
+++ b/doc/hook/parse_atom.bb
@@ -0,0 +1 @@
+[h2]parse_atom[/h2]
diff --git a/doc/hook/parse_link.bb b/doc/hook/parse_link.bb
new file mode 100644
index 000000000..1c328059c
--- /dev/null
+++ b/doc/hook/parse_link.bb
@@ -0,0 +1 @@
+[h2]parse_link[/h2]
diff --git a/doc/hook/pdl_selector.bb b/doc/hook/pdl_selector.bb
new file mode 100644
index 000000000..bee01c843
--- /dev/null
+++ b/doc/hook/pdl_selector.bb
@@ -0,0 +1 @@
+[h2]pdl_selector[/h2]
diff --git a/doc/hook/perm_is_allowed.bb b/doc/hook/perm_is_allowed.bb
new file mode 100644
index 000000000..aac647609
--- /dev/null
+++ b/doc/hook/perm_is_allowed.bb
@@ -0,0 +1 @@
+[h2]perm_is_allowed[/h2]
diff --git a/doc/hook/permissions_create.bb b/doc/hook/permissions_create.bb
new file mode 100644
index 000000000..22f80a80e
--- /dev/null
+++ b/doc/hook/permissions_create.bb
@@ -0,0 +1 @@
+[h2]permissions_create[/h2]
diff --git a/doc/hook/permissions_update.bb b/doc/hook/permissions_update.bb
new file mode 100644
index 000000000..40366b33d
--- /dev/null
+++ b/doc/hook/permissions_update.bb
@@ -0,0 +1 @@
+[h2]permissions_update[/h2]
diff --git a/doc/hook/personal_xrd.bb b/doc/hook/personal_xrd.bb
new file mode 100644
index 000000000..71d4bd8dd
--- /dev/null
+++ b/doc/hook/personal_xrd.bb
@@ -0,0 +1 @@
+[h2]personal_xrd[/h2]
diff --git a/doc/hook/photo_post_end.bb b/doc/hook/photo_post_end.bb
new file mode 100644
index 000000000..8a3291763
--- /dev/null
+++ b/doc/hook/photo_post_end.bb
@@ -0,0 +1 @@
+[h2]photo_post_end[/h2]
diff --git a/doc/hook/photo_upload_begin.bb b/doc/hook/photo_upload_begin.bb
new file mode 100644
index 000000000..5e441a12a
--- /dev/null
+++ b/doc/hook/photo_upload_begin.bb
@@ -0,0 +1 @@
+[h2]photo_upload_begin[/h2]
diff --git a/doc/hook/photo_upload_end.bb b/doc/hook/photo_upload_end.bb
new file mode 100644
index 000000000..956175f1d
--- /dev/null
+++ b/doc/hook/photo_upload_end.bb
@@ -0,0 +1 @@
+[h2]photo_upload_end[/h2]
diff --git a/doc/hook/photo_upload_file.bb b/doc/hook/photo_upload_file.bb
new file mode 100644
index 000000000..726622ac0
--- /dev/null
+++ b/doc/hook/photo_upload_file.bb
@@ -0,0 +1 @@
+[h2]photo_upload_file[/h2]
diff --git a/doc/hook/photo_upload_form.bb b/doc/hook/photo_upload_form.bb
new file mode 100644
index 000000000..70b8318b8
--- /dev/null
+++ b/doc/hook/photo_upload_form.bb
@@ -0,0 +1 @@
+[h2]photo_upload_form[/h2]
diff --git a/doc/hook/poke_verbs.bb b/doc/hook/poke_verbs.bb
new file mode 100644
index 000000000..54d68c3a2
--- /dev/null
+++ b/doc/hook/poke_verbs.bb
@@ -0,0 +1 @@
+[h2]poke_verbs[/h2]
diff --git a/doc/hook/post_local.bb b/doc/hook/post_local.bb
new file mode 100644
index 000000000..5aa723cb9
--- /dev/null
+++ b/doc/hook/post_local.bb
@@ -0,0 +1 @@
+[h2]post_local[/h2]
diff --git a/doc/hook/post_local_end.bb b/doc/hook/post_local_end.bb
new file mode 100644
index 000000000..380166fdb
--- /dev/null
+++ b/doc/hook/post_local_end.bb
@@ -0,0 +1 @@
+[h2]post_local_end[/h2]
diff --git a/doc/hook/post_local_start.bb b/doc/hook/post_local_start.bb
new file mode 100644
index 000000000..2f684f67a
--- /dev/null
+++ b/doc/hook/post_local_start.bb
@@ -0,0 +1 @@
+[h2]post_local_start[/h2]
diff --git a/doc/hook/post_mail.bb b/doc/hook/post_mail.bb
new file mode 100644
index 000000000..8f67ad4f0
--- /dev/null
+++ b/doc/hook/post_mail.bb
@@ -0,0 +1 @@
+[h2]post_mail[/h2]
diff --git a/doc/hook/post_mail_end.bb b/doc/hook/post_mail_end.bb
new file mode 100644
index 000000000..7f0085773
--- /dev/null
+++ b/doc/hook/post_mail_end.bb
@@ -0,0 +1 @@
+[h2]post_mail_end[/h2]
diff --git a/doc/hook/post_remote.bb b/doc/hook/post_remote.bb
new file mode 100644
index 000000000..f8e087eee
--- /dev/null
+++ b/doc/hook/post_remote.bb
@@ -0,0 +1 @@
+[h2]post_remote[/h2]
diff --git a/doc/hook/post_remote_end.bb b/doc/hook/post_remote_end.bb
new file mode 100644
index 000000000..0fef20cbf
--- /dev/null
+++ b/doc/hook/post_remote_end.bb
@@ -0,0 +1 @@
+[h2]post_remote_end[/h2]
diff --git a/doc/hook/post_remote_update.bb b/doc/hook/post_remote_update.bb
new file mode 100644
index 000000000..fd358db28
--- /dev/null
+++ b/doc/hook/post_remote_update.bb
@@ -0,0 +1 @@
+[h2]post_remote_update[/h2]
diff --git a/doc/hook/post_remote_update_end.bb b/doc/hook/post_remote_update_end.bb
new file mode 100644
index 000000000..95f1e6f78
--- /dev/null
+++ b/doc/hook/post_remote_update_end.bb
@@ -0,0 +1 @@
+[h2]post_remote_update_end[/h2]
diff --git a/doc/hook/prepare_body.bb b/doc/hook/prepare_body.bb
new file mode 100644
index 000000000..3f1eaef85
--- /dev/null
+++ b/doc/hook/prepare_body.bb
@@ -0,0 +1 @@
+[h2]prepare_body[/h2]
diff --git a/doc/hook/prepare_body_final.bb b/doc/hook/prepare_body_final.bb
new file mode 100644
index 000000000..96d1ae389
--- /dev/null
+++ b/doc/hook/prepare_body_final.bb
@@ -0,0 +1 @@
+[h2]prepare_body_final[/h2]
diff --git a/doc/hook/prepare_body_init.bb b/doc/hook/prepare_body_init.bb
new file mode 100644
index 000000000..f3de79970
--- /dev/null
+++ b/doc/hook/prepare_body_init.bb
@@ -0,0 +1 @@
+[h2]prepare_body_init[/h2]
diff --git a/doc/hook/probe_well_known.bb b/doc/hook/probe_well_known.bb
new file mode 100644
index 000000000..eff690f31
--- /dev/null
+++ b/doc/hook/probe_well_known.bb
@@ -0,0 +1 @@
+[h2]probe_well_known[/h2]
diff --git a/doc/hook/proc_run.bb b/doc/hook/proc_run.bb
new file mode 100644
index 000000000..a3759794a
--- /dev/null
+++ b/doc/hook/proc_run.bb
@@ -0,0 +1 @@
+[h2]proc_run[/h2]
diff --git a/doc/hook/process_channel_sync_delivery.bb b/doc/hook/process_channel_sync_delivery.bb
new file mode 100644
index 000000000..c0416c8cb
--- /dev/null
+++ b/doc/hook/process_channel_sync_delivery.bb
@@ -0,0 +1 @@
+[h2]process_channel_sync_delivery[/h2]
diff --git a/doc/hook/profile_advanced.bb b/doc/hook/profile_advanced.bb
new file mode 100644
index 000000000..65e56afd6
--- /dev/null
+++ b/doc/hook/profile_advanced.bb
@@ -0,0 +1 @@
+[h2]profile_advanced[/h2]
diff --git a/doc/hook/profile_edit.bb b/doc/hook/profile_edit.bb
new file mode 100644
index 000000000..e60663d4a
--- /dev/null
+++ b/doc/hook/profile_edit.bb
@@ -0,0 +1 @@
+[h2]profile_edit[/h2]
diff --git a/doc/hook/profile_photo_content_end.bb b/doc/hook/profile_photo_content_end.bb
new file mode 100644
index 000000000..518415c4d
--- /dev/null
+++ b/doc/hook/profile_photo_content_end.bb
@@ -0,0 +1 @@
+[h2]profile_photo_content_end[/h2]
diff --git a/doc/hook/profile_post.bb b/doc/hook/profile_post.bb
new file mode 100644
index 000000000..d22d8fbc7
--- /dev/null
+++ b/doc/hook/profile_post.bb
@@ -0,0 +1 @@
+[h2]profile_post[/h2]
diff --git a/doc/hook/profile_sidebar.bb b/doc/hook/profile_sidebar.bb
new file mode 100644
index 000000000..bfd059e4b
--- /dev/null
+++ b/doc/hook/profile_sidebar.bb
@@ -0,0 +1 @@
+[h2]profile_sidebar[/h2]
diff --git a/doc/hook/profile_sidebar_enter.bb b/doc/hook/profile_sidebar_enter.bb
new file mode 100644
index 000000000..9d6726a30
--- /dev/null
+++ b/doc/hook/profile_sidebar_enter.bb
@@ -0,0 +1 @@
+[h2]profile_sidebar_enter[/h2]
diff --git a/doc/hook/profile_tabs.bb b/doc/hook/profile_tabs.bb
new file mode 100644
index 000000000..5b3e9e707
--- /dev/null
+++ b/doc/hook/profile_tabs.bb
@@ -0,0 +1 @@
+[h2]profile_tabs[/h2]
diff --git a/doc/hook/register_account.bb b/doc/hook/register_account.bb
new file mode 100644
index 000000000..df4de2b30
--- /dev/null
+++ b/doc/hook/register_account.bb
@@ -0,0 +1 @@
+[h2]register_account[/h2]
diff --git a/doc/hook/render_location.bb b/doc/hook/render_location.bb
new file mode 100644
index 000000000..41501c087
--- /dev/null
+++ b/doc/hook/render_location.bb
@@ -0,0 +1 @@
+[h2]render_location[/h2]
diff --git a/doc/hook/replace_macros.bb b/doc/hook/replace_macros.bb
new file mode 100644
index 000000000..fac39dd7b
--- /dev/null
+++ b/doc/hook/replace_macros.bb
@@ -0,0 +1 @@
+[h2]replace_macros[/h2]
diff --git a/doc/hook/reverse_magic_auth.bb b/doc/hook/reverse_magic_auth.bb
new file mode 100644
index 000000000..4cbd84b93
--- /dev/null
+++ b/doc/hook/reverse_magic_auth.bb
@@ -0,0 +1 @@
+[h2]reverse_magic_auth[/h2]
diff --git a/doc/hook/settings_form.bb b/doc/hook/settings_form.bb
new file mode 100644
index 000000000..d65341181
--- /dev/null
+++ b/doc/hook/settings_form.bb
@@ -0,0 +1 @@
+[h2]settings_form[/h2]
diff --git a/doc/hook/settings_post.bb b/doc/hook/settings_post.bb
new file mode 100644
index 000000000..f72546c11
--- /dev/null
+++ b/doc/hook/settings_post.bb
@@ -0,0 +1 @@
+[h2]settings_post[/h2]
diff --git a/doc/hook/sexpref_selector.bb b/doc/hook/sexpref_selector.bb
new file mode 100644
index 000000000..b4dad6b38
--- /dev/null
+++ b/doc/hook/sexpref_selector.bb
@@ -0,0 +1 @@
+[h2]sexpref_selector[/h2]
diff --git a/doc/hook/sexpref_selector_min.bb b/doc/hook/sexpref_selector_min.bb
new file mode 100644
index 000000000..6f49946af
--- /dev/null
+++ b/doc/hook/sexpref_selector_min.bb
@@ -0,0 +1 @@
+[h2]sexpref_selector_min[/h2]
diff --git a/doc/hook/smilie.bb b/doc/hook/smilie.bb
new file mode 100644
index 000000000..cea3e0c94
--- /dev/null
+++ b/doc/hook/smilie.bb
@@ -0,0 +1 @@
+[h2]smilie[/h2]
diff --git a/doc/hook/tagged.bb b/doc/hook/tagged.bb
new file mode 100644
index 000000000..5add76713
--- /dev/null
+++ b/doc/hook/tagged.bb
@@ -0,0 +1 @@
+[h2]tagged[/h2]
diff --git a/doc/hook/validate_channelname.bb b/doc/hook/validate_channelname.bb
new file mode 100644
index 000000000..c78961017
--- /dev/null
+++ b/doc/hook/validate_channelname.bb
@@ -0,0 +1 @@
+[h2]validate_channelname[/h2]
diff --git a/doc/hook/webfinger.bb b/doc/hook/webfinger.bb
new file mode 100644
index 000000000..7cc24322f
--- /dev/null
+++ b/doc/hook/webfinger.bb
@@ -0,0 +1 @@
+[h2]webfinger[/h2]
diff --git a/doc/hook/well_known.bb b/doc/hook/well_known.bb
new file mode 100644
index 000000000..778b27a02
--- /dev/null
+++ b/doc/hook/well_known.bb
@@ -0,0 +1 @@
+[h2]well_known[/h2]
diff --git a/doc/hook/zid.bb b/doc/hook/zid.bb
new file mode 100644
index 000000000..2210c1342
--- /dev/null
+++ b/doc/hook/zid.bb
@@ -0,0 +1 @@
+[h2]zid[/h2]
diff --git a/doc/hook/zid_init.bb b/doc/hook/zid_init.bb
new file mode 100644
index 000000000..131dd8f72
--- /dev/null
+++ b/doc/hook/zid_init.bb
@@ -0,0 +1 @@
+[h2]zid_init[/h2]
diff --git a/doc/hook/zot_finger.bb b/doc/hook/zot_finger.bb
new file mode 100644
index 000000000..9383b4c31
--- /dev/null
+++ b/doc/hook/zot_finger.bb
@@ -0,0 +1 @@
+[h2]zot_finger[/h2]
diff --git a/doc/hooklist.bb b/doc/hooklist.bb
new file mode 100644
index 000000000..9e0220013
--- /dev/null
+++ b/doc/hooklist.bb
@@ -0,0 +1,494 @@
+[h2]Hooks[/h2]
+
+Hooks allow plugins/addons to "hook into" the code at many points and alter the behaviour or otherwise perform independent actions when an activity takes place or when certain data structures are accessed. There are many hooks which allow you to tie into the software at most any point and do something slightly different than the default thing. These hooks are passed two variables. The first is the App structure which contains details about the entire state of the page request as we build the resulting page. The second is unique to the specific hook that is called and provides specific detail about what is happening in the software at the time the hook is invoked.
+
+
+[zrl=[baseurl]/help/hook/module_mod_aftercontent]module_mod_aftercontent[/zrl]
+ General purpose hook for any module, executed after mod_content(). Replace 'module' with module name, e.g. 'photos_mod_aftercontent'.
+
+[zrl=[baseurl]/help/hook/module_mod_content]module_mod_content[/zrl]
+ General purpose hook for any module, executed before mod_content(). Replace 'module' with module name, e.g. 'photos_mod_content'.
+
+[zrl=[baseurl]/help/hook/module_mod_init]module_mod_init[/zrl]
+ General purpose hook for any module, executed before mod_init(). Replace 'module' with module name, e.g. 'photos_mod_init'.
+
+[zrl=[baseurl]/help/hook/module_mod_post]module_mod_post[/zrl]
+ General purpose hook for any module, executed before mod_post(). Replace 'module' with module name, e.g. 'photos_mod_post'.
+
+[zrl=[baseurl]/help/hook/about_hook]about_hook[/zrl]
+ Called from the siteinfo page
+
+[zrl=[baseurl]/help/hook/accept_follow]accept_follow[/zrl]
+ Called when accepting a connection (friend request)
+
+[zrl=[baseurl]/help/hook/account_downgrade]account_downgrade[/zrl]
+ Called when an account has expired, indicating a potential downgrade to "basic" service class
+
+[zrl=[baseurl]/help/hook/account_settings]account_settings[/zrl]
+ Called when generating the account settings form
+
+[zrl=[baseurl]/help/hook/settings_account]account_settings_post[/zrl]
+ Called when posting from the account settings form
+
+[zrl=[baseurl]/help/hook/activity_received]activity_received[/zrl]
+ Called when an activity (post, comment, like, etc.) has been received from a zot source
+
+[zrl=[baseurl]/help/hook/affinity_labels]affinity_labels[/zrl]
+ Used to generate alternate labels for the affinity slider.
+
+[zrl=[baseurl]/help/hook/api_perm_is_allowed]api_perm_is_allowed[/zrl]
+ Called when perm_is_allowed() is executed from an API call.
+
+[zrl=[baseurl]/help/hook/app_menu]app_menu[/zrl]
+ Used to register plugins as apps
+
+[zrl=[baseurl]/help/hook/atom_author]atom_author[/zrl]
+ Called when generating an author or owner element for an Atom ActivityStream feed
+
+[zrl=[baseurl]/help/hook/atom_entry]atom_entry[/zrl]
+ Called when generating each item entry of an Atom ActivityStreams feed
+
+[zrl=[baseurl]/help/hook/atom_feed]atom_feed[/zrl]
+ Called when generating an Atom ActivityStreams feed
+
+[zrl=[baseurl]/help/hook/atom_feed_end]atom_feed_end[/zrl]
+ Called when generation of an Atom ActivityStreams feed is completed
+
+[zrl=[baseurl]/help/hook/attach_upload_file]attach_upload_file[/zrl]
+ Called when uploading a file
+
+[zrl=[baseurl]/help/hook/authenticate]authenticate[/zrl]
+ Can provide alternate authentication mechanisms
+
+[zrl=[baseurl]/help/hook/avatar_lookup]avatar_lookup[/zrl]
+ Used for "gravatar" or libravatar profile photo lookup.
+
+[zrl=[baseurl]/help/hook/bb2diaspora]bb2diaspora[/zrl]
+ called when converting bbcode to markdown
+
+[zrl=[baseurl]/help/hook/bbcode]bbcode[/zrl]
+ Called when converting bbcode to HTML
+
+[zrl=[baseurl]/help/hook/channel_remove]channel_remove[/zrl]
+ Called when removing a channel
+
+[zrl=[baseurl]/help/hook/chat_message]chat_message[/zrl]
+ Called to create a chat message.
+
+[zrl=[baseurl]/help/hook/chat_post]chat_post[/zrl]
+ Called when a chat message has been posted
+
+[zrl=[baseurl]/help/hook/check_account_email]check_account_email[/zrl]
+ Validate the email provided in an account registration
+
+[zrl=[baseurl]/help/hook/check_account_invite]check_account_invite[/zrl]
+ Validate an invitation code when using site invitations
+
+[zrl=[baseurl]/help/hook/check_account_password]check_account_password[/zrl]
+ Used to provide policy control over account passwords (minimum length, character set inclusion, etc.)
+
+[zrl=[baseurl]/help/hook/connect_premium]connect_premium[/zrl]
+ Called when connecting to a premium channel
+
+[zrl=[baseurl]/help/hook/connector_settings]connector_settings[/zrl]
+ Called when posting to the features/addon settings page
+
+[zrl=[baseurl]/help/hook/construct_page]construct_page[/zrl]
+ General purpose hook to provide content to certain page regions. Called when constructing the Comanche page.
+
+[zrl=[baseurl]/help/hook/contact_block_end]contact_block_end[/zrl]
+ Called when generating the sidebar "Connections" widget
+
+[zrl=[baseurl]/help/hook/contact_edit]contact_edit[/zrl]
+ Called when editing a connection via connedit
+
+[zrl=[baseurl]/help/hook/contact_edit_post]contact_edit_post[/zrl]
+ Called when posting to connedit
+
+[zrl=[baseurl]/help/hook/contact_select_options]contact_select_options[/zrl]
+ Deprecated/unused
+
+[zrl=[baseurl]/help/hook/conversation_start]conversation_start[/zrl]
+ Called in the beginning of rendering a conversation (message or message collection or stream)
+
+[zrl=[baseurl]/help/hook/create_identity]create_identity[/zrl]
+ Called when creating a channel
+
+[zrl=[baseurl]/help/hook/cron]cron[/zrl]
+ Called when scheduled tasks (poller) is executed
+
+[zrl=[baseurl]/help/hook/cron_daily]cron_daily[/zrl]
+ Called when daily scheduled tasks are executed
+
+[zrl=[baseurl]/help/hook/cron_weekly]cron_weekly[/zrl]
+ Called when weekly scheduled tasks are executed
+
+[zrl=[baseurl]/help/hook/directory_item]directory_item[/zrl]
+ Called when generating a directory listing for display
+
+[zrl=[baseurl]/help/hook/discover_by_webbie]discover_by_webbie[/zrl]
+ Called when performing a webfinger lookup
+
+[zrl=[baseurl]/help/hook/display_item]display_item[/zrl]
+ Called for each item being displayed in a conversation thread
+
+[zrl=[baseurl]/help/hook/display_settings]display_settings[/zrl]
+ Called from settings module when displaying the 'display settings' section
+
+[zrl=[baseurl]/help/hook/display_settings_post]display_settings_post[/zrl]
+ Called when posting from the settings module 'display settings' form
+
+[zrl=[baseurl]/help/hook/donate_contributors]donate_contributors[/zrl]
+ called by the 'donate' addon when generating a list of donation recipients
+
+[zrl=[baseurl]/help/hook/donate_plugin]donate_plugin[/zrl]
+ called by the 'donate' addon
+
+[zrl=[baseurl]/help/hook/donate_sponsors]donate_sponsors[/zrl]
+ called by the 'donate' addon
+
+[zrl=[baseurl]/help/hook/dreport_is_storable]dreport_is_storable[/zrl]
+ called before storing a dreport record to determine whether to store it
+
+[zrl=[baseurl]/help/hook/drop_item]drop_item[/zrl]
+ called when an 'item' is removed
+
+[zrl=[baseurl]/help/hook/enotify]enotify[/zrl]
+ called before any notification
+
+[zrl=[baseurl]/help/hook/enotify_mail]enotify_mail[/zrl]
+ called when sending a notification email
+
+[zrl=[baseurl]/help/hook/enotify_store]enotify_store[/zrl]
+ called when storing a notification record
+
+[zrl=[baseurl]/help/hook/event_created]event_created[/zrl]
+ called when an event record is created
+
+[zrl=[baseurl]/help/hook/event_updated]event_updated[/zrl]
+ called when an event record is modified
+
+[zrl=[baseurl]/help/hook/externals_url_select]externals_url_select[/zrl]
+ called when generating a list of random sites to pull public posts from
+
+[zrl=[baseurl]/help/hook/feature_enabled]feature_enabled[/zrl]
+ called when 'feature_enabled()' is used
+
+[zrl=[baseurl]/help/hook/feature_settings]feature_settings[/zrl]
+ called from settings page when visiting 'addon/feature settings'
+
+[zrl=[baseurl]/help/hook/feature_settings_post]feature_settings_post[/zrl]
+ called from settings page when posting from 'addon/feature settings'
+
+[zrl=[baseurl]/help/hook/follow]follow[/zrl]
+ called when a follow operation takes place
+
+[zrl=[baseurl]/help/hook/follow_allow]follow_allow[/zrl]
+ called before storing the results of a follow operation
+
+[zrl=[baseurl]/help/hook/gender_selector]gender_selector[/zrl]
+ called when creating the 'gender' drop down list (advanced profile)
+
+[zrl=[baseurl]/help/hook/gender_selector_min]gender_selector_min[/zrl]
+ called when creating the 'gender' drop down list (normal profile)
+
+
+[zrl=[baseurl]/help/hook/generate_map]generate_map[/zrl]
+ called to generate the HTML for displaying a map location by coordinates
+
+[zrl=[baseurl]/help/hook/generate_named_map]generate_named_map[/zrl]
+ called to generate the HTML for displaying a map location by text location
+
+[zrl=[baseurl]/help/hook/get_all_api_perms]get_all_api_perms[/zrl]
+ Called when retrieving the permissions for API uses
+
+[zrl=[baseurl]/help/hook/get_all_perms]get_all_perms[/zrl]
+ called when get_all_perms() is used
+
+[zrl=[baseurl]/help/hook/get_features]get_features[/zrl]
+ Called when get_features() is called
+
+[zrl=[baseurl]/help/hook/get_role_perms]get_role_perms[/zrl]
+ Called when get_role_perms() is called to obtain permissions for named permission roles
+
+[zrl=[baseurl]/help/hook/get_widgets]get_widgets[/zrl]
+ No longer used - now widget placement is managed by Comanche
+
+[zrl=[baseurl]/help/hook/global_permissions]global_permissions[/zrl]
+ Called when the global permissions list is generated
+
+[zrl=[baseurl]/help/hook/home_content]home_content[/zrl]
+ Called from mod_home to replace the content of the home page
+
+[zrl=[baseurl]/help/hook/home_init]home_init[/zrl]
+ Called from the home page home_init() function
+
+[zrl=[baseurl]/help/hook/hostxrd]hostxrd[/zrl]
+ Called when generating .well-known/hosts-meta for "old webfinger" (used by Diaspora protocol)
+
+[zrl=[baseurl]/help/hook/html2bbcode]html2bbcode[/zrl]
+ Called when using the html2bbcode tranlsation
+
+[zrl=[baseurl]/help/hook/identity_basic_export]identity_basic_export[/zrl]
+ Called when exporting a channel's basic information for backup or transfer
+
+[zrl=[baseurl]/help/hook/import_author_xchan]import_author_xchan[/zrl]
+ Called when looking up an author of a post by xchan_hash to ensure they have an xchan record on our site
+
+[zrl=[baseurl]/help/hook/import_channel]import_channel[/zrl]
+ Called when importing a channel from a file or API source
+
+[zrl=[baseurl]/help/hook/import_directory_profile]import_directory_profile[/zrl]
+ Called when processing delivery of a profile structure from an external source (usually for directory storage)
+
+[zrl=[baseurl]/help/hook/import_xchan]import_xchan[/zrl]
+ Called when processing the result of zot_finger() to store the result
+
+[zrl=[baseurl]/help/hook/item_photo_menu]item_photo_menu[/zrl]
+ Called when generating the list of actions associated with a displayed conversation item
+
+[zrl=[baseurl]/help/hook/item_store]item_store[/zrl]
+ Called when item_store() stores a record of type item
+
+[zrl=[baseurl]/help/hook/item_store_update]item_store_update[/zrl]
+ Called when item_store_update() is called to update a stored item.
+
+[zrl=[baseurl]/help/hook/item_translate]item_translate[/zrl]
+ Called from item_store and item_store_update after the post language has been autodetected
+
+[zrl=[baseurl]/help/hook/jot_networks]jot_networks[/zrl]
+ Called to generate the list of additional post plugins to enable from the ACL form
+
+[zrl=[baseurl]/help/hook/jot_tool]jot_tool[/zrl]
+ Deprecated and possibly obsolete. Allows one to add action buttons to the post editor.
+
+[zrl=[baseurl]/help/hook/load_pdl]load_pdl[/zrl]
+ Called when we load a PDL file or description
+
+[zrl=[baseurl]/help/hook/local_dir_update]local_dir_update[/zrl]
+ Called when processing a directory update from a channel on the directory server
+
+[zrl=[baseurl]/help/hook/logged_in]logged_in[/zrl]
+ Called when authentication by any means has succeeeded
+
+[zrl=[baseurl]/help/hook/logging_out]logging_out[/zrl]
+ Called when logging out
+
+[zrl=[baseurl]/help/hook/login_hook]login_hook[/zrl]
+ Called when generating the login form
+
+[zrl=[baseurl]/help/hook/magic_auth]magic_auth[/zrl]
+ Called when processing a magic-auth sequence
+
+[zrl=[baseurl]/help/hook/magic_auth_openid_success]magic_auth_openid_success[/zrl]
+ Called when a magic-auth was successful due to openid credentials
+
+[zrl=[baseurl]/help/hook/magic_auth_success]magic_auth_success[/zrl]
+ Called when a magic-auth was successful
+
+[zrl=[baseurl]/help/hook/main_slider]main_slider[/zrl]
+ Called whne generating the affinity tool
+
+[zrl=[baseurl]/help/hook/marital_selector]marital_selector[/zrl]
+ Called when generating the list of choices for the 'marital status' profile dropdown (advanced profile)
+
+[zrl=[baseurl]/help/hook/marital_selector_min]marital_selector_min[/zrl]
+ Called when generating the list of choices for the 'marital status' profile dropdown (normal profile)
+
+[zrl=[baseurl]/help/hook/module_loaded]module_loaded[/zrl]
+ Called when a module has been successfully locate to server a URL request
+
+[zrl=[baseurl]/help/hook/mood_verbs]mood_verbs[/zrl]
+ Called when generating the list of moods
+
+[zrl=[baseurl]/help/hook/nav]nav[/zrl]
+ Called when generating the navigation bar
+
+[zrl=[baseurl]/help/hook/network_content_init]network_content_init[/zrl]
+ Called when loading cntent for the network page
+
+[zrl=[baseurl]/help/hook/network_ping]network_ping[/zrl]
+ Called during a ping request
+
+[zrl=[baseurl]/help/hook/network_tabs]network_tabs[/zrl]
+ Called when generating the list of tabs for the network page
+
+[zrl=[baseurl]/help/hook/network_to_name]network_to_name[/zrl]
+ Deprecated
+
+[zrl=[baseurl]/help/hook/notifier_end]notifier_end[/zrl]
+ Called when a delivery loop has completed
+
+[zrl=[baseurl]/help/hook/notifier_hub]notifier_hub[/zrl]
+ Called when a hub is delivered
+
+[zrl=[baseurl]/help/hook/notifier_normal]notifier_normal[/zrl]
+ Called when the notofoer is invoked for a 'normal' delivery
+
+[zrl=[baseurl]/help/hook/obj_verbs]obj_verbs[/zrl]
+ Called when creating the list of verbs available for profile "things".
+
+[zrl=[baseurl]/help/hook/oembed_probe]oembed_probe[/zrl]
+ Called when performing an oembed content lookup
+
+[zrl=[baseurl]/help/hook/page_content_top]page_content_top[/zrl]
+ Called when we generate a webpage (before calling the module content function)
+
+[zrl=[baseurl]/help/hook/page_end]page_end[/zrl]
+ Called after we have generated the page content
+
+[zrl=[baseurl]/help/hook/page_header]page_header[/zrl]
+ Called when generating the navigation bar
+
+[zrl=[baseurl]/help/hook/parse_atom]parse_atom[/zrl]
+ Called when parsing an atom/RSS feed item
+
+[zrl=[baseurl]/help/hook/parse_link]parse_link[/zrl]
+ Called when probing a URL to generate post content from it
+
+[zrl=[baseurl]/help/hook/pdl_selector]pdl_selector[/zrl]
+ Called when creating a layout selection in a form
+
+[zrl=[baseurl]/help/hook/perm_is_allowed]perm_is_allowed[/zrl]
+ Called during perm_is_allowed() to determine if a permission is allowed for this channel and observer
+
+[zrl=[baseurl]/help/hook/permissions_create]permissions_create[/zrl]
+ Called when an abook entry (connection) is created
+
+[zrl=[baseurl]/help/hook/permissions_update]permissions_update[/zrl]
+ Called when a permissions refresh is transmitted
+
+[zrl=[baseurl]/help/hook/personal_xrd]personal_xrd[/zrl]
+ Called when generating the personal XRD for "old webfinger" (Diaspora)
+
+[zrl=[baseurl]/help/hook/photo_post_end]photo_post_end[/zrl]
+ Called after uploading a photo
+
+[zrl=[baseurl]/help/hook/photo_upload_begin]photo_upload_begin[/zrl]
+ Called when attempting to upload a photo
+
+[zrl=[baseurl]/help/hook/photo_upload_end]photo_upload_end[/zrl]
+ Called when a photo upload has been processed
+
+[zrl=[baseurl]/help/hook/photo_upload_file]photo_upload_file[/zrl]
+ Called to generate alternate filenames for an upload
+
+[zrl=[baseurl]/help/hook/photo_upload_form]photo_upload_form[/zrl]
+ Called when generating a photo upload form
+
+[zrl=[baseurl]/help/hook/poke_verbs]poke_verbs[/zrl]
+ Called when generating the list of actions for "poke" module
+
+[zrl=[baseurl]/help/hook/post_local]post_local[/zrl]
+ Called when an item has been posted on this machine via mod/item.php (also via API)
+
+[zrl=[baseurl]/help/hook/post_local_end]post_local_end[/zrl]
+ Called after a local post operation has completed
+
+[zrl=[baseurl]/help/hook/post_local_start]post_local_start[/zrl]
+ Called when a local post operation is commencing
+
+[zrl=[baseurl]/help/hook/post_mail]post_mail[/zrl]
+ Called when a mail message has been composed
+
+[zrl=[baseurl]/help/hook/post_mail_end]post_mail_end[/zrl]
+ Called when a mail message has been delivered
+
+[zrl=[baseurl]/help/hook/post_remote]post_remote[/zrl]
+ Called when an activity arrives from another site
+
+[zrl=[baseurl]/help/hook/post_remote_end]post_remote_end[/zrl]
+ Called after processing a remote post
+
+[zrl=[baseurl]/help/hook/post_remote_update]post_remote_update[/zrl]
+ Called when processing a remote post that involved an edit or update
+
+[zrl=[baseurl]/help/hook/post_remote_update_end]post_remote_update_end[/zrl]
+ Called after processing a remote post that involved an edit or update
+
+[zrl=[baseurl]/help/hook/prepare_body]prepare_body[/zrl]
+ Called when generating the HTML for a displayed conversation item
+
+[zrl=[baseurl]/help/hook/prepare_body_final]prepare_body_final[/zrl]
+ Called after generating the HTML for a displayed conversation item
+
+[zrl=[baseurl]/help/hook/prepare_body_init]prepare_body_init[/zrl]
+ Called before generating the HTML for a displayed conversation item
+
+[zrl=[baseurl]/help/hook/probe_well_known]probe_well_known[/zrl]
+ under construction
+
+[zrl=[baseurl]/help/hook/proc_run]proc_run[/zrl]
+ Called when invoking PHP sub processes
+
+[zrl=[baseurl]/help/hook/process_channel_sync_delivery]process_channel_sync_delivery[/zrl]
+ Called when accepting delivery of a 'sync packet' containing structure and table updates from a channel clone
+
+[zrl=[baseurl]/help/hook/profile_advanced]profile_advanced[/zrl]
+ Called when generating an advanced profile page
+
+[zrl=[baseurl]/help/hook/profile_edit]profile_edit[/zrl]
+ Called when editing a profile
+
+[zrl=[baseurl]/help/hook/profile_photo_content_end]profile_photo_content_end[/zrl]
+ Called when changing a profile photo
+
+[zrl=[baseurl]/help/hook/profile_post]profile_post[/zrl]
+ Called when posting an edited profile
+
+[zrl=[baseurl]/help/hook/profile_sidebar]profile_sidebar[/zrl]
+ Called when generating the 'channel sidebar' or mini-profile
+
+[zrl=[baseurl]/help/hook/profile_sidebar_enter]profile_sidebar_enter[/zrl]
+ Called before generating the 'channel sidebar' or mini-profile
+
+[zrl=[baseurl]/help/hook/profile_tabs]profile_tabs[/zrl]
+ Called when generating the tabs for channel related pages (channel,profile,files,etc.)
+
+[zrl=[baseurl]/help/hook/register_account]register_account[/zrl]
+ Called when an account has been created
+
+[zrl=[baseurl]/help/hook/render_location]render_location[/zrl]
+ Called to generate an ineractive inline map
+
+[zrl=[baseurl]/help/hook/replace_macros]replace_macros[/zrl]
+ Called before invoking the template processor
+
+[zrl=[baseurl]/help/hook/reverse_magic_auth]reverse_magic_auth[/zrl]
+ Called before invoking reverse magic auth to send you to your own site to authenticate on this site
+
+[zrl=[baseurl]/help/hook/settings_form]settings_form[/zrl]
+ Called when generating the channel settings form
+
+[zrl=[baseurl]/help/hook/settings_post]settings_post[/zrl]
+ Called when posting from the channel settings form
+
+[zrl=[baseurl]/help/hook/sexpref_selector]sexpref_selector[/zrl]
+ Called when generating a dropdown of sexual preference (advanced profile)
+
+[zrl=[baseurl]/help/hook/sexpref_selector_min]sexpref_selector_min[/zrl]
+ Called when generating a dropdown of sexual preference (normal profile)
+
+[zrl=[baseurl]/help/hook/smilie]smilie[/zrl]
+ Called when translating emoticons
+
+[zrl=[baseurl]/help/hook/tagged]tagged[/zrl]
+ Called when a delivery is processed which results in you being tagged
+
+[zrl=[baseurl]/help/hook/validate_channelname]validate_channelname[/zrl]
+ Used to validate the names used by a channel
+
+[zrl=[baseurl]/help/hook/webfinger]webfinger[/zrl]
+ Called when visiting the webfinger (RFC7033) service
+
+[zrl=[baseurl]/help/hook/well_known]well_known[/zrl]
+ Called when accessing the '.well-known' special site addresses
+
+[zrl=[baseurl]/help/hook/zid]zid[/zrl]
+ Called when adding the observer's zid to a URL
+
+[zrl=[baseurl]/help/hook/zid_init]zid_init[/zrl]
+ Called when authenticating a visitor who has used zid
+
+[zrl=[baseurl]/help/hook/zot_finger]zot_finger[/zrl]
+ Called when a zot-info packet has been requested (this is our webfinger discovery mechanism)
diff --git a/doc/hooks.html b/doc/hooks.html
new file mode 100644
index 000000000..c05de58ef
--- /dev/null
+++ b/doc/hooks.html
@@ -0,0 +1 @@
+<div><h3>Hooks</h3><table><tr><td>Function</td><td>Source File</td><td>Arg</td></tr><tr><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td></tr><tr><td>$a-&gt;module . _mod_aftercontent</td><td>index.php</td><td>$arr</td></tr><tr><td>$a-&gt;module . _mod_content</td><td>index.php</td><td>$arr</td></tr><tr><td>$a-&gt;module . _mod_init</td><td>index.php</td><td>$placeholder</td></tr><tr><td>$a-&gt;module . _mod_post</td><td>index.php</td><td>$_POST</td></tr><tr><td>$a-&gt;module . _post_ . $selname</td><td>include/acl_selectors.php</td><td>$o</td></tr><tr><td>$a-&gt;module . _post_ . $selname</td><td>include/acl_selectors.php</td><td>$o</td></tr><tr><td>$a-&gt;module . _post_ . $selname</td><td>include/acl_selectors.php</td><td>$o</td></tr><tr><td>$a-&gt;module . _pre_ . $selname</td><td>include/acl_selectors.php</td><td>$arr</td></tr><tr><td>$a-&gt;module . _pre_ . $selname</td><td>include/acl_selectors.php</td><td>$arr</td></tr><tr><td>$a-&gt;module . _pre_ . $selname</td><td>include/acl_selectors.php</td><td>$arr</td></tr><tr><td>$name</td><td>include/plugin.php</td><td>&amp;$data = null</td></tr><tr><td>about_hook</td><td>mod/siteinfo.php</td><td>$o</td></tr><tr><td>accept_follow</td><td>mod/connedit.php</td><td>$arr</td></tr><tr><td>account_downgrade</td><td>include/account.php</td><td>$ret</td></tr><tr><td>account_downgrade</td><td>include/account.php</td><td>$ret</td></tr><tr><td>account_settings</td><td>mod/settings.php</td><td>$account_settings</td></tr><tr><td>activity_received</td><td>include/zot.php</td><td>$parr</td></tr><tr><td>affinity_labels</td><td>include/widgets.php</td><td>$labels</td></tr><tr><td>affinity_labels</td><td>mod/connedit.php</td><td>$labels</td></tr><tr><td>api_perm_is_allowed</td><td>include/permissions.php</td><td>$arr</td></tr><tr><td>app_menu</td><td>index.php</td><td>$arr</td></tr><tr><td>atom_author</td><td>include/items.php</td><td>$o</td></tr><tr><td>atom_entry</td><td>include/items.php</td><td>$o</td></tr><tr><td>atom_feed</td><td>include/items.php</td><td>$atom</td></tr><tr><td>atom_feed_end</td><td>include/items.php</td><td>$atom</td></tr><tr><td>attach_upload_file</td><td>include/attach.php</td><td>$f</td></tr><tr><td>authenticate</td><td>include/auth.php</td><td>$addon_auth</td></tr><tr><td>avatar_lookup</td><td>include/network.php</td><td>$avatar</td></tr><tr><td>bb2diaspora</td><td>include/bb2diaspora.php</td><td>$Text</td></tr><tr><td>bbcode</td><td>include/bbcode.php</td><td>$Text</td></tr><tr><td>channel_remove</td><td>include/Contact.php</td><td>$r[0]</td></tr><tr><td>chat_message</td><td>include/chat.php</td><td>$arr</td></tr><tr><td>chat_post</td><td>mod/chatsvc.php</td><td>$arr</td></tr><tr><td>check_account_email</td><td>include/account.php</td><td>$arr</td></tr><tr><td>check_account_invite</td><td>include/account.php</td><td>$arr</td></tr><tr><td>check_account_password</td><td>include/account.php</td><td>$arr</td></tr><tr><td>connect_premium</td><td>mod/connect.php</td><td>$arr</td></tr><tr><td>connector_settings</td><td>mod/settings.php</td><td>$settings_connectors</td></tr><tr><td>construct_page</td><td>boot.php</td><td>$arr</td></tr><tr><td>contact_block_end</td><td>include/text.php</td><td>$arr</td></tr><tr><td>contact_edit</td><td>mod/connedit.php</td><td>$arr</td></tr><tr><td>contact_edit_post</td><td>mod/connedit.php</td><td>$_POST</td></tr><tr><td>contact_select_options</td><td>include/acl_selectors.php</td><td>$x</td></tr><tr><td>conversation_start</td><td>include/conversation.php</td><td>$cb</td></tr><tr><td>create_identity</td><td>include/identity.php</td><td>$newuid</td></tr><tr><td>cron</td><td>include/cronhooks.php</td><td>$d</td></tr><tr><td>cron_daily</td><td>include/poller.php</td><td>datetime_convert()</td></tr><tr><td>cron_weekly</td><td>include/poller.php</td><td>datetime_convert()</td></tr><tr><td>directory_item</td><td>mod/directory.php</td><td>$arr</td></tr><tr><td>discover_by_webbie</td><td>include/network.php</td><td>$arr</td></tr><tr><td>display_item</td><td>include/ItemObject.php</td><td>$arr</td></tr><tr><td>display_item</td><td>include/conversation.php</td><td>$arr</td></tr><tr><td>display_settings</td><td>mod/settings.php</td><td>$o</td></tr><tr><td>display_settings_post</td><td>mod/settings.php</td><td>$_POST</td></tr><tr><td>donate_contributors</td><td>extend/addon/matrix/donate/donate.php</td><td>$contributors</td></tr><tr><td>donate_plugin</td><td>extend/addon/matrix/donate/donate.php</td><td>$o</td></tr><tr><td>donate_sponsors</td><td>extend/addon/matrix/donate/donate.php</td><td>$sponsors</td></tr><tr><td>dreport_is_storable</td><td>include/zot.php</td><td>$dr</td></tr><tr><td>drop_item</td><td>include/items.php</td><td>$arr</td></tr><tr><td>enotify</td><td>include/enotify.php</td><td>$h</td></tr><tr><td>enotify_mail</td><td>include/enotify.php</td><td>$datarray</td></tr><tr><td>enotify_store</td><td>include/enotify.php</td><td>$datarray</td></tr><tr><td>event_created</td><td>include/event.php</td><td>$event[id]</td></tr><tr><td>event_updated</td><td>include/event.php</td><td>$event[id]</td></tr><tr><td>externals_url_select</td><td>include/externals.php</td><td>$arr</td></tr><tr><td>feature_enabled</td><td>include/features.php</td><td>$arr</td></tr><tr><td>feature_settings</td><td>mod/settings.php</td><td>$settings_addons</td></tr><tr><td>feature_settings_post</td><td>mod/settings.php</td><td>$_POST</td></tr><tr><td>follow</td><td>include/follow.php</td><td>$arr</td></tr><tr><td>follow</td><td>include/follow.php</td><td>$arr</td></tr><tr><td>follow_allow</td><td>include/follow.php</td><td>$x</td></tr><tr><td>gender_selector</td><td>include/profile_selectors.php</td><td>$select</td></tr><tr><td>gender_selector_min</td><td>include/profile_selectors.php</td><td>$select</td></tr><tr><td>generate_map</td><td>include/text.php</td><td>$arr</td></tr><tr><td>generate_named_map</td><td>include/text.php</td><td>$arr</td></tr><tr><td>get_all_api_perms</td><td>include/permissions.php</td><td>$arr</td></tr><tr><td>get_all_perms</td><td>include/permissions.php</td><td>$arr</td></tr><tr><td>get_features</td><td>include/features.php</td><td>$arr</td></tr><tr><td>get_role_perms</td><td>include/permissions.php</td><td>$ret</td></tr><tr><td>get_widgets</td><td>boot.php</td><td>$arr</td></tr><tr><td>get_widgets</td><td>boot.php</td><td>$arr</td></tr><tr><td>global_permissions</td><td>include/permissions.php</td><td>$ret</td></tr><tr><td>home_content</td><td>mod/home.php</td><td>$o</td></tr><tr><td>home_init</td><td>mod/home.php</td><td>$ret</td></tr><tr><td>hostxrd</td><td>mod/hostxrd.php</td><td>$arr</td></tr><tr><td>html2bbcode</td><td>include/html2bbcode.php</td><td>$message</td></tr><tr><td>identity_basic_export</td><td>include/identity.php</td><td>$addon</td></tr><tr><td>import_author_xchan</td><td>include/items.php</td><td>$arr</td></tr><tr><td>import_channel</td><td>mod/import.php</td><td>$addon</td></tr><tr><td>import_directory_profile</td><td>include/zot.php</td><td>$d</td></tr><tr><td>import_xchan</td><td>include/zot.php</td><td>$arr</td></tr><tr><td>item_photo_menu</td><td>include/conversation.php</td><td>$args</td></tr><tr><td>item_store</td><td>include/items.php</td><td>$d</td></tr><tr><td>item_store</td><td>include/items.php</td><td>$arr</td></tr><tr><td>item_store_update</td><td>include/items.php</td><td>$d</td></tr><tr><td>item_translate</td><td>include/items.php</td><td>$translate</td></tr><tr><td>item_translate</td><td>include/items.php</td><td>$translate</td></tr><tr><td>jot_networks</td><td>include/acl_selectors.php</td><td>$jotnets</td></tr><tr><td>jot_networks</td><td>include/conversation.php</td><td>$jotnets</td></tr><tr><td>jot_networks</td><td>mod/editblock.php</td><td>$jotnets</td></tr><tr><td>jot_networks</td><td>mod/editpost.php</td><td>$jotnets</td></tr><tr><td>jot_networks</td><td>mod/editwebpage.php</td><td>$jotnets</td></tr><tr><td>jot_networks</td><td>mod/editlayout.php</td><td>$jotnets</td></tr><tr><td>jot_tool</td><td>include/conversation.php</td><td>$jotplugins</td></tr><tr><td>jot_tool</td><td>mod/editblock.php</td><td>$jotplugins</td></tr><tr><td>jot_tool</td><td>mod/editpost.php</td><td>$jotplugins</td></tr><tr><td>jot_tool</td><td>mod/editwebpage.php</td><td>$jotplugins</td></tr><tr><td>jot_tool</td><td>mod/editlayout.php</td><td>$jotplugins</td></tr><tr><td>load_pdl</td><td>boot.php</td><td>$arr</td></tr><tr><td>local_dir_update</td><td>include/dir_fns.php</td><td>$arr</td></tr><tr><td>logged_in</td><td>include/oauth.php</td><td>$a-&gt;user</td></tr><tr><td>logged_in</td><td>include/api.php</td><td>$a-&gt;user</td></tr><tr><td>logged_in</td><td>include/security.php</td><td>$a-&gt;account</td></tr><tr><td>logged_in</td><td>include/security.php</td><td>$user_record</td></tr><tr><td>logging_out</td><td>include/auth.php</td><td>$args</td></tr><tr><td>login_hook</td><td>boot.php</td><td>$o</td></tr><tr><td>magic_auth</td><td>mod/magic.php</td><td>$arr</td></tr><tr><td>magic_auth_openid_success</td><td>mod/openid.php</td><td>$arr</td></tr><tr><td>magic_auth_openid_success</td><td>mod/openid.php</td><td>$arr</td></tr><tr><td>magic_auth_success</td><td>mod/post.php</td><td>$arr</td></tr><tr><td>main_slider</td><td>include/widgets.php</td><td>$arr</td></tr><tr><td>marital_selector</td><td>include/profile_selectors.php</td><td>$select</td></tr><tr><td>marital_selector_min</td><td>include/profile_selectors.php</td><td>$select</td></tr><tr><td>module_loaded</td><td>index.php</td><td>$x</td></tr><tr><td>mood_verbs</td><td>include/text.php</td><td>$arr</td></tr><tr><td>nav</td><td>include/nav.php</td><td>$x</td></tr><tr><td>network_content_init</td><td>mod/network.php</td><td>$arr</td></tr><tr><td>network_ping</td><td>mod/ping.php</td><td>$arr</td></tr><tr><td>network_tabs</td><td>include/conversation.php</td><td>$arr</td></tr><tr><td>network_to_name</td><td>include/contact_selectors.php</td><td>$nets</td></tr><tr><td>notifier_end</td><td>include/notifier.php</td><td>$target_item</td></tr><tr><td>notifier_hub</td><td>include/notifier.php</td><td>$narr</td></tr><tr><td>notifier_normal</td><td>include/deliver_hooks.php</td><td>$r[0]</td></tr><tr><td>obj_verbs</td><td>include/taxonomy.php</td><td>$arr</td></tr><tr><td>oembed_probe</td><td>include/oembed.php</td><td>$x</td></tr><tr><td>page_content_top</td><td>index.php</td><td>$a-&gt;page[content]</td></tr><tr><td>page_end</td><td>index.php</td><td>$a-&gt;page[content]</td></tr><tr><td>page_header</td><td>include/nav.php</td><td>$a-&gt;page[nav]</td></tr><tr><td>parse_atom</td><td>include/items.php</td><td>$arr</td></tr><tr><td>parse_link</td><td>mod/linkinfo.php</td><td>$arr</td></tr><tr><td>pdl_selector</td><td>include/comanche.php</td><td>$arr</td></tr><tr><td>perm_is_allowed</td><td>include/permissions.php</td><td>$arr</td></tr><tr><td>permissions_create</td><td>include/notifier.php</td><td>$perm_update</td></tr><tr><td>permissions_update</td><td>include/notifier.php</td><td>$perm_update</td></tr><tr><td>personal_xrd</td><td>mod/xrd.php</td><td>$arr</td></tr><tr><td>photo_post_end</td><td>include/photos.php</td><td>$ret</td></tr><tr><td>photo_post_end</td><td>include/photos.php</td><td>$ret</td></tr><tr><td>photo_upload_begin</td><td>include/attach.php</td><td>$arr</td></tr><tr><td>photo_upload_begin</td><td>include/photos.php</td><td>$args</td></tr><tr><td>photo_upload_end</td><td>include/attach.php</td><td>$ret</td></tr><tr><td>photo_upload_end</td><td>include/attach.php</td><td>$ret</td></tr><tr><td>photo_upload_end</td><td>include/attach.php</td><td>$ret</td></tr><tr><td>photo_upload_end</td><td>include/attach.php</td><td>$ret</td></tr><tr><td>photo_upload_end</td><td>include/attach.php</td><td>$ret</td></tr><tr><td>photo_upload_end</td><td>include/photos.php</td><td>$ret</td></tr><tr><td>photo_upload_end</td><td>include/photos.php</td><td>$ret</td></tr><tr><td>photo_upload_end</td><td>include/photos.php</td><td>$ret</td></tr><tr><td>photo_upload_end</td><td>include/photos.php</td><td>$ret</td></tr><tr><td>photo_upload_file</td><td>include/attach.php</td><td>$f</td></tr><tr><td>photo_upload_file</td><td>include/photos.php</td><td>$f</td></tr><tr><td>photo_upload_form</td><td>mod/photos.php</td><td>$ret</td></tr><tr><td>poke_verbs</td><td>include/text.php</td><td>$arr</td></tr><tr><td>post_local</td><td>include/zot.php</td><td>$arr</td></tr><tr><td>post_local</td><td>include/items.php</td><td>$arr</td></tr><tr><td>post_local</td><td>mod/item.php</td><td>$datarray</td></tr><tr><td>post_local_end</td><td>include/items.php</td><td>$arr</td></tr><tr><td>post_local_end</td><td>include/attach.php</td><td>$arr</td></tr><tr><td>post_local_end</td><td>include/attach.php</td><td>$arr</td></tr><tr><td>post_local_end</td><td>extend/addon/matrix/randpost/randpost.php</td><td>$x</td></tr><tr><td>post_local_end</td><td>extend/addon/matrix/randpost/randpost.php</td><td>$x</td></tr><tr><td>post_local_end</td><td>mod/mood.php</td><td>$arr</td></tr><tr><td>post_local_end</td><td>mod/like.php</td><td>$arr</td></tr><tr><td>post_local_end</td><td>mod/item.php</td><td>$datarray</td></tr><tr><td>post_local_end</td><td>mod/subthread.php</td><td>$arr</td></tr><tr><td>post_local_start</td><td>mod/item.php</td><td>$_REQUEST</td></tr><tr><td>post_mail</td><td>include/items.php</td><td>$arr</td></tr><tr><td>post_mail_end</td><td>include/items.php</td><td>$arr</td></tr><tr><td>post_remote</td><td>include/items.php</td><td>$arr</td></tr><tr><td>post_remote_end</td><td>include/items.php</td><td>$arr</td></tr><tr><td>post_remote_update</td><td>include/items.php</td><td>$arr</td></tr><tr><td>post_remote_update_end</td><td>include/items.php</td><td>$arr</td></tr><tr><td>prepare_body</td><td>include/text.php</td><td>$prep_arr</td></tr><tr><td>prepare_body_final</td><td>include/text.php</td><td>$prep_arr</td></tr><tr><td>prepare_body_init</td><td>include/text.php</td><td>$item</td></tr><tr><td>probe_well_known</td><td>include/probe.php</td><td>$ret</td></tr><tr><td>proc_run</td><td>boot.php</td><td>$arr</td></tr><tr><td>process_channel_sync_delivery</td><td>include/zot.php</td><td>$addon</td></tr><tr><td>profile_advanced</td><td>mod/profile.php</td><td>$o</td></tr><tr><td>profile_edit</td><td>mod/profiles.php</td><td>$arr</td></tr><tr><td>profile_photo_content_end</td><td>mod/profile_photo.php</td><td>$o</td></tr><tr><td>profile_post</td><td>mod/profiles.php</td><td>$_POST</td></tr><tr><td>profile_sidebar</td><td>include/identity.php</td><td>$arr</td></tr><tr><td>profile_sidebar_enter</td><td>include/identity.php</td><td>$profile</td></tr><tr><td>profile_tabs</td><td>include/conversation.php</td><td>$arr</td></tr><tr><td>register_account</td><td>include/account.php</td><td>$result</td></tr><tr><td>render_location</td><td>include/conversation.php</td><td>$locate</td></tr><tr><td>replace_macros</td><td>include/text.php</td><td>$arr</td></tr><tr><td>reverse_magic_auth</td><td>mod/rmagic.php</td><td>$arr</td></tr><tr><td>settings_account</td><td>mod/settings.php</td><td>$_POST</td></tr><tr><td>settings_form</td><td>mod/settings.php</td><td>$o</td></tr><tr><td>settings_post</td><td>mod/settings.php</td><td>$_POST</td></tr><tr><td>sexpref_selector</td><td>include/profile_selectors.php</td><td>$select</td></tr><tr><td>sexpref_selector_min</td><td>include/profile_selectors.php</td><td>$select</td></tr><tr><td>smilie</td><td>include/text.php</td><td>$params</td></tr><tr><td>smilie</td><td>extend/addon/matrix/smileybutton/smileybutton.php</td><td>$params</td></tr><tr><td>tagged</td><td>include/items.php</td><td>$arr</td></tr><tr><td>validate_channelname</td><td>include/identity.php</td><td>$arr</td></tr><tr><td>webfinger</td><td>mod/wfinger.php</td><td>$arr</td></tr><tr><td>well_known</td><td>mod/_well_known.php</td><td>$arr</td></tr><tr><td>zid</td><td>include/identity.php</td><td>$arr</td></tr><tr><td>zid_init</td><td>include/identity.php</td><td>$arr</td></tr><tr><td>zot_finger</td><td>include/zot.php</td><td>$ret</td></tr></table><p>Generated Tue Nov 03 21:19:02 PST 2015</p></div> \ No newline at end of file
diff --git a/doc/html/index.php b/doc/html/index.php
index 07da8b8d9..2e1b4277c 100644
--- a/doc/html/index.php
+++ b/doc/html/index.php
@@ -5,6 +5,7 @@
</head>
<body>
<h1>$Projectname Doxygen API Documentation not rendered</h1>
+
To get the Doxygen API Documentation you must render it with the program <a href="http://www.doxygen.org">Doxygen</a> (included in most distributions).
<pre>
$ doxygen util/Doxyfile
diff --git a/doc/install/sample-lighttpd.conf b/doc/install/sample-lighttpd.conf
deleted file mode 100644
index db26c3b64..000000000
--- a/doc/install/sample-lighttpd.conf
+++ /dev/null
@@ -1,90 +0,0 @@
-# See http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ConfigurationOptions
-
-### LOAD MODULES
-server.modules = (
- "mod_access",
- "mod_accesslog",
- "mod_fastcgi",
- "mod_redirect",
- "mod_rewrite"
-)
-
-### BASIC STUFF
-server.port = 80
-
-server.username = "http"
-
-server.groupname = "http"
-
-server.document-root = "/path/to/your/www/files" #adjust to your setup
-
-server.errorlog = "/var/log/lighttpd/error.log"
-
-accesslog.filename = "/var/log/lighttpd/access.log"
-
-### DISABLE DIR LISTING
-dir-listing.activate = "disable"
-
-### DISABLE REJECT EXPECT HEADER
-### (needed for curl POST requests - otherwise they fail with error 417)
-server.reject-expect-100-with-417 = "disable"
-
-### DEFINE SUPPORTED INDEX FILENAMES
-index-file.names = (
- "index.html",
- "index.htm",
- "index.php"
-)
-
-### DEFINE SUPPORTED MIME TYPES
-mimetype.assign = (
- ".html" => "text/html",
- ".htm" => "text/html",
- ".css" => "text/css",
- ".txt" => "text/plain",
- ".svg" => "image/svg+xml",
- ".jpg" => "image/jpeg",
- ".png" => "image/png"
-)
-
-### DONT EVER SERVE FILES WITH EXTENSION
-static-file.exclude-extensions = ( ".php" )
-
-### PHP WITH PHP-FPM
-### (needs php-fpm installed and running)
-fastcgi.server = (
- ".php" => (
- "localhost" => (
- "socket" => "/run/php-fpm/php-fpm.sock",
- "broken-scriptfilename" => "enable",
- "allow-x-sendfile" => "enable"
- )
- )
-)
-
-### ENABLE SSL
-$SERVER["socket"] == ":443" {
- ssl.engine = "enable"
- ssl.ca-file = "/etc/lighttpd/certs/ca-certs.crt" #adjust to your needs
- ssl.pemfile = "/etc/lighttpd/certs/red-ssl.crt" #adjust to your needs
-
- ssl.use-compression = "disable"
- ssl.use-sslv2 = "disable"
- ssl.use-sslv3 = "disable"
- ssl.cipher-list = "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA"
-}
-
-### RISTRICT ACCESS TO DIRECTORYS AND FILES
-$HTTP["url"] =~ "\.(out|log|htaccess)$" {
- url.access-deny = ("")
-}
-
-$HTTP["url"] =~ "(^|/)\.git|(^|/)store" {
- url.access-deny = ("")
-}
-
-### URL REWRITE RULES
-url.rewrite-if-not-file = (
- "^\/([^\?]*)\?(.*)$" => "/index.php?q=$1&$2",
- "^\/(.*)$" => "/index.php?q=$1"
-)
diff --git a/doc/install/sample-nginx.conf b/doc/install/sample-nginx.conf
deleted file mode 100644
index e9a80d226..000000000
--- a/doc/install/sample-nginx.conf
+++ /dev/null
@@ -1,142 +0,0 @@
-##
-# Red Nginx configuration
-# by Olaf Conradi
-#
-# On Debian based distributions you can add this file to
-# /etc/nginx/sites-available
-#
-# Then customize to your needs. To enable the configuration
-# symlink it to /etc/nginx/sites-enabled and reload Nginx using
-#
-# service nginx reload
-##
-
-##
-# You should look at the following URL's in order to grasp a solid understanding
-# of Nginx configuration files in order to fully unleash the power of Nginx.
-#
-# http://wiki.nginx.org/Pitfalls
-# http://wiki.nginx.org/QuickStart
-# http://wiki.nginx.org/Configuration
-##
-
-##
-# This configuration assumes your domain is example.net
-# You have a separate subdomain red.example.net
-# You want all red traffic to be https
-# You have an SSL certificate and key for your subdomain
-# You have PHP FastCGI Process Manager (php5-fpm) running on localhost
-# You have Red installed in /var/www/red
-##
-
-server {
- listen 80;
- server_name red.example.net;
-
- index index.php;
- root /var/www/red;
- rewrite ^ https://red.example.net$request_uri? permanent;
-}
-
-##
-# Configure Red with SSL
-#
-# All requests are routed to the front controller
-# except for certain known file types like images, css, etc.
-# Those are served statically whenever possible with a
-# fall back to the front controller (needed for avatars, for example)
-##
-
-server {
- listen 443 ssl;
- server_name red.example.net;
-
- ssl on;
- ssl_certificate /etc/nginx/ssl/red.example.net.chain.pem;
- ssl_certificate_key /etc/nginx/ssl/example.net.key;
- ssl_session_timeout 5m;
- ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
- ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-DSS-AES128-SHA256:DHE-DSS-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA:!DHE-RSA-AES128-GCM-SHA256:!DHE-RSA-AES256-GCM-SHA384:!DHE-RSA-AES128-SHA256:!DHE-RSA-AES256-SHA:!DHE-RSA-AES128-SHA:!DHE-RSA-AES256-SHA256:!DHE-RSA-CAMELLIA128-SHA:!DHE-RSA-CAMELLIA256-SHA;
- ssl_prefer_server_ciphers on;
-
- fastcgi_param HTTPS on;
-
- index index.php;
- charset utf-8;
- root /var/www/red;
- access_log /var/log/nginx/red.log;
- #Uncomment the following line to include a standard configuration file
- #Note that the most specific rule wins and your standard configuration
- #will therefore *add* to this file, but not override it.
- #include standard.conf
- # allow uploads up to 20MB in size
- client_max_body_size 20m;
- client_body_buffer_size 128k;
-
- # rewrite to front controller as default rule
- location / {
- if ($is_args != "") {
- rewrite ^/(.*) /index.php?q=$uri&$args last;
- }
- rewrite ^/(.*) /index.php?q=$uri last;
- }
-
- # make sure webfinger and other well known services aren't blocked
- # by denying dot files and rewrite request to the front controller
- location ^~ /.well-known/ {
- allow all;
- rewrite ^/(.*) /index.php?q=$uri&$args last;
- }
-
- # statically serve these file types when possible
- # otherwise fall back to front controller
- # allow browser to cache them
- # added .htm for advanced source code editor library
- location ~* \.(jpg|jpeg|gif|png|ico|css|js|htm|html|ttf|woff|svg)$ {
- expires 30d;
- try_files $uri /index.php?q=$uri&$args;
- }
-
- # block these file types
- location ~* \.(tpl|md|tgz|log|out)$ {
- deny all;
- }
-
- # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
- # or a unix socket
- location ~* \.php$ {
- # Zero-day exploit defense.
- # http://forum.nginx.org/read.php?2,88845,page=3
- # Won't work properly (404 error) if the file is not stored on this
- # server, which is entirely possible with php-fpm/php-fcgi.
- # Comment the 'try_files' line out if you set up php-fpm/php-fcgi on
- # another machine. And then cross your fingers that you won't get hacked.
- try_files $uri =404;
-
- # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
- fastcgi_split_path_info ^(.+\.php)(/.+)$;
-
- # With php5-cgi alone:
- # fastcgi_pass 127.0.0.1:9000;
-
- # With php5-fpm:
- fastcgi_pass unix:/var/run/php5-fpm.sock;
-
- include fastcgi_params;
- fastcgi_index index.php;
- fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
- }
-
- # deny access to all dot files
- location ~ /\. {
- deny all;
- }
-
-#deny access to store
-
- location ~ /store {
- deny all;
- }
-
-
-}
diff --git a/doc/main.bb b/doc/main.bb
index a3c84c860..8ba5d481b 100644
--- a/doc/main.bb
+++ b/doc/main.bb
@@ -1,87 +1,13 @@
-[img][baseurl]/assets/hashlogo.png[/img]
-[zrl=[baseurl]/help/about][b]What is the $Projectname?[/b][/zrl]
+[zrl=[baseurl]/help/about][b]What is $Projectname?[/b][/zrl]
$Projectname is a decentralized communication and publishing platform that enables you to keep in control of your communication needs by automatic encryption and finely grained access control. It's you, and only you who decides who is allowed to see your stuff.
[zrl=[baseurl]/help/features][b]$Projectname Features[/b][/zrl]
-The $Projectname is already running as a global distributed network and proves its versatility and scalability from standalone to huge sites on a daily basis.
-Think of standalone family communication platforms, distributed online communities, support forums, blogs and homepages. Or professional content providers with commercial premium channels and targeted content acces. Whatever you want, the $Projectname is there to cater to your creativity.
+$Projectname is already running as a global distributed network and proves its versatility and scalability from standalone to huge sites on a daily basis.
+Think of standalone family communication platforms, distributed online communities, support forums, blogs and homepages. Or professional content providers with commercial premium channels and targeted content acces. Whatever you want, $Projectname is there to cater to your creativity.
[zrl=[baseurl]/help/what_is_zot][b]Got Zot? Well, you should.[/b][/zrl]
-Zot is the great new communicaton protocol invented especially for the $Projectname. As a member you are no longer bound to a single site or hub thanks to "Nomadic Identities". Migrate easily to another server and keep your contacts intact, or clone it and run the same channel on several servers. Just in case one of them might shut down, you don't lose out. Plus once you are inside the $Projectname there is no need for you to authenticate twice, even when accessing another $Projectname site. Zot is what sets the $Projectname apart.
+Zot is the great new communicaton protocol invented especially for $Projectname. As a member you are no longer bound to a single site or hub thanks to "Nomadic Identities". Migrate easily to another server and keep your contacts intact, or clone it and run the same channel on several servers. Just in case one of them might shut down, you don't lose out. Plus once you are inside $Projectname there is no need for you to authenticate twice, even when accessing another $Projectname site. Zot is what sets $Projectname apart.
-[h3]Getting Started[/h3]
-[zrl=[baseurl]/help/Privacy]Privacy Policy[/zrl]
-[zrl=[baseurl]/help/registration]Account Registration[/zrl]
-[zrl=[baseurl]/help/accounts_profiles_channels_basics]You at the $Projectname: accounts, profiles and channels in short[/zrl]
-[zrl=[baseurl]/help/profiles]Profiles[/zrl]
-[zrl=[baseurl]/help/channels]Channels[/zrl]
-[zrl=[baseurl]/help/roles]Permission roles and Channel types[/zrl]
-[zrl=[baseurl]/help/first-post]Your first posting[/zrl]
-[zrl=[baseurl]/help/connecting_to_channels]Connecting To Other Channels[/zrl]
-[zrl=[baseurl]/help/permissions]Permissions And Encryption: You Are In Control[/zrl]
-[zrl=[baseurl]/help/cloud]Cloud Storage[/zrl]
-[zrl=[baseurl]/help/remove_account]Remove Channel or Account[/zrl]
-[h3]Members Help[/h3]
-[zrl=[baseurl]/help/tags_and_mentions]Tags and Mentions[/zrl]
-[zrl=[baseurl]/help/webpages]Web Pages[/zrl]
-[zrl=[baseurl]/help/bbcode]BBcode reference for posts and comments[/zrl]
-[zrl=[baseurl]/help/checking_account_quota_usage]Checking Account Quota Usage[/zrl]
-[zrl=[baseurl]/help/cloud_desktop_clients]Cloud Desktop Clients[/zrl]
-[zrl=[baseurl]/help/AdvancedSearch]Advanced Directory Search[/zrl]
-[zrl=[baseurl]/help/addons]Help With Addons[/zrl]
-[zrl=[baseurl]/help/diaspora_compat]Diaspora Communications Compatibility (Diaspora and Friendica)[/zrl]
-[zrl=[baseurl]/help/faq_members]FAQ For Members[/zrl]
-
-[h3]Administrators Help[/h3]
-[zrl=[baseurl]/help/install]Install[/zrl]
-[zrl=[baseurl]/help/red2pi]Installing Red on the Raspberry Pi[/zrl]
-[zrl=[baseurl]/help/troubleshooting]Troubleshooting Tips[/zrl]
-[zrl=[baseurl]/help/hidden_configs]Tweaking $Projectname's Hidden Configurations[/zrl]
-[zrl=[baseurl]/help/faq_admins]FAQ For Admins[/zrl]
-[zrl=[baseurl]/help/service_classes]Service Classes[/zrl]
-
-[h3]Technical Documentation[/h3]
-[zrl=[baseurl]/help/history]$Projectname history[/zrl]
-[zrl=[baseurl]/help/Zot---A-High-Level-Overview]A high level overview of Zot[/zrl]
-[zrl=[baseurl]/help/zot]An introduction to Zot[/zrl]
-[zrl=[baseurl]/help/zot_structures]Zot Stuctures[/zrl]
-[zrl=[baseurl]/help/comanche]Comanche Page Descriptions[/zrl]
-[zrl=[baseurl]/help/Creating-Templates]Creating Comanche Templates[/zrl]
-[zrl=[baseurl]/help/Widgets]Widgets[/zrl]
-[zrl=[baseurl]/help/plugins]Plugins[/zrl]
-[zrl=[baseurl]/help/doco]Contributing Documentation[/zrl]
-[zrl=[baseurl]/help/DerivedTheme1]Creating Derivative Themes[/zrl]
-[zrl=[baseurl]/help/schema_development]Schemas[/zrl]
-[zrl=[baseurl]/help/Translations]Translations[/zrl]
-[zrl=[baseurl]/help/developers]Developers[/zrl]
-[zrl=[baseurl]/help/intro_for_developers]Intro for Developers[/zrl]
-[zrl=[baseurl]/help/database]Database schema documantation[/zrl]
-[zrl=[baseurl]/help/api_functions]API functions[/zrl]
-[zrl=[baseurl]/help/api_posting]Posting to the red# using the API[/zrl]
-[zrl=[baseurl]/help/developer_function_primer]Red Functions 101[/zrl]
-[zrl=[baseurl]/doc/html/]Code Reference (Doxygen generated - sets cookies)[/zrl]
-[zrl=[baseurl]/help/to_do_doco]To-Do list for the Red Documentation Project[/zrl]
-[zrl=[baseurl]/help/to_do_code]To-Do list for Developers[/zrl]
-[zrl=[baseurl]/help/roadmap]Version 3 roadmap[/zrl]
-[zrl=[baseurl]/help/git_for_non_developers]Git for Non-Developers[/zrl]
-[zrl=[baseurl]/help/dev_beginner]Step-for-step manual for beginning developers[/zrl]
-
-[h3]Frequently Asked Questions For Developers[/h3]
-[zrl=[baseurl]/help/faq_developers]FAQ For Developers[/zrl]
-
-[h3]External Resources[/h3]
-[zrl=[baseurl]/help/external-resource-links]External Resource Links[/zrl]
-[url=https://github.com/redmatrix/redmatrix]Main Website[/url]
-[url=https://github.com/redmatrix/redmatrix-addons]Addon Website[/url]
-[url=https://zothub.com/channel/one]Development Channel[/url]
-[url=https://federated.social/channel/postgres]Postgres-specific $Projectname Admin Support Channel[/url]
-
-[url=[baseurl]/help/credits]$Projectname Credits[/url]
-
-[h3]About This $Projectname Hub[/h3]
-[zrl=[baseurl]/help/TermsOfService]Terms of Service For This Hub[/zrl]
-[zrl=[baseurl]/siteinfo]Hub Information (/siteinfo)[/zrl]
-[zrl=[baseurl]/siteinfo/json]Detailed Technical Hub Information in JSON format(/siteinfo/json)[/zrl]
diff --git a/doc/members.bb b/doc/members.bb
new file mode 100644
index 000000000..13339ef2d
--- /dev/null
+++ b/doc/members.bb
@@ -0,0 +1,25 @@
+[h2]Documentation for Hub Members[/h2]
+
+[h3]Getting Started[/h3]
+[zrl=[baseurl]/help/registration]Account Registration[/zrl]
+[zrl=[baseurl]/help/accounts_profiles_channels_basics]You at $Projectname: accounts, profiles and channels in short[/zrl]
+[zrl=[baseurl]/help/profiles]Profiles[/zrl]
+[zrl=[baseurl]/help/channels]Channels[/zrl]
+[zrl=[baseurl]/help/roles]Permission roles and Channel types[/zrl]
+[zrl=[baseurl]/help/first-post]Your first posting[/zrl]
+[zrl=[baseurl]/help/connecting_to_channels]Connecting To Other Channels[/zrl]
+[zrl=[baseurl]/help/permissions]Permissions And Encryption: You Are In Control[/zrl]
+[zrl=[baseurl]/help/cloud]Cloud Storage[/zrl]
+[zrl=[baseurl]/help/remove_account]Remove Channel or Account[/zrl]
+
+[h3]Members Help[/h3]
+[zrl=[baseurl]/help/tags_and_mentions]Tags and Mentions[/zrl]
+[zrl=[baseurl]/help/webpages]Web Pages[/zrl]
+[zrl=[baseurl]/help/bbcode]BBcode reference for posts and comments[/zrl]
+[zrl=[baseurl]/help/checking_account_quota_usage]Checking Account Quota Usage[/zrl]
+[zrl=[baseurl]/help/cloud_desktop_clients]Cloud Desktop Clients[/zrl]
+[zrl=[baseurl]/help/AdvancedSearch]Advanced Directory Search[/zrl]
+[zrl=[baseurl]/help/addons]Help With Addons[/zrl]
+[zrl=[baseurl]/help/diaspora_compat]Diaspora Communications Compatibility (Diaspora and Friendica)[/zrl]
+[zrl=[baseurl]/help/faq_members]FAQ For Members[/zrl]
+[zrl=[baseurl]/help/bugs]Bugs, Issues, and things that go bump in the night...[/zrl]
diff --git a/doc/plugins.bb b/doc/plugins.bb
index fdabbb7ab..f74276038 100644
--- a/doc/plugins.bb
+++ b/doc/plugins.bb
@@ -97,8 +97,8 @@ Let's go ahead and add some code to implement our post_local hook handler.
if(local_channel() != $item['uid']) /* Does this person own the post? */
return;
- if(($item['parent']) || ($item['item_restrict'])) {
- /* If the item has a parent, or item_restrict is non-zero, this is a comment or something else, not a status post. */
+ if(($item['parent']) || (! is_item_normal($item))) {
+ /* If the item has a parent, or is not "normal", this is a comment or something else, not a status post. */
return;
}
diff --git a/doc/red2pi.bb b/doc/red2pi.bb
index cede35fd9..18e7d325a 100644
--- a/doc/red2pi.bb
+++ b/doc/red2pi.bb
@@ -239,10 +239,10 @@ Cleanup: Remove the directory www/ (Git will not create files and folders in dir
Remove directory[code]pi@pi /var $ sudo rm -rf www/[/code]
Download the sources of $Projectname from GIT
-[code]pi@pi /var $ sudo git clone https://github.com/redmatrix/redmatrix.git www[/code]
+[code]pi@pi /var $ sudo git clone https://github.com/redmatrix/hubzilla.git www[/code]
Download the sources of the addons from GIT
-[code]pi@pi /var/www $ sudo git clone https://github.com/redmatrix/redmatrix-addons.git addon[/code]
+[code]pi@pi /var/www $ sudo git clone https://github.com/redmatrix/hubzilla-addons.git addon[/code]
Make user www-data the owner of the whole web directory (including subdirectories and files)
(TODO: This step has to be proofed by the next installation.)
diff --git a/doc/roadmap.bb b/doc/roadmap.bb
index b41938cfc..f57c76b74 100644
--- a/doc/roadmap.bb
+++ b/doc/roadmap.bb
@@ -55,5 +55,5 @@ Evangelism
Libzot
DNS abstraction for V3
- Allow a channel to live in an arbitrary "DNS" namespace, for instance "mike@core.redmatrix". Use our directories and zot to find the actual DNS location via redirection. This could potentially allow hubs to be hidden behind tor or alt-roots and accessible only via the matrix.
+ Allow a channel to live in an arbitrary "DNS" namespace, for instance "mike@core.hubzilla". Use our directories and zot to find the actual DNS location via redirection. This could potentially allow hubs to be hidden behind tor or alt-roots and accessible only via the matrix.
\ No newline at end of file
diff --git a/doc/theme_management.bb b/doc/theme_management.bb
new file mode 100644
index 000000000..5691f7c48
--- /dev/null
+++ b/doc/theme_management.bb
@@ -0,0 +1,10 @@
+[h1]Theme Management[/h1]
+$Projectname allows hub admins to easily add and update themes hosted in common git repositories.
+[h2]Add new theme repo to your hub[/h2]
+1. Navigate to your hub web root
+[code]root@hub:~# cd /var/www[/code]
+2. Add the theme repo and give it a name
+[code][nobb]root@hub:/var/www# util/add_theme_repo https://github.com/username/theme-repo.git UniqueThemeRepoName[/nobb][/code]
+[h2]Update existing theme repo[/h2]
+Update the repo by using
+[code]root@hub:/var/www# util/update_theme_repo UniqueThemeRepoName[/code]
diff --git a/doc/to_do_code.bb b/doc/to_do_code.bb
index 7ee342ed4..57f4b2e01 100644
--- a/doc/to_do_code.bb
+++ b/doc/to_do_code.bb
@@ -4,16 +4,20 @@ We need much more than this, but here are areas where developers can help. Pleas
[li]Documentation - see Red Documentation Project To-Do List[/li]
[li]Include TOS link in registration/verification email[/li]
-[li]forum widget with unread counts (requires the DB schema changes from v3/hubzilla to be viable)[/li]
+[li]Auto preview posts/comments (configurable timer kicks in the preview if not 0)[/li]
+[li]SAML 2.0 and OpenID Connect provider functionality[/li]
[li]Create bug tracker module[/li]
+[li]Filing posts - provide a dropdown menu integrated with the 'post actions menu'[/li]
+[li]integrate Mozilla Persona (possibly via plugin) https://github.com/mozilla/id-specs/blob/prod/browserid/index.md and become an idP[/li]
[li]translation plugins - moses or apertium[/li]
[li]plugins - provide 'disable' which is softer than 'uninstall' for those plugins which create additional DB tables[/li]
[li]Infinite scroll improvements (i.e. embedded page links) see http://scrollsample.appspot.com/items [/li]
[li]Finish the anti-spam bayesian engine[/li]
[li]implement an email permission denied bounce message from the sys channel[/li]
[li]provide a way for xchans with a certain network type to upgrade (unknown to rss, rss to statusnet, friendica-over-diaspora to friendica, for instance) based on new knowledge and/or redmatrix ability[/li]
-[li](done - HZ) If DAV folders exist, add an option to the Settings page to set a default folder for attachment uploads.[/li]
[li]Integrate the &quot;open site&quot; list with the register page[/li]
+[li]Support comments and member notes on documentation pages (to achieve an effect similar to php.net)[/li]
+[li]Support comments on webpages[/li]
[li]implement oembed provider interface[/li]
[li]refactor the oembed client interface so that we can safely sandbox remote content[/li]
[li]Many modern social apps now have both a profile photo and a "cover photo". Add support for this. [/li]
@@ -22,21 +26,17 @@ We need much more than this, but here are areas where developers can help. Pleas
[li]restricted access OAuth clients[/li]
[li](Advanced) create a UI for building Comanche pages[/li]
[li](less advanced) create a way to preview Comanche results on a preview page while editing on another page[/li]
-[li](done - HZ) Extend WebDAV to provide desktop access to photo albums[/li]
[li]External post connectors - create standard interface[/li]
[li]External post connectors, add popular services[/li]
[li](in progress Habeas Codice) service classes - provide a pluggable subscription payment gateway for premium accounts[/li]
[li](in progress Habeas Codice) service classes - account overview page showing resources consumed by channel. With special consideration this page can also be accessed at a meta level by the site admin to drill down on problematic accounts/channels.[/li]
-[li]Events module - fix permissions on events, and provide JS translation support for the calendar overview (done); integrate with calDAV[/li]
+[li]implement CalDAV/CardDAV sync[/li]
[li]Uploads - integrate #^[url=https://github.com/blueimp/jQuery-File-Upload]https://github.com/blueimp/jQuery-File-Upload[/url][/li]
-[li]Import/export - include events, things, etc.[/li]
[li]API extensions, for Twitter API - search, friending, threading. For Red API, lots of stuff[/li]
-[li]OAuth permission extensions[/li]
[li]Import channel from Diaspora/Friendica (Diaspora partially done)[/li]
[li]MediaGoblin photo "crosspost" connector[/li]
[li]Create management page/UI for extensible profile fields[/li]
[li]Create interface to include/exclude and re-order standard profile fields[/li]
-[li]Provide a mechanism to share page design elements in posts (just like apps) (done)[/li]
[li]App taxonomy[/li]
[li]Customisable App collection pages[/li]
[li]replace the tinymce visual editor and/or make the visual editor pluggable and responsive to different output formats. We probably want library/bbedit for bbcode. This needs a fair bit of work to catch up with our &quot;enhanced bbcode&quot;, but start with images, links, bold and highlight and work from there.[/li]
@@ -44,7 +44,7 @@ We need much more than this, but here are areas where developers can help. Pleas
[li]Create mobile clients for the top platforms - which involves extending the API so that we can do stuff far beyond the current crop of Twitter/Statusnet clients. Ditto for mobile themes. We can probably use something like the Friendica Android app as a base to start from.[/li]
[li](in progress Habeas Codice) Implement owned and exchangeable &quot;things&quot;.[/li]
[li]Family Account creation - using service classes (an account holder can create a certain number of sub-accounts which are all tied to their subscription - if the subscription lapses they all go away).[/li]
-[li]Put mod_admin under Comanche[/li]
+
In many cases some of the work has already been started and code exists so that you needn't start from scratch. Please contact one of the developer channels like Channel One (one@zothub.com) before embarking and we can tell you what we already have and provide some insights on how we envision these features fitting together.
diff --git a/doc/to_do_doco.bb b/doc/to_do_doco.bb
deleted file mode 100644
index d0f595b3e..000000000
--- a/doc/to_do_doco.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-[b]Documentation To-Do List[/b]
-
-[b]Documentation we need to write[/b]
-
- Database schema detailed descriptions
-
- Complete plugin hook documentation
-
- API documentation
-
- Function and code documentation (doxygen)
-
- New Member guide
-
- &quot;Extra Feature&quot; reference, description of each
-
- Detailed Personal Settings Documentation
-
- Administration Guide (post-install)
-
- Administration Guide (pre-install)
-
-Return to the [url=[baseurl]/help/main]Main documentation page[/url]
diff --git a/doc/troubleshooting.bb b/doc/troubleshooting.bb
index 6628e2df8..1a2bd7f12 100644
--- a/doc/troubleshooting.bb
+++ b/doc/troubleshooting.bb
@@ -14,7 +14,7 @@ In the case of "500" errors, the issues may often be logged in your webserver lo
We encourage you to try to the best of your abilities to use these logs combined with the source code in your possession to troubleshoot issues and find their cause. The community is often able to help, but only you have access to your site logfiles and it is considered a security risk to share them.
-If a code issue has been uncovered, please report it on the project bugtracker (https://github.com/redmatrix/redmatrix/issues). Again provide as much detail as possible to avoid us going back and forth asking questions about your configuration or how to duplicate the problem, so that we can get right to the problem and figure out what to do about it. You are also welcome to offer your own solutions and submit patches. In fact we encourage this as we are all volunteers and have little spare time available. The more people that help, the easier the workload for everybody. It's OK if your solution isn't perfect. Every little bit helps and perhaps we can improve on it.
+If a code issue has been uncovered, please report it on the project bugtracker (https://github.com/redmatrix/hubzilla/issues). Again provide as much detail as possible to avoid us going back and forth asking questions about your configuration or how to duplicate the problem, so that we can get right to the problem and figure out what to do about it. You are also welcome to offer your own solutions and submit patches. In fact we encourage this as we are all volunteers and have little spare time available. The more people that help, the easier the workload for everybody. It's OK if your solution isn't perfect. Every little bit helps and perhaps we can improve on it.
#include doc/macros/troubleshooting_footer.bb;
#include doc/macros/main_footer.bb;
diff --git a/doc/what_is_zot.bb b/doc/what_is_zot.bb
index 765600806..9285f4ec6 100644
--- a/doc/what_is_zot.bb
+++ b/doc/what_is_zot.bb
@@ -1,6 +1,6 @@
[b]What is Zot?[/b]
-Zot is the protocol that powers the $Projectname, providing three core capabilities: Communications, Identity, and Access Control.
+Zot is the protocol that powers $Projectname, providing three core capabilities: Communications, Identity, and Access Control.
The functionality it provides can also be described as follows:
@@ -9,43 +9,43 @@ The functionality it provides can also be described as follows:
[b][size=20]Communications[/size][/b]
-Zot is a revolutionary protocol which provides [i]decentralised communications[/i] and [i]identity management[/i] across the matrix. The resulting platform can provide web services comparable to those offered by large corporate providers, but without the large corporate provider and their associated privacy issues, insatiable profit drive, and walled-garden mentality.
+Zot is a revolutionary protocol which provides [i]decentralised communications[/i] and [i]identity management[/i] across the grid. The resulting platform can provide web services comparable to those offered by large corporate providers, but without the large corporate provider and their associated privacy issues, insatiable profit drive, and walled-garden mentality.
-Communications and social networking are an integral part of the matrix. Any channel (and any services provided by that channel) can make full use of feature-rich social communications on a global scale. These communications may be public or private - and private communications comprise not only fully encrypted transport, but also encrypted storage to help protect against accidental snooping and disclosure by rogue system administrators and internet service providers.
+Communications and social networking are an integral part of the grid. Any channel (and any services provided by that channel) can make full use of feature-rich social communications on a global scale. These communications may be public or private - and private communications comprise not only fully encrypted transport, but also encrypted storage to help protect against accidental snooping and disclosure by rogue system administrators and internet service providers.
-Zot allows a wide array of background services in the matrix, from offering friend suggestions, to directory services. You can also perform other things which would typically only be possibly on a centralized provider - such as &quot;Wall to Wall&quot; posts. Priivate/multiple profiles can be easily created, and web content can be tailored to the viewer via the [i]Affinity Slider[/i].
+Zot allows a wide array of background services in the grid, from offering friend suggestions, to directory services. You can also perform other things which would typically only be possibly on a centralized provider - such as &quot;Wall to Wall&quot; posts. Private/multiple profiles can be easily created, and web content can be tailored to the viewer via the [i]Affinity Slider[/i].
You won't find these features at all on other decentralized communication services. In addition to providing hub (server) decentralization, perhaps the most innovative and interesting Zot feature is its provision of [i]decentralized identity[/i] services.
[b][size=20]Identity[/size][/b]
-Zot's identity layer is unique. It provides [i]invisible single sign-on[/i] across all sites in the matrix.
+Zot's identity layer is unique. It provides [i]invisible single sign-on[/i] across all sites in the grid.
It also provides [i]nomadic identity[/i], so that your communications with friends, family, and or anyone else you're communicating with won't be affected by the loss of your primary communication node - either temporarily or permanently.
-The important bits of your identity and relationships can be backed up to a thumb drive, or your laptop, and may appear at any node in the matrix at any time - with all your friends and preferences intact.
+The important bits of your identity and relationships can be backed up to a thumb drive, or your laptop, and may appear at any node in the grid at any time - with all your friends and preferences intact.
Crucially, these nomadic instances are kept in sync so any instance can take over if another one is compromised or damaged. This protects you against not only major system failure, but also temporary site overloads and governmental manipulation or censorship.
-Nomadic identity, single sign-on, and Red's decentralization of hubs, we believe, introduce a high degree of degree of [i]resiliency[/i] and [i]persistence[/i] in internet communications, that are sorely needed amidst global trends towards corporate centralization, as well as mass and indiscriminate government surveillance and censorship.
+Nomadic identity, single sign-on, and $Projectname's decentralization of hubs, we believe, introduce a high degree of degree of [i]resiliency[/i] and [i]persistence[/i] in internet communications, that are sorely needed amidst global trends towards corporate centralization, as well as mass and indiscriminate government surveillance and censorship.
-As you browse the matrix, viewing channels and their unique content, you are seamlessly authenticated as you go, even across completely different server hubs. No passwords to enter. Nothing to type. You're just greeted by name on every new site you visit.
+As you browse the grid, viewing channels and their unique content, you are seamlessly authenticated as you go, even across completely different server hubs. No passwords to enter. Nothing to type. You're just greeted by name on every new site you visit.
-How does Zot do that? We call it [i]magic-auth[/i], because Red hides the details of the complexities that go into single sign-on logins, and nomadic identities, from the experience of browsing on the matrix. This is one of the design goals of Red: to increase privacy, and freedom on the web, while reducing the complexity and tedium brought by the need to enter new passwords and user names for every different sight that someone might visit online.
+How does Zot do that? We call it [i]magic-auth[/i], because $Projectname hides the details of the complexities that go into single sign-on logins, and nomadic identities, from the experience of browsing on the grid. This is one of the design goals of $Projectname: to increase privacy, and freedom on the web, while reducing the complexity and tedium brought by the need to enter new passwords and user names for every different sight that someone might visit online.
-You login only once on your home hub (or any nomadic backup hub you have chosen). This allows you to access any authenticated services provided anywhere in the matrix - such as shopping, blogs, forums, and access to private information. This is just like the services offered by large corporate providers with huge user databases; however you can be a member of this community, as well as a server on this network using a $35 Rasberry Pi. Your password isn't stored on a thousand different sites, or even worse, only on a few sites like Google and Facebook, beyond your direct control.
+You login only once on your home hub (or any nomadic backup hub you have chosen). This allows you to access any authenticated services provided anywhere in the grid - such as shopping, blogs, forums, and access to private information. This is just like the services offered by large corporate providers with huge user databases; however you can be a member of this community, as well as a server on this network using a $35 Rasberry Pi. Your password isn't stored on a thousand different sites, or even worse, only on a few sites like Google and Facebook, beyond your direct control.
-You cannot be silenced. You cannot be removed from the matrix, unless you yourself choose to exit it.
+You cannot be silenced. You cannot be removed from the grid, unless you yourself choose to exit it.
[b][size=20]Access Control[/size][/b]
-Zot's identity layer allows you to provide fine-grained permissions to any content you wish to publish - and these permissions extend across the $Projectname. This is like having one super huge website made up of an army of small individual websites - and where each channel in the matrix can completely control their privacy and sharing preferences for any web resources they create.
+Zot's identity layer allows you to provide fine-grained permissions to any content you wish to publish - and these permissions extend across $Projectname. This is like having one super huge website made up of an army of small individual websites - and where each channel in the grid can completely control their privacy and sharing preferences for any web resources they create.
-Currently, the matrix supports communications, photo albums, events, and files. This will be extended in the future to provide content management services (web pages) and cloud storage facilities, such as WebDAV and multi-media libraries. Every object and how it is shared and with whom is completely under your control.
+Currently, the grid supports communications, photo albums, events, and files. This will be extended in the future to provide content management services (web pages) and cloud storage facilities, such as WebDAV and multi-media libraries. Every object and how it is shared and with whom is completely under your control.
-This type of control is available on large corporate providers such as Facebook and Google, because they own the user database. Within the matrix, there is no need for a huge user databaseon your machine - because the matrix [i]is[/i] your user database. It has what is essentially infinite capacity (limited by the total number of hubs online across the internet), and is spread amongst hundreds, and potentially millions of computers.
+This type of control is available on large corporate providers such as Facebook and Google, because they own the user database. Within the grid, there is no need for a huge user databaseon your machine - because the grid [i]is[/i] your user database. It has what is essentially infinite capacity (limited by the total number of hubs online across the internet), and is spread amongst hundreds, and potentially millions of computers.
-Access can be granted or denied for any resource, to any channel, or any group of channels; anywhere within the matrix. Others can access your content if you permit them to do so, and they do not even need to have an account on your hub. Your private photos cannot be viewed, because permission really work; they are not an addon that was added as an afterthought. If you aren't on the list of allowed viewers for a particular photo, you aren't going to look at it.
+Access can be granted or denied for any resource, to any channel, or any group of channels; anywhere within the grid. Others can access your content if you permit them to do so, and they do not even need to have an account on your hub. Your private photos cannot be viewed, because permission really work; they are not an addon that was added as an afterthought. If you aren't on the list of allowed viewers for a particular photo, you aren't going to look at it.
[b][size=18]Additional Resources and Links[/size][/b]
@@ -55,7 +55,7 @@ For more detailed, technical information about Zot, check out the following link
- [url=https://github.com/friendica/red/wiki/zot]Zot development specification[/url]
- - [url=https://github.com/redmatrix/redmatrix/blob/master/include/zot.php]Zot reference implementation in PHP[/url]
+ - [url=https://github.com/redmatrix/hubzilla/blob/master/include/zot.php]Zot reference implementation in PHP[/url]
#include doc/macros/main_footer.bb;