Хобрук: Ваш путь к мастерству в программировании

Как отобразить название категории на странице корзины в Magento

Я пытаюсь отобразить категорию продукта на странице корзины, но возвращает пустой массив. Я использую файл /app/code/core/Mage/Checkout/Block/Cart/Item/Renderer.php

Мой код

public function getCustumcatId(){
    $proid=$this->getProduct()->getId();
    $mproduct = Mage::getModel('catalog/product')->load($proid);
    $ids=$this->getProduct()->getCategoryIds();
    return $ids;
}
17.12.2011

Ответы:


1

Продукт может быть назначен многим категориям, поэтому без значительных изменений вы не сможете узнать, из какой категории был получен этот продукт, однако это может сделать то, что вам нужно от этого класса:

<?php

$_catCollection = $this->getItem()->getProduct()->getCategoryCollection();

foreach ($_catCollection as $_category) {
  // do stuff with your Mage_Catalog_Model_Category
}
17.12.2011

2

После ряда проб и ошибок, наконец, у меня есть ответ на вопрос. И я хочу поделиться этим.. Надеюсь, это кому-то поможет..

Скопируйте /app/code/core/Mage/Checkout/Block/Cart/Item/Renderer.php в /app/code/local/Mage/Checkout/Block/Cart/Item/Renderer.php и внесите это изменение:

public function getCustumcatId()
{
    $proid=$this->getProduct()->getId();
    $categoryIds=$this->getProduct()->getCategoryIds($proid);
    foreach($categoryIds as $categoryId)
    {
        $category = Mage::getModel('catalog/category')->load($categoryId);
    }
    return  $category->getName();
}

А для отображения названия категории на странице корзины откройте /app/design/frontend/em0014/default/template/checkout/cart/item/default.php возле строки №36

<?php 
    $mycat_name=$this->htmlEscape($this->getCustumcatId());
    echo "Categoryid".$mycat_name."<br>";
?>
18.12.2011
  • Добро пожаловать в StackOverflow. Я внес одно исправление в ваш ответ, потому что вносить изменения в файлы ядра — плохая идея. Вместо этого скопируйте файл в local и внесите изменения там. Также, пожалуйста, поставьте галочку рядом с вашим ответом, чтобы показать другим, что это правильный ответ. 18.12.2011
  • Привет, Clockworkgeek, Вы правы, внесение изменений в основные файлы не рекомендуется. Мы можем поместить все файлы в локальные папки. 28.05.2013
  • Это все еще плохая практика. Вы должны научиться делать перезаписи. Это делает ваш код намного чище. 05.06.2015
  • Новые материалы

    Учебные заметки JavaScript Object Oriented Labs
    Вот моя седьмая неделя обучения программированию. После ruby ​​и его фреймворка rails я начал изучать самый популярный язык интерфейса — javascript. В отличие от ruby, javascript — это более..

    Разбор строк запроса в vue.js
    Иногда вам нужно получить данные из строк запроса, в этой статье показано, как это сделать. В жизни каждого дизайнера/разработчика наступает момент, когда им необходимо беспрепятственно..

    Предсказание моей следующей любимой книги 📚 Благодаря данным Goodreads и машинному обучению 👨‍💻
    «Если вы не любите читать, значит, вы не нашли нужную книгу». - J.K. Роулинг Эта статья сильно отличается от тех, к которым вы, возможно, привыкли . Мне очень понравилось поработать над..

    Основы принципов S.O.L.I.D, Javascript, Git и NoSQL
    каковы принципы S.O.L.I.D? Принципы SOLID призваны помочь разработчикам создавать надежные, удобные в сопровождении приложения. мы видим пять ключевых принципов. Принципы SOLID были разработаны..

    Как настроить Selenium в проекте Angular
    Угловой | Селен Как настроить Selenium в проекте Angular Держите свое приложение Angular и тесты Selenium в одной рабочей области и запускайте их с помощью Mocha. В этой статье мы..

    Аргументы прогрессивного улучшения почти всегда упускают суть
    В наши дни в кругах веб-разработчиков много болтают о Progressive Enhancement — PE, но на самом деле почти все аргументы с обеих сторон упускают самую фундаментальную причину, по которой PE..

    Введение в Джанго Фреймворк
    Схема «работать умно, а не усердно» В этой и последующих статьях я познакомлю вас с тем, что такое фреймворк Django и как создать свое первое приложение с помощью простых и понятных шагов, а..