0

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>
4

2 に答える 2

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>
于 2013-09-01T07:15:15.337 に答える
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 ---------------------------->
于 2016-10-07T05:03:05.670 に答える