Ho un cliente che desidera un design a pagina singola per il suo sito in cui il contenuto di ogni "pagina" viene visualizzato/nascosto utilizzando javascript mentre l'utente naviga nel sito.Design a pagina singola con Orchard CMS
Non sono sicuro sul modo migliore per avvicinarsi a questo utilizzando Orchard. Un'opzione sarebbe quella di avere il contenuto tutto su un singolo contenuto di una pagina, ma poi si perde la possibilità di utilizzare le funzionalità di navigazione di Orchard e non si può lasciare che il cliente pensi all'amministrazione in termini di pagine.
Qualcuno ha idee o esperienze sul modo migliore di configurarlo in Orchard CMS?
Ecco la soluzione che ho usato sulla base del parere di Bertrand:
public ActionResult Display(int id)
{
var contentItem = _contentManager.Get(id, VersionOptions.Published);
dynamic model = _contentManager.BuildDisplay(contentItem);
var ctx = _workContextAccessor.GetContext();
ctx.Layout.Metadata.Alternates.Add("Layout_Null");
return new ShapeResult(this, model);
}
ho creato un nuovo modulo con un controller che contiene il metodo di azione di cui sopra. Il metodo action accetta un parametro per l'id parte contenuto. Gli oggetti _contentManager e _workContextAccessor vengono iniettati nel controller. La vista Layout.Null.cshtml è stata creata esattamente come suggerito da Bertrand.
Questo è un design estremamente bizzarro che sembra volare in faccia alla SEO e a tutta l'usabilità conosciuta. Cosa lo giustifica? –
Sembra che tu stia sviluppando un'app mobile, giusto? jQuery Mobile? –
@BertrandLeRoy: non necessariamente non sono d'accordo.È ciò che vuole il cliente (in particolare mi chiedono di implementare questo modello: http://udfrance.com/dev/STUDIO8/index_black.html). Il sito è molto leggero sul contenuto e SEO non è lo scopo principale. – joshb