Magento — загрузка продуктов с помощью ajax в текущем дизайне шаблонаPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Magento — загрузка продуктов с помощью ajax в текущем дизайне шаблона

Сообщение Anonymous »

Я создаю расширение magento, в котором мне нужно отображать все продукты в древовидном порядке на левой панели, а затем щелкнуть каждую категорию, чтобы загрузить продукты категории, отправив ajax-запрос. Для отображения дерева категорий я использовал блок.

Я новичок в magento, поэтому решил отправить ajax-запрос на мой контроллер, получить все данные о продуктах в формате JSON и создать HTML во внешнем интерфейсе для отображения продуктов .

Я взял HTML базовой темы с левой полосой в два столбца списка продуктов и использовал его в методе ajax. Я использовал типа

Код: Выделить всё

function loadCategoryProducts(categoryId) {
jQuery.ajax({
url: '/myModule/index/loadcategoryproduct',
type: 'post',
data: {categoryId: categoryId},
success: function(products) {
products = jQuery.parseJSON(products);
if (products != '') {
var html = '';
html += '';
// blah blah blah blah blah to draw html from ajax request
}
html += '';
html += '' // end of category-products product
jQuery('.col-main').html(html);
}
}
});


И мой код контроллера

Код: Выделить всё

public function loadcategoryproductAction() {
$id = $this->getRequest()->getParam('categoryId');
if ($id) {
$_category = Mage::getModel('catalog/category')->load($id);
$product = Mage::getModel('catalog/product');

//load the category's products as a collection
$_productCollection = $product->getCollection()
->addAttributeToSelect('*')
->addCategoryFilter($_category)
->load();

// build an array for conversion
$json_products = array();
foreach ($_productCollection as $_product) {
$_product->getData();
$json_products[] = array(
'name' => $_product->getName(),
'url' => $_product->getProductUrl(),
'description' => nl2br($_product->getShortDescription()),
'price' => $_product->getFormatedPrice(),
'image' => $_product->getImageUrl());
}

$data = json_encode($json_products);

echo $data;
die;
}
}
Это сработало отлично, но я знаю, что это всего лишь статичная вещь, поскольку я использую HTML и CSS базовой темы. Это будет работать только в этой теме. Что делать, если тема магазина magento изменилась?

Итак, я ищу, как отображать продукты в текущей активной теме? Я просто отправляю ajax-запрос на свой контроллер, получаю продукты, и эти продукты должны отображаться в текущем макете темы? Должен быть способ сделать это, который я до сих пор не смог найти. Я гуглил, но все тщетно. Я не люблю использовать для этого какие-либо встроенные расширения. Я хочу, чтобы мое расширение делало все это. Пожалуйста, помогите.

Подробнее здесь: https://stackoverflow.com/questions/246 ... ate-design
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»