¿Cómo elimino los dos puntos de mis etiquetas de campo?

10

Simplemente quiero poder eliminar los dos puntos de mis etiquetas de campo renderizadas, por ejemplo:

Nombre del hotel: al nombre del hotel

Copié field.tpl.php y eliminé el colon allí, pero no importa lo que Drupal se niega a aceptar y está sacando el colon de otra parte.

¿Cómo puedo hacer esto con una función template.php?

blue928
fuente
¿borraste el caché?
AjitS
Sí, varias veces. no ir
blue928
@ blue928 Vea la publicación duplicada, debe anularla theme_form_element()para hacer esto
Clive
Ese nodo / arreglo anterior simplemente eliminó los dos puntos del formulario cuando alguien está editando / ingresando contenido. Necesito eliminar las etiquetas después de que se representan en el nodo. .. entonces, no sería un duplicado de lo anterior. De hecho, implementé esa solución para obtener ese resultado.
blue928

Respuestas:

16

La respuesta definitivamente es usar field.tpl.php . Si mira la fuente de ese archivo, puede ver las líneas ofensivas:

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

(espaciado y sangría mía para mayor claridad).

Eliminar el colon es tan simple como reemplazar las líneas anteriores con:

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

Acabo de probar eso en una instalación de Drupal en blanco y funciona perfectamente; no más dos puntos después de las etiquetas de campo.

Si ya estás haciendo lo mismo, pero no estás obteniendo los resultados correctos, puedo pensar en una o dos cosas que podrían salir mal:

  • Ha puesto su versión personalizada de field.tpl.php en una carpeta de módulos, en lugar de en la carpeta de temas activos de su sitio (debe estar en la carpeta de temas).
  • Otro módulo / elemento en el sistema también está anulando field.tpl.php, de una manera más sólida de lo que es actualmente. Ver si este es el caso implicará la deshabilitación siempre tediosa de cada módulo habilitado para determinar de dónde viene el problema.

No podrá realizar el cambio con una función de preproceso de plantilla, ya que los dos puntos están codificados en el archivo de plantilla.

Clive
fuente
Ah, de hecho, había otro módulo que impedía que el archivo de plantilla funcionara correctamente. Gracias por señalar algunas instrucciones útiles de depuración.
blue928
9

Acabo de crear un módulo que hace exactamente esto, elimina los dos puntos (por campo) de las etiquetas de campo en la salida: Colectomía

tanc
fuente
Puede confirmar. Este módulo funciona de manera excelente y es una solución simple y elegante al problema.
Mark
2

Si se trata de una vista con campos, simplemente haga clic en el campo y desmarque "Colocar dos puntos después de la etiqueta" en "Crear etiqueta".

Tyler Durden
fuente
2

Display suite también ofrece la misma funcionalidad:

Si habilita los extras de la suite de visualización, hay una opción para eliminar los dos puntos antes de las etiquetas:

El camino para eso es: /admin/structure/ds/list/extras/

ingrese la descripción de la imagen aquí

chrisjlee
fuente
1
Esto hace MUCHO más que eliminar el colon. Si ha aplicado CSS personalizado, esto matará eso.
Mark
0

En mi caso, funcionó anulando theme_field()( field.module) copiando toda la función a mi template.phparchivo y cambiando la línea que dice

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

Limpia los cachés antes de intentarlo.

Meetai.com
fuente
0

No pude encontrar una respuesta a esta pregunta para Drupal 8 en ninguna parte. Con Drupal 8, los dos puntos se agregan con un archivo CSS (field.css) en el tema principal de Classy si lo está utilizando como tema base. Todo lo que tiene que hacer es anularlo en su propio archivo CSS en su tema.

Entonces, desde el archivo field.css original:

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

En mi archivo CSS de tema para eliminar los dos puntos:

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