Open Source Data & Experience Management Platform (PIM, MDM, CDP, DAM, DXP/CMS & Digital Commerce)

Overview

Pimcore - Own the digital World

Pimcore - Open Source Data & Experience Management Platform: PIM, MDM, CDP, DAM, DXP/CMS & Digital Commerce

Packagist Software License Gitter

Contribute

Bug fixes: please create a pull request including a step by step description to reproduce the problem
Contribute features: contact the core-team on our Gitter channel before you start developing
Security vulnerabilities: please use this form

For details, please have a look at our contributing guide.

Supported Versions

Version Supported LTS** CE End of life***
<= 4.x 2017-09-28
5.x 2019-12-09
6.x 2021-06-23
10.4
10.x

** Long-term support is only available as part of our enterprise subscription.
*** Community Edition end of life date, this doesn't affect the commercial LTS offering.

Overview

Technology and Architecture

Key Benefits and Advantages

Data Modelling and UI Design at the same Time

No matter if you're dealing with unstructured web documents or structured data for MDM/PIM, you define the UI design (web documents by a template and structured data with an intuitive graphical editor), Pimcore knows how to persist the data efficiently and optimized for fast access.

🎛 Agnostic and Universal Framework for your Data

Due to the framework approach, Pimcore is very flexible and adapts perfectly to your needs. Built on top of the well-known Symfony Framework you have a solid and modern foundation for your project.

🚀 Extensible and huge Symfony Community

Benefit from all existing Symfony Components and Bundles provided by the community or create your own Bundles to extend your Projects with reusable components.

💎 Your Digital World consolidated in one Platform

No more API, import/export and synchronization hell between MDM/PIM, E-Commerce, DAM, and your Web-CMS. All is working seamlessly together, natively ... this is what Pimcore is built for.

✨️ Modern and Intuitive UI

We love good-looking user interfaces, designed to be efficient for daily use and optimized for a great experience for editors.

Preview and Demo

Data Objects

Pimcore Admin Interface Screenshot PIM/MDM Manage any structured data based on a predefined data model, either manually or automatically via the APIs. Define the structure and attributes of your objects by using the class editor. Manage any data – products (PIM/MDM), categories, customers (CDP), orders (digital commerce), blog articles (DXP/CMS). Data Objects provide the possibility to manage structured data for multiple output channels from a single source. By centralizing data in one place, Pimcore's data objects enable you to achieve better data completeness and data quality, allowing you to create and maintain a consistent, up-to-date customer experience across multiple touchpoints in less time.

Digital Assets

Pimcore Admin Interface Screenshot DAM Assets are the DAM part of Pimcore. Store, manage and organize digital files such as images, videos, PDFs, Word/Excel documents in a folder structure. Preview 200+ file types directly in Pimcore, edit pictures, and enrich files with additional meta-data. Facial recognition for focal points in images and support for VR/360° previews is available. Editors only need to maintain one high-resolution version of a file in the system. Pimcore can automatically generate all required output formats for various channels such as commerce, apps, websites. Of course, including comprehensive user management and version control.

Documents

Pimcore Admin Interface Screenshot CMS The DXP/CMS part of Pimcore for managing unstructured content such as the pages of a website and its navigation. Based on Twig templates, documents render physical HTML/CSS pages and provide the capabilities to manage the presentation of data, exactly how customers will experience it. They can be composed by administrators by arranging predefined layout elements. Pimcore documents provide multilingual and multi-site capabilities for websites, including emails and newsletters. Total frontend flexibility enables a perfect blend of content and commerce. You can also use them to create content for offline channels, such as printed catalogs (web-to-print).

Demo (Community Edition)

Admin-URL (stable): https://demo.pimcore.fun/admin/
Admin-URL (dev): https://10.x-dev.pimcore.fun/admin/
Username: admin
Password: demo

Getting Started

Only 3 commands to start! 😎

COMPOSER_MEMORY_LIMIT=-1 composer create-project pimcore/skeleton ./my-project
cd ./my-project
./vendor/bin/pimcore-install

This will install an empty skeleton application, but we're also offering a demo package for your convenience - of course also with 3 commands 💪 Click here for more installation options and a detailed guide

Copyright and License

Copyright: Pimcore GmbH For licensing details please visit LICENSE.md

Comments
  • Mod_pagespeed incompatibility with latest version 4.2 breaks admin interface

    Mod_pagespeed incompatibility with latest version 4.2 breaks admin interface

    Possible Bug Report

    After upgrading two pimcore installations on two different servers, I got errors in the Pimcore backend. I updated from 4.1.3 to 4.2.0 (stable branch) without errors.

    The frontend keeps working fine but the backend will show the loading image for one second and after that a completely white page. There are no entries in debug or php error log. Firebug shows this: pimcore error

    I thought it'd be a damaged file somewhere and replaced all files with new ones from the pimcore release without success. I guess the update itself has been tested so it might be the configuration of our servers - but the two servers are configured slightly different and both - independent - pimcore installations had the same issue so this might be a bug.

    File permissions are correct, database is okay as far as I can see. Frontend is working.

    opened by Cruiser13 47
  • Pimcore Memory Leak on Importing thousands of Objects

    Pimcore Memory Leak on Importing thousands of Objects

    Based on complexity and data-amount of an Object Class, memory increases heavily on Importing/updating thousands of items. I have an import with around 20k Products, with a lot of informations like classifications, images, relations, etc. Around every 10th product, memory increases about 2MB. So, 20k products means a memory consumption of around:

    100mb base usage (large import file needs to be kept in memory + symfony container) + every 10th item consumes 2 mb = more than 4gb of ram usage.

    To make this easier test-able, I created a new Pimcore installation (latest stable release, 5.2.3). Created a very simple class:

    bildschirmfoto 2018-07-19 um 09 57 40

    And ran imports with different amounts (used PHP7.1):

    Amount | Time | Start Memory Usage | End Memory Usage | Blackfire Report -------- | -----| ---------------------| --------------------| ----------------- 1000 | ~2min | 16mib | 94 mib | https://blackfire.io/profiles/2b2cbe9a-9eba-4de3-ac60-b1515f5db389/graph 10000 | ~21min | 16mib | 734 mib | https://blackfire.io/profiles/e814e0ac-3a0d-4c4e-9e8c-a952883f12e2/graph

    So I guess you can imagine the memory consumption for 20k or more items.

    Command used for importing data:

    <?php
    
    namespace AppBundle\Command;
    
    use Pimcore\Model\DataObject\Service;
    use Pimcore\Model\DataObject\Test;
    use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand;
    use Symfony\Component\Console\Helper\ProgressBar;
    use Symfony\Component\Console\Input\InputArgument;
    use Symfony\Component\Console\Input\InputInterface;
    use Symfony\Component\Console\Output\OutputInterface;
    
    class AppTestCommand extends ContainerAwareCommand
    {
        protected function configure()
        {
            $this
                ->setName('app:test')
                ->addArgument('itemsToCreate', InputArgument::REQUIRED);
        }
    
        protected function execute(InputInterface $input, OutputInterface $output)
        {
            $itemsToCreate = $input->getArgument('itemsToCreate');
    
            $progress = new ProgressBar($output, $itemsToCreate);
            $progress->setFormat(
                '%current%/%max% [%bar%] %percent:3s%% (%elapsed:6s%/%estimated:-6s%) %memory:6s%: %message%'
            );
    
            for ($i = 0; $i < $itemsToCreate; $i++) {
                $progress->setMessage('Create Item with Number '.$i);
    
                $item = new Test();
                $item->setBlub(uniqid());
                $item->setBlub2(uniqid());
                $item->setBlubLocalized(uniqid());
                $item->setKey($i.'-'.uniqid());
                $item->setParent(Service::createFolderByPath('/blub-'.$itemsToCreate.'/'.$i % 100));
                $item->save();
    
                $progress->advance();
            }
        }
    
    }
    

    Wrapping import in a nested transactions brings following results. A bit better but not much.

    Amount | Time | Start Memory Usage | End Memory Usage | Blackfire Report -------- | -----| ---------------------| --------------------| ----------------- 1000 | ~1min | 16mib | 84mib | https://blackfire.io/profiles/2600b39a-b6e3-41b9-9ba3-0ce2142d123d/graph 10000 | ~20min | 16mib | 698mib | https://blackfire.io/profiles/78176e0b-7afe-477d-982c-387a9cc9b3d0/graph

    Command used for nested transactions

    <?php
    
    namespace AppBundle\Command;
    
    use Pimcore\Db;
    use Pimcore\Model\DataObject\Service;
    use Pimcore\Model\DataObject\Test;
    use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand;
    use Symfony\Component\Console\Helper\ProgressBar;
    use Symfony\Component\Console\Input\InputArgument;
    use Symfony\Component\Console\Input\InputInterface;
    use Symfony\Component\Console\Output\OutputInterface;
    
    class AppTestCommand extends ContainerAwareCommand
    {
        protected function configure()
        {
            $this
                ->setName('app:test')
                ->addArgument('itemsToCreate', InputArgument::REQUIRED);
        }
    
        protected function execute(InputInterface $input, OutputInterface $output)
        {
            $itemsToCreate = $input->getArgument('itemsToCreate');
    
            $progress = new ProgressBar($output, $itemsToCreate);
            $progress->setFormat(
                '%current%/%max% [%bar%] %percent:3s%% (%elapsed:6s%/%estimated:-6s%) %memory:6s%: %message%'
            );
    
            Db::get()->beginTransaction();
    
            for ($i = 0; $i < $itemsToCreate; $i++) {
                $progress->setMessage('Create Item with Number '.$i);
    
                $item = new Test();
                $item->setBlub(uniqid());
                $item->setBlub2(uniqid());
                $item->setBlubLocalized(uniqid());
                $item->setKey($i.'-'.uniqid());
                $item->setParent(Service::createFolderByPath('/blub-'.$itemsToCreate.'/'.$i % 100));
                $item->save();
    
                if ($i % 100 === 0) {
                    Db::get()->commit();
                    Db::get()->beginTransaction();
                }
    
                $progress->advance();
            }
    
            Db::get()->commit();
        }
    
    }
    

    TL;DR

    Pimcore uses a lot of memory on persisting a lot of items. I am not sure why and how to optimize. But importing thousands of items in one import is not possible at the moment.

    opened by dpfaffenbauer 46
  • Introduce Javascript Routing

    Introduce Javascript Routing

    • Introduces FOSJS Routing Bundle
    • Replace most of the routes with actual Route Generation
    • Replace the other by adding at least the Base-Path, wasn't sure how to handle those properly
    • Replace all static route uses in PHP and Templates

    This requires precise review and testing. I already tested most parts, but I am pretty sure I missed something.

    Improvement Task 
    opened by dpfaffenbauer 42
  • [Bug]: Cannot view/restore versions of Objects with Classification Stores

    [Bug]: Cannot view/restore versions of Objects with Classification Stores

    Expected behavior

    When clicking on the Versions tab on DataObjects it should be possible to view and restore from versions created prior to Pimcore X which contains Classification Stores.

    Actual behavior

    [2021-10-20T09:56:31.636336+02:00] php.CRITICAL: Uncaught Error: 
    Cannot assign __PHP_Incomplete_Class to property Pimcore\Model\DataObject\Classificationstore::$object of type ?Pimcore\Model\DataObject\Concrete {"exception":"[object] (TypeError(code: 0): 
    Cannot assign __PHP_Incomplete_Class to property Pimcore\\Model\\DataObject\\Classificationstore::$object of type ?Pimcore\\Model\\DataObject\\Concrete at /var/www/pimcore/vendor/pimcore/pimcore/lib/Tool/Serialize.php:43)"} []
    [2021-10-20T09:56:31.636655+02:00] request.CRITICAL: Uncaught PHP Exception TypeError: 
    "Cannot assign __PHP_Incomplete_Class to property Pimcore\Model\DataObject\Classificationstore::$object of type ?Pimcore\Model\DataObject\Concrete" at /var/www/pimcore/vendor/pimcore/pimcore/lib/Tool/Serialize.php line 43 {"exception":"[object] (TypeError(code: 0): 
    Cannot assign __PHP_Incomplete_Class to property Pimcore\\Model\\DataObject\\Classificationstore::$object of type ?Pimcore\\Model\\DataObject\\Concrete at /var/www/pimcore/vendor/pimcore/pimcore/lib/Tool/Serialize.php:43)"} []
    
    

    image

    Steps to reproduce

    Save a version in Pimcore 6.9.6 Upgrade to Pimcore 10.1+ Try to restore the object

    edit example version file (renamed with .txt to allow upload here on Github) 255796.txt

    Bug 
    opened by NiklasBr 36
  • [Bug]: Domain input for URL Slug is hidden since Pimcore X

    [Bug]: Domain input for URL Slug is hidden since Pimcore X

    Expected behavior

    All fields should be visible in the Ext JS interface.

    Actual behavior

    The domain-specific URL Slug field (and its button is hidden: image image

    By manually adjusting the height of the elements in the DOM it is possible to show that both fields are available, just hidden behind some inline height attributes: image

    Steps to reproduce

    Putting a URL Slug in a fieldset which in turn is in a Localized fields

    image

    Bug 
    opened by NiklasBr 36
  • Store thumbnails for each asset in folder -> prevent looping through all thumbnails for assets in same folder

    Store thumbnails for each asset in folder -> prevent looping through all thumbnails for assets in same folder

    When you update an asset file (also when you update a new one), all thumbnails of this asset get deleted, see https://github.com/pimcore/pimcore/blob/6d6774a139e7cadd3ed446ef300c50523838a4c8/models/Asset/Image.php#L52

    This calls https://github.com/pimcore/pimcore/blob/6d6774a139e7cadd3ed446ef300c50523838a4c8/models/Asset.php#L1987-L2006 The folder structure for thumbnail storage is currently: <asset storage>/<path to asset>/image-thumb__<asset id>__<thumbnail name>/<asset filename> To find all thumbnails which belong to the just saved asset, above function needs to loop through all the thumbnail files in <asset storage>/<path to asset>/ and filter for those whose path contains image-thumb__<asset id>__.

    Depending on the asset folder structure and storage type this may need a lot of time. For example when you have 50000 images in one asset folder and you have 20 thumbnail definitions (not regarding the automatically or dynamically created thumbnail definitions, e.g. tree preview or custom size download), this folder will contain up to 1M files. In addition when the thumbnails are not stored locally but on a cloud storage provider, the problem gets even worse. In our case uploading one asset to such a folder needed several minutes to complete.

    This PR changes the folder structure for storing thumbnails to <asset storage>/<path to asset>/image-thumb__<asset id>/<thumbnail name>/<asset filename>. This way in case of updating an asset file, we only need to delete the directory <asset storage>/<path to asset>/image-thumb__<asset id>. No loop necessary anymore.

    Improvement 
    opened by BlackbitDevs 33
  • [Data Objects] Save default values to versions

    [Data Objects] Save default values to versions

    With #5594 saving field's default value to database was introduced. The problem is that these default values do not get saved to versions currently. This is especially bad because when you publish this version, you will again have null in the respective fields.

    Steps to reproduce:

    1. Create class with input field abc, default value test
    2. Create object of above class and save it
    3. In the database tables now there is test in column abc
    4. Go to versions tab, select jsut saved version -> there abc is empty
    5. Restore the just saved version -> The value is now also null in the database column -> this is really bad because you can not restore the exact state the object had at this point (what is the main purpose of versioning beside tracking changes)

    With this PR the default values are also saved to the database (and also to the PHP object being saved - which is important, if you have further operations with it after saving).

    Improvement 
    opened by BlackbitDevs 33
  • [Objects] Getter / Setter for reverse many-to-many relations

    [Objects] Getter / Setter for reverse many-to-many relations

    This PR adds getters and setters for reverse many-to-many relations. For example when you have: Product

    • categories (many-to-many-object-relation)

    Category

    • products (reverse many-to-many relation)
    $products = $category->getProducts();
    $products[] = Product::getById(123);
    $category->setProducts($products);
    $category->save();
    

    Partly resolves #3920

    opened by BlackbitDevs 33
  • Versioning performance with a lot of relationships

    Versioning performance with a lot of relationships

    Hi,

    It seems the recursive DeepCopy used when saving a new version has a serious performance impact when you have a lot of relationships. The following is a blackfire profile for a batch edit of 25 objects:

    https://blackfire.io/profiles/9902f36c-0857-4511-ac3a-54bf25e10a29/graph

    When I make a shallow copy it's significantly faster. Is there any reason for traversing all of the related objects? Of course direct relationships have to be included because they are shown in the version tab but any deeper than this is not included in the version data anyway.

    Improvement 
    opened by belendel 30
  • [Admin UI] Unlock elements when browser window gets closed

    [Admin UI] Unlock elements when browser window gets closed

    When an element gets opened in Pimcore admin UI, it gets locked so a message gets shown to other users that this element is already open.

    When the element tabs get closed, those locks get released.

    But when a user simply closes the browser, the locks do not get released. On the one hand this causes the funny effect that you get messages that the current user himself has the object currently open (even when using only one browser window). And on the other hand this irritates other users because they may not dare to change anything although the other user actually already closed his browser (and with it all the elements).

    Improvement 
    opened by BlackbitDevs 28
  • Fatal with caching on localized fields caused by ElementDescriptor

    Fatal with caching on localized fields caused by ElementDescriptor

    This is caused by the CoreHandler in the latest version. If i revert it to the state before the error is gone. I think it relates to this: https://github.com/pimcore/pimcore/issues/7039

    grafik

    Bug 
    opened by morrisstrangfeld 27
  • [Bug]: Tabs don't automatically switch to the currently selected object

    [Bug]: Tabs don't automatically switch to the currently selected object

    Expected behavior

    If we have a lot of tabs open (more than fits on the screen), when the next tab is opened, they move to the currently selected object.

    Actual behavior

    If we have a lot of tabs open (more than fits on the screen), when we open another tab, we have to move the tabs yourself using the arrow.

    Steps to reproduce

    Open a lot of tabs (more than fits on the screen) and then open next and next tab.

    Bug 
    opened by judip 0
  • [Bug]: Mime type error when uploading a new image in ImageGallery object

    [Bug]: Mime type error when uploading a new image in ImageGallery object

    Expected behavior

    Upload new image at imageGallery directly.

    Actual behavior

    Pimcore throws an error:

    {"success":false,"message":"Mime type does not match with asset type: hotspotimage"}

    Steps to reproduce

    Add a new element in object imageGallery. Click on Hamburger-Menu and upload a new image. This happens on official pimcore demo site, too.

    Bug 
    opened by Schubie 0
  • Update 75_Reverse_Object_Relation_Type.md

    Update 75_Reverse_Object_Relation_Type.md

    Changes in this pull request

    Resolves #14001

    Additional info

    Just a quick edit, didn't checked if there are any other new features (had no time)

    Bug 
    opened by hethehe 4
  • [Docs]: Reverse Object Relation Type | Wrong / unclear documentation

    [Docs]: Reverse Object Relation Type | Wrong / unclear documentation

    Expected behavior

    Documentation should define why the descriped way is the "best way".

    Actual behavior

    At least for me it's unclear why this is the best way.

    Steps to reproduce

    https://pimcore.com/docs/pimcore/current/Development_Documentation/Objects/Object_Classes/Data_Types/Reverse_Object_Relation_Type.html#page_Working-with-PHP-API

    Why do we have to use:

    $def = $object->getClass()->getFieldDefinition("myNonOwnerObjectField");
    $refKey = $def->getOwnerFieldName();
    $refId = $def->getOwnerClassId();
    $nonOwnerRelations = $object->getRelationData($refKey, false, $refId);
    

    which returns an array with the object id's instead of

    $object->getMyNonOwnerObjectField()
    

    which returns an array with the objects?

    Bug 
    opened by hethehe 1
  • Set more specific array types

    Set more specific array types

    Fixes PhpStan level 6 errors:

    • Property * type has no value type specified in iterable type array.
    • Method * return type has no value type specified in iterable type array.
    • Method * has parameter * with no value type specified in iterable type array.
    Bug 
    opened by blankse 1
Releases(v11.0.0-ALPHA2)
  • v11.0.0-ALPHA2(Jan 4, 2023)

    What's Changed

    • [Task] Substitute method exists with interface check in field definitions by @Corepex in https://github.com/pimcore/pimcore/pull/13846
    • Logout from custom firewall always deletes complete session by @JHeimbach in https://github.com/pimcore/pimcore/pull/13825
    • [Task] Enabled $param parameter for classSaved method in classSavedInterface by @Corepex in https://github.com/pimcore/pimcore/pull/13857
    • PhpStan: Remove ignored error pattern from baseline file by @blankse in https://github.com/pimcore/pimcore/pull/13870
    • Further type fixes by @fashxp in https://github.com/pimcore/pimcore/pull/13856
    • [Bug][Pimcore 11] [Assets] Grid metadata batch edit all does not work by @fashxp in https://github.com/pimcore/pimcore/pull/13879
    • Fix: Definition::isWritable(): Return value must be of type bool, string returned by @blankse in https://github.com/pimcore/pimcore/pull/13884
    • Unit::setBaseunit() must allow string and null by @blankse in https://github.com/pimcore/pimcore/pull/13882
    • Translation::getByKeyLocalized(): Remove unnecessary func_get_args() by @blankse in https://github.com/pimcore/pimcore/pull/13845
    • Fix: Do not cast resources to string by @mattamon in https://github.com/pimcore/pimcore/pull/13849
    • [Improvement]: \Pimcore\Bundle\AdminBundle\GDPR\DataProvider\SentMail… by @mcop1 in https://github.com/pimcore/pimcore/pull/13836
    • User::roles should be an array of integers by @blankse in https://github.com/pimcore/pimcore/pull/13850
    • Simplify DirtyIndicatorTrait by @blankse in https://github.com/pimcore/pimcore/pull/13744
    • Fix preGetData missing language param for Data\Wysiwyg by @jremmurd in https://github.com/pimcore/pimcore/pull/13837
    • Site: getBy* methods shouldn't return string by @blankse in https://github.com/pimcore/pimcore/pull/13847
    • Use Required attributes instead of annotations by @blankse in https://github.com/pimcore/pimcore/pull/13885
    • Type fixes by @fashxp in https://github.com/pimcore/pimcore/pull/13877
    • User::twoFactorAuthentication attribute should be null by default by @blankse in https://github.com/pimcore/pimcore/pull/13848
    • [Pimcore 11] Improve version checks & Service::getVersionDependentDatabaseColumnName by @dvesh3 in https://github.com/pimcore/pimcore/pull/13924
    • [Tags] Enhance tag UI by @BlackbitDevs in https://github.com/pimcore/pimcore/pull/13844
    • [Improvement]: Prompt a confirmation message when doing a batch modification by @SamyMP in https://github.com/pimcore/pimcore/pull/13833
    • minor doc fixes by @fashxp in https://github.com/pimcore/pimcore/pull/13929
    • [Bug]: AdvancedManyToMany Document key quoted twice and small tweak by @kingjia90 in https://github.com/pimcore/pimcore/pull/13926
    • Refactor Relation::getPhpDocClassString() by @jdreesen in https://github.com/pimcore/pimcore/pull/13934
    • 12517 move glossary to bundle by @mattamon in https://github.com/pimcore/pimcore/pull/13811
    • Fix cleanup via regexes in Service::getValidKey() by @jdreesen in https://github.com/pimcore/pimcore/pull/13933
    • [Task] Remove adminer as Database Explorer by @kingjia90 in https://github.com/pimcore/pimcore/pull/13921
    • [DataObject\Document] getChildren & getSiblings shouldn't load the listing by @dvesh3 in https://github.com/pimcore/pimcore/pull/13899
    • [Improvement]: Change default behavior of fallback documents by @kingjia90 in https://github.com/pimcore/pimcore/pull/13919
    • Fix: Version in md-files by @robertSt7 in https://github.com/pimcore/pimcore/pull/13964
    • Cleanup misplaced annotations by @jdreesen in https://github.com/pimcore/pimcore/pull/13968
    • Deprecate Parallelization::configureParallelization & using p shortcut on parallelized commands by @mattamon in https://github.com/pimcore/pimcore/pull/13938
    • 13724 console parallelization by @mattamon in https://github.com/pimcore/pimcore/pull/13790
    • [Task] Changing js class namespace, routing prefix and routing names by @mattamon in https://github.com/pimcore/pimcore/pull/13959

    Full Changelog: https://github.com/pimcore/pimcore/compare/v11.0.0-ALPHA1...v11.0.0-ALPHA2

    Source code(tar.gz)
    Source code(zip)
  • v10.5.14(Jan 4, 2023)

  • v10.5.13(Dec 21, 2022)

  • v11.0.0-ALPHA1(Dec 19, 2022)

    Changelog: https://github.com/pimcore/pimcore/tree/baa986dba542e6eb6145ab049fe71ceeaad0cc3f/doc/Development_Documentation/23_Installation_and_Upgrade/09_Upgrade_Notes#1100

    Source code(tar.gz)
    Source code(zip)
  • v10.5.12(Dec 7, 2022)

  • v10.5.11(Nov 23, 2022)

  • v10.5.10(Nov 9, 2022)

  • v10.5.9(Oct 27, 2022)

  • v10.5.8(Oct 12, 2022)

  • v10.5.7(Sep 28, 2022)

  • v10.5.6(Sep 15, 2022)

  • v10.5.5(Sep 2, 2022)

  • v10.5.4(Aug 31, 2022)

  • v10.5.3(Aug 17, 2022)

  • v10.5.2(Aug 4, 2022)

  • v10.5.1(Aug 3, 2022)

  • v10.5.0(Jul 20, 2022)

  • v10.4.6(Jul 20, 2022)

  • v10.4.5(Jul 6, 2022)

  • v10.4.4(Jun 22, 2022)

  • v10.4.3(Jun 8, 2022)

  • v10.4.2(May 25, 2022)

  • v10.4.1(May 11, 2022)

  • v10.3.7(May 11, 2022)

  • v10.4.0(Apr 27, 2022)

  • v10.3.6(Apr 27, 2022)

  • v10.3.4(Mar 30, 2022)

  • v10.3.3(Mar 16, 2022)

  • v10.3.2(Mar 2, 2022)

Owner
Pimcore
Creator of the Pimcore Platform
Pimcore
Nuber is an open source container management platform it provides a front end to manage your own cloud infrastructure, using Linux Containers virtualization technology

Nuber is an open source container management platform it provides a front end to manage your own cloud infrastructure, using Linux Containers virtualization technology

null 33 Dec 14, 2022
MajorDoMo is an open-source DIY smarthome automation platform aimed to be used in multi-protocol and multi-services environment.

MajorDoMo (Major Domestic Module) is an open-source DIY smarthome automation platform aimed to be used in multi-protocol and multi-services environment. It is based on web-technologies stack and ready to be delivered to any modern device. It is very flexible in configuration with OOP paradigm used to set up automation rules and scripts. This platform can be installed on almost any personal computer running Windows or Linux OS.

Sergei Jeihala 369 Dec 30, 2022
Apache OpenWhisk is an open source serverless cloud platform

OpenWhisk OpenWhisk is a serverless functions platform for building cloud applications. OpenWhisk offers a rich programming model for creating serverl

The Apache Software Foundation 5.9k Jan 8, 2023
Moodle - the world's open source learning platform

.-..-. _____ | || | /____/-.---_ .---. .---. .-.| || | .---. | | _ _ |/ _ \/ _ \/ _ || |/ __ \ * | | |

Moodle Development 4.5k Jan 1, 2023
Iran decoration platform is an open source Php web application where you can find your job as a freelancer working in people home in decoration positions and others.

Iran-Decoration Platform Iran decoration platform is an open source Php web application where you can find your job as a freelancer working in people

AmirHossein Mohammadi 8 Dec 14, 2022
A library that improve your WordPress development experience. 🚀

UYCore WordPress The main idea of the UYCore WordPress library is to decrease development time and have enjoyed the development process. The UYCore li

Uladzislau Yermakou 5 Jul 7, 2022
This is a project demonstrates how to improve authoring experience Matrix Façades

About nystudio107/matrixfacades This is a project demonstrates how to improve authoring experience Matrix Façades Using nystudio107/matrixfacades Init

nystudio107 3 Aug 16, 2022
Il était une fois un dev est une plateforme proposant une nouvelle expérience d'apprentissage

Il était une fois un dev - Domaine métier Présentation Il était une fois un dev est une plateforme proposant une nouvelle expérience d'apprentissage.

Incentive factory 7 Sep 21, 2022
A Tinder-like experience for Plex Watchlist: swipe and match with another person and find the movie you're gonna watch tonight.

Plex Finder This app's goal is to help choose a film to watch when neither you nor your SO/friend/roommate/whatever is any good at choosing anything.

Guillaume Hartemann-Piollet 3 Aug 13, 2022
Jéssica Paula 7 Aug 12, 2022
A PHP library to read and validate EU Digital COVID Certificates

CovPassCheck PHP A PHP library to read and validate EU Digital COVID Certificates. Install composer require stwon/covpasscheck-php Usage Currently, th

Studentenwerk OstNiedersachsen 6 Feb 7, 2022
Xero - a digital currency that allows instant payments to anyone, anywhere

Xeros is a digital currency that allows instant payments to anyone, anywhere. Xeros has been written completely in PHP and mostly follows the technical design of Bitcoin. Xeros uses P2P technology to operate with no central server.

Kladskull 79 Dec 26, 2022
API de automação para assinatura digital da plataforma CLICKSIGN

API PARA ASSINATURA DIGITAL COM PHP API de automação para assinatura digital da plataforma CLICKSIGN usando PHP API básica, para mais funcionalidades

null 5 Aug 13, 2022
Friendly open source CMS forged on Codeigniter 3. FI v1.x uses the old lite theme and all modules.

ForgeIgniter v1.x - CI-3.x Friendly open source CMS forged on Codeigniter 3 This version is now discontinued, please check version 2 or 3 for updates.

ForgeIgniter 1 Jan 28, 2022
SuiteCRM is the award-winning open-source, enterprise-ready Customer Relationship Management (CRM) software application.

SuiteCRM is the award-winning open-source, enterprise-ready Customer Relationship Management (CRM) software application.

SalesAgility 111 Dec 21, 2022
Admidio is a free open source user management system for websites of organizations and groups. The system has a flexible role model so that it’s possible to reflect the structure and permissions of your organization.

Admidio Admidio is a free open source user management system for websites of organizations and groups. The system has a flexible role model so that it

Admidio 212 Dec 30, 2022
Orangescrum is a simple yet powerful free and open source project management software that helps team to organize their tasks, projects and deliver more.

Free, open source Project Management software Introduction Orangescrum is the simple yet powerful free and open source project management software tha

Orangescrum 110 Dec 30, 2022
QaraTMS is open source test case, test suites, test plans and test runs management tool.

QaraTMS - Open Source Test Management System QaraTMS is open source test management software for managing test suites, test cases, test plans, test ru

Alex H 29 Dec 22, 2022