Come rimuovo i due punti dalle etichette dei miei campi?


10

Voglio semplicemente essere in grado di rimuovere i due punti dalle etichette dei campi renderizzati, ad esempio:

Nome hotel: al nome dell'hotel

Ho copiato field.tpl.php e rimosso i due punti lì, ma indipendentemente da ciò che Drupal rifiuta di accettarlo e sta estraendo i due punti da altrove.

Come posso farlo con una funzione template.php?


hai cancellato la cache?
AjitS

sì, più volte. no go
blue928


@ blue928 Vedi il post duplicato, devi eseguire l'override theme_form_element()per farlo
Clive

Quel nodo / correzione sopra semplicemente rimosso i due punti dal modulo quando qualcuno sta modificando / immettendo il contenuto. Devo rimuovere le etichette dopo che sono state renderizzate nel nodo. .. quindi, non sarebbe un duplicato di quanto sopra. In realtà ho implementato quella soluzione per ottenere quel risultato.
blue928

Risposte:


16

La risposta è sicuramente usare field.tpl.php . Se guardi l'origine di quel file puoi vedere le linee offensive:

<?php if (!$label_hidden): ?>
  <div class="field-label"<?php print $title_attributes; ?>>
    <?php print $label ?>:&nbsp;
  </div>
<?php endif; ?>

(distanza e rientro miniera per chiarezza).

Rimuovere i due punti è semplice come sostituire le righe sopra con:

<?php if (!$label_hidden): ?>
  <div class="field-label"<?php print $title_attributes; ?>>
    <?php print $label ?>&nbsp;
  </div>
<?php endif; ?>

L'ho appena provato su un'installazione Drupal vuota e funziona perfettamente; non più due punti dopo le etichette dei campi.

Se stai già facendo la stessa cosa, ma non ottieni i risultati corretti, allora posso pensare a una o due cose che potrebbero andare male:

  • Hai messo la tua versione personalizzata di field.tpl.php in una cartella del modulo, piuttosto che nella cartella del tema attivo del tuo sito (deve essere nella cartella del tema).
  • Un altro modulo / elemento nel sistema è anche l'override di field.tpl.php, in un modo più robusto di quello che sei attualmente. Vedere se questo è il caso comporterà la sempre noiosa disabilitazione di ciascun modulo abilitato per determinare da dove proviene il problema.

Non sarà possibile apportare la modifica con una funzione di preelaborazione del modello, poiché i due punti sono codificati nel file modello.


Ah, c'era davvero un altro modulo che impediva il corretto funzionamento del file modello. Grazie per aver indicato alcune indicazioni utili per il debug.
blue928,

9

Ho appena creato un modulo che fa esattamente questo, rimuove i due punti (in base al campo) dalle etichette dei campi in uscita: Colectomia


Posso confermare Questo modulo funziona in modo eccellente ed è una soluzione semplice ed elegante al problema.
Segna il

2

Se si tratta di una vista con campi, basta fare clic sul campo e deselezionare "Posiziona due punti dopo l'etichetta" in "Crea etichetta".


2

Display suite offre anche le stesse funzionalità:

Se abiliti gli extra della suite di visualizzazione c'è un'opzione per rimuovere i due punti prima delle etichette:

Il percorso per questo è: /admin/structure/ds/list/extras/

inserisci qui la descrizione dell'immagine


1
Questo fa molto di più che rimuovere i due punti. Se hai applicato CSS personalizzati questo lo ucciderà.
Segna il

0

Nel mio caso ha funzionato sovrascrivendo theme_field()( field.module) copiando l'intera funzione nel mio template.phpfile e modificando la riga che legge

$output .= '<div class="field-label"' . $variables['title_attributes'] . '>' . $variables['label'] . '&nbsp;</div>';

Svuota la cache prima di provare.


0

Non sono riuscito a trovare una risposta a questa domanda per Drupal 8 da nessuna parte. Con Drupal 8 i due punti vengono aggiunti con un file CSS (field.css) nel tema di base Classy se lo si utilizza come tema di base. Tutto quello che devi fare è sovrascriverlo nel tuo file CSS nel tuo tema.

Quindi dal file field.css originale:

.field--label-inline .field__label::after {
    content: ':';
}

Nel mio file CSS del tema per rimuovere i due punti:

.field--label-inline .field__label::after {
    content: '';
}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.