Magento dışında uygulamayı sevk

2 Cevap php

Ben Magento'nın sevk sisteminin nasıl çalıştığını tam olarak anlamaya çalışıyorum.

Ben uygulama dizininin dışından düzen belli bir bölümünü (örneğin gövde) göndermek istiyorum.

Ben bugüne kadar ne;

<?php
$app          = Mage::app();
$myRequestUri = '/checkout/cart';

$front        = $app->getFrontController();
$request      = $front->getRequest();

$request->setRequestUri($myRequestUri);

// dispatch everything
$front->dispatch();
?>

Dispatching goes OK, but i need to strip this down to just the body or a certain block. Also the generated HTML should be returned instead of outputting it directly (better not using output buffering).

/ / Roland

Edit: I've added the progress i made, stil leaves me with some questions.

2 Cevap

Ben denemedim, ama kongre ile kırmak ve sadece $ _SERVER ['REQUEST_URI'] içine kendi URL şut olabilir. Bu kötü biçimi olarak kabul ediyor, ama ben çekirdeğini hack önce de yapardım.

EDIT: Based on your edit, glad you're getting some response. So now the problem is that you have all the HTML being returned on a page? For some pages, it may not make sense to strip out HTML. What information are we actually trying to retrieve.

Eğer gerçekten bir sayfa şerit gerekiyorsa Yani, ne yapmak gerekir sayfa düzenini değiştirmektir. Bu bilgiler düzen xml dosyalarında saklanır. Bu değişiklik adil biraz gerektirecektir, ancak fikir komut satırı işlemi denetler bir modül (isset ($ _SERVER ['ARGC']) işe yarayabilir) eklemek için, ve sonra özel bir kolu yükler ({[(0) ]}), hangi başlık bilgilerini yankı tüm phtml dosyaları sıfırlar. Bu güvenilir ve çekirdek dosyaları hack olmadan yapmak için sorunlu olacak, bu yüzden w / varsayılan bilgileri o yeni bir sayfa oluşturarak bakarak öneririm.

Hope that helps, Joe

Bu arada, Joe bana yardım ettiğin için teşekkürler ben henüz, yine bir sürü gelişme, ama hala orada yapılan ;-)

Ne ben aslında ulaşmak istediğiniz magento herhangi bir sayfa sevk edilebilir olmasıdır. Örneğin, geçerli bir HTTP POST isteği / müşteri / hesap / login beni hala oturum gerektiğini

Yanıtın gövdesini işleme hariç. Ben yerine ben programlı bir şekilde (ilgili istenen düzeni xml tanımlı) bir blok almak istiyorum, düzen varsayılan olarak işlenecek istemiyorum.

Kısa kod örneği, onu görüyorum nasıl.

<?php
// code from previous post
// - load, set request uri, dispatch

$someBlock = getABlock('breadcrumbs'); // e.g. name attribute value in the xml
echo $someBlock->toHtml();
?>

Iyi ancak (eğer onun mümkünse) ön denetleyicisi uzatmak için iyi bir fikir olduğundan emin değil im, yerel kod havuzu bu işleme olacaktır.

Ben düzeni güncelleştirme kolları hakkında bilmek .. bir düzen güncelleyebilirsiniz değil mi? Onlar ne demek istiyorsun ...