Git Product home page Git Product logo

pimcore-toolbox's Introduction

Pimcore Toolbox

The Toolbox is a Kickstarter for your every day project. It provides some important bricks and structure basics which allow rapid and quality-oriented web development.

Join the chat at https://gitter.im/pimcore/pimcore Software License Latest Release Tests PhpStan

Pimcore Toolbox

Release Plan

Release Supported Pimcore Versions Supported Symfony Versions Release Date Maintained Branch
5.x 11.0 6.2 28.09.2023 Feature Branch master
4.x 10.5, 10.6 5.4 01.10.2021 Bugfixes 4.x
3.x 6.0 - 6.9 3.4, ^4.4 16.07.2019 Unsupported 3.x
2.8 5.4, 5.5, 5.6, 5.7, 5.8 3.4 30.06.2019 Unsupported 2.8
1.8 4.0 -- 28.04.2017 Unsupported pimcore4

Installation

"require" : {
    "dachcom-digital/toolbox" : "~5.0.0"
}

Add Bundle to bundles.php:

return [
    ToolboxBundle\ToolboxBundle::class => ['all' => true],
];
  • Execute: $ bin/console pimcore:bundle:install ToolboxBundle

Upgrading

  • Execute: $ bin/console doctrine:migrations:migrate --prefix 'ToolboxBundle\Migrations'

What's the meaning of Toolbox?

  • create often used bricks in a second
  • extend, override toolbox bricks
  • add config elements via yml configuration
  • add consistent and beautiful config elements
  • add your custom bricks while using the toolbox config environment
  • removes the default pimcore_area_* element wrapper from each brick

And what's not?

  • It's not an Avada Theme. While the Toolbox provides some basic Javascript for you, you need to implement and mostly modify them by yourself.
  • Toolbox supports only the twig template engine, so there is no way to activate the php template engine (and there will never be such thing).

Frontend JS Implementation
We're providing some helpful Javascript Plugins to simplify your daily work with the ToolboxBundle. Read more about the javascript implementation here.

Available Toolbox Bricks

The Toolbox provides a lot of ready-to-use Bricks:

  • Accordion
  • Anchor
  • Columns
  • Container
  • Content
  • Download
  • Gallery
  • Google Map
  • Headline
  • iFrame
  • Image
  • Link List
  • Parallax Container
  • Parallax Container Section
  • Separator
  • Slide Columns
  • Spacer
  • Teaser
  • Video

Additional Editables

Further Information

Pimcore Fixes / Overrides

  • Fix the pimcore iframe maskFrames bug (in some cases the iframe overlay field does not apply to the right position)
  • Transforms all the brick config buttons (pimcore_area_edit_button_*) to more grateful ones.

Copyright and license

Copyright: DACHCOM.DIGITAL
For licensing details please visit LICENSE.md

Upgrade Info

Before updating, please check our upgrade notes!

pimcore-toolbox's People

Contributors

andikeiser avatar benwalch avatar blankse avatar christopher-siegel avatar corepex avatar dennistiboni-extera avatar dpfaffenbauer avatar ghettopro avatar gpalmisano avatar jdreesen avatar jsc-dev avatar ktallafus avatar naincykumariknoldus avatar pascalheidmann avatar pascalmoser avatar rliebi avatar roadrunner21 avatar scrummer avatar solverat 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

Watchers

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

pimcore-toolbox's Issues

Installation Error on Pimcore 5.1.1 build 184

Fatal error: Uncaught Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException: You have requested a non-existent parameter "pimcore_system_config.services.google.browserapikey". You cannot access nested array items, do you want to inject "pimcore_system_config.services" instead? in /var/www/public_html/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/ParameterBag/ParameterBag.php on line 102

[Toolbox2] Theme Configuration not working as expected

According to documentation, this configuration should create two wrappers around my column:

toolbox:
  theme:
    layout: 'Flex'
    wrapper:
      columns:
        - {tag: 'div', class: 'foundation'}
        - {tag: 'div', class: 'row align-stretch'}

But it actually creates 3:

array:2 [▼
  "layout" => "Flex"
  "wrapper" => array:3 [▼
    0 => array:2 [▼
      "tag" => "div"
      "class" => "row"
    ]
    1 => array:2 [▼
      "tag" => "div"
      "class" => "foundation"
    ]
    2 => array:2 [▼
      "tag" => "div"
      "class" => "row align-stretch"
    ]
  ]
]

Thats because it merges my array with the default bootstrap3 array.

[Toolbox2] Areabrick Expansion through AppBundle

Philosophy

  • Define custom/project areabricks within toolbox configuration context
  • Create elements without using a custom edit.php file – always render a toolbox config window based on the custom configuration file.

Preparation

  • Find a consistent file structure
  • The configuration should look like this:
toolbox:
    custom_areas:
        myNewBrick:
            configElements:
                anchorName:
                    type: input
                    config:
                        title: Your Input Title
                anchorTitle:
                    type: input
                    config:
                        title: Another Input Title

uniform asset metadata

in /views/scripts/toolbox/download/list/item.php rename metaInfos to avoid redundancy (pimcore already adds some metaInfos to images).

instead of name use title
instead of altText use alt

[Toolbox2] validate revise/abolishment of globalLink document editable

Since we still can't override pimcore5 core document editables, we need to keep this DE in Toolbox2.

Global Link Duties

  1. Allow object path in url field. in frontend, a toolbox.url.objectFrontendUrl event gets fired to allow custom routes for objects (Example: path to a news detail page)
  2. Keep every path in current language / country mode (Example: A main page tree, starting with /en which contains all the real subpages. A second tree starting with a hardlink en-gb. Every subpage with "pimcore_globallink" document editables requires a path transformation from en/about-us to en-gb/about-us if entering the hardlink context.

ToDo

  • Check if ToolboxBundle\Tool::parse() is still a required method. Move document path transformations to a pimcore.frontend.path.document event listener.
  • Rename pimcore_globallink DE to something more suitable, likepimcore_powerlink or pimcore_dynamiclink? Update readme, if implementation gets approved.

Element Config Check Command

  • Implement simple command to check configuration of areas, area_restriction, ckeditor...
  • In favor to #49 allow context parameter to get configuration of specific context

[TB4] Implement SimpleBrick

Create Bricks without any custom classes:

services:
    app.brick.my_simple_brick:
        parent: ToolboxBundle\Document\Areabrick\AbstractAreabrick
        tags:
            - {
                name: toolbox.area.simple_brick,
                id: my_simple_brick,
                title: 'Simple Brick (Configurable)',
                description: 'This is a very simple Brick',
                template: 'areas/demo-brick/view.html.twig',
                icon: '/bundles/toolbox/areas/content/icon.svg'
            }

[Toolbox2] Slick Slider / Light Gallery

  • remove light gallery classes, create generic class names like lightbox.
  • add templates to gallery, create Gallery/Type/slickSlider.twig.html.
  • implement slider configuration

Render Areas within a Bundle

Hi,

when i create a new custom Bundle and follow your instructions for a new custom brick, my custom Area will not render, becuase i have to put it in /app/Resources/views/Areas/

How is it possible to get it work within /src/Company/testBundle/Resources/views/Areas/?

Any idea would be nice :)

Remove auto rendered brick tags

  • remove brick wrapper like .pimcore_area_content , .pimcore_area_columns , .pimcore_area_image...
  • add a action.php to each element
  • add global brick class to each element (instead of .pimcore_area_content)
  • add some good upgrade notes to placate webworker (because this changes the markup drastically)

Allow manual Breakpoint Adjustment for Columns

bildschirmfoto 2017-11-10 um 15 29 51

Wishlist

  • Get columns from selected item via columnsCalculator
  • Get available breakpoints from config (or via columnsCalculator?)
  • Allow to add specific column size for each column via a "add breakpoint block" function
  • Keep Feature optional (activate through checkbox to enable this "expert mode")
  • Definition will override the column calculation setting

Example from Screenshot

"2 Columns (50:50)" in Bootstrap calculator would be:

xs:

  1. column: dropdown from 1-12
  2. column: dropdown from 1-12

sm:

  1. column: dropdown from 1-12
  2. column: dropdown from 1-12
    ...

Todo

  • Add new configuration to theme grid (breakpoints, grid size)
  • Add Docs
  • Add Update Note

Minify issue

Hi,

I have just installed your plugin and I get an error:

Fatal error: Class 'MatthiasMullie\Minify\CSS' not found in /home/astilleroslagos/domains/gato.astilleroslagos.es/public_html/plugins/Toolbox/lib/Toolbox/Controller/Minify/Builder.php on line 37

Do I need to install something else?

Many thanks in advance for your help and kind regards from Spain,

Alb

Various bug on some areas.

Hello! I tried the different areas proposed by your toolbox. Some are really great and usefull.
Thanks for sharing it with the community.

I tested them all and get some bugs on the followings. It occurs on the last stable Pimcore.

Google Map
The "Locations" button is not displayed in the editing panel on pimcore. If the googlemap editable is disrectly called from the view it is ok ($this->googlemap(...)), but as area the Location button is not displayed.

Image
There is not drag-and-drop zone for the image... maybe same problem than google, the image tag seems not rendered when called from the area. But strangely I have seen other area you made (like Snippet for instance) and the $this->image work ok.

Slide Columns
They didn't slide. So making 8 of them with 4 visible, only the 4 first are displayed on the backend, and in the frontend, the 4 first are displayed in a row, and the other 4 just below.
It is like the JS isn't triggered, but i checked, i have enabled the layout (as injecting the JS need this) and the static JS file are well just before the closing body tag (and are well loaded with OK 200).

Parallax Container
When adding this area, it try to getWidth() before we have the time to add an image ; ). See here please:
https://github.com/dachcom-digital/pimcore-toolbox/blob/master/views/scripts/toolbox/parallaxContainer/image.php#L33
So actually it could not be used. I forced the width to try it and after this, the image i have added doesn't appear in the frontend (maybe a JS problem too...).
But I have just before the close body tag the required library it seems:

<script type="text/javascript" src="/plugins/Toolbox/static/js/frontend/jquery.parallax-scroll.min.js"></script>
<script type="text/javascript" src="/plugins/Toolbox/static/js/frontend/vimeo-api.min.js"></script>
<script type="text/javascript" src="/plugins/Toolbox/static/js/frontend/toolbox.js"></script>

Documentation
Maybe you could add the following information, this will help next people ; ) :

  • The layout must be activated (see https://www.pimcore.org/docs/latest/MVC/Template/Layouts.html)
  • For Google Map you must manually add the Google JS library (<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY" async defer></script>)
  • You can change default configuration of areas in the following files: website/var/config/toolbox_configuration.php

Thanks!

Add icons or possibility to provide custom icons

Would you mind adding some nice icons for the bricks provided by Toolbox (in /src/ToolboxBundle/Resources/public/app/[brick]/icon.png)?
Or maybe add a config section to customize the icon paths?

The auto-selected icons are pretty meaningless - it would be nice if they were not just selected randomly. Unfortunately I don't see a proper way to override the icon paths, since Pimcore by default is looking in the Bundle's public path only:
https://github.com/pimcore/pimcore/blob/296d0871ae191e2095256a1fbc9fcbfd32d97a5d/pimcore/lib/Pimcore/Document/Tag/TagHandler.php#L169

Add custom video

  • custom thumbnail for Youtube and Vimeo
  • option 'show in Lightbox'

gmaps: initial error

when gmaps is set for the first time, it's not possible to add some locations. you need to save it first & reload.

Downgrade AssetHandler as optional Feature

Because the world is better with gulp, we don't want to add static resources with php by default. :)

  • disable auto registration of javascript/css resources by default
  • add flag to toolbox_configuration.php: enableAssetHandler (default FALSE)
  • update readme.

After installation image thumbnail seems to miss, and small other problems.

Hi!

I just tested the toolbox wich provide so many area. I tested most of them. Howww so nice features with many configuration options. You make a hard work on this. Thanks a lot for sharing it.

I got a problem with the paralax one, because it seems to miss the image thumbnaim "parallaxContainerImage" on line 33 ($this->image('parallaxContainerImage')->getThumbnail('parallaxContainerImage')->getWidth();) of Toolbox\views\scripts\toolbox\parallaxContainer\image.php.

Aside of this, some area seems to have problems:

  • Google Map doesn't show a map (maybe a Google API Key must be filled in Pimcore?)

  • After dragging several area i got an error:
    Declaration of Pimcore\Model\Document\Tag\Globallink::updatePathFromInternal() should be compatible with Pimcore\Model\Document\Tag\Link::updatePathFromInternal($realPath = false)
    …\plugins\Toolbox\lib\Pimcore\Model\Document\Tag\Globallink.php, line 11
    And after that i am disconnected from the backend (need to relog with credentials), very strange. Maybe because conflict with other plugins... or Pimcore core bug...
    (tested on last Pimcore 4)

Thanks!

Make Configuration Site Based

  • allow different areas in a different site environment
  • allow override / extend / enable / disable brick configuration element in different sites
  • ckeditor styles for different sites
  • use current configuration as default fallback

[Toolbox2] Create Bootstrap Theme

  • remove bootstrap markup from templates
    • accordion/tab: create custom views since it's heavily based on bootstrap
  • add block wrapper for each element
  • columns class/markup generator
  • slide columns class/markup generator
  • allow custom themes (new config param eg. theme: bootstrap-3)

Error: Areabrick image is already registered

Added the require line to composer.json, ran composer update and tried to clear cache. I see the error below:

In AreabrickManager.php line 100:

  Areabrick image is already registered as service ToolboxBundle\Document\Areabrick\Image\Image (trying to add service app.area.brick.image)

Pimcore 5.1.1 (kernel: app, env: prod, debug: false)
php 7.1
nginx

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.