The difference between GNU social and CMSs like Joomla is that, in GNU social, we follow the Unix-philosophy of small programs to do a small job seriously.
That is, GS has a structure in which themes are only intended to change the common appearance and, therefore, changing the CSS should be enough.
Often, themes in CMSs like Joomla allow to add functionality, which should only be done via plugins (at least in GS's case). The concept of themes with embedded PHP wasn't new back when GS was first written. I believe it wasn't applied on purpose because of the above mentioned reasons.
Therefore, I think the existing structure is good and powerful.
With plugins you can add functionality and the associated styling. Take your translation plugin as an example. You were able to add a visual component (a Translate button to each notice), specific javascript and, you could have added specific CSS too (maybe by presenting an icon in the translate button instead of the text 'Translate').
The HTML visual components that are inherent to GS, i.e. not added by plugins, can be edited, as you've said, by directly modifying the core. And, although the existing elements are likely fine, we should consider to start making use of HTML5's new tags.
cc: Maybe you have some further insight to add @MMN-o ?
> we need to edit the document object adding classes and more elements
So, bearing this in mind, maybe those new elements could be added with plugins instead? As this allows every theme to take advantage of them and not only a specific one. What do you think?
I guess you are looking for the `StartShowNoticeItem` event...
Maybe something like:
function onStartShowNoticeItem($item) { $url = common_local_url('YandexTranslate', ['id' => $item->notice->id]); $item->out->element('a', ['href' => $url, 'class' => 'YandexTranslate', 'title' => 'Translate this dent to my language.'], 'Translate this dent to my language.'); return true; }
Well, if you're interested in economically supporting my efforts in GS, I have a paypal account (my_first_name@fc.up.pt) - where my_first_name = diogo
I guess it would be better if I could point a bitcoin address or so, but I don't really know how those work and as so I don't have one. I also don't have a patreon or liberapay account.
Unfortunately the news related to XMPP aren't that huge...
> Improved XMPP support Just really means that the support of the XMPP protocol was improved. There are no new functionalities just yet (but there is this open RFC: https://notabug.org/diogo/gnu-social/issues/21 ).