Git Product home page Git Product logo

kunstmaan / kunstmaanbundlescms Goto Github PK

View Code? Open in Web Editor NEW
400.0 41.0 190.0 60.09 MB

An advanced yet user-friendly content management system, based on the full stack Symfony framework combined with a whole host of community bundles. It provides a full featured, multi-language CMS system with an innovative page and form assembling process, versioning, workflow, translation and media managers and much more.

Home Page: https://kunstmaancms.be

License: MIT License

PHP 68.80% JavaScript 15.26% CSS 0.49% HTML 0.34% Gherkin 0.43% Shell 0.02% Hack 0.02% SCSS 5.27% Twig 9.38%
cms php symfony kunstmaan-cms hacktoberfest

kunstmaanbundlescms's Introduction

Kunstmaan CMS

Build Status Latest Stable Version Latest Unstable Version Total Downloads Monthly Downloads Crowdin License

The Kunstmaan CMS is an advanced yet user-friendly content management system, based on the full stack Symfony framework combined with a whole host of community bundles. It provides a full featured, multi-language CMS system with an innovative page and form assembling process, versioning, workflow, translation and media managers and much much more.

Please refer to the documentation at https://kunstmaancms.be/documentation to get your CMS up and running.

Screenshot

Sponsors

Blackfire.io

Contributing

We love contributions! We've provide you with a Contribution Guide to get you started. If you're submitting a pull request, please follow the guidelines in the Submitting pull requests documentation and be sure to read our Coding Standards as well.

Community

Want to talk to fellow contributors? There's always people eager to chat in our slack channel!

Join our slack channel Join our Slack Channel!

Browser support

We support at least the 2 last versions of Chrome / Firefox / Safari / Edge and IE11. We also support the most current mobile browsers.

Enjoy!

kunstmaanbundlescms's People

Contributors

acrobat avatar aistis- avatar cv65kr avatar daanporon avatar dannyvw avatar dbeerten avatar delboy1978uk avatar denbatte avatar dependabot[bot] avatar devolicious avatar dezinc avatar diskwriter avatar fchris82 avatar fvkvn avatar ibevanmeenen avatar joakimlofgren avatar jverdeyen avatar kimausloos avatar krispypen avatar kristofvc avatar lauravandendoorent avatar mlebkowski avatar oskarstark avatar roderik avatar sandergo90 avatar spobo avatar wesleylancel avatar whitewhidow avatar wimvds avatar wouterj 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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

kunstmaanbundlescms's Issues

Default pageparts: To Top pp

PagePartBundle

  • Make it work together with CargoBay scroll-to-top.js (add class)
  • Add default styleguide markup in resources/ui/scss/_to-top-pp.scss

Project files should not mix end of lines

            Some files contain mixed and/or invalid end of lines ( \r\n instead of \n). Homogenize
            them to improve compatibility across different platforms.
  • src/Kunstmaan/AdminBundle/Resources/public/js/ckeditor/LICENSE.md
  • src/Kunstmaan/AdminBundle/Resources/public/js/ckeditor/plugins/scayt/LICENSE.md
  • src/Kunstmaan/AdminBundle/Resources/public/js/ckeditor/plugins/scayt/README.md
  • src/Kunstmaan/AdminBundle/Resources/public/js/ckeditor/plugins/wsc/LICENSE.md
  • src/Kunstmaan/AdminBundle/Resources/public/js/ckeditor/plugins/wsc/README.md
  • src/Kunstmaan/AdminBundle/Resources/public/js/ckeditor/skins/bootstrapck/readme.md
  • src/Kunstmaan/MediaPagePartBundle/Tests/Entity/DownloadPagePartTest.php
  • src/Kunstmaan/MediaPagePartBundle/Tests/Entity/ImagePagePartTest.php

To solve this issue, run the below command:

sed -i "s/\r//g" 'src/Kunstmaan/AdminBundle/Resources/public/js/ckeditor/LICENSE.md' \
    'src/Kunstmaan/AdminBundle/Resources/public/js/ckeditor/plugins/scayt/LICENSE.md' \
    'src/Kunstmaan/AdminBundle/Resources/public/js/ckeditor/plugins/scayt/README.md' \
    'src/Kunstmaan/AdminBundle/Resources/public/js/ckeditor/plugins/wsc/LICENSE.md' \
    'src/Kunstmaan/AdminBundle/Resources/public/js/ckeditor/plugins/wsc/README.md' \
    'src/Kunstmaan/AdminBundle/Resources/public/js/ckeditor/skins/bootstrapck/readme.md' \
    'src/Kunstmaan/MediaPagePartBundle/Tests/Entity/DownloadPagePartTest.php' \
    'src/Kunstmaan/MediaPagePartBundle/Tests/Entity/ImagePagePartTest.php'

Posted from SensioLabsInsight

Composer install takes ages

Hi, I have tried to composer install this very repo and to do

´´´
composer create-project kunstmaan/bundles-standard-edition /my/path -s dev
´´´

And none of them worked. If I add -vvv I only see it loading packages from packagist or cache and then, on the guzzle package it gets stuck for hours. I think this is a problem with composer trying to build the dependency tree because there is a lot of rant about it on github. I am running the server in a VB with 1 GB RAM, but it doesn't seems enough.

I only wanted to know if you have experienced this problem during a deploy and how have you solved it. I have read other people with this problem with composer in many projects and usually it is a case of concreting the dependencies versions and giving more power or time to the VB but I left it tonigh running 5 hours and I didn't get anything from it, it was completely stuck when I returned...

Migration to one big repository with subtree splits on push

Goal

The KunstmaanBundlesCMS repository will be running 3.0-dev. All the bundles in this repo are at 3.0-dev as well. They will all depend on each other when needed, at the ~3.0.0 level. This series of releases will all be 3.0.x.

Process

  • Announcement post on the Bundles blog that we are doing this move.
  • Feature freeze of all bundles. Focus on closing all open branches and pull request. Anything not closed will be lost!
  • Testing phase
    • Setup the automated split hooks using forks for testing and run the merge scripts on a daily basis.
    • Test several existing projects
      • changing nothing, just running composer update (it should stay in the stable 2.3 ranges form the loose bundles)
      • changing nothing except adding custom repo's to the forks. (it should behave as the one above)
      • changing to the big repo at 3.0.*@dev (it should just uninstall all bundles and continue working)
  • Real migration
    • Fork all the loose bundles to the legacy organisation for backup purposes
    • Run the merge scripts
    • Setup and run the splits to the real repositories (Point of no return)
    • Move all bundles to the 3.0-dev alias and depend on ~3.0.0 of each other in the composer.json. The loose bundles should update automatically, but without a stable tag they will not function due to the stable stability settings. All existing projects will continue to work since they depend on 2.3.*
  • Cleanup
  • Release 3.0.0
  • Merge the migration branch for the standard edition

Contributing

We no longer want hundreds of branches, they mess up packagist and it just looks messy. Everyone (also the core committers from Kunstmaan) will be required to fork and send pull request from there. We need to work out if we can bring ourself to do this with discipline or that we need to work with special roles in github.

Has-space on tabs

When there's not enough space the tabs should only be 'content' and More ▾

Now:
screen shot 2015-01-22 at 17 43 03

Default pageparts: Introtext pp

PagePartBundle:

  • Create introtext-pp (BE)
  • Set default markup introtext-pp (FE)
  • Add default styleguide markup in resources/ui/scss/_introtext-pp.scss

Upgrade jsTree

Todo:

  • Upgrade to new version (http://www.jstree.com)
  • Use iconfont-icons instead of svg's
  • Add lazyloading (much quicker for big trees)
  • Add state plugin (looks like a nice speedup)
  • Add context menu (looks useful)

Create a duplicate of a page

It would be nice if we could create a duplicate of a page (at the same location in the page tree as the page being duplicated). This would be useful for pages that share pageparts, but only need some of them to be altered.

Create a validator for Media in the backend

It would be nice if there was a way to add validation to media fields in the backend, so administrators can only select media that matches the criteria specified in the validator (ie. min/max image dimensions for images, mime types for files, ...).

database error when launch app/console

After I run this command:
php composer.phar create-project kunstmaan/bundles-standard-edition path/to/install -s dev

I receive the following exception:
An exception occured in driver: SQLSTATE[42000] [1049] Unknown database 'database_name'

At the moment as a workaround I create the database manually (not from app/console) and then I follow the installation instructions starting from app/console schema:create

`composer install` reports `Ambiguous class resolution` warnings

composer install    
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Nothing to install or update
Generating autoload files
Warning: Ambiguous class resolution, "Google_AccountsServiceResource" was found in both "/[...]/www/km-poc/vendor/alchemy/google-plus-api-client/src/contrib/Google_AdexchangebuyerService.php" and "/[...]/www/km-poc/vendor/alchemy/google-plus-api-client/src/contrib/Google_AdsensehostService.php", the first will be used.

I guess I will get issues when wanting to use one of those class.

Default pageparts: Line pp

PagePartBundle:

  • Update markup (remove unnecessary / tag as in <hr>)
  • Add default styleguide markup in resources/ui/scss/_line-pp.scss*

Prevent double click on actions (ie. Save button)

If you double click on the save button, pageparts will be saved twice, so we should be able to disable the link after it was clicked (preferably by adding an extra attribute depending on the action).

Seperate AdaptFormEvent for admin forms and node forms

There is already an AdaptFormEvent in the nodebundle, but we need a seperate AdaptFormEvent for simple forms in the AdminBundle. This way for example we can listen to the AdaptFormEvent of the AdminBundle to support pageparts that are not linked to nodes.

Allow multiple views in page parts

New Feature Suggestion:

Add a preferred view field and allowedViews function to AbstractPagePart.
This will allow AbstractPageParts to have multiple views.

The following is an example abstract subclass of AbstractPagePart that I'm currently using.

abstract class AbstractMultiViewPagePart extends AbstractPagePart {

    /**
     * @ORM\Column(type="string", name="preferred_view", nullable=true)
     */
    protected $preferredView;

    /**
     * Set preferredView
     *
     * @param string $preferredView
     * @return ImagePagePart
     */
    public function setPreferredView($preferredView)
    {
        $this->preferredView = $preferredView;

        return $this;
    }

    /**
     * Get preferedView
     *
     * @return string
     */
    public function getPreferredView()
    {
        return $this->preferredView;
    }

    public function getView(PageInterface $page = null, $view = null)
    {
        if($view != null) {
            $_view = $view;
        }
        else if($this->preferredView != null) {
            $_view = $this->preferredView;
        }
        else {
            $_view = $this->getDefaultView();
        }
        return $_view;
    }

    /**
     * Returns an array of available views.
     * @return array
     */
    abstract public function getAvailableViews();
} 

Subclasses implement getAvailableViews like this:

public function getAvailableViews() {
    $views = array(
        'AcmeBundle:PageParts/ConcretePagePart:view.html.twig' => 'Default',
        'AcmeBundle:PageParts/ConcretePagePart:summary.html.twig' => 'Summary',
        'AcmeBundle:PageParts/ConcretePagePart:expanded.html.twig' => 'Expanded'
    );
    return $views;
}

Then the AdminType would have this:

    $builder->add('preferredView', 'choice', array(
        'required' => false,
        'choices' => (new ConcretePagePart())->getAvailableViews()
    ));

I have also overridden:

KunstmaanPagePartBundle/views/PagePartTwigExtension/widget.html.twig

{% for box in pageparts %}
    {% set resource = box %}
    {% if view is defined and box.getView(page, view) is defined %}
        {% include box.getView(page, view) %}
    {% else %}
        {% include box.getView(page) %}
    {% endif %}
{% endfor %}

This allows the view to be manually overridden when you're rendering a page part direct from a template.

Default pageparts: Buttons pp

PagePartBundle:

  • Create buttons-pp (BE)
  • Set default markup buttons-pp (FE)
  • Add default styleguide markup in resources/ui/scss/_buttons-pp.scss

500 Error when trying to add Redirects

I get a server 500 error when trying to add redirects. This is a fresh install of KunstmaanBundlesCMS and I followed the install guide without problem.

I added a redirect directly to the database and I can edit that one without problem. This only occurs on trying to add new ones

Here is the stack trace:
[1] Symfony\Component\Debug\Exception\ContextErrorException: Warning: Illegal offset type in isset or empty
at n/a
in /Users/iknowfoobar/Sites/Kunstmaan/kunstmaan/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php line 185

at Symfony\Component\Debug\ErrorHandler->handleError('2', 'Illegal offset type in isset or empty', '/Users/iknowfoobar/Sites/Kunstmaan/kunstmaan/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php', '185', array('className' => object(Request)))
    in /Users/iknowfoobar/Sites/Kunstmaan/kunstmaan/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php line 185

at Doctrine\Common\Persistence\Mapping\AbstractClassMetadataFactory->getMetadataFor(object(Request))
    in /Users/iknowfoobar/Sites/Kunstmaan/kunstmaan/vendor/doctrine/orm/lib/Doctrine/ORM/EntityManager.php line 265

at Doctrine\ORM\EntityManager->getClassMetadata(object(Request))
    in /Users/iknowfoobar/Sites/Kunstmaan/kunstmaan/vendor/kunstmaan/bundles-cms/src/Kunstmaan/AdminListBundle/Controller/AdminListController.php line 106

at Kunstmaan\AdminListBundle\Controller\AdminListController->doAddAction(object(RedirectAdminListConfigurator), object(Request))
    in /Users/iknowfoobar/Sites/Kunstmaan/kunstmaan/vendor/kunstmaan/bundles-cms/src/Kunstmaan/RedirectBundle/Controller/RedirectAdminListController.php line 53

at Kunstmaan\RedirectBundle\Controller\RedirectAdminListController->addAction(object(Request))
    in  line 

at call_user_func_array(array(object(RedirectAdminListController), 'addAction'), array(object(Request)))
    in /Users/iknowfoobar/Sites/Kunstmaan/kunstmaan/app/bootstrap.php.cache line 3020

at Symfony\Component\HttpKernel\HttpKernel->handleRaw(object(Request), '1')
    in /Users/iknowfoobar/Sites/Kunstmaan/kunstmaan/app/bootstrap.php.cache line 2982

at Symfony\Component\HttpKernel\HttpKernel->handle(object(Request), '1', true)
    in /Users/iknowfoobar/Sites/Kunstmaan/kunstmaan/app/bootstrap.php.cache line 3131

at Symfony\Component\HttpKernel\DependencyInjection\ContainerAwareHttpKernel->handle(object(Request), '1', true)
    in /Users/iknowfoobar/Sites/Kunstmaan/kunstmaan/app/bootstrap.php.cache line 2376

at Symfony\Component\HttpKernel\Kernel->handle(object(Request))
    in /Users/iknowfoobar/Sites/Kunstmaan/kunstmaan/web/app_dev.php line 28

Default pageparts: Image pp

MediaPagePartBundle:

  • Change <div class="image-pp"> to <figure class="image-pp">
  • Add possibility to add caption (<figcaption>)
  • Add possibility to choose positioning (left - right - center - full-width)
  • Add responsive behaviour (src-set)
    • Add one big image
    • src-set done by big, medium, small imagine-filter (no upscaling!)
    • sizes="100vw"
  • Add default styleguide markup in resources/ui/scss/_image-pp.scss
  • Fix the url issue when running from a sub-directory. (see issue/pr #126)

Broken AdminList Generation

I'm running the latest dev-master version of the bundles, all is going well, until I generate an entity with an accompanying adminlist.

The generated MyEntityAdminListController::addAction doesn't pass the correct number of arguments to the parent (AdminListController):

/**
     * The add action
     *
     * @Route("/add", name="mybundle_admin_myentity_add")
     * @Method({"GET", "POST"})
     * @return array
     */
    public function addAction(Request $request)
    {
        return parent::doAddAction($this->getAdminListConfigurator(), $request);
    }

While the parent method definition is:

/**
     * Creates and processes the form to add a new Entity
     *
     * @param AbstractAdminListConfigurator $configurator The adminlist configurator
     * @param string                        $type         The type to add
     *
     * @return array
     */
    protected function doAddAction(AbstractAdminListConfigurator $configurator, $type = null, Request $request = null)
    {

So the addition of a new entity fails at line ~109 of AdminListController.php, because it's attempting to load class metadata for Request ;)

I've looked, and it seems that the method definition changed between 2.3.17 and 3.0, but I'm unsure as to why.

For now, I've just altered my generated controller to pass null as the 2nd argument, and the Request as the third.

The change is potentially in GeneratorBundle/Resources/skeleton/adminlist/Controller/EntityAdminListController.php; but again, I'm unsure of why it was added. (If I'm generating an adminlist for a particular entity, why would I want to pass a different type to the edit action?)

Admin forms do not make use of services, cannot be overridden

Currently, the admin forms do not utilize the Symfony2 form service system; in NodeAdminController, for example:

$menuWidget->addType('menunode', new NodeMenuTabAdminType(), $node);

if we want to override that form, we need to override this entire controller action, and change that line to point to a different formType. This is even further complicated by the fact that this action calls on private controller methods, which aren't inherited when extending the class.

If the admin form types were registered as services, with the controller accessing the service, rather than the formType itself:

$menuWidget->addType('menunode', $this->get('kunstmaan_node.form.type.node_menu_tab_admin'), $node);

We could then use the Symfony service system to override these forms as needed.

I attempted to fork the bundle and make this change myself, however I then realized a large number of these classes are defined in entity getDefaultAdminType() methods - across multiple Kunstmaan bundles - which don't have access to the service container, making the scope of that change much larger than simply registering some services and altering a few lines of controller code.

Why does SiteMapBundle requires FOSUserBundle?

We were looking if the SitemapBundle could be used in the CMF project and discovered it requires fosuserbundle. However, I can't find any prove that it is required for the bundle...

Can somebody please explain this requirement?

Default pageparts: Video pp

MediaPagePartBundle:

  • Update markup to work with video-link (link with image that on click loads the video in a overlay)
    • Open video in overlay instead of inline (discussed with IA)
    • Be careful with breaking changes (Ask Wim)
    • Prevent dubble click to play on modal
  • If there is no placeholder image, then a fallback should be provided with the placeholder from Youtube/video
  • Change <div class="video-pp"'> to <figure class="video-pp">
  • Add possibility to add caption to the video <figcaption>
  • Add default styleguide markup in resources/ui/scss/_video-pp.scss

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.