문제

웹 사이트를 만들고 / Shop / Subdirectory에 Magento를 설치했습니다. 최상위 카테고리를 Magento가 아닌 사이트의 메뉴에 통합하여 카테고리로 직접 탐색 할 수 있습니다. 이를 위해서는 카테고리 이름과 URL이 필요합니다.

Magento의 범주는 다음과 같습니다.

  • 템플릿
    • 색깔
    • 주제
    • 일반적인
  • 다른 제품들

먼저 템플릿 최상위 수준 아래에 카테고리 목록을 가져와야하므로 다음 코드를 작성했습니다. Magento와의 통합으로 첫 번째 시도이므로 온화하십시오 :-) :

<?php
require_once dirname(__FILE__).'/shop/app/Mage.php';
umask(0);
Mage::app('default');

$helper     = Mage::helper('catalog/category');
$collection = $helper->getStoreCategories();
foreach ($collection as $catalogArray) {
    if ($catalogArray->getName() == "Templates") {
        foreach (explode(",", $catalogArray->getChildren()) as $category) {
            $_category = Mage::getModel('catalog/category')->load($category);
            if($_category->getIsActive()) {
                $caturl = $_category->getUrl();
                $catname = $_category->getName();
            }
            echo "<pre>";
            var_dump($caturl);
            echo "</pre>";

            echo "<pre>";
            var_dump($catname);
            echo "</pre>";
        }
    }
}
?>

이것은 이름과 범주를 올바르게 가져 오지만 URL의 IT 리턴은 절대적인 전체 URL입니다.http://example.com/shop/templates/theme.html".

첫째, Magento에서 상대 URL을 검색하려면 어떻게해야합니까?

둘째, 생성 된 URL은 Web/Unsecure/Base_url 설정을 http://example.com/shop/. 이것을 대신 {{base_url}}로 설정하면 (가상 호스팅 기반 SVN 작업 사본을 사용하기 때문에 개발 중에 선호하는 경우), / shop / part가 누락되었습니다.http://example.com/templates/theme.html".

이유가 있습니까?

도움이 되었습니까?

해결책

시스템> 구성> 웹에서 설정을 통해 모든 요구 사항을 달성 할 수 있다고 생각합니다.

가장 먼저 시도하는 것은 Base URL (필요한 경우 안전하고 안전하지 않음)을 / (전방 슬래시)로 설정 한 다음 시스템> 캐시 관리> 카탈로그 재 작성 URL 재 작성입니다.

그래도 작동하지 않으면 설정을 가지고 놀면 작동 할 수 있습니다. 그래도 Google베이스 피드 등에 Magento가 상대적 URL을 넣을 것입니다. 그러니 생산에서하지 마십시오.

내 개발자 사본은 작동 중이며 여기서는 액세스 할 수 없으므로 시도 할 수 없습니다.

또한 위의 스크립트의 경우 다음을 시도 할 수 있습니다.

$url = "/shop/" . $_category->getUrlKey() . '.html';

(끝에 HTML 비트가 필요하지 않을 수 있습니다. 구성에 따라 다릅니다)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top