/** * @param array $blockIds * @param string $locale * * @return array */ public function fetchBlocksByIds(array $blockIds, $locale) { $blockKeys = []; foreach ($blockIds as $blockId) { $blockKeys[] = $this->keyBuilder->generateKey($blockId, $locale); } $blocks = $this->storageReader->getMulti($blockKeys); $decodedBlocks = []; foreach ($blocks as $key => $block) { $decodedBlocks[$key] = $this->decodeBlock($block); } return $decodedBlocks; }
/** * @param array $ids * @param string|null $indexByKey * * @return array */ public function getProductDataByIds(array $ids, $indexByKey = null) { $idKeys = []; foreach ($ids as $id) { $idKeys[] = $this->productKeyBuilder->generateKey($id, $this->locale); } $productsFromStorage = $this->storageReader->getMulti($idKeys); if ($productsFromStorage === null) { return []; } foreach ($productsFromStorage as $key => $product) { $productsFromStorage[$key] = $this->mergeAttributes(json_decode($product, true)); } if ($indexByKey) { return $this->mapKeysToValue($indexByKey, $productsFromStorage); } return $productsFromStorage; }
/** * @param \Spryker\Zed\Gui\Communication\Table\TableConfiguration $config * * @return array */ protected function prepareData(TableConfiguration $config) { $keys = $this->storageClient->getAllKeys(); sort($keys); $result = []; foreach ($keys as $i => $key) { $keys[$i] = str_replace('kv:', '', $key); } $values = $this->storageClient->getMulti($keys); $fixedValues = []; foreach ($values as $i => $value) { $i = str_replace('kv:', '', $i); $fixedValues[$i] = $value; } $values = $fixedValues; foreach ($values as $key => $value) { $url = Url::generate('/storage/maintenance/key', ['key' => $key]); $result[] = ['key' => '<a href="' . $url . '">' . Html::escape($key) . '</a>', 'value' => substr($value, 0, 200)]; } $this->setTotal(count($result)); return $result; }