♻️ Use an array for the site socials

This commit is contained in:
Kazhnuz 2025-07-02 20:19:51 +02:00
parent 611f14bb77
commit 770a65e15c
3 changed files with 41 additions and 2 deletions

View file

@ -19,7 +19,7 @@
<a class="nav-item nav-link active" id="nav-general-tab" data-bs-toggle="tab" data-bs-target="#general" role="tab" aria-controls="nav-general" aria-selected="false"><?php $L->p('General') ?></a> <a class="nav-item nav-link active" id="nav-general-tab" data-bs-toggle="tab" data-bs-target="#general" role="tab" aria-controls="nav-general" aria-selected="false"><?php $L->p('General') ?></a>
<a class="nav-item nav-link" id="nav-advanced-tab" data-bs-toggle="tab" data-bs-target="#advanced" role="tab" aria-controls="nav-advanced" aria-selected="false"><?php $L->p('Advanced') ?></a> <a class="nav-item nav-link" id="nav-advanced-tab" data-bs-toggle="tab" data-bs-target="#advanced" role="tab" aria-controls="nav-advanced" aria-selected="false"><?php $L->p('Advanced') ?></a>
<a class="nav-item nav-link" id="nav-seo-tab" data-bs-toggle="tab" data-bs-target="#seo" role="tab" aria-controls="nav-seo" aria-selected="false"><?php $L->p('SEO') ?></a> <a class="nav-item nav-link" id="nav-seo-tab" data-bs-toggle="tab" data-bs-target="#seo" role="tab" aria-controls="nav-seo" aria-selected="false"><?php $L->p('SEO') ?></a>
<?php //<a class="nav-item nav-link" id="nav-social-tab" data-bs-toggle="tab" data-bs-target="#social" role="tab" aria-controls="nav-social" aria-selected="false"><?php $L->p('Social Networks') ></a>; ?> <a class="nav-item nav-link" id="nav-social-tab" data-bs-toggle="tab" data-bs-target="#social" role="tab" aria-controls="nav-social" aria-selected="false"><?php $L->p('Social Networks') ?></a>
<a class="nav-item nav-link" id="nav-images-tab" data-bs-toggle="tab" data-bs-target="#images" role="tab" aria-controls="nav-images" aria-selected="false"><?php $L->p('Images') ?></a> <a class="nav-item nav-link" id="nav-images-tab" data-bs-toggle="tab" data-bs-target="#images" role="tab" aria-controls="nav-images" aria-selected="false"><?php $L->p('Images') ?></a>
<a class="nav-item nav-link" id="nav-language-tab" data-bs-toggle="tab" data-bs-target="#language" role="tab" aria-controls="nav-language" aria-selected="false"><?php $L->p('Language') ?></a> <a class="nav-item nav-link" id="nav-language-tab" data-bs-toggle="tab" data-bs-target="#language" role="tab" aria-controls="nav-language" aria-selected="false"><?php $L->p('Language') ?></a>
<a class="nav-item nav-link" id="nav-logo-tab" data-bs-toggle="tab" data-bs-target="#logo" role="tab" aria-controls="nav-logo" aria-selected="false"><?php $L->p('Logo') ?></a> <a class="nav-item nav-link" id="nav-logo-tab" data-bs-toggle="tab" data-bs-target="#logo" role="tab" aria-controls="nav-logo" aria-selected="false"><?php $L->p('Logo') ?></a>
@ -400,6 +400,25 @@ echo Bootstrap::formInputHidden(array(
?> ?>
</div> </div>
<div class="tab-pan fade" id="social" role="tabpanel" aria-labelledby="social-tab">
<?php
echo Bootstrap::cardBegin($L->g('Social Networks'));
foreach ($GLOBALS['SOCIAL_NETWORKS'] as $key => $value) {
echo Bootstrap::formInputText(array(
'name' => Text::cleanUrl($value),
'label' => $value,
'value' => $site->getSocialNetwork($value),
'class' => '',
'placeholder' => '',
'tip' => ''
));
}
echo Bootstrap::cardEnd();
?>
</div>
<!-- Images tab --> <!-- Images tab -->
<div class="tab-pane fade" id="images" role="tabpanel" aria-labelledby="images-tab"> <div class="tab-pane fade" id="images" role="tabpanel" aria-labelledby="images-tab">
<?php <?php

View file

@ -719,6 +719,13 @@ function editSettings($args)
$pages->setCustomFields($args['customFields']); $pages->setCustomFields($args['customFields']);
} }
foreach ($GLOBALS['SOCIAL_NETWORKS'] as $key => $social) {
$socialKey = Text::cleanUrl($social);
if (isset($args[$socialKey])) {
$site->setSocialNetwork($socialKey, $args[$socialKey]);
}
}
if ($site->set($args)) { if ($site->set($args)) {
// Check current order-by if changed it reorder the content // Check current order-by if changed it reorder the content
if ($site->orderBy() != ORDER_BY) { if ($site->orderBy() != ORDER_BY) {

View file

@ -58,7 +58,8 @@ class Site extends dbJSON
'avatarQuality' => 100, 'avatarQuality' => 100,
'logo' => '', 'logo' => '',
'markdownParser' => true, 'markdownParser' => true,
'customFields' => '{}' 'customFields' => '{}',
'socials' => array()
); );
function __construct() function __construct()
@ -479,4 +480,16 @@ class Site extends dbJSON
$customFields = Sanitize::htmlDecode($this->getField('customFields')); $customFields = Sanitize::htmlDecode($this->getField('customFields'));
return json_decode($customFields, true); return json_decode($customFields, true);
} }
public function setSocialNetwork($social, $url) {
$key = Text::cleanUrl($social);
if ($this->getField('socials') == NULL) {
$this->db['socials'] = array();
}
$this->db['socials'][$key] = $url;
}
public function getSocialNetwork($social) {
return $this->getField('socials')[Text::cleanUrl($social)];
}
} }