aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/Privacy.md77
-rw-r--r--doc/Widgets.md35
-rw-r--r--doc/about.bb24
-rw-r--r--doc/about/about.bb (renamed from doc/about/about_hubzilla.bb)17
-rw-r--r--doc/about/project.bb (renamed from doc/about/hubzilla_project.bb)3
-rw-r--r--doc/account_basics.bb38
-rw-r--r--doc/accounts.bb4
-rw-r--r--doc/addons.bb15
-rw-r--r--doc/admin/administrator_guide.md60
-rw-r--r--doc/bugs.bb21
-rw-r--r--doc/context/en/appman/help.html4
-rw-r--r--doc/context/en/apps/edit/help.html4
-rw-r--r--doc/context/en/apps/help.html6
-rw-r--r--doc/context/en/cards/help.html20
-rw-r--r--doc/context/en/channel/help.html4
-rw-r--r--doc/context/en/wiki/help.html10
-rw-r--r--doc/context/es-es/appman/help.html4
-rw-r--r--doc/context/es-es/apps/edit/help.html4
-rw-r--r--doc/context/es-es/apps/help.html6
-rw-r--r--doc/context/es-es/cards/help.html19
-rw-r--r--doc/context/es-es/cloud/help.html13
-rw-r--r--doc/contributor/covenant.html106
-rw-r--r--doc/database.bb4
-rw-r--r--doc/database/db_account.bb1
-rw-r--r--doc/dev-function-overview.md4
-rw-r--r--doc/developer/api_zot.bb27
-rw-r--r--doc/developer/covenant.bb47
-rw-r--r--doc/developer/developer_guide.bb178
-rw-r--r--doc/developer/developer_guide.md422
-rw-r--r--doc/developer/unorganized.md73
-rw-r--r--doc/developer/zot_protocol.bb19
-rw-r--r--doc/feature/saved_search.bb19
-rw-r--r--doc/feature/techlevels.bb15
-rw-r--r--doc/hook/author_is_pmable.bb14
-rw-r--r--doc/hook/can_comment_on_post.bb13
-rw-r--r--doc/hook/channel_links.bb12
-rw-r--r--doc/hook/connection_remove.bb9
-rw-r--r--doc/hook/legal_webbie.bb10
-rw-r--r--doc/hook/legal_webbie_text.bb7
-rw-r--r--doc/hook/probe_well_known.bb3
-rw-r--r--doc/hook/update_unseen.bb9
-rw-r--r--doc/hooklist.bb33
-rw-r--r--doc/main.bb13
-rw-r--r--doc/member/bbcode.html7
-rw-r--r--doc/member/member_guide.bb85
-rw-r--r--doc/members.bb25
-rw-r--r--doc/profiles.bb37
-rw-r--r--doc/project/governance.bb29
-rw-r--r--doc/project/toc.html5
-rw-r--r--doc/project/versions.bb30
-rw-r--r--doc/server_roles.bb27
-rw-r--r--doc/service_classes.bb38
-rw-r--r--doc/theme_management.bb10
-rw-r--r--doc/to_do_code.bb42
-rw-r--r--doc/to_do_doco.md31
-rw-r--r--doc/toc.html123
-rw-r--r--doc/tutorials/personal_channel.html10
57 files changed, 738 insertions, 1187 deletions
diff --git a/doc/Privacy.md b/doc/Privacy.md
deleted file mode 100644
index 1ac019f5a..000000000
--- a/doc/Privacy.md
+++ /dev/null
@@ -1,77 +0,0 @@
-Privacy Policy
-==============
-
-
-##Summary##
-
-
-Q: Who can see my content?
-
-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: $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", $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 $Projectname. These are provided by a **hub administrator** and may be public or private, paid or free.
-
-**hub administrator**
-
-The system operator of an individual hub.
-
-##Policies
-
-**Public Information**
-
-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.
-
-You MAY additionally provide other profile information. Any information which you provide in your "default" or **public profile** MAY be transmitted to other hubs in $Projectname and additionally MAY be displayed in the channel directory. You can restrict the viewing of this profile information. It may be restricted only to members of your hub, or only connections (friends), or other limited sets of viewers as you desire. If you wish for your profile to be restricted, you must set the appropriate privacy setting, or simply DO NOT provide additional information.
-
-**Content**
-
-Content you provide (status posts, photos, files, etc.) belongs to you. $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 other networks and websites and be visible in internet searches. If you do not wish this default behaviour please adjust your channel settings and restrict who can see your content.
-
-**Comments and Forum posts**
-
-Comments to posts that were created by others and posts which are designated as forum posts belong to you as the creator/author, but the distribution of these posts is not under your direct control, and you relinquish SOME rights to these items. These posts/comments MAY be re-distributed to others, and MAY be visible to anybody on the internet. In the case of comments, the creator of the "first message" in the thread (conversation) to which you are replying controls the distribution of all comments and replies to that message. They "own" and therefore have certain rights with regard to the entire conversation (including all comments contained within it). You can still edit or delete the comment, but the conversation owner also has rights to edit, delete, re-distribute, and backup/restore any or all the content from the conversation.
-
-**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 channel content CAN be seen in the database of every involved hub administrator, but private messages are obscured in the database. The latter means that it is very difficult, but NOT impossible for this content to be seen by a hub administrator. Private channel content and private messages are also stripped from email notifications. 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 $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 $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 $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
-
-$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 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.
-
-$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.
-
-#include doc/macros/main_footer.bb;
diff --git a/doc/Widgets.md b/doc/Widgets.md
index 8442bf687..7761b1833 100644
--- a/doc/Widgets.md
+++ b/doc/Widgets.md
@@ -117,6 +117,7 @@ Some/many of these widgets have restrictions which may restrict the type of page
* forums - provide a list of connected public forums with unseen counts for the current logged-in channel.
<br />&nbsp;<br />
+* activity - provide a list of authors of unread network content for the current logged-in channel.
* album - provides a widget containing a complete photo album from albums belonging to the page owner; this may be too large to present in a sidebar region as is best implemented as a content region widget.
* args:
@@ -128,14 +129,44 @@ Some/many of these widgets have restrictions which may restrict the type of page
Creating New Widgets
====================
-If you want a widget named 'slugfish', create widget/slugfish.php containing
+### Class Widgets
+
+To create a class-based widget named 'slugfish' create a file with the following contents:
+
+````
+<?php
+
+namespace Zotlabs\Widget;
+
+
+class Slugfish {
+
+ function widget($args) {
+
+ ... widget code goes here.
+ ... The function returns a string which is the HTML content of the widget.
+ ... $args is a named array which is passed any [var] variables from the layout editor
+ ... For instance [widget=slugfish][var=count]3[/var][/widget] will populate $args with
+ ... [ 'count' => 3 ]
+
+ }
+
+````
+
+The resultant file may be placed in widget/Slugfish/Slugfish.php , or Zotlabs/SiteWidgets/Slugfish.php . It also may be linked from a git repository using util/add_widget_repo.
+
+
+
+Traditional function based widget:
+
+If you want a widget named 'slugfish', create widget/widget_slugfish.php containing
<?php
function widget_slugfish($args) {
- .. widget code goes here
+ .. widget code goes here. See above information for class-based widgets for details.
}
diff --git a/doc/about.bb b/doc/about.bb
deleted file mode 100644
index 1ec1cf28e..000000000
--- a/doc/about.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-[b]About[/b]
-
-$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 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 aims to be skill and resource agnostic. It is easy to use by everyday computer users, as well as by systems administrators and developers.
-
-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, $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, $Projectname offers a number of unique goodies:
-
-[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 $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] $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/about/about_hubzilla.bb b/doc/about/about.bb
index e9485ffa6..b927e80c0 100644
--- a/doc/about/about_hubzilla.bb
+++ b/doc/about/about.bb
@@ -1,7 +1,7 @@
-[h3]What is Hubzilla?[/h3]
+[h3]What is $Projectname?[/h3]
$Projectname is a [b]free and open source[/b] set of web applications and services running on a special kind of web server, called a "hub", that can connect to other hubs in a decentralised network we like to call "the grid", providing sophisticated communications, identity, and access control services which work together seamlessly across domains and independent websites. It allows anybody to publicly or [b]privately[/b] publish content via "channels", which are the fundamental, cryptographically secured identities that provide authentication independently of the hubs which host them. This revolutionary liberation of online identity from individual servers and domains is called "nomadic identity", and it is powered by the Zot protocol, a new framework for decentralised access control with fine-grained, extensible permissions.
-[h3]Right... so what is Hubzilla?[/h3]
+[h3]Right... so what is $Projectname?[/h3]
From the practical perspective of hub members who use the software, $Projectname offers a variety of familiar, integrated web apps and services, including:
[ul]
[li]social networking discussion threads[/li]
@@ -15,14 +15,9 @@ While all of these apps and services can be found in other software packages, on
[h3]Software Stack[/h3]
The $Projectname software stack is a relatively standard webserver application written primarily in PHP/MySQL and [url=https://github.com/redmatrix/hubzilla/blob/master/install/INSTALL.txt]requiring little more than a web server, a MySQL-compatible database, and the PHP scripting language[/url]. It is designed to be easily installable by those with basic website administration skills on typical shared hosting platforms with a broad range of computing hardware. It is also easily extended via plugins and themes and other third-party tools.
-[h3]Additional Resources and Links[/h3]
-[list][*][url=http://hubzilla.org]Hubzilla project website[/url]
-[*][url=https://github.com/redmatrix/hubzilla]Hubzilla core code repository[/url]
-[*][url=https://github.com/redmatrix/hubzilla-addons]Hubzilla official addons repository[/url][/list]
-
[h3]Glossary[/h3]
[dl terms="b"]
-[*= hub] An instance of the Hubzilla software running on a standard web server
+[*= hub] An instance of this software running on a standard web server
[*= grid] The global network of hubs that exchange information with each other using the Zot protocol.
@@ -115,7 +110,7 @@ Posts and messages may be created with an expiration date, at which time they wi
[h4]Service Federation[/h4]
-In addition to addon "cross-post connectors" to a variety of alternate networks, there is native support for importation of content from RSS/Atom feeds and using this to create special channels. Also, an experimental but working implementation of the Diaspora protocol allows communication with people on the Friendica and Diaspora decentralised social networks. This is currently marked experimental because these networks do not have the same level of privacy and encryption features and abilities as $Projectname and may present privacy risks.
+In addition to addon "cross-post connectors" to a variety of alternate networks, there is native support for importation of content from RSS/Atom feeds and using this to create special channels. Plugins are also available to communicate with others using the Diaspora and GNU-Social (OStatus) protocols. These networks do not support nomadic identity or cross-domain access control; however basic communications are supported to/from Diaspora, Friendica, GNU-Social, Mastodon and other providers which use these protocols.
There is also experimental support for OpenID authentication which may be used in Access Control Lists. This is a work in progress. Your $Projectname hub may be used as an OpenID provider to authenticate you to external services which use this technology.
@@ -195,7 +190,7 @@ Any content created in $Projectname remains under the control of the member (or
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.
[h4]Previewing/Editing[/h4]
-Post can be previewed prior to sending and edited after sending.
+Posts and comments can be previewed prior to sending and edited after sending.
[h4]Voting/Consensus[/h4]
Posts can be turned into "consensus" items which allows readers to offer feedback, which is collated into "agree", "disagree", and "abstain" counters. This lets you gauge interest for ideas and create informal surveys.
@@ -206,4 +201,4 @@ $Projectname can be extended in a number of ways, through site customisation, pe
[h4]API[/h4]
-An API is available for use by third-party services. This is based originally on the early Twitter API (for which hundreds of third-party tools exist). It is currently being extended to provide access to facilities and abilities which are specific to $Projectname. Access may be provided by login/password or OAuth and client registration of OAuth applications is provided.
+An API is available for use by third-party services. A plugin also provides a basic implementation of the Twitter API (for which hundreds of third-party tools exist). Access may be provided by login/password or OAuth, and client registration of OAuth applications is provided.
diff --git a/doc/about/hubzilla_project.bb b/doc/about/project.bb
index 7a584687d..f9bc920f8 100644
--- a/doc/about/hubzilla_project.bb
+++ b/doc/about/project.bb
@@ -182,4 +182,5 @@ even if we have had our occasional disagreements.
[li]Simó Albert i Beltran[/li]
[li]Manuel Reva[/li]
[li]Manuel Jiménez Friaza[/li]
-[/list] \ No newline at end of file
+[li]Gustav Wall aka "neue medienordnung plus"[/li]
+[/list]
diff --git a/doc/account_basics.bb b/doc/account_basics.bb
deleted file mode 100644
index 664949d6e..000000000
--- a/doc/account_basics.bb
+++ /dev/null
@@ -1,38 +0,0 @@
-[b]Account Basics[/b]
-
-[b]Registration[/b]
-
-Not all $Projectname sites allow open registration. If registration is allowed, you will see a &quot;Register&quot; link immediately below the login prompts on the site home page. Following this link will take you to the site Registration page. On some sites it may redirect you to another site which allow registrations. As all $Projectname sites are linked, it does not matter where your account resides.
-
-[b]Your Email Address[/b]
-
-Please provide a valid email address. Your email address is never published. This address will be used to (optionally) send email notifications for incoming messages or items, and used to recover lost passwords.
-
-[b]Password[/b]
-
-Enter a password of your choice, and repeat it in the second box to ensure it was typed correctly. As $Projectname offers a decentralised identity, your account can log you in to many other websites.
-
-[b]Terms Of Service[/b]
-
-Click the link to read the site's terms of service. Once you've read them, tick the box in the register form to confirm.
-
-[b]Register[/b]
-
-Once you have provided the necessary details, click the 'Register' button. Some sites may require administrator approval before the registration is processed, and you will be alerted if this is the case. Please watch your email (including spam folders) for your registration approval.
-
-[b]Create a Channel[/b]
-
-Next, you will be presented with the &quot;Add a channel&quot; screen. Normally, your first channel will be one that represents you - so using your own name (or psuedonym) as the channel name is a good idea. The channel name should be thought of as a title, or brief description of your channel. The &quot;choose a short nickname&quot; box is similar to a &quot;username&quot; field. We will use whatever you enter here to create a channel address, which other people will use to connect to you, and you will use to log in to other sites. This looks like an email address, and takes the form nickname@siteyouregisteredat.xyz*
-
-When your channel is created you will be taken straight to your settings page where you can define permissions, enable features, etc. All these things are covered in the appropriate section of the helpfiles.
-
-*Note: It is not possible to change this address after creating the channel.
-
-See Also
-
-[zrl=[baseurl]/help/permissions]Permissions[/zrl]
-[zrl=[baseurl]/help/privacy]Privacy[/zrl]
-[zrl=[baseurl]/help/profiles]Profiles[/zrl]
-[zrl=[baseurl]/help/remove_account]Remove Account[/zrl]
-
-#include doc/macros/main_footer.bb;
diff --git a/doc/accounts.bb b/doc/accounts.bb
deleted file mode 100644
index 7c0378504..000000000
--- a/doc/accounts.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-This one still needs to be written.
-
-#include doc/macros/main_footer.bb;
-
diff --git a/doc/addons.bb b/doc/addons.bb
index 6fa9510f5..e6841d3d0 100644
--- a/doc/addons.bb
+++ b/doc/addons.bb
@@ -2,12 +2,12 @@
[list=1]
[*] abcjsplugin - Create musical scores in your posts
[*] adultphotoflag - prevents nsfw photos from being displayed in public albums
+[*] authchoose - only send identity assertions to sites of friends
[*] b2tbtn - provide button to go directly to top of page if you are scrolled a long way down
[*] bbmath - use complex math expressions in your posts
[*] bookmarker - replace #^ with bookmark link in posts
[*] buglink - provide a bug reporting icon in the lower-left corner of every page
[*] calc - a scientific calculator
-[*] cdav - CalDAV/CardDAV server
[*] chess - cross domain identity aware interactive chess games
[*] chords - generate fingering charts and alternatives for every known guitar chord
[*] custom_home - set a custom page as the hub start page
@@ -15,15 +15,19 @@
[*] dirstats - show some interesting statistics generated by the directory server
[*] docs - alternate documentation pages
[*] donate - provides a project donation page
+[*] dreamhost - provide a more reliable service on Dreamhost shared hosting
[*] dwpost - crosspost to Dreamwidth
+[*] emojione - allow emojis as emoticons
[*] extcron - use an external cron service to run your hub's scheduled tasks
+[*] firefox - provide a link to install the Firefox Sharing API
[*] flattrwidget - provides a "Flattr Us" button
[*] flip - create upside down text
[*] fortunate - displays random quote (fortune cookie). Requires setting up a fortune server.
[*] friendica - Friendica (DFRN) protocol. Under development.
[*] frphotos - import photo albums from Friendica
[*] gnusoc - GNU-Social (OStatus) protocol. Under development.
-[*] hexit - headecimal conversion tool
+[*] hexit - hexadecimal conversion tool
+[*] hilite - allow language-specific highlighted code blocks in posts
[*] hubwall - send an admin email to all hub accounts
[*] ijpost - crosspost to Insanejournal
[*] irc - connect to IRC chatrooms
@@ -50,12 +54,14 @@
[*] nsfw - Highly recommended plugin to collpase posts with inappropriate content
[*] openclipatar - choose a profile photo from hundreds of royalty free images
[*] openid - OpenID authentication and OpenID server. Your OpenID URL is [observer.baseurl]/id/[observer.webname]
+[*] opensearch - allow your site to become a browser search provider
[*] openstreetmap - render locations and maps using OpenStreetMap
[*] pageheader - display text at the top of every page on the site
[*] phpmailer - alternate mail delivery system with more configurability
[*] piwik - open source website analytics
[*] planets - set location field to a random planet from Star Wars
[*] pong - classic pong game
+[*] pubcrawl - ActivityPub protocol emulator
[*] pubsubhubbub - PuSH protocol for optimised delivery to feed subscribers (required by GNU-Social protocol)
[*] pumpio - crosspost to Pump.io
[*] qrator - generate QR code images
@@ -71,7 +77,7 @@
[*] smiley_pack - extend the built-in smilie (emoticon) support
[*] smileybutton - provides a smiley selector on the post window
[*] startpage - set a personal preferred page to redirect after logging in.
-[*] statistics_json - Diaspora statistics generator
+[*] statistics - Diaspora statistics generator
[*] statusnet - GNU-social and StatusNet crosspost [zrl=[baseurl]/help/addons_gnusocial]Posting To Gnu Social[/zrl]
[*] std_embeds - allow unfiltered embeds for popular providers like youtube, vimeo and soundcloud
[*] superblock - Highly recommended - completely block an offensive channel from your stream
@@ -79,9 +85,12 @@
[*] tictac - 3D tic-tac-toe
[*] torch - flashlight app
[*] tour - feature tour for new members
+[*] tripleaes - demo plugin for providing custom encryption algorithms
[*] twitter - crosspost to Twitter
+[*] twitter_api - Twitter/Statusnet compatible API
[*] upload_limits - discover what server setting (there are a few) may be causing large photo uploads to fail
[*] visage - show visitors to your channel
+[*] webmention - process webmentions
[*] wholikesme - provides a page to display what connections have 'liked' your posts the most
[*] webRTC - use an external server (mayfirst.org) to negotiate webRTC hookups
[*] wppost - crosspost to WordPress (or other wordpress XMLRPC service)
diff --git a/doc/admin/administrator_guide.md b/doc/admin/administrator_guide.md
index f21c55327..2fa52c7c6 100644
--- a/doc/admin/administrator_guide.md
+++ b/doc/admin/administrator_guide.md
@@ -150,7 +150,7 @@ web-based administrative tools to function:
#### Official addons
##### Installation
-Navigate to your webThen you should clone the addon repository (separately). We'll give this repository a nickname of 'hzaddons'. You can pull in other hubzilla addon repositories by giving them different nicknames::
+Navigate to your website. Then you should clone the addon repository (separately). We'll give this repository a nickname of 'hzaddons'. You can pull in other hubzilla addon repositories by giving them different nicknames::
cd mywebsite
util/add_addon_repo https://github.com/redmatrix/hubzilla-addons.git hzaddons
@@ -162,7 +162,7 @@ For keeping the addon tree updated, you should be on your top level website dire
util/update_addon_repo hzaddons
Create searchable representations of the online documentation. You may do this
- any time that the documentation is updated :
+any time that the documentation is updated :
cd mywebsite
util/importdoc
@@ -196,6 +196,45 @@ The installation script was originally designed for a small hardware server behi
1. `service apache2 reload`
1. Open your domain with a browser and step throught the initial configuration of $Projectname.
+### Recommended Addons
+
+We recommend the following addons be installed on all public sites:
+
+ nsfw - hide inappropriate posts/comments
+ superblock - block content from offensive channels
+
+### Federation Addons
+
+Several web communities have begun to converge using common protocols. The protocols involved are somewhat limited in their abilities. The GNU-Social protocol for instance offers no privacy modes, and the Diaspora protocol is somewhat restrictive in what kinds of communications are allowed. All comments must be signed in a very unique manner by the original author. The ActivityPub protocol is also being considered and may be supported at a future date. No other existing protocol supports nomadic location as used by this project. This presents some support challenges as some features work with some networks and don't work with others. Nevertheless the federation protocols allow connections to be made to a much larger community of people worldwide. They are provided as addons.
+
+> diaspora - The Diaspora Protocol used by Diaspora and Friendica. You should enable 'Diaspora Statistics' (statistics) first to enable all the available features.
+
+> gnusoc - The GNU-Social Protocol, used by GNU-Social, Mastodon and several other communities. This addon requires you first install the 'pubsubhubbub' service (also an addon).
+
+Each member of your site must choose whether or not to allow these protocols individually as they may conflict with several desirable core features and abilities of this software (such as channel migration and cloning). They do this from their 'Settings -> Feature/Addon Settings' page. The administrator may also set the following:
+
+ util/config system.diaspora_allowed 1
+ util/config system.gnusoc_allowed 1
+
+and enable these protocols automatically for all newly created channels.
+
+
+
+
+
+
+### Techlevels
+
+We've implemented several different mechanisms in order to reduce the apparent complexity and learning curve presented to new members. At the same time, we do not wish to limit any functionality for people who are able to grasp some slightly advanced technical technical features. The first mechanism was to move several features to an optional 'Features' page where they could be enabled at will; with the default interface kept somewhat lean.
+
+The problem we had now is that the number of features began to grow dramatically, and the Feature page is daunting in possibilities. There are also features present which probably should not be available to all members, but may be extremely useful to those with technical backgrounds.
+
+The techlevels seeeks to remedy this by grouping features within different levels of technical ability; starting at 0 (uncomfortable with technology), and up to 5 (Unix wizard or equivalent).
+
+When a new member registers, their account is provided a techlevel setting of 0. On the account settings page they may change this to any available level. A higher level opens more advanced features and possible interactions.
+
+The account administrator may also lock a particular level, lock a maximum level, or change/re-arrange the features available to any level. Those with the minimum level are typically not very exploratory and are unlikely to discover the advanced modes. This is by design. Those that look around and desire more interactions will find them. In the absence of administrator defaults they may choose any level. As they look at the features available to the level in question, it is generally expected that they will discover some features are beyond their comprehension and it is hoped they will back off to a level where the interface and features are comfortable to their skill level.
+
### Service Classes
Service classes allow you to set limits on system resources by limiting what individual
@@ -207,7 +246,7 @@ a _standard_ and _premium_ class using the following lines:
App::$config['system']['default_service_class']='standard'; // this is the default service class that is attached to every new account
- // configuration for parent service class
+ // configuration for standard service class
App::$config['service_class']['standard'] =
array('photo_upload_limit'=>2097152, // total photo storage limit per channel (here 2MB)
'total_identities' =>1, // number of channels an account can create
@@ -217,7 +256,7 @@ a _standard_ and _premium_ class using the following lines:
'attach_upload_limit' =>2097152, // total attachment storage limit per channel (here 2MB)
'chatters_inroom' =>20);
- // configuration for teacher service class
+ // configuration for premium service class
App::$config['service_class']['premium'] =
array('photo_upload_limit'=>20000000000, // total photo storage limit per channel (here 20GB)
'total_identities' =>20, // number of channels an account can create
@@ -307,6 +346,19 @@ empty:
1. After successful import (check!) delete your channel on the old RedMatrix Server.
1. On the $Projectname server visit new.hub/locs and upgrade to your channel to a primary one. And when the old Redmatrix server is still listed delete them here as well. Press "Sync" to inform all other server in the grid.
+### Administration
+
+#### Site Administration
+
+Administration of the website is commonly done through the admin webpage located at /admin on your website. In order to access this page you must have administration rights to the server. Administration rights are granted to the first account to register on your site, **provided** the email address of that account exactly matches the email address you provided as the administrator's email address during setup.
+
+There are several ways that this can fail and leave the system without an administrator account, for instance if the first account that was created provided a different email address than the administrator email address that was supplied during setup.
+
+For security reasons there is no web page or interface on the system which will give you administrator access. If you need to correct a situation where a system has no administrator account it **must** be done by editing the account table in the database. There is no other way. To do this, you will need to locate the entry in the account table which belongs to the desired administrator, and set 'account_roles' for that entry to 4096. You will then be able to access the admin page from your system's profile menu or directly via /admin .
+
+A hub can have multiple admins and there is no limit to how administrators you can have. Repeat the above process for every account you wish to provide with administration rights.
+
+
### Troubleshooting
#### Log files
diff --git a/doc/bugs.bb b/doc/bugs.bb
index f50337648..cc1ea3a20 100644
--- a/doc/bugs.bb
+++ b/doc/bugs.bb
@@ -1,31 +1,32 @@
[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]
+[b]$Projectname Community Server[/b]
-Hubzilla Community Server is open source software which is maintained by "the community" - essentially unpaid volunteers.
+$Projectname Community Server is open source software which is maintained by "the community" - essentially unpaid volunteers. Nobody is in charge of fixing bugs. We work together to keep the software and network running smoothly and error free. You are a member of this community, so we also require your help to provide quality software. There are no mythical "developers" who magically fix everything. It's up to all of us to pitch in and help.
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:".
+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:".
+
+It is highly recommended that bug reports be filed by hub administrators so that they can include the relevant logfile and database information relevant to the issue and be available to try workarounds and followup tests. Without this level of cooperation it may not be possible to fix the problem.
[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.
+The software instructions which provide this web service are open source and are available for your inspection. We encourage everybody to read it and see how everything works and verify that we aren't doing anything evil or negligent with your personal communications. 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.
+If you get a blank white screen when doing something, this is almost always a code or syntax error. There are instructions in the site .htconfig.php file which will allow the site administrator to 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]
-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.
+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. At this time, the 'Hubzilla Support' channel (support@gravizot.de) is the recommended forum for discussing bugs.
-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.
+If community members with software engineering training/expertise 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.
+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.
-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. Tell us what version you're running and any other details that may be unique about your site configuration.
+Other people 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. What page/URL were you looking at or what form were you filling in? If there were any error messages, don't say "there was an error message". Tell us exactly what the message said. Also tell us what hub you are using, what software version you're running and any other details that may be unique about your site configuration. It is understood that you might wish to keep some information and your connections private, however if you aren't willing to share the information other people need to reproduce/fix the problem, it may not get fixed.
\ No newline at end of file
diff --git a/doc/context/en/appman/help.html b/doc/context/en/appman/help.html
new file mode 100644
index 000000000..27cb03624
--- /dev/null
+++ b/doc/context/en/appman/help.html
@@ -0,0 +1,4 @@
+<dl class="dl-horizontal">
+ <dt>General</dt>
+ <dd>Edit individual properties of the app you selected. Categories allow you to sort your apps to help you find them in the list more easily. Support for custom apps you or your administrator may choose to create includes fields such as "Price of app" and "Location for purchase" that are not applicable to core Hubzilla apps.</dd>
+</dl> \ No newline at end of file
diff --git a/doc/context/en/apps/edit/help.html b/doc/context/en/apps/edit/help.html
new file mode 100644
index 000000000..1d378f962
--- /dev/null
+++ b/doc/context/en/apps/edit/help.html
@@ -0,0 +1,4 @@
+<dl class="dl-horizontal">
+ <dt>General</dt>
+ <dd>Edit or delete your apps using the control buttons beside each app icon in the list.</dd>
+</dl> \ No newline at end of file
diff --git a/doc/context/en/apps/help.html b/doc/context/en/apps/help.html
new file mode 100644
index 000000000..ad6daade5
--- /dev/null
+++ b/doc/context/en/apps/help.html
@@ -0,0 +1,6 @@
+<dl class="dl-horizontal">
+ <dt>General</dt>
+ <dd>This page shows you what apps are available to your channel, including both core apps and those supplied by addons. To add an app to the <a href='#' onclick='contextualHelpFocus("#app-menu", 1); return false;' title="Click to open...">app menu</a> "star" the app in the list below.</dd>
+ <dt>Manage Apps</dt>
+ <dd>Press the "Manage Apps" button to open a page where you can edit the name, categories, and other properties of your apps.</dd>
+</dl> \ No newline at end of file
diff --git a/doc/context/en/cards/help.html b/doc/context/en/cards/help.html
new file mode 100644
index 000000000..9dbed3f97
--- /dev/null
+++ b/doc/context/en/cards/help.html
@@ -0,0 +1,20 @@
+<dl class="dl-horizontal">
+ <dt>General</dt>
+ <dd>Cards represent a persistent area for collaboration that is separate from the social stream. They are somewhat more lightweight than webpages and wikis for quick organisation of information and have the advantage of allowing collaboration and commentary. They are well suited for helping to organise complex tasks where there are frequent updates and feedback.
+ </dd>
+ <dt>Add Card</dt>
+ <dd>
+ Creating a new card is very similar to composing a new post.<br><br>
+ <ul>
+ <li>
+ <b>Page link name</b>: The page link name is the name of the card for the static URL
+ </li>
+ <li>
+ <b>Title</b>: The title is displayed at the top of the card
+ </li>
+ <li>
+ <b>Categories</b>: If you have the <a href="/settings/features">Post Categories feature</a> enabled for your channel, then you can add categories to the card. These categories populate the <b>Categories</b> list on the left panel and allow filtering your collection of cards.
+ </li>
+ </ul>
+ </dd>
+</dl>
diff --git a/doc/context/en/channel/help.html b/doc/context/en/channel/help.html
index 6e3181cbf..0c5b99754 100644
--- a/doc/context/en/channel/help.html
+++ b/doc/context/en/channel/help.html
@@ -3,6 +3,4 @@
<dd>This is the home page of a channel. It is similar to someone's profile "wall" in a social network context. Posts created by the channel are displayed according to the observer's viewing permissions.</dd>
<dt>Create a Post</dt>
<dd>If you have permission to create posts on the channel page, then you will see the post editor at the top.</dd>
- <dt><a href='#' onclick='contextualHelpFocus("#tabs-collapse-1", 0); return false;' title="Click to highlight element...">Channel Content Tabs</a></dt>
- <dd>The channel content tabs are links to other content published by the channel. The <b>About</b> tab links to the channel profile. The <b>Photos</b> tab links to the channel photo galleries. The <b>Files</b> tab links to the general shared files published by the channel.</dd>
-</dl> \ No newline at end of file
+</dl>
diff --git a/doc/context/en/wiki/help.html b/doc/context/en/wiki/help.html
index 5ac9b22ae..5dee85375 100644
--- a/doc/context/en/wiki/help.html
+++ b/doc/context/en/wiki/help.html
@@ -1,12 +1,10 @@
<dl class="dl-horizontal">
<dt>General</dt>
<dd>Each wiki is a collection of pages, composed as Markdown-formatted text files.</dd>
- <dt><a href='#' onclick='contextualHelpFocus("#wikis-index", 1); return false;' title="Click to highlight element...">Wiki List</a></dt>
+ <dt>Wiki List</dt>
<dd>Wikis owned by the channel <i>that you have permission to view</i> are listed in the side panel.</dd>
- <dt><a href='#' onclick='contextualHelpFocus("#wiki-get-history", 0); return false;' title="Click to highlight element...">Page History</a></dt>
+ <dt>Page History</dt>
<dd>Every revision of a page is saved to allow quick reversion. Click the <b>History</b> tab to view a history of page revisions, including the date and author of each. The revert button will load the selected revision but will not automatically save the page.</dd>
- <dt><a href='#' onclick='contextualHelpFocus("#wiki_page_list", 1); return false;' title="Click to highlight element...">Pages</a></dt>
+ <dt>Pages</dt>
<dd>The list of pages in the wiki are listed in the <b>Wiki Pages</b> panel. Prior to saving page edits using the <b>Page</b> control dropdown menu, you may <a href='#' onclick='contextualHelpFocus("#id_commitMsg", 0); return false;' title="Click to highlight element...">enter a custom message</a> to be displayed in the <a href='#' onclick='contextualHelpFocus("#wiki-get-history", 0); return false;' title="Click to highlight element..."><b>Page History</b></a> viewer along with the revision.</dd>
- <dt><a href='#' onclick='contextualHelpFocus("#tabs-collapse-1", 0); return false;' title="Click to highlight element...">Channel Content Tabs</a></dt>
- <dd>The channel content tabs are links to other content published by the channel. The <b>About</b> tab links to the channel profile. The <b>Photos</b> tab links to the channel photo galleries. The <b>Files</b> tab links to the general shared files published by the channel.</dd>
-</dl> \ No newline at end of file
+</dl>
diff --git a/doc/context/es-es/appman/help.html b/doc/context/es-es/appman/help.html
new file mode 100644
index 000000000..1b799a52b
--- /dev/null
+++ b/doc/context/es-es/appman/help.html
@@ -0,0 +1,4 @@
+<dl class="dl-horizontal">
+ <dt>General</dt>
+ <dd>Editar las propiedades individuales de la aplicación seleccionada. Las categorías le permiten ordenar sus aplicaciones para ayudarle a encontrarlas más fácilmente en la lista. El soporte para aplicaciones personalizadas que usted o su administrador puedan elegir para crear incluye campos como "Precio de la aplicación" y "Ubicación para la compra" que no son aplicables a las aplicaciones principales de Hubzilla.</dd>
+</dl> \ No newline at end of file
diff --git a/doc/context/es-es/apps/edit/help.html b/doc/context/es-es/apps/edit/help.html
new file mode 100644
index 000000000..28e92328e
--- /dev/null
+++ b/doc/context/es-es/apps/edit/help.html
@@ -0,0 +1,4 @@
+<dl class="dl-horizontal">
+ <dt>General</dt>
+ <dd>Modificar o eliminar sus "apps" usando el botón de control que está junto al icono de cada aplicación de la lista.</dd>
+</dl> \ No newline at end of file
diff --git a/doc/context/es-es/apps/help.html b/doc/context/es-es/apps/help.html
new file mode 100644
index 000000000..a6bfd0093
--- /dev/null
+++ b/doc/context/es-es/apps/help.html
@@ -0,0 +1,6 @@
+<dl class="dl-horizontal">
+ <dt>General</dt>
+ <dd>Esta página le muestra qué aplicaciones están disponibles para su canal, incluyendo tanto las aplicaciones principales como las proporcionadas por addons. Para añadir una aplicación al <a href=' #' onclick=' contextualHelpFocus ("#app-menu", 1); devuelve false;' title="Pulsar para abrir...">menú de aplicaciones</a> "estrelle" la aplicación de la siguiente lista.</dd>
+ <dt>Gestionar las aplicaciones (apps)</dt>
+ <dd>Pulse el botón "Gestionar aplicaciones" para abrir una página en la podrá editar el nombre, las categorías y otras propiedades de sus aplicaciones.</dd>
+</dl>
diff --git a/doc/context/es-es/cards/help.html b/doc/context/es-es/cards/help.html
new file mode 100644
index 000000000..34889cd25
--- /dev/null
+++ b/doc/context/es-es/cards/help.html
@@ -0,0 +1,19 @@
+<dl class="dl-horizontal">
+ <dt>General</dt>
+ <dd>Las fichas representan un área persistente para la colaboración que está separada del stream social. Son algo más ligeras que las páginas web y los wikis para una rápida organización de la información y tienen la ventaja de permitir la colaboración y los comentarios. Son muy adecuados para ayudar a organizar tareas complejas en las que hay actualizaciones y retroalimentación frecuentes.</dd>
+ <dt>Añadir una ficha</dt>
+ <dd>
+ Crear una ficha nueva es muy parecido a componer un nuevo post.<br><br>
+ <ul>
+ <li>
+ <b>Nombre del enlace de la página</b>: Este nombre es el de la ficha para una URL estática
+ </li>
+ <li>
+ <b>Título</b>: El título se muestra en la parte de arriba de la ficha
+ </li>
+ <li>
+ <b>Categorías</b>: Si tiene activada la opción <a href="/settings/features">Temas de las entradas</a> en su canal, entonces puede añadirlas a la ficha. Estas categorías o temas se despliegan en la lista <b>Temas</b> en el panel de la izquierda y permiten filtrar su colección de fichas.
+ </li>
+ </ul>
+ </dd>
+</dl> \ No newline at end of file
diff --git a/doc/context/es-es/cloud/help.html b/doc/context/es-es/cloud/help.html
index 824fa5a94..af891da17 100644
--- a/doc/context/es-es/cloud/help.html
+++ b/doc/context/es-es/cloud/help.html
@@ -1,7 +1,6 @@
- <dl class="dl-horizontal">
- <dt>General</dt>
- <dd>Esta página muestra los ficheros en la "nube" de un canal. Los archivos visibles para el observador dependen de los permisos de archivo individuales establecidas por
- el propietario del canal. Si tiene permiso para crear o cargar ficheros, verá botones de control por encima de la lista de ficheros.</dd>
- <dt><a href="#" onclick='contextualHelpFocus("#tabs-collapse-1", 0); return false;' title="Pulsar en el elemento resaltado...">Pestañas de los contenidos del canal</a></dt>
- <dd>Las pestañas de los contenidos del canal son enlaces a otros contenidos publicados por el canal. La pestaña "<b>Mi perfil</b>" enlaza con el perfil del canal. La pestaña "<b>Fotos</b>" enlaza con las galerías de fotos. La pestaña "<b>Ficheros</b>" enlaza con los ficheros de cualquier tipo compartidos por el canal.</dd>
- </dl>
+<dl class="dl-horizontal">
+ <dt>General</dt>
+ <dd>Esta página muestra los archivos "cloud" de un canal. Los archivos visibles para el observador dependen de los permisos de fichero individuales establecidos por el propietario del canal. Si tiene permiso para crear o cargar archivos verá botones de control encima de la lista de ficheros. </dd>
+ <dt><a href='#' onclick='contextualHelpFocus("#tabs-collapse-1", 0); return false;' title="Pulsar en el elemento resaltado...">Pestañas de contenidos del canal</a></dt>
+ <dd>Las pestañas de contenidos del canal son enlaces a otros contenidos publicados por el canal. La pestaña <b>Mi canal</b> enlaza con el perfil del canal. La pestaña <b>Fotos</b> enlaza con las galerías de fotos del canal. La pestaña <b>Ficheros</b> enlaza con los ficheros compartidos publicados por el canal.</dd>
+</dl> \ No newline at end of file
diff --git a/doc/contributor/covenant.html b/doc/contributor/covenant.html
deleted file mode 100644
index 4facac24e..000000000
--- a/doc/contributor/covenant.html
+++ /dev/null
@@ -1,106 +0,0 @@
-<!DOCTYPE html>
-
-<html lang="en">
-<head>
- <meta charset="utf-8"/>
- <title>Contributor Covenant 1.4.0</title>
- <style>
- body {
- font-family: monospace;
- padding: 4em;
- }
- a {
- color: #990000;
- }
- </style>
- <link rel="alternate" hreflang="de" href="version/1/3/0/de/" />
- <link rel="alternate" hreflang="es" href="version/1/4/es/" />
- <link rel="alternate" hreflang="fr" href="version/1/3/0/fr/" />
- <link rel="alternate" hreflang="hu" href="version/1/3/0/hu/" />
- <link rel="alternate" hreflang="it" href="version/1/3/0/it/" />
- <link rel="alternate" hreflang="ja" href="version/1/3/0/ja/" />
- <link rel="alternate" hreflang="pl" href="version/1/4/pl/" />
- <link rel="alternate" hreflang="pt" href="version/1/3/0/pt/" />
- <link rel="alternate" hreflang="pt" href="version/1/3/0/pt_br/" />
- <link rel="alternate" hreflang="ru" href="version/1/3/0/ru/" />
- <link rel="alternate" hreflang="sl" href="version/1/4/sl/" />
- <link rel="alternate" hreflang="uk" href="version/1/4/uk/" />
-</head>
-
-<body>
-
-<h1>Contributor Covenant Code of Conduct</h1>
-
-<h2>Our Pledge</h2>
-
-<p>In the interest of fostering an open and welcoming environment, we as
-contributors and maintainers pledge to making participation in our project and
-our community a harassment-free experience for everyone, regardless of age, body
-size, disability, ethnicity, gender identity and expression, level of experience,
-nationality, personal appearance, race, religion, or sexual identity and
-orientation.</p>
-
-<h2>Our Standards</h2>
-
-<p>Examples of behavior that contributes to creating a positive environment
-include:</p>
-
-<ul>
- <li>Using welcoming and inclusive language</li>
- <li>Being respectful of differing viewpoints and experiences</li>
- <li>Gracefully accepting constructive criticism</li>
- <li>Focusing on what is best for the community</li>
- <li>Showing empathy towards other community members</li>
-</ul>
-
-<p>Examples of unacceptable behavior by participants include:</p>
-
-<ul>
- <li>The use of sexualized language or imagery and unwelcome sexual attention or advances</li>
- <li>Trolling, insulting/derogatory comments, and personal or political attacks</li>
- <li>Public or private harassment</li>
- <li>Publishing others' private information, such as a physical or electronic address, without explicit permission</li>
- <li>Other conduct which could reasonably be considered inappropriate in a professional setting</li>
-</ul>
-
-<h2>Our Responsibilities</h2>
-
-<p>Project maintainers are responsible for clarifying the standards of acceptable
-behavior and are expected to take appropriate and fair corrective action in
-response to any instances of unacceptable behavior.</p>
-
-<p>Project maintainers have the right and responsibility to remove, edit, or
-reject comments, commits, code, wiki edits, issues, and other contributions
-that are not aligned to this Code of Conduct, or to ban temporarily or
-permanently any contributor for other behaviors that they deem inappropriate,
-threatening, offensive, or harmful.</p>
-
-<h2>Scope</h2>
-
-<p>This Code of Conduct applies both within project spaces and in public spaces
-when an individual is representing the project or its community. Examples of
-representing a project or community include using an official project e-mail
-address, posting via an official social media account, or acting as an appointed
-representative at an online or offline event. Representation of a project may be
-further defined and clarified by project maintainers.</p>
-
-<h2>Enforcement</h2>
-
-<p>Instances of abusive, harassing, or otherwise unacceptable behavior may be
-reported by contacting the project team at project&#x40;hubzilla.org. All
-complaints will be reviewed and investigated and will result in a response that
-is deemed necessary and appropriate to the circumstances. The project team is
-obligated to maintain confidentiality with regard to the reporter of an incident.
-Further details of specific enforcement policies may be posted separately.</p>
-
-<p>Project maintainers who do not follow or enforce the Code of Conduct in good
-faith may face temporary or permanent repercussions as determined by other
-members of the project's leadership.</p>
-
-<h2>Attribution</h2>
-
-<p>This Code of Conduct is adapted from the <a href="http://contributor-covenant.org">Contributor Covenant</a>, version 1.4,
-available at <a href="http://contributor-covenant.org/version/1/4/">http://contributor-covenant.org/version/1/4</a>.</p>
-
-</body>
-</html>
diff --git a/doc/database.bb b/doc/database.bb
index 02a70e2c7..160ec505e 100644
--- a/doc/database.bb
+++ b/doc/database.bb
@@ -1,6 +1,4 @@
-[h2]Database Tables[/h2]
-[table]
-[tr][th]Table[/th][th]Description[/th][/tr]
+[h2]Database Tables[/h2][table border=1][tr][th]Table[/th][th]Description[/th][/tr]
[tr][td][zrl=[baseurl]/help/database/db_abconfig]abconfig[/zrl][/td][td]arbitrary storage for connections of local channels[/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]
diff --git a/doc/database/db_account.bb b/doc/database/db_account.bb
index 354f2d3a8..35d7a9eb3 100644
--- a/doc/database/db_account.bb
+++ b/doc/database/db_account.bb
@@ -58,7 +58,6 @@ define ( 'ACCOUNT_PENDING', 0x0010 );
* Account roles
*/
-define ( 'ACCOUNT_ROLE_ALLOWCODE', 0x0001 ); // 1 - this account can create content with PHP/Javascript
define ( 'ACCOUNT_ROLE_SYSTEM', 0x0002 ); // 2 - this is the special system account
define ( 'ACCOUNT_ROLE_DEVELOPER', 0x0004 );
define ( 'ACCOUNT_ROLE_ADMIN', 0x1000 ); // 4096 - this account is an administrator
diff --git a/doc/dev-function-overview.md b/doc/dev-function-overview.md
index fa8a98ff3..cd2526ead 100644
--- a/doc/dev-function-overview.md
+++ b/doc/dev-function-overview.md
@@ -15,10 +15,6 @@ Returns authenticated numeric channel_id if authenticated and connected to a cha
Returns authenticated string hash of Red global identifier, if authenticated via remote auth, or an empty string.
-* get_app()
-
-Returns the global app structure ($a). No longer used as App is a static class
-
* App::get_observer()
returns an xchan structure representing the current viewer if authenticated (locally or remotely).
diff --git a/doc/developer/api_zot.bb b/doc/developer/api_zot.bb
index f33faed17..b2c19d7a1 100644
--- a/doc/developer/api_zot.bb
+++ b/doc/developer/api_zot.bb
@@ -4,7 +4,20 @@ The API endpoints detailed below are relative to [code]api/z/1.0[/code], meaning
[h3]channel/export/basic[/h3]
-Export channel data
+Export basic channel data
+
+Options:
+ - sections
+ comma-separated list of data types to export
+
+ - posts
+ if true, return default sections plus 3 months of posts
+
+ If no sections are requested, the following sections are returned:
+ channel, connections, config, apps, chatrooms, events, webpages, mail, wikis
+
+ Files and large collections of posts may run into memory limits; these must generally be
+ requested separately.
[h3]channel/stream[/h3]
@@ -28,7 +41,7 @@ GET /api/z/1.0/files
Options:
- - hash
+ - filehash
return only entries matching hash (exactly)
- filename
@@ -286,7 +299,7 @@ list photo metadata
[h3]group[/h3]
-`GET /api/z/1.0/group`
+[code]GET /api/z/1.0/group[/code]
Description: list privacy groups
@@ -326,7 +339,7 @@ To use with API group_members, provide either 'group_id' from the id element ret
[h3]group_members[/h3]
-`GET /api/z/1.0/group_members`
+[code]GET /api/z/1.0/group_members[/code]
Required:
@@ -462,7 +475,7 @@ group_member+abook+xchan (DB join) for each member of the privacy group
An xchan is a global location independent channel and is the primary record for a network
identity. It may refer to channels on other websites, networks, or services.
-`GET /api/z/1.0/xchan`
+[code]GET /api/z/1.0/xchan[/code]
Required: one of [ address, hash, guid ] as GET parameters
@@ -506,7 +519,7 @@ Returns:
Create or update an item (post, activity, webpage, etc.)
-Usage: `POST /api/z/1.0/item/update`
+Usage: [code]POST /api/z/1.0/item/update[/code]
Description: item/update posts an item (typically a conversation item or post, but can be any item) using form input.
@@ -608,7 +621,7 @@ Optional:
application or network name to display with item
-- categories
+- category
comma separated categories for this item
diff --git a/doc/developer/covenant.bb b/doc/developer/covenant.bb
new file mode 100644
index 000000000..431cc74e9
--- /dev/null
+++ b/doc/developer/covenant.bb
@@ -0,0 +1,47 @@
+[size=large]Contributor Covenant Code of Conduct[/size]
+
+[h3]Our Pledge[/h3]
+
+In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
+
+[h3]Our Standards[/h3]
+
+Examples of behavior that contributes to creating a positive environment
+include:
+
+[list]
+ [*]Using welcoming and inclusive language
+ [*]Being respectful of differing viewpoints and experiences
+ [*]Gracefully accepting constructive criticism
+ [*]Focusing on what is best for the community
+ [*]Showing empathy towards other community members
+[/list]
+
+Examples of unacceptable behavior by participants include:
+
+[list]
+ [*]The use of sexualized language or imagery and unwelcome sexual attention or advances
+ [*]Trolling, insulting/derogatory comments, and personal or political attacks
+ [*]Public or private harassment
+ [*]Publishing others' private information, such as a physical or electronic address, without explicit permission
+ [*]Other conduct which could reasonably be considered inappropriate in a professional setting
+[/list]
+
+[h3]Our Responsibilities[/h3]
+
+Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
+
+[h3]Scope[/h3]
+
+This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
+
+[h3]Enforcement[/h3]
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at project&#x40;hubzilla.org. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
+
+[h3]Attribution[/h3]
+
+This Code of Conduct is adapted from the [url=http://contributor-covenant.org]Contributor Covenant[/url], version 1.4, available at [url=http://contributor-covenant.org/version/1/4/]http://contributor-covenant.org/version/1/4[/url].
+
diff --git a/doc/developer/developer_guide.bb b/doc/developer/developer_guide.bb
new file mode 100644
index 000000000..f8ba0c1d8
--- /dev/null
+++ b/doc/developer/developer_guide.bb
@@ -0,0 +1,178 @@
+[h3]Who is a $Projectname developer? Should I read this?[/h3]
+
+Anyone who contributes to making $Projectname better is a developer. There are many different and important ways you can contribute to this amazing technology, [i]even if you do not know how to write code[/i]. The software itself is only a part of the $Projectname project. You can contribute by
+[list]
+[*] translating text to your language so that people around the world have the opportunity to use $Projectname
+[*] promoting $Projectname and spreading awareness of the platform through blog posts, articles, and word-of-mouth
+[*] creating artwork and graphics for project assets such as icons and marketing material
+[*] supporting project infrastructure like the project website and demo servers
+[/list]
+[i]Software[/i] developers are of course welcomed; there are so many great ideas to implement and not enough people to make them all a reality! The $Projectname code base is an advanced and mature system, but the platform is still very flexible and responsive to new ideas.
+
+We're pretty relaxed when it comes to developers. We don't have a lot of rules. Some of us are over-worked and if you want to help we're happy to let you help. That said, attention to a few guidelines will make the process smoother and make it easier to work together. All developers are expected to abide by our [zrl=[baseurl]/help/developer/covenant]code of conduct[/zrl]. We have developers from across the globe with different abilities and different cultural backgrounds and different levels of patience. Our primary rule is to respect others. Sometimes this is hard and sometimes we have very different opinions of how things should work, but if everybody makes an effort, we'll get along just fine.
+
+This document will help you get started learning and contributing to $Projectname.
+
+[h3]Versions and Releases[/h3]
+
+$Projectname currently uses a standard version numbering sequence of $x.$y(.$z), for instance '1.12' or '1.12.1'. The first digit is the major version number. Major versions are released "roughly" once per year; often in December.
+
+The second digit is the minor release number. If this number is odd, it is a development version. If the number is even, it is a released version. Minor versions are released (moved from dev to master) typically once per month when development is 'stable', but this is likely to increase. Going forward minor releases will be made somewhere between one and three months; corresponding to a stable code point and when there is general community consensus that the current code base is stable enough to consider a release.
+
+The final digit is an interface or patch designator.
+
+The release process involves changing the version number (by definition the minor version number will be odd, and the minor number will be incremented). Once a year for a major release the major version will be incremented, and the minor number reset to 0.
+
+The release candidate is moved to a new branch; and testing will commence/continue for a period of 1-2 weeks afterward or until any significant issues have been resolved. This branch is usually labelled with RC (release candidate); for instance 1.8RC represents the pending release of version 1.8. At this time, the minor version number on the dev branch is incremented to the next odd number. (For instance 1.9). New development can then take place in the dev branch.
+
+Bug fixes should always be applied to 'dev' and from there merged forward (typically with git cherry-pick) to the RC branch and if necessary applied to the master or official release branch.
+
+At the time a release candidate is produced, the language strings file is frozen until a release is made. Translation work may continue, but all translations should be submitted to 'dev' and merged forward to RC.
+
+Once RC testing is completed, RC is merged to 'master' and the RC version designator removed; resulting in one final checkin to change the version number. The CHANGELOG file should also be updated at or just prior to this time. If there are merge conflicts during this final merge, the merge will be abandoned; and 'git merge -s ours' applied. This results in a replacement of master with the contents of the RC branch. Conflicts often arise with string updates which were made to master after the last release and cannot easily be resolved without hand editing. Since this is a release of tested code, hand editing is discouraged, and the replacement merge strategy should be used instead. It is assumed that RC now contains the most recent well-tested code.
+
+Once the release is live and merged to master, the RC branch may be removed.
+
+Fixes may be made to master after release. Where possible these should be made to dev and 'git cherry-pick' used to merge forward; which preserves the commit info and prevents merge conflicts in the next cycle. Only rarely does a patch only apply to the master branch. If necessary this can be made. If the change is severe, the interface version number should be incremented. This is at the discretion of the community. In any event, a 'git pull' of the master branch should always result in the latest release with any post-release patches applied.
+
+The interface number (the $z in $x.$y.$z) should be incremented in dev whenever a change is made which changes the interfaces or API in incompatible ways so that any external packages (especially addons and API clients) relying on a the current behaviour can discover and change their own interfaces accordingly at the point that it changed.
+
+[h3]Git repository branches[/h3]
+
+There are two official branches of the $Projectname git repo.
+[list]
+[*] The stable version is maintained on the [b]master[/b] branch. The latest commit in this branch is considered to be suitable for production hubs.
+[*] Experimental development occurs on the [b]dev[/b] branch, which is merged into [b]master[/b] when it is deemed tested and stable enough.
+[/list]
+
+[h3]Developer tools and workflows[/h3]
+
+[h4]Hub Snapshots[/h4]
+
+The [url=[baseurl]/help/admin/hub_snapshots]hub snapshots[/url] page provides instructions and scripts for taking complete snapshots of a hub to support switching between consistent and completely known states. This is useful to prevent situations where the content or database schema might be incompatible with the code.
+
+[h3]Translations[/h3]
+
+Our translations are managed through Transifex. If you wish to help out translating $Projectname to another language, sign up on transifex.com, visit [url=https://www.transifex.com/Friendica/red-matrix/]Transifex[/url] and request to join one of the existing language teams or create a new one. Notify one of the core developers when you have a translation update which requires merging, or ask about merging it yourself if you're comfortable with git and PHP. We have a string file called 'messages.po' which is gettext compliant and a handful of email templates, and from there we automatically generate the application's language files.
+
+[h4]Translation Process[/h4]
+
+The strings used in the UI of $Projectname is translated at [url=https://www.transifex.com/Friendica/red-matrix/]Transifex[/url] and then
+included in the git repository at github. If you want to help with translation
+for any language, be it correcting terms or translating $Projectname to a
+currently not supported language, please register an account at transifex.com
+and contact the Redmatrix translation team there.
+
+Translating $Projectname is simple. Just use the online tool at transifex. If you
+don't want to deal with git & co. that is fine, we check the status of the[/td][/tr]
+[tr]ranslations regularly and import them into the source tree at github so that
+others can use them.
+
+We do not include every translation from transifex in the source tree to avoid
+a scattered and disturbed overall experience. As an uneducated guess we have a
+lower limit of 50% translated strings before we include the language. This
+limit is judging only by the amount of translated strings under the assumption[/td][/tr]
+[tr]hat the most prominent strings for the UI will be translated first by a[/td][/tr]
+[tr]ranslation team. If you feel your translation useable before this limit,
+please contact us and we will probably include your teams work in the source[/td][/tr]
+[tr]ree.
+
+If you want to get your work into the source tree yourself, feel free to do so
+and contact us with and question that arises. The process is simple and
+$Projectname ships with all the tools necessary.
+
+The location of the translated files in the source tree is
+ /view/LNG-CODE/
+where LNG-CODE is the language code used, e.g. de for German or fr for French.
+For the email templates (the *.tpl files) just place them into the directory
+and you are done. The translated strings come as a "hmessages.po" file from[/td][/tr]
+[tr]ransifex which needs to be translated into the PHP file $Projectname uses. To do
+so, place the file in the directory mentioned above and use the "po2php"
+utility from the util directory of your $Projectname installation.
+
+Assuming you want to convert the German localization which is placed in
+view/de/hmessages.po you would do the following.
+
+1. Navigate at the command prompt to the base directory of your
+ $Projectname installation
+
+2. Execute the po2php script, which will place the translation
+ in the hstrings.php file that is used by $Projectname.
+
+ $> php util/po2php.php view/de/hmessages.po
+
+ The output of the script will be placed at view/de/hstrings.php where
+ froemdoca os expecting it, so you can test your translation mmediately.
+
+3. Visit your $Projectname page to check if it still works in the language you
+ just translated. If not try to find the error, most likely PHP will give
+ you a hint in the log/warnings.about the error.
+
+ For debugging you can also try to "run" the file with PHP. This should
+ not give any output if the file is ok but might give a hint for
+ searching the bug in the file.
+
+ $> php view/de/hstrings.php
+
+4. commit the two files with a meaningful commit message to your git
+ repository, push it to your fork of the $Projectname repository at github and
+ issue a pull request for that commit.
+
+[h4]Utilities[/h4]
+
+Additional to the po2php script there are some more utilities for translation
+in the "util" directory of the $Projectname source tree. If you only want to[/td][/tr]
+[tr]ranslate $Projectname into another language you wont need any of these tools most
+likely but it gives you an idea how the translation process of $Projectname
+works.
+
+For further information see the utils/README file.
+
+[h4]Known Problems[/h4]
+
+* $Projectname uses the language setting of the visitors browser to determain the
+ language for the UI. Most of the time this works, but there are some known
+ quirks.
+* the early translations are based on the friendica translations, if you
+ some rough translations please let us know or fix them at Transifex.
+
+[h3]Licensing[/h3]
+
+All code contributed to the project falls under the MIT license, unless otherwise specified. We will accept third-party code which falls under MIT, BSD and LGPL, but copyleft licensing (GPL, and AGPL) is only permitted in addons. It must be possible to completely remove the GPL (copyleft) code from the main project without breaking anything.
+
+[h3]Coding Style[/h3]
+
+In the interests of consistency we adopt the following code styling. We may accept patches using other styles, but where possible please try to provide a consistent code style. We aren't going to argue or debate the merits of this style, and it is irrelevant what project 'xyz' uses. This is not project 'xyz'. This is a baseline to try and keep the code readable now and in the future.
+[list]
+[*]All comments should be in English.
+[*]We use doxygen to generate documentation. This hasn't been consistently applied, but learning it and using it are highly encouraged.
+[*]Indentation is accomplished primarily with tabs using a tab-width of 4.
+[*]String concatenation and operators should be separated by whitespace. e.g. "$foo = $bar . 'abc';" instead of "$foo=$bar.'abc';"
+[*]Generally speaking, we use single quotes for string variables and double quotes for SQL statements. "Here documents" should be avoided. Sometimes using double quoted strings with variable replacement is the most efficient means of creating the string. In most cases, you should be using single quotes.
+[*]Use whitespace liberally to enhance readability. When creating arrays with many elements, we will often set one key/value pair per line, indented from the parent line appropriately. Lining up the assignment operators takes a bit more work, but also increases readability.
+[*]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.
+[*]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".
+[/list]
+
+[h3]File system layout[/h3]
+[table border=0]
+[th]Directory[/th][th]Description[/th][/tr]
+[tr][td]addon[/td][td]optional addons/plugins[/td][/tr]
+[tr][td]boot.php[/td][td]Every process uses this to bootstrap the application structure[/td][/tr]
+[tr][td]doc[/td][td]Help Files[/td][/tr]
+[tr][td]images[/td][td]core required images[/td][/tr]
+[tr][td]include[/td][td]The "model" in MVC - (back-end functions), also contains PHP "executables" for background processing[/td][/tr]
+[tr][td]index.php[/td][td]The front-end controller for web access[/td][/tr]
+[tr][td]install[/td][td]Installation and upgrade files and DB schema[/td][/tr]
+[tr][td]library[/td][td]Third party modules (must be license compatible)[/td][/tr]
+[tr][td]mod[/td][td]Controller modules based on URL pathname (e.g. [url=http://sitename/foo]http://sitename/foo[/url] loads mod/foo.php)[/td][/tr]
+[tr][td]mod/site/[/td][td]site-specific mod overrides, excluded from git[/td][/tr]
+[tr][td]util[/td][td]translation tools, main English string database and other miscellaneous utilities[/td][/tr]
+[tr][td]version.inc[/td][td]contains current version (auto-updated via cron for the master repository and distributed via git)[/td][/tr]
+[tr][td]view[/td][td]theming and language files[/td][/tr]
+[tr][td]view/(css,js,img,php,tpl)[/td][td]default theme files[/td][/tr]
+[tr][td]view/(en,it,es ...)[/td][td]language strings and resources[/td][/tr]
+[tr][td]view/theme/[/td][td]individual named themes containing (css,js,img,php,tpl) over-rides[/td][/tr]
+[/table]
+
+[b][url=[baseurl]/help/developer/unorganized]More information needing re-organization and updating...[/url][/b]
diff --git a/doc/developer/developer_guide.md b/doc/developer/developer_guide.md
deleted file mode 100644
index fa50de8a1..000000000
--- a/doc/developer/developer_guide.md
+++ /dev/null
@@ -1,422 +0,0 @@
-### Who is a Hubzilla developer? Should I read this?
-
-Anyone who contributes to making Hubzilla better is a developer. There are many different and important ways you can contribute to this amazing technology, _even if you do not know how to write code_. The software itself is only a part of the Hubzilla project. You can contribute by
-
-* translating text to your language so that people around the world have the opportunity to use Hubzilla
-* promoting Hubzilla and spreading awareness of the platform through blog posts, articles, and word-of-mouth
-* creating artwork and graphics for project assets such as icons and marketing material
-* supporting project infrastructure like the project website and demo servers
-
-_Software_ developers are of course welcomed; there are so many great ideas to implement and not enough people to make them all a reality! The Hubzilla code base is an advanced and mature system, but the platform is still very flexible and responsive to new ideas.
-
-This document will help you get started learning and contributing to Hubzilla.
-
-### Versioning system
-
-The versioning system is similar to the popular semantic versioning but less stringent. Given x.y.z, x changes yearly. y changes for "stable" monthly builds, and z increments when there are interface changes. We maintain our date and build numbers for medium grain version control (commits within a certain date range) and of course git revs for fine grained control.
-
-### Git repository branches
-
-There are two official branches of the Hubzilla git repo.
-
-* The stable version is maintained on the **master** branch. The latest commit in this branch is considered to be suitable for production hubs.
-* Experimental development occurs on the **dev** branch, which is merged into **master** when it is deemed tested and stable enough.
-
-### Developer tools and workflows
-
-#### Hub Snapshots
-
-The [hub snapshots](/help/admin/hub_snapshots) page provides instructions and scripts for taking complete
-snapshots of a hub to support switching between consistent and completely known
-states. This is useful to prevent situations where the content or database schema
-might be incompatible with the code.
-
-### Translations
-
-Our translations are managed through Transifex. If you wish to help out translating Hubzilla to another language, sign up on transifex.com, visit [https://www.transifex.com/projects/p/red-matrix/](https://www.transifex.com/projects/p/red-matrix/) and request to join one of the existing language teams or create a new one. Notify one of the core developers when you have a translation update which requires merging, or ask about merging it yourself if you're comfortable with git and PHP. We have a string file called 'messages.po' which is gettext compliant and a handful of email templates, and from there we automatically generate the application's language files.
-
-#### Translation Process
-
-The strings used in the UI of Hubzilla is translated at [Transifex][1] and then
-included in the git repository at github. If you want to help with translation
-for any language, be it correcting terms or translating Hubzilla to a
-currently not supported language, please register an account at transifex.com
-and contact the Redmatrix translation team there.
-
-Translating Hubzilla is simple. Just use the online tool at transifex. If you
-don't want to deal with git & co. that is fine, we check the status of the
-translations regularly and import them into the source tree at github so that
-others can use them.
-
-We do not include every translation from transifex in the source tree to avoid
-a scattered and disturbed overall experience. As an uneducated guess we have a
-lower limit of 50% translated strings before we include the language. This
-limit is judging only by the amount of translated strings under the assumption
-that the most prominent strings for the UI will be translated first by a
-translation team. If you feel your translation useable before this limit,
-please contact us and we will probably include your teams work in the source
-tree.
-
-If you want to get your work into the source tree yourself, feel free to do so
-and contact us with and question that arises. The process is simple and
-Hubzilla ships with all the tools necessary.
-
-The location of the translated files in the source tree is
- /view/LNG-CODE/
-where LNG-CODE is the language code used, e.g. de for German or fr for French.
-For the email templates (the *.tpl files) just place them into the directory
-and you are done. The translated strings come as a "hmessages.po" file from
-transifex which needs to be translated into the PHP file Hubzilla uses. To do
-so, place the file in the directory mentioned above and use the "po2php"
-utility from the util directory of your Hubzilla installation.
-
-Assuming you want to convert the German localization which is placed in
-view/de/hmessages.po you would do the following.
-
-1. Navigate at the command prompt to the base directory of your
- Hubzilla installation
-
-2. Execute the po2php script, which will place the translation
- in the hstrings.php file that is used by Hubzilla.
-
- $> php util/po2php.php view/de/hmessages.po
-
- The output of the script will be placed at view/de/hstrings.php where
- froemdoca os expecting it, so you can test your translation mmediately.
-
-3. Visit your Hubzilla page to check if it still works in the language you
- just translated. If not try to find the error, most likely PHP will give
- you a hint in the log/warnings.about the error.
-
- For debugging you can also try to "run" the file with PHP. This should
- not give any output if the file is ok but might give a hint for
- searching the bug in the file.
-
- $> php view/de/hstrings.php
-
-4. commit the two files with a meaningful commit message to your git
- repository, push it to your fork of the Hubzilla repository at github and
- issue a pull request for that commit.
-
-#### Utilities
-
-Additional to the po2php script there are some more utilities for translation
-in the "util" directory of the Hubzilla source tree. If you only want to
-translate Hubzilla into another language you wont need any of these tools most
-likely but it gives you an idea how the translation process of Hubzilla
-works.
-
-For further information see the utils/README file.
-
-#### Known Problems
-
-* Hubzilla uses the language setting of the visitors browser to determain the
- language for the UI. Most of the time this works, but there are some known
- quirks.
-* the early translations are based on the friendica translations, if you
- some rough translations please let us know or fix them at Transifex.
-
-### To-be-organized information
-
-**Here is how you can join us.**
-
-First, get yourself a working git package on the system where you will be
-doing development.
-
-Create your own github account.
-
-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
-
-Then go to your github page and create a "Pull request" when you are ready
-to notify us to merge your work.
-
-
-**Important**
-
-Please pull in any changes from the project repository and merge them with your work **before** issuing a pull request. We reserve the right to reject any patch which results in a large number of merge conflicts. This is especially true in the case of language translations - where we may not be able to understand the subtle differences between conflicting versions.
-
-Also - **test your changes**. Don't assume that a simple fix won't break something else. If possible get an experienced Red developer to review the code.
-
-
-**Licensing**
-
-All code contributed to the project falls under the MIT license, unless otherwise specified. We will accept third-party code which falls under MIT, BSD and LGPL, but copyleft licensing (GPL, and AGPL) is only permitted in addons. It must be possible to completely remove the GPL (copyleft) code from the main project without breaking anything.
-
-**Coding Style**
-
-In the interests of consistency we adopt the following code styling. We may accept patches using other styles, but where possible please try to provide a consistent code style. We aren't going to argue or debate the merits of this style, and it is irrelevant what project 'xyz' uses. This is not project 'xyz'. This is a baseline to try and keep the code readable now and in the future.
-
-* All comments should be in English.
-
-* We use doxygen to generate documentation. This hasn't been consistently applied, but learning it and using it are highly encouraged.
-
-* Indentation is accomplished primarily with tabs using a tab-width of 4.
-
-* String concatenation and operators should be separated by whitespace. e.g. "$foo = $bar . 'abc';" instead of "$foo=$bar.'abc';"
-
-* Generally speaking, we use single quotes for string variables and double quotes for SQL statements. "Here documents" should be avoided. Sometimes using double quoted strings with variable replacement is the most efficient means of creating the string. In most cases, you should be using single quotes.
-
-* Use whitespace liberally to enhance readability. When creating arrays with many elements, we will often set one key/value pair per line, indented from the parent line appropriately. Lining up the assignment operators takes a bit more work, but also increases readability.
-
-* 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.
-
-
-**File system layout:**
-
-[addon] optional addons/plugins
-
-[boot.php] Every process uses this to bootstrap the application structure
-
-[doc] Help Files
-
-[images] core required images
-
-[include] The "model" in MVC - (back-end functions), also contains PHP "executables" for background processing
-
-[index.php] The front-end controller for web access
-
-[install] Installation and upgrade files and DB schema
-
-[library] Third party modules (must be license compatible)
-
-[mod] Controller modules based on URL pathname (e.g. #^[url=http://sitename/foo]http://sitename/foo[/url] loads mod/foo.php)
-
-[mod/site/] site-specific mod overrides, excluded from git
-
-[util] translation tools, main English string database and other miscellaneous utilities
-
-[version.inc] contains current version (auto-updated via cron for the master repository and distributed via git)
-
-[view] theming and language files
-
-[view/(css,js,img,php,tpl)] default theme files
-
-[view/(en,it,es ...)] language strings and resources
-
-[view/theme/] individual named themes containing (css,js,img,php,tpl) over-rides
-
-**The Database:**
-
-
-| Table | Description |
-|-------------------------|--------------------------------------------------------|
-| abconfig | contact table, replaces Friendica 'contact' |
-| abook | |
-| account | service provider account |
-| addon | |
-| addressbookchanges | |
-| addressbooks | |
-| app | |
-| atoken | |
-| attach | |
-| auth_codes | |
-| cache | |
-| cal | |
-| calendarchanges | |
-| calendarinstances | |
-| calendarobjects | |
-| calendars | |
-| calendarsubscriptions | |
-| cards | |
-| channel | |
-| chat | |
-| chatpresence | |
-| chatroom | |
-| clients | |
-| config | |
-| conv | |
-| dreport | |
-| event | |
-| group_member | |
-| groupmembers | |
-| groups | |
-| hook | |
-| hubloc | |
-| iconfig | |
-| issue | |
-| item | |
-| item_id | |
-| likes | |
-| locks | |
-| mail | |
-| menu | |
-| menu_item | |
-| notify | |
-| obj | |
-| outq | |
-| pconfig | personal (per channel) configuration storage |
-| photo | |
-| poll | |
-| poll_elm | |
-| principals | |
-| profdef | |
-| profext | |
-| profile | |
-| profile_check | |
-| propertystorage | |
-| register | |
-| schedulingobjects | |
-| session | |
-| shares | |
-| sign | |
-| site | |
-| source | |
-| sys_perms | |
-| term | |
-| tokens | |
-| updates | |
-| users | |
-| verify | |
-| vote | |
-| xchan | |
-| xchat | |
-| xconfig | |
-| xign | |
-| xlink | |
-| xperm | |
-| xprof | |
-| xtag | |
-
-
- * abook - contact table, replaces Friendica 'contact'
- * account - service provider account
- * addon - registered plugins
- * app - peronal app data
- * attach - file attachments
- * auth_codes - OAuth usage
- * cache - OEmbed cache
- * channel - replaces Friendica 'user'
- * chat - chat room content
- * chatpresence - channel presence information for chat
- * chatroom - data for the actual chat room
- * clients - OAuth usage
- * config - main configuration storage
- * conv - Diaspora private messages
- * event - Events
- * fcontact - friend suggestion stuff
- * ffinder - friend suggestion stuff
- * fserver - obsolete
- * fsuggest - friend suggestion stuff
- * groups - privacy groups
- * group_member - privacy groups
- * hook - plugin hook registry
- * hubloc - Red location storage, ties a location to an xchan
- * item - posts
- * item_id - other identifiers on other services for posts
- * likes - likes of 'things'
- * mail - private messages
- * menu - channel menu data
- * menu_item - items uses by channel menus
- * notify - notifications
- * notify-threads - need to factor this out and use item thread info on notifications
- * obj - object data for things (x has y)
- * outq - output queue
- * pconfig - personal (per channel) configuration storage
- * photo - photo storage
- * poll - data for polls
- * poll_elm - data for poll elements
- * profdef - custom profile field definitions
- * profext - custom profile field data
- * profile - channel profiles
- * profile_check - DFRN remote auth use, may be obsolete
- * register - registrations requiring admin approval
- * session - web session storage
- * shares - shared item information
- * sign - Diaspora signatures. To be phased out.
- * site - site table to find directory peers
- * source - channel sources data
- * spam - unfinished
- * sys_perms - extensible permissions for the sys channel
- * term - item taxonomy (categories, tags, etc.) table
- * tokens - OAuth usage
- * updates - directory sync updates
- * verify - general purpose verification structure
- * vote - vote data for polls
- * xchan - replaces 'gcontact', list of known channels in the universe
- * xchat - bookmarked chat rooms
- * xconfig - as pconfig but for channels with no local account
- * xlink - "friends of friends" linkages derived from poco
- * xprof - if this hub is a directory server, contains basic public profile info of everybody in the network
- * xtag - if this hub is a directory server, contains tags or interests of everybody in the network
-
-
-**How to theme Hubzilla**
-
-This is a short documentation on what I found while trying to modify Hubzilla's appearance.
-
-First, you'll need to create a new theme. This is in /view/theme, and I chose to copy 'redbasic' since it's the only available for now. Let's assume I named it .
-
-Oh, and don't forget to rename the _init function in /php/theme.php to be _init() instead of redbasic_init().
-
-At that point, if you need to add javascript or css files, add them to /js or /css, and then "register" them in _init() through head_add_js('file.js') and head_add_css('file.css').
-
-Now you'll probably want to alter a template. These can be found in in /view/tpl OR view//tpl. All you should have to do is copy whatever you want to tweak from the first place to your theme's own tpl directory.
-
-
-We're pretty relaxed when it comes to developers. We don't have a lot of rules. Some of us are over-worked and if you want to help we're happy to let you help. That said, attention to a few guidelines will make the process smoother and make it easier to work together. We have developers from across the globe with different abilities and different cultural backgrounds and different levels of patience. Our primary rule is to respect others. Sometimes this is hard and sometimes we have very different opinions of how things should work, but if everybody makes an effort, we'll get along just fine.
-
-**Here is how you can join us.**
-
-First, get yourself a working git package on the system where you will be
-doing development.
-
-Create your own github account.
-
-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
-
-Then go to your github page and create a "Pull request" when you are ready
-to notify us to merge your work.
-
-**Translations**
-
-Our translations are managed through Transifex. If you wish to help out translating the $Projectname to another language, sign up on transifex.com, visit [url=https://www.transifex.com/projects/p/red-matrix/]https://www.transifex.com/projects/p/red-matrix/[/url] and request to join one of the existing language teams or create a new one. Notify one of the core developers when you have a translation update which requires merging, or ask about merging it yourself if you're comfortable with git and PHP. We have a string file called 'messages.po' which is gettext compliant and a handful of email templates, and from there we automatically generate the application's language files.
-
-
-**Important**
-
-Please pull in any changes from the project repository and merge them with your work **before** issuing a pull request. We reserve the right to reject any patch which results in a large number of merge conflicts. This is especially true in the case of language translations - where we may not be able to understand the subtle differences between conflicting versions.
-
-Also - **test your changes**. Don't assume that a simple fix won't break something else. If possible get an experienced Red developer to review the code.
-
-Further documentation can be found at the Github wiki pages at: [url=https://github.com/friendica/red/wiki]https://github.com/friendica/red/wiki[/url]
-
-**Licensing**
-
-All code contributed to the project falls under the MIT license, unless otherwise specified. We will accept third-party code which falls under MIT, BSD and LGPL, but copyleft licensing (GPL, and AGPL) is only permitted in addons. It must be possible to completely remove the GPL (copyleft) code from the main project without breaking anything.
-
-**Concensus Building**
-
-Code changes which fix an obvious bug are pretty straight-forward. For instance if you click "Save" and the thing you're trying to save isn't saved, it's fairly obvious what the intended behaviour should be. Often when developing feature requests, it may affect large numbers of community members and it's possible that other members of the community won't agree with the need for the feature, or with your proposed implementation. They may not see something as a bug or a desirable feature.
-
-We encourage consensus building within the community when it comes to any feature which might be considered controversial or where there isn't unanimous decision that the proposed feature is the correct way to accomplish the task. The first place to pitch your ideas is to [url=https://zothub.com/channel/one]Channel One[/url]. Others may have some input or be able to point out facets of your concept which might be problematic in our environment. But also, you may encounter opposition to your plan. This doesn't mean you should stop and/or ignore the feature. Listen to the concerns of others and try and work through any implementation issues.
-
-There are places where opposition cannot be resolved. In these cases, please consider making your feature **optional** or non-default behaviour that must be specifically enabled. This technique can often be used when a feature has significant but less than unanimous support. Those who desire the feature can turn it on and those who don't want it - will leave it turned off.
-
-If a feature uses other networks or websites and or is only seen as desirable by a small minority of the community, consider making the functionality available via an addon or plugin. Once again, those who don't desire the feature won't need to install it. Plugins are relatively easy to create and "hooks" can be easily added or modified if the current hooks do not do what is needed to allow your plugin to work.
-
-
-**Coding Style**
-
-In the interests of consistency we adopt the following code styling. We may accept patches using other styles, but where possible please try to provide a consistent code style. We aren't going to argue or debate the merits of this style, and it is irrelevant what project 'xyz' uses. This is not project 'xyz'. This is a baseline to try and keep the code readable now and in the future.
-
-* All comments should be in English.
-
-* We use doxygen to generate documentation. This hasn't been consistently applied, but learning it and using it are highly encouraged.
-
-* Indentation is accomplished primarily with tabs using a tab-width of 4.
-
-* String concatenation and operators should be separated by whitespace. e.g. "$foo = $bar . 'abc';" instead of "$foo=$bar.'abc';"
-
-* Generally speaking, we use single quotes for string variables and double quotes for SQL statements. "Here documents" should be avoided. Sometimes using double quoted strings with variable replacement is the most efficient means of creating the string. In most cases, you should be using single quotes.
-
-* Use whitespace liberally to enhance readability. When creating arrays with many elements, we will often set one key/value pair per line, indented from the parent line appropriately. Lining up the assignment operators takes a bit more work, but also increases readability.
-
-* 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.
-
-* 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". \ No newline at end of file
diff --git a/doc/developer/unorganized.md b/doc/developer/unorganized.md
new file mode 100644
index 000000000..74d914aaf
--- /dev/null
+++ b/doc/developer/unorganized.md
@@ -0,0 +1,73 @@
+### To-be-organized information
+
+**Here is how you can join us.**
+
+First, get yourself a working git package on the system where you will be
+doing development.
+
+Create your own github account.
+
+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
+
+Then go to your github page and create a "Pull request" when you are ready
+to notify us to merge your work.
+
+
+**Important**
+
+Please pull in any changes from the project repository and merge them with your work **before** issuing a pull request. We reserve the right to reject any patch which results in a large number of merge conflicts. This is especially true in the case of language translations - where we may not be able to understand the subtle differences between conflicting versions.
+
+Also - **test your changes**. Don't assume that a simple fix won't break something else. If possible get an experienced Red developer to review the code.
+
+**How to theme Hubzilla**
+
+This is a short documentation on what I found while trying to modify Hubzilla's appearance.
+
+First, you'll need to create a new theme. This is in /view/theme, and I chose to copy 'redbasic' since it's the only available for now. Let's assume I named it .
+
+Oh, and don't forget to rename the _init function in /php/theme.php to be _init() instead of redbasic_init().
+
+At that point, if you need to add javascript or css files, add them to /js or /css, and then "register" them in _init() through head_add_js('file.js') and head_add_css('file.css').
+
+Now you'll probably want to alter a template. These can be found in in /view/tpl OR view//tpl. All you should have to do is copy whatever you want to tweak from the first place to your theme's own tpl directory.
+
+
+We're pretty relaxed when it comes to developers. We don't have a lot of rules. Some of us are over-worked and if you want to help we're happy to let you help. That said, attention to a few guidelines will make the process smoother and make it easier to work together. We have developers from across the globe with different abilities and different cultural backgrounds and different levels of patience. Our primary rule is to respect others. Sometimes this is hard and sometimes we have very different opinions of how things should work, but if everybody makes an effort, we'll get along just fine.
+
+**Here is how you can join us.**
+
+First, get yourself a working git package on the system where you will be
+doing development.
+
+Create your own github account.
+
+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
+
+Then go to your github page and create a "Pull request" when you are ready
+to notify us to merge your work.
+
+
+**Important**
+
+Please pull in any changes from the project repository and merge them with your work **before** issuing a pull request. We reserve the right to reject any patch which results in a large number of merge conflicts. This is especially true in the case of language translations - where we may not be able to understand the subtle differences between conflicting versions.
+
+Also - **test your changes**. Don't assume that a simple fix won't break something else. If possible get an experienced Red developer to review the code.
+
+Further documentation can be found at the Github wiki pages at: [url=https://github.com/friendica/red/wiki]https://github.com/friendica/red/wiki[/url]
+
+**Concensus Building**
+
+Code changes which fix an obvious bug are pretty straight-forward. For instance if you click "Save" and the thing you're trying to save isn't saved, it's fairly obvious what the intended behaviour should be. Often when developing feature requests, it may affect large numbers of community members and it's possible that other members of the community won't agree with the need for the feature, or with your proposed implementation. They may not see something as a bug or a desirable feature.
+
+We encourage consensus building within the community when it comes to any feature which might be considered controversial or where there isn't unanimous decision that the proposed feature is the correct way to accomplish the task. The first place to pitch your ideas is to [url=https://zothub.com/channel/one]Channel One[/url]. Others may have some input or be able to point out facets of your concept which might be problematic in our environment. But also, you may encounter opposition to your plan. This doesn't mean you should stop and/or ignore the feature. Listen to the concerns of others and try and work through any implementation issues.
+
+There are places where opposition cannot be resolved. In these cases, please consider making your feature **optional** or non-default behaviour that must be specifically enabled. This technique can often be used when a feature has significant but less than unanimous support. Those who desire the feature can turn it on and those who don't want it - will leave it turned off.
+
+If a feature uses other networks or websites and or is only seen as desirable by a small minority of the community, consider making the functionality available via an addon or plugin. Once again, those who don't desire the feature won't need to install it. Plugins are relatively easy to create and "hooks" can be easily added or modified if the current hooks do not do what is needed to allow your plugin to work.
+
diff --git a/doc/developer/zot_protocol.bb b/doc/developer/zot_protocol.bb
index b87e1cd73..e9355bca8 100644
--- a/doc/developer/zot_protocol.bb
+++ b/doc/developer/zot_protocol.bb
@@ -79,7 +79,7 @@ We may also attempt to recover with even less information, but doing so is prone
In order to implement high performance communications, the data transfer format for all aspects of Zot is JSON. XML communications require way too much overhead.
-Bi-directional encryption is based on RSA 4096-bit keys expressed in DER/ASN.1 format using the PKCS#8 encoding variant, with AES-256-CBC used for block encryption of variable length or large items.
+Bi-directional encryption is based on RSA 4096-bit keys expressed in DER/ASN.1 format using the PKCS#8 encoding variant, with AES encryption of variable length or large items. The precise encryption algorithms are negotiable between sites.
Some aspects of well known "federation protocols" (webfinger, salmon, activitystreams, portablecontacts, etc.) may be used in zot, but we are not tied to them and will not be bound by them. $Projectname project is attempting some rather novel developments in decentralised communications and if there is any need to diverge from such "standard protocols" we will do so without question or hesitation.
@@ -242,7 +242,7 @@ Example of discovery packet for 'mike@zothub.com'
Discovery returns a JSON array with the following components:
-'success' => ('1' or '') Operation was successful if '1'. Otherwise an optional 'message' may be present indicating the source of error.
+'success' => (true or false) Operation was successful if true. Otherwise an optional 'message' may be present indicating the source of error.
'signed_token' => If a token parameter was provided in the request, it is prepended with the text 'token.' and then RSA signed with the channel private key and base64url encoded and returned as 'signed_token'.
@@ -272,12 +272,11 @@ Discovery returns a JSON array with the following components:
'target_sig' => if a permissions target was specified, the signature is mirrored.
-'searchable' => ('1' or '') '1' indicates this entry can be searched in a directory
+'searchable' => (true or false) true indicates this entry can be searched in a directory
[h5]Permissions[/h5]
-
-'permisssions' => extensible array of permissions appropriate to this target, values are '1' or ''
+'permissions' => extensible array of permissions appropriate to this target, values are true or false
Permissions may include:
[list]
@@ -328,7 +327,7 @@ Each location is an array of
'address' => the webbie or user@host identifier associated with this location
-'primary' => ('1' or '') whether or not this is the primary location for this channel where files and web pages are generally found
+'primary' => (true or false) whether or not this is the primary location for this channel where files and web pages are generally found
'url' => url of the root of this DNS location e.g. https://example.com
@@ -391,7 +390,7 @@ When this packet is received, a Zot message is initiated to the auth identity:
}
[/code]
-auth_check messages MUST be encrypted with AES256CBC. This message is sent to the origination site, which checks the 'secret' to see if it is the same as the 'sec' which it passed originally. It also checks the secret_sig which is the secret signed by the destination channel's private key and base64url encoded. If everything checks out, a json packet is returned:
+auth_check messages MUST be encrypted. This message is sent to the origination site, which checks the 'secret' to see if it is the same as the 'sec' which it passed originally. It also checks the secret_sig which is the secret signed by the destination channel's private key and base64url encoded. If everything checks out, a json packet is returned:
[code nowrap]
{
"success":1,
@@ -404,11 +403,11 @@ auth_check messages MUST be encrypted with AES256CBC. This message is sent to th
[h4]Zot Signatures[/h4]
All signed data in Zot is accomplished by performing an RSA sign operation using the private key of the initiator. The binary result is then base64url encoded for transport.
[h4]Zot Encryption[/h4]
-Encryption is currently provided by AES256-CBC, the Advanced Encryption Standard using 256-bit keys and the Cipher Block Chaining mode of operation. Additional algorithms MAY be supported. A 32-octet key and 16-octet initialisation vector are randomly generated. The desired data is then encrypted using these generated strings and the result base64url encoded. Then we build an array:
+Encryption is currently provided by AES256CTR. Additional algorithms MAY be supported. A 32-octet key and 16-octet initialisation vector are randomly generated. The desired data is then encrypted using these generated strings and the result base64url encoded. Then we build an array:
[dl terms="b"]
[*= data]The base64url encoded encrypted data
-[*= alg]The chosen algorithm, in this case the string 'aes256cbc'.
+[*= alg]The chosen algorithm, in this case the string 'aes256ctr'.
[*= key]The randomly generated key, RSA encrypted using the recipients public key, and the result base64url encoded
[*= iv]The randomly generated initialization vector, RSA encrypted using the recipient's public key, and the result base64url encoded
[/dl]
@@ -449,7 +448,7 @@ M23in0xqMVsyQvzjNkpImrO/QdbEFRIIMee83IHq+adbyjQR49Z2hNEIZhkLPc3U
"callback":"\/post",
"version":"1.2",
"encryption":{
- "aes256cbc"
+ "aes256ctr"
},
"secret":"1eaa6613699be6ebb2adcefa5379c61a3678aa0df89025470fac871431b70467",
"secret_sig":"0uShifsvhHnxnPIlDM9lWuZ1hSJTrk3NN9Ds6AKpyNRqf3DUdz81-Xvs8I2kj6y5vfFtm-FPKAqu77XP05r74vGaWbqb1r8zpWC7zxXakVVOHHC4plG6rLINjQzvdSFKCQb5R_xtGsPPfvuE24bv4fvN4ZG2ILvb6X4Dly37WW_HXBqBnUs24mngoTxFaPgNmz1nDQNYQu91-ekX4-BNaovjDx4tP379qIG3-NygHTjFoOMDVUvs-pOPi1kfaoMjmYF2mdZAmVYS2nNLWxbeUymkHXF8lT_iVsJSzyaRFJS1Iqn7zbvwH1iUBjD_pB9EmtNmnUraKrCU9eHES27xTwD-yaaH_GHNc1XwXNbhWJaPFAm35U8ki1Le4WbUVRluFx0qwVqlEF3ieGO84PMidrp51FPm83B_oGt80xpvf6P8Ht5WvVpytjMU8UG7-js8hAzWQeYiK05YTXk-78xg0AO6NoNe_RSRk05zYpF6KlA2yQ_My79rZBv9GFt4kUfIxNjd9OiV1wXdidO7Iaq_Q"
diff --git a/doc/feature/saved_search.bb b/doc/feature/saved_search.bb
deleted file mode 100644
index 1e75f5a85..000000000
--- a/doc/feature/saved_search.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-[h2]Saved Searches[/h2]
-
-In order to quickly find information, the 'saved search' widget may be used. This widget may be presented as a sidebar tool on your network page and possibly from your channel page. It is differentiated from the 'navigation bar' search tool in that it does not search the entire site, but only the subset of information available to your channel.
-
-Additionally the search terms you provide may activate a one-tme search or be saved in a list for re-use. Saving the search item also invokes the search in addition to adding it to the saved list (which is displayed below the search text entry box). Any item in the list may be discarded if it is no longer needed.
-
-The saved search widget will provide autocompletion of channels (the results are prefixed with '@'), and hashtags (prefixed with '#'). You do not need to enter these tags; although entering the desired tag will reduce the autocomplete results to only hold the relevant information. The behaviour maps as follows:
-
-[ul]
-
-[li]@name - search your network stream for posts or comments written by 'name'. This will also change the post editor permissions to include only 'name'; as if this was a privacy group.[/li]
-
-[li]#hashtag - search you network stream for posts containing #hashtag.[/li]
-
-[li]text - search your network stream for posts containing 'text'.[/li]
-
-
-[/li]
-
diff --git a/doc/feature/techlevels.bb b/doc/feature/techlevels.bb
deleted file mode 100644
index 9b07f086f..000000000
--- a/doc/feature/techlevels.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-[h2]Techlevels[/h2]
-
-Techlevels is a unique feature of Hubzilla 'pro'. It is not available in other server_roles, although it expands on the concepts introduced in Hubzilla 'basic'.
-
-[h3]Background[/h3]
-
-We've implemented several different mechanisms in order to reduce the apparent complexity and learning curve presented to new members. At the same time, we do not wish to limit any functionality for people who are able to grasp some slightly advanced technical technical features. The first mechanism was to move several features to an optional 'Features' page where they could be enabled at will; with the default interface kept somewhat lean.
-
-The problem we had now is that the number of features began to grow dramatically, and the Feature page is daunting in possibilities. There are also features present which probably should not be available to all members, but may be extremely useful to those with technical backgrounds.
-
-The techlevels seeeks to remedy this by grouping features within different levels of technical ability; starting at 0 (uncomfortable with technology), and up to 5 (Unix wizard or equivalent).
-
-When a new member registers, their account is provided a techlevel setting of 0. On the account settings page they may change this to any available level. A higher level opens more advanced features and possible interactions.
-
-The account administrator may also lock a particular level, lock a maximum level, or change/re-arrange the features available to any level. Those with the minimum level are typically not very exploratory and are unlikely to discover the advanced modes. This is by design. Those that look around and desire more interactions will find them. In the absence of administrator defaults they may choose any level. As they look at the features available to the level in question, it is generally expected that they will discover some features are beyond their comprehension and it is hoped they will back off to a level where the interface and features are comfortable to their skill level. This is somewhat experimental at present and for that reason is not part of the 'standard' server role. The standard server role is preset to level '5', and the basic server role is preset to level '0', with no possibility of change. Members in these roles may find themselves overwhelmed or underwhelmed by the feature set and complexity.
diff --git a/doc/hook/author_is_pmable.bb b/doc/hook/author_is_pmable.bb
new file mode 100644
index 000000000..11d1185f3
--- /dev/null
+++ b/doc/hook/author_is_pmable.bb
@@ -0,0 +1,14 @@
+[h2]author_is_pmable[/h2]
+
+Called from thread action menu before returning a 'send mail' link for the post author. Not all authors will be able to receive private mail, for instance those on other networks with incompatible mail systems.
+
+By default author_is_pmable() returns true for 'zot' xchans, and false for all others.
+
+The plugin is passed an array
+
+ [ 'xchan' => $author_xchan, 'abook' => abook record, 'result' => 'unset' ]
+
+A plugin which sets the 'result' to something besides 'unset' will over-ride the default behaviour. A value of true will enable the 'send mail' link and the private mail recipient will be set to the author's xchan_hash. A value of false will disable the 'send mail' link.
+
+
+
diff --git a/doc/hook/can_comment_on_post.bb b/doc/hook/can_comment_on_post.bb
new file mode 100644
index 000000000..2cfd3b2da
--- /dev/null
+++ b/doc/hook/can_comment_on_post.bb
@@ -0,0 +1,13 @@
+[h3]can_comment_on_post[/h3]
+
+Called when deciding whether or not to display a comment box for a post.
+
+
+Hook data (array):
+ observer_hash => xchan_hash of current observer
+ item => posted item
+ allowed => 'unset'
+
+
+To over-ride the default behaviour, change allowed to true or false
+
diff --git a/doc/hook/channel_links.bb b/doc/hook/channel_links.bb
new file mode 100644
index 000000000..c0243dac6
--- /dev/null
+++ b/doc/hook/channel_links.bb
@@ -0,0 +1,12 @@
+[h2]channel_links[/h2]
+
+Called when generating the Link HTTP header for the channel page. Different protocol stacks can add links to this header.
+
+Hook data = array
+ 'channel_address' => channel nickname, no checking is done to see if it is valid
+ 'channel_links' => array of channel links in the format
+ 'url' => url of resource
+ 'rel' => link relation
+ 'type' => MIME type
+
+All fields are required \ No newline at end of file
diff --git a/doc/hook/connection_remove.bb b/doc/hook/connection_remove.bb
new file mode 100644
index 000000000..bd13ae5f2
--- /dev/null
+++ b/doc/hook/connection_remove.bb
@@ -0,0 +1,9 @@
+[h3]connection_remove[/h3]
+
+Called when deleting a connection.
+
+
+Passed parameter array:
+
+ 'channel_id' => channel_id of the channel removing the connection
+ 'abook_id' => abook_id of the connection being removed
diff --git a/doc/hook/legal_webbie.bb b/doc/hook/legal_webbie.bb
new file mode 100644
index 000000000..8c7d32d56
--- /dev/null
+++ b/doc/hook/legal_webbie.bb
@@ -0,0 +1,10 @@
+[h2]legal_webbie[/h2]
+
+Called when validating a channel address. By default the valid characters are
+a-z,0-9,-,_, and . Uppercase ASCII characters are folded to lower and any invalid characters are stripped.
+
+Some federated networks require more restrictive rules.
+
+The hook is called with an array [ 'input' => (supplied text), 'output' => (validated text) ]
+
+A plugin will generally perform a regex filter or text operation on 'input' and provide the results in 'output'. \ No newline at end of file
diff --git a/doc/hook/legal_webbie_text.bb b/doc/hook/legal_webbie_text.bb
new file mode 100644
index 000000000..32c74c93b
--- /dev/null
+++ b/doc/hook/legal_webbie_text.bb
@@ -0,0 +1,7 @@
+[h2]legal_webbie_text[/h2]
+
+Returns a string describing the text rules applied to legal_webbie().
+
+Called with an array [ 'text' => (descriptive text describing text character limitations) ]
+
+A plugin should return the description of the allowed characters and operation performed in the 'legal_webbie' hook to assist people when creating a new channel. \ No newline at end of file
diff --git a/doc/hook/probe_well_known.bb b/doc/hook/probe_well_known.bb
deleted file mode 100644
index 62898c536..000000000
--- a/doc/hook/probe_well_known.bb
+++ /dev/null
@@ -1,3 +0,0 @@
-[h2]probe_well_known[/h2]
-
-This hook is under construction and not currently used - see include/probe.php \ No newline at end of file
diff --git a/doc/hook/update_unseen.bb b/doc/hook/update_unseen.bb
new file mode 100644
index 000000000..8fb02c239
--- /dev/null
+++ b/doc/hook/update_unseen.bb
@@ -0,0 +1,9 @@
+[h3]update_unseen[/h3]
+
+Called prior to automatically marking items 'seen'; allowing a plugin the choice to not perform this action.
+
+hook data
+
+[ 'channel_id' => local_channel(), 'update' => 'unset' ];
+
+If 'update' is set to 0 or false on return, the update operation is not performed. \ No newline at end of file
diff --git a/doc/hooklist.bb b/doc/hooklist.bb
index fcd0e2aff..34e19660e 100644
--- a/doc/hooklist.bb
+++ b/doc/hooklist.bb
@@ -28,7 +28,7 @@ Hooks allow plugins/addons to "hook into" the code at many points and alter the
[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]
+[zrl=[baseurl]/help/hook/account_settings_post]account_settings_post[/zrl]
Called when posting from the account settings form
[zrl=[baseurl]/help/hook/activity_received]activity_received[/zrl]
@@ -64,6 +64,9 @@ Hooks allow plugins/addons to "hook into" the code at many points and alter the
[zrl=[baseurl]/help/hook/authenticate]authenticate[/zrl]
Can provide alternate authentication mechanisms
+[zrl=[baseurl]/help/hook/author_is_pmable]author_is_pmable[/zrl]
+ Called from the thread action menu to determine if we can send private mail to the post author
+
[zrl=[baseurl]/help/hook/bb2diaspora]bb2diaspora[/zrl]
called when converting bbcode to markdown
@@ -79,12 +82,18 @@ Hooks allow plugins/addons to "hook into" the code at many points and alter the
[zrl=[baseurl]/help/hook/build_pagehead]build_pagehead[/zrl]
Called when creating the HTML page header
+[zrl=[baseurl]/help/hook/can_comment_on_post]can_comment_on_post[/zrl]
+ Called when deciding whether or not to present a comment box for a post
+
[zrl=[baseurl]/help/hook/change_channel]change_channel[/zrl]
Called when logging in to a channel (either during login or afterward through the channel manager)
[zrl=[baseurl]/help/hook/channel_remove]channel_remove[/zrl]
Called when removing a channel
+[zrl=[baseurl]/help/hook/channel_links]channel_links[/zrl]
+ Called when generating the Link: HTTP header for a channel
+
[zrl=[baseurl]/help/hook/channel_settings]channel_settings[/zrl]
Called when displaying the channel settings page
@@ -115,6 +124,9 @@ Hooks allow plugins/addons to "hook into" the code at many points and alter the
[zrl=[baseurl]/help/hook/connect_premium]connect_premium[/zrl]
Called when connecting to a premium channel
+[zrl=[baseurl]/help/hook/connection_remove]connection_remove[/zrl]
+ Called when deleting/removing a connection
+
[zrl=[baseurl]/help/hook/connector_settings]connector_settings[/zrl]
Called when posting to the features/addon settings page
@@ -217,6 +229,9 @@ Hooks allow plugins/addons to "hook into" the code at many points and alter the
[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/file_thumbnail]file_thumbnail[/zrl]
+ called when generating thumbnail images for cloud page in 'view tiles' mode
+
[zrl=[baseurl]/help/hook/follow]follow[/zrl]
called when a follow operation takes place
@@ -232,7 +247,6 @@ Hooks allow plugins/addons to "hook into" the code at many points and alter the
[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
@@ -314,6 +328,12 @@ Hooks allow plugins/addons to "hook into" the code at many points and alter the
[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/legal_webbie]legal_webbie[/zrl]
+ Called to validate a channel address
+
+[zrl=[baseurl]/help/hook/legal_webbie_text]legal_webbie_text[/zrl]
+ Provides an explanation of text/character restrictions for legal_webbie()
+
[zrl=[baseurl]/help/hook/load_pdl]load_pdl[/zrl]
Called when we load a PDL file or description
@@ -491,9 +511,6 @@ Hooks allow plugins/addons to "hook into" the code at many points and alter the
[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
@@ -560,6 +577,12 @@ Hooks allow plugins/addons to "hook into" the code at many points and alter the
[zrl=[baseurl]/help/hook/tagged]tagged[/zrl]
Called when a delivery is processed which results in you being tagged
+[zrl=[baseurl]/help/hook/thumbnail]thumbnail[/zrl]
+ Called when generating thumbnails for cloud storage 'tile' view
+
+[zrl=[baseurl]/help/hook/update_unseen]update_unseen[/zrl]
+ Called prior to automatically marking items seen which were loaded in the browser
+
[zrl=[baseurl]/help/hook/validate_channelname]validate_channelname[/zrl]
Used to validate the names used by a channel
diff --git a/doc/main.bb b/doc/main.bb
deleted file mode 100644
index 8ba5d481b..000000000
--- a/doc/main.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-
-[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]
-
-$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 $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.
-
-
diff --git a/doc/member/bbcode.html b/doc/member/bbcode.html
index a4bc813d8..9b7080a32 100644
--- a/doc/member/bbcode.html
+++ b/doc/member/bbcode.html
@@ -26,6 +26,9 @@
<td><code>[color=red]red[/color]</code></td><td><span style="color: red;">red</span></td>
</tr>
<tr>
+ <td><code>[hl]highlighted[/hl]</code></td><td><span style="background-color: yellow;">highlighted</span></td>
+ </tr>
+ <tr>
<td><code>[font=courier]some text[/font] </code></td><td><span style="font-family: courier;">some text</span></td>
</tr>
<tr>
@@ -61,8 +64,10 @@ text</code></td><td>
</table>
<h3>Code blocks</h3>
-Code can be rendered generically in a block or inline format (depending on if there are new line characters in the text), or you can specify a supported language for enhanced syntax highlighting. Supported languages include <strong>php, css, mysql, sql, abap, diff, html, perl, ruby, vbscript, avrc, dtd, java, xml, cpp, python, javascript, js, json, sh </strong>.
+Code can be rendered generically in a block or inline format (depending on if there are new line characters in the text), or you can specify a supported language for enhanced syntax highlighting. Syntax highlighting requires a suitable rendering plugin such as <strong>hilite</strong>. Supported languages with the hilite plugin include <strong>php, css, mysql, sql, abap, diff, html, perl, ruby, vbscript, avrc, dtd, java, xml, cpp, python, javascript, js, json, sh </strong>.
<br><br>
+If a rendering plugin is not installed or an unsupported language is specified, the output for syntax highlighted code blocks is the same as the block format code tag.
+<br><br>
<table class="table table-responsive table-bordered">
<tbody>
<tr>
diff --git a/doc/member/member_guide.bb b/doc/member/member_guide.bb
index 6d95b230c..20d273f44 100644
--- a/doc/member/member_guide.bb
+++ b/doc/member/member_guide.bb
@@ -174,19 +174,40 @@ You can also delegate control of your channels' posts and connections, but not i
[h3]Connecting To Channels[/h3]
-Connections in $Projectname can take on a great many different meanings. But let's keep it simple, you want to be friends with somebody like you are familiar with from social networking. How do you do it?
+Connections in $Projectname can take on a great many different meanings. A connection is more accurately defined as a set of permissions that you have granted to somebody else. In traditional social network applications, all connections are granted the same permissions; or at most there two levels (friends and 'followers'). In $Projectname, a range of separate permissions may be set/adjusted depending on the siutation and relationship you have with the other channel. You can allow somebody to view your posts but not your photos. You can also deny them permission to comment on your posts or send private mail to you. But let's keep it simple, you want to be friends with somebody like you are familiar with from social networking. How do you do it?
First, you need to find some channels to connect to. There are two primary ways of doing this. Firstly, setting the &quot;Can send me their channel stream and posts&quot; permission to &quot;Anybody in this network&quot; will bring posts from complete strangers to your matrix. This will give you a lot of public content and should hopefully help you find interesting, entertaing people, forums, and channels.
-The next thing you can do is look at the Directory. The directory is available on every $Projectname website which means searching from your own site will bring in results from the entire network. You can search by name, interest, location and keyword. This is incomplete, so we'll improve this paragraph later.
+The next thing you can do is look at the Directory. The directory is available on every $Projectname website which means searching from your own site will bring in results from the entire network. You can search by name, interest, location, and keyword.
+
+If you already know somebody's 'webbie' you can connect with them directly. A webbie looks just like an email address (for instance bob@example.com) but refers to somebody in the open social web. In order to connect they must be using a compatible network protocol. By default, this software supports the 'zot' protocol, however additional protocols may be provided through plugins/addons. See below for more information on connecting to channels on other networks.
To connect with other $Projectname channels:
-Visit their profile by clicking their photograph in the directory, matrix, or comments, and it will open their channel home page in the channel viewer. At the left hand side of the screen, you will usually see a link called &quot;connect&quot;. Click it, and you're done. Depending on the settings of the channel you are connecting to, you may need to wait for them to approve your connection, but no further action is needed on your part. Once you've initiated the connection, you will be taken to the connection editor. This allows you to assign specific permissions for this channel. If you don't allow any permissions, communication will be very limited. There are some quick links which you can use to avoid setting individual permissions. To provide a social network environment, &quot;Full Sharing&quot; is recommended. You may review the settings that are applied with the quick links to ensure they are suitable for the channel you are connecting with and adjust if necessary. Then scroll to the bottom of the page and click &quot;Submit&quot;.
+Visit their profile by clicking their photograph in the directory, matrix, or comments, and it will open their channel home page in the channel viewer. At the left hand side of the screen, you will usually see a link called &quot;connect&quot;. Click it, and you're done. Depending on the settings of the channel you are connecting to, you may need to wait for them to approve your connection, but no further action is needed on your part. Once you've initiated the connection, you will be taken to the connection editor. This allows you to assign specific permissions for this channel if you wish to make any changes.
+
+You may also connect with any channel by visiting the &quot;Connections&quot; page of your site or the Directory and typing their &quot;webbie&quot; into the &quot;Add New Connection&quot; field. Use this method if somebody tells you their webbie and you wish to connect with them. The process is the same as connecting via the &quot;Connect&quot; button - you will then be taken to the connection editor to set permissions.
+
+To connect with channels on other networks:
+
+The process for connecting to channels on other networks (such as GNU-Social, Mastodon, and Diaspora) is similar - type their &quot;webbie&quot; into the &quot;Add New Connections&quot; box on the &quot;Connections&quot; page. Before you do this however, please visit your Settings page (Feature/Addon Settings) and ensure that the relevant protocol (Diaspora, GNU-Social/OStatus, or ActivityPub) is provided on your hub and [b][i]activated[/i] for your channel[/b]. These networks/protocols do not support account migration and location independence so if you move location or clone your channel elsewhere, communications with these connections may fail. For this reason these protocols are not activated by default, but only through your consent. Activating these protocols involves an important decision between communicating with friends on these networks or providing fail-safe account resilience if your server fails.
+
+Some communications offer more than one protocol. If you wish to connect with somebody on Mastodon (for instance) they can use either the 'ostatus' or the 'activitypub' protocol for communication. Generally the 'activitypub' protocol will provide a better experience than 'ostatus', but $Projectname will often choose the first protocol it discovers and this may not be the one you want. You may connect with somebody over a specific protocol by prepending the protocol name in square brackets to their &quot;webbie&quot;. For example
+
+[code]
+[activitypub]foobar@foo.bar
+[ostatus]foobar@foo.bar
+[diaspora]foobar@foo.bar
+[zot]foobar@foo.bar
+[rss]https://foo.bar/foobar
+[/code]
+
-You may also connect with any channel by visiting the &quot;Connections&quot; page of your site or the Directory and typing their &quot;webbie&quot; into the &quot;Add New Connection&quot; field. Use this method if somebody tells you their webbie and you wish to connect with them. A webbie looks like an email address; for example &quot;bob@example.com&quot;. The process is the same as connecting via the &quot;Connect&quot; button - you will then be taken to the connection editor to set permissions.
+To connect with RSS feeds:
-[h4] Block/Ignore/Archive/Hide channels [/h4]
+Your hub admin may allow connecting to RSS feeds. The process for connecting to an RSS feed is the same, exept type (or paste) the URL of the feed into the &quot;Add New Connection&quot; box. Feeds are only processed once or twice per day and your hub admin may impose limits on how many feeds you may add.
+
+[h4]Block/Ignore/Archive/Hide channels [/h4]
Channels in your address book can have statuses such as [i]blocked[/i], [i]ignored[/i], [i]archived[/i] and [i]hidden[/i]. From your connections page you can see tabs that display the channels with those statuses. From your edit connection pages you can change the statuses of a channel.
@@ -279,7 +300,7 @@ We highly recommend that you use the "typical social network" settings when you
[i]Note:[/i]
Plugins/addons may provide special permission settings, so you may be offered additional permission settings beyond what is described here.
-If you have set any of these permissions to &quot;only those I specifically allow&quot;, you may specify indivudal permissions on the connnection edit screen.
+If you have set any of these permissions to &quot;only those I specifically allow&quot;, you may specify individual permissions on the connnection edit screen.
[h4]Affinity[/h4]
@@ -294,8 +315,11 @@ To create and manage guest tokens, open the [zrl=[baseurl]/settings/tokens/]Gues
Additional permissions may be granted to the guest token by expanding the [b]Individual Permissions[/b] options and selecting privacy settings such as [b]Can view my channel stream and posts[/b] or [b]Can chat with me[/b].
+[url=[baseurl]/help/feature/access_tokens]More details can be found here...[/url]
+
[img][baseurl]/doc/member/assets/zat_dialog.png[/img]
+
[h3]Markup Languages[/h3]
$Projectname supports several markup languages for advanced formatting of content. The default markup language is a [url=[baseurl]/help/member/bbcode]custom variant of BBcode[/url], tailored for use in $Projectname. [url=[baseurl]/help/member/bbcode]BBcode[/url] is supported for posts, wiki pages, and web page elements. Wiki pages and webpage elements may also be written using standard Markdown.
[table border=0]
@@ -345,7 +369,7 @@ Topical tags are indicated by preceding the tag name with the # character. This
Topical tags are also not linked if they are purely numeric, e.g. #1. If you wish to use a numeric hashtag, please add some descriptive text such as #2012-elections.
[h4]Bookmarks[/h4]
-Bookmarks indicate a link which can be saved to your bookmark folder. They use the sequence #^ followed by the link. Often these are generatd automatically. If the 'bookmarker' addon is installed, this sequence will be converted to a bookmark icon when viewing the post or comment online and clicking the icon will save the bookmark. If the bookmarker addon is not installed, the post 'dropdown menu' contains a link for saving the bookmark or bookmarks.
+Bookmarks indicate a link which can be saved to your bookmark folder. They use the sequence #^ followed by the link. Often these are generated automatically. If the 'bookmarker' addon is installed, this sequence will be converted to a bookmark icon when viewing the post or comment online and clicking the icon will save the bookmark. If the bookmarker addon is not installed, the post 'dropdown menu' contains a link for saving the bookmark or bookmarks.
[h4]Spaces in Tags and Mentions[/h4]
Where possible please use the auto-complete window to select tag and mention recipients, because it will generate a coded tag which uniquely identifies one channel. Names are sometimes ambiguous. However, you can "manually" tag a channel by matching the channel name or address.
@@ -621,6 +645,15 @@ This will select the theme named &quot;suckerberg&quot; and select the &quot;pas
The condensed notation isn't part of Comanche itself but is recognised by $Projectname platform as a theme specifier.
+[h4]Navbar[/h4]
+
+[code]
+ [navbar]tucson[/navbar]
+[/code]
+
+Use the 'tucson' navbar template and CSS rules. By default the 'default' navbar template will be used.
+
+
[h4]Regions[/h4]
Each region has a name, as noted above. You will specify the region of interest using a 'region' tag, which includes the name. Any content you wish placed in this region should be placed between the opening region tag and the closing tag.
@@ -684,14 +717,8 @@ This places a block named &quot;contributors&quot; in this region. Additionally
The variable [var=wrap]none[/var] in a block removes the wrapping div element from the block.
[h4]Widgets[/h4]
-Widgets are executable apps provided by the system which you can place on your page. Some widgets take arguments which allows you to tailor the widget to your purpose. (TODO: list available widgets and arguments). The base system provides
-
-[code]
- profile - widget which duplicates the profile sidebar of your channel page. This widget takes no arguments
- tagcloud - provides a tag cloud of categories
- count - maximum number of category tags to list
+Widgets are executable apps provided by the system which you can place on your page. Some widgets take arguments which allows you to tailor the widget to your purpose. System widgets are listed [url=help/Widgets]here[/url]. Widgets can also ve created by plugins, themes, or your site administrator to provide additional functionality.
-[/code]
Widgets and arguments are specified with the 'widget' and 'var' tags.
[code]
@@ -813,23 +840,27 @@ To delete attachments or change the permissions on the stored files, visit [obse
[h4]Web Access[/h4]
-Your files are visible on the web at the location [observer=1][baseurl]/cloud/[observer.webname][/observer][observer=0][baseurl]/cloud/username[/observer] to anybody who is allowed to view them. If the viewer has sufficient privileges, they may also have the ability to create new files and folders/directories.
+Your files are visible on the web at the location [observer=1][baseurl]/cloud/[observer.webname][/observer][observer=0][baseurl]/cloud/username[/observer] to anybody who is allowed to view them. If the viewer has sufficient privileges, they may also have the ability to create new files and folders/directories. This should only be used for smaller files and photos (up to a few megabytes) as it uses internal memory. For larger files (videos, music, etc.), please upload using WebDAV. These files may still be retrieved via web access.
[h4]WebDAV access[/h4]
-See: [zrl=[baseurl]/help/member/member_guide#Cloud_Desktop_Clients]Cloud Desktop Clients[/zrl]
+WebDAV provides a way to copy files directly to or from your computer's operating system, where your cloud files appear as a virtual disk drive. This should be used to upload large files such as video and audio; as it is not limited to available memory. See [zrl=help/member/member_guide#Cloud_Desktop_Clients]Cloud Desktop Clients[/zrl] below.
+
[h4]Permissions[/h4]
When using WebDAV, the file is created with your channel's default file permissions and this cannot be changed from within the operating system. It also may not be as restrictive as you would like. What we've found is that the preferred method of making files private is to first create folders or directories; then visit [observer=1][baseurl]/cloud/[observer.webname][/observer][observer=0][baseurl]/cloud/username[/observer] select the directory and change the permissions. Do this before you put anything into the directory. The directory permissions take precedence so you can then put files or other folders into that container and they will be protected from unwanted viewers by the directory permissions. It is common for folks to create a &quot;personal&quot; or &quot;private&quot; folder which is restricted to themselves. You can use this as a personal cloud to store anything from anywhere on the web or any computer and it is protected from others. You might also create folders for &quot;family&quot; and &quot;friends&quot; with permission granted to appropriate privacy groups.
+[h3]Cloud Desktop Clients[/h3]
+
+
[h4]Cloud Desktop Clients - Windows[/h4]
WebDAV 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/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.
+4. Type '[baseurl]/dav/nickname' in the textbox (replace nickname with your channel nickname) and click the Complete button.
5. Type your $Projectname channel nickname. IMPORTANT - NO at-sign or domain name.
6. Type your $Projectname password
@@ -969,11 +1000,26 @@ Once open you can set a bookmark.
Note: There have been reported issues with clients that use "chunked transfer encoding", which includes Apple iOS services, and also the "AnyClient" and "CyberDuck" tools. These work fine for downloads, but uploads often end up with files of zero size. This is caused by an incorrect implemention of chunked encoding in some current FCGI (fast-cgi) implementations. Apache running with PHP as a module does not have these issues, but when running under FCGI you may need to use alternative clients or use the web uploader. At the time of this writing the issue has been open and no updates provided for at least a year. If you encounter zero size files with other clients, please check the client notes; as there are occasional configuration issues which can also produce these symptoms.
+[h3]Saved Searches[/h3]
+
+In order to quickly find information, the 'saved search' widget may be used. This widget may be presented as a sidebar tool on your network page and possibly from your channel page. It is differentiated from the 'navigation bar' search tool in that it does not search the entire site, but only the subset of information available to your channel.
+
+Additionally the search terms you provide may activate a one-time search or be saved in a list for re-use. Saving the search item also invokes the search in addition to adding it to the saved list (which is displayed below the search text entry box). Any item in the list may be discarded if it is no longer needed.
+
+The saved search widget will provide autocompletion of channels (the results are prefixed with '@'), and hashtags (prefixed with '#'). You do not need to enter these tags; although entering the desired tag will reduce the autocomplete results to only hold the relevant information. The behaviour maps as follows:
+
+[list]
+[*]@name - search your network stream for posts or comments written by 'name'. This will also change the post editor permissions to include only 'name'; as if this was a privacy group.
+[*]#hashtag - search you network stream for posts containing #hashtag.
+[*]text - search your network stream for posts containing 'text'.
+[/list]
+
+
[h3]Remove Channel or Account[/h3]
[h4]Remove Channel[/h4]
-Go to the bottom of your channel settings page or visit the URL:
+Select the 'Remove Channel' link on your channel settings page or visit the URL:
[baseurl]/removeme
@@ -985,7 +1031,7 @@ If you have identity clones on other hubs this only removes by default the chan
[h4]Remove Account[/h4]
-Go to the bottom of your account settings page or visit the URL:
+Select 'Remove Account' from your account settings page or visit the URL:
[baseurl]/removeaccount
@@ -994,3 +1040,4 @@ You will need to confirm your password and the account you are currently logged
[hl][i][b]This is irreversible.[/b][/i][/hl]
All your channels will be deleted. If you have identity clones on other hubs this only removes by default the channels instances which exists on this hub.
+
diff --git a/doc/members.bb b/doc/members.bb
deleted file mode 100644
index bf5b09898..000000000
--- a/doc/members.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-[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]
-
-#include doc/macros/main_footer.bb;
diff --git a/doc/profiles.bb b/doc/profiles.bb
deleted file mode 100644
index 513bf5fed..000000000
--- a/doc/profiles.bb
+++ /dev/null
@@ -1,37 +0,0 @@
-[b]Profiles[/b]
-
-$Projectname has unlimited profiles. You may use different profiles to show different &quot;sides of yourself&quot; to different audiences. This is different to having different channels. Different channels allow for completely different sets of information. You may have a channel for yourself, a channel for your sports team, a channel for your website, or whatever else. A profile allows for finely graded &quot;sides&quot; of each channel. For example, your default public profile might say &quot;Hello, I'm Fred, and I like laughing&quot;. You may show your close friends a profile that adds &quot;and I also enjoy dwarf tossing&quot;.
-
-You always have a profile known as your &quot;default&quot; or &quot;public&quot; profile. This profile is always available to the general public and cannot be hidden (there may be rare exceptions on privately run or disconnected sites). You may, and probably should restrict the information you make available on your public profile.
-
-That said, if you want other friends to be able to find you, it helps to have the following information in your public profile...
-
-[ul][*]Your real name or at least a nickname everybody knows
-[*]A photo of you
-[*]Your location on the planet, at least to a country level.[/ul]
-
-In addition, if you'd like to meet people that share some general interests with you, please take a moment and add some &quot;Keywords&quot; to your profile. Such as &quot;music, linux, photography&quot; or whatever. You can add as many keywords as you like.
-
-To create an alternate profile, first go to [zrl=[baseurl]/settings/features]Settings &gt; Additional Features[/zrl] and enable &quot;Multiple Profiles&quot; there, otherwise you won't have the ability to use more than just your default profile.
-
-Then select &quot;Edit Profiles&quot; from the menu of your $Projectname site. You may edit an existing profile, change the profile photo, add things to a profile or create a new profile. You may also create a &quot;clone&quot; of an existing profile if you only wish to change a few items but don't wish to enter all the information again. To do that, click on the profile you want to clone and choose &quot;Clone this profile&quot; there.
-
-In the list of your profiles, you can also choose the contacts who can see a specific profile. Just click on &quot;Edit visibility&quot; next to the profile in question (only available for the profiles that are not your default profile) and then click on user images to add them to or remove them from the group of people who can see this profile.
-
-Once a profile has been selected, when the person views your profile, they will see the private profile you have assigned. If they are not authenticated, they will see your public profile.
-
-There is a setting which allows you to publish your profile to a directory and ensure that it can be found by others. You can change this setting on the &quot;Settings&quot; page.
-
-If you do not wish to be found be people unless you give them your channel address, you may leave your profile unpublished.
-
-[b]Keywords and Directory Search[/b]
-
-On the directory page, you may search for people with published profiles. Currently, only the name field and the keywords are searched. You may also include such keywords in your default profile - which may be used to search for common interests with other members. Keywords are used in the channel suggestion tool and although they aren't visible in the directory, they are shown if people visit your profile page.
-
-On your Connnections page and in the directory there is a link to &quot;Suggestions&quot; or &quot;Channel Suggestions&quot;, respectively. This will find channels who have matching and/or similar keywords. The more keywords you provide, the more relevant the search results that are returned. These are sorted by relevance.
-
-See Also
-
-[zrl=[baseurl]/help/AdvancedSearch]Advanced Searching[/zrl]
-
-#include doc/macros/main_footer.bb;
diff --git a/doc/project/governance.bb b/doc/project/governance.bb
deleted file mode 100644
index 4c1538b4b..000000000
--- a/doc/project/governance.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-[h2]$Projectname Governance[/h2]
-
-Governance relates to the management of a project and particularly how this relates to conflict resolution.
-
-[h3]Community Governance[/h3]
-
-The project is maintained and decisions made by the 'community'. The governance structure is still evolving. Until the structure is finalised, decisions are made in the following order:
-
-[ol]
-[*] Lazy Consensus
-
-If a project proposal is made to one of the community governance forums and there are no serious objections in a "reasonable" amount of time from date of proposal (we usually provide 2-3 days for all interested parties to weigh in), no vote needs to be taken and the proposal will be considered approved. Some concerns may be raised at this time, but if these are addressed during discussion and work-arounds provided, it will still be considered approved.
-
-[*] Veto
-
-Senior developers with a significant history of project commits may veto any decision. The decision may not proceed until the veto is removed or an alternative proposal is presented.
-
-[*] Community Vote
-
-A decision which does not have a clear mandate or clear consensus, but is not vetoed, can be taken to a community vote. At present this is a simple popular vote in one of the applicable community forums. At this time, popular vote decides the outcome. This may change in the future if the community adopts a 'council' governance model. This document will be updated at that time with the updated governance rules.
-[/ol]
-
-Community Voting does not always provide a pleasant outcome and can generate polarised factions in the community (hence the reason why other models are under consideration). If the proposal is 'down voted' there are still several things which can be done and the proposal re-submitted with slightly different parameters (convert to an addon, convert to an optional feature which is disabled by default, etc.). If interest in the feature is high and the vote is "close", it can generate lots of bad feelings amongst the losing voters. On such close votes, it is [b]strongly recommended[/b] that the proposer take steps to address any concerns that were raised and re-submit.
-
-
-
-
-
-
diff --git a/doc/project/toc.html b/doc/project/toc.html
deleted file mode 100644
index e264e014d..000000000
--- a/doc/project/toc.html
+++ /dev/null
@@ -1,5 +0,0 @@
-<h3>Project Information</h3>
-<ul>
-<li><a href="help/project/governance">Project Governance</a></li>
-<li><a href="help/project/versions">Versions and Versioning</a></li>
-</ul>
diff --git a/doc/project/versions.bb b/doc/project/versions.bb
deleted file mode 100644
index 451cd0448..000000000
--- a/doc/project/versions.bb
+++ /dev/null
@@ -1,30 +0,0 @@
-[h2]Versions and Releases[/h2]
-
-$Projectname currently uses a standard version numbering sequence of $x.$y(.$z), for instance '1.12' or '1.12.1'. The first digit is the major version number. Major versions are released "roughly" once per year; often in December.
-
-The second digit is the minor release number. If this number is odd, it is a development version. If the number is even, it is a released version. Minor versions are released (moved from dev to master) typically once per month when development is 'stable', but this is likely to increase. Going forward minor releases will be made somewhere between one and three months; corresponding to a stable code point and when there is general community consensus that the current code base is stable enough to consider a release.
-
-The final digit is an interface or patch designator.
-
-The release process involves changing the version number (by definition the minor version number will be odd, and the minor number will be incremented). Once a year for a major release the major version will be incremented, and the minor number reset to 0.
-
-The release candidate is moved to a new branch; and testing will commence/continue for a period of 1-2 weeks afterward or until any significant issues have been resolved. This branch is usually labelled with RC (release candidate); for instance 1.8RC represents the pending release of version 1.8. At this time, the minor version number on the dev branch is incremented to the next odd number. (For instance 1.9). New development can then take place in the dev branch.
-
-Bug fixes should always be applied to 'dev' and from there merged forward (typically with git cherry-pick) to the RC branch and if necessary applied to the master or official release branch.
-
-At the time a release candidate is produced, the language strings file is frozen until a release is made. Translation work may continue, but all translations should be submitted to 'dev' and merged forward to RC.
-
-
-Once RC testing is completed, RC is merged to 'master' and the RC version designator removed; resulting in one final checkin to change the version number. The CHANGELOG file should also be updated at or just prior to this time. If there are merge conflicts during this final merge, the merge will be abandoned; and 'git merge -s ours' applied. This results in a replacement of master with the contents of the RC branch. Conflicts often arise with string updates which were made to master after the last release and cannot easily be resolved without hand editing. Since this is a release of tested code, hand editing is discouraged, and the replacement merge strategy should be used instead. It is assumed that RC now contains the most recent well-tested code.
-
-Once the release is live and merged to master, the RC branch may be removed.
-
-Fixes may be made to master after release. Where possible these should be made to dev and 'git cherry-pick' used to merge forward; which preserves the commit info and prevents merge conflicts in the next cycle. Only rarely does a patch only apply to the master branch. If necessary this can be made. If the change is severe, the interface version number should be incremented. This is at the discretion of the community. In any event, a 'git pull' of the master branch should always result in the latest release with any post-release patches applied.
-
-The interface number (the $z in $x.$y.$z) should be incremented in dev whenever a change is made which changes the interfaces or API in incompatible ways so that any external packages (especially addons and API clients) relying on a the current behaviour can discover and change their own interfaces accordingly at the point that it changed.
-
-
-
-
-
- \ No newline at end of file
diff --git a/doc/server_roles.bb b/doc/server_roles.bb
deleted file mode 100644
index ef6ec28ae..000000000
--- a/doc/server_roles.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-[h2]Server Roles[/h2]
-
-$Projectname can be configured in many different ways. One of the configurations available at installation is to select a 'server role'. There are currently three server roles. We highly recommend that you use 'standard' unless you have special needs.
-
-
-[h3]Basic[/h3]
-
-The 'basic' server role is designed to be relatively simple, and it doesn't present options or complicated features. The hub admin may configure additional features at a site level. This role is designed for simple social networking and social network federation. Many features which do not federate easily have been removed, including (and this is somewhat important) "nomadic identity". You may move a channel to or from a basic server, but you may not clone it. Once moved, it becomes read-only on the origination site. No updates of any kind will be provided. It is recommended that after the move, the original channel be deleted - as it is no longer useable. The data remains only in case there are issues making a copy of the data.
-
-This role is supported by the hubzilla community.
-
-[h3]Standard[/h3]
-
-
-The 'standard' server role is recommended for most sites. All features of the software are available to everybody unless locked by the hub administrator. Some features will not federate easily with other networks, so there is often an increased support burden explaining why sharing events with Diaspora (for instance) presents a different experience on that network. Additionally any member can enable "advanced" or "expert" features, and these may be beyond their technical skill level. This may also result in an increased support burden.
-
-This role is supported by the hubzilla community.
-
-[h3]Pro[/h3]
-
-The 'pro' server role is primarily designed for communities which want to present a uniform experience and be relieved of many federation support issues. In this role there is [b]no federation with other networks[/b]. Additional features [b]may[/b] be provided, such as channel ratings, premium channels, and e-commerce.
-
-By default a channel may set a "techlevel" appropriate to their technical skill. Higher levels provide more features. Everybody starts with techlevel 0 (similar to the 'basic' role) where all complicated features are hidden from view. Increasing the techlevel provides more advanced or complex features.
-
-The hub admin may also lock individual channels or their entire site at a defined techlevel which provides an installation with a selection of advanced features consistent with the perceived technical skills of the members. For instance, a community for horse racing might have a different techlevel than a community for Linux kernel developers.
-
-This role is not supported by the hubzilla community. \ No newline at end of file
diff --git a/doc/service_classes.bb b/doc/service_classes.bb
deleted file mode 100644
index 4dead5d29..000000000
--- a/doc/service_classes.bb
+++ /dev/null
@@ -1,38 +0,0 @@
-[b]Service Classes[/b]
-
-Service classes allow you to set limits on system resources. A GUI to configure this is currently under development.
-
-As a temporary measure, the following commandline utilities can be used:
-
-Usage:
-
-[code]util/service_class[/code]
-list service classes
-
-[code]util/config system default_service_class firstclass[/code]
-set the default service class to 'firstclass'
-
-[code]util/service_class firstclass[/code]
-list the services that are part of 'firstclass' service class
-
-[code]util/service_class firstclass photo_upload_limit 10000000[/code]
-set firstclass total photo disk usage to 10 million bytes
-
-[code]util/service_class --account=5 firstclass[/code]
-set account id 5 to service class 'firstclass' (with confirmation)
-
-[code]util/service_class --channel=blogchan firstclass[/code]
-set the account that owns channel 'blogchan' to service class 'firstclass' (with confirmation)
-
-[b]current limits[/b]
-photo_upload_limit - maximum total bytes for photos
-total_items - maximum total toplevel posts
-total_pages - maximum comanche pages
-total_identities - maximum number of channels owned by account
-total_channels - maximum number of connections
-total_feeds - maximum number of rss feed connections
-attach_upload_limit - maximum file upload storage (bytes)
-minimum_feedcheck_minutes - lowest setting allowed for polling rss feeds
-chatrooms - maximum chatrooms
-chatters_inroom - maximum chatters per room
-access_tokens - maximum number of Guest Access Tokens per channel \ No newline at end of file
diff --git a/doc/theme_management.bb b/doc/theme_management.bb
deleted file mode 100644
index 5691f7c48..000000000
--- a/doc/theme_management.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-[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
deleted file mode 100644
index b1c4923b1..000000000
--- a/doc/to_do_code.bb
+++ /dev/null
@@ -1,42 +0,0 @@
-[b]Project Code To-Do List[/b]
-
-We need much more than this, but here are areas where developers can help. Please edit this page when items are finished. Another place for developers to start is with the issues list.
-
-[li]Documentation - see Red Documentation Project To-Do List[/li]
-[li]Include TOS link in registration/verification email[/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]relmeauth (aka indieauth) support[/li]
-[li]Create bug tracker module[/li]
-[li]Filing posts - provide a dropdown menu integrated with the 'post actions menu'[/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]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]Write more webpage layouts[/li]
-[li]Write more webpage widgets[/li]
-[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]External post connectors - create standard interface[/li]
-[li]External post connectors, add popular services[/li]
-[li]service classes - provide a pluggable subscription payment gateway for premium accounts[/li]
-[li]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]Uploads - integrate #^[url=https://github.com/blueimp/jQuery-File-Upload]https://github.com/blueimp/jQuery-File-Upload[/url][/li]
-[li]API extensions, for Twitter API - search, friending, threading. For Red API, lots of stuff[/li]
-[li]Import channel from Diaspora/Friendica (Diaspora partially done)[/li]
-[li]MediaGoblin photo "crosspost" connector[/li]
-[li]provide a visual editor[/li]
-[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]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]
-
-
-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.
-
-Return to the [url=[baseurl]/help/main]Main documentation page[/url]
diff --git a/doc/to_do_doco.md b/doc/to_do_doco.md
deleted file mode 100644
index 018b9efa2..000000000
--- a/doc/to_do_doco.md
+++ /dev/null
@@ -1,31 +0,0 @@
-# Documentation To-Do List #
-
-## How to contribute documentation ##
-
-Documentation files are in */doc*.
-
-When help is first accessed, the file loaded is *main.bb*. That file contains case sensitive links without an extension. The extensions is added automatically if the file is found, first *.md* then *.bb*.
-
-For translating documentation, create a directory in */doc* named by the language code, copy the files and translate the content.
-
-## Documentation we need to write ##
-
-* 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)
-
-#include doc/macros/main_footer.bb;
diff --git a/doc/toc.html b/doc/toc.html
index 851f356e6..1b7de3cb3 100644
--- a/doc/toc.html
+++ b/doc/toc.html
@@ -1,30 +1,31 @@
<div class="" id="accordion">
- <div class="panel">
+ <div class="">
<div class="">
<h3 class="panel-title">
About
</h3>
</div>
- <div id="about" class="panel-collapse collapse in">
- <ul class="list-group">
- <li class="doco-list-group-item"><a href="/help/about/about_hubzilla">About Hubzilla</a></li>
- <li class="doco-list-group-item"><a href="/help/about/hubzilla_project">Hubzilla project</a></li>
- <li class="doco-list-group-item"><a href="/help/about/about_hub">About this hub</a></li>
- </ul>
+ <div id="about" class="doco-section">
+ <div class="flex-column">
+ <a class="nav-link" href="/help/about/about">About</a>
+ <a class="nav-link" href="/help/about/project">Project</a>
+ <a class="nav-link" href="/help/about/about_hub">About this hub</a>
+ </div>
</div>
</div>
- <div class="panel">
+ <div class="">
<div class="">
<h3 class="panel-title">
Members
</h3>
</div>
- <div id="members" class="panel-collapse collapse in">
- <ul class="list-group">
- <li class="doco-list-group-item"><a href="/help/member/member_guide">Guide</a></li>
- <li class="doco-list-group-item"><a href="/help/member/bbcode">BBcode Reference</a></li>
- <li class="doco-list-group-item"><a href="/help/member/member_faq">FAQ</a></li>
- </ul>
+ <div id="members" class="doco-section">
+ <div class="flex-column">
+ <a class="nav-link" href="/help/member/member_guide">Guide</a>
+ <a class="nav-link" href="/help/member/bbcode">BBcode Reference</a>
+ <a class="nav-link" href="/help/bugs">Reporting Bugs</a>
+ <a class="nav-link" href="/help/member/member_faq">FAQ</a>
+ </div>
</div>
</div>
<div class="panel">
@@ -33,11 +34,12 @@
Administrators
</h3>
</div>
- <div id="administrators" class="panel-collapse collapse in">
- <ul class="list-group">
- <li class="doco-list-group-item"><a href="/help/admin/administrator_guide">Guide</a></li>
- <li class="doco-list-group-item"><a href="/help/admin/hub_snapshots">Hub Snapshots</a></li>
- </ul>
+ <div id="administrators" class="doco-section">
+ <div class="flex-column">
+ <a class="nav-link" href="/help/admin/administrator_guide">Guide</a>
+ <a class="nav-link" href="/help/admin/hub_snapshots">Hub Snapshots</a>
+ <a class="nav-link" href="/help/database">Database Tables</a>
+ </div>
</div>
</div>
<div class="panel">
@@ -46,12 +48,14 @@
Developers
</h3>
</div>
- <div id="developers" class="panel-collapse collapse in">
- <ul class="list-group">
- <li class="doco-list-group-item"><a href="/help/developer/developer_guide">Guide</a></li>
- <li class="doco-list-group-item"><a href="/help/developer/zot_protocol">Zot Protocol</a></li>
- <li class="doco-list-group-item"><a href="/help/developer/api_zot">Zot API</a></li>
- </ul>
+ <div id="developers" class="doco-section">
+ <div class="flex-column">
+ <a class="nav-link" href="/help/developer/developer_guide">Guide</a>
+ <a class="nav-link" href="/help/developer/covenant">Code of Conduct</a>
+ <a class="nav-link" href="/help/developer/zot_protocol">Zot Protocol</a>
+ <a class="nav-link" href="/help/developer/api_zot">Zot API</a>
+ <a class="nav-link" href="/help/hooklist">Hooks</a>
+ </div>
</div>
</div>
<div class="panel">
@@ -60,71 +64,10 @@
Tutorials
</h3>
</div>
- <div id="tutorials" class="panel-collapse collapse in">
- <ul class="list-group">
- <li class="doco-list-group-item"><a href="/help/tutorials/personal_channel">Personal Channel</a></li>
- </ul>
+ <div id="tutorials" class="doco-section">
+ <div class="flex-column">
+ <a class="nav-link" href="/help/tutorials/personal_channel">Personal Channel</a>
+ </div>
</div>
</div>
</div>
-<script>
- toc = {};
- // Generate the table of contents in the side nav menu (see view/tpl/help.tpl)
- $(document).ready(function () {
- $(".panel-collapse.in").find('a').each(function(){
- var url = document.createElement('a');
- url.href = window.location;
- var pageName = url.href.split('/').pop().split('#').shift().split('?').shift();
- var linkName = $(this).attr('href').split('/').pop();
- if(pageName === linkName) {
- var tocUl = $(this).closest('li').append('<ul>').find('ul');
- tocUl.removeClass(); // Classes are automatically added to <ul> elements by something else
- tocUl.toc({content: "#doco-content", headings: "h3"});
- tocUl.addClass('toc-content sub-menu');
- tocUl.attr('id', 'doco-side-toc');
-
- }
- });
-
- $(document.body).trigger("sticky_kit:recalc");
-
- toc.contentTop = [];
- toc.edgeMargin = 20; // margin above the top or margin from the end of the page
- toc.topRange = 200; // measure from the top of the viewport to X pixels down
- // Set up content an array of locations
- $('#doco-side-toc').find('a').each(function(){
- toc.contentTop.push( $( '#'+$(this).attr('href').split('#').pop() ).offset().top );
- });
-
-
- // adjust side menu
- $(window).scroll(function(){
- var winTop = $(window).scrollTop(),
- bodyHt = $(document).height(),
- vpHt = $(window).height() + toc.edgeMargin; // viewport height + margin
- $.each( toc.contentTop, function(i,loc){
- if ( ( loc > winTop - toc.edgeMargin && ( loc < winTop + toc.topRange || ( winTop + vpHt ) >= bodyHt ) ) ){
- $('#doco-side-toc li')
- .removeClass('selected-doco-nav')
- .eq(i).addClass('selected-doco-nav');
- if (typeof($('#doco-side-toc li').eq(i).find('a').attr('href').split('#')[1]) !== 'undefined') {
- window.history.pushState({}, '', location.href.split('#')[0] + '#' + $('#doco-side-toc li').eq(i).find('a').attr('href').split('#')[1]);
- }
- }
- });
- });
-
- // When the page loads, it does not scroll to the section specified in the URL because it
- // has not been constructed yet by the script. This will reload the URL
- if (typeof(location.href.split('#')[1]) !== 'undefined') {
- var p = document.createElement('a');
- p.href = location.href;
- var portstr = '';
- if(p.port !== '') {
- portstr = ':'+ p.port;
- }
- var newref = p.protocol + '//'+ p.hostname + portstr + p.pathname + p.hash.split('?').shift();
- location.replace(newref)
- }
- });
-</script>
diff --git a/doc/tutorials/personal_channel.html b/doc/tutorials/personal_channel.html
index f2ad87077..9dbc2aaec 100644
--- a/doc/tutorials/personal_channel.html
+++ b/doc/tutorials/personal_channel.html
@@ -6,7 +6,7 @@ to a personal channel in a natural way.</p>
<h3 id="Create_a_new_channel">Create a new channel</h3>
<p>When you log in for the first time after registering, you must create a channel.
-(Alternatively you can load https://grid.reticu.li/new_channel)</p>
+(Alternatively you can visit https://your_website/new_channel)</p>
<p><img class="img-responsive" src="/help/tutorials/assets/c9a880cc82ffa1f7c2f460397bb083bf7dc2a2b8f065e64da598b45b4a2b.png" alt="image"></p>
@@ -76,7 +76,7 @@ so you can specify exactly who can access this post.</p>
<h3 id="Use_an_uploaded_image_as_a_channel_cover_photo">Use an uploaded image as a channel cover photo</h3>
<p>One way to add some pizzazz your channel is to add a cover photo that visitors will
-see when they load your channel page. Hubzilla's integrated cloud file system
+see when they load your channel page. The integrated cloud file system
allows you to choose an existing photo for this purpose.</p>
<p>Visit your photos in the <strong>Photos</strong> app</p>
@@ -99,9 +99,9 @@ channel page will fade in as you scroll down.</p>
<h3 id="Make_a_connection">Make a connection</h3>
-<p>Making connections between channels to share things is what Hubzilla is all about.
+<p>Making connections between channels to share things is what social communications are all about.
Making a connection is simple. If you do not already know how to reach a channel's home
-page, you might try a directory search by opening the <strong>Directory</strong> link on the right
+page, you might try a directory search by opening the <strong>Directory</strong> link from the menu on the right
side of the top navbar.</p>
<p><img class="img-responsive" src="/help/tutorials/assets/ef78bc6aa3fafebd46f353514c907b3fdfe019918fc5553bb3f31388a36f.png" alt="image"></p>
@@ -160,4 +160,4 @@ editor by pressing the edit button beside the <strong>Delete</strong> button.</p
<p><img class="img-responsive" src="/help/tutorials/assets/c4cad3e4c356dd2a227df79bd4dc6d47edf1b66ea243f005b6b452ec366b.png" alt="image"></p>
- \ No newline at end of file
+