1

答えはおそらくいくつかの投稿の組み合わせとしてそこにありますが、私はまだMagentoがあまり得意ではないので、とにかく質問する必要があります:

topLinks を cms ページに挿入したいと思います。試してみ<?php echo $this->getChildHtml('topLinks') ?>ましたが、うまくいきません。コードがページ上のテキストとして表示されるだけです。試し{{block type="core/template" name="top.Links" as="topLinks" template="page/template/links.phtml"}}ましたが、何も表示されません。

検索フォームをcmsページに正常に追加した{{block type="core/template" name="top.search" as="topSearch" template="catalogsearch/form.mini.phtml"}}ので、おそらくブロックタイプが間違っているか何かだと思いました。私は何を間違えましたか?

4

3 に答える 3

3

TL;DR : うーん...できません。
なんで?:topLinksブロックはタイプの「コンテナ」ブロックですpage/template_links。これはレイアウトに追加されただけですが、他のレイアウト ハンドルまたはブロックがそれにリンクを追加します。たとえば、customer.xmlレイアウト ファイルの xml のこの部分

<reference name="top.links">
        <action method="addLink" translate="label title" module="customer"><label>My Account</label><url helper="customer/getAccountUrl"/><title>My Account</title><prepare/><urlParams/><position>10</position></action>
    </reference>

My accountそれにリンクを追加します。他にもあります。結論として、topLinks ブロック自体には意味がありません。これは、他のブロックによって変更できる単なるプレースホルダーです。
cms ページがレンダリングされると、レイアウトは既に読み込まれて解析されているため、追加したブロックを他のブロックやレイアウト ファイルで変更することはできません。

于 2013-10-09T08:20:05.093 に答える
1

@マリウスありがとう、そこで何か新しいことを学びました。私はまだ Magento の構造の複雑な詳細を理解するのに苦労していますが、それに取り組んでいます。
@chirag私はそれを試しましたが、phpはcmsページで直接機能しないため、にリンクしようとしhttp://mymagentopage/<?php echo $this->getUrl('customer/account')?>ます。もちろん、直接リンクすることもできhttp://mymagentopage/customer/accountますが、いくつかのリンクでは機能が失われます。
ログインすると、「ログイン」が「ログアウト」に変わり、アカウント画面に移動する代わりに顧客がログアウトします。
商品をカートに入れると「カート」が「カート(2)」に変わります。
など (ウィッシュリストは使用しません)
この機能を取り戻す方法はありますか?

私はそれを行うこのスニペットを見つけましたが、それはcmsページでは機能しないphpです:
<?php if (Mage::getSingleton('customer/session')->isLoggedIn()==0): ?>
<a href="<?php echo $this->getUrl('customer/account/login') ?>"><?php echo $this->__('Log In') ?></a>
<?php else: ?>
<a href="<?php echo $this->getUrl('customer/account/logout') ?>"><?php echo $this->__('Log Out') ?></a>
<?php endif ?>

cmsページでphpを使用できるようにするソリューションにも満足しています。とにかく私は唯一の管理者です。

編集
有効な 解決策を見つけました:
上記のスニペットを含む新しい phtml ファイルを作成しました。テンプレートフォルダーに新しいフォルダー「customphp」を作成し、そこにtest.phtmlとして保存しました。
cms ページにブロックを追加しました: {{block type="core/template" name="whatever_unique-name-i-want" template="customphp/test.phtml"}}
Tada!

これが私がアイデアを得た場所です:http://www.magentocommerce.com/boards/viewthread/439880/

于 2013-10-09T14:35:47.097 に答える