Domanda

Sto costruendo un sito web, e installato Magento in / negozio / sottodirectory. Mi piacerebbe integrare le categorie principali nel menu del mio sito non Magento, in modo da poter navigare direttamente nella categoria. Per questo ho bisogno i nomi delle categorie e URL.

categorie di Magento sono:

  • Modelli
    • Colore
    • Tema
    • Generale
  • Altri prodotti

ho bisogno di ottenere un elenco di categorie al di sotto dei modelli di livello superiore, così ho scritto il seguente codice. E 'il mio primo tentativo con l'integrazione con Magento, in modo da essere gentile :-):

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

Questo ottiene correttamente i nomi e le categorie, ma restituisce del URL sono assoluti URL completo, come ad esempio " http://example.com/shop/templates/theme.html ".

In primo luogo, come faccio a recuperare relativo URL da Magento?

In secondo luogo, l'URL generato sembra essere corretta solo se ho impostato il web / non protetta / impostazione al http: //example.com/shop/ . Se ho impostato questo per {{}} base_url invece (che preferiamo durante lo sviluppo dato che usiamo virtual-server basato svn copie di lavoro), il / negozio / parte mancante, vale a dire: " http://example.com/templates/theme.html ".

Qualsiasi idea del perché?

È stato utile?

Soluzione

Credo che si può ottenere tutte le vostre esigenze, giocando con le impostazioni di sistema> Configurazione> Web

Per prima cosa mi piacerebbe provare sta mettendo di base url (custodito e non protetta se necessario) per / (barra), e poi andare Sistema> gestione della cache> ricostruire riscritture catalogo URL.

Se questo non funziona, giocare con le impostazioni, la scommessa è possibile farlo funzionare. Attenzione però, farà Magento mettere URL relativi a base di Google alimenta ecc = male! Quindi non farlo in produzione.

La mia copia dev è al lavoro, inaccessibile da qui, quindi non può provare per voi.

Inoltre, per lo script di cui sopra, si potrebbe provare:

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

(potrebbe non essere necessario il bit html alla fine, dipende dal vostro config)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top