本文整理汇总了PHP中Magento\Catalog\Model\Category::getParentIds方法的典型用法代码示例。如果您正苦于以下问题:PHP Category::getParentIds方法的具体用法?PHP Category::getParentIds怎么用?PHP Category::getParentIds使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Magento\Catalog\Model\Category
的用法示例。
在下文中一共展示了Category::getParentIds方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: testGetParentIds
public function testGetParentIds()
{
$this->assertEquals([], $this->_model->getParentIds());
$this->_model->unsetData();
$this->_model->load(4);
$this->assertContains(3, $this->_model->getParentIds());
$this->assertNotContains(4, $this->_model->getParentIds());
}
示例2: processDelete
/**
* @param Category $category
* @return void
*/
public function processDelete(Category $category)
{
/** @var \Magento\Catalog\Model\ResourceModel\Category $resourceModel */
$resourceModel = $category->getResource();
/**
* Update children count for all parent categories
*/
$parentIds = $category->getParentIds();
if ($parentIds) {
$childDecrease = $category->getChildrenCount() + 1;
// +1 is itself
$data = ['children_count' => new \Zend_Db_Expr('children_count - ' . $childDecrease)];
$where = ['entity_id IN(?)' => $parentIds];
$resourceModel->getConnection()->update($resourceModel->getEntityTable(), $data, $where);
}
}
示例3: changeParent
/**
* Move category to another parent node
*
* @param \Magento\Catalog\Model\Category $category
* @param \Magento\Catalog\Model\Category $newParent
* @param null|int $afterCategoryId
* @return $this
*/
public function changeParent(\Magento\Catalog\Model\Category $category, \Magento\Catalog\Model\Category $newParent, $afterCategoryId = null)
{
$childrenCount = $this->getChildrenCount($category->getId()) + 1;
$table = $this->getEntityTable();
$adapter = $this->_getWriteAdapter();
$levelFiled = $adapter->quoteIdentifier('level');
$pathField = $adapter->quoteIdentifier('path');
/**
* Decrease children count for all old category parent categories
*/
$adapter->update($table, array('children_count' => new \Zend_Db_Expr('children_count - ' . $childrenCount)), array('entity_id IN(?)' => $category->getParentIds()));
/**
* Increase children count for new category parents
*/
$adapter->update($table, array('children_count' => new \Zend_Db_Expr('children_count + ' . $childrenCount)), array('entity_id IN(?)' => $newParent->getPathIds()));
$position = $this->_processPositions($category, $newParent, $afterCategoryId);
$newPath = sprintf('%s/%s', $newParent->getPath(), $category->getId());
$newLevel = $newParent->getLevel() + 1;
$levelDisposition = $newLevel - $category->getLevel();
/**
* Update children nodes path
*/
$adapter->update($table, array('path' => new \Zend_Db_Expr('REPLACE(' . $pathField . ',' . $adapter->quote($category->getPath() . '/') . ', ' . $adapter->quote($newPath . '/') . ')'), 'level' => new \Zend_Db_Expr($levelFiled . ' + ' . $levelDisposition)), array($pathField . ' LIKE ?' => $category->getPath() . '/%'));
/**
* Update moved category data
*/
$data = array('path' => $newPath, 'level' => $newLevel, 'position' => $position, 'parent_id' => $newParent->getId());
$adapter->update($table, $data, array('entity_id = ?' => $category->getId()));
// Update category object to new data
$category->addData($data);
$category->unsetData('path_ids');
return $this;
}
示例4: isCategoryProperForGenerating
/**
* @param \Magento\Catalog\Model\Category $category
* @param int $storeId
* @return bool
*/
protected function isCategoryProperForGenerating($category, $storeId)
{
if ($category->getParentId() != \Magento\Catalog\Model\Category::TREE_ROOT_ID) {
list(, $rootCategoryId) = $category->getParentIds();
return $rootCategoryId == $this->storeManager->getStore($storeId)->getRootCategoryId();
}
return false;
}
示例5: testVerifyIds
public function testVerifyIds()
{
$ids = $this->_model->verifyIds($this->_model->getParentIds());
$this->assertNotContains(100, $ids);
}
示例6: getCategoryQueryTerm
public function getCategoryQueryTerm(Category $category, $store = null)
{
$queryType = $this->helper->getCategoryQueryType($store);
if ($queryType == CategoryQueryType::NAME) {
return $category->getName();
}
$parents = $category->getParentCategories();
$parentIds = array_intersect($category->getParentIds(), array_keys($parents));
switch ($queryType) {
case CategoryQueryType::FULL_PATH:
break;
case CategoryQueryType::NAME_AND_PARENT_NAME:
$parentId = $category->getParentId();
$parentIds = in_array($parentId, $parentIds) ? [$parentId] : [];
break;
case CategoryQueryType::NAME_AND_ROOT_NAME:
$parentIds = array_slice($parentIds, 0, 1);
break;
}
$names = array_map(function ($id) use($parents) {
return $parents[$id]->getName();
}, $parentIds);
$names[] = $category->getName();
return implode(' ', $names);
}
示例7: isInRootCategoryList
/**
* Check is category in list of store categories
*
* @param \Magento\Catalog\Model\Category $category
* @return boolean
*/
public function isInRootCategoryList($category)
{
$pathIds = $category->getParentIds();
return in_array($this->_storeManager->getStore()->getRootCategoryId(), $pathIds);
}
示例8: isCategoryProperForGenerating
/**
* @param \Magento\Catalog\Model\Category $category
* @param int $storeId
* @return bool
*/
protected function isCategoryProperForGenerating($category, $storeId)
{
if (isset($this->acceptableCategories[$storeId]) && isset($this->acceptableCategories[$storeId][$category->getId()])) {
return $this->acceptableCategories[$storeId][$category->getId()];
}
$acceptable = false;
if ($category->getParentId() != \Magento\Catalog\Model\Category::TREE_ROOT_ID) {
list(, $rootCategoryId) = $category->getParentIds();
$acceptable = $rootCategoryId == $this->storeManager->getStore($storeId)->getRootCategoryId();
}
if (!isset($this->acceptableCategories[$storeId])) {
$this->acceptableCategories[$storeId] = [];
}
$this->acceptableCategories[$storeId][$category->getId()] = $acceptable;
return $acceptable;
}
示例9: getParentIds
/**
* {@inheritdoc}
*/
public function getParentIds()
{
$pluginInfo = $this->pluginList->getNext($this->subjectType, 'getParentIds');
if (!$pluginInfo) {
return parent::getParentIds();
} else {
return $this->___callPlugins('getParentIds', func_get_args(), $pluginInfo);
}
}