Page Builder side of the CMS (Content Management System) PolarPress released under GNU General Public License v3.0
Go to file
2025-05-06 20:00:28 +02:00
.github/workflows Base framework 2025-05-05 15:02:00 +02:00
app Made some testcases for the new image populate command, found some bugs, fixed some errors due to discovering bugs during testing 2025-05-06 14:51:11 +02:00
bootstrap Base framework 2025-05-05 15:02:00 +02:00
config Implemented a way for the developer to define a custom background color for the pages they are building through the config file 'pagebuilder.php' 2025-05-06 11:04:24 +02:00
database Made test coverage for PageBuilder controllers and models 2025-05-06 00:13:06 +02:00
public Updated route list to include privacy policy, terms of use and sales terms to prevent errors with components that render links to those routes 2025-05-05 19:18:20 +02:00
resources Implemented a way for the developer to define a custom background color for the pages they are building through the config file 'pagebuilder.php' 2025-05-06 11:04:24 +02:00
routes Rendered generated pages menu links on the main page, cleaned up some code, and forced light mode for a consistent look 2025-05-05 22:32:28 +02:00
storage Base framework 2025-05-05 15:02:00 +02:00
tests Made some testcases for the new image populate command, found some bugs, fixed some errors due to discovering bugs during testing 2025-05-06 14:51:11 +02:00
.editorconfig Base framework 2025-05-05 15:02:00 +02:00
.env.example Base framework 2025-05-05 15:02:00 +02:00
.gitattributes Base framework 2025-05-05 15:02:00 +02:00
.gitignore Added image database population command tool 2025-05-06 13:38:12 +02:00
.prettierignore Base framework 2025-05-05 15:02:00 +02:00
.prettierrc Base framework 2025-05-05 15:02:00 +02:00
artisan Base framework 2025-05-05 15:02:00 +02:00
components.json Base framework 2025-05-05 15:02:00 +02:00
composer.json Fixed composer file, errenous format 2025-05-05 22:51:10 +02:00
composer.lock Updated Readme 2025-05-06 17:46:07 +02:00
eslint.config.js Base framework 2025-05-05 15:02:00 +02:00
LICENSE Initial commit 2025-05-05 14:43:55 +02:00
package-lock.json Added correct title rendering on root 2025-05-06 10:19:21 +02:00
package.json Implemented vite test to make sure blocks.js maintains it's integrity and validates 2025-05-06 00:43:17 +02:00
phpunit.xml Base framework 2025-05-05 15:02:00 +02:00
README.md Updated install instructions (need to run composer update before key generate 2025-05-06 19:54:08 +02:00
tsconfig.json Base framework 2025-05-05 15:02:00 +02:00
vite.config.ts Implemented vite test to make sure blocks.js maintains it's integrity and validates 2025-05-06 00:43:17 +02:00

PolarPress Pagebuilder

🟢 Collaborate or ask for help   🌐 Visit Homepage

Introduction

PolarPress Pagebuilder is part of the PolarPress content management system developed by Arctic Software A/S. We've decided to publish this as a seperate package in order to open up the possibility for our end users and customers to customize and tailor their own design, functionality and layout for their webpages running our CMS software. You can download this package either as a standalone zip/tar.gz compressed file or through git and run the PageBuilder on your local machine in a development environment to make, improve, and test various page components and design ideas for your website.

As of 06.05.2025, this package comes bundled with a few page blocks/components to give you an idea how to make new ones. These components are based on the design of the Østfold Milsim website. There is also a Test ØMS website populated with test data, if you want to test the page builder in the full CMS proper. Keep on reading if you want to gain elevated privileges there to test out things.

Features

  • Full WYSIWYG drag and drop page builder
  • No limitation on what you can edit, as long as the block author have made provisions to edit what is intended to edit
  • Pluggable and modular design that lets you also fetch external data from the CMS through Eloquent

Installation

Here is a step by step guide to install this software package and get a development environment running on your own machine

Requirements

Before you download this software package, make sure you have the following requirements installed. This software works on most operating systems (Windows, Linux, MacOS), as long as you have the other software requirements installed.

  1. PHP Version >= 8.2
  2. Composer, a dependency and package manager for PHP
  3. Node and NPM Node is a runtime environment for Javascript, and NPM is a dependency and package manager for Node
  4. Git Version control software. Not required, but recommended if you want to contribute and upload page components and designs to this repository

Installation & Configuration steps

Once you have installed and correctly configured all of these requirements (check that each software tool is accessible via path from your command line), you can download the Page Builder either as a compressed file or using git (from the command line):

git clone https://git.arcticsoftware.no/arcticsoftware/polarpress-pagebuilder.git

Change into the directory

cd polarpress-pagebuilder

and copy/rename the .env.example to .env

This is the global environment variable file which contains all the settings needed to run the application. You do not need to edit this file, the default settings are fine. As standard, the page builder uses SQLite as a database backend (and that is fine for most intended purposes of this application), but if you want to use something like Mysql or PostresDB, you need to edit the environment variable file to facilitate this.

First we need to fetch the required libraries used by the application via composer. Run:

composer update

Next you need to generate a random key for cryptography operations (that will be stored in the .env file):

php artisan key:generate

If you get something like "'php' is not recognized as an internal or external command, operable program or batch file." you need to make sure that php is installed per the requirements, and that the operating system has the php executable accesible from within it's path environment variable. You might need to open and close your console to reload the environment path variable.

Next we want to update and fetch all package dependencies for Node with NPM:

npm update

Next we generate the neccessary database tables in the database with the migration command:

php artisan migrate

And that's it!

Running local development server

Make sure you're inside the directory where you downloaded/cloned polarpress-pagebuilder, and run the following commands:

php artisan serve
npm run dev

These commands needs to be run concurrently (in two seperate terminals). Go to http://localhost:8000 and you should be greeted with the welcome screen.

Serving images to the application

We haven't ported our the image handling, uploading and administration interface over from the CMS, so if you want to serve images to the application (that lets you pick and choose images you can use in the components), you need to use the pagebuilder:make-imagedb artisan command from the command line to generate the database file system representation. Place the file/folder structure of your images inside the folder public/imagedb and run the command:

php artisan pagebuilder:make-imagedb

And the images will become available for use inside the application.

FAQ

Q: Why isn't this software released as a composer package? Will it ever be?
A: In order to get this ported and made available as fast as possible, we opted to port this from our Laravel 10 based CMS to Laravel 12, for now. If we had opted to make this into a composer package a lot more time would have to be spent coding the frontend for every possible Laravel scaffolding environment (Vue, React, Livewire) and the testing for each of those. We will release this as a composer package in the future, though.

Testing

Unit and Feature tests with PHPUnit are stored under tests and can be run with

php artisan test

Unit and Featire tests with vite test are stored under resources/js/__tests__ and can be run with

npx vitest run

See the wiki/documentation for more information on how to make use of the test suites for development

Contributing

If you want to contribute by making new content blocks and functionality for either the PageBuilder itself or your organization's website, please join and collaborate on our Matrix Chat, and we will get you up and running with an account on this repository. Also, please take some time to read our documentation if you are considering contributing to the project.

License

This software, and the pagebuilder is copyrighted by Arctic Software A/S and Helge-Mikael Nordgård, licensed and opensourced under the GNU GPL V3 license. See "LICENSE" for more information.

Credits

  1. Maintainer: Helge-Mikael Nordgård

Future contributers will be added to this section :-)