Git Product home page Git Product logo

solidus_content's People

Contributors

aldesantis avatar delphaber avatar elia avatar jarednorman avatar kennyadsl avatar madelinecollier avatar nirebu avatar peterberkenbosch avatar sofiabesenski4 avatar tvdeyen avatar vassalloandrea avatar waiting-for-dev avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

solidus_content's Issues

Add the ability to add an entry type from the Solidus admin panel

We want to allow the admin user to add the option types using the Solidus admin panel.

The steps to accomplish this feature are:

  • Add the content label to the Solidus sidebar
  • Show the list of the entry types
  • Show the action to add a new entry type
  • Add the entry type form with the name, the provider and the option type form based on the selected provider

Each entry type can be modified or deleted.

Installer can't find initializer.rb

Solidus v2.11.3

Could not find "initializer.rb" in any of your source paths. Please invoke SolidusContent::Generators::InstallGenerator.source_root(PATH) with the PATH containing your templates. Currently you have no source paths.

Contentful support

Ref #5

A content provider should allow fetching content created with Contentful, possibly via Renderful.

Prismic support

Ref #5

A content provider should allow fetching content created with Prismic.

Add the ability to render content inside the page

This includes:

  • being able to define a default rendered for a content (with partials? a callable? renderful?)
  • being able to render (with the default renderer) inside a view (e.g. <footer><%= render_solidus_content "footer" %></footer>)
  • being able to access the raw data of the content from a view (e.g. <%= link_to "Contact Us", Spree::Content.find("foo").data.dig(:columns, 2, :links, 0, :url) %>)

Edit links for external CMS

Add the ability to link from the entry to a remote url that will allow to update the content, e.g. the edit entry page on prismic/contentful.

Add some standard EntryType metadata

There are some features that are common among entry-types, among those:

  • The ability to hide, publish, and preview entries, this means also having multiple entries for a single slug, all previewable, but with a single one (at most) published
  • The ability to mark the entry type as a singleton (e.g. the home page), this will limit the entries to a single default slug
  • The ability to have other mechanisms that will determine which entry should be presented given some characteristics such as geolocation etc. (e.g. having a metadata that store a list of countries for which the entry should be presented and fall-back to a default one for all others)

Let the content be uniquely identifiable

The content should be identifiable by a slug or UID and the identifier scoped to a content-group, the slug/uid can be used for fetching the content when presented as a page.

E.g. if the uid is foo it will be viewable as /c/foo with the route: get "/c/:id" => "spree/content#show"

Relation between Content, ContentGroup, and ContentProvider

All contents of the same kind should be part of a single ContentGroup.

A ContentGroup will define how that kind of content is fetched (i.e. the ContentProvider) and how that content will behave, including the default renderer, if it's previewable, if it should have a single main instance etc.

A ContentGroup must exist before creating a new Content, but we'll probably provide some default ContentGroups.

Enter Entry contents via admin/

Allow each content-provider to make available custom forms for entering its contents. This will allow to go full-circle and manage CMS entries directly from solidus, and ultimately fully replace solidus_static_content or create other custom admin interfaces (e.g. in react).

Add the ability to render content as full pages

This includes:

  • being able to select a specific (rails) layout for each content
  • being able to tie a content page to any URL, with a sensible default
  • being able to preview the content if given the permission

Allow to fetch content from third parties

Allow to configure a content in order to fetch data from a third party.

E.g. if we want to fetch content from Contentful:

  • given we already configured the Contentful credentials somewhere
  • from the admin we can click to create a new content
  • we can pick the content provider (in this case Contentful)
  • then we're presented with a form that will ask us to fill in the content ID
  • we can also choose the default renderer for that content (from a drop down)

Will be up to the provider to store in the data attribute of the content just the content ID (or other means to fetch the content on the go) or to also store the content allowing local access.
A content provider should be able to update the data section of the content whenever it's triggered.
A content provider should setup itself to receive webhooks or run regularly to update the data attribute of the content.

The default and basic content provider should allow raw editing of the data attribute (in json format).

A content provider should also connect with content created with solidus_static_content.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.