Domanda

sto cercando per lo stile della vista del prodotto su un sito Drupal, ma sto avendo problemi. non riesco a trovare dove il nodo (prodotto) Vista è messo insieme in Ubercart!

sto usando UC 5.x-1.7, e ho bisogno per lo stile della pagina di visualizzazione nodo (del prodotto). Al momento nel mio file node.tpl.php, ho

print $body;
che sputa fuori tutto lo SKU, gli attributi, prezzo, foto ecc

Il problema è che ho bisogno di avere questo in uno stile diverso - devo lavorare ad un disegno fatto da un designer. Ho iniziato a ri-fare la mia propria versione, utilizzando le variabili come

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

Ho eseguito in problemi cercando di lavorare con i vari attributi di un prodotto. Non riesco a trovare il modo di farli sulla mia pagina, o qualsiasi documentazione su come lavorare con loro dal punto di vista di un programmatore.

C'è un modo più semplice? Dove vorrei guardare per lo stile del display esistente (vale a dire la variabile $ corpo)?

Edit: il mio tema è basato sul tema Zen

È stato utile?

Soluzione

Ti consigliamo di guardare ai modelli che saranno sotto un percorso simile:

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

Questo sarà un inizio. Ecco dove il nodo è probabile costruito.

Altri suggerimenti

Se il problema è puramente di stile si può scrivere il proprio CSS per fare questo.

È possibile utilizzare il theamer modulo di dirvi quali file modello da utilizzare, direi che ci sono alcuni che vengono con Ubercart che è possibile ignorare. Guarda nella sezione template candidato della informazioni

Infine è possibile utilizzare hook_nodeapi op = vista di controllare ciò che viene effettivamente sulla pagina per visualizzare nella variabile $ corpo.

Se si utilizza il modulo Devel, è possibile vedere l'esatta struttura degli array e gli oggetti, e afferrare esattamente quello che serve dall'oggetto $ nodo. quindi creare un file nodo product.tpl.php, e sostituire la variabile $ content con quelle parti. La maggior parte di questi valori delle variabili hanno il markup intatto.

Se si desidera modificare il markup per, diciamo, gli attributi, è necessario modificare la funzione di pre-elaborazione che elabora il div attributo. Se hai appena cadere la id = "attributi" (classe forse? Ho dimenticato) div dalla all'inizio e alla fine, saranno tutti di stampa singolarmente nella propria class = wrapper "attributo". Basta aggiungere che al file template.php.

È quindi possibile spostare tutto sulla pagina con i CSS, invece di avere tutti intrappolati in un div.

È inoltre possibile utilizzare il metodo di cui sopra di stampare le variabili di pagina separati per spostare i vari elementi in giro per il markup.

Un sacco di che può essere fatto con i CSS puro, ma è bello avere markup che non si rompe quando CSS mis-schermi nei browser cattivi.

Spero che questo è utile. Non sono sicuro se tutto questo funzionerà in Drupal 5, dal momento che stavo facendo tutto questo con 6 ... così si spera.

Ecco un esempio di utilizzo hook_nodeapi come detto da Jeremy francese:

/**
 * 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;
  }
}

Cerca in uc_product_view () in modules / Ubercart / uc_product / uc_product.module per vedere i diversi settori di contenuto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top