Dlayer, vNext

Development work on Dlayer vNext is deliberately slow; I’m attempting to ensure that any and all of the core architecture issues I noticed developing version 1 get resolved.

I spent a considerable amount of time on the UI and UX for version 1 of Dlayer, very little of that will change for vNext. My issues with version 1 can be summed up in one word, modular, as in, the app wasn’t.

There are two parts to the problem; the designers were not modular, in Zend Framework 1 (modules were a bit of a hack), and two, the tools were not plug-and-play.

Modules

This one is easy, by switching to Zend Framework 3, and being careful as I develop, the modules can behave as real modules, turn them on or off, transfer to different apps, all possible

Plug-and-play

The tools in version 1 of Dlayer had too many hooks into the system; they could be disabled dynamically, but you could not drop a tool into another module or quickly remove the code for a disabled tool.

On paper, I have a new plan; and I am in the middle of prototyping to see if it solves the core issues.

The solution is complicated; it will take time to develop examples of each tool type. However, as soon as I am sure the design is right, it simplifies the rest of the app.

Simpler app

The tools in version 1 were solely data management within the designers, in vNext, this changes.

The tools in vNext are responsible for everything relating to the content item, including, how the content is displayed in the WYSIWYG designer. The app at this point is merely a vehicle to provide access to the tools.

 

Dlayer, ZF3 and composer libraries

I’m cross posting this post on two of my blogs because it is relevant to both sites, my blog and Dlayer.

I started development of the second rewrite of Dlayer using version 1 of the Zend Framework, in the following years I concentrated on building Dlayer rather than the underlying framework. With the EOL of Zend Framework 1, I can’t honestly continue on this path.

I started to move Dlayer over to Zend Framework 2 early last year but never got anywhere; I’m am now in the process of moving it to Zend Framework 3.

What does that mean for Dlayer?

I am in the process of developing v1.17, which will be released, and I will probably release another version of two, however, from this point forward I will focus the majority of my time on the migration.

I am migrating Dlayer; I am not undertaking another rewrite, sure, I will improve a few things along the way, but my goal is to migrate to Zend Framework 3 as quickly as possible,

Composer

While I migrate my code, I am taking the time to review it. If I see a tool or group of functions that is not unique to Dlayer, I will try to pull them out and turn them into a composer package.

So far I have four composer packages in progress, a PHP Quill renderer, Bootstrap 3/4 Zend Framework view helpers, Zend Framework view helper code completion and a random grab bag.

You can check out my composer packages at packagist. I’m going to have a website to showcase all the packages, so far I have only purchased the domain, as soon as the first version of the grab bag is release I will work on the website.

Goals for v1.17

I am partway through v1.17, and I’ve just added tickets to GitHub detailing the remaining improvement I plan to make.

As per my post on the 3rd March, my plan is still to start work on the Website Manager by v1.20. For the last couple of weeks, I have been concentrating on my Quill Renderer, but I will be getting back to Dlayer within the next day or so.

The list below details the remaining tasks for v1.17;

  • Add a button content item with the relevant sub tools.
  • Add padding and margin sub tools to columns and rows.
  • Add a border sub tool to columns and rows.
  • Bugs and minor improvements.

Release v1.16

I have just released v1.16 of the Dlayer demo; As mentioned in my previous post my priority is adding the features required to create the Dlayer.com home page.

I’ve added a horizontal rule content layout tool as well as additional styling options for the page background and content background. I’m using v0.40 of my Quill HTML Renderer; this means that rich text areas support links, superscript and subscript.

The full changelog for v1.16 is below:

  • Enabled link support in Quill rich text fields.
  • Enabled superscript and subscript support in Quill rich text fields.
  • I have changed the name of the background colour property on the page styling sub tool; it is now called content background colour which is more accurate.
  • I have added the ability to define the background colour for your website (Page background colour, in the future this will be configurable per template). [Feature]
  • I have added a horizontal rule tool, under the content layout drop down. [Feature]
  • I have added a styling sub tool for horizontal rule content items, allows the colour to be defined. [Feature]
  • I have added a delete sub tool for horizontal rule content items. [Feature]
  • I have made improvements to the styling code, less duplication of both data and code. [Refactoring]
  • New tables to manage any styling attributes defined for the page, HTML and content items, additional refactoring required. [Database]
  • Control bar improvements. [UX]
  • General fixes and improvements.

The Website Manager escaped

The Website Manager escaped development and inclusion in v1.15; I got sidetracked working on the Quill HTML renderer and composite content items.

Before I put the Website Manager into a sprint, I want to ensure that the demo is capable of building a website. I’m going to start with a simple website, the Dlayer.com website.

I’m hoping to add the additional content items required to create the home page in v1.16 and the tools necessary to create a version of the Dlayer development blog in v1.17.

I’m going to assume that unlike last time everything will go to plan, either way, I have enough leeway to be able to start development of the Website Manager before v1.20.

Release v1.15

I have just release v1.15 of the Dlayer demo; I had more features planned, but after a refactoring task increased in scale I opted to stop adding new features and save them for the next release.

The full changelog for v1.15 is below:

* Enabled the rich text content item tool. [Feature]
* Added a blog post content item [Feature]
* Added styling, typography and delete sub tools to rich text and blog post content items. [Feature]
* Original text content item renamed to ‘plain text’.
* Added PHP Quill HTML renderer, used by the tools which have rich content areas.
* Tool links inside an empty column dynamic.
* Refactoring.
* Minor fixes and improvements.

Release v1.14

I will release v1.14 of the Dlayer demo either later tonight or tomorrow; it very much depends on how the rest of the day goes.

This release puts in place some of the groundwork for the new composite content items that I’m planning to add very soon. The Blog and Story content items require a rich text editor; I’ve added initial support for Quill and added a toggle ribbon button which will allow a larger editor.

The full changelog for v1.14 is below:

  • The New and Edit forms in the Form Builder expose the layout options visible within the Form Builder. [Feature]
  • The import SQL files don’t define the module or tool ids. [Setup]
  • Added a preset ‘Date of Birth’ element tool to the Form Builder. [Feature]
  • Added alternate rows quick styling tool to the Form Builder. [Feature]
  • Updated the text for the Column, Row and Page tools, more conditional, aware of designer and design state. [UX]
  • Added shortcut buttons to Column, Row and Page tools. [UX]
  • The column contains content query only looks at enabled content. [Bugfix]
  • Added a toggle ribbon button to the right side of the control bar, it expands the ribbon to open up the form. [UX]
  • Control bar padding left and right set to 15px, was 0. [Bugfix]
  • Added a rich text content item to the Content Manager (disabled until I add a renderer for quill). [Disabled Feature]
  • Refactoring.
  • Minor fixes and improvements.

v1.15: Website Manager? and then widgets?

Hopefully, everything will go as planned with v1.14, assuming that is the case I will start work on the Website Manager in v1.15.

The Website Manager is where you manage the relationships between the pages of your site, in simple turns, you are generating the sitemap.

As soon as the Website Manager and Media Library are in place I can work on developing the initial widgets; this is when Dlayer starts to show its potential.

Release v1.13

I have just released v1.13 of the Dlayer demo.

v1.13 is a small release; it contains three bug fixes and two new features. I have added a date element tool to the Form Builder and a Heading and Date content item to the Content Manager.

I will update the development board on GitHub shortly with the planned new features for v1.14.

The full changelog for v1.13 is below:

– Switching to a new sub tool clears any unsaved changes displaying in the designer. [Bugfix]
– Select parent row code looks at whether a content item is selected and returns the column that is relevant to the current environment status. [Bugfix]
– Added a Date Element tool to the Form Builder along with the Styling and Delete sub tools. [Feature]
– Added a Heading & Date content item to the Content Manager along with the Styling, Typography and Delete sub tools. [Feature]
– Clear the selected tool for the Form Builder upon logout. [Bugfix]
– Refactoring.

Release v1.12

I have just released v1.12 of the Dlayer demo. I have added a delete sub tool to all content items and added a control bar to the Form Builder and the Content Manager previews.

I had to do some refactoring to keep the Content Manager and default module in line with the Form Builder, while refactoring I found and fixed a couple of bugs.

The full changelog for v1.12 is below:

  • Added a delete sub tool to each of the content items. [Feature]
  • The Content Manager does not display deleted content items; data remains pending feature to restore.
  • The re-order code which runs after you delete an element in the Form Builder was sorting incorrectly. [Bugfix]
  • Added an admin controller to the Content Manager. [Refactoring]
  • Added an admin controller to the default module. [Refactoring]
  • Added the control bar to the Form Builder and Content Manager previews. There is a button to return to the Designer/Manager and in the Form Builder an option to set the width of the preview. [Feature]
  • The Form Builder displays the assigned title and subtitle. [Bugfix]
  • Model cleanup. [Refactoring]
  • Minor fixes and improvements.