Salve a tutti.
Vorrei rendere dinamico il title, scegliendo una voce della tassonomia associata al nodo.
Partendo dall'hook_nodeapi, op='presave', provo con il codice:
function nomeModulo_nodeapi(&$node,$op, $a3=NULL, $a4=NULL){
switch ($op) {
case 'prepare':
if($node->type=='nomeModulo'){
if(!$node->nid){
$node->status = 0;
$node->sticky = 0;
$node->promote = 0;
$node->comment = 0;
}
}
break;
case 'presave':
if($node->type=='nomeModulo'){
$terms = taxonomy_node_get_terms($node);
foreach ($terms as $term) {
$term_child = array(
'tid' => $term->tid,
'name' => $term->name
);
}
$sql = "SELECT td.name FROM {term_hierarchy} th LEFT JOIN {term_data} td ON th.parent = td.tid WHERE th.tid=%d";
$term_parent = db_result(db_query($sql,$term_child['tid']));
$node->title = ($term_parent) ? '['.$term_parent.'] '.$term_child['name']: $term_child['name'];
}
break;
default:
break;
}
}
Al momento del submit, la voce scelta di tassonomia viene registrata nella tabella term_node ma non nel campo title della tabella node.
L'edit del nodo presenta il title vuoto o con il valore da me predefinito, e la casella a discesa della tassonomina con la scelta effettuata.
Se premo submit, senza nessun cambiamento, trovo il title aggiornato.
Questo succede sia con tipi di contenuto creati via modulo, sia con quello standard "page" e anche con l'utilizzo del modulo auto_nodetitle con impostate:
- Automatically generate the title and hide the title field
- Pattern for the title: [termpath]