Skip to content
Code-Schnipsel Gruppen Projekte
Commit 1da2c4d3 erstellt von Henning Leutz's avatar Henning Leutz :martial_arts_uniform:
Dateien durchsuchen

Merge branch 'feat-quiqqer-v2' into 'dev'

feat!: quiqqer v2

See merge request !24
Übergeordnete 5aa27bc6 da2c9f07
No related branches found
No related tags found
3 Merge Requests!26fix(Accordion): consider given entries parameter,!25fix(Accordion): consider given entries parameter,!24feat!: quiqqer v2
Pipeline #7211 bestanden mit Phase
in 8 Sekunden
werden angezeigt mit 124 Ergänzungen und 93 Löschungen
tools/
phpstan.neon
.phpunit.result.cache
phpunit.xml
<?xml version="1.0" encoding="UTF-8"?>
<phive xmlns="https://phar.io/phive">
<phar name="phpstan" version="^1.10.67" installed="1.10.67" location="./tools/phpstan" copy="false"/>
</phive>
......@@ -13,7 +13,7 @@
'package_quiqqer_bricks_ajax_brick_delete',
function ($brickIds) {
$BrickManager = QUI\Bricks\Manager::init();
$brickIds = json_decode($brickIds, true);
$brickIds = json_decode($brickIds, true);
foreach ($brickIds as $brickId) {
try {
......
......@@ -17,7 +17,7 @@
function ($brickId, $brickUID, $row) {
$BrickManager = QUI\Bricks\Manager::init();
if (isset($brickUID) && !empty($brickUID)) {
if (!empty($brickUID)) {
$Brick = $BrickManager->getBrickById($brickUID);
} else {
$Brick = $BrickManager->getBrickById($brickId);
......@@ -38,11 +38,7 @@ function ($brickId, $brickUID, $row) {
// generate rows
$loadingRows = 1;
if (
isset($settings['loadingrows'])
&& !empty($settings['loadingrows'])
&& (int)$settings['loadingrows']
) {
if (!empty($settings['loadingrows']) && (int)$settings['loadingrows']) {
$loadingRows = (int)$settings['loadingrows'];
}
......@@ -62,6 +58,5 @@ function ($brickId, $brickUID, $row) {
return $result;
},
['brickId', 'brickUID', 'row'],
false
['brickId', 'brickUID', 'row']
);
......@@ -16,15 +16,15 @@
'package_quiqqer_bricks_ajax_brick_save',
function ($brickId, $data) {
$BrickManager = QUI\Bricks\Manager::init();
$data = json_decode($data, true);
$data = json_decode($data, true);
$BrickManager->saveBrick($brickId, $data);
$Brick = $BrickManager->getBrickById($brickId);
return [
'attributes' => $Brick->getAttributes(),
'settings' => $Brick->getSettings(),
'customfields' => $Brick->getCustomFields(),
'attributes' => $Brick->getAttributes(),
'settings' => $Brick->getSettings(),
'customfields' => $Brick->getCustomFields(),
'availableSettings' => $BrickManager->getAvailableBrickSettingsByBrickType(
$Brick->getAttribute('type')
)
......
......@@ -34,19 +34,20 @@ function ($brickId, $project, $siteId, $message, $name, $email, $privacyPolicyAc
// If SimpleContact was used in a brick
$privacyPolicyCheckboxBrick = false;
$Brick = null;
if (!empty($brickId)) {
$BrickManager = QUI\Bricks\Manager::init();
$Brick = $BrickManager->getBrickByID($brickId);
$BrickManager = QUI\Bricks\Manager::init();
$Brick = $BrickManager->getBrickByID($brickId);
$privacyPolicyCheckboxBrick = $Brick->getSetting('showPrivacyPolicyCheckbox');
}
$Project = QUI::getProjectManager()->decode($project);
$Site = $Project->get((int)$siteId);
$Project = QUI::getProjectManager()->decode($project);
$Site = $Project->get((int)$siteId);
$privacyPolicyCheckbox = boolval(
$Site->getAttribute('quiqqer.settings.sitetypes.contact.showPrivacyPolicyCheckbox')
);
$useCaptcha = boolval($Site->getAttribute('quiqqer.settings.sitetypes.contact.useCaptcha'));
$useCaptcha = boolval($Site->getAttribute('quiqqer.settings.sitetypes.contact.useCaptcha'));
if (($privacyPolicyCheckbox || $privacyPolicyCheckboxBrick) && !(int)$privacyPolicyAccepted) {
throw new QUI\Exception(
......@@ -73,7 +74,7 @@ function ($brickId, $project, $siteId, $message, $name, $email, $privacyPolicyAc
$receiver = $Site->getAttribute('quiqqer.settings.sitetypes.contact.email');
} else {
// Contact form (brick)
$receiver = $Brick->getSetting('mailTo');
$receiver = $Brick?->getSetting('mailTo');
}
// fallback: admin email
......@@ -88,8 +89,8 @@ function ($brickId, $project, $siteId, $message, $name, $email, $privacyPolicyAc
$Mailer->setSubject($Site->getAttribute('title') . ' ' . $Site->getUrlRewritten());
$body = "
<span style=\"font-weight: bold;\">From:</span> {$name}<br />
<span style=\"font-weight: bold;\">E-mail:</span> {$email}<br />
<span style=\"font-weight: bold;\">From:</span> $name<br />
<span style=\"font-weight: bold;\">E-mail:</span> $email<br />
";
if ($privacyPolicyAccepted) {
......@@ -119,6 +120,5 @@ function ($brickId, $project, $siteId, $message, $name, $email, $privacyPolicyAc
return true;
},
['brickId', 'project', 'siteId', 'message', 'name', 'email', 'privacyPolicyAccepted', 'captchaResponse'],
false
['brickId', 'project', 'siteId', 'message', 'name', 'email', 'privacyPolicyAccepted', 'captchaResponse']
);
......@@ -14,7 +14,6 @@
'package_quiqqer_bricks_ajax_getAvailableBricks',
function () {
$BricksManager = QUI\Bricks\Manager::init();
return $BricksManager->getAvailableBricks();
},
false,
......
......@@ -8,6 +8,8 @@
* @return String
*/
use QUI\Projects\Site;
QUI::$Ajax->registerFunction(
'package_quiqqer_bricks_ajax_getSitesFromBrick',
function ($brickId, $options) {
......@@ -17,7 +19,7 @@ function ($brickId, $options) {
$sites = $Bricks->getSitesByBrick($Brick);
$result = array_map(function ($Site) {
/* @var $Site \QUI\Projects\Site */
/* @var $Site Site */
return [
'project' => $Site->getProject()->getName(),
'lang' => $Site->getProject()->getLang(),
......
......@@ -16,7 +16,7 @@
'package_quiqqer_bricks_ajax_project_createBrick',
function ($project, $data) {
$Project = QUI::getProjectManager()->decode($project);
$Brick = new QUI\Bricks\Brick(json_decode($data, true));
$Brick = new QUI\Bricks\Brick(json_decode($data, true));
$BrickManager = QUI\Bricks\Manager::init();
......
......@@ -15,7 +15,7 @@
QUI::$Ajax->registerFunction(
'package_quiqqer_bricks_ajax_project_getAreas',
function ($project, $layout, $siteType) {
$Project = QUI::getProjectManager()->decode($project);
$Project = QUI::getProjectManager()->decode($project);
$BrickManager = QUI\Bricks\Manager::init();
return $BrickManager->getAreasByProject($Project, $layout, $siteType);
......
......@@ -15,7 +15,7 @@
QUI::$Ajax->registerFunction(
'package_quiqqer_bricks_ajax_project_getBricks',
function ($project, $area = false) {
$Project = QUI::getProjectManager()->decode($project);
$Project = QUI::getProjectManager()->decode($project);
$BrickManager = QUI\Bricks\Manager::init();
$bricks = $BrickManager->getBricksFromProject($Project);
......@@ -30,7 +30,7 @@ function ($project, $area = false) {
$areas = $Brick->getAttribute('areas');
if (strpos($areas, ',' . $area . ',') !== false) {
if (str_contains($areas, ',' . $area . ',')) {
$result[] = $Brick->getAttributes();
}
}
......
{
"name": "quiqqer\/bricks",
"name": "quiqqer/bricks",
"type": "quiqqer-module",
"description": "The brick system allows you to design your website according to your wishes. You can quickly move, create, or remove bricks to different places in the template.",
"license": "GPL-3.0+",
......@@ -7,7 +7,7 @@
{
"name": "Henning Leutz",
"email": "leutz@pcsg.de",
"homepage": "http:\/\/www.pcsg.de",
"homepage": "http://www.pcsg.de",
"role": "Developer"
}
],
......@@ -15,21 +15,22 @@
"email": "support@pcsg.de"
},
"require": {
"quiqqer\/quiqqer": "^1.6|dev-master|dev-dev",
"quiqqer\/qui": "^1|dev-master|dev-dev",
"quiqqer\/utils": "^1.19.2|dev-master|dev-dev",
"quiqqer\/mobile-detection": "^1|dev-master|dev-dev",
"quiqqer-asset\/hammerjs": "2.*",
"quiqqer-asset\/mustache": "*",
"ramsey\/uuid": "^3|^4",
"quiqqer-asset\/glidejs-glide": "3.*"
"php": "^8.1",
"quiqqer/core": "^2",
"quiqqer/qui": "^1",
"quiqqer/utils": "^1.27",
"quiqqer/mobile-detection": "^1",
"quiqqer-asset/hammerjs": "^2",
"quiqqer-asset/mustache": "*",
"ramsey/uuid": "^3|^4",
"quiqqer-asset/glidejs-glide": "^3"
},
"suggest": {
"quiqqer\/gallery": "Present your photos, products and pictures in elaborate and beautiful galleries."
"quiqqer/gallery": "Present your photos, products and pictures in elaborate and beautiful galleries."
},
"autoload": {
"psr-4": {
"QUI\\Bricks\\": "src\/QUI\/Bricks"
"QUI\\Bricks\\": "src/QUI/Bricks"
}
}
}
<?xml version="1.0"?>
<ruleset>
<!-- Use PSR-12 ruleset -->
<rule ref="PSR12"/>
<!-- Only scan *.php files -->
<arg name="extensions" value="php"/>
<!-- Ignore warnings -->
<arg name="warning-severity" value="0"/>
<!-- Process 64 (or number of CPU cores) files in parallel -->
<arg name="parallel" value="64"/>
<!-- Output relative file paths, by setting the current folder as the basepath -->
<arg name="basepath" value="."/>
<!-- Show colored output -->
<arg name="colors"/>
<!-- Scan everything in the current folder -->
<file>.</file>
</ruleset>
includes:
- phpstan-baseline.neon
parameters:
level: 1
paths:
- src
- ajax
bootstrapFiles:
- tests/phpstan-bootstrap.php
......@@ -44,7 +44,7 @@ class Brick extends QUI\QDOM
*
* @var int|bool
*/
protected $id = false;
protected int|bool $id = false;
/**
* internal unique ID
......@@ -52,47 +52,48 @@ class Brick extends QUI\QDOM
*
* @var string
*/
protected $uniqueId = false;
protected mixed $uniqueId = false;
/**
* Brick settings
*
* @var array
*/
protected $settings = [];
protected array $settings = [];
/**
* Fields can be overwritten by another user
*
* @var array
*/
protected $customfields = [];
protected array $customfields = [];
/**
* Internal control
*
* @var null|Control
*/
protected $Control = null;
protected ?Control $Control = null;
/**
* List of extra css classes
*
* @var array
*/
protected $cssClasses = [];
protected array $cssClasses = [];
/**
* @var string
*/
protected $hash;
protected string $hash;
/**
* Constructor
*
* @param array $params - brick params
* @throws QUI\Exception
*/
public function __construct($params = [])
public function __construct(array $params = [])
{
// default
$default = [
......@@ -233,6 +234,7 @@ public function __construct($params = [])
* Return the class type
*
* @return String
* @throws QUI\Exception
*/
public function getType(): string
{
......@@ -250,8 +252,9 @@ public function getType(): string
*
* @param string $className
* @return bool
* @throws QUI\Exception
*/
public function isInstanceOf($className): bool
public function isInstanceOf(string $className): bool
{
$Control = $this->getControl();
......@@ -299,9 +302,8 @@ protected function createBrickHash(): string
});
$hash = serialize($hashParams);
$hash = md5($hash);
return $hash;
return md5($hash);
}
/**
......@@ -345,7 +347,7 @@ public function create(): string
if (!empty($data['html'])) {
return $data['html'];
}
} catch (Exception $Exception) {
} catch (Exception) {
}
}
......@@ -354,15 +356,6 @@ public function create(): string
'brick-' . $this->id
];
//check if is json
if (is_string($this->cssClasses)) {
$jsonArray = json_decode($this->cssClasses);
if (is_array($jsonArray)) {
$this->cssClasses = $jsonArray;
}
}
foreach ($this->cssClasses as $cssClass) {
$_classes[] = $cssClass;
}
......@@ -459,9 +452,10 @@ public function create(): string
/**
* Return the internal control
*
* @return Control|Bool
* @return Control|bool|null
* @throws QUI\Exception
*/
protected function getControl()
protected function getControl(): Control|bool|null
{
if ($this->Control) {
return $this->Control;
......@@ -536,7 +530,7 @@ public function getSettings(): array
*
* @return void
*/
public function setSettings(array $settings)
public function setSettings(array $settings): void
{
foreach ($settings as $key => $value) {
if ($key === 'classes') {
......@@ -555,7 +549,7 @@ public function setSettings(array $settings)
*
* @return boolean|string|array
*/
public function getSetting(string $name)
public function getSetting(string $name): bool|array|string
{
if ($name === 'classes') {
return $this->getCSSClasses();
......@@ -576,13 +570,13 @@ public function getSetting(string $name)
*
* @return void
*/
public function setSetting(string $name, $value)
public function setSetting(string $name, mixed $value): void
{
if (isset($this->settings[$name])) {
$this->settings[$name] = $value;
}
if ($this->Control && $this->Control instanceof Control) {
if ($this->Control instanceof Control) {
$this->Control->setAttribute($name, $value);
}
}
......@@ -591,7 +585,7 @@ public function setSetting(string $name, $value)
* @param string $name
* @return mixed
*/
public function getAttribute($name)
public function getAttribute(string $name): mixed
{
if ($name === 'classes') {
return $this->getCSSClasses();
......@@ -624,11 +618,11 @@ public function getCustomFields(): array
/**
* Add an extra CSS Class to the control
*
* @param string|array $cssClass - Name of the CSS Class
* @param array|string $cssClass - Name of the CSS Class
*
* @return void
*/
public function addCSSClass($cssClass)
public function addCSSClass(array|string $cssClass): void
{
if (is_array($cssClass)) {
$cssClass = implode(' ', $cssClass);
......@@ -658,7 +652,7 @@ public function addCSSClass($cssClass)
/**
* Remove all css classes
*/
public function clearCSSClasses()
public function clearCSSClasses(): void
{
$this->cssClasses = [];
}
......@@ -674,7 +668,7 @@ public function getCSSClasses(): array
}
/**
* Match pattern agains the css classes
* Match pattern against the css classes
*
* @param string $pattern - The shell wildcard pattern.
*
......
......@@ -2,9 +2,13 @@
namespace QUI\Bricks\Controls;
use Exception;
use QUI;
use Seld\JsonLint\JsonParser;
use function is_array;
use function str_replace;
/**
* Class Accordion
*
......@@ -27,7 +31,7 @@ class Accordion extends QUI\Control
*
* @param array $attributes
*/
public function __construct($attributes = [])
public function __construct(array $attributes = [])
{
// default options
$this->setAttributes([
......@@ -49,11 +53,9 @@ public function __construct($attributes = [])
}
/**
* (non-PHPdoc)
*
* @see \QUI\Control::create()
*/
public function getBody()
public function getBody(): string
{
$Engine = QUI::getTemplateManager()->getEngine();
$entries = $this->getAttribute('entries');
......@@ -69,17 +71,17 @@ public function getBody()
}
if (is_string($entries)) {
$entries = \str_replace("\n", "", $entries);
$entries = str_replace("\n", "", $entries);
try {
$entries = (new JsonParser())->parse($entries, JsonParser::PARSE_TO_ASSOC);
} catch (\Exception $Exception) {
} catch (Exception $Exception) {
QUI\System\Log::writeException($Exception);
$entries = [];
}
}
if (!\is_array($entries)) {
if (!is_array($entries)) {
$entries = [];
}
......@@ -100,9 +102,8 @@ public function getBody()
* Generate JSON-LD FAQ Schema Code
*
* @return string
* @throws QUI\Exception
*/
public function createJSONLDFAQSchemaCode()
public function createJSONLDFAQSchemaCode(): string
{
$Engine = QUI::getTemplateManager()->getEngine();
......
......@@ -20,7 +20,7 @@ class Banner extends QUI\Control
*
* @param array $attributes
*/
public function __construct($attributes = [])
public function __construct(array $attributes = [])
{
// default options
$this->setAttributes([
......@@ -38,11 +38,9 @@ public function __construct($attributes = [])
}
/**
* (non-PHPdoc)
*
* @see \QUI\Control::create()
* @see \QUI\Control::create()
*/
public function getBody()
public function getBody(): string
{
$Engine = QUI::getTemplateManager()->getEngine();
......
......@@ -20,7 +20,7 @@ class BoxContent extends QUI\Control
*
* @param array $attributes
*/
public function __construct($attributes = [])
public function __construct(array $attributes = [])
{
// default options
$this->setAttributes([
......@@ -42,7 +42,7 @@ public function __construct($attributes = [])
*
* @see \QUI\Control::create()
*/
public function getBody()
public function getBody(): string
{
$Engine = QUI::getTemplateManager()->getEngine();
$centerText = $this->getAttribute('centerText');
......
......@@ -20,7 +20,7 @@ class BoxContentAdvanced extends QUI\Control
*
* @param array $attributes
*/
public function __construct($attributes = [])
public function __construct(array $attributes = [])
{
// default options
$this->setAttributes([
......@@ -39,11 +39,9 @@ public function __construct($attributes = [])
}
/**
* (non-PHPdoc)
*
* @see \QUI\Control::create()
*/
public function getBody()
public function getBody(): string
{
$Engine = QUI::getTemplateManager()->getEngine();
$entries = $this->getAttribute('entries');
......
0% oder .
You are about to add 0 people to the discussion. Proceed with caution.
Bearbeitung dieser Nachricht zuerst beenden!
Bitte registrieren oder zum Kommentieren