TypoScript: contenido de texto de la página actual

Estoy tratando de generar el og:description etiqueta, requerida por Facebook, dinámicamente fuera del contenido de la página mostrada. Mi idea es usar el texto del contenido de la página si no se proporciona una meta descripción. Probé este script:

page.headerData.838 = CONTENT
page.headerData.838 {
  table=tt_content
  select {
    where = (CType = "text")
  }
  renderObj=TEXT
  renderObj{
    field=bodytext
    stdWrap.stripHtml=1
    noTrimWrap =|<meta property="og:description" content="|" />| 
  }
} 

El problema es que esta etiqueta ni siquiera aparece en la página. Entonces, ¿cuál es el truco?

preguntado el 28 de julio de 12 a las 12:07

3 Respuestas

Prueba esto ...

Descripción por defecto:

page.meta{
  description.field = description
}

Descripción si la Descripción predeterminada está vacía:

page.meta.description.ifEmpty.stdWrap.cObject = CONTENT
page.meta.description.ifEmpty.stdWrap.cObject {
 table= tt_content
 select {              
   selectFields = bodytext
 }
 renderObj =COA
 renderObj {
   10=TEXT
   10 {
     field = bodytext     
     stripHtml=1
     crop = 300 | ... | 1        
   }
 }
}

Y og: descripción:

temp.OpenGraphDescription = COA
temp.OpenGraphDescription{
 10=CONTENT
 10.table= tt_content
 10.select {              
   selectFields = bodytext
 }
 10.renderObj =COA
 10.renderObj {
   10=TEXT
   10 {
     field =  bodytext     
     stripHtml=1
     crop = 300 | ... | 1        
   }
 }
 wrap = <meta property="og:description" content="|" />
}
page.headerData.55 < temp.OpenGraphDescription

Respondido 10 ago 12, 10:08

Trate de evitar el uso de renderizado tt_content elementos como metaetiquetas, puede ser complicado ya que son campos RTE, por lo que existe alguna posibilidad de que rompa su código HTML incluso con stripHtml.

En cambio, es mejor idea usar Meta > Description campo de Page properties para esta tarea, simplemente es más seguro. Tenga en cuenta que si usará más de un tt_content con tipo de texto en la página, su código creará la misma cantidad de <meta /> las etiquetas.

Por cierto: su fragmento es bastante correcto: funciona sin problemas, ¿tal vez tenga algunos problemas de caché en algunas páginas?

Respondido 28 Jul 12, 20:07

¿Quizás pueda representar el contenido de su columna central, quitar HTML y envolverlo en og: descripción? Supongo que tendrá una longitud máxima de su descripción.

page.headerData.838 < styles.content.get
page.headerData.838.stdWrap {
  stripHtml = 1
  crop = 180 | ... | 1
  wrap = <meta property="og:description" content="|" />
} 

(¡no probado!)

Respondido 30 Jul 12, 12:07

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.