У меня был код фрилансера, блок, который показывает слайдер избранных продуктов, с вкладками, соответствующими подкатегориям в пределах.
.phtml файл находится здесь: http://pastebin.com/6jEexZxu
ВотПример загрузки страницы только с 20 или около того SKU (это может быть немного медленно, эта установка не была оптимизирована вообще): http://crunchconcepts.com.au/test_store/magento/
Структура категории выглядит следующим образом:
Слайдер (id = 3)
-> PS3
-> Рекомендуемые
-> Последние добавленные
-> В продаже
-> Xbox
-> В избранном
-> Последние добавления
-> В продаже
... и так далее.Это автоматически загружает новый ползунок для любой подкатегории «Слайдер» и новую вкладку для каждой подкатегории.
Это прекрасно работает (хотя загрузка продуктов по требованию при нажатии на следующую вкладкубыло бы намного лучше), когда в магазине было только около 100 SKU, но когда мы импортировали 1000 тестовых SKU, загрузка страницы зависала только при доступе к домашней странице.Хранилище работает нормально на всех других страницах и в функциях, и только когда блок слайдера удален с домашней страницы, он возвращается к нормальной скорости.
В данный момент он работает на VPS, и загрузка сервера можетПик до 7-8 при попытке получить продукты слайдера.
Кто-нибудь может увидеть, почему это происходит, и что я могу сделать, чтобы это исправить?
Фрилансер в основном перестал отвечать на запросыпо электронной почте теперь, когда у него есть деньги, поэтому его совет не в уравнении!
Обновление:
Хорошо, так что я пытаюсьначать с нуля, и я думаю, что я там ... Или, по крайней мере, я многому учусь!
<?php
$categoryId = 3; // a category id that you can get from admin
$category = Mage::getModel('catalog/category')->load($categoryId);
$parentCat = Mage::getModel('catalog/category')->load($categoryId);
$childCategories = $parentCat->getChildren(); //Child category IDs separated by commas
$children1 = explode(',', $childCategories);
foreach ($children1 as $subCat1){
echo "<br/>";
$parentCat1 = Mage::getModel('catalog/category')->load($subCat1);
$childCategories1 = $parentCat1->getChildren(); //Child category IDs separated by commas
$mainCatName = $parentCat1->getName();
$children2 = explode(',', $childCategories1);
echo "<br/><br/>".$mainCatName;
foreach($children2 as $tabs){
$tab = Mage::getModel('catalog/category')->load($tabs);
echo "<br/><br/>".$tab->getName()."<br/>";
$_category = Mage::getModel('catalog/category')->load($tabs);
$_productCollection = Mage::getResourceModel('catalog/product_collection')
->addStoreFilter()
->addCategoryFilter($_category)
->addAttributeToSelect(array('name','url','small_image'));
if(!empty($_productCollection))
{
foreach ($_productCollection as $_product):
echo $_product->getName(); //get product name
endforeach;
}else{
echo "nothing!";}
}
}
?>
Я получил это, и он отображает названия категорий и идентификаторы, но всякий раз, когда я пытаюсь загрузить товары, он загружает каждый товар в магазине!Я пробовал пару других способов, но он загружает неправильный продукт из случайной категории.Помогите!