2013-08-31 5 views
0

Я создаю простой скрипт для обновления всех цен для всех продуктов определенной категории в Magento. У меня работает код действия, и он обновляет цены. Теперь я создаю форму, в которой есть раскрывающийся список со всеми доступными категориями, а затем текстовое поле, в которое вводится процент. Проблема, с которой я сталкиваюсь, - я не могу получить раскрывающийся список, чтобы заполнить категории, и я схожу с ума. Я попробовал другой аналогичный код и взломал на куски другой код, чтобы попытаться заставить его работать, и это сводит меня с ума. Ниже моя текущая версия взломана - я знаю, что это уродливо и неправильно, но что вы можете сделать. Спасибо, что посмотрели.Magento - Показать все категории в выпадающем списке

<?php 
require 'app/Mage.php'; 
Mage::app(); 
class Mymodule_Pup_Helper_Data extends Mage_Core_Helper_Abstract { 
public function getCategoriesDropdown() { 
$categoriesArray = Mage::getModel(‘catalog/category’) 
->getCollection() 
->addAttributeToSelect(‘name’) 
->addAttributeToSort(‘path’, ‘asc’) 
->addFieldToFilter(‘is_active’, array(‘eq’=>’1′)) 
->load() 
->toArray(); 
foreach ($categoriesArray as $categoryId => $category) { 
if (isset($category['name'])) { 
$categories[] = array(
‘label’ => $category['name'], 
‘level’ =>$category['level'], 
‘value’ => $categoryId 
); 
} 
} 
return $categories; 
} 
} 
?> 
<html> 
<body> 
Update Prices by Category 
<form action="pupped.php" method="post"> 
<select id="category-changer" name="cat" style="width:150px;"> 
<option value="">--Select Category--</option> 
<?php 
$_CategoryHelper = Mage::helper("pup")->getCategoriesDropdown(); 
foreach($_CategoryHelper as $value){ 
foreach($value as $key => $val){ 
if($key=='label'){ 
$catNameIs = $val; 
} 
if($key=='value'){ 
$catIdIs = $val; 
} 
if($key=='level'){ 
$catLevelIs = $val; 
$b =''; 
for($i=1;$i<$catLevelIs;$i++){ 
$b = $b."-"; 
} 
} 
} 
?> 
<option value="<?php echo $catIdIs; ?>"><?php echo $b.$catNameIs ?></option> 
<?php 
} 
?> 
</select> 
Percent: <input type="text" name="per"> 
<input type="Submit"> 
</form> 
</body> 
</html> 

ответ

5

ниже код прибудет подкатегория в выпадающем

<select id="category" class="myinput-text required-entry widthinput" name="category"> 
<?php 
    $parentid=5; // parent id which you want sub category 
    $categories=explode(',',Mage::getModel('catalog/category')->load($parentid)->getChildren()); 
    foreach($categories as $cat){ 
    $category=Mage::getModel('catalog/category')->load($cat); 
?> 
    <option value="<?php echo $category->getId();?>"><?php echo $category->getName();?></option> 
<?php } ?> 
</select> 
+0

Выдающегося спасибо. – Jordan

0
You can use the following code to easily display all categories in the dropdown till level 3: 

   <div align="right" class"all_categories_list" style="display:inline-block;width:50%;">  
        <form> 
         <select class="select" id="option" name="option" onChange="window.document.location.href=this.options[this.selectedIndex].value;" value="GO" style="width: 25%;"> 
          <option value="*">All Categories</option> 
            <?php $_helper = Mage::helper('catalog/category') ?> 
            <?php $_categories = $_helper->getStoreCategories() ?> 
            <?php $currentCategory = Mage::registry('current_category') ?> 
            <?php if (count($_categories) > 0): ?><!-----------Level 1 -----> 
            <?php foreach($_categories as $_category): ?> 
          <option value="<?php echo $_helper->getCategoryUrl($_category) ?>"><?php echo $_category->getName() ?></option> 
            <?php $_category = Mage::getModel('catalog/category')->load($_category->getId()) ?> 
            <?php $_subcategories = $_category->getChildrenCategories()?> 
            <?php if (count($_subcategories) > 0):?><!-----------Level 2 -----> 
            <?php foreach($_subcategories as $_subcategory):?> 
          <option value="<?php echo $_helper->getCategoryUrl($_subcategory)?>"><?php echo $_subcategory->getName() ?></option> 
            <?php $_subcategory = Mage::getModel('catalog/category')->load($_subcategory->getId()) ?>  
            <?php $_subcategoriesss = $_subcategory->getChildrenCategories()?> 
            <?php if (count($_subcategoriesss) > 0):?><!-----------Level 3 -----> 
            <?php foreach($_subcategoriesss as $_subcategoryy):?> 
          <option value="<?php echo $_helper->getCategoryUrl($_subcategoryy)?>"><?php echo $_subcategoryy->getName() ?></option> 
            <?php endforeach; ?> 
            <?php endif; ?> 
            <?php endforeach; ?> 
            <?php endif; ?> 
            <?php endforeach; ?> 
            <?php endif; ?> 
         </select> 
        </form> 
       </div> 
<!------------------------All categories and Subcategories level 3 in dropdown ----------------------------> 
Смежные вопросы