Оптимизировать сайт на DLE
blocbaster 19.08.2015 Стол заказов 1677 2 комментария
Добрый день. Нужно оптимизировать сайт на DLE, пару дней как начались проблемы, из за сайта падает сервер. Не понятно, что вызывает проблему, то ли БД, или еще что.
blocbaster 19.08.2015 Стол заказов 1677 2 комментария
<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>
