Zum Inhalt springen

Teaser/Sitemap kürzen.

Erstellt am 21. Dezember 2006 · 6 Antworten · letzte Antwort am 21. Dezember 2006

Tags: Frage

glender ·

Ich habe hier im Forum ein paar Tolle Zeilen für ein Sitemap gefunden.
Nun möchte ich den gesammten Block jedoch auf eine bestimmte Zeichenanzahl beschränken. also machte ich in Zeile 8 stdWrap.crop = 50. doch der crop reagiert ganz komisch. es sind weit mehr als 50 Zeichen. und bei 49 kommt zum Beispiel wieder nichts? kann sich das jemand erklären? der crop auf zeile 65 funktioniert wunderbar.

im TSconfig:

TCEFORM.tt_content.menu_type {
	addItems.102 = Messe Teaser
}

im Setup

# php-Datei fuer die userfunction einbinden
includeLibs.user_getpages = fileadmin/maschinenbau/dev/user_getpages.inc
 
# neue Sitemap erstellen

tt_content.menu.20.102 = CONTENT
tt_content.menu.20.102 {
stdWrap.crop = 50


    # 1. Abfrage basierend auf den Seiten
    table = pages
    select {
 
    # pidinlist > userfunction um eine Rekursion zu erhalten auf die gewaehlten Ausgangspunkte in Sitemap
    pidInList.cObject = USER
    pidInList.cObject {
    userFunc = user_getpages->main
    treeDepth = 3
    }

        orderBy = sorting ASC
        #where = tx_rgteaser_teaser = 1   
    }
 
    # Darstellung der SEITEN
    renderObj = COA_INT
    renderObj {
        # an Stelle 10 der Seiten-titel
        10 = TEXT
        10.field = title
        10.wrap = <h1>|</h1>

        # Wir merken uns die Seiten-ID fuer spaeter
        20 = LOAD_REGISTER
            20 {
            meinRegister.cObject = TEXT
            meinRegister.cObject.field= uid
        }   
 
        # an Stelle 50 wird der Seiteninhalt erzeugt       
        50 = COA
        50.wrap = ----|----
        50 {
          ###########
          20 = CONTENT
          20 {
              # Abfrage an Tabelle tt_content = Seiteninhalt
              table = tt_content
              select {
                  # wir holen uns die die Seitenid von vorher
                  pidInList.data = register:meinRegister
                  # max = 2
                  orderBy = sorting ASC
              }
 
              # Wie soll der Seiteninhalt gerendert werden         
              renderObj = COA
              renderObj {

                  # Stelle 20 der Text, beschraenkt auf 350 Zeichen
                  20 = TEXT   
                  20 {
                    field = bodytext
                    crop = 9350 | ... | 1
                    wrap= |
                    parseFunc < tt_content.text.20.parseFunc
                  }
                 
                  /*
                  30 = TEXT
                  30 {
                    value = [mehr]
                    typolink.parameter.field=pid
                    typolink.parameter.dataWrap=|#{field:uid}
                    wrap = |
                  }
                  */
 

 
              }
          }                     
          ###########           
	        }
	     

	   
	    }
	}

im PHP-File user_getpages.inc

<?php
 
class user_getpages {
 
  function main($content,$conf) {
    global $TSFE;
    $pid_list_arr = explode(",",$this->cObj->data['pages']);
    $pid_list="";
   
    while(list(,$val)=each($pid_list_arr)) {
      $pid_list.=$val.",".$this->cObj->getTreeList($val,$conf["treeDepth"]);
    }
   
    $pid_list = ereg_replace(",$","",$pid_list);
    return $pid_list;
 
 
 
  }
}
?>
just2b ·

Hallo,

du kannst nicht an eine beliebige Stelle einfach irgendeinen Code einfügen und dann hoffen, dass das funktioniert.
Mach einen crop zB beim header und beim bodytext

georg

glender ·

heisst das es gibt in typo3 keine möglichkeit, de tt_content.menu.20.102 = CONTENT auf eine gewisse länge zu beschränken? ich möchte nicht den bodytex oder header beschränken, sondern über alles gesehen.

glender ·

danke für die antwort. habe ich mir gedacht, dass es nicht geht. nur lustig ist, dass mit meinem code gekürzt wird. nur eben nicht vorhersehbar... dann muss ich wohl eine andere lösung suchen... *grübel*

just2b ·

naja denk nur mir eines: Der bodytext wird ja sowieso nach dem title ausgegeben, dh es macht doch sowieso nicht viel Unterschied wenn du beide extra cropst

georg

glender ·

es macht eben einen grossen unterschied gehen wir von folgendem beispiel aus:

----
1. Seitentitel
1.1. Seiteninhalt
1.2. Seiteninhalt

2. Seitentitel
2.1. Seiteninhalt
2.2. Seiteninhalt
----

wenn ich das ganze crope bekomme ich etwa so etwas (frei erfundene crop-stelle)

----
1. Seitentitel
1.1. Seiteninhalt
1.2. Seit
----

wenn ich den seiteninhalt crope erhalte ich das:

----
1. Seitentitel
1.1. Seit
1.2. Seit

2. Seitentitel
2.1. Seit
2.2. Seit
----