по api инфу, и если брать напрямую картинку то все гуд, инфа доходит моментально, если беру обработанную, то затык в секунду, хотя картинки уже есть сформированные и новые не генерятся, это у него принцип работы такой, или у меня криво работает?
Как вы берёте обработанную?
<?php header('Access-Control-Allow-Origin: *'); header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE'); header('Access-Control-Allow-Credentials: true'); header('Access-Control-Allow-Headers: Authorization, Origin, X-Requested-With, Accept, X-PINGOTHER, Content-Type'); define('MODX_API_MODE', true); define('IN_MANAGER_MODE', true); define('MODX_BASE_PATH', ''); define('MODX_BASE_URL', ''); define('MODX_SITE_URL', ''); include_once(''); $modx->db->connect(); if (empty($modx->config)) { $modx->getSettings(); } \EvolutionCMS\UserManager\Facades\UserManager::loginById(['id' => 1, 'context' => 'mgr']); header('Content-Type: application/json'); $limit = 24; $page = $_GET['page']; $parentId = $_GET['parent_id']; $offset = ($page - 1) * $limit; $products = []; $items = $modx->db->query("SELECT id, pagetitle FROM {$modx->getFullTableName('site_content')} WHERE parent = $parentId AND published = 1 ORDER BY menuindex ASC LIMIT $offset, $limit"); $tvIds = $modx->db->query("SELECT id, name FROM {$modx->getFullTableName('site_tmplvars')} WHERE name IN ('model', 'price', 'image', 'new','discont')"); $tvIdMap = []; while ($row = $modx->db->getRow($tvIds)) { $tvIdMap[$row['name']] = $row['id']; } while ($row = $modx->db->getRow($items)) { $productId = $row['id']; $tvValues = [ 'model' => '', 'price' => '', 'image' => '', 'new' => '' ]; foreach ($tvIdMap as $tvName => $tvId) { $tvQuery = $modx->db->query("SELECT value FROM {$modx->getFullTableName('site_tmplvar_contentvalues')} WHERE contentid = $productId AND tmplvarid = $tvId"); $tvValue = $modx->db->getValue($tvQuery); if ($tvValue !== false) { $tvValues[$tvName] = $tvValue; } } $images = $modx->runSnippet('phpthumb',array('input'=>$tvValues['image'],'options'=>'w=215&h=291&zc=1')); $products[] = [ 'id' => $productId, 'title' => $row['pagetitle'], 'model' => $tvValues['model'], 'price' => $tvValues['price'], 'discount' => $tvValues['discont'], 'image' => $images, 'isNew' => $tvValues['new'] == '1', ]; } echo json_encode(['products' => $products]); ?>
Советую ознакомиться: Рабочий конфиг под nginx
И это отдельно вызывается?
да не по fetch запросу
Если это отдельно от Эво вызывается, я бы копал в сторону каких-нибудь параметров, нужных phpThumb для кеширования, типа, файловых путей, прав доступа к ним и т.д. То есть отладчиком чуть углубился бы внутрь сниппета и потом вызов самой либы и посмотрел, что оно там берет откуда.
Обсуждают сегодня