本文整理汇总了PHP中Pim\Component\Catalog\Repository\AttributeRepositoryInterface::findMediaAttributeCodes方法的典型用法代码示例。如果您正苦于以下问题:PHP AttributeRepositoryInterface::findMediaAttributeCodes方法的具体用法?PHP AttributeRepositoryInterface::findMediaAttributeCodes怎么用?PHP AttributeRepositoryInterface::findMediaAttributeCodes使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Pim\Component\Catalog\Repository\AttributeRepositoryInterface
的用法示例。
在下文中一共展示了AttributeRepositoryInterface::findMediaAttributeCodes方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getMediaAttributes
/**
* Get the media attributes
*
* @return string[]
*/
public function getMediaAttributes()
{
if (null === $this->mediaAttributes) {
$this->mediaAttributes = $this->attributeRepository->findMediaAttributeCodes();
}
return $this->mediaAttributes;
}
示例2: transform
/**
* Transforms a relative path to absolute. Data must be provided in the pivot format.
*
* $item exemple:
* [
* 'side_view' => [
* [
* 'locale' => null,
* 'scope' => null,
* 'data' => [
* 'filePath' => 'cat_003.png',
* 'originalFilename' => 'cat_003.png'
* ]
* ]
* ]
* ]
*
* @param array $attributeValues An associative array (attribute_code => values)
* @param string $filePath The absolute path
*
* @return array
*/
public function transform(array $attributeValues, $filePath)
{
$mediaAttributes = $this->attributeRepository->findMediaAttributeCodes();
foreach ($attributeValues as $code => $values) {
if (in_array($code, $mediaAttributes)) {
foreach ($values as $index => $value) {
if (isset($value['data']) && isset($value['data']['filePath'])) {
$dataFilePath = $value['data']['filePath'];
$attributeValues[$code][$index]['data']['filePath'] = sprintf('%s%s%s', $filePath, DIRECTORY_SEPARATOR, $dataFilePath);
}
}
}
}
return $attributeValues;
}
示例3: process
/**
* {@inheritdoc}
*/
public function process($product)
{
$parameters = $this->stepExecution->getJobParameters();
$structure = $parameters->get('filters')['structure'];
$channel = $this->channelRepository->findOneByIdentifier($structure['scope']);
$this->productBuilder->addMissingProductValues($product, [$channel], $channel->getLocales()->toArray());
$productStandard = $this->normalizer->normalize($product, 'json', ['channels' => [$channel->getCode()], 'locales' => array_intersect($channel->getLocaleCodes(), $parameters->get('filters')['structure']['locales'])]);
if ($this->areAttributesToFilter($parameters)) {
$attributesToFilter = $this->getAttributesToFilter($parameters);
$productStandard['values'] = $this->filterValues($productStandard['values'], $attributesToFilter);
}
if ($parameters->has('with_media') && $parameters->get('with_media')) {
$directory = $this->stepExecution->getJobExecution()->getExecutionContext()->get(JobInterface::WORKING_DIRECTORY_PARAMETER);
$this->fetchMedia($product, $directory);
} else {
$mediaAttributes = $this->attributeRepository->findMediaAttributeCodes();
$productStandard['values'] = array_filter($productStandard['values'], function ($attributeCode) use($mediaAttributes) {
return !in_array($attributeCode, $mediaAttributes);
}, ARRAY_FILTER_USE_KEY);
}
$this->detacher->detach($product);
return $productStandard;
}
示例4: let
function let(AttributeRepositoryInterface $attributeRepository)
{
$attributeRepository->findMediaAttributeCodes()->willReturn(['view', 'manual']);
$this->beConstructedWith($attributeRepository, ['.', ','], ['Y-m-d', 'd-m-Y']);
}