Олег

Олег

С нами с 19 декабря 2016; Место в рейтинге пользователей: #492
Олег
20 декабря 2024, 00:21
0
Превьюшки нашел.
Они в этом массиве [_embedded][items][номер файла][sizes]

Остался вопрос с кешированием
Олег
19 декабря 2024, 22:29
0
У меня получилось вывести список изображений из определенной папки Яндекс Диска (код частично взят из разных источников и названия переменных совпадают). Название папки передаю через GET
Не могу получить превьюшки нужного размера. В запросе их указал, но как их вывести?
Пока получилось вывести какой-то стандартный формат превью.

Подскажите, как вывести нужный размер превью?

И еще вопрос — в идеале прогонять все картинки через phpthumbon, чтобы они кешировались на сайте, но phpthumbon эти ссылки не может обработать. Есть какой-то вариант кешировать превьюшки в папке сайта?

<?php
$token = 'y0_AgAAAAA...................shC_if0A';
$fields = '_embedded.items.name,_embedded.items.type';
$path=isset($_GET['path']);
$limit=isset($_GET['limit']) ? $_GET['limit'] : 20;
$offset=isset($_GET['offset']) ? $_GET['offset'] : 0;
$amount=isset($_GET['amount']) ? $_GET['amount'] : 20;

$ch = curl_init('https://cloud-api.yandex.net/v1/disk/resources?path=' .urlencode($path) .'&limit=' . $limit .'&offset='. $offset.'&amount='. $amount);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: OAuth ' . $token));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HEADER, false);
$res = curl_exec($ch);
curl_close($ch);

$res = json_decode($res, true);
$num_files=count($res[_embedded][items]);
for ($i = 0; $i < $num_files; $i++)
{
$filesname = $res[_embedded][items][$i][name];
$preview = $res[_embedded][items][$i][preview];

$yd_file = '/'.$path.'/'.$filesname;
$ch = curl_init('https://cloud-api.yandex.net/v1/disk/resources/download?preview&size=M&preview_crop=true&preview_size=M&path=' .urlencode($yd_file));
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: OAuth ' . $token));
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);

$exy = curl_exec($ch);
$exy = json_decode($exy, true);
$exy = $exy[href];

echo '<a href="'.$exy.'"><img src="'.$preview.'" alt=""  /></a>';
curl_close($ch);
}
Олег
17 декабря 2024, 17:03
0
Подскажите, как вывести все картинки определенной папки Яндекс Диска? Перечитал инструкцию и не смог понять
Олег
11 ноября 2024, 23:41
0
А что случилось с автором компонента?
Олег
17 сентября 2024, 16:47
0
Подскажите подойдет ли данный компонент для такой задачи:
Нужно, чтобы покупатель на странице оформления заказа прикрепил файл с реквизитами компании.
Олег
01 июня 2024, 23:08
0
тут моих знаний не хватит. Ладно спасибо!
Олег
26 мая 2024, 19:39
0
сам стормозил. надо было в скрипте перед запуском поставить
$mediaSourcePath = ' ';
$bindMediaSourceTv = true;
Олег
26 мая 2024, 16:47
0
у меня после запуска скрипта через консоль перестали отображаться картинки по всему сайту (сайт уже существовал и был заполнен контентом). Вручную отменял настройки.
Это так и должно быть или нужно перед запуском скрипта какие-то еще манипуляции делать? Или скрипт надо только на чистый сайт запускать?
Олег
23 мая 2024, 12:12
0
в Битриксе эта информация идет в массиве с данными о товаре. А как получить эту информацию в ModX?
И потом кнопка присутствует не только в карточке товара, но и в каталоге в каждом товаре
Олег
06 мая 2024, 00:40
0
Если посетитель выбирает опции в фильтре и переходит в товар — все отрабатывает отлично. Но если затем он переходит между товарами через те же «похожие товары» или «недавно просмотренные товары», тогда в куки ничего нового не записывается и в «похожих товарах» выводятся постоянно одни и те же товары.
Как вариант — после перехода в товар из фильтра отображать похожие товары как уже предложили и сразу удалять куки. И далее в каждом товаре проверять наличие куки. При отсутствии куки записать в массив определенный список опций текущего товара, получить список id товаров с таким же набором опций и в «похожих товарах» вывести этот список.

Вот собственно проблема, которую гугл не помог решить:
Как получить в массив или лучше в JSON все опции из списка для текущего товара.
Олег
04 мая 2024, 20:16
0
UPD
Добавил подключение js.cookie.min.js и ваш код заработал. Спасибо!
Олег
04 мая 2024, 11:49
0
Я с JS весьма поверхностно дружу. У кого есть возможность помочь за вознаграждение?
Олег
03 мая 2024, 21:01
0
не прокатит. ведь запрос ?memory=1&vitamin=1 в строке появляется (mFilter2) без перезагрузки страницы и не попадает в GET массив.
Олег
03 мая 2024, 13:50
0
Пока думал и читал понял, что нужна другая логика.
На странице каталога в фильтре выбираю например «Антиоксиданты» и «Аминокислоты». Появляется список подходящих товаров.
Дальше, переходя в товар надо передать из GET запроса выбранные опции.
Внизу товара отобразить 10-12 товаров, в которых эти опции тоже отмечены.
Олег
03 мая 2024, 11:51
0
у вас в примере Data это к примеру article, а Size это название опции. правильно? Но как перечислить все опции? Просто их около 20, а отмечены у каждого товара по 1-4 опции.
И как получить значения для WHERE, в котором тоже могут быть несколько опций?