bolt / bolt

Bolt is a simple CMS written in PHP. It is based on Silex and Symfony components, uses Twig and either SQLite, MySQL or PostgreSQL.
MIT License
4.15k stars 811 forks source link

Using Bolt for a community site? #953

Closed GermanicWarWulf closed 9 years ago

GermanicWarWulf commented 10 years ago

Hello, firstly can I congratulate you on Bolt. It's a joy to work with.

I know Bolt is all about being simple and lightweight, and that's why I love it, but I'd also like to expand to create a basic community site that's fully responsive and lightweight.

So my question is, will this be possible, and will there be any extensions created in the future to aid with this process? I'm not a fan of Disqus as an example and would love to use bolt to handle my comments. I'd like members to be able to sign up on their own and then when validated, have access to post comments, upload images to a gallery and configure a profile etc. Eventually I'd also like an integrated forum. I noticed that the Code Consortium has a collection of Symphony2 components to create a forum etc, so I imagine it's something that can be included via a Bolt extension, although I'm not a programmer, hence all these questions.

https://github.com/codeconsortium

So is this, or will this be something I can achieve with Bolt, or am I asking too much? I really want to stick with Bolt, so I'm hoping this can be achieved. I've tried every CMS you can think of, but I always come back to Bolt as I just feel comfy with it.

Also, what's the best place to talk about Bolt in general? I know you have a forum, but it's not very active. Your IRC channel is very quiet, so that's why I came here to post my questions.

Anyway thanks for reading and I hope you can answer some of my questions.

GwendolenLynch commented 10 years ago

I am using Bolt for many of the same reasons, and I will (as an outsider) pitch in and offer people help where I can. I also agree, most conversation that is not directly emailed is conducted here on Github issue tracker and that is far from ideal as it is incredibly distracting for core developers to keep track of real issues.

I also have issues with Disqus, but while I am capable of writing a workaround, it is a lot of work for what it does — and does well — so I am sticking with it... But that is my call and my side-effects are my own to manage.

As for in-built forums... I am currently migrating away from the Voldemort of web software and one of the mistakes I made in the former implementation was to try and integrate forum software (again, my own personal problem and insight). I have contributed hundreds of lines of 3rd party code to said project solution and while my code is good, the problems it is trying to solve are not worth the effort or maintenance as a) forums are hard to do right, and b) most people don't do it anywhere near right.

When approaching possible solutions, the question I like to clarify is "What is really the problem I/we are trying to solve?", that often provides useful insight. :-)

GermanicWarWulf commented 10 years ago

Hi Gawain,

Thanks for the reply.

I currently have a community that uses a closed source commercial software solution, and although it's great in general, development is not taking the direction I'd like it to. So I've decided to look into open source solutions. So this is why I don't want to use Disqus for the comments. I'd much prefer something that I could fully control and tweak if needed and doesn't rely on being hosted somewhere else.

In regards to the forum, well my members are more than happy to start over from scratch with a link to the old forum for reference purposes, so I need to make sure I pick something I'm comfortable with, so again it must be open source. Moot is a really nice looking forum and commenting solution, but again it's hosted by them and is closed source. https://moot.it/

My aims are fairly straight forward. I'm looking to create a fully open source, fully responsive site that's snappy to work with and enjoyable to use. One where my members can sign up, communicate, comment on articles, upload images to a gallery etc.

Hopefully Bolt will allow this.

I was reluctant to start this thread as I didn't want it to get in the way of development issues etc, but sadly the forum appears dead. Maybe that's something Bolt users can help to promote, or indeed to suggest other options.

bobdenotter commented 10 years ago

I'm not a fan of Disqus as an example and would love to use bolt to handle my comments.

I'm curious.. Why not? Is it just because it's not self-hosted, that it feels "out of your control"? I can imagine that being an issue, but apart from that, I think Disqus works pretty smooth. :-)

GermanicWarWulf commented 10 years ago

Hi Bob,

Basically I want to host everything myself. I like to be able to tweak things. Also, I know Disqus isn't likely to have any downtime, but it's always a possibility. Although I said I'm not a programmer, I can do basic things, and if the comments were stored in the Bolt database, I'd be able to display them however I wanted.

bobdenotter commented 10 years ago

That's undestandable.

I do think though that "comments" should really be an extension, and not part of the core. (basically: in my view it would have the same the current sitemap or simpleforms extensions). Bolt provides all the means to do everything a commenting system needs to do, including adding/updating the correct tables in the database. I just don't think I will do it, mostly because of available time. This might change sometime, though. If we ever have a client who needs this functionality, these things tend to get bumped to the front of the queue. No promises, though! :-)

GermanicWarWulf commented 10 years ago

I agree with it needing to be an extension.

I would have a bash at it myself, although I'm not sure where to start. I've had a look through the documentation, but most of it is like a foreign language to me.

Anyway, thanks for your time.

GwendolenLynch commented 10 years ago

TBH, the best place I found to get my head around it was reading through existing extensions first, then building a simple template and also looking though pull requests as they tend to mention what/why is the change...

Seriously, there is some elegant stuff in there if you look and take some time to understand, and for PHP code that is saying something ;-)

GermanicWarWulf commented 10 years ago

Yeah I have been looking through the extensions, but it's still not totally clear. I think it would be more beneficial if there were more basic examples, like an example that just shows you how to write something to the DB, and then read from it and display that data. If there were more simple examples like that, I'd understand it more, especially if there was ample commenting in the code to explain things.

E.G, I noticed this snippet today, but there is no documentation as to where to look up things like if app.users.isAllowed - For an idiot like me, where is this documented?

{% if app.users.isAllowed('contenttype:%contenttypeslug%:edit:%id%'|replace({'contenttypeslug': record.contenttype.slug, '%id%': record.id})) %}
    <a href="{{ url('editcontent', {contenttypeslug: record.contenttype.slug, id: record.id}) }}">Edit</a>
{% endif %}

Thanks.

GwendolenLynch commented 10 years ago

Twig documentation... Bolt is built on Symfony and Twig. If I am in a .twig file and don't understand the way forward — for example for loops — I have been Googling "twig for loop" and the docs come up :-)

WaffleOrders is a good sample example of how to use extension specific tables.

For idiots like me (too), more of it still needs to be written I guess ;-)

bobdenotter commented 10 years ago

Check out the 'WaffleOrders' extension for a good example of an extension that does stuff with the database. Also, read these two pages:

GermanicWarWulf commented 10 years ago

Thanks for the info. I think I'm slowly learning. I've started with the Twig basics and have added a snippet to the snippets site. Let me know if there's anything wrong with it.

http://snippets.bolt.cm/snippet/3TDXG

bobdenotter commented 9 years ago

Closing this. If this remains an issue, feel free to re-open it.