Magento: esternamente ottenere URL relativo alle categorie di
-
21-08-2019 - |
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é?
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)