cover photo

Hubzilla Development

Mario Vavti
I would like to make sorting orders (by comments or by posts) in /network (a.k.a. activity app) a display setting.

I don't think many people switch between those frequently. Moving this switch to display settings and the additional filters (starred, personal and new) to a widget in left aside will unclutter the UI without loosing any functionality. Also there will be more space to name the filters in a way that their function will be selfexplaining.

Any objections on this change?

!!Hubzilla Development
  last edited: Sun, 27 May 2018 08:38:22 -0400  
It is a good idea to have the option to choose whether or not the tabs - “Commented Order” / “Posted Order” is shown

not sure if it is a good idea to move this tabs to a widget – if you want to unclutter the UI better leave it in the middle but turn it into a “hamburger menu”

if you want to move the  setting to “display settings” you should also move everything under “Network and Stream Filtering”  

Additional features > Network and Stream Filtering  
display settings > Network and Stream Filtering
Alexandre Hannud Abdo
Hm. I do switch between those sometimes... Let me try to give some hopefully helpful feedback:

I would normally have it in comment order, to check what are people discussing, but when I want to check I've seen all recent posts I change it to post order.

The more frequent reason I do this is because marking stuff as seen upon loading makes it hard to control what you've actually seen, and together with infinite scrolling it becomes even harder.

I much prefer the stream experience, as proposed by the network module, but because of these bits I almost always end up loading messages one by one from the notifications widget.

Ideally I would have things marked read upon "mouse hovers item" or "finger touches item surface". It may seem like a lot of interaction, but loading posts one by one does way more.

One thing that is really useless to me is the blue highlight in stream posts. At least if I remember right it indicates posts in the last 12h or such. I would find it way more useful if it indicated unseen items.

Finally, in any case, I still find it neat to be able to switch order. I wouldn't like to see it gone. I'd keep it with the filters under a more clearly delimited section "sorted by".

I see this as something that will eventually be further enriched to useful ends with plugins, for example to have a "anyone from some privacy group interacted" order or "most liked" order, or "machine learned more likely to interact order". And these are choices we want to render visible to help people be conscient of what is being displayed to them.

Thanks if you've got this far, I know it's a long message. ;)
Mario Vavti
@Alexandre Hannud Abdo you might want to try /hq as your start page. There only the newest thread will be loaded by default.

Andrew Manning
Just throwing an idea out here. We've all discussed the fundamental privacy issue that prevents us from adding images to a comment with an ACL equivalent to the original post. For those new to the concept, this is because the ACL itself (i.e. the distribution list for the post) is private, and since the commenters do not know the ACL or have the same connections as the post author, they cannot set the ACL of an uploaded image/file to match. What a commenter can always do is decide that their image is public, which bypasses the need to know the ACL for the parent post. The tricky part is that some channels have a role in which it is impossible for a standard photo upload to be public; for instance they may set their permission limit to "no one can see my photos".

What if we make a "special" image/file upload type for this purpose, where it is understood that all images uploaded as comment imagery will be technically public? Such "comment files" could still be protected in a way by assigning them complex URLs similar to the "share by link" method of cloud storage platforms. People who have access to the discussion will get this URL as an embedded image or attached file in the normal comment thread, but the internet at large will have no way of querying the hub to retrieve a list of such file URLs, even if they are technically public in the sense of the word as Hubzilla uses it.
Mike Macgirvin
Here's my best idea yet on the subject: you could embed the photo into the post (like we used to do for sharing private photos in Friendica) and not actually store it locally. It's a ghastly amount of work and wouldn't federate anywhere else (except perhaps to to Friendica).
Andrew Manning
you could embed the photo into the post (like we used to do for sharing private photos in Friendica) and not actually store it locally.

At first I thought you were saying the same thing I just said, but now I think I understand that you mean to store the image file in text format (like base64 encoding) that can be included directly in the data that is distributed to the participating channels? That is a far simpler idea. Images are what people mostly need in comments, so if only images were supported, I would consider that a win. The vast majority of the time when someone wants to include a photo in a comment, it is intended for that purpose only, so the fact that text-encoding the photo in the comment means it will be deleted when the comment is deleted is a good thing.
Alexandre Hannud Abdo
Hm... ghastly for ghastly, I think I'd rather have my server tunnel images from the poster's server (perhaps with some smart caching that checks whether the same image is still available before relaying, and which I can explicitly limit in total cache size) rather than storing images as text in my database (and of all participants in the conversation).
Haakon Meland Eriksen (Els Mussols)
@Hubzilla Development+ I have never tried Mastodon myself, but I have added two connections. However, I am not sure if they know - how can I tell on my end? What information is it possible to exhange today with a Mastodon connection, either one way or two ways?
Haakon Meland Eriksen (Els Mussols)
Thanks, Mario :-)
Harald Eilertsen
I'm not on Mastodon, but GnuSocial/Quitter. Since both federate over ostatus I'd guess it's quite similar. If you federate with Mastodon over ActivityPub that may perhaps be different. Here's my observations as a Hubzilla newbie.

Posts flow just fine between Hubzilla and GnuSocial – both ways. If I add a title to the Hubzilla post, that part is not shown in GnuSocial. I can't reference GnuSocial groups from Hubzilla posts (not surprising, just had to try,) but tags are forwarded just fine. Haven't tried following a GnuSocial group in Hubzilla yet. Not sure how to do that.

Commenting on posts from GnuSocial seems to work fine. The one issue I have is that a comment on any public post (from any network) in Hubzilla is forwarded as a post to GnuSocial without any context. That makes for some confusing posts on that side. Not sure if the same is the case for Mastodon.

Not quite what you were asking for, but hopefully useful input anyways :)
Haakon Meland Eriksen (Els Mussols)
Thanks, Harald! :-) While I have settled in the Zillaverse, it is good to know we have established contact with the other worlds out there. :-)

Hi there,

I just wanted to say I was so happy today when I could finally have a round trip conversation with gnusocial people, thank you so much! In Spain there's much more people in the ostatus fediverse that in diaspora's (not to say zot's), and for long time I could only hear and watch silently but not reply back to this community.

I don't know which version exactly added the needed features to the gnusoc plugin, but I've got them this week when updating to 3.4. I feel like I've broken the dark glass of the window that was making me almost invisible to that community. Thank you so much!
Mike Macgirvin
That's been working pretty well for the last year or so.
Last time I tried to reply to a gnusocial connection was last November (don't know which version I was running then), and since then I didn't tried again nor followed any progress on dev. Even if it's one year later, thank you ^^

Hi there, yesterday I discovered why the catalan translation was still missing after my pull request was accepted 2 months ago. And before that, I kept wondering during even more time if the catalan translation had been merged from transifex.

So, where would the best place to put a guide on how to translate hubzilla? I volunteer for this. Just a few steps, somewhere to start with or to consult if you are in doubt (like "hey! I'm in step 3, I don't know how to proceed to 4. v" instead of "Idk what else to do, I hope someone will eventually manage this").

As another point, I'm not sure how the documentation on /help should be translated. I guess it's managed outside transifex just by git, because it's just raw long text, but it would be nice to have it written somewhere. Are there any other sets of text waiting to get translated?

Thank you for your time, nice people!
edit hstrings.php and on lines 3 and 4 change "string_plural_select_." to "string_plural_select_fr"

I've never done this. Which consequences does it have to do it or not to?

upload hstrings.php and hmessages.po to the hubzilla dev branch on git

Both times I did have done this, I have created a pull request to the master branch, should I do it to dev then?

you will have to manually edit the files in /doc/LANG/*
if the file doesnt't exist under /doc/LANG, copy the english file from /doc/* to /doc/LANG/*

Close to what I figured then. Thank you :)

Oh my, looking for a place to save this guide I've found that there is already existing one. Anyway I think it could use some help cleaning up. I will check if it is better explained in spanish or italian, otherwise I will do a proposal to the english doc trying to respect the existing text but cleaning it and enhancing it.

Maybe other translators like @Manuel can be interested on sharing their workflow and what do they think that should be included in the help page?

Do you think this could be linked from the project landing page? At  the /help page it says that anyone that contributes, participates in the project is a "developer", but at this front page, developer section, there is no mention to translation.

There is a lot of work to do, and that work needs developers. Be a part of something amazing. There are many ways you can contribute.
Philip Wittamore
  last edited: Thu, 24 May 2018 03:25:18 -0400  
Which consequences does it have

Hubzilla will fail to work. I was not using po2php correctly though,
php util/po2php.php view/fr/hmessages.po works fine.

should I do it to dev then?


Do you think this could be linked from the project landing page?

You are free to edit the TOC /doc/ca/toc.html
Mike Macgirvin
Typically PO files all contain a single plural selection function and typically they are called the same thing regardless of what language you're using. We occasionally need to swap out the current language to (for instance) send an email in a different language and then swap back again.  PHP (actually most computer languages) don't really like function names that are defined twice and this usually chokes it. So we hacked up the translation functions to provide a unique function name for the plural selection function in each language file. Now we can swap languages until the cows come home.
@grey I think screenshot from @Antilopa includes her personal changes. You can change most of the aspects of the theme (colors, roundness etc) via the settings Settings > Display Settings > Custom Theme Settings so you make your own flavour. if you made something you would like to share with others, you can then poke us with the screenshot and the values you changed on and we could then include your take on the theme and add it as a schema, so that others could use it too.
@Philip is there a reason why both Ajouter en Suivre are used in the french translation? why not chose just one of the two?
Philip Wittamore
  last edited: Sat, 26 May 2018 02:53:36 -0400  
There could be an error, in Transifex both 'Connect' and 'Connect/Follow' are tranlated to 'Ajouter/Suivre'
but I don't think text is necessary for this widget anyway.

EDIT: text in Transifex corrected

Haakon Meland Eriksen (Els Mussols)
@Hubzilla Development+  I really love the filtering of sourced items. However, I have noticed some sources source each other, which leads to duplicates and sometimes unwanted commentary. This got me thinking about a  sourcing review/accept/decline option, something like the comment review, i.e. sourced items are not automatically published, they are manually curated by the channel owner. Interesting idea?
Mike Macgirvin
It is. As far as implementation, Implementation would be pretty easy since we already have most of the bits. The only additional thing it might scream for is having support for a 'moderated' section in the notification widget.
Haakon Meland Eriksen (Els Mussols)
I thought a bit more, by adding H5P learning resources through curated sourcing, Hubzilla would be a very interesting MVP for MoodleNet. ;-)

neue medienordnung plus
  last edited: Tue, 22 May 2018 01:22:50 -0400  
I suggest the Hubzilla article and card templates to change, so that the article and card headline are insert in title item. For example so:
<title>Here article or card headline</title>

#header #headline #titleItem #articleHeadline @Hubzilla Development+
Mario Vavti
  last edited: Mon, 21 May 2018 02:13:56 -0400  
!Hubzilla Development does anyone have an idea how to improve the tabs in /network to make more clear what they do? Maybe just the naming needs to be altered. The text should not be too long though due to vertical space restriction...
Mario Vavti
Ok. I was thinking because in english it says "Commented Order" and "Posted Order" while in german they are called "Neueste Kommentare" and "Neueste Beiträge". There is no mention of ordering in german...
I was thinking because in english it says "Commented Order" and "Posted Order" while in german they are called "Neueste Kommentare" and "Neueste Beiträge". There is no mention of ordering in german...

That's a good hint into the right direction... just step back a little further and see the bigger picture and where confusion in general might come from:
The tabs are mixing all things together without any logic - the display mode, the sort order/mode and two filters.

The "New" tab represents a special display mode where all activities are shown out-of-context (not threaded). The other mode would be the in-context mode (threaded) which is used on the other tabs now. So that's the first thing that could be separated. When out-of-context, sort order/mode (3) is fixed since you only have single activities.

The "Personal" and "Starred" tabs represent filters. They use in-context display mode now but could also work in out-of-context mode. There might be more filters in the future as well, via core or plugins. That's the next thing to be separated. It should also be clear if and how filters can be combined (since there are more filters in the left menu).

The last thing to be separated is the sort order/mode. It should be clear what is sorted (e.g. posts) and according to which criterion (e.g. latest comment on a post).

These are just some thoughts from my experience. I hope they can help a bit.
Filters might be the most complex change here on the long run since they should be merged with all the other filters into a consistent and easy-to-use filtering interface.
 from ActivityPub
@mario can you please stop direct messaging us? Thanks.

neue medienordnung plus
ist this symbol for "Only connections I specifically allow" so correct?


#PermissionsSymbol #specificallyAllow @Hubzilla Development+
Mario Vavti
Sigh... Since you obviously selected custom/expert mode as your channel permission role i would assume you know what you are doing...

You selected "Only connections i specifically allow" for your "Can view my channel stream and posts" limit. Hence if you try to make the ACL for a post public (by not attaching an ACL at all), we will not tell you it's public (because it's not public due to the limit you have set). Instead we will tell you that it is visible by whoever your limit allows. In fact you can never post anything public this way.

If you change your limit later, those posts will become public (since they are not limited anymore and don't have an ACL attached).

So, if you not sure what you are up to, please stick to one of the predefined roles and everything will be fine...
Mario Vavti
DIe Übersetzung vom 2. Absatz ist nicht ganz korrekt.

Öffentliche Beiträge haben keine ACL. Sie sind ja öffentlich...
Mario Vavti
Hence if you try to make the ACL for a post public (by not attaching an ACL at all), we will not tell you it's public (because it's not public due to the limit you have set).

Deshalb, wenn du die ACL für ein Post auf öffentlich stellst (in dem du keine ACL für diesen Post verwendest), sagt Hubzilla dir nicht das der Post öffentlich ist (weil der Post ja wegen dem eingestellten Limit nicht öffentlich ist).

!Hubzilla Development Hello all.

I tried create oauth2 application but nothing happened.
There were a lot of errors in logs that table 'oauth_clients' table was'n exist.
I checked that there are no failed updates and found the 1210 update where those tables should be added.
I had run scripts from this update manually and got next errors while adding new oauth app:
2018-05-20T11:37:58Z:LOG_ERR:hm3dd5luukav3njiku3fv1lord:dba_driver.php:459:db_logger: dba_pdo: ERROR: SELECT oauth_clients.*, oauth_access_tokens.access_token as oauth_token, (oauth_clients.user_id = '2') AS my
FROM oauth_clients
LEFT JOIN oauth_access_tokens ON oauth_clients.client_id=oauth_access_tokens.client_id
WHERE oauth_clients.user_id IN ('2',0);
SQLSTATE[42883]: Undefined function: 7 ERROR: operator does not exist: character varying = integer
LINE 4: WHERE oauth_clients.user_id IN ('2',0);
HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts.
2018-05-20T11:38:07Z:LOG_ERR:hm3dd5luukav3njiku3fv1lord:dba_driver.php:459:db_logger: dba_pdo: ERROR: INSERT INTO oauth_clients (client_id, client_secret, redirect_uri, grant_types, scope, user_id)
VALUES ('acpub','e9935616e4443dde','','','','2');
SQLSTATE[42501]: Insufficient privilege: 7 ERROR: permission denied for relation oauth_clients
2018-05-20T11:38:07Z:LOG_ERR:hm3dd5luukav3njiku3fv1lord:dba_driver.php:459:db_logger: dba_pdo: ERROR: SELECT oauth_clients.*, oauth_access_tokens.access_token as oauth_token, (oauth_clients.user_id = '2') AS my
FROM oauth_clients
LEFT JOIN oauth_access_tokens ON oauth_clients.client_id=oauth_access_tokens.client_id
WHERE oauth_clients.user_id IN ('2',0);
SQLSTATE[42883]: Undefined function: 7 ERROR: operator does not exist: character varying = integer
LINE 4: WHERE oauth_clients.user_id IN ('2',0);
HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts.
2018-05-20T11:38:11Z:LOG_ERR:hm3dd5luukav3njiku3fv1lord:dba_driver.php:459:db_logger: dba_pdo: ERROR: SELECT oauth_clients.*, oauth_access_tokens.access_token as oauth_token, (oauth_clients.user_id = '2') AS my
FROM oauth_clients
LEFT JOIN oauth_access_tokens ON oauth_clients.client_id=oauth_access_tokens.client_id
WHERE oauth_clients.user_id IN ('2',0);
SQLSTATE[42883]: Undefined function: 7 ERROR: operator does not exist: character varying = integer
LINE 4: WHERE oauth_clients.user_id IN ('2',0);
HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts.

Also create a github issue:
It works with the 'dataquery' and 'dataquery2' parameters. I didn't find 'dbegin' and 'dend', sorry.

OAuth1 or OAuth2 still don't work:

Tried create a new token and got next error:

2018-05-21T12:07:55Z:LOG_INFO:jql2ihll3hl2rle0qmh4jed240:api.php:107:api_call: API call for : api/oauth/request_token
2018-05-21T12:07:55Z:LOG_INFO:jql2ihll3hl2rle0qmh4jed240:api.php:108:api_call: API parameters: Array
    [q] => /api/oauth/request_token

2018-05-21T12:07:55Z:LOG_ERR:jql2ihll3hl2rle0qmh4jed240:dba_driver.php:459:db_logger: dba_pdo: ERROR: INSERT INTO tokens (id, secret, client_id, auth_scope, expires) VALUES ('<<some chars>>','<<secret>>','<<client_id>>','request', 1526904775);
SQLSTATE[23502]: Not null violation: 7 ERROR:  null value in column "uid" violates not-null constraint
DETAIL:  Failing row contains (<<some chars>>, <<secret>>, <<client_id>>, 1526904775, request, null).

I double checked the database schema and found the table tokens should have the not null uid column.

Created a new OAuth2 app with name "MyApp".
Open url:
I Had entered my login and password and got message "Invalid request. Unknown token."
Mike Macgirvin
The authorize endpoint for OAuth1 is at and the authorize endpoint for OAuth2 is at - we wanted to get some practical experience working with it before finalising the endpoint location.

I don't think anybody has ever tried either with postgres before. I'll sort out the DB issue with oauth1 after coffee.

dbegin and dend were implemented yesterday; but I'm an upstream project and it sometimes takes a day or two for my changes to get merged into Hubzilla.
Ok, I will wait.

neue medienordnung plus
  last edited: Sat, 19 May 2018 09:54:40 -0400  
Both cards - s.  Attachment - contains this code:

[*] line 1
[*] line 2
[*] line 3
Both hubs has the Hubzilla version 3.4. Why is the representation on defective?


Visit also or What can hubmin to do for debugging of list representation on this hub?

= Attachment =

@Hubzilla Development+ @Hubzilla Support Forum+ #ListRepresentation #ListDefective
neue medienordnung plus
@Mario Vavti
You might want to disable markdown in your posts if you intend to use bbcode...
Yes, when I disable markdown, then it eliminate the defective list representation. Can you send me one link, where I can get information about markdown in Hubzilla context. I findN't this information in Hubzilla help.

@Andrew Manning
I am consistently amused by your prolific use of tags, by the way. It seems extremely unlikely, for example, ...
Essential is, that with unique tags how #ListDefective I can quickly filter and find my posts :-).
Mario Vavti
Can you send me one link, where I can get information about markdown in Hubzilla context.

Not sure what you mean. Basically if you enable markdown, you can use markdown. Obviously bbcode will break in certain situations when doing so.
neue medienordnung plus
Not sure what you mean.

My fallacy. I forgot, that Markdown one autonomous language is ;-|.

M. Dent
Bits and pieces of this idea have been rolling around in my mind for a while... but with the recent Google Video reaching the light of day that indicates the big G has already thought about how to manipulate the populus, this becomes a bit more relevant and perhaps moving closer to a must have.

I think it would be not only interesting, but exceedingly useful, to create some sort of distributed search tool that is curated (either deliberately or automatically or some combination of the two) by the people in your connections list and perhaps somehow distributed among various hubs.

It could be passively "curated" by somehow indexing items that have been shared by your connections.  When a link is shared by a connection, the shared page is crawled and indexed and either the index meta-data is shared with each hub and/or user.  Another way would be some sort of knowledge domain token is passed as a pointer to the originating hub so that queries for that knowledge domain get passed to that hub and results are collated by the "querying" hub.  These are just prelimiary thoughts - and a million ideas are jumbled in my head about the HOW to do this in combination with maintaining privacy and data security.

Ideally there would be a way to adjust results based either on some sort of reputation scale (able to be individualized by the one performing the query - perhaps somehow related to affinity - or maybe based on some other metric yet to be created) perhaps also including some sort of "evaluation" of the quality of the link by the person adding it.

Anyway - some random thoughts.  Anyone have others?
Andrew Manning
They're sharing a leaked Google video on YouTube? That is owned by Google. Really?
M. Dent
Yeah, I kind of liked the irony.... except I don't really think it's ironic.  I don't at all think this was an accidental leaking.  I think it was intentional.

I think it was released to see how much backlash there is, begin seeding the idea and desensitizing people to the thoughts...  it's insidious, but its the modern way to market such things so that people accept them without actually thinking about them.

The disclaimer, "thought expriment to provoke discussion..." gives it away, as does the term, "speculative design."  They aren't pursuing taking it down - though, as you note, they would certainly have the ability to do so.  Rather - they're probably tracking carefully who watches it as well as who watches the various commentaries about it that end up being made - all with a view to manipulating their own thought processes.

"Speculative design" is a bit more than a "thought experiment," it is, itself, a means to introduce uncomfortable topics in a way to manipulate the recipient to be accepting of things they otherwise wouldn't while avoiding the important eithical questions.  "Oh, we're just conducting a thought experiment," all the while, the material is designed to cause what would otherwise be uncomfortable to be more comfortable by making the unfamiliar more familiar.

I only skimmed it, but this article was interesting:

Andrew Manning
I've been using this little script when working with Hubzilla code in a development environment and thought someone else might find it useful. Personally I'm using a local virtual machine (hence the root@hub.localhost address), but this would work equally well on a remote server as long as you are interacting via SSH. You use your favorite code editing tools locally and then run the script to sync the changes to the hub and test the code iteration.

When you want to reset the database to a freshly installed state, without having to go through the hub setup process again in the browser, you use the -wipe option. You will need a local copy of the .htconfig.php file, and I recommend disabling email verification. That way, when you wipe the hub, all you have to do is register the "" address and immediately make your "admin" channel.



SYNCOPTS="-a --delete"
EXCLUDE=" --include=.htaccess --exclude=.DS_Store --exclude=.git** --exclude=store/ --exclude=extend/ --exclude=addon/"

if [[ $OPTS == "-wipe" ]]; then
    echo "Delete the $WEBROOT{store,extend,addon} directories..."
    ssh $SSHUSER@$SSHHOST rm -rf $WEBROOT/store
    ssh $SSHUSER@$SSHHOST rm -rf $WEBROOT/extend
    ssh $SSHUSER@$SSHHOST rm -rf $WEBROOT/addon

# Sync hubzilla core and addons

echo "Create required webroot folders if they do not exist..."
ssh $SSHUSER@$SSHHOST mkdir -p $WEBROOT/store/[data]/smarty3/
ssh $SSHUSER@$SSHHOST chmod -R ug+rw $WEBROOT/store/
ssh $SSHUSER@$SSHHOST mkdir -p $WEBROOT/extend/addon/$ADDONREPO/
ssh $SSHUSER@$SSHHOST mkdir -p $WEBROOT/addon/
echo "Sync hubzilla core..."
echo "Sync hubzilla-addons..."
echo "Update addon links..."
ssh $SSHUSER@$SSHHOST "cd $WEBROOT; util/update_addon_repo $ADDONREPO; "

if [[ $OPTS == "-wipe" ]]; then
    echo "Delete the Hubzilla MySQL database..."
    ssh $SSHUSER@$SSHHOST  "mysql -uroot -p$MYSQL_ROOT_PASS -e \"DROP DATABASE $DB_NAME;\""
    # Create the Hubzilla MySQL database
    echo "Create the Hubzilla MySQL database..."
    ssh $SSHUSER@$SSHHOST  "mysql -uroot -p$MYSQL_ROOT_PASS -e \"$SQL\""
    echo "Apply the database schema from install/schema_mysql.sql..."
    ssh $SSHUSER@$SSHHOST  "mysql -uroot -p$MYSQL_ROOT_PASS $DB_NAME < $WEBROOT/install/schema_mysql.sql"
echo "Sync .htconfig.php file..."

exit 0
M. Dent
Nice!  Thanks!
Einer von Vielen

Einer von Vielen
@Hubzilla Development+ #plugin #javascript


A plugin uses an own javascript file like addon/pluginXYview/js/pluginXY.js
And, inside pluginXS.js there is some jquery stuff like this (adds an event listener to an input field).

        var box_title = $('.myinputelement').val();
        alert(box_title); // or something else


This has no effect at the moment.


If I look into the resulting page (Firefox: F12 > Inspector) I see the pluginXY is put into the /head/ of the page before jquery.
Most possible the pluginXY.js runs his ready(...) before jquery is loaded.
Additionally, the documentation of bootstrap advices that the javascript files are put behind the html content to make sure it is loaded after the html content.

Yes , I can put the event listener directly as attribute into the input using this style

<input type="text" onkeyup="myFunction()">

This worked fine but I would prefer to keep the html (or better pluginXY.tpl) clean from javascript.

Any thoughts on this? Is it or was it a question for anybody else?
Einer von Vielen
  last edited: Thu, 17 May 2018 07:27:15 -0400  
@Andrew Manning Thanks, yes I could do that. Hmm, I would prefer not to have it there in pluginXY.tpl. Ok, first I will try to put the

<script src="/addon/pluginXY/view/js/pluginXY.js"></script>

at the end of the page.

/update/ Hang on a minute, I did this. Hmm. ok it was late at night probably to late ;-)
Einer von Vielen
  last edited: Thu, 17 May 2018 14:19:48 -0400  
@Andrew Manning thanks.

I have put now

<script src="/addon/pluginXY/view/js/pluginXY.js"></script>

at the end of the pluginXY.tpl and removed


from pluginXY.php.

I copied something from your chess plugin many thanks! Now you pointed me to the rendevous plugin... Ooooh, there is some more to copy and learn from. Thanks for this amazing "examples". My task at the moment is more reading about bootstrap, the plugins, debugging hubzillas php  instead of getting something done by coding. Slow but exciting enough to miss a round on the motorbike in these wonderful days in springtime.
Einer von Vielen
... forgot this... yes, it works

Jens (public)
hi all at @Hubzilla Development @Hubzilla Support Forum

The most recent and relevant mentioning of theme development I could find is which mentiones another page that dosn't exist anymore (

This is an interesting read already but looking at the theme files I wonder what the different file types work, especially *.tpl files like this one

So, is there any further documentation out there? Did I miss something in the help?
We are about to release our theme which is derived theme from redbasic. @Antilopa is going to update the wiki on how to create derived theme too (i suppose).

Will do it this week still I hope.
Jens (public)
Cool! looking forward to it ?

I really like the WebDAV feature of Hubzilla, and am using it with my Nextcloud etc. However right now the web-interface for managing files in Hubzilla is rather basic. Understandably since there are more important core features, but a bit of a pity.

Looks like this webinterface could work well as a Hubzilla plugin though, as it already supports WebDAV and should be customizable to integrate well with Hubzilla?

It also supports something called org-mode with looks like a rather neat way to organize notes (but is a bit like a markdown wiki):

Anyone interested in this as well?
Thought about it in terms of adding more space to hubzilla's personal storage via nextcloud.

In our case we offer users 4GB nextcloud storage with possibilities to upgrade. Doing the same for hubzilla would be a bit constly so i thoguht since both speak webdav and you can mount hubzilla share on nextcloud, maybe you could do the same but the otherway around. In that way you would have one entrypoint, and we could offer smaller hubzilla space since if needed that could be topped up from nextcloud. Bu tyeah I'm aware of complexity this adds (was just curious if its already implemented and I missed it).
Mike Macgirvin
A mechanism to plugin different storage backends is on the wish list. It has been specfified as a file system abstraction that is implementation neutral.
M. Dent
I just expanded a nextcloud server using S3 via YAS3FS.  When I get back to working on Hubzilla, one of the first things I'll be testing is an S3 backed filestore.  That way you wouldn't need to have different storage backends provided by Hubzilla directly, just use FUSE.

neue medienordnung plus
@Hubzilla Development+ Exist opportunity to define this channel permission limits via settings in Hubzilla confg files?


#channelPermissionLimits #HubzillaConfg #HubzillaPermissions
Hubzilla @ sasiflo
@neue medienordnung plus To give someone the right to view your posts means you have a connection with someone. When you publish a post it is send to this someone and from then on it is out of your control. The rights you wanted is propagated to the contact, but it isn't mere than an advisory. You cannot control what the contact is doing with it. The receiving channel may even redistribute your post to the public.

That was my understanding, hope it is somewhat correct.
Hubzilla @ sasiflo
@neue medienordnung plus That's the thing with posts (and articles I assume). Files and Fotos are a different thing, because they are served directly from your channel and not send to receivers. So you have always control over your Files and Fotos.
neue medienordnung plus
I plan the network, that contains exclusively content from my own channels, my own nomadic identities. I plan this network for quick search in my own tagged content and in tagged #bookmarks .

neue medienordnung plus
Steffen K9 ?Steffen K9 ? wrote the following post Sun, 13 May 2018 05:30:58 -0400

Can you as Sysadmin confirm, that Friendica-node induced less maintenance effort by comparsion to Hubzilla?

Hmm. That's tricky. I run Hubzilla on master branch (stable release) most of the time. So there is not much to do besides an update every couple of weeks or even months.
Friendica is running on develop branch (RC at the moment). And because the Friendica devs are very hardworking people <3 providing a lot of code updates, I "have to" pull new code on a daily basis.
I guess both were on the same level of maintenance efforts if I would run both instances on master (stable) branch.

#comparsionHubzillaFriendica #comparsionHubzillaToFriendica #comparsionHubzilla2Friendica #maintenanceEffort #HubzillaMaintenance #Hubzilla #FriendicaMaintenance  #Friendica @Hubzilla Development+ @Zot universe NEWS+
Andrew Manning
I'm wondering how stable is dev and if I should run it in production as a public hub.

I would not recommend doing that.
Mike Macgirvin
Production/public sites should probably stay on master for a sense of stability - unless it is specifically a developer community. We push a new release every couple of months and the time creeps by before you know it. That said, there have been a number of changes recently which were specifically to address issues encountered in the disroot configuration, which is slightly atypical of our standard configurations. 'dev' will ways be less stable than master (it's the nature of the beast); but we sort of need some feedback on some of these fixes and ensure they are up to scratch before the next release. If anybody at disroot is interested in being involved in ongoing development, a dedicated dev/test site might be a workable option so you don't have to hack on your main site "live" and can also keep up to date with (and even participate in if desired) the latest developments.
Yeah, I'll be setting up dev instance this week (probably weekend) just to be able to break things especially if we go live soon. We really want to start being more involved in development part fo the project as well, so having instance you can break is a must.

But as you pointed out some of (very crutial) for us changes are currently jailed in dev so a tiny 0.0.X release would be great, but I certainly dont want to put any preasure on you guys.

neue medienordnung plus
  last edited: Thu, 10 May 2018 23:51:36 -0400  
File Dialog-auf-Augenhoehe.pdf is published as "public" in the "public" folder. Chanel role and privacy is Mostly Public. But guests of get the warning
Permission denied
for the URL [1]. What can I do thereby guests of channel can view the URL [1] without registration?

Hubzilla version is 3.5.2




@Hubzilla Development+ #PermissionsDenied #DeniedPermissions #Nachbarn #DialogAufAugenhoehe #SitePolicy #MemebrPolicy #MemebrPolicies
Mike Macgirvin
What can I do thereby guests of channel can view the URL [1] without registration?

Site policy always over-rides your member policies.

Visit admin/security and turn off "Block Public" at the top of the page.