Skip to content
Code-Schnipsel Gruppen Projekte
Bestätigt Commit a17437e7 erstellt von Henning Leutz's avatar Henning Leutz :martial_arts_uniform:
Dateien durchsuchen

feat: quiqqer/package-menu#12

Übergeordneter 08615e54
No related branches found
No related tags found
Keine zugehörigen Merge Requests gefunden
......@@ -70,7 +70,25 @@
<span class="field-container-item">
{{anchor}}
</span>
<input class="field-container-field" type="text" name="url"/>
<input class="field-container-field"
type="text"
name="url"
data-qui="controls/lang/InputMultiLang"
/>
</label>
</td>
</tr>
<tr>
<td>
<label class="field-container">
<span class="field-container-item">
{{site}}
</span>
<input class="field-container-field"
type="text"
name="site"
data-qui="controls/projects/project/site/Input"
/>
</label>
</td>
</tr>
......
......@@ -40,6 +40,7 @@ define('package/quiqqer/menu/bin/Controls/Independent/Items/Anchor', [
status : QUILocale.get('quiqqer/quiqqer', 'status'),
statusDescription: QUILocale.get(lg, 'tpl.statusDescription'),
site : QUILocale.get(lg, 'tpl.Site'),
title : QUILocale.get('quiqqer/quiqqer', 'title'),
linkTitle: QUILocale.get(lg, 'tpl.linkTitle'),
icon : QUILocale.get(lg, 'tpl.icon'),
......@@ -81,6 +82,10 @@ define('package/quiqqer/menu/bin/Controls/Independent/Items/Anchor', [
this.getElm().getElement('[name="status"]').set('checked', true);
}
if (typeof data.site !== 'undefined') {
this.getElm().getElement('[name="site"]').set('value', data.site);
}
IndependentHandler.getTypeName(this.getAttribute('type')).then((name) => {
const TH = this.getElm().getElement('th');
......@@ -128,6 +133,7 @@ define('package/quiqqer/menu/bin/Controls/Independent/Items/Anchor', [
title: this.$Title.getValue(),
icon : Form.elements.icon.value,
data : {
site : Form.elements.site.value,
url : Form.elements.url.value,
status: Form.elements.status.checked ? 1 : 0,
name : this.$Name.getValue()
......
......@@ -5,6 +5,9 @@
use QUI;
use function is_array;
use function is_string;
use function json_decode;
use function trim;
/**
* menu item to an anchor
......@@ -17,14 +20,59 @@ class Anchor extends AbstractMenuItem
* @return string
*/
public function getUrl(): string
{
$Site = $this->getSite();
$data = $this->getCustomData();
$current = QUI::getLocale()->getCurrent();
if (!isset($data['url'])) {
return '';
}
$url = '';
$anchor = [];
if ($Site) {
try {
$url .= $Site->getUrlRewritten();
} catch (QUI\Exception $Exception) {
}
}
if (is_string($data['url'])) {
$anchor = json_decode($data['url'], true);
}
if (is_array($anchor) && isset($anchor[$current])) {
$url .= '#' . trim($anchor[$current], '#');
}
return $url;
}
/**
* @return QUI\Projects\Site|null
*/
public function getSite(): ?QUI\Projects\Site
{
$data = $this->getCustomData();
if (is_array($data) && isset($data['url'])) {
return $data['url'];
if (!is_array($data) || !isset($data['site'])) {
return null;
}
try {
$siteUrl = $data['site'];
$Site = QUI\Projects\Site\Utils::getSiteByLink($siteUrl);
} catch (QUI\Exception $Exception) {
return null;
}
if ($Site->getAttribute('active')) {
return $Site;
}
return '';
return null;
}
//endregion
......
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