[Risolto]Campi cck come variabili

10 contenuti / 0 new
Ultimo contenuto
[Risolto]Campi cck come variabili

Sto cercando di prendere il valore del campo nome creato da cck che si chiama field_nome, il mio approccio è stato il seguente senza risultatao e scusatemi se ho scritto delle fregnacce.
Se non è cosi come è possibile accedere ad un singolo valore di un campo cck?

<?php
 
<?php print  $field_nome[0]
?>
?>

oppure

<?php
 
<?php print  $node->content['body']['Nome'];
?>
?>

THE_CONTE wrote:
Sto cercando di prendere il valore del campo nome creato da cck che si chiama field_nome, il mio approccio è stato il seguente senza risultatao e scusatemi se ho scritto delle fregnacce.
Se non è cosi come è possibile accedere ad un singolo valore di un campo cck?
<?php
 
<?php print  $field_nome[0]
?>
?>

oppure

<?php
 
<?php print  $node->content['body']['Nome'];
?>
?>

Ciao,
la tua sintassi sono giuste a metà! A:
<?php
 
print  $field_nome[0]
?>

manca un pezzo:
<?php
 
print  $field_nome[0]['view']
?>

Invece
<?php
 
print  $node->content['body']['Nome'];
?>

non è corretto!
Se vuoi conoscere tutto l'albero di $node ti basta:
<pre>
<?php print_r($node) ?>
</pre>

bene ero sulla buona strada, quindi un campo cck è un vettore.
ho inserito in page.tpl.php:

<?php
 
print  $field_nome[0][view] ;
?>

mancava il ;?

ma aggiornando e cancellando la cache non mi da' nessun valore a video.
Forse devo fare un nuovo contenuto ed inserire quel valore nel campo body in full html?

aggiornamento:
ho inserito il phpcode ed abilitato il body a leggere codice php ma con :

<?php
 
print  $field_nome[0][view] ;
?>

mi da' solo "Titolo",bho!

Aggiornamento:
ho scoperto che mi stampa il valore del campo "Pattern for the title" del modulo autotitle

Automatic title generation

Disabled
Automatically generate the title and hide the title field
Automatically generate the title if the title field is left empty
Pattern for the title:
Titolo

Ho creato un contenuto di tipo page ed ho inserito nel body il codice:

<?php
$existing_pagenode
= node_load(6);
print_r($existing_pagenode);
?>

tra tutto l'output ottengo il campo che vorrei visualizzare singolarmente

[field_nome] => Array ( [0] => Array ( [value] => ) )

e quindi nel campo page inserisco anche la stringa per la stampa

<?php
$existing_pagenode
= node_load(6);
print_r($existing_pagenode);
print
$field_nome[0]['view'];
?>

mi aspetto che in fondo all'output stampato prima ci sia anche il valore di nome ma niente.

Ciao,
partiamo con un pò di ordine: il codice che ti avevo indicato va inserito nel template del tuo tipo di contenuto (.tpl.php) e non nel body della pagina. Tra l'altro, non credo neanche che riusciresti a recuperare un valore di un campo richiamandolo dal body, a meno che non fai un node_load nel body ma è come se ricaricassi la pagina due volte per nulla.
Secondariamente, devi verificare la visualizzazione del campo stesso direttamente dall'amministrazione: se hai impostato che il campo è nascosto non avrai la variabile

<?php
 $field_nome
[0]['view']
?>
proprio per questo motivo e molto probabilmente avrai invece un
<?php
 $field_nome
[0]['value']
?>
.
Comunque sia, per queste cose devi agire per forza di cose via template!
;)

aspetta mi spiego meglio, ho creato un tipo di contenuto che si chiama inserimento_prodotto che permette ad ogni utente di inserire un proprio prodotto attraverso dei campi cck(immagine,tipo prodotto,nome,prezzo etc) attraverso il collegamento node/add/inserimento-prodotto.
Quindi si crea:

prodottoA->nodoa
prodottoB->nodoB
etc
.
..
etc

Allora ad ogni prodotto si crea un contenuto(nodo) , ora con tutti questi vorrei fare ad esempio una pagina riassuntiva dove contare il numero di prodotti inseriti dall'utente x oppure il numero di prodotti totali.
Ho fatto qualcosa del genere con view ma senza effettuare i conteggi totali, cosa che vorrei fare in una pagina a parte con il codice php accedendo ai valori dei campi cck.
Perdonatemi se mi sono spiegato male.

Ciao,
se devi semplicemente contare quanti prodotti (quindi nodi) sono stati inseriti ti basta una semplice query MySql:

<?php
$query
= db_query("SELECT COUNT(type) FROM {node} WHERE type = 'inserimento_prodotto'");
 
?>

da inserire, ovviamente, non nel corpo dei nodi. Puoi inserirla direttamente nel template della vista, puoi fare un modulo con un blocco oppure inserirla nel template.php come funzione e richiamarla poi dove ti serve.

;)

Ti ringrazio infinitamente anche se ho dovuto cambiare il codice in:

<?php
$query
= db_result(db_query("SELECT COUNT(type) FROM {node} WHERE type = 'inserimento_prodotto'"));
 
?>

SMACK SMACK !!!!:)))))

ma secondo te questa query funziona automaticamente ad ogni ingresso di utenti? cioè se entra A vede i prodotti inseriti da A o tutti?

Ciao,
la query, ovviamente avendo un count, ti ritorna semplicemente il numero di nodi di tipo inserimento_prodotto.
Se, invece, vuoi far visualizzare agli utenti i loro nodi, ti basta una semplice vista (dovrebbe gia esistere una vista di default che si chiama tracker o qualcosa del genere).
;)

smack smack!!