Skip to content

Commit

Permalink
Merge pull request #9 from ChrisB9/feature/pagebuilder-for-objects
Browse files Browse the repository at this point in the history
Add pagebuilder as datatype for objects
  • Loading branch information
ChrisB9 authored Oct 27, 2020
2 parents 1f625da + c0d1b28 commit d9a75da
Show file tree
Hide file tree
Showing 14 changed files with 3,106 additions and 6 deletions.
4 changes: 2 additions & 2 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
"grapesjs"
],
"license": "MIT",
"version": "1.0.5",
"version": "1.0.6",
"authors": [
{
"name": "Christian Rodriguez Benthake",
Expand All @@ -30,7 +30,7 @@
"extra": {
"pimcore": {
"bundles": [
"cbenco\\PimcorePageBuilderBundle"
"cbenco\\pimcore-pagebuilder-bundle"
]
}
}
Expand Down
179 changes: 179 additions & 0 deletions src/PageBuilder/ClassDefinition.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,179 @@
<?php

declare(strict_types=1);

namespace cbenco\PimcorePageBuilderBundle\PageBuilder;

use Pimcore\Model\DataObject;
use Pimcore\Model\DataObject\ClassDefinition\Data;
use Pimcore\Model\DataObject\Concrete;
use Pimcore\Tool\Text;

final class ClassDefinition extends Data implements Data\ResourcePersistenceAwareInterface
{
use DataObject\Traits\SimpleComparisonTrait;
use Data\Extension\ColumnType;
use Data\Extension\QueryColumnType;
use Data\Extension\Text;

/** @var string */
public $fieldtype = 'pagebuilder';

/**
* Type for the generated phpdoc
*
* @var string
*/
public $phpdocType = 'string';

public int $width;
public int $height;
public string $queryColumnType = 'longtext';
public string $columnType = 'longtext';
public string $toolbarConfig = '';
public bool $excludeFromSearchIndex = true;


/**
* @param mixed $data
* @param DataObject\AbstractObject|null $object
* @param array|mixed $params
* @return mixed
*/
public function getDataForEditmode($data, $object = null, $params = [])
{
return $this->getDataForResource($data);
}

/**
* @param mixed $data
* @param DataObject\AbstractObject|null $object
* @param array|mixed $params
* @return mixed
*/
public function getDataFromEditmode($data, $object = null, $params = [])
{
return $data;
}

/**
* @return string
*/
public function getToolbarConfig(): string
{
return $this->toolbarConfig;
}

/**
* @param string $toolbarConfig
*/
public function setToolbarConfig(string $toolbarConfig): void
{
$this->toolbarConfig = $toolbarConfig;
}

/**
* @return bool
*/
public function isExcludeFromSearchIndex(): bool
{
return $this->excludeFromSearchIndex;
}

/**
* @param bool $excludeFromSearchIndex
*
* @return self
*/
public function setExcludeFromSearchIndex(bool $excludeFromSearchIndex)
{
$this->excludeFromSearchIndex = $excludeFromSearchIndex;

return $this;
}

/**
* @param mixed $data
* @param Concrete|null $object
* @param array|mixed $params
* @return mixed
*/
public function getDataForResource($data, $object = null, $params = [])
{
return $data;
}

/**
* @param mixed $data
* @param Concrete|null $object
* @param array|mixed $params
* @return mixed
*/
public function getDataFromResource($data, $object = null, $params = [])
{
return $data;
}

/**
* @return int
*/
public function getHeight(): int
{
return $this->height;
}

/**
* @param mixed $height
*/
public function setHeight($height): void
{
$this->height = (int)$height;
}

/**
* @return int
*/
public function getWidth(): int
{
return $this->width;
}

/**
* Generates a pretty version preview (similar to getVersionPreview) can be either html or
* a image URL. See the https://github.com/pimcore/object-merger bundle documentation for details
*
* @param string|null $data
* @param Concrete|null $object
* @param mixed $params
*
* @return array|string
*/
public function getDiffVersionPreview(?string $data, ?Concrete $object = null, $params = [])
{
if ($data) {
return [
'html' => $data,
'type' => 'html'
];
}
return '';
}

/**
* @param mixed $width
*/
public function setWidth($width): void
{
$this->width = (int)$width;
}

public function getDataForSearchIndex($object, $params = []): string
{
return '';
}

public function isFilterable(): bool
{
return false;
}
}
21 changes: 20 additions & 1 deletion src/PimcoreGrapesJSBundle.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ final class PimcorePageBuilderBundle extends AbstractPimcoreBundle

protected function getComposerPackageName(): string
{
return 'cbenco/PimcorePageBuilderBundle';
return 'cbenco/pimcore-pagebuilder-bundle';
}

public function getEditmodeCssPaths(): array
Expand All @@ -28,6 +28,25 @@ public function getEditmodeCssPaths(): array
];
}

public function getCssPaths(): array
{
return [
self::BUNDLE_PATH . 'css/font-awesome.min.css',
self::BUNDLE_PATH . 'css/grapes.min.css',
self::BUNDLE_PATH . 'grapeseditor.css',
];
}

public function getJsPaths(): array
{
return [
self::BUNDLE_PATH . 'js/grapes.min.js',
self::BUNDLE_PATH . 'grapeseditor.js',
self::BUNDLE_PATH . 'js/pagebuilderDocType.js',
self::BUNDLE_PATH . 'js/pagebuilderObjectTag.js',
];
}

public function getEditmodeJsPaths(): array
{
return [
Expand Down
5 changes: 5 additions & 0 deletions src/Resources/config/pimcore/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,8 @@ pimcore:
tags:
map:
pagebuilder: \cbenco\PimcorePageBuilderBundle\Document\PageBuilderTag
objects:
class_definitions:
data:
map:
pagebuilder: \cbenco\PimcorePageBuilderBundle\PageBuilder\ClassDefinition
1 change: 0 additions & 1 deletion src/Resources/config/services.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,5 @@ services:
public: true

cbenco\PimcorePageBuilderBundle\Document\Areabrick\GrapesEditor:
arguments: ['@logger']
tags:
- {name: pimcore.area.brick, id: grapeseditor}
Binary file not shown.
Loading

0 comments on commit d9a75da

Please sign in to comment.