├── .gitignore ├── README.md ├── bolt_v4_redactor_field.png ├── docs ├── configuration │ ├── database.md │ ├── index.md │ ├── introduction.md │ ├── permissions.md │ ├── reading.md │ ├── settings.md │ └── thumbnails.md ├── console-command │ ├── cache │ │ ├── cache-clear.md │ │ └── index.md │ ├── debug │ │ ├── debug-router.md │ │ ├── debug-service-providers.md │ │ ├── debug-twig.md │ │ ├── index.md │ │ └── router-match.md │ ├── extensions │ │ ├── extensions-configure.md │ │ ├── extensions.md │ │ └── index.md │ ├── index.md │ ├── introduction.md │ ├── server │ │ ├── index.md │ │ └── server-run.md │ ├── setup │ │ ├── index.md │ │ └── setup-sync.md │ └── user │ │ ├── index.md │ │ └── user-add.md ├── contenttypes │ ├── content-in-templates.md │ ├── index.md │ ├── intro.md │ ├── relationships.md │ └── taxonomies.md ├── core-development │ ├── howto │ │ ├── git-useful-commands-advanced.md │ │ ├── git-useful-commands.md │ │ ├── index.md │ │ └── unit-acceptance-tests.md │ ├── ide-tools.md │ ├── index.md │ └── install-git-clone.md ├── debugging │ ├── backtrace-function.md │ ├── console-commands.md │ ├── debug-bar.md │ ├── dump-function.md │ └── index.md ├── extensions │ ├── baseextension.md │ ├── command.md │ ├── composer.md │ ├── configfiles.md │ ├── creating_content.md │ ├── entities.md │ ├── event.md │ ├── extension.md │ ├── fetching_content.md │ ├── global_config.md │ ├── index.md │ ├── introduction.md │ ├── log.md │ ├── menu.md │ ├── pages.md │ ├── project.md │ ├── request.md │ ├── services.md │ ├── twig.md │ └── widget.md ├── fields │ ├── article.md │ ├── checkbox.md │ ├── collection.md │ ├── common.md │ ├── data.md │ ├── date.md │ ├── email.md │ ├── embed.md │ ├── file.md │ ├── filelist.md │ ├── hidden.md │ ├── html.md │ ├── image.md │ ├── imagelist.md │ ├── index.md │ ├── markdown.md │ ├── number.md │ ├── redactor.md │ ├── select.md │ ├── set.md │ ├── slug.md │ ├── templateselect.md │ ├── text.md │ └── textarea.md ├── getting-started │ ├── about.md │ ├── index.md │ ├── introduction.md │ ├── requirements.md │ └── screenshots.md ├── howto │ ├── building-multilingual-websites.md │ ├── curl-ca-certificates.md │ ├── encore-setup.md │ ├── index.md │ ├── making-sure-htaccess-works.md │ ├── resetting-a-password.md │ ├── resource-contenttype.md │ ├── setting-up-sites-to-be-extendable.md │ ├── simple-menu.md │ ├── singleton-contenttype.md │ ├── transform-repeaters-to-sets-and-collections.md │ ├── twig-changes-in-bolt5.md │ └── using-php-built-in-web-server.md ├── index.md ├── installation │ ├── deployment.md │ ├── index.md │ ├── install-composer.md │ ├── installation.md │ ├── permissions.md │ └── webserver │ │ ├── apache.md │ │ ├── index.md │ │ ├── nginx.md │ │ └── webserver.md ├── localization │ ├── index.md │ └── locales.md ├── manual │ ├── content-overview.md │ ├── contenttypes.md │ ├── dashboard.md │ ├── edit-content.md │ ├── fieldtypes.md │ ├── first-user.md │ ├── global-actions.md │ ├── index.md │ ├── login.md │ ├── new-content.md │ ├── profile.md │ ├── uploaded-files.md │ └── users.md ├── menus │ ├── custom.md │ ├── detailed.md │ ├── dynamic.md │ └── index.md ├── other │ ├── code-quality.md │ ├── contributing.md │ ├── credits.md │ ├── index.md │ ├── license.md │ ├── maintenance-mode.md │ ├── manifesto.md │ ├── release-process.md │ └── roadmap.md ├── performance │ ├── index.md │ ├── introduction.md │ ├── remote-filesystem │ │ ├── amazon-s3.md │ │ ├── index.md │ │ └── introduction.md │ └── request-cache │ │ ├── index.md │ │ ├── introduction.md │ │ └── symfony-proxy.md ├── routing │ └── index.md ├── templating │ ├── building-templates.md │ ├── content-fetching.md │ ├── content-paging.md │ ├── content-search.md │ ├── index.md │ ├── linking-in-templates.md │ ├── record-and-records.md │ ├── template-inheritance.md │ ├── template-selection.md │ └── widgets.md ├── twig-components │ ├── extras.md │ ├── fields.md │ ├── filters.md │ ├── functions.md │ ├── index.md │ ├── languageselect.md │ ├── menu.md │ ├── method │ │ ├── __.md │ │ ├── abbr_class.md │ │ ├── abbr_method.md │ │ ├── abs.md │ │ ├── absolute_link.md │ │ ├── absolute_url.md │ │ ├── admin_menu_array.md │ │ ├── allow_twig.md │ │ ├── app.md │ │ ├── apply.md │ │ ├── array.md │ │ ├── as_array.md │ │ ├── asset.md │ │ ├── asset_version.md │ │ ├── attribute.md │ │ ├── autoescape.md │ │ ├── backtrace.md │ │ ├── batch.md │ │ ├── block.md │ │ ├── bool.md │ │ ├── boolean.md │ │ ├── boolval.md │ │ ├── break.md │ │ ├── cache.md │ │ ├── callable.md │ │ ├── canonical.md │ │ ├── capitalize.md │ │ ├── column.md │ │ ├── config.md │ │ ├── constant.md │ │ ├── continue.md │ │ ├── controller.md │ │ ├── convert_encoding.md │ │ ├── country_name.md │ │ ├── country_timezones.md │ │ ├── countwidgets.md │ │ ├── csrf_token.md │ │ ├── currency_name.md │ │ ├── currency_symbol.md │ │ ├── current.md │ │ ├── cycle.md │ │ ├── data_uri.md │ │ ├── date.md │ │ ├── date_modify.md │ │ ├── default.md │ │ ├── defaultLocale.md │ │ ├── defined.md │ │ ├── deprecated.md │ │ ├── divisible.md │ │ ├── dns_prefetch.md │ │ ├── do.md │ │ ├── doctrine_format_sql.md │ │ ├── doctrine_prettify_sql.md │ │ ├── doctrine_pretty_query.md │ │ ├── doctrine_replace_query_parameters.md │ │ ├── dump.md │ │ ├── e.md │ │ ├── edit_link.md │ │ ├── embed.md │ │ ├── empty.md │ │ ├── encore_entry_css_files.md │ │ ├── encore_entry_js_files.md │ │ ├── encore_entry_link_tags.md │ │ ├── encore_entry_script_tags.md │ │ ├── escape.md │ │ ├── even.md │ │ ├── excerpt.md │ │ ├── expression.md │ │ ├── extends.md │ │ ├── extension.md │ │ ├── extension_exists.md │ │ ├── extensions.md │ │ ├── false.md │ │ ├── feature.md │ │ ├── field_choices.md │ │ ├── field_errors.md │ │ ├── field_factory.md │ │ ├── field_help.md │ │ ├── field_label.md │ │ ├── field_name.md │ │ ├── field_value.md │ │ ├── file_excerpt.md │ │ ├── file_link.md │ │ ├── file_relative.md │ │ ├── filter.md │ │ ├── find_translations.md │ │ ├── first.md │ │ ├── first_related_content.md │ │ ├── flag.md │ │ ├── float.md │ │ ├── floatval.md │ │ ├── flush.md │ │ ├── for.md │ │ ├── foreach.md │ │ ├── form.md │ │ ├── form_encode_currency.md │ │ ├── form_end.md │ │ ├── form_errors.md │ │ ├── form_help.md │ │ ├── form_label.md │ │ ├── form_parent.md │ │ ├── form_rest.md │ │ ├── form_row.md │ │ ├── form_start.md │ │ ├── form_widget.md │ │ ├── format.md │ │ ├── format__number.md │ │ ├── format_args.md │ │ ├── format_args_as_text.md │ │ ├── format_bytes.md │ │ ├── format_currency.md │ │ ├── format_date.md │ │ ├── format_datetime.md │ │ ├── format_file.md │ │ ├── format_file_from_text.md │ │ ├── format_log_message.md │ │ ├── format_number.md │ │ ├── format_time.md │ │ ├── fragment_uri.md │ │ ├── from.md │ │ ├── getuser.md │ │ ├── has_path.md │ │ ├── haswidgets.md │ │ ├── html_attr.md │ │ ├── html_classes.md │ │ ├── htmllang.md │ │ ├── humanize.md │ │ ├── icon.md │ │ ├── if.md │ │ ├── image.md │ │ ├── impersonation_exit_path.md │ │ ├── impersonation_exit_url.md │ │ ├── import.md │ │ ├── include.md │ │ ├── index.md │ │ ├── int.md │ │ ├── integer.md │ │ ├── intval.md │ │ ├── is_granted.md │ │ ├── iterable.md │ │ ├── join.md │ │ ├── json.md │ │ ├── json_decode.md │ │ ├── json_encode.md │ │ ├── json_records.md │ │ ├── keys.md │ │ ├── knp_menu_ancestor.md │ │ ├── knp_menu_as_string.md │ │ ├── knp_menu_current.md │ │ ├── knp_menu_get.md │ │ ├── knp_menu_get_breadcrumbs_array.md │ │ ├── knp_menu_get_current_item.md │ │ ├── knp_menu_render.md │ │ ├── label.md │ │ ├── language_name.md │ │ ├── last.md │ │ ├── length.md │ │ ├── less.md │ │ ├── line.md │ │ ├── link.md │ │ ├── linkify.md │ │ ├── list_templates.md │ │ ├── listwidgets.md │ │ ├── localdate.md │ │ ├── locale.md │ │ ├── locale_name.md │ │ ├── locales.md │ │ ├── logout_path.md │ │ ├── logout_url.md │ │ ├── lower.md │ │ ├── macro.md │ │ ├── map.md │ │ ├── markdown.md │ │ ├── max.md │ │ ├── meaning.md │ │ ├── media.md │ │ ├── menu.md │ │ ├── menu_array.md │ │ ├── merge.md │ │ ├── min.md │ │ ├── next.md │ │ ├── next_record.md │ │ ├── nl2br.md │ │ ├── none.md │ │ ├── normalize_records.md │ │ ├── null.md │ │ ├── number_format.md │ │ ├── object.md │ │ ├── odd.md │ │ ├── order.md │ │ ├── pager.md │ │ ├── pagerfanta.md │ │ ├── pagerfanta_page_url.md │ │ ├── paginate.md │ │ ├── paragraph.md │ │ ├── parent.md │ │ ├── path.md │ │ ├── placeholders.md │ │ ├── plaintext.md │ │ ├── popup.md │ │ ├── preconnect.md │ │ ├── prefetch.md │ │ ├── preg_filter.md │ │ ├── preg_get.md │ │ ├── preg_get_all.md │ │ ├── preg_grep.md │ │ ├── preg_match.md │ │ ├── preg_quote.md │ │ ├── preg_replace.md │ │ ├── preg_split.md │ │ ├── preload.md │ │ ├── prerender.md │ │ ├── previous.md │ │ ├── previous_record.md │ │ ├── product.md │ │ ├── profiler_dump.md │ │ ├── profiler_dump_log.md │ │ ├── random.md │ │ ├── range.md │ │ ├── raw.md │ │ ├── record.md │ │ ├── redirect.md │ │ ├── reduce.md │ │ ├── related.md │ │ ├── related_by_type.md │ │ ├── related_content.md │ │ ├── related_content_by_type.md │ │ ├── related_first.md │ │ ├── relative_path.md │ │ ├── render.md │ │ ├── replace.md │ │ ├── reverse.md │ │ ├── rootform.md │ │ ├── round.md │ │ ├── safestring.md │ │ ├── same_as.md │ │ ├── sandbox.md │ │ ├── sanitise.md │ │ ├── scalar.md │ │ ├── select_options.md │ │ ├── selected.md │ │ ├── selectedchoice.md │ │ ├── serialize.md │ │ ├── set.md │ │ ├── setcontent.md │ │ ├── showimage.md │ │ ├── shuffle.md │ │ ├── shy.md │ │ ├── slice.md │ │ ├── slug.md │ │ ├── sort.md │ │ ├── source.md │ │ ├── spaceless.md │ │ ├── split.md │ │ ├── status_options.md │ │ ├── stimulus_controller.md │ │ ├── string.md │ │ ├── striptags.md │ │ ├── strtotime.md │ │ ├── strval.md │ │ ├── sum.md │ │ ├── svg.md │ │ ├── t.md │ │ ├── taxonomies.md │ │ ├── template_from_string.md │ │ ├── thumbnail.md │ │ ├── timezone_name.md │ │ ├── title.md │ │ ├── title_case.md │ │ ├── trans.md │ │ ├── translate.md │ │ ├── trim.md │ │ ├── true.md │ │ ├── truncate.md │ │ ├── ucwords.md │ │ ├── upper.md │ │ ├── url.md │ │ ├── url_decode.md │ │ ├── url_encode.md │ │ ├── use.md │ │ ├── values.md │ │ ├── verbatim.md │ │ ├── widget.md │ │ ├── widgets.md │ │ ├── with.md │ │ ├── yaml_dump.md │ │ └── yaml_encode.md │ ├── pagination.md │ ├── tags.md │ ├── tests.md │ └── variables.md └── upgrading │ ├── images │ ├── export-command-options.JPG │ ├── export-warning-command.JPG │ └── latest-bolt-version-command.JPG │ ├── index.md │ ├── updating.md │ └── upgrading-from-30.md ├── generate_twig_stubs.php └── twig_methods_data.txt /.gitignore: -------------------------------------------------------------------------------- 1 | composer.lock 2 | vendor/ 3 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Bolt Documentation Site & Content 2 | ================================= 3 | 4 | For instructions / documentation, see the README in the `site` branch: 5 | 6 | https://github.com/bolt/docs-site/blob/site/README.md 7 | -------------------------------------------------------------------------------- /bolt_v4_redactor_field.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bolt/docs/baf90700aeb1e8919edc50a3748be38904e901e9/bolt_v4_redactor_field.png -------------------------------------------------------------------------------- /docs/configuration/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | section: Configuration 3 | title: Configuration 4 | redirect: configuration/introduction 5 | pages: 6 | - introduction 7 | - database 8 | - permissions 9 | - settings 10 | - menus 11 | # - thumbnails 12 | - routing 13 | # - advanced 14 | - reading 15 | --- 16 | -------------------------------------------------------------------------------- /docs/console-command/cache/cache-clear.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: cache:clear 3 | level: intermediate 4 | --- 5 | cache:clear 6 | =========== 7 | 8 | Console's `cache:clear` command immediately flushes Bolt cache, removing cached 9 | files and directories. 10 | 11 | ## Usage 12 | 13 | ```bash 14 | php ./bin/console cache:clear 15 | ``` 16 | -------------------------------------------------------------------------------- /docs/console-command/cache/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Cache control 3 | short_title: Cache Clear 4 | pages: 5 | - cache-clear 6 | redirect: console-command/cache/cache-clear 7 | --- 8 | -------------------------------------------------------------------------------- /docs/console-command/debug/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Debugging Tools 3 | short_title: Debugging 4 | pages: 5 | - debug-events 6 | - debug-router 7 | - debug-service-providers 8 | - debug-twig 9 | - router-match 10 | --- 11 | Nut Debugging Commands 12 | ====================== 13 | 14 | Bolt's command line tool, Nut, provides some helpful commands that make it a 15 | great tool for tool for certain debugging tasks. 16 | 17 | Available Twig functions, filters, tags & tests: 18 | * [Twig Operations](./debug/debug-twig) 19 | 20 | Routing related issues: 21 | * [Route Matcher](./debug/router-match) 22 | * [Routing Configuration](./debug/debug-router) 23 | 24 | Event listener information: 25 | * [Event Listeners](./debug/debug-events) 26 | 27 | Service Providers 28 | * [Service Providers](./debug/debug-service-providers) 29 | -------------------------------------------------------------------------------- /docs/console-command/extensions/extensions-configure.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: extensions:configure 3 | level: intermediate 4 | --- 5 | extensions:configure 6 | ================ 7 | 8 | Console's `extensions:configure` command sets up extension configuration, 9 | services and routes by copying the extension default configuration into your Bolt site `config/` directory. 10 | 11 | ## Usage 12 | 13 | ```bash 14 | php ./bin/console extensions:configure 15 | ``` 16 | 17 | ## Help 18 | 19 | To view all flags (options) that the command accepts, as well as general 20 | help information, use: 21 | 22 | ```bash 23 | php ./bin/console extensions:configure --help 24 | ``` 25 | -------------------------------------------------------------------------------- /docs/console-command/extensions/extensions.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: extensions 3 | level: intermediate 4 | --- 5 | extensions 6 | ========== 7 | 8 | Console's `extensions:list` command lists all installed extensions. 9 | 10 | ## Usage 11 | 12 | ```bash 13 | php ./bin/console extensions:list 14 | ``` 15 | 16 | 17 | ## Example 18 | 19 | ```bash 20 | $ ./bin/console extensions:list 21 | 22 | Currently installed extensions: 23 | -------------------------------------------- ----------------------------------- 24 | Class Extension name 25 | -------------------------------------------- ----------------------------------- 26 | AcmeCorp\ReferenceExtension\Extension AcmeCorp ReferenceExtension 27 | BobdenOtter\ConfigurationNotices\Extension Bolt Configuration Notices Widget 28 | BobdenOtter\WeatherWidget\Extension Dashboard Weather Widget 29 | Bolt\NewsWidget\Extension Dashboard News Widget 30 | -------------------------------------------- ----------------------------------- 31 | ``` 32 | 33 | -------------------------------------------------------------------------------- /docs/console-command/extensions/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Extensions 3 | short_title: Extensions 4 | pages: 5 | - extensions 6 | - extensions-configure 7 | redirect: console-command/extensions/extensions 8 | --- 9 | -------------------------------------------------------------------------------- /docs/console-command/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Console (command line utility) 3 | short_title: Console command 4 | pages: 5 | - introduction 6 | - cache 7 | - extensions 8 | - server 9 | - setup 10 | - user 11 | redirect: console-command/introduction 12 | --- 13 | bin/console (command line utility) 14 | =============================================== 15 | -------------------------------------------------------------------------------- /docs/console-command/server/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Built-in Web Server 3 | short_title: Web Server 4 | pages: 5 | - server-run 6 | redirect: console-command/server/server-run 7 | --- 8 | -------------------------------------------------------------------------------- /docs/console-command/server/server-run.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: server:run 3 | level: intermediate 4 | --- 5 | server:run 6 | ========== 7 | 8 | Nut's `server:run` command runs PHP's built-in web server for your site testing 9 | and basic development. 10 | 11 |

Note: Do not use this to run production 12 | web sites, it is for development and testing only.

13 | 14 | 15 | ## Usage 16 | 17 | ```bash 18 | php ./bin/console server:run [options] [--] [
] 19 | ``` 20 | 21 | 22 | ## Arguments 23 | 24 | | Argument | Description | 25 | |----------|-------------| 26 | | address | Address:port [default: "0.0.0.0"] 27 | 28 | 29 | ## Options 30 | 31 | | Option | Description | 32 | |--------|-------------| 33 | | -p, --port=PORT | Address port number [default: "8000"] 34 | 35 | 36 | ## Examples 37 | 38 | ### Default 39 | 40 | 41 | ```bash 42 | $ php ./bin/console server:run 43 | 44 | 45 | [OK] Server running on http://0.0.0.0:8000 46 | 47 | 48 | // Quit the server with CONTROL-C. 49 | ``` 50 | 51 | 52 | 53 | ### Specifying host name and port 54 | 55 | 56 | ```bash 57 | $ php ./bin/console server:run example.com --port=8888 58 | 59 | 60 | [OK] Server running on http://example.com:8888 61 | 62 | 63 | // Quit the server with CONTROL-C. 64 | ``` 65 | 66 | -------------------------------------------------------------------------------- /docs/console-command/setup/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Bolt Set-up 3 | short_title: Set-up 4 | pages: 5 | - setup-sync 6 | - setup-deploy 7 | redirect: console-command/setup/setup-sync 8 | --- 9 | -------------------------------------------------------------------------------- /docs/console-command/setup/setup-sync.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: bolt:setup 3 | level: intermediate 4 | --- 5 | bolt:setup 6 | ========== 7 | 8 | Console's `bolt:setup` command initializes the installation and database. 9 | 10 | ## Usage 11 | 12 | ```bash 13 | php ./bin/console bolt:setup 14 | ``` 15 | -------------------------------------------------------------------------------- /docs/console-command/user/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: User Management 3 | short_title: Users 4 | pages: 5 | - user-add 6 | --- 7 | -------------------------------------------------------------------------------- /docs/console-command/user/user-add.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: user:add 3 | level: intermediate 4 | --- 5 | bolt:add-user 6 | ======== 7 | 8 | Console's `bolt:add-user` command adds a new Bolt user account. 9 | 10 | ## Usage 11 | 12 | ```bash 13 | php ./bin/console bolt:add-user 14 | ``` 15 | 16 | or 17 | 18 | ```bash 19 | php ./bin/console bolt:add-user 20 | ``` 21 | 22 | to use the interactive interface. 23 | 24 | ## Arguments 25 | 26 | | Argument | Description | 27 | |----------|-------------| 28 | | username | Username (login name) for the new user 29 | | display-name | Display name for the new user 30 | | email | Email address for the new user 31 | | password | Password for the new user 32 | 33 | 34 | ## Example 35 | 36 | ```bash 37 | ]$ php ./bin/console bolt:add-user kenny GumLe@ves kenny@example.org Kenny 38 | [OK] User was successfully created: kenny (kenny@example.org) 39 | ``` 40 | 41 | -------------------------------------------------------------------------------- /docs/contenttypes/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | section: Content & ContentTypes 3 | title: ContentTypes 4 | redirect: contenttypes/intro 5 | pages: 6 | - intro 7 | - content-in-templates 8 | - relationships 9 | - taxonomies 10 | --- 11 | -------------------------------------------------------------------------------- /docs/core-development/howto/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Related HOWTOs 3 | pages: 4 | - git-useful-commands 5 | - git-useful-commands-advanced 6 | - unit-acceptance-tests 7 | --- 8 | -------------------------------------------------------------------------------- /docs/core-development/howto/unit-acceptance-tests.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Running Unit & Acceptance Tests 3 | level: advanced 4 | --- 5 | Running Unit & Acceptance Tests 6 | =============================== 7 | 8 | 9 | Unit tests 10 | ---------- 11 | 12 | For running unit tests you need [PHPUnit](http://www.phpunit.de/), this can 13 | be run from the `require-dev` install of PHPUnit that comes with Bolt: 14 | 15 | ```bash 16 | $ composer install --dev 17 | ``` 18 | 19 | After installing, you can run the unit test suite by running: 20 | 21 | ```bash 22 | $ php vendor/bin/phpunit 23 | ``` 24 | 25 | 26 | For more on running unit and behavioural tests, please follow the instructions in 27 | the `bolt/core` repository on GitHub [here](https://github.com/bolt/core#testing) 28 | -------------------------------------------------------------------------------- /docs/core-development/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Bolt Core Development 3 | short_title: Core development 4 | pages: 5 | - howto 6 | - ide-tools 7 | - install-git-clone 8 | level: advanced 9 | --- 10 | References & Documentation for Core Development 11 | =============================================== 12 | 13 | This section aims to provide helpful information for people contributing to the 14 | development of Bolt. 15 | 16 | 39 | 40 | If you plan on working on the Bolt core code, we recommend forking and cloning 41 | the `bolt/core` repository from GitHub. 42 | 43 | See the ["Clone the Git Repository"][clone] section for details on cloning. 44 | 45 | [clone]: core-development/install-git-clone 46 | -------------------------------------------------------------------------------- /docs/debugging/backtrace-function.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Backtracing 3 | level: advanced 4 | --- 5 | Backtrace functionality 6 | ======================= 7 | 8 | Using this function you can get the array of a backtrace through the code to 9 | the current point in the execution. Useful for when you're debugging something, 10 | and you're not quite sure how you got here to begin with. 11 | 12 | ## Twig 13 | 14 | In your templates, use the following: 15 | 16 | ```twig 17 | {{ dump(backtrace()) }} 18 | ``` 19 | 20 | The optional parameters denote the options and maximum depth of the output of 21 | the backtrace. See the page on php.net: [debug-backtrace.php()][back]. The Twig 22 | filter defaults to using `DEBUG_BACKTRACE_IGNORE_ARGS`, to use considerably 23 | less memory. 24 | 25 | ## PHP 26 | 27 | In your code you can also use backtrace, like this: 28 | 29 | ```php 30 | use Symfony\Component\VarDumper\VarDumper; 31 | 32 | VarDumper::dump(debug_backtrace()); 33 | ``` 34 | 35 | Or, using the (global) shortcut: 36 | 37 | ```php 38 | dump(debug_backtrace()); 39 | ``` 40 | 41 | [back]: http://php.net/manual/en/function.debug-backtrace.php 42 | -------------------------------------------------------------------------------- /docs/debugging/console-commands.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Console Commands 3 | level: intermediate 4 | --- 5 | Console Commands 6 | ============ 7 | 8 | Bolt's command line utility `console` has several commands that you may find very 9 | helpful to query and debug certain parts to Bolt's internals. To run the utility, 10 | type in `php bin/console` in Bolt's root directory. 11 | 12 | - [Event Listeners][debug-events] 13 | - Outputs configured event details such as name, listening function, and 14 | execution priority 15 | - [Routing Configuration][debug-router] 16 | - Displays the configured routes, or details of a named route 17 | - [Route Matcher][router-match] 18 | - Shows which routes match a given request, which don't, and for what reason 19 | - [Service Providers][debug-providers] 20 | - Displays all configured service providers, their registration order, and 21 | effective `boot()` order 22 | - [Twig Operations][debug-twig] 23 | - Outputs a list of twig functions, filters, globals and tests. 24 | 25 | [debug-events]: ../console-command/debug/debug-events 26 | [debug-router]: ../console-command/debug/debug-router 27 | [debug-providers]: ../console-command/debug/debug-service-providers 28 | [debug-twig]: ../console-command/debug/debug-twig 29 | [router-match]: ../console-command/debug/router-match 30 | -------------------------------------------------------------------------------- /docs/debugging/debug-bar.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Debug Bar 3 | level: intermediate 4 | --- 5 | Debug Bar 6 | ========= 7 | 8 | If your environment is [set to dev][dev-environment], you'll see the 9 | Symfony profiler bar at the bottom of all pages of both the frontend and the 10 | backend of the Bolt website. 11 | 12 |
13 | 14 | This profiler bar contains a lot of useful information to see what's going on 15 | behind the scenes. Click the different tabs to see information about the current 16 | request, used templates, matched routes, used queries, server variables and a 17 | lot more. 18 | 19 |

Note: The information available in the profiler bar 20 | will depend on the current environment setting 21 | . When set to dev, the profiler bar will also show debug information.

22 | 23 | 24 | [dev-environment]: ../debugging#environment-setting -------------------------------------------------------------------------------- /docs/extensions/baseextension.md: -------------------------------------------------------------------------------- 1 | Bolt's BaseExtension Class 2 | ========================== 3 | 4 | If you're developing custom code in your project or in an extension, you're 5 | free to do it however you'd like, if you're proficient with Symfony. Regardless 6 | of that, it is often very convenient to make the 'entrypoint' of your Extension 7 | or custom code `extend` the `Bolt\BaseExtension` class. 8 | 9 | | Topic | | 10 | |-------|----| 11 | | **Extension** | Bolt's BaseExtension class. Has some helpers and other functionality commonly used in an Extension scope | 12 | | **Twig** | Bolt's TwigAwareController class has some helper functions for rendering records, listings and finding templates. | 13 | | **Widget** | Bolt's BaseWidget class has helpers and functionality to add custom controls and elements to parts of the Bolt website, both frontend and backend. | 14 | | **Command** | Extending Symfony Console's Command class allows you to create new commands through the `bin/console` script. 15 | | **Listener** and **Subscriber** | You can use Symfony's [Listeners and Subscribers][symfony-events] to hook into [Bolt events][events] such as when saving content or editing a user. | 16 | 17 | [events]: ./event 18 | [symfony-events]: https://symfony.com/doc/current/event_dispatcher.html 19 | -------------------------------------------------------------------------------- /docs/extensions/command.md: -------------------------------------------------------------------------------- 1 | Console Commands 2 | ================ 3 | 4 | Read more about this topic in Symfony's official documentation: [console][docs]. 5 | 6 | [docs]: https://symfony.com/doc/current/console.html -------------------------------------------------------------------------------- /docs/extensions/global_config.md: -------------------------------------------------------------------------------- 1 | Global (Bolt) Configuration 2 | =========================== 3 | 4 | [todo] 5 | 6 | -------------------------------------------------------------------------------- /docs/extensions/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | section: Bolt Development 3 | title: "Extending Bolt" 4 | pages: 5 | - introduction 6 | - project 7 | - extension 8 | - widget 9 | - baseextension 10 | - twig 11 | - command 12 | - entities 13 | - fetching_content 14 | - creating_content 15 | - log 16 | - event 17 | - request 18 | - configfiles 19 | - global_config 20 | - services 21 | - menu 22 | - pages 23 | - composer 24 | # - request-cache 25 | # - remote-filesystem 26 | level: advanced 27 | redirect: extensions/introduction 28 | --- 29 | -------------------------------------------------------------------------------- /docs/extensions/log.md: -------------------------------------------------------------------------------- 1 | Monolog and Bolt's logging 2 | ========================== 3 | 4 | Read more about this topic in Symfony's official documentation: [Logging][docs]. 5 | 6 | [todo] 7 | 8 | 9 | [docs]: https://symfony.com/doc/current/logging.html -------------------------------------------------------------------------------- /docs/extensions/menu.md: -------------------------------------------------------------------------------- 1 | Adding a Menu 2 | ============= 3 | 4 | [todo] Write some stuff here adding a menu in the backend 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /docs/extensions/request.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Request & Response 3 | --- 4 | 5 | Request and Response 6 | ==================== 7 | 8 | Read more about this topic in Symfony's official documentation: [The HttpFoundation Component][docs]. 9 | 10 | [todo] 11 | 12 | 13 | [docs]: https://symfony.com/doc/current/components/http_foundation.html -------------------------------------------------------------------------------- /docs/extensions/services.md: -------------------------------------------------------------------------------- 1 | Fetching services 2 | ================= 3 | 4 | [todo] Write some stuff here about Autowiring and how to fetch services using `$this->services` 5 | 6 | 7 | -------------------------------------------------------------------------------- /docs/fields/checkbox.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Checkbox field 3 | --- 4 | Checkbox field 5 | ============== 6 | 7 | Simple checkbox input. 8 | 9 | ## Basic Configuration: 10 | 11 | ```yaml 12 | showteaser: 13 | type: checkbox 14 | ``` 15 | 16 | ## Example usage in templates: 17 | 18 | ```twig 19 | {% if record.showteaser %} 20 |

Teaser here ...

21 | {% endif %} 22 | ``` 23 | 24 | ## Options: 25 | 26 | The field has one option to change the appearance of the field: 27 | 28 | * `variant` set to `inline` to show the label next to the field instead of 29 | above it. 30 | -------------------------------------------------------------------------------- /docs/fields/date.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Date field 3 | --- 4 | Date field 5 | ========== 6 | 7 | Datepicker widget, to select a date. 8 | 9 | ## Basic Configuration: 10 | 11 | ```yaml 12 | eventdate: 13 | type: date 14 | mode: date # the default 15 | ``` 16 | 17 | ## Example usage in templates: 18 | 19 | ```twig 20 | {{ record.eventdate }} 21 | ``` 22 | 23 | ## Options: 24 | 25 | The field has options to change the appearance and functionality of the 26 | field. 27 | 28 | * `mode` Date type. Can be either `date` (default) or `datetime` -------------------------------------------------------------------------------- /docs/fields/email.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Email field 3 | --- 4 | Email field 5 | =========== 6 | 7 | Simple HTML input with `type='email'`. 8 | 9 | ## Basic Configuration: 10 | 11 | ```yaml 12 | email: 13 | type: email 14 | ``` 15 | 16 | ## Example usage in templates: 17 | 18 | ```twig 19 | {{ record.email }} 20 | ``` 21 | 22 | ## Options: 23 | 24 | The field has a few options to change the functionality of the field. Please 25 | check the [common options for all fields](common). 26 | 27 | ## Input Sanitisation 28 | 29 | All content in this field type will be sanitised before it gets inserted into 30 | the database. This means that only 'whitelisted' HTML like `` and 31 | `` is kept, while things like `` and `