v17development / flarum-blog Goto Github PK
View Code? Open in Web Editor NEWThe Flarum Blog extension
Home Page: https://discuss.flarum.org/d/25392-blog-adds-a-blog-section-to-your-community
License: MIT License
The Flarum Blog extension
Home Page: https://discuss.flarum.org/d/25392-blog-adds-a-blog-section-to-your-community
License: MIT License
After more than 30 articles, there's no pagination button to load more.
If I click on a blog post that is visible from the discussions page, I cannot use the flarum back button in the header navigation, I guess because of the redirect used to take you to the blog it will just redirect you back to the blog again. The only way to get back to the discussion page I could find was to use a header link (site logo), which may not be obvious for normal users.
Discussion Post: https://discuss.flarum.org/d/25392-blog-adds-a-blog-section-to-your-community/28
Users need to know where they are and where they came from. This is missing when displaying a blog article.
Flarum logs:
[2021-01-22 10:03:52] flarum.ERROR: Exception: V17Development\FlarumSeo\Extend::setTitle(..): Container was not yet initialized. in /home/oyundede/beta15.quzz.net/vendor/v17development/flarum-seo/src/Extend.php:196
Stack trace:
#0 /home/oyundede/beta15.quzz.net/vendor/v17development/flarum-seo/src/Extend.php(36): V17Development\FlarumSeo\Extend::throwError('setTitle')
#1 /home/oyundede/beta15.quzz.net/vendor/v17development/flarum-blog/src/Controller/BlogOverviewController.php(30): V17Development\FlarumSeo\Extend::setTitle('Blog')
#2 /home/oyundede/beta15.quzz.net/vendor/flarum/core/src/Frontend/Frontend.php(63): V17Development\FlarumBlog\Controller\BlogOverviewController->__invoke(Object(Flarum\Frontend\Document), Object(Laminas\Diactoros\ServerRequest))
#3 /home/oyundede/beta15.quzz.net/vendor/flarum/core/src/Frontend/Frontend.php(55): Flarum\Frontend\Frontend->populate(Object(Flarum\Frontend\Document), Object(Laminas\Diactoros\ServerRequest))
#4 /home/oyundede/beta15.quzz.net/vendor/flarum/core/src/Frontend/Controller.php(32): Flarum\Frontend\Frontend->document(Object(Laminas\Diactoros\ServerRequest))
#5 /home/oyundede/beta15.quzz.net/vendor/flarum/core/src/Http/RouteHandlerFactory.php(38): Flarum\Frontend\Controller->handle(Object(Laminas\Diactoros\ServerRequest))
#6 /home/oyundede/beta15.quzz.net/vendor/flarum/core/src/Http/Middleware/ExecuteRoute.php(27): Flarum\Http\RouteHandlerFactory->Flarum\Http\{closure}(Object(Laminas\Diactoros\ServerRequest), Array)
#7 /home/oyundede/beta15.quzz.net/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Http\Middleware\ExecuteRoute->process(Object(Laminas\Diactoros\ServerRequest), Object(Closure))
#8 /home/oyundede/beta15.quzz.net/vendor/flarum/core/src/Http/Middleware/ShareErrorsFromSession.php(57): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#9 /home/oyundede/beta15.quzz.net/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Http\Middleware\ShareErrorsFromSession->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#10 /home/oyundede/beta15.quzz.net/vendor/flarum/core/src/Http/Middleware/CheckCsrfToken.php(40): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#11 /home/oyundede/beta15.quzz.net/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Http\Middleware\CheckCsrfToken->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#12 /home/oyundede/beta15.quzz.net/vendor/flarum/core/src/Http/Middleware/ResolveRoute.php(67): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#13 /home/oyundede/beta15.quzz.net/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Http\Middleware\ResolveRoute->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#14 /home/oyundede/beta15.quzz.net/vendor/flarum/core/src/Http/Middleware/SetLocale.php(50): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#15 /home/oyundede/beta15.quzz.net/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Http\Middleware\SetLocale->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#16 /home/oyundede/beta15.quzz.net/vendor/flarum/core/src/Http/Middleware/AuthenticateWithSession.php(32): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#17 /home/oyundede/beta15.quzz.net/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Http\Middleware\AuthenticateWithSession->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#18 /home/oyundede/beta15.quzz.net/vendor/flarum/core/src/Http/Middleware/RememberFromCookie.php(51): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#19 /home/oyundede/beta15.quzz.net/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Http\Middleware\RememberFromCookie->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#20 /home/oyundede/beta15.quzz.net/vendor/flarum/core/src/Http/Middleware/StartSession.php(61): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#21 /home/oyundede/beta15.quzz.net/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Http\Middleware\StartSession->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#22 /home/oyundede/beta15.quzz.net/vendor/flarum/core/src/Http/Middleware/CollectGarbage.php(46): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#23 /home/oyundede/beta15.quzz.net/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Http\Middleware\CollectGarbage->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#24 /home/oyundede/beta15.quzz.net/vendor/flarum/core/src/Http/Middleware/ParseJsonBody.php(28): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#25 /home/oyundede/beta15.quzz.net/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Http\Middleware\ParseJsonBody->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#26 /home/oyundede/beta15.quzz.net/vendor/flarum/core/src/Http/Middleware/HandleErrors.php(57): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#27 /home/oyundede/beta15.quzz.net/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Http\Middleware\HandleErrors->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#28 /home/oyundede/beta15.quzz.net/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(84): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#29 /home/oyundede/beta15.quzz.net/vendor/middlewares/request-handler/src/RequestHandler.php(84): Laminas\Stratigility\MiddlewarePipe->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#30 /home/oyundede/beta15.quzz.net/vendor/laminas/laminas-stratigility/src/Next.php(61): Middlewares\RequestHandler->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#31 /home/oyundede/beta15.quzz.net/vendor/middlewares/base-path-router/src/BasePathRouter.php(97): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#32 /home/oyundede/beta15.quzz.net/vendor/laminas/laminas-stratigility/src/Next.php(61): Middlewares\BasePathRouter->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#33 /home/oyundede/beta15.quzz.net/vendor/laminas/laminas-stratigility/src/Middleware/OriginalMessages.php(42): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#34 /home/oyundede/beta15.quzz.net/vendor/laminas/laminas-stratigility/src/Next.php(61): Laminas\Stratigility\Middleware\OriginalMessages->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#35 /home/oyundede/beta15.quzz.net/vendor/middlewares/base-path/src/BasePath.php(53): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#36 /home/oyundede/beta15.quzz.net/vendor/laminas/laminas-stratigility/src/Next.php(61): Middlewares\BasePath->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#37 /home/oyundede/beta15.quzz.net/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(84): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#38 /home/oyundede/beta15.quzz.net/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(73): Laminas\Stratigility\MiddlewarePipe->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\EmptyPipelineHandler))
#39 /home/oyundede/beta15.quzz.net/vendor/laminas/laminas-httphandlerrunner/src/RequestHandlerRunner.php(96): Laminas\Stratigility\MiddlewarePipe->handle(Object(Laminas\Diactoros\ServerRequest))
#40 /home/oyundede/beta15.quzz.net/vendor/flarum/core/src/Http/Server.php(42): Laminas\HttpHandlerRunner\RequestHandlerRunner->run()
#41 /home/oyundede/beta15.quzz.net/index.php(26): Flarum\Http\Server->listen()
#42 {main}
It would be nice to show featured blog posts in the form of cards on the forum home page.
Could easily be resolved with custom CSS or LESS, although it makes sense to include support for popular extensions
If I select a primary tag for the blog tag, it gets removed from the tag list on the sidebar, and the tag page, so the only way I could figure out how to get to the blog page was to find a discussion matching the blog tags. I am not sure if that is intentional, because a secondary tag could be beneath a non blog primary tag, but a primary tag consists of only blog posts, however it is a little confusing to navigate as a result.
A shortcut to the blog overview, or perhaps optionally leave the tags in the tag list (perhaps some unique way to display them with other tags) to keep them discoverable would be nice.
Discussion Post: https://discuss.flarum.org/d/25392-blog-adds-a-blog-section-to-your-community/28
Currently there is no hierarchy in the category section.
When there is a discussions in the forum and it is on a normal discussion tag, when you then move it to a blog tag, then click on the discussion from the list, you get the redirect page and then the following error :
Exception
V17Development\FlarumSeo\Extend::setTitle(..): Container was not yet initialized.
Hello,
It could be interesting if we could select if we want to display blog posts author avatar, author name or both π‘
There are already extensions to do the same in discussions, in the case of blogs it is more typical to have a summary/small description of each post containing the first few lines of text of the article.
Feature request - the ability to schedule post blog articles. I suspect the Flarum scheduler can be leveraged for this in much the same way as fof/drafts does
?
Once a tag has been 'converted' to a blog type, I don't think there is any way to follow/lurk the tags, or blogs discussions. perhaps if you were following a discussion or tag before setting up the extension they would continue to work, else no way to setup (from what I could tell)
Discussion Post: https://discuss.flarum.org/d/25392-blog-adds-a-blog-section-to-your-community/28
Perhaps as an enhancement, the blank column below the categories on the blog overview page could be used for a list of pinned blogs.
This is an enhancement suggestion.
On top of the front page, now the three most recent posts are featured. That's a wrong practice. Usually, that's the spot where you want to place more important stuff. There should be an option to mark posts featured.
Make it possible to customize the default blog image in the admin dashboard.
A friend passed me this image, which I confirmed, that left: -28% is for some reason? it is guilty of not allowing to react to the posts, being so far away it hides the reactions menu. Really it is very easy to solve, but it has called my attention that this inside the styles of the div, I don't know if this for some reason and can cause other problems.
This extension is incredible and undoubtedly deserves to be the homepage of many websites that use flarum, in the "basics" section it doesn't give the option to put the blog extension as the homepage as it does with FoF Pages for example.
I'm not sure if extension developers can modify this configuration section or if it depends on the official versions of Flarum, but it would be nice to have it or to add the option directly in the blog extension configuration.
Hello!
I did localization. But it doesn't work. What could be problem?
I would like to have the possibility of having a switch like the one that allows us to make a highlighted post, that allows us to hide a post, so that the only way to see that post is via url.
The post composer link redirection seems to go to the /d/{id}
which causing a hard redirect to /blog/{id}
and losing the changes in the composer.
Error in BlogPostController.js
line 39
Uncaught TypeError: can't access property "canEdit", articlePost is undefined
When an article isn't approved, it doesn't hide the blog posts for visitors.
It would be nice to have a dedicated composer for blog articles. Where you can directly define things like summary and teaser image. (also maybe use the naming "teaser image" in the UI?...)
It would be nice to have the author's link in their name or avatar within the post so you can visit their profile to see their publications etc.
Currently, you cannot search for blog-articles.
When you set the blog to be your homepage every forum post will show as a blog post, no filtering is applied :) :(
Hello,
It could be a very great feature if we could have many options to design the recent blog posts π
I think a "news carousel" (eg. https://bootsnipp.com/snippets/9xGW for example) or an input to choose the number of blog posts to display could be a powerful option to customize our blogs π
Thanks for your nice work. When I enable the plugin with the default setting, I got the error:
BlogItem.js:168 Uncaught TypeError: this.article.user(...).bio is not a function
at e.a.view (BlogItem.js:168)
at e.render (Component.js:100)
at Object.o [as view] (Component.js:186)
at mithril.js:1568
at b (mithril.js:189)
at ut (mithril.js:1563)
at Function.y.redraw (mithril.js:1547)
at Function.y.endComputation (mithril.js:417)
at Function.n.lazyRedraw (patchMithril.js:41)
at e.a.show (BlogItem.js:79)
BlogItem.js:168 Uncaught TypeError: this.article.user(...).bio is not a function
at e.a.view (BlogItem.js:168)
at e.render (Component.js:100)
at Object.o [as view] (Component.js:186)
at mithril.js:1568
at b (mithril.js:189)
at ut (mithril.js:1563)
at Function.y.redraw (mithril.js:1547)
at Image.t.onload (User.js:92)
Hide the blog articles in the discussion list
The blog article moves to the first position after someone posted a comment. The list should be ordered on date instead.
Issue discovered on https://hub.phenomlab.net/blog
It will be great to have FoF Upload implemented to set images.
The extension does not hide tags when it's set to in the settings.
Having the ability to include the hero section on the blog page would be great. It looks odd when discussions are loaded that have a header, and the blog page doesn't.
I think it's a good idea to have an "isBlog" attribute in tag attributes
If there are no blog posts, the screen will load indefinitely.
With Redirect blog articles option turned on, user is always redirected on the article beginning from the all discussions list.
Default Flarum behavior is to jump on the last read comment (data-index="xyz").
Initial blog article posts should support these features so that people can react to the content of the blog.
Autoimage, Autovideo and MediaEmbed do not work, although for images there is no problem as they can still be attached and it is for convenience, in the case of videos I think it is a problem as as far as I know no other way to attach videos.
This prevent from using the compose to create new articles as there is the following error :
Uncaught TypeError: can't access property "isChild", a is undefined
newArticle BlogOverview.js:237
newArticle BlogOverview.js:234
onclick BlogOverview.js:92
L/t[e]< mithril.js:1286
BlogOverview.js:237:25
A declarative, efficient, and flexible JavaScript library for building user interfaces.
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. πππ
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google β€οΈ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.