Pregunta

Estoy construyendo un sitio web, y ha instalado Magento en el /tienda/ subdirectorio.Me gustaría integrar la parte superior de las categorías en el menú de mi no-sitio web de Magento, así que usted puede navegar directamente en la categoría.Para ello necesito los nombres de categoría y la dirección url.

Magento categorías son:

  • Plantillas
    • Color
    • Tema
    • General
  • Otros productos

Necesitaba obtener una lista de categorías por debajo de las Plantillas de nivel superior, así que me escribió el siguiente código.Es mi primer intento con la integración con Magento, tan gentil :-) :

<?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>";
        }
    }
}
?>

Este correctamente obtiene los nombres y categorías, pero la URL que devuelve son absolutos URL completa de la página, tales como "http://example.com/shop/templates/theme.html".

En primer lugar, ¿cómo puedo recuperar la dirección URL relativa de Magento?

En segundo lugar, la URL generada parece que sólo será correcta si puedo configurar el web/insegura/base_url ajuste a la http://example.com/shop/.Si he de poner esto a {{base_url}} en su lugar (que preferimos durante el desarrollo ya que el uso de virtual hosting basado en svn copias de trabajo), el /la tienda/ parte que falta, es decir:"http://example.com/templates/theme.html".

Alguna idea de por qué?

¿Fue útil?

Solución

Creo que se puede alcanzar todas sus necesidades al jugar con los ajustes en el sistema> Configuración> web

Lo primero que iba a tratar está marcando URL base (seguros y no seguros si es necesario) a / (barra diagonal), y luego el sistema> Gestión de caché va> a reconstruir reescrituras URL Catalog.

Si eso no funciona, jugar con la configuración, apuesta que se puede conseguir que funcione. Se advierte sin embargo, que hará que magento poner las direcciones URL relativas en base de feeds de Google, etc = malo! Así que no lo haga en la producción.

Mi copia dev está en el trabajo, inaccesible desde aquí, así que no se puede probar por ti.

Además, para su script de arriba, usted podría intentar:

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

(puede que no necesite el bit html al final, depende de su configuración)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top