This commit is contained in:
Thomas 2025-02-08 23:00:52 +01:00
parent da58a4e824
commit e6be33f1f2
19 changed files with 187 additions and 117 deletions

24
src/new/composer.lock generated
View File

@ -6645,20 +6645,20 @@
},
{
"name": "phpoffice/phpspreadsheet",
"version": "1.29.9",
"version": "1.29.10",
"source": {
"type": "git",
"url": "https://github.com/PHPOffice/PhpSpreadsheet.git",
"reference": "ffb47b639649fc9c8a6fa67977a27b756592ed85"
"reference": "c80041b1628c4f18030407134fe88303661d4e4e"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/PHPOffice/PhpSpreadsheet/zipball/ffb47b639649fc9c8a6fa67977a27b756592ed85",
"reference": "ffb47b639649fc9c8a6fa67977a27b756592ed85",
"url": "https://api.github.com/repos/PHPOffice/PhpSpreadsheet/zipball/c80041b1628c4f18030407134fe88303661d4e4e",
"reference": "c80041b1628c4f18030407134fe88303661d4e4e",
"shasum": ""
},
"require": {
"composer/pcre": "^3.3",
"composer/pcre": "^1||^2||^3",
"ext-ctype": "*",
"ext-dom": "*",
"ext-fileinfo": "*",
@ -6745,9 +6745,9 @@
],
"support": {
"issues": "https://github.com/PHPOffice/PhpSpreadsheet/issues",
"source": "https://github.com/PHPOffice/PhpSpreadsheet/tree/1.29.9"
"source": "https://github.com/PHPOffice/PhpSpreadsheet/tree/1.29.10"
},
"time": "2025-01-26T04:55:00+00:00"
"time": "2025-02-08T02:56:14+00:00"
},
{
"name": "phpstan/phpdoc-parser",
@ -15724,16 +15724,16 @@
},
{
"name": "phpstan/phpstan",
"version": "1.12.16",
"version": "1.12.17",
"source": {
"type": "git",
"url": "https://github.com/phpstan/phpstan.git",
"reference": "e0bb5cb78545aae631220735aa706eac633a6be9"
"reference": "7027b3b0270bf392de0cfba12825979768d728bf"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/phpstan/phpstan/zipball/e0bb5cb78545aae631220735aa706eac633a6be9",
"reference": "e0bb5cb78545aae631220735aa706eac633a6be9",
"url": "https://api.github.com/repos/phpstan/phpstan/zipball/7027b3b0270bf392de0cfba12825979768d728bf",
"reference": "7027b3b0270bf392de0cfba12825979768d728bf",
"shasum": ""
},
"require": {
@ -15778,7 +15778,7 @@
"type": "github"
}
],
"time": "2025-01-21T14:50:05+00:00"
"time": "2025-02-07T15:01:57+00:00"
},
{
"name": "phpunit/php-code-coverage",

View File

@ -83,10 +83,10 @@ class EditController extends AbstractController
$customFields = $fieldService->getFields(\PSC\System\PluginBundle\Form\Interfaces\Field::Account);
$customGroups = $fieldService->getGroups(\PSC\System\PluginBundle\Form\Interfaces\Field::Account);
$selectedShop = $shopService->getSelectedShop();
/** @var Account $account */
/** @var Account $account */
$account = new Account();
$account->shops[] = $selectedShop;
/** @var \PSC\Shop\EntityBundle\Document\Account $accountDoc */
/** @var \PSC\Shop\EntityBundle\Document\Account $accountDoc */
$accountDoc = $documentManager
->getRepository('PSC\Shop\EntityBundle\Document\Account')
->findOneBy(array('uid' => (string)$account->getId()));
@ -158,11 +158,11 @@ class EditController extends AbstractController
$customFields = $fieldService->getFields(\PSC\System\PluginBundle\Form\Interfaces\Field::Account);
$customGroups = $fieldService->getGroups(\PSC\System\PluginBundle\Form\Interfaces\Field::Account);
$selectedShop = $shopService->getSelectedShop();
/** @var Account $account */
/** @var Account $account */
$account = $entityManager
->getRepository('PSC\Shop\EntityBundle\Entity\Account')
->findOneBy(array('uid' => $uuid));
/** @var \PSC\Shop\EntityBundle\Document\Account $accountDoc */
/** @var \PSC\Shop\EntityBundle\Document\Account $accountDoc */
$accountDoc = $documentManager
->getRepository('PSC\Shop\EntityBundle\Document\Account')
->findOneBy(array('uid' => (string)$account->getId()));
@ -184,7 +184,9 @@ class EditController extends AbstractController
$documentManager->flush();
}
$form = $this->createForm(AccountType::class, $account);
$form = $this->createForm(AccountType::class, $account, [
'cms' => $account->cms
]);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$account->setProducts($this->merge([$account->getProductsOrg(), $account->getProductsSub()]));
@ -218,9 +220,9 @@ class EditController extends AbstractController
private function merge($arrayCollections)
{
$returnCollection = new ArrayCollection();
/**
* @var ArrayCollection $arrayCollection
*/
/**
* @var ArrayCollection $arrayCollection
*/
foreach ($arrayCollections as $arrayCollection) {
if ($returnCollection->count() === 0) {
$returnCollection = $arrayCollection;
@ -228,7 +230,7 @@ class EditController extends AbstractController
$arrayCollection->map(function ($element) use (&$returnCollection) {
if (!$returnCollection->contains($element)) {
$returnCollection->add($element);
$returnCollection->add($element);
}
});
}

View File

@ -50,12 +50,18 @@ class AccountType extends AbstractType
public function buildForm(FormBuilderInterface $builder, array $options)
{
$tempCms = [1];
foreach ($options['cms'] as $cms) {
$tempCms[] = $cms->getUid();
}
$builder
->add('title', TextType::class, ['label' => 'Name'])
->add('payments', EntityType::class, array(
'class' => 'PSC\Shop\EntityBundle\Entity\Payment',
'choice_label' => 'title',
'choice_value' => 'uid',
'required' => false,
'multiple' => true,
'query_builder' => function (EntityRepository $er) {
@ -67,6 +73,7 @@ class AccountType extends AbstractType
'class' => 'PSC\Shop\EntityBundle\Entity\Shipping',
'choice_label' => 'title',
'choice_value' => 'uid',
'required' => false,
'multiple' => true,
'query_builder' => function (EntityRepository $er) {
@ -85,6 +92,7 @@ class AccountType extends AbstractType
}
},
'choice_value' => 'uid',
'required' => false,
'multiple' => true,
'query_builder' => function (EntityRepository $er) {
@ -109,6 +117,7 @@ class AccountType extends AbstractType
'class' => 'PSC\Shop\EntityBundle\Entity\Product',
'choice_label' => 'nrTitle',
'multiple' => true,
'required' => false,
'query_builder' => function (EntityRepository $er) {
return $er->createQueryBuilder('u')
@ -118,6 +127,7 @@ class AccountType extends AbstractType
->add('productsSub', EntityType::class, array(
'class' => 'PSC\Shop\EntityBundle\Entity\Product',
'choice_label' => 'nrTitle',
'required' => false,
'multiple' => true,
'query_builder' => function (EntityRepository $er) {
@ -227,6 +237,7 @@ class AccountType extends AbstractType
{
$resolver->setDefaults(array(
'data_class' => 'PSC\Shop\EntityBundle\Entity\Account',
'cms' => [],
'translation_domain' => 'core_account_create_and_edit'
));
}

View File

@ -6,7 +6,7 @@ price: Preis
Branding: Info & Branding
bankdetails: Bankdaten
advanced: Erweitert
cms: CMS
back: Zurück
save: Speichern
@ -87,4 +87,4 @@ firsname1: Vorname 1
lastname1: Nachname 1
firsname12: Vorname 2
lastname2: Nachname 2
extrasettings: Extra Einstellungen
extrasettings: Extra Einstellungen

View File

@ -367,6 +367,9 @@
</div>
</div>
<div class="tab-pane" id="privat" role="tabpanel">
<h5>{{'cms'|trans}}</h5>
{{ form_widget(form.cms) }}
<hr/>
<h5>{{'paymentmethods'|trans}}</h5>
{{ form_widget(form.payments) }}
<hr/>
@ -704,4 +707,4 @@
</div>
{% endblock %}
{% endblock %}

View File

@ -367,6 +367,9 @@
</div>
</div>
<div class="tab-pane" id="privat" role="tabpanel">
<h5>{{'cms'|trans}}</h5>
{{ form_widget(form.cms) }}
<hr/>
<h5>{{'paymentmethods'|trans}}</h5>
{{ form_widget(form.payments) }}
<hr/>

View File

@ -108,8 +108,6 @@ class EditController extends AbstractController
$cmsDoc->setExtraSettings($cms->getExtraSettings());
$cmsDoc->setPluginSettings($cms->getPluginSettings());
$cmsDoc->setNoIndex($cms->isNoIndex());
$cmsDoc->setAccounts($cms->getAccounts());
$documentManager->persist($cmsDoc);
$documentManager->flush();
@ -166,14 +164,12 @@ class EditController extends AbstractController
if (!$request->isMethod('POST') && $cmsDoc) {
$cms->setExtraSettings($cmsDoc->getExtraSettings());
$cms->setPluginSettings($cmsDoc->getPluginSettings());
$cms->setAccounts($cmsDoc->getAccounts());
$cms->setNoIndex($cmsDoc->isNoIndex());
} elseif (!$cmsDoc) {
$cmsDoc = new \PSC\Shop\EntityBundle\Document\Cms();
$cmsDoc->setUid($cms->getUid());
$cmsDoc->setExtraSettings($cms->getExtraSettings());
$cmsDoc->setNoIndex($cms->isNoIndex());
$cmsDoc->setAccounts($cms->getAccounts());
$documentManager->persist($cmsDoc);
$documentManager->flush();
}
@ -188,7 +184,6 @@ class EditController extends AbstractController
$cmsDoc->setPluginSettings($cms->getPluginSettings());
$cmsDoc->setExtraSettings($cms->getExtraSettings());
$cmsDoc->setNoIndex($cms->isNoIndex());
$cmsDoc->setAccounts($cms->getAccounts());
$this->historyService->createHistoryEntry(new PSCHistory((string)$cms->getUid()), $cms, $cmsDoc);
$entityManager->persist($cms);

View File

@ -84,14 +84,6 @@ class CmsType extends AbstractType
public function buildForm(FormBuilderInterface $builder, array $options)
{
$accounts = $this->entityManager->getRepository(Account::class)->createQueryBuilder('u')
->join('u.shops', 's')
->where('s.uid = :shop')->setParameter('shop', $this->shop->getSelectedShop()->getId())->getQuery()->execute();
$defaultAccounts = [];
foreach ($accounts as $account) {
$defaultAccounts[$account->getTitle()] = $account->getUid();
}
dump($defaultAccounts);
$tmp = $this->buildCmsTree(['Oberste Ebene' => 0]);
$builder
->add('title', TextType::class, ['label' => 'psc_shop_cms.Name', 'required' => false])
@ -135,12 +127,6 @@ class CmsType extends AbstractType
'choices' => $this->language->getLanguageArrayForContent(),
'required' => true,
))
->add('accounts', ChoiceType::class, array(
'label' => 'psc_shop_cms.Accounts',
'choices' => $defaultAccounts,
'multiple' => true,
'required' => false,
))
->add('metaOgDescription', TextAreaType::class, ['label' => 'psc_shop_cms.OGDescription', 'required' => false]);
/** @var \PSC\System\PluginBundle\Form\Interfaces\Field $field */
foreach ($this->fields->getFields(\PSC\System\PluginBundle\Form\Interfaces\Field::Cms) as $field) {

View File

@ -37,9 +37,6 @@
<li class="nav-item">
<a class="nav-link" data-bs-toggle="tab" href="#extend" role="tab">{{ 'psc_shop_cms.Extended'|trans }}</a>
</li>
<li class="nav-item">
<a class="nav-link" data-bs-toggle="tab" href="#filter" role="tab">{{ 'psc_shop_cms.Filter'|trans }}</a>
</li>
{% for customGroup in customGroups %}
<li class="nav-item">
<a class="nav-link" data-bs-toggle="tab" href="#{{ customGroup.id }}" role="tab">{{ customGroup.title }}</a>
@ -273,17 +270,6 @@
{{ form_errors(form.extraSettings) }}
</div>
</div>
{% for customGroup in customGroups %}
<div class="row mb-3">
<label class="col-md-3 form-control-label">
{{ form_label(form.accounts) }}
</label>
<div class="col-md-9">
{{ form_widget(form.accounts) }}
</div>
{{ form_errors(form.accounts) }}
</div>
</div>
{% for customGroup in customGroups %}
<div class="tab-pane" id="{{ customGroup.id }}" role="tabpanel">
{% for customField in customFields %}

View File

@ -37,9 +37,6 @@
<li class="nav-item">
<a class="nav-link" data-bs-toggle="tab" href="#extend" role="tab">{{ 'psc_shop_cms.Extended'|trans }}</a>
</li>
<li class="nav-item">
<a class="nav-link" data-bs-toggle="tab" href="#filter" role="tab">{{ 'psc_shop_cms.Filter'|trans }}</a>
</li>
</ul>
</div>
<div class="col-md-10">
@ -239,17 +236,6 @@
</div>
</div>
</div>
<div class="tab-pane" id="filter" role="tabpanel">
<div class="row mb-3">
<label class="col-md-3 form-control-label">
{{ form_label(form.accounts) }}
</label>
<div class="col-md-9">
{{ form_widget(form.accounts) }}
</div>
{{ form_errors(form.accounts) }}
</div>
</div>
<div class="tab-pane" id="extend" role="tabpanel">
<div class="row">
<div class="col-md-4">

View File

@ -29,8 +29,6 @@ class Cms
#[Field(type: 'boolean')]
protected bool $noIndex = false;
#[Field(type: 'hash')]
protected array $accounts = [];
#[Field(type: 'hash')]
protected $pluginSettings = [];
@ -120,13 +118,4 @@ class Cms
{
$this->noIndex = $noIndex;
}
public function getAccounts(): array
{
return (array)$this->accounts;
}
public function setAccounts(array $var): void
{
$this->accounts = $var;
}
}

View File

@ -446,7 +446,7 @@ class Account
#[ORM\JoinTable(name: 'account_cms')]
#[ORM\JoinColumn(name: 'account_id', referencedColumnName: 'id')]
#[ORM\InverseJoinColumn(name: 'account_id', referencedColumnName: 'id')]
#[ORM\InverseJoinColumn(name: 'cms_id', referencedColumnName: 'id')]
#[ORM\ManyToMany(targetEntity: 'Cms', inversedBy: 'accounts')]
public $cms;

View File

@ -29,7 +29,6 @@ class Cms
{
protected $extraSettings;
protected $accounts = [];
protected $noIndex = false;
protected $pluginSettings = [];
@ -694,13 +693,4 @@ class Cms
{
$this->noIndex = $noIndex;
}
public function getAccounts(): array
{
return (array)$this->accounts;
}
public function setAccounts(array $var): void
{
$this->accounts = $var;
}
}

View File

@ -0,0 +1,40 @@
<?php
/**
* ContactPaymenttype Modelclass
*
* ContactPaymenttype Modelsuperclass
*
* PHP versions 4 and 5
*
* @category Data
* @package Model
* @subpackage Supermodel
* @author Thomas petersomn <tpeterson@printshopcreator.de>
* @copyright 1997-2009 Thomas Peterson
* @license Not Public
* @version SVN: $Id: ContactPaymenttype.php 5162 2010-11-06 01:42:44Z boonkerz $
* @link http://www.printshopcreator.de
*/
/**
* ContactCms Modelclass
*
* ContactCms Modelsuperclass
*
* PHP versions 4 and 5
*
* @category Data
* @package Model
* @subpackage Supermodel
* @author Thomas petersomn <tpeterson@printshopcreator.de>
* @copyright 1997-2009 Thomas Peterson
* @license Not Public
* @version Release: $Id: ContactPaymenttype.php 5162 2010-11-06 01:42:44Z boonkerz $
* @link http://www.printshopcreator.de
*/
class AccountCms extends BaseAccountCms
{
}

View File

@ -50,8 +50,8 @@
*/
abstract class BaseAccount extends Doctrine_Record
{
public function setTableDefinition() {
public function setTableDefinition()
{
$this->setTableName('account');
$this->hasColumn('id', 'integer', 8, array(
'primary' => true,
@ -230,7 +230,8 @@ abstract class BaseAccount extends Doctrine_Record
$this->hasColumn('lastname2', 'string', 255);
}
public function setUp() {
public function setUp()
{
parent::setUp();
$this->hasOne('Install', array(
'local' => 'install_id',
@ -284,6 +285,12 @@ abstract class BaseAccount extends Doctrine_Record
$this->hasMany('Motiv', array(
'local' => 'id',
'foreign' => 'account_id'));
$this->hasMany('AccountCms', array(
'local' => 'id',
'foreign' => 'account_id'));
}
}
}

View File

@ -0,0 +1,47 @@
<?php
/**
* BaseContactPaymenttype
*
* This class has been auto-generated by the Doctrine ORM Framework
*
* @property integer $contact_id
* @property integer $paymenttype_id
* @property Paymenttype $Paymenttype
* @property Contact $Contact
*
* @package ##PACKAGE##
* @subpackage ##SUBPACKAGE##
* @author ##NAME## <##EMAIL##>
* @version SVN: $Id: BaseContactPaymenttype.php 5162 2010-11-06 01:42:44Z boonkerz $
*/
abstract class BaseAccountCms extends Doctrine_Record
{
public function setTableDefinition()
{
$this->setTableName('account_cms');
$this->hasColumn('account_id', 'integer', 8, array(
'type' => 'integer',
'primary' => true,
'length' => '8',
));
$this->hasColumn('cms_id', 'integer', 8, array(
'type' => 'integer',
'primary' => true,
'length' => '8',
));
}
public function setUp()
{
parent::setUp();
$this->hasOne('Cms', array(
'local' => 'cms_id',
'foreign' => 'id'));
$this->hasOne('Account', array(
'local' => 'account_id',
'foreign' => 'id'));
}
}

View File

@ -32,8 +32,8 @@
*/
abstract class BaseCms extends Doctrine_Record
{
public function setTableDefinition() {
public function setTableDefinition()
{
$this->setTableName('cms');
$this->hasColumn('id', 'integer', 8, array(
'primary' => true,
@ -128,7 +128,8 @@ abstract class BaseCms extends Doctrine_Record
$this->hasColumn('enable', 'boolean');
}
public function setUp() {
public function setUp()
{
parent::setUp();
$this->hasOne('Install', array(
'local' => 'install_id',
@ -149,6 +150,10 @@ abstract class BaseCms extends Doctrine_Record
$this->hasMany('ContactCms', array(
'local' => 'id',
'foreign' => 'cms_id'));
$this->hasMany('AccountCms', array(
'local' => 'id',
'foreign' => 'cms_id'));
$sluggable0 = new Doctrine_Template_Sluggable(array(
'unique' => true,
@ -165,4 +170,5 @@ abstract class BaseCms extends Doctrine_Record
$this->actAs($sluggable0);
}
}
}

View File

@ -29,24 +29,29 @@ class TP_View_Helper_Cms
$tmp = [];
foreach ($cms as $row) {
$tmp[] = $row;
}
if (Zend_Auth::getInstance()->hasIdentity()) {
$accountId = Zend_Auth::getInstance()->getIdentity()['account_id'];
$user = Zend_Auth::getInstance()->getIdentity();
$cms = Doctrine_Query::create()->from('Cms c')->leftJoin('c.ContactCms a')->where('c.private = 1 AND c.enable = 1 AND a.contact_id = ? AND c.shop_id = ? AND
(c.language = ? OR language = \'all\')', array($user['id'], $shop ['id'], Zend_Registry::get('locale')))->orderBy('c.sor ASC')->execute();
foreach ($cms as $row) {
$accounts = $row->getAccounts();
if (count($accounts) === 0 || in_array($accountId, $accounts)) {
$tmp[] = $row;
}
$tmp[] = $row;
}
$cms = Doctrine_Query::create()->from('Cms c')->leftJoin('c.AccountCms a')->where('c.private = 1 AND c.enable = 1 AND a.account_id = ? AND c.shop_id = ? AND
(c.language = ? OR language = \'all\')', array($user['account_id'], $shop ['id'], Zend_Registry::get('locale')))->orderBy('c.sor ASC')->execute();
foreach ($cms as $row) {
$tmp[] = $row;
}
return $tmp;
}
foreach ($cms as $row) {
$accounts = $row->getAccounts();
if (count($accounts) === 0) {
$tmp[] = $row;
}
}
return $tmp;

View File

@ -35,8 +35,8 @@
*/
class CmsController extends TP_Controller_Action
{
public function preDispatch() {
public function preDispatch()
{
//self::preDispatch();
}
@ -48,7 +48,8 @@ class CmsController extends TP_Controller_Action
* @param string $page
* @return void
*/
public function indexAction($page = 'Overview') {
public function indexAction($page = 'Overview')
{
$this->view->actmenu[] = $this->_request->getParam('page');
@ -86,7 +87,20 @@ class CmsController extends TP_Controller_Action
return;
}
if ($page->display_only_logged_in && !Zend_Auth::getInstance()->hasIdentity()) {
if ($page->private && Zend_Auth::getInstance()->hasIdentity()) {
$user = Zend_Auth::getInstance()->getIdentity();
$count = 0;
$cms += Doctrine_Query::create()->from('ContactCms c')->where('c.contact_id = ? AND c.cms_id = ?', array($user['id'], $page->id))->execute()->count();
$cms += Doctrine_Query::create()->from('AccountCms a')->where('a.account_id = ? AND a.cms_id = ?', array($user['account_id'], $page->id))->execute()->count();
if ($cms === 0) {
$this->_redirect('/user/login');
}
}
if (($page->private || $page->display_only_logged_in) && !Zend_Auth::getInstance()->hasIdentity()) {
$this->_redirect('/user/login');
}
@ -181,7 +195,7 @@ class CmsController extends TP_Controller_Action
if ($this->shop->private && !Zend_Auth::getInstance()->hasIdentity()) {
$this->_helper->layout->setLayout('private');
}
if($this->view->page->template != "") {
if ($this->view->page->template != "") {
$this->render($this->view->page->template);
}
if ($this->_getParam('help')) {