Download the PHP package swissup/module-breeze-theme-editor without Composer

On this page you can find all versions of the php package swissup/module-breeze-theme-editor. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package module-breeze-theme-editor

Swissup Breeze Theme Editor

Version [PHP]()

Visual theme customization tool for Magento 2 Breeze themes with live preview, draft/publish workflow, and 16+ field types.

๐Ÿ“š Documentation

Full documentation: https://docs.swissuplabs.com/m2/extensions/breeze-theme-editor/

โœจ Features

๐Ÿš€ Quick Start for Theme Developers

1. Create Configuration File

Add etc/theme_editor/settings.json to your theme:

2. Use CSS Variables in Your Theme

The Theme Editor generates CSS variables that you can use in your stylesheets:

3. Field Types Quick Reference

Type Description CSS Output Example
color Color picker with RGB/HEX support --color: 255, 0, 0 (RGB) or --color: #ff0000 (HEX)
text Single line input --width: 1280px
textarea Multi-line text input --content: "text..."
number Numeric input --columns: 4
range Slider control --opacity: 0.8
select Dropdown selector --variant: primary
checkbox Multiple selection JSON data
toggle On/Off switch --enabled: 1 or 0
font_picker Font selector --font: "Georgia", serif
color_scheme Predefined color schemes Multiple CSS vars
icon_set_picker Icon set selector --icon-set: fontawesome
spacing 4-sided control --padding: 20px or 10px 20px
image_upload Image upload --logo: url(...)
code Code editor CSS/JS code
social_links Social media links JSON data
repeater Dynamic lists JSON data for JS

Color Format Support:

See full documentation: https://docs.swissuplabs.com/m2/extensions/breeze-theme-editor/theme-developer-guide/

๐Ÿ”Œ GraphQL API Example

The module provides a comprehensive GraphQL API for programmatic access:

API Features:

See full API documentation: https://docs.swissuplabs.com/m2/extensions/breeze-theme-editor/graphql-api/

๐ŸŽจ Color Format Support (Breeze 2.0 vs 3.0)

The Theme Editor supports both RGB and HEX color formats to ensure compatibility with different Breeze versions:

RGB Format (Breeze 2.0)

CSS output: --primary-color: 25, 121, 195

Usage: background: rgb(var(--primary-color))

HEX Format (Breeze 3.0)

CSS output: --primary-color: #1979c3

Usage: background: var(--primary-color)

Auto-Detection

If format is not specified, the Theme Editor automatically detects the format from the default value:

Note: The GraphQL API includes the format field for all color values.

4. Enable and Access

  1. Enable in Admin:

    • Go to: Stores > Configuration > Swissup > Breeze Theme Editor
    • Select Yes and save
  2. Access Theme Editor:

    • Click "Open Frontend in Theme Editor Mode" button in admin config
    • Or use URL: https://your-store.com/?breeze_theme_editor_access_token=YOUR_TOKEN
    • Access token is valid for 3 hours
  3. Make Changes:
    • Panel appears on the right side
    • Edit values with live preview
    • Click Save Draft or Publish

๐Ÿ” Sites Behind HTTP Basic Auth

On staging sites protected by HTTP Basic Auth (.htaccess), the browser keeps asking for the password over and over as soon as the Theme Editor opens.

Why: the admin UI authenticates its GraphQL calls with Authorization: Bearer <token>. Apache/nginx consumes that header first, tries to read it as Basic credentials, fails, and answers 401 WWW-Authenticate: Basic before Magento is ever reached. Every XHR then triggers a native password prompt, and no correct password can clear it.

Fix (no server access needed): move the token to another header.

Go to Stores > Configuration > Swissup > Breeze Theme Editor > General Settings and set GraphQL Authorization Header to X-Bte-Authorization.

The admin JS then sends the token there, Basic Auth ignores the unknown header, and the module copies the value into Authorization server-side, right before Magento validates the token. Authentication itself is unchanged โ€” the same JWT, the same core validator, the same ACL checks.

Same thing from the CLI:

Alternative fix (requires server access): let Bearer requests through Basic Auth โ€” for the GraphQL endpoint only.

โš ๏ธ Do not apply these rules site-wide. The web server can only check that the header starts with Bearer, not that the token is valid, so an unscoped rule lets anyone bypass Basic Auth on every route by sending an arbitrary Bearer value. Scoped to the GraphQL endpoint, the exception is limited to a path Magento authenticates itself โ€” but note that /graphql is a public API in Magento, so its unauthenticated queries (catalog data and the like) become reachable on the staging site.

๐Ÿ“ Substitute your actual endpoint path. The module builds the endpoint from the store base URL, so a subdirectory install answers on /shop/graphql, not /graphql. Every /graphql below must be replaced with your real path โ€” the 401 message the Theme Editor shows prints the path it is actually calling. Keep the patterns anchored, and escape regex metacharacters if your base path contains any (/shop.v2/graphql โ†’ ^/shop\.v2/graphql$).

Apache โ€” in the vhost, where <LocationMatch> matches the URL as it arrived, before any rewriting. Use <LocationMatch> with an anchored pattern rather than <Location>: <Location> matches by prefix, so /graphql would also cover unrelated routes such as /graphql-admin.

<LocationMatch> is not allowed in .htaccess. There, use <If> โ€” but verify it with the curl check below, because per-directory configuration is merged after Magento's rewrite to index.php on some setups:

nginx โ€” the exception has to be decided at server level, not inside a location. Magento's routing internally redirects /graphql to index.php, and the redirected request re-enters the PHP location, which inherits the server-level auth_basic and challenges again. $request_uri keeps the original URI across that redirect, so key the realm on it:

Verify with:

A 401 with www-authenticate: Basic means Basic Auth is still intercepting; anything else means the request reaches Magento.

Then check that a normal page still asks for the password:

This must still return 401. If it returns 200, the rule was applied too broadly and the whole site is now reachable with an arbitrary Bearer header.

The nginx recipe above was verified against nginx 1.24 with Basic Auth enabled and Magento at the web root:

request result
/graphql with a valid Bearer token reaches Magento, authenticated
/graphql?x=1 with a valid Bearer token reaches Magento, authenticated
/graphql-admin with a Bearer header Basic challenge โ€” not bypassed
/GraphQL with a Bearer header Basic challenge โ€” not bypassed
/ with a Bearer header Basic challenge โ€” not bypassed
/graphql with no auth header Basic challenge โ€” not bypassed

The Apache variants follow the same idea but were not tested here โ€” run both curl checks after applying them.

๐Ÿ“ฆ Installation

Via Composer (Recommended)

Manual Installation

  1. Download the module
  2. Extract files to app/code/Swissup/BreezeThemeEditor
  3. Run the following commands:

๐Ÿงช Running Tests

This module includes comprehensive test coverage:

Backend PHP Tests

Using Docker (Recommended):

Using PHPUnit directly:

Run specific test file:

Frontend JavaScript Tests

Access the browser-based test runner:

URL Parameters:

For complete testing documentation, see README-TESTS.md

๐Ÿ“‹ Requirements

๐Ÿค Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch
  3. Add tests for new features
  4. Submit a pull request

๐Ÿ“„ License

OSL-3.0

๐Ÿ’ฌ Support

๐Ÿ”— Links


All versions of module-breeze-theme-editor with dependencies

PHP Build Version
Package Version
Requires php Version ^8.1
magento/framework Version ^103.0
swissup/module-core Version ^1.13.1
swissup/module-logger Version ^2.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package swissup/module-breeze-theme-editor contains the following files

Loading the files please wait ...