3

Magentoで静的ブロックをポップアップウィンドウとして表示しようとしていますが、コードを機能させることができないようです。

インターネット上のさまざまな場所で、私が望むものにかなり近いと思われるコードを見つけましたが、結果を得ることができません。基本コードを使用して「トップリンク」を自分のサイトに戻すので、基本が機能することがわかります。

Magentoのルートフォルダーにスクリプトを作成し、次のdelpopup.phpコードを挿入しました。

<?php
require_once('app/Mage.php');
umask(0);

$layout = Mage::app()
    ->getLayout();

$layout
    ->getUpdate()
    ->addHandle('default')
    ->load();

$layout
    ->generateXml()
    ->generateBlocks();

echo '<p>before</p>';

echo $layout
    ->createBlock('cms/block')
    ->setBlockId('delivery-info')
    ->toHtml();

echo '<p>after</p>';
?>

残念ながら、コードは静的ブロックを表示しません。出力のその部分は空白です。

アイデアは、Magentoの通常のページにリンクを配置して、配信をポップアップさせることができるということです。このような:

<a title="" onclick="popWin('http://www.mysite.com.au/delpopup.php', 'deliveryinfo', 'width=300,height=300,left=0,top=0,location=no,status=yes,scrollbars=yes,resizable=yes'); return false;" href="#">Delivery Info</a>

基本的に、Magentoサイトのテーマを使用するポップアップウィンドウに静的ブロックを表示できるようにしたいです。任意のアイデアをいただければ幸いです。

4

2 に答える 2

3

私が思ったように、問題は間違っていることにありますBlock Id。これで、cmsを表示できるようになりました。

さて、問題は、テーマをどのように機能させるかということです。

テーマが何を意味するのかよくわかりません。<default>タグに含まれているcssが意味する場合は、次を使用できます。

Mage::getDesign()->setTheme('your theme');

echo $layout->getBlock('head')->toHtml();

xmlの生成が完了したら、そのコードを次の後に配置することを意味します。

$layout
    ->generateXml()
    ->generateBlocks();
于 2012-08-26T13:06:10.040 に答える
2

まず、ポップアップ内にスローするタイプのレイアウトをレンダリングするために、コントローラーとブロックをセットアップします。したがって、スタンドアロンのphpファイル内でこれを行う代わりに、特定のコントローラーアクション内の通常のメイジフレームワーク内でこれを行います。

次に、それが機能するようになったら、問題はそれをポップアップにプルする方法です。ヒットするURLを指定できる素晴らしいjqueryポップアップウィジェットを使用します。次に、上記の手順1で準備したものを渡します。

インスピレーションを得るために見てみたいと思うかもしれませんadminhtml/default/default/template/popup.phtml。これは実際には管理者向けのポップアップテンプレートであり、フロントエンドではありませんが、彼らが何をしたかを確認できます。

headフロントエンドの一般的な配色/ルックアンドフィールを提供するために、すべてのCSSとJSをプルするブロックを含む、いくつかの標準的なMagentoブロックをプルしていますが、ナビゲーションなどはすべて含まれていません。

于 2012-08-24T04:38:20.327 に答える