<?php
/**
* Pimcore
*
* This source file is available under following license:
* - Pimcore Commercial License (PCL)
*
* @copyright Copyright (c) Pimcore GmbH (http://www.pimcore.org)
* @license http://www.pimcore.org/license PCL
*/
namespace Pimcore\Bundle\HeadlessDocumentsBundle;
use Pimcore\Bundle\AdminBundle\PimcoreAdminBundle;
use Pimcore\Bundle\EnterpriseSubscriptionToolsBundle\Bundle\EnterpriseBundleInterface;
use Pimcore\Bundle\EnterpriseSubscriptionToolsBundle\PimcoreEnterpriseSubscriptionToolsBundle;
use Pimcore\Bundle\HeadlessDocumentsBundle\DependencyInjection\Compiler\RegisterLayoutPass;
use Pimcore\Extension\Bundle\AbstractPimcoreBundle;
use Pimcore\Extension\Bundle\Installer\InstallerInterface;
use Pimcore\Extension\Bundle\PimcoreBundleAdminClassicInterface;
use Pimcore\Extension\Bundle\Traits\BundleAdminClassicTrait;
use Pimcore\Extension\Bundle\Traits\PackageVersionTrait;
use Pimcore\HttpKernel\Bundle\DependentBundleInterface;
use Pimcore\HttpKernel\BundleCollection\BundleCollection;
use Symfony\Component\DependencyInjection\ContainerBuilder;
class PimcoreHeadlessDocumentsBundle extends AbstractPimcoreBundle implements DependentBundleInterface, EnterpriseBundleInterface, PimcoreBundleAdminClassicInterface
{
use BundleAdminClassicTrait;
use PackageVersionTrait;
public const CONFIG_NAME = 'pimcore_headless_documents_config';
public function getDescription(): string
{
return 'Pimcore Headless Documents bundle';
}
public static function registerDependentBundles(BundleCollection $collection): void
{
$collection->addBundle(new PimcoreEnterpriseSubscriptionToolsBundle());
$collection->addBundle(new PimcoreAdminBundle(), 60);
}
public function getBundleLicenseId(): string
{
return 'HDC';
}
/**
* @inheritDoc
*/
public function build(ContainerBuilder $container)
{
$container
->addCompilerPass(new RegisterLayoutPass());
}
/**
* {@inheritdoc}
*/
protected function getComposerPackageName(): string
{
return 'pimcore/headless-documents';
}
public function getCssPaths(): array
{
return [
'/bundles/pimcoreheadlessdocuments/css/backend.css'
];
}
public function getEditmodeCssPaths(): array
{
return [
'/bundles/pimcoreheadlessdocuments/css/editmode.css'
];
}
public function getJsPaths(): array
{
return [
'/bundles/pimcoreheadlessdocuments/js/pimcore/startup.js',
'/bundles/pimcoreheadlessdocuments/js/pimcore/events.js',
'/bundles/pimcoreheadlessdocuments/js/pimcore/document/headlessdocuments/settings.js',
'/bundles/pimcoreheadlessdocuments/js/pimcore/document/headlessdocument.js',
'/bundles/pimcoreheadlessdocuments/js/pimcore/headless/abstractItem.js',
'/bundles/pimcoreheadlessdocuments/js/pimcore/headless/templateConfig.js',
'/bundles/pimcoreheadlessdocuments/js/pimcore/headless/templateConfigs/item.js',
'/bundles/pimcoreheadlessdocuments/js/pimcore/headless/brickConfig.js',
'/bundles/pimcoreheadlessdocuments/js/pimcore/headless/brickConfigs/item.js'
];
}
public function getEditmodeJsPaths(): array
{
return [
'/bundles/pimcoreheadlessdocuments/js/pimcore/document/editables/headlessareablock.js',
];
}
public function getInstaller(): ?InstallerInterface
{
return $this->container->get(Installer::class);
}
}