2009-07-05 6 views
6

J'ai du contenu que je souhaite voir apparaître sur plusieurs pages de mon site TYPO3. Je pourrais juste insérer ceci dans le modèle, mais je veux également que ce contenu soit éditable dans l'éditeur de texte enrichi.TYPO3: Comment insérer le contenu de la page dans le modèle

J'ai donc eu l'idée de créer une page cachée, mais je ne sais pas comment insérer ce contenu dans un modèle.

Nécessite-t-il l'instruction typoscript select?

De même, à titre de question suivante, est-ce que je peux ajouter quelque chose à dire? N'incluez que les pages ayant cet ID de page comme parent immédiat dans la hiérarchie de pages.

Répondre

7

Je n'ai pas bien compris la deuxième question. Si vous voulez inclure certains enregistrement uniquement aux pages sous une autre page, cela fonctionnera évidemment:

[PIDinRootline = pages-uid, pages-uid, ...] 
temp.foo = RECORDS 
temp.foo { 
    tables = tt_content 
    source = ID # Enter the object's ID here 
} 
[end] 

D'autre part, si vous voulez inclure tous les enregistrements de pages, sont des enfants de une autre page , puis essayez quelque chose comme:

1 = CONTENT 
    1.table = tt_content 
    1.select { 
    pidInList = parent-uid 
    } 

Je ne sais pas si je vous ai bien compris. Dmitri.

5

De Include typo3 content elements on every page:

temp.foo = RECORDS 
temp.foo { 
    tables = tt_content 
    source = ID # Enter the object's ID here 
} 

Notez l'ID est l'enregistrement de contenu ID, pas l'ID de page.

Mais cela ne répond pas à la question de savoir comment inclure uniquement des pages/enregistrements avec un parent donné.

+0

cela ne fonctionne pas, j'ai mis exactement le même code dans mon modèle d'extension et l'élément de contenu ne s'affiche pas. – user3182532

3

Vous pouvez créer une page masquée, puis "importer" les éléments de contenu sur une page donnée via typoscript sur les pages (ou l'arborescence entière de la page ci-dessous) si nécessaire. La "astuce" est d'utiliser le colPos avec l'instruction select. Avec cela, vous pouvez même mettre des éléments de contenu multiples (différents) dans un (caché) page qui apparaissent sur des pages différentes (en fonction du réglage de la colonne, ils sont « dans »

Exemple:.

  • Créer une page cachée (ou système) (ici exemple-pageid = $ PID_STATIC)
  • Créer un élément de contenu sur cette page (texte)
  • Modifier cet élément de contenu à afficher dans la colonne de droite (à droite est égal à colPos = 2
  • Placez le script suivant dans le modèle sur lequel vous avez ant l'élément de contenu à afficher. Vous pouvez définir le pid (pageId) dans les constantes via PID_STATIC ou "hardcode" dans le typoscript.

.

lib.aditionalcontent = COA 
lib.aditionalcontent { 
    10 = CONTENT 
    10 { 
     table = tt_content 
     select.where = colPos = 2 
     select.orderBy = sorting 
     select.pidInList = {$PID_STATIC} 
    } 
  • Ajouter l'élément lib.aditionalcontent dans votre modèle où le contenu doit être affichée. Par exemple:

.

page.10 = TEMPLATE 
page.10.template = FILE 
page.10.template.file = fileadmin/maintemplate.htm 
page.10.workOnSubpart = DOCUMENT_BODY 
page.10.marks.ADITIONAL_CONTENT < lib.aditionalcontent 

. Faites attention à ce que vous définissiez le colPos en fonction de la colonne dans laquelle vous avez défini l'élément de contenu, sinon il ne s'affichera pas.

Vous pouvez utiliser différentes colonnes pour ce faire pour différents contenus qui doivent apparaître/ne pas apparaître sur une page particulière.

Cela fonctionne également avec les dossiers sytem et les pages non masquées. Si vous utilisez TemplaVoila, cela devrait également fonctionner bien que vous deviez passer en listview pour voir et définir la colonne pour l'élément de contenu (s'il n'est pas caché pour cet utilisateur non administrateur).

Pour savoir quel numéro de colonne est la position de la colonne, allez dans phpMyAdmin et recherchez le champ "colPos" dans le tableau tt_content.

Questions connexes