Skip to content
Code-Schnipsel Gruppen Projekte
Commit 79d552c1 erstellt von Henning Leutz's avatar Henning Leutz 🥋
Dateien durchsuchen

Merge branch '72-adressfelder-konnen-nicht-geleert-werden' into 'dev'

Resolve "Adressfelder können nicht geleert werden"

See merge request !22
Übergeordnete 74925602 6b2f7008
Keine zugehörigen Branchen gefunden
Keine zugehörigen Tags gefunden
3 Merge Requests!24fix(UserData): correctly check if request has value,!23fix(UserData): correctly check if request has value,!22Resolve "Adressfelder können nicht geleert werden"
Pipeline-Nr. 4874 mit Warnungen bestanden
......@@ -25,7 +25,7 @@ public function __construct($attributes = [])
{
parent::__construct($attributes);
$this->addCSSFile(dirname(__FILE__).'/Address.css');
$this->addCSSFile(dirname(__FILE__) . '/Address.css');
}
/**
......@@ -52,7 +52,7 @@ public function getIcon(): string
public function getBody(): string
{
/* @var $User QUI\Users\User */
$User = QUI::getUserBySession();
$User = QUI::getUserBySession();
$Engine = QUI::getTemplateManager()->getEngine();
if (isset($_REQUEST['create'])) {
......@@ -102,13 +102,13 @@ public function getBody(): string
}
$Engine->assign([
'this' => $this,
'User' => $User,
'this' => $this,
'User' => $User,
'UserAddress' => $UserAddress,
'addresses' => $User->getAddressList()
'addresses' => $User->getAddressList()
]);
return $Engine->fetch(dirname(__FILE__).'/Address.html');
return $Engine->fetch(dirname(__FILE__) . '/Address.html');
}
/**
......@@ -119,12 +119,12 @@ public function getBody(): string
*/
protected function getBodyForEdit(): string
{
$User = QUI::getUserBySession();
$Engine = QUI::getTemplateManager()->getEngine();
$User = QUI::getUserBySession();
$Engine = QUI::getTemplateManager()->getEngine();
$Address = $User->getAddress((int)$_REQUEST['edit']);
try {
$Conf = QUI::getPackage('quiqqer/frontend-users')->getConfig();
$Conf = QUI::getPackage('quiqqer/frontend-users')->getConfig();
$settings = $Conf->getValue('profile', 'addressFields');
if (!empty($settings)) {
......@@ -139,16 +139,16 @@ protected function getBodyForEdit(): string
}
$Engine->assign([
'this' => $this,
'Address' => $Address,
'User' => $User,
'phone' => $Address->getPhone(),
'fax' => $Address->getFax(),
'mobile' => $Address->getMobile(),
'this' => $this,
'Address' => $Address,
'User' => $User,
'phone' => $Address->getPhone(),
'fax' => $Address->getFax(),
'mobile' => $Address->getMobile(),
'countries' => QUI\Countries\Manager::getList()
]);
return $Engine->fetch(\dirname(__FILE__).'/Address.Edit.html');
return $Engine->fetch(\dirname(__FILE__) . '/Address.Edit.html');
}
/**
......@@ -179,7 +179,7 @@ public static function checkSettingsArray(array $settings)
foreach ($fields as $field) {
if (!isset($settings[$field])) {
$settings[$field] = [
'show' => true,
'show' => true,
'required' => true
];
......@@ -196,12 +196,12 @@ public static function checkSettingsArray(array $settings)
}
if ($settings['street_no']['required']) {
$settings['street']['required'] = true;
$settings['street']['required'] = true;
$settings['street_number']['required'] = true;
}
if ($settings['street_no']['show']) {
$settings['street']['show'] = true;
$settings['street']['show'] = true;
$settings['street_number']['show'] = true;
}
......@@ -216,17 +216,17 @@ public static function checkSettingsArray(array $settings)
*/
protected function getBodyForDelete(): string
{
$User = QUI::getUserBySession();
$Engine = QUI::getTemplateManager()->getEngine();
$User = QUI::getUserBySession();
$Engine = QUI::getTemplateManager()->getEngine();
$Address = $User->getAddress((int)$_REQUEST['delete']);
$Engine->assign([
'this' => $this,
'this' => $this,
'Address' => $Address,
'User' => $User
'User' => $User
]);
return $Engine->fetch(\dirname(__FILE__).'/Address.Delete.html');
return $Engine->fetch(\dirname(__FILE__) . '/Address.Delete.html');
}
/**
......@@ -237,18 +237,18 @@ protected function getBodyForDelete(): string
*/
protected function getBodyForCreate(): string
{
$User = QUI::getUserBySession();
$User = QUI::getUserBySession();
$Engine = QUI::getTemplateManager()->getEngine();
$currentCountry = '';
$Country = $User->getCountry();
$Country = $User->getCountry();
if ($Country) {
$currentCountry = $Country->getCode();
}
try {
$Conf = QUI::getPackage('quiqqer/frontend-users')->getConfig();
$Conf = QUI::getPackage('quiqqer/frontend-users')->getConfig();
$settings = $Conf->getValue('profile', 'addressFields');
if (!empty($settings)) {
......@@ -263,13 +263,13 @@ protected function getBodyForCreate(): string
}
$Engine->assign([
'this' => $this,
'this' => $this,
'currentCountry' => $currentCountry,
'countries' => QUI\Countries\Manager::getList(),
'User' => $User
'countries' => QUI\Countries\Manager::getList(),
'User' => $User
]);
return $Engine->fetch(\dirname(__FILE__).'/Address.Create.html');
return $Engine->fetch(\dirname(__FILE__) . '/Address.Create.html');
}
/**
......@@ -291,7 +291,7 @@ public function createAddress(array $data = [])
}
/* @var $User QUI\Users\User */
$User = QUI::getUserBySession();
$User = QUI::getUserBySession();
$Address = $User->addAddress();
$fields = [
......@@ -313,7 +313,7 @@ public function createAddress(array $data = [])
}
if (!empty($data['street_number'])) {
$street .= ' '.\trim($data['street_number']);
$street .= ' ' . \trim($data['street_number']);
}
$data['street_no'] = \trim($street);
......@@ -377,7 +377,7 @@ public function editAddress(array $data = [])
$data = $_REQUEST;
}
$User = QUI::getUserBySession();
$User = QUI::getUserBySession();
$Address = $User->getAddress($_REQUEST['addressId']);
if (!empty($data['street']) || !empty($data['street_number'])) {
......@@ -388,7 +388,7 @@ public function editAddress(array $data = [])
}
if (!empty($data['street_number'])) {
$street .= ' '.\trim($data['street']);
$street .= ' ' . \trim($data['street']);
}
$data['street_no'] = \trim($street);
......@@ -431,7 +431,7 @@ public function editAddress(array $data = [])
unset($missing[$key]);
}
}
if (\count($missing)) {
throw new QUI\Exception([
'quiqqer/frontend-users',
......@@ -453,7 +453,7 @@ protected function delete()
return;
}
$User = QUI::getUserBySession();
$User = QUI::getUserBySession();
$Address = $User->getAddress($_REQUEST['addressId']);
$Address->delete();
}
......@@ -472,10 +472,10 @@ public function validate(QUI\Users\Address $Address)
];
$firstName = $Address->getAttribute('firstname');
$lastName = $Address->getAttribute('lastname');
$zip = $Address->getAttribute('zip');
$city = $Address->getAttribute('city');
$country = $Address->getAttribute('country');
$lastName = $Address->getAttribute('lastname');
$zip = $Address->getAttribute('zip');
$city = $Address->getAttribute('city');
$country = $Address->getAttribute('country');
$street_no = $Address->getAttribute('street_no');
......@@ -487,7 +487,7 @@ public function validate(QUI\Users\Address $Address)
}
if (!empty($Address->getAttribute('street_number'))) {
$street_no .= ' '.$Address->getAttribute('street_number');
$street_no .= ' ' . $Address->getAttribute('street_number');
}
$street_no = \trim($street_no);
......
......@@ -10,7 +10,10 @@
use QUI\FrontendUsers\Handler as FrontendUsersHandler;
use QUI\Utils\Security\Orthos;
use function array_filter;
use function array_keys;
use function in_array;
use function json_decode;
use function json_encode;
use function trim;
......@@ -42,10 +45,10 @@ public function __construct(array $attributes = [])
*/
public function getBody()
{
$action = false;
$action = false;
$emailChangeRequested = true;
$User = QUI::getUserBySession();
$User = QUI::getUserBySession();
$Engine = QUI::getTemplateManager()->getEngine();
$Config = QUI::getPackage('quiqqer/frontend-users')->getConfig();
......@@ -73,12 +76,12 @@ public function getBody()
}
$Engine->assign([
'User' => $User,
'Address' => $Address,
'action' => $action,
'User' => $User,
'Address' => $Address,
'action' => $action,
'changeMailRequest' => $emailChangeRequested,
'username' => $RegistrarHandler->isUsernameInputAllowed(),
'registrationText' => QUI::getLocale()->get(
'username' => $RegistrarHandler->isUsernameInputAllowed(),
'registrationText' => QUI::getLocale()->get(
'quiqqer/frontend-users',
'quiqqer.profile.registration.date.text',
['date' => QUI::getLocale()->formatDate($User->getAttribute('regdate'))]
......@@ -98,9 +101,9 @@ public function getBody()
*/
public function onSave()
{
$Request = QUI::getRequest()->request;
$Request = QUI::getRequest()->request;
$newEmail = $Request->get('emailNew');
$User = QUI::getUserBySession();
$User = QUI::getUserBySession();
if (QUI::getUsers()->isNobodyUser($User)) {
return;
......@@ -137,12 +140,41 @@ public function onSave()
);
}
// require fields
$Config = QUI::getPackage('quiqqer/frontend-users')->getConfig();
$settings = $Config->getValue('profile', 'addressFields');
if (!empty($settings)) {
$settings = json_decode($settings, true);
} else {
$settings = [];
}
$required = array_filter($settings, function ($field) {
return $field['required'];
});
$required = array_keys($required);
$checkFields = function ($fieldName) use ($settings, $required, $Request) {
// wenn kein required, kann auch geleert werden
if ($Request->has($fieldName) && !in_array($fieldName, $required)) {
return true;
}
if ($Request->get($fieldName)) {
return true;
}
return false;
};
// language
$Config = QUI::getPackage('quiqqer/frontend-users')->getConfig();
$changeLang = (int)$Config->getValue('userProfile', 'showLanguageChangeInProfile');
if ($changeLang && $Request->get('language')) {
$Project = QUI::getRewrite()->getProject();
if ($changeLang && $Request->has('language')) {
$Project = QUI::getRewrite()->getProject();
$languages = $Project->getLanguages();
if (in_array($Request->get('language'), $languages)) {
......@@ -170,9 +202,11 @@ public function onSave()
// special case: birthday
$bday = '';
if ($Request->get('birth_year')
&& $Request->get('birth_month')
&& $Request->get('birth_day')) {
if (
$Request->has('birth_year')
&& $Request->has('birth_month')
&& $Request->has('birth_day')
) {
$bday .= $Request->get('birth_year');
$bday .= '-' . $Request->get('birth_month');
$bday .= '-' . $Request->get('birth_day');
......@@ -180,7 +214,7 @@ public function onSave()
}
foreach ($allowedFields as $field) {
if ($Request->get($field)) {
if ($checkFields($field)) {
$User->setAttribute($field, $Request->get($field));
}
}
......@@ -190,57 +224,58 @@ public function onSave()
// update first address
try {
$Address = $User->getStandardAddress();
$Address = $User->getStandardAddress();
$addressData = [];
if ($Request->get('firstname')) {
if ($checkFields('firstname')) {
$addressData['firstname'] = $Request->get('firstname');
}
if ($Request->get('lastname')) {
if ($checkFields('lastname')) {
$addressData['lastname'] = $Request->get('lastname');
}
if ($Request->get('company')) {
if ($checkFields('company')) {
$addressData['company'] = $Request->get('company');
}
if ($Request->get('street_no')) {
if ($checkFields('street_no')) {
$addressData['street_no'] = $Request->get('street_no');
}
// street kommt manchmal als ganzes, dann dies zulassen
if ($Request->get('street')) {
$addressData['street_no'] = trim($Request->get('street')) . ' ' . trim($Request->get('street_number'));
$addressData['street_no'] = trim($addressData['street_no']);
}
if ($Request->get('zip')) {
if ($checkFields('zip')) {
$addressData['zip'] = $Request->get('zip');
}
if ($Request->get('city')) {
if ($checkFields('city')) {
$addressData['city'] = $Request->get('city');
}
if ($Request->get('country')) {
if ($checkFields('country')) {
$addressData['country'] = $Request->get('country');
}
if ($Request->get('tel')) {
$phones = $Address->getPhoneList();
if ($checkFields('tel')) {
$phones = $Address->getPhoneList();
$updated = false;
foreach ($phones as $k => $entry) {
if ($entry['type'] === 'tel') {
$phones[$k]['no'] = $Request->get('tel');
$updated = true;
$updated = true;
break;
}
}
if (!$updated) {
$Address->addPhone([
'no' => $Request->get('tel'),
'no' => $Request->get('tel'),
'type' => 'tel'
]);
} else {
......
0% Lade oder .
You are about to add 0 people to the discussion. Proceed with caution.
Bearbeitung dieser Nachricht zuerst beenden!
Bitte registrieren oder zum Kommentieren