♻️ Use an array for the user socials

This commit is contained in:
Kazhnuz 2025-07-02 20:20:33 +02:00
parent 770a65e15c
commit 54170e1e30
3 changed files with 25 additions and 98 deletions

View file

@ -249,104 +249,18 @@ echo Bootstrap::formInputHidden(array(
<div class="tab-pane fade" id="social" role="tabpanel" aria-labelledby="nav-social-tab">
<?php
echo Bootstrap::cardBegin($L->g('Social Networks'));
echo Bootstrap::formInputText(array(
'name' => 'twitter',
'label' => 'Twitter',
'value' => $user->twitter(),
'class' => '',
'placeholder' => '',
'tip' => ''
));
echo Bootstrap::formInputText(array(
'name' => 'facebook',
'label' => 'Facebook',
'value' => $user->facebook(),
'class' => '',
'placeholder' => '',
'tip' => ''
));
echo Bootstrap::formInputText(array(
'name' => 'codepen',
'label' => 'CodePen',
'value' => $user->codepen(),
'class' => '',
'placeholder' => '',
'tip' => ''
));
echo Bootstrap::formInputText(array(
'name' => 'instagram',
'label' => 'Instagram',
'value' => $user->instagram(),
'class' => '',
'placeholder' => '',
'tip' => ''
));
echo Bootstrap::formInputText(array(
'name' => 'gitlab',
'label' => 'GitLab',
'value' => $user->gitlab(),
'class' => '',
'placeholder' => '',
'tip' => ''
));
echo Bootstrap::formInputText(array(
'name' => 'github',
'label' => 'GitHub',
'value' => $user->github(),
'class' => '',
'placeholder' => '',
'tip' => ''
));
echo Bootstrap::formInputText(array(
'name' => 'linkedin',
'label' => 'LinkedIn',
'value' => $user->linkedin(),
'class' => '',
'placeholder' => '',
'tip' => ''
));
echo Bootstrap::formInputText(array(
'name' => 'xing',
'label' => 'Xing',
'value' => $user->xing(),
'class' => '',
'placeholder' => '',
'tip' => ''
));
echo Bootstrap::formInputText(array(
'name' => 'telegram',
'label' => 'Telegram',
'value' => $user->telegram(),
'class' => '',
'placeholder' => '',
'tip' => ''
));
echo Bootstrap::formInputText(array(
'name' => 'mastodon',
'label' => 'Mastodon',
'value' => $user->mastodon(),
'class' => '',
'placeholder' => '',
'tip' => ''
));
echo Bootstrap::formInputText(array(
'name' => 'vk',
'label' => 'VK',
'value' => $user->vk(),
'class' => '',
'placeholder' => '',
'tip' => ''
));
foreach ($GLOBALS['SOCIAL_NETWORKS'] as $key => $value) {
echo Bootstrap::formInputText(array(
'name' => Text::cleanUrl($value),
'label' => $value,
'value' => $user->getSocialNetwork($value),
'class' => '',
'placeholder' => '',
'tip' => ''
));
}
echo Bootstrap::cardEnd();
?>
</div>

View file

@ -205,6 +205,10 @@ class User
return $this->getValue('vk');
}
public function getSocialNetwork($social) {
return $this->getValue('socials')[Text::cleanUrl($social)];
}
public function profilePicture()
{
$filename = $this->getValue('username') . '.png';

View file

@ -26,7 +26,8 @@ class Users extends dbJSON {
'gitlab'=>'',
'linkedin'=>'',
'mastodon'=>'',
'vk'=>''
'vk'=>'',
'socials' => array()
);
function __construct()
@ -128,6 +129,14 @@ class Users extends dbJSON {
$row['tokenAuth'] = $this->generateAuthToken();
}
$row['socials'] = array();
foreach ($GLOBALS['SOCIAL_NETWORKS'] as $key => $social) {
$socialKey = Text::cleanUrl($social);
if (isset($args[$socialKey])) {
$row['socials'][$socialKey] = $args[$socialKey];
}
}
// Save the database
$this->db[$username] = $row;
return $this->save();