Giter Site home page Giter Site logo

bolt / bolt Goto Github PK

View Code? Open in Web Editor NEW
4.2K 147.0 811.0 78.53 MB

Bolt is a simple CMS written in PHP. It is based on Silex and Symfony components, uses Twig and either SQLite, MySQL or PostgreSQL.

License: MIT License

HTML 0.40% PHP 72.04% JavaScript 13.14% CSS 3.55% Shell 0.06% SCSS 2.05% Twig 8.76%
php cms silex symfony bolt cmf symfony-application twig theme mysql sqlite postgresql

bolt's Introduction

⚠️ Note - Not the latest version
This is the repository for Bolt 3. Please know that
Bolt 5 has been released. If you are starting a
new project, please use the following:
- Bolt 5 installation instructions
- Bolt 5 Core repository

Bolt

A Sophisticated, lightweight & simple CMS released under the open source MIT-license.

Bolt is a tool for Content Management, which strives to be as simple and straightforward as possible.

It is quick to set up, easy to configure, uses elegant templates, and above all, it's a joy to use!

Bolt is created using modern open source libraries, and is best suited to build sites in HTML5 with modern markup.

Installation

Detailed instructions can be found in the official documentation.

NOTE: Cloning the repository directly is only supported for development of the core of Bolt, see the link above for various supported options to suit your needs.

Reporting issues

See our Contributing to Bolt guide.

Support

Have a question? Want to chat? Run into a problem? See our community page.

Development

The ongoing Bolt development and maintenance takes place under the care of:

Sponsors:


Build Status Scrutinizer Continuous Inspections SensioLabsInsight CII Best Practices Slack

bolt's People

Contributors

adrolter avatar bobdenotter avatar boorj avatar carlosleopoldo avatar carsonf avatar cdowdy avatar electrolinux avatar gander avatar gdmac avatar gwendolenlynch avatar jadwigo avatar jarjak avatar jkazimir avatar magabriel avatar marcelfw avatar ntomka avatar pinpickle avatar pvankouteren avatar raistlfiren avatar rarila avatar richardhinkamp avatar rixbeck avatar robbert-vdh avatar rossriley avatar sahassar avatar stevendevries avatar tdammers avatar timcooper avatar tobias2k avatar xiaohutai avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bolt's Issues

Full text search for the frontend.

It should be possible to use full text search on the frontend of the website.
In my opinion, it should be a text-input + button (coming from a template, like _sub_searchbox.twig or something similar, so it can be easily overridden).
It should search through all available contenttypes and return those records that are published. The results should be displayed, also using either a default template, or a template that is overridden in the theme or by the user.

Searching itself should be implemented in such a way that it will work, regardless of the chosen Database-type. If i'm correct, that means we can't just use Full-text search, because MySQL's InnoDB doesn't support it.
(which, imho, is really stupid, more info )

Validator text

When trying to register a (first) user 'Admin' with password 'admin', the password is too short (because of the minimum length of 6 characters). The error messages I get aren't nice:

snippet
8<---------------------------------

Password
This value is too short. It should have {{ limit }} characters or more.
This value is too short. It should have 6 characters or more.

Password (confirmation)
This value is too short. It should have {{ limit }} characters or more.

8<----------------------------------
end of snippet

Codemirror editor issue

The editor shows some annoying behavior when editing yml files in CMS. (Bob knows about it)
Please update to 3.0:)

Errors in Bolt 0.8.4 (latest) editor

I got myself some error messages in the editor. The message below appears when I start typing in a field of a new item, wich makes it unable to use for now.

Maybe I did something wrong myself so I did a clean install for testing purposes. Checked the folder rights. Same error appears. Something wrong in this release?

==== (I changed the pathname, privacy etc.) ====

Error!

• Message: The controller must return a response (null given). Did you forget to add a return statement somewhere in your controller?

• Class: LogicException

• Code: 0

            Symfony\Component\HttpKernel\HttpKernel->handleRaw()
            /path/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpKernel.php, line 73                            

            Symfony\Component\HttpKernel\HttpKernel->handle()
            /path/vendor/silex/silex/src/Silex/Application.php, line 469                            

            Silex\Application->handle()
            /path/vendor/silex/silex/src/Silex/Application.php, line 446                            

            Silex\Application->run()
            /path/index.php, line 6    

Remove Full Path Disclosure

Hi,

if you request a route that isn't defined, you get

Message: No route found for "GET /whatever" 
Class: Symfony\Component\HttpKernel\Exception\NotFoundHttpException 
Code: 0 

followed by a full PHP backtrace where each function call disclose the full path. This is considered a security issue.

This behavior needs to be changed so that the backtrace is only displayed to logged in users.

Better RSS item links

Links in the RSS items are not built in a nice way. Now the canonical ones are used, but these aren't guaranteed to be correct (e.g. when not changed in the config.yml).
There should be put a little more info in the template to ensure correct links.

Use tagging for Packagist

Use tagging in the repository so the project can be added to packagist. This way the install can be done through composer as well by requiring a particular version. Updating will also be taken care off then.

For docs on how to do this, see the 'Managing package versions' section at https://packagist.org/about

Unit Tests

I really like this idea but I didn't see any tests.
I work with many websites made with Wordpress and the biggest problem for me is when they release an update and I have to check all my sites to verify that it is working. Nowadays, given the quantity of lines of code, write these tests for Wordpress is very close to impossible.
Another standpoint is for contributions on code. I need to verify what is working correctly before I add some codes and verify that it still works after this.
What do you think about it?

Show random content in a loop

It would be handy if there was some kind of "random" sort option in a loop: get random items of a contenttype and exclude the active one.

Twig_Error_Loader - appearing the first time we display the website

Hi,

I have a strange error with my website using bolt.

The first time I display the website in a new computer there is no problem with the home page, but when i try to go to an another page there is a strange error :

Error !
Class : Twig_Error_Loader
Message : Template "contact.twig" is not defined()
Code : 0

The url of this new page is also weird. Instead of "www.website.com/page/contact" I got "www.website.com/page/contact?bolt_session=a0eg3......"

I don't understand this error. My template is well configured and exist.
After that, if I go back to the home page and i wait just a while, I can go to the contact page and other page with no problem. The error doesn't appears anymore in the same computer, even if I clear the cache...

I hope you can help me !
If you need, i can give you the url of the website.

Thank you !

unpredictable menu links in menu.yml

A link in menu.yml to listings like "pages/" automatically switches to a random page like "page/about"

The same if you try to link to "pages"

(bolt 0.8)

Translation of special characters (e g "&auml;")

There is a problem in content.php. The function "htmlspecialchars" in row 501 in bolt/app/src/Bolt/Content.php makes some special characters often used in some western european countries (e g Germany) disappear. This makes the RSS-feed impossible to use in Germany and Scandinavia and probably some other countries.

Thumbnail doesn't display

If you install Bolt outside the document root, timthumb doesn't work.

Patch:

diff --git a/app/timthumb.php b/app/timthumb.php
index 37daddd..9c62148 100644
--- a/app/timthumb.php
+++ b/app/timthumb.php
@@ -34,9 +34,9 @@ if (empty($matches[1]) || empty($matches[2]) || empty($matches[4])) {
     //die("Malformed thumbnail URL. Should look like '/thumbs/320x240c/filename.jpg'.");
 }

-
-
-$_GET['src'] = "../files/".urldecode($matches[4]);
+// Bolt specific
+define('LOCAL_FILE_BASE_DIRECTORY', dirname(dirname(__FILE__)));
+$_GET['src'] = "files/".urldecode($matches[4]);
 $_GET['src'] = str_replace("/files/files/", "/files/", $_GET['src']);

 $_GET['w'] = $matches[1];

This is bullet proof - even handling Bolt installations when UserDir is used.

Allow {% setcontent %} to parse variables

The setcontent tag doesn't parse variables. This will give an error:

{% set current = '!' ~ record.id %}
{% setcontent entries = "entries" where { id: current } limit 10 %}

Message: An exception has been thrown during the compilation of a template ("Attribute "value" does
not exist for Node "Twig_Node_Expression_Name".") in "index.twig".

This needs to be fixed in convertToViewArguments() in SetcontentTokenParser.php.

Feeds should disable the debugbar.

I couldn't test this, but I think de RSS/XML feeds also add a debugbar to the output.

If not, the code should at least be updated to use the new 'debugbar' property in the application object (and set it to false).

Error when trying to manage extensions

In the latest code, I get an error when I try to go to my extensions page:

Class: Twig_Error_Runtime
Message: An exception has been thrown during the rendering of a template ("The "readme" route has some missing mandatory parameters ("key").") in "extensions.twig" at line 17.
Code: 0

Does this provide enough information or is more info required?

Keep Bolt lightweight & simple

Hi,

I'm following the development of Bolt and it's progressing nicely. It will definitely be a nice replacement for PivotX (PivotX 2). However, you shouldn't forget the slogan - "Sophisticated, lightweight & simple CMS". He-he.

Fatal error on installation if app/database isn't writable

If you forget

chmod -R 777 files/ app/database/ app/cache/ app/config/ theme/

or

chown -R apacheuser files/ app/database/ app/cache/ app/config/ theme/

when installing, Bolt wil tell you nicely that app/cache and app/config needs to be writable. However, when those are fixed, you get an ugly fatal error instead of a nice message about app/database.

Edit button doesn't work

Clicking the Edit button (in the Actions column) on the entries or pages overview doesn't work - JS error. Clicking the title of the page/entry of course works.

Twig settings are unsafe by default.

Autoescape seems to be 'false' by default.

Twig itself defaults to 'true', which is a sane default from a good security standpoint. Shouldn't Bolt adhere to this as well?

I didn't make a pull request because a lot of things might break and rather only do the work when we all agree it's better.

Languages

Are you interested in translate the documentation to other languages? Now, it is translated to English and Dutch, and I can translate it to Spanish.

RSS Feeds

Is this something we want/need, in 2012?

Template "entry.twig" is not defined ().

Hi ! and thanks for making Bolt a wonderfull CMS !

I got a weird problem while loading an entry. I've got two entries in database (contenttype: entry). One is loading fine. The other (which was written before) display this error :

Class: Twig_Error_Loader
Message: Template "entry.twig" is not defined ().
Code: 0

Cache cleared (through interface and manually)

Got any idea ?
Thanks

File manager

It would be awesome if there'd be some way to manage the files in the files/ directory. This can then be used for stuff like downloads folders without having to upload it to the folder manually.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.