I am working on my extension under admin panel for "Add New Product". On this page in the left navigation "Websites and Categories" are present. I want to change some conditions on query of both collection. Where is the location of this collection query.
1 Answer
don't change the query because these queries are use in other files too.
for the categories
check the block
app/code/core/Mage/Adminhtml/Block/Catalog/Product/Edit/Tab/Categories.php
check this function for category tree
public function getRoot($parentNodeCategory = null, $recursionLevel = 3)
{
if (!is_null($parentNodeCategory) && $parentNodeCategory->getId()) {
return $this->getNode($parentNodeCategory, $recursionLevel);
}
$root = Mage::registry('root');
if (is_null($root)) {
$storeId = (int) $this->getRequest()->getParam('store');
if ($storeId) {
$store = Mage::app()->getStore($storeId);
$rootId = $store->getRootCategoryId();
}
else {
$rootId = Mage_Catalog_Model_Category::TREE_ROOT_ID;
}
$ids = $this->getSelectedCategoriesPathIds($rootId);
$tree = Mage::getResourceSingleton('catalog/category_tree')
->loadByIds($ids, false, false);
if ($this->getCategory()) {
$tree->loadEnsuredNodes($this->getCategory(), $tree->getNodeById($rootId));
}
$tree->addCollectionData($this->getCategoryCollection());
$root = $tree->getNodeById($rootId);
if ($root && $rootId != Mage_Catalog_Model_Category::TREE_ROOT_ID) {
$root->setIsVisible(true);
if ($this->isReadonly()) {
$root->setDisabled(true);
}
}
elseif($root && $root->getId() == Mage_Catalog_Model_Category::TREE_ROOT_ID) {
$root->setName(Mage::helper('catalog')->__('Root'));
}
Mage::register('root', $root);
}
return $root;
}
for the websites check websites block
app/code/core/Mage/Adminhtml/Block/Catalog/Product/Edit/Tab/Websites.php
for websites check this function
public function getChooseFromStoreHtml($storeTo)
{
if (!$this->_storeFromHtml) {
$this->_storeFromHtml = '<select name="copy_to_stores[__store_identifier__]" disabled="disabled">';
$this->_storeFromHtml.= '<option value="0">'.Mage::helper('catalog')->__('Default Values').'</option>';
foreach ($this->getWebsiteCollection() as $_website) {
if (!$this->hasWebsite($_website->getId())) {
continue;
}
$optGroupLabel = $this->escapeHtml($_website->getName());
$this->_storeFromHtml .= '<optgroup label="' . $optGroupLabel . '"></optgroup>';
foreach ($this->getGroupCollection($_website) as $_group) {
$optGroupName = $this->escapeHtml($_group->getName());
$this->_storeFromHtml .= '<optgroup label=" ' . $optGroupName . '">';
foreach ($this->getStoreCollection($_group) as $_store) {
$this->_storeFromHtml .= '<option value="' . $_store->getId() . '"> ';
$this->_storeFromHtml .= $this->escapeHtml($_store->getName()) . '</option>';
}
}
$this->_storeFromHtml .= '</optgroup>';
}
$this->_storeFromHtml .= '</select>';
}
return str_replace('__store_identifier__', $storeTo->getId(), $this->_storeFromHtml);
}
}