3

Drupalサイトで製品ビューのスタイルを設定しようとしていますが、問題が発生しています。ノード(製品)ビューがubercartのどこにまとめられているのかわかりません!

UC 5.x-1.7を使用していますが、ノード(製品)ビューページのスタイルを設定する必要があります。現在、node.tpl.phpファイルには、次のようなものがあります。

$bodyを出力します。
すべてのSKU、属性、価格、画像などを吐き出します。

問題は、これを別のスタイルにする必要があることです。デザイナーが行ったデザインに取り組む必要があります。次のような変数を使用して、自分のバージョンのやり直しを開始しました

$ node-> content ['body'] ['#value']

製品のさまざまな属性を操作しようとして問題が発生しました。それらを自分のページに配置する方法や、コーダーの観点からそれらを操作する方法に関するドキュメントを見つけることができません。

もっと簡単な方法はありますか?既存の表示(つまり、$ body変数)のスタイルをどこで確認しますか?

編集:私のテーマは禅のテーマに基づいています

4

4 に答える 4

4

問題が純粋にスタイルである場合は、独自の CSS を記述してこれを行うことができます。

theamer モジュールを使用して、使用するテンプレート ファイルを指定できます。オーバーライドできる ubercart に付属しているものもあると思います。情報の候補テンプレート セクションを見てください。

最後に、hook_nodeapi op=viewを使用して、ページに実際に何が表示され、$body 変数に表示されるかを制御できます。

于 2009-05-29T12:36:27.830 に答える
2

次のようなパスの下にあるテンプレートを確認する必要があります。

./sites/all/modules/ubercart/uc_product/views

それがスタートになります。ノードが構築される可能性が高い場所です。

于 2009-05-29T12:19:41.513 に答える
1

Jeremy French が言及した hook_nodeapi の使用例を次に示します。

/**
 * Implements hook_nodeapi().
 */
function YOUR_MODULE_nodeapi(&$node, $op, $arg3 = NULL, $arg4 = NULL) {
  switch ($op) {
    case 'view':
    // Don't show list price unless set.
    if (isset($node->content['list_price']) && $node->list_price == 0) {
      unset($node->content['list_price']);
    }
    break;
  }
}

modules/ubercart/uc_product/uc_product.module の uc_product_view() を調べて、さまざまなコンテンツ フィールドを確認します。

于 2012-01-26T08:42:55.283 に答える
1

Devel モジュールを使用すると、配列とオブジェクトの正確な構造を確認し、$node オブジェクトから必要なものを正確に取得できます。次に、node-product.tpl.php ファイルを作成し、$content 変数をそれらの部分に置き換えます。これらの変数値のほとんどには、マークアップがそのまま残っています。

たとえば、属性のマークアップを変更する場合は、属性 div を処理する前処理関数を変更する必要があります。最初と最後から id="attributes" (class 多分? 私は忘れました) div をドロップすると、それらはすべて独自の class="attribute" ラッパーに個別に出力されます。それを template.php ファイルに追加するだけです。

それらをすべて 1 つの div に閉じ込める代わりに、CSS を使用してページ全体に移動できます。

個別のページ変数を印刷する上記の方法を使用して、マークアップ内のさまざまな要素を移動することもできます。

その多くは純粋な CSS で実行できますが、悪いブラウザーで CSS が誤って表示されても壊れないマークアップがあると便利です。

これが役に立てば幸いです。Drupal 5 でこれらすべてが機能するかどうかはわかりません。これはすべて 6 で行っていたためです。うまくいけば。

于 2009-06-27T07:56:30.243 に答える