<?php
add_filter( 'upload_mimes', 'svg_upload_allow' );
# Добавляет SVG в список разрешенных для загрузки файлов.
function svg_upload_allow( $mimes ) {
$mimes['svg'] = 'image/svg+xml';
return $mimes;
}
add_filter( 'wp_check_filetype_and_ext', 'fix_svg_mime_type', 10, 5 );
# Исправление MIME типа для SVG файлов.
function fix_svg_mime_type( $data, $file, $filename, $mimes, $real_mime = '' ){
// WP 5.1 +
if( version_compare( $GLOBALS['wp_version'], '5.1.0', '>=' ) ){
$dosvg = in_array( $real_mime, [ 'image/svg', 'image/svg+xml' ] );
}
else {
$dosvg = ( '.svg' === strtolower( substr( $filename, -4 ) ) );
}
// mime тип был обнулен, поправим его
// а также проверим право пользователя
if( $dosvg ){
// разрешим
if( current_user_can('manage_options') ){
$data['ext'] = 'svg';
$data['type'] = 'image/svg+xml';
}
// запретим
else {
$data['ext'] = false;
$data['type'] = false;
}
}
return $data;
}
# ограничиваем размер загружаемых файлов по типу
add_filter( 'wp_handle_sideload'.'_prefilter', 'check_file_upload_size' );
add_filter( 'wp_handle_upload'.'_prefilter', 'check_file_upload_size' );
function check_file_upload_size( $file ){
// для SVG
if( false !== strpos( $file['type'], 'image/svg+xml') ){
$size_limit = 2048; // макс размер в KB
}
// для всех остальных картинок
elseif( false !== strpos( $file['type'], 'image') ){
$size_limit = 4096;
}
if( isset($size_limit) ){
$size_limit *= 1024;
if( intval($file['size']) > $size_limit )
$file['error'] = 'ERROR: Размер этого типа файлов не может превышать '. size_format( $size_limit );
}
return $file;
}
<meta name="robots" content="follow, index">
body.home.page-template-default.page.page-id-5390.theme-xstore.woocommerce-js.et_cart-type-1.et_b_dt_header-overlap.et_b_mob_header-overlap.wide.et-preloader-off.et-catalog-off.elementor-default.elementor-kit-10.elementor-page.elementor-page-5390.wpdiscuz_7\.6\.19.e--ua-blink.e--ua-opera.e--ua-webkit.et-preloader-hide
{
padding-top:0px;
}
body padding-top:10%
стоит let scene, camera, renderer;
let path, tubeGeometry;
const molecules = [];
const moleculeCount = 2000;
const moleculeGeometry = new THREE.SphereGeometry(0.05, 16, 16);
const moleculeMaterial = new THREE.MeshBasicMaterial({ color: 0x3076e2 });
const canvas = document.getElementById("myCanvas");
const tubeRadius = canvas.offsetWidth / 176;
const segmentCount = 400; // Увеличили количество сегментов для еще большей плавности
const rotationAngle = Math.PI / 3.5; // 45 degrees in radians
const speedCoefficient = 0.00005; // Еще медленнее движение
let clock = new THREE.Clock();
const fps = 60; // Частоту кадров оставляем на 60
let interval = 1000 / fps;
let lastTime = 0;
function init() {
// Устанавливаем сцену, камеру и рендерер
scene = new THREE.Scene();
scene.background = new THREE.Color(0xffffff);
camera = new THREE.PerspectiveCamera(75, 1, 0.1, 1000);
renderer = new THREE.WebGLRenderer({ canvas: canvas });
renderer.setSize(600, 600);
createOvalPath();
createMolecules();
updateCameraPosition();
window.addEventListener("resize", onWindowResize, false);
onWindowResize();
animate(0);
}
function createOvalPath() {
// Создаем эллиптическую трубу пропорциональную размеру canvas
const canvasSize = Math.min(
renderer.domElement.width,
renderer.domElement.height
);
const a = canvasSize / 35;
const b = canvasSize / 70;
const points = [];
for (let i = 0; i <= segmentCount; i++) {
const angle = (i / segmentCount) * Math.PI * 2;
const x = a * Math.cos(angle);
const y = b * Math.sin(angle);
const z = 0;
const rotatedX = x * Math.cos(rotationAngle) - z * Math.sin(rotationAngle);
const rotatedZ = x * Math.sin(rotationAngle) + z * Math.cos(rotationAngle);
points.push(new THREE.Vector3(rotatedX - canvasSize / 80, y, rotatedZ));
}
path = new THREE.CatmullRomCurve3(points);
tubeGeometry = new THREE.TubeGeometry(path, 400, tubeRadius, 16, true);
}
function createMolecules() {
molecules.length = 0;
for (let i = 0; i < moleculeCount; i++) {
const molecule = new THREE.Mesh(moleculeGeometry, moleculeMaterial);
scene.add(molecule);
molecules.push({
mesh: molecule,
position: Math.random(),
speed: Math.random() * 0.05 + 0.01 // Еще медленное движение
});
}
}
function updateCameraPosition() {
const canvasSize = Math.min(
renderer.domElement.width,
renderer.domElement.height
);
camera.position.z = canvasSize / 33;
}
function onWindowResize() {
const canvasSize = Math.min(window.innerWidth, window.innerHeight);
renderer.setSize(canvasSize, canvasSize);
camera.aspect = 1;
camera.updateProjectionMatrix();
createOvalPath();
updateCameraPosition();
}
function animate(time) {
requestAnimationFrame(animate);
const delta = clock.getDelta();
if (time - lastTime >= interval) {
lastTime = time;
molecules.forEach((molecule) => {
molecule.position += molecule.speed * delta;
if (molecule.position > 1) molecule.position -= 1;
const pointOnPath = path.getPointAt(molecule.position);
molecule.mesh.position.lerp(pointOnPath, 0.05);
});
renderer.render(scene, camera);
}
}
init();
@echo off
for /f "tokens=2 delims==" %%I in ('wmic os get localdatetime /value') do set "DT=%%I"
set "YY=%DT:~2,2%"
set "YYYY=%DT:~0,4%"
set "MM=%DT:~4,2%"
set "DD=%DT:~6,2%"
set "HH=%DT:~8,2%"
set "MIN=%DT:~10,2%"
set "SS=%DT:~12,2%"
.\ffmpeg -f dshow -i video="USB2.0 HD UVC WebCam":audio="Набор микрофонов (Realtek(R) Audio)" "V_%YYYY%%MM%%DD%_%HH%%MIN%%SS%.mp4"
function changeSVGValuesPeriodically() {
let height = 300;
let decreasing = true;
const interval = setInterval(() => {
console.log("Current height:", height);
let gradientColor;
if (height >= 0 && height < 100) {
gradientColor = "#FF0000";
} else if (height >= 100 && height < 200) {
gradientColor = "#FF6600";
} else {
gradientColor = "#003822";
}
if (decreasing) {
height -= 2;
if (height <= 0) {
decreasing = false;
}
} else {
height += 2;
if (height >= 300) {
decreasing = true;
}
}
const svgElement = document.querySelector('.line svg');
const rectElement = document.querySelector('.line rect');
const imgElement = document.querySelector('.img');
svgElement.setAttribute('height', height);
svgElement.setAttribute('viewBox', `0 0 10 ${height}`);
const gradientElement = document.querySelector('#paint0_linear_1633_114613');
gradientElement.querySelector('stop').setAttribute('stop-color', gradientColor);
gradientElement.querySelector('stop').setAttribute('offset', height / 300);
rectElement.setAttribute('height', height);
imgElement.style.height = `${height}px`;
}, 40);
}
changeSVGValuesPeriodically();
User-agent: *
Disallow: /*?
server {
listen 80;
server_name example.com;
location / {
if ($args) {
return 403; # Запретить доступ к страницам с GET параметрами
}
# Ваша дальнейшая конфигурация для обработки запросов
}
}
RewriteEngine On
RewriteCond %{QUERY_STRING} .+
RewriteRule ^(.*)$ $1? [R=301,L]