Truy cập Tiểu mục không có Danh mục phụ huynh


7

Chúng tôi có danh mục và danh mục phụ sau trong cửa hàng của chúng tôi.

Category: http://yoursite.com/category.html

Sub-category: http://yoursite.com/category/sub-category.html

Có thể truy cập trang danh sách danh mục phụ bằng URL bên dưới

Sub-category: http://yoursite.com/sub-category.html

Trường hợp 1: Truy cập trang danh sách danh mục phụ, ngay cả khi id danh mục chính của nó bị tắt

Trường hợp 2: Truy cập trang danh sách danh mục phụ mà không sử dụng danh mục chính trong URL

Ngoài ra nếu sản phẩm của tôi được gán cho bất kỳ sub-categoryvà đặt mức độ hiển thị Catalog, nó sẽ xuất hiện trên trang danh sách danh mục phụ khi id danh mục của nó bị vô hiệu hóa?

Làm thế nào tôi có thể đạt được điều này ?

Cảm ơn

Câu trả lời:


2

Trong quản trị viên:

Quản trị viên -> Hệ thống -> Cấu hình -> Danh mục -> Tối ưu hóa công cụ tìm kiếm -> Sử dụng Đường dẫn danh mục chính cho các URL danh mục (được đặt thành KHÔNG)

Lập trình:

Mở lớp Mage_Catalog_Model_Urlvà nhận xét dòng dưới đây

//if (null === $parentPath) {
//    $parentPath = $this->getResource()->getCategoryParentPath($category);
//}
//elseif ($parentPath == '/') {
    $parentPath = '';
//}

Dưới function getCategoryRequestPath($category, $parentPath)

Bạn luôn có thể tạo một tệp cục bộ của tệp của mình, chỉ để tránh vượt quá các tệp lõi


1
trong Use Parent Category Path for Category URLstùy chọn ce magento không có ở đó
Visakh B Sujathan


0

tôi có thể khuyên bạn nên thử dưới chức năng mặc định

Xóa đường dẫn danh mục cha mẹ khỏi url và thay đổi nó từ

http://mysite.com/carget/sub-carget.html đến http://mysite.com/sub-carget.html

SỬ DỤNG :

Chuyển đến Bảng quản trị Magento -> Hệ thống -> Cấu hình -> Danh mục -> Tùy chọn Seo

Chọn có hoặc không từ " Use Parent Category Path for Category URLs"

Làm mới chỉ mục url danh mục

Tùy chọn => http://mysite.com/carget/sub-carget.html

Tùy chọn NO => http://mysite.com/sub-c Category.html

Biên tập

    <global>
        <models>
             <catalog>
                <rewrite>
                    <product_url>YourNamespace_Catalog_Model_Product_Url</product_url>
                </rewrite>
            </catalog>
        </models>
   </global>

bạn có thể thử viết lại url cho danh mục. hy vọng điều này có thể làm việc cho bạn. tôi không chắc chắn 100% về việc viết lại url modle nàymagento1.7

Hy vọng điều này chắc chắn sẽ giúp bạn.


Liyakat đã đúng.
Amit Bera

@liyakat, Use Categories Path for Product URLsđặt thành yes. Không thể thấy tùy chọn bạn nói tức là 'Use Parent Category Path for Category URLs'. Phiên bản là1.7.0.2
Lazar

Tôi nên làm gì nếu tôi không thấy tùy chọn như vậy trong quản trị viên Mage của mình?
Lazar

@Lazar, xem câu trả lời cập nhật của tôi. Và bạn có thể thay đổi cần thiết trong mô hình URL của danh mục
liyakat

Cài đặt này ở đâu? (không thể tìm thấy nó trong Magento 1.8.1)
snh_nl

0

Để xóa đường dẫn danh mục cha mẹ khỏi url danh mục con Phương thức ghi đè
lớp như bên dướiMage_Catalog_Model_Url
public function getCategoryRequestPath($category, $parentPath)

public function getCategoryRequestPath($category, $parentPath)
{
    $storeId = $category->getStoreId();
    $idPath = $this->generatePath('id', null, $category);
    $suffix = $this->getCategoryUrlSuffix($storeId);

    if (isset($this->_rewrites[$idPath])) {
        $this->_rewrite = $this->_rewrites[$idPath];
        $existingRequestPath = $this->_rewrites[$idPath]->getRequestPath();
    }

    if ($category->getUrlKey() == '') {
        $urlKey = $this->getCategoryModel()->formatUrlKey($category->getName());
    } else {
        $urlKey = $this->getCategoryModel()->formatUrlKey($category->getUrlKey());
    }

    $categoryUrlSuffix = $this->getCategoryUrlSuffix($category->getStoreId());
    // Code commented to remove parent category path from child category path
    //if (null === $parentPath) {
    //$parentPath = $this->getResource()->getCategoryParentPath($category);
    //}
    //elseif ($parentPath == '/') {
    $parentPath = '';
    //}
    $parentPath = Mage::helper('catalog/category')->getCategoryUrlPath($parentPath,
        true, $category->getStoreId());

    $requestPath = $parentPath . $urlKey . $categoryUrlSuffix;
    if (isset($existingRequestPath) && $existingRequestPath == $requestPath . $suffix) {
        return $existingRequestPath;
    }

    if ($this->_deleteOldTargetPath($requestPath, $idPath, $storeId)) {
        return $requestPath;
    }

    return $this->getUnusedPath($category->getStoreId(), $requestPath,
        $this->generatePath('id', null, $category)
    );
}


Sửa đổi mã dưới đây

if (null === $parentPath) {
    $parentPath = $this->getResource()->getCategoryParentPath($category);
} elseif ($parentPath == '/') {
    $parentPath = '';
}

đến

//if (null === $parentPath) {
//    $parentPath = $this->getResource()->getCategoryParentPath($category);
//} elseif ($parentPath == '/') {
    $parentPath = '';
//}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.