0

要素のcss属性を追加、削除、または変更するためのいくつかのレイアウト更新xmlディレクティブを理解しようとしています。何かのようなもの:

<reference name="breadcrumbs">
    <action method="setElementClass"><value>light</value></action>
</reference>

しかし、まったく運がなかった。

なぜこれをするのですか?-この場合と一部のページでは、ブレッドクラムを別の方法で処理したいからです。いくつかの異なるブレッドクラムテンプレートを作成し、ページごとに更新できると思いますが、これはやり過ぎのようです。

このテーマに関するグーグルの沈黙を考えると、この一見合理的な行動を必要としているのは私だけなのかどうか疑問に思います。

update xmlを介してテンプレートブロックのクラスをエレガントに変更する方法はありますか?

乾杯 -

b [] x

4

2 に答える 2

3

実行しているコマンドの目的を理解する必要があります。

<action method="setElementClass">

これは、breadcrumbsブロックで、関数setElementClassを呼び出していることを意味します。set関数とget関数は、Varian Objectの標準的な呼び出しであり、クラスインスタンスに変数を設定する方法にすぎません。

したがって、上記で行っていることは、次のことと同じです。

$class->setElementClass('myvalue')

これで、好きな変数を設定できますが、block / phtmlファイルが実際にその変数を使用しない限り、何も実行されません。

XMLを介してCSSクラスを変更するには、対応する.phtmlファイルを編集して次のものを含める必要があります。

class="<?php echo $this->getElementClass(); ?>"

あなたがそれを使うことを計画しているところならどこでも。phtmlファイルにCSSクラスをハードコーディングすることに何の問題もありません-それが彼らの目的です。XMLを使用してこれらの値を更新するのは少し時間がかかります-ホワイトラベルストアを作成していて、単純なXMLスワップを使用して変更をすばやく簡単に行う場合を除きます。

于 2012-03-12T21:22:54.677 に答える
0

Magentoのxmlを介してcssクラスを変更する方法はないと思います。クラス名は.phtmlファイルにハードコードされています。したがって、スタイルを変更する唯一の(実際には2つの)方法は、.phtmlファイルを更新されたcssクラスで新しい.phtmlファイルで上書きするか、styles.cssの既存のクラス名のスタイルシートスタイル定義を変更することです。

于 2012-03-12T21:18:13.147 に答える