Нужен download page для DLE 11.0
baseroad 07.04.2016 Стол заказов 1563 4 комментария
Хочу сделать заказ на создание модуля Download page для DLE 11.0. В рунете есть, но там для версий 9.х... Кто возьмется сделать?
baseroad 07.04.2016 Стол заказов 1563 4 комментария
<div id="main-3d-viewer"></div>
<div id="model-buttons"></div>
<!-- Тут выводится ваше доп.поле с файлами -->
<div id="model-links-src" style="display:none;">
{xfvalue_model_files}
</div>
<script>
document.addEventListener('DOMContentLoaded', function () {
const src = document.getElementById('model-links-src');
const box = document.getElementById('model-buttons');
const links = src ? src.querySelectorAll('a[href]') : [];
if (!links.length) return;
// const stl_viewer = new StlViewer(...);
function fileNameFromUrl(url) {
try {
const clean = url.split('?')[0].split('#')[0];
return decodeURIComponent(clean.substring(clean.lastIndexOf('/') + 1));
} catch(e) {
return url;
}
}
function loadModel(url) {
// stl_viewer.remove_model(0);
// stl_viewer.add_model({ id:0, filename:url });
console.log('load:', url);
}
links.forEach(function (a, i) {
const url = a.getAttribute('href');
const text = (a.textContent || '').trim();
const title = text && text !== url ? text : fileNameFromUrl(url);
const btn = document.createElement('button');
btn.type = 'button';
btn.className = 'model-btn';
btn.textContent = title;
btn.dataset.file = url;
btn.addEventListener('click', function () { loadModel(url); });
box.appendChild(btn);
if (i === 0) loadModel(url);
});
});
</script>
<div class="model-viewer-box">
<div id="model-viewer"></div>
</div>
<div class="model-files">
{attachments}
</div>
<button class="model-file-btn"
type="button"
data-model="{link}">
{name}
</button><button data-model="{xfvalue_model_file_1}">{xfvalue_model_name_1}</button><div class="fs-model-wrap">
<div id="main-3d-viewer" class="main-3d-viewer"></div>
<div class="fs-model-buttons">
{attachments}
</div>
</div><button class="fs-model-btn" type="button" data-file="{link}">
{name}
</button>
<script>
document.addEventListener('DOMContentLoaded', () => {
const viewer = document.getElementById('main-3d-viewer');
const buttons = document.querySelectorAll('.fs-model-btn');
function loadModel(fileUrl) {
viewer.innerHTML = 'Здесь загружается модель: ' + fileUrl;
// Тут уже подставляете ваш код загрузки 3D-модели
// например через <model-viewer> или Three.js
}
buttons.forEach((btn, index) => {
btn.addEventListener('click', () => {
loadModel(btn.dataset.file);
});
if (index === 0) {
loadModel(btn.dataset.file);
}
});
});
</script>
