Zum Inhalt springen

Kurze Frage zu Seiteninhalten..

Erstellt am 30. November 2006 · 26 Antworten · letzte Antwort am 23. September 2008 · Seite 2 von 2

Tags: Inhaltselemente, Frage

Fabian-K ·

Ich bin so ein typischer Linuxuser, wuerde ich mal behaupten.
Ich brauche die volle Kontrolle, also keine Extension, sondern alles manuell im TS konfigurieren :p

@just2b:
Schon eine Idee, wie man das rekursiv-Thema loesen koennte?

just2b ·

was heißt idee? schon fertig 😉
gedulde nur noch etwas, kleinigkeit fehlt noch

lg georg
ps: dann wär wohl ein selbstgeschriebenes CMS besser 😃

Fabian-K ·
just2b schrieb

dann wär wohl ein selbstgeschriebenes CMS besser 😃

habe ich schon 😉

Oka, okay.. *ungeduldig wart*

Is ja schlimmer, als sich an Heilig Abend ne Stunde in die Kirche zu hocken und zu hoffen, dass es endlich vorbei ist, um nach hause zu duesen, weil man heftigsten Hunger hat. lol.
Bloeder vergleich, irgendwie #angry# :p

just2b ·

Hallo,

Folgendes Beispiel macht:
eine Sitemap/Teaser aus ausgewählten Seiten.

Code in der TsConfig
# neue Sitemap hinzufügen

TCEFORM.tt_content.menu_type {
addItems.102 = rgTeaser II
}

Code im Setup

# php-Datei für die userfunction einbinden
includeLibs.user_getpages = fileadmin/dev/scripts/user_getpages.inc 

# neue Sitemap erstellen
tt_content.menu.20.102 = CONTENT
tt_content.menu.20.102 {

    # 1. Abfrage basierend auf den Seiten
    table = pages
    select {

    # pidinlist > userfunction um eine Rekursion zu erhalten auf die gewählten Ausgangspunkte in Sitemap
    pidInList.cObject = USER
    pidInList.cObject {
    userFunc = user_getpages->main
    treeDepth = 3
    }
	
	
        orderBy = tstamp DESC
        #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 = <div style="border:1px solid #ccc; padding:10px;margin:5px;"><h3>|
        
        # Stelle 12 das Alter der Seite
        12 = TEXT
        12.field = tstamp
        12.age = 1
        12.required = 1
        12.wrap = <span style="font-size:10px;padding-left:10px;">(|)</span></h3>
        
        # Wir merken uns die Seiten-ID für später
        20 = LOAD_REGISTER
            20 {
            meinRegister.cObject = TEXT
            meinRegister.cObject.field= uid
        }    

        # an Stelle 50 wird der Seiteninhalt erzeugt        
        50 = COA 
        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 = 1
              }

              # Wie soll der Seiteninhalt gerendert werden          
              renderObj = COA
              renderObj {
                  # Stelle 1 mal ein div aufmachen
                  1 = TEXT
                  1.value = <div style ="padding:5px; margin:5px;">
                  
                  # Stelle 10 der Titel des Contentelements
                  10 = TEXT
                  10.field = header
                  10.wrap = <strong>|</strong>
                  10.required = 1
                  
                  # Stelle 20 der Text, beschränkt auf 350 Zeichen
                  20 = TEXT   
                  20 {
                    field = bodytext
                    crop = 350 | ... | 1
                    wrap= <br />|
                    parseFunc < tt_content.text.20.parseFunc
                    stripHtml = 1
                  }
                  
                  /*
                  30 = TEXT
                  30 {
                    value = [mehr]
                    typolink.parameter.field=pid
                    typolink.parameter.dataWrap=|#{field:uid}
                    wrap = |
                  }
                  */

                  # Div wieder zu
                  99 = TEXT
                  99.value = </div>

              }
          }                      
          ###########            
        }
      
        # Stelle 60 (nach den contentelementen) ein Link zur Seite
        60 = TEXT
        60 {
          value = [mehr]
          typolink.parameter.field=uid
          wrap = |
        }
                      
        99 = TEXT
        99.wrap = |</div>
    
    }
}

benötigte Userfunction
speichern in zB fileadmin/dev/scripts/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;


  
  }
}
?>

lg georg
PS: nicht alles was hinkt ist ein Vergleich, mehr will ich da dazu nicht sagen!

soundstorm ·

HAllo

Die Extension ist super, vielen Dank dafür.

Ich hätte noch eine kleine Bitte:
Momentan scheint die Extension keine Mehrsprachigkeit zu unterscheiden. Es werden jeweils beie Sprachen gleichzeitig dargestellt, oder seh ich das falsch? Kann man das noch korrigieren? Wär super.

soundstorm ·

Du meinst hier?

#

# 1. Abfrage basierend auf den Seiten

    table = pages

    select {

Leider übersteigt das meine Typo3 Kentnisse, hast du grad ne Idee wie das ungefähr ginge?

soundstorm ·

ah ok, ich versuch mal ein bisschen, danke!

Update: Hat supergeklappt, hier als Hilfe für andere:

          ###########
          20 = CONTENT
          20 {
              table = tt_content
              select {
                  pidInList.data = register:meinRegister
                  #max = 1
        languageField = sys_language_uid

              }

DIe zeile languageField = sys_language_uid muss man 3x kopieren, immer unter CONTENT.

retronet ·
just2b schrieb

Habe schnell eine Extension darausgemacht, ist schon im TER > ext key rgteaser

lg georg

Hallo Georg,
da die Erweiterung schon etwas älter ist, frage ich mal ganz vorsichtig nach. Besteht die Möglichkeit die Extension rgteaser noch um ein Feature zu erweitern? Natürlich nicht umsonst, sondern entgeldlich :o

Ich würde gerne für einen Kunden folgende Lösung haben:
1. Das Teasermenu "Content Only" so erweitern das nur Datensätze nach einen festgelegten Datum angezeigt werden. Also Seiten die, die letzten 10 Tage aktualisiert worden sind. Ähnlich der Menufunktion "special=updated".

2. Das Seiten nicht manuell auf "Teaser aktivieren" gesetzt werden müssen.

LG, Michael

retronet ·
retronet schrieb
just2b schrieb

Habe schnell eine Extension darausgemacht, ist schon im TER > ext key rgteaser

lg georg

Hallo Georg,
da die Erweiterung schon etwas älter ist, frage ich mal ganz vorsichtig nach. Besteht die Möglichkeit die Extension rgteaser noch um ein Feature zu erweitern? Natürlich nicht umsonst, sondern entgeldlich :o

Ich würde gerne für einen Kunden folgende Lösung haben:
1. Das Teasermenu "Content Only" so erweitern das nur Datensätze nach einen festgelegten Datum angezeigt werden. Also Seiten die, die letzten 10 Tage aktualisiert worden sind. Ähnlich der Menufunktion "special=updated".

2. Das Seiten nicht manuell auf "Teaser aktivieren" gesetzt werden müssen.

LG, Michael

Hi,
habe soeben bemerkt das ja die relative lang existierenden Extension TopContent genau das schafft was ich benötige. Ich kann sogar unerwünschte Seiten wie Impressum, Kontakt etc vom Teasing ausschliesen. Das ich da nicht drauf gekommen bin, aber das war damals (vor Jahren) meine erste Extension gewesen dich ich ausprobiert habe und komm nicht drauf.
Sowas.. #angry#

Grüsse, Michael