ElkArte Community

Elk Development => Feature Discussion => Topic started by: TE on November 04, 2017, 03:16:30 am

Title: my personal wishlist for 1.2 / 2.0
Post by: TE on November 04, 2017, 03:16:30 am
Here's my small "wishlist" for new features in 2.0 , focused on interaction with social media sites ( IMO a "must have" these days) and improved usability.
Most of the code is already there (addons)  :D

In addition to those features a new small and lightweight theme based on a common CSS framework such as materializecss (http://materializecss.com/) could be my focus. Not sure if it's worth adding a template engine such as Mustache (https://github.com/bobthecow/mustache.php) or Twig.. If so I'd personally favour Mustache, it's lightweight and can be used both  in PHP and Javascript.
Title: Re: my personal wishlist for 1.2 / 2.0
Post by: Frenzie on November 04, 2017, 04:26:05 am
Something like ImageCache should definitely be part of the core because of HTTPS. I'd also suggest the option to use your own (caching) proxy instead.[1]

I'm vehemently opposed to infinite scrolling. Pagination is a non-negotiable requirement.

With that out of the way, changes that would be good for infinite scrolling could also be helpful for faster pagination when JS is enabled. That is, a stripped Display_Controller output such as included in the endless scrolling add-on.
Title: Re: my personal wishlist for 1.2 / 2.0
Post by: emanuele on November 04, 2017, 08:04:09 am
The image proxy is already planned for either 1.1.1 or (more likely) 1.1.2 dependig on when 1.1.1 is released and how much testing is needed for image proxy (that should alredady be pretty stable anyway).

Re endless: mixed feeling, I would favour a general approach to have controllers able to return something that can easily be translated in whatever is necessary.

Re css frameworks: dunno, not my field. I find bootstrap not so easy to work with and with a kind of confused goal (it wants to do more than just positioning, but less than everything needed to do more), apart from that, I would love to use a css preprocessor (with the goal of creating a simple color picker for the default theme).

Re tags/prefixes: I wrote an addon (still beta as usual xD), in my mind, this was a first step at rethinking the whole category/boards stuff. Not a complete revolution, but the idea would be that everything is a tag. Tags then can be "promoted" to categories (i.e. categorize other tags), or boards (i.e. categorize topics) and even shown next to the topic (i.e. prefixes). This would also simplify the way discussions are done in the forum, nowadays we see more and more people not "able" to pick the correct board for a topic (or just too lazy to pick a board before starting a topic), this kind of more flexible categorization would allow (together with hashtags) to reposition topics on-the-fly while posting, and in case have topics in multiple places with tagging done at post level (for example). Please do not take this as a fully thought solution, it's an idea that needs a lot of development.
Title: Re: my personal wishlist for 1.2 / 2.0
Post by: badmonkey on November 04, 2017, 08:39:18 am
Personally endless scrolling is a must. Nevertheless, as site admins we need to think less of our thoughts and more that of our users. The evil FB has endless scrolling, and like Walmart, people hate it but can't enough. Seems the new platforms are going that way. Would be a major shame for a great platform to be left in 1997. ;)
Title: Re: my personal wishlist for 1.2 / 2.0
Post by: Frenzie on November 04, 2017, 09:49:33 am
Facebook is irrelevant except perhaps as an example of practices to avoid in both regular and web development.  :P  If we want to discuss infinite scrolling we should engage with something actually relevant, like Jeff Atwood (https://blog.codinghorror.com/the-end-of-pagination/). Note how he has implemented sensible infinite scrolling in the comments to his blog. You can try it out in this 379 comment thread (https://discourse.codinghorror.com/t/im-loyal-to-nothing-except-the-dream/4882/323).

Various things that work right in the Discourse implementation of infinite scrolling and to the best of my knowledge pretty much in that implementation only:


So yes, I could live with that. But give me bad pagination over good infinite scrolling any day. For infinite scrolling, less than borderline perfect just won't do. And that's hard. Very hard. But not impossible. So in that sense I retract my earlier words. My demands for infinite scrolling are nigh impossible to meet and I have zero interest in wasting my time to implement it, but I'm not vehemently opposed. I'm only vehemently opposed to anything less than what you get in Atwood's Discourse (https://www.discourse.org/).

Still, I'd be very curious to see if that system holds up when you have thousands of replies rather than just a few hundred. A long-running topic on my forum has 154 pages, which at 50 comments per page
[4] means 7700 replies. Admittedly, the Discourse demo looks reasonable enough at a thousand (https://try.discourse.org/t/what-happens-when-a-topic-has-over-1000-replies/301/352).

What doesn't work in Discourse:
  • Mobile. Suddenly it reverts to the horrors of endless scrolling with a complete inability to reach page 50. Presumably, it should revert to pagination instead.
With pagination you can load ten pages in the background; without this choice is taken away from you so you need to preload. Actually adding it to the DOM can and possibly should wait.
NB This point applies to both infinite scrolling and pagination.
A much more sensible default than 25 if you ask me.
Title: Re: my personal wishlist for 1.2 / 2.0
Post by: Frenzie on November 04, 2017, 12:56:25 pm
Something Discourse doesn't necessarily break, although it might, but which most infinite suffering implementations are virtually guaranteed to:


Things Discourse fails at, presumably through an insufficient use of object detection (i.e., don't blank out the fallback until you're sure you know you can actually stick in the infinite scrolling implementation[2]):

Perhaps that's where the print to PDF request comes in, but then suddenly you're changing a dynamic responsive webpage format into a sturdy PDF. That has advantages and disadvantages of its own.
I'll yet again eat some of my earlier words. I might contribute to improving a Discourse-level implementation by making sure these kinds of issues don't happen.
Title: Re: my personal wishlist for 1.2 / 2.0
Post by: ahrasis on January 05, 2018, 10:26:51 pm
Though I like to see endless scrolling, I am ok with addon if some is not added as feature. I will like it more if it uses flarum approach in that matter though flarum-style addon is also around as well.
Title: Re: my personal wishlist for 1.2 / 2.0
Post by: Frenzie on January 06, 2018, 06:23:02 am
It looks like Flarum copied Discourse very well, by which I mean it looks almost too similar to be a mere coincidence of parallel development. It does have a few notable differences, like how Home and End work. In Flarum it's flawed as a synonym for Pg Up/Dn, while in Discourse it's not (cf. supra).

But it's also managed to resolve at least one of Discourse's flaws. It works perfectly on Opera/Presto and falls back properly to pagination on Netsurf.

Thanks for pointing it out!
Title: Re: my personal wishlist for 1.2 / 2.0
Post by: radu81 on January 06, 2018, 07:16:55 am
Not a big fan of endless scrolling, but if I have to vote I'd vote for this:
QuoteTopic Tags or Topic prefixes
Or both
Title: Re: my personal wishlist for 1.2 / 2.0
Post by: Frenzie on January 06, 2018, 11:41:07 am
What are topic prefixes?
Title: Re: my personal wishlist for 1.2 / 2.0
Post by: emanuele on January 06, 2018, 12:30:01 pm
Here there are few screenshots of what I put together years ago: https://www.elkarte.net/community/index.php?topic=1424.0
Title: Re: my personal wishlist for 1.2 / 2.0
Post by: radu81 on January 06, 2018, 01:04:28 pm
the admin can set some prefixes for a certain board, and when opening a new topic the member can choose a prefix for that topic.  You can use it to filter topics based on a prefix in a board.