Come si rimuovono i campi predefiniti del titolo e del corpo in un tipo di contenuto Drupal generato da CCK?

StackOverflow https://stackoverflow.com/questions/89672

  •  01-07-2019
  •  | 
  •  

Domanda

Quando crei un nuovo tipo di contenuto in Drupal utilizzando il Content Creation Kit, ottieni automaticamente i campi Titolo e Corpo nel modulo generato.C'è un modo per rimuoverli?

È stato utile?

Soluzione

Se non sei uno sviluppatore (o desideri abbreviare il processo di sviluppo), un'altra possibile soluzione è utilizzare il modulo auto_nodetitle.Auto nodetitle ti consentirà di creare regole per generare il titolo del nodo.Possono essere regole programmatiche, token sostituiti o semplicemente testo statico.Vale la pena dare un'occhiata se non altro.

Altri suggerimenti

Per rimuovere il corpo, modifica il tipo, espandi "Impostazioni modulo di invio" e inserisci lo spazio vuoto per l'etichetta del campo del corpo.Per il titolo puoi rinominarlo in un altro campo di testo.Se davvero non hai bisogno di alcun campo di testo puoi creare un modulo personalizzato, ad esempio chiamato foo, e creare la funzione foo_form_alter() che sostituisce $form['title'] con un #valore quando $form['type']['#value'] è il tipo di nodo.

Non è necessario installare nulla:
quando modifichi il tipo di contenuto, premi "Modifica"
(nel menu Modifica | Gestisci campi | Visualizza campi)
fare clic su Impostazioni modulo di invio

sull'etichetta del campo Corpo:
Lasciarlo vuoto, rimuoverebbe il campo Corpo.

Se non sei uno sviluppatore (o desideri scorciare il processo di sviluppo), un'altra possibile soluzione è utilizzare il modulo Auto_NodeTitle.Auto Nodetitle ti consentirà di creare regole per generare il titolo del nodo.Queste possono essere regole programmatiche, token che vengono sostituiti o semplicemente testi statici.Vale la pena dare un'occhiata se non altro.

E da aggiungere William O'Connor soluzione...

Sfortunatamente il modulo è scarsamente documentato.Secondo me è davvero efficace solo se usi PHP con esso.Seleziona "Valuta PHP in Pattern" e digita nel campo "Pattern for the title" qualcosa come:

<?php echo $node->field_staff_email[0]['email']; ?>

O:

<?php echo $node->field_staff_name[0]['value'] . '-' . gmdate('YmdHis'); ?>

...dove avevo un campo con un nome interno di "field_staff_email" e stavo utilizzando il modulo CCK Email, quindi è stato utilizzato il tipo "email".Oppure avevo un campo con un nome interno di "field_staff_name" ed era solo un normale campo di testo, quindi è stato utilizzato il tipo "valore".La chiamata gmdate() alla fine serve a garantire l'unicità perché potresti avere due o più membri dello staff con lo stesso nome.

Il modo in cui ho scoperto tutto questo è stato sperimentando prima:

<?php print_r($node); ?>

...che ovviamente ha dato risultati pazzeschi, ma almeno sono riuscito ad analizzare l'output e capire come utilizzare correttamente l'oggetto $node qui.

Tieni presente che se utilizzi una di queste routine PHP, ti ritroverai con l'elenco dei contenuti in Drupal Admin che mostra le voci esattamente come hai codificato il PHP.Questo è il motivo per cui non ho utilizzato solo gmdate() perché in tal caso potrebbe essere difficile trovare il mio record per la modifica.

Nota anche che potresti essere in grado di utilizzare la conversione Base-36 su gmdate() per ridurre la dimensione dell'output perché gmdate('YmdHis') è piuttosto lungo.

Le risposte iniziali sono tutte buone.Proprio come un'altra idea per la parte del titolo...che ne dici di creare un file modello personalizzato per il tipo di nodo cck.Dovresti copiare node.tpl.php in node-TYPE.tpl.php, quindi modificare il nuovo file e rimuovere il punto in cui viene visualizzato il titolo.(Non dimenticare di svuotare la cache).

Farlo in questo modo significa che ogni nodo ha ancora un titolo, quindi per la gestione dei contenuti non rimarranno titoli vuoti o qualcosa del genere.

HTH!

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