2016-04-11 24 views
1

Ich bin versucht, ein Bild zu einem Seitentyp mit einem singleton Satz zum slideshowwidgetTypeApostrophe CMS Diashow Singletons nicht zugänglich

Die Schnittstelle funktioniert gut hinzufügen (können Bild hochladen, begrenzt Uploads auf die eingestellte Variable) , aber ich kann nicht auf das Objekt in den Vorlagen zugreifen

Ich protokolliere das Seitenobjekt mit dem folgenden Skript in der Seitenvorlage, jedes andere benutzerdefinierte Feld funktioniert gut, nur nicht das Diashow-Widget.

var data = {{ page | json }}; 
console.log(data); 

Hier ist das, was in app.js

project: { 
    extend: 'apostrophe-fancy-page', 
    name: 'project', 
    label: 'Project', 
    addFields: [ 
    { 
     name: 'thumb', 
     label: 'Thumbnail', 
     type: 'singleton', 
     widgetType: 'slideshow', 
     options: { 
     limit: 1 
     } 
    } 
    ] 
} 

Jede Beratung gesetzt?

Antwort

0

Hmm. Sie geben nicht an, aber mein Verdacht besteht darin, dass Sie versuchen, auf die Miniatur aus der Vorlage für eine andere Seite zuzugreifen, die darauf als verwandte Seiteninformationen zugreifen kann, z. page.ancestors oder page.children. Wenn der Singleton auf der Vorlage für die Seite gerendert würde, hätten Sie keine Probleme damit.

Die Sache mit related-page Informationen ist, dass Apostroph aus Leistungsgründen begrenzt, wie viel Informationen es in diesen Arrays enthält.

Sie können jedoch angeben, dass Sie weitere Informationen wünschen. Hier ist ein Beispiel aus der pages Eigenschaft der app.js Datei von einem unserer Projekte:

pages: { 
    // other config like page types goes here, then... 
    ancestorOptions: { 
    children: true, 
    areas: [ 'thumbnail' ] 
    }, 
    descendantOptions: { 
    depth: 2, 
    areas: [ 'thumbnail' ] 
    } 
} 

Hier ermöglichen wir:

  • Fügen Sie ein .children Array für jeden Vorfahren in page.ancestors, für Akkordeon nav
  • Fügen Sie für jeden Vorfahren den Bereich thumbnail ein
  • Fügen Sie für jedes Kind der aktuellen Seite den Bereich thumbnail ein (page.children)
  • auch Enkelkinder sind page.children[0].children für Drop-Down-nav

Wenn Sie mehr Daten zu laden, der Preis, den Sie zahlen, ist ein wenig mehr Zeit. Dies ist ein gutes Kompromiss-Setup, wenn Sie viel benötigen, aber nicht Tausende von Seiten abrufen und alle Widgets "hydratisieren" möchten, indem Sie noch mehr Daten abrufen.

Wenn ich mich täusche und Sie dies auf der Seitenvorlage für die Seite selbst tun und es immer noch nicht funktioniert, geben Sie bitte einige Beispiele und ich kann diese überprüfen.

(Ich bin einer der führenden Entwickler auf Apostrophe. Entschuldigung dafür, diese Frage nicht früher zu sehen. StackOverflow ist ein guter Platz dafür und wir werden in Zukunft genauer überwachen, nachdem 2.0 stable veröffentlicht wurde.)