Skip to content

Create eXeLearning theme repository

Antonio Monje edited this page Mar 2, 2016 · 4 revisions

Table of Contents

Definition

See 1353 - Creación de un repositorio de plantillas para eXe / Create an eXeLearning theme repository.

The general idea is that the exelearning.net site (WordPress) will keep a themes repository, where theme authors could post their themes. On submitting a theme, author would provide a title, description, tags, any other useful information to describe hers/his theme, and the ZIP file.

Once the theme is posted, some privileged user (admins?) should review and publish the theme.

Users will be able to search themes on the repository, read detailed information from published themes and download the ZIP file (pretty much as they can do now in the Download / Themes section.

Users will be able to search themes in the repository, read the complete info about them, and install themes directly from eXe too. To achieve that, eXe must request that information from the repository, web services in XML-RPC seems the easier option.

Data types dictionary

As Ignacio Gros suggested, themes in the repository should at least have the data that is already present in theme's config.xml files.

Beyond that, themes will have a Tags field and Predominant Colours fields, that will provide some classification to themes.

So, basically we get these fields:

  • name (short string to id the theme, internal use only, could we use the theme's directory name?)
  • Title: User provided string to name the theme
  • Description: User provided HTML ( labels?)
  • File: User will upload a file, it then would be saved in a file server or web server, and after that we just need to provide the URL to download the file through HTTP.
  • Version: Style version number
  • Compatibility: minimum eXe version number the style is compatible with. Styles for versions older than eXe 2.0 won't be allowed into the repository.
  • Author, Author URL
  • License, License URL
  • Tags: users will be able to tag their themes as 'responsive', 'mobile', 'fluid', 'fixed width', etc... Tag list will be maintained by exelearning.net editors.
  • Colors: users will be able to select the predominant colours of their theme from a defined list
This is a rough diagram of the involved types

Use cases

Sequence

Repository

Features set by Release and Priority

<caption>eXe Styles authoring</caption>
Feature Release Roles Implementation hint Description
CRUD Licenses 1.0 Administrator, Editor Taxonomy (exe_style_tag)
Read Licenses 1.0 All Description can include link to original License
CRUD Tags 1.0 Administrator, Editor Taxonomy (exe_style_license)
CRUD Colours 1.0 Administrator, Editor Taxonomy (exe_style_colour)
CRUD eXe Target versions 1.0 Administrator, Editor Taxonomy (exe_style_compatibilty)
CRUD eXe Style draft (from backend) 1.0 All Custom post type (exe_style)
Upload eXe Style ZIP File 1.0 All With core media file management, uploade files are attached to the post Default WP installation does not grant access to media file management to sucriptor or contributor roles
Publish eXe Style draft 1.0 Administrator, Editor
eXe Style front end posting Next release All http://wordpress.org/plugins/user-submitted-posts/
http://wordpress.org/plugins/front-end-publishing/
https://wordpress.org/plugins/wp-user-frontend/
http://wordpress.org/plugins/frontend-uploader/
Allow suscriptors, contributors and authors to post eXe Styles without accessing administrator interface
Tagcloud, list of available tags Next release All
Search styles by tag, colour, license Next release All Search page
http://codex.wordpress.org/Creating_a_Search_Page
Preload Style post data with info from config.xml file in Style ZIP file Next release All
<caption>XML-RPC API</caption>
Feature Arguments Return value Release Description
All methods prefixed with exe_styles.
listStyles none Array of Style 1.0 In 1.0 release, this method will not accept filters, and will return the full list of Styles available in the repository. Since there is not yet an internazionalization feature in the site, all the styles will be in the default language 'en'
listTags none Array of Tag Next release
listColours none Array of Colour Next release
listStyles Array of Filter Array of Style Next release
<caption>Internacionalization</caption>
Feature Roles Implementation hint Description

WP Data dictionary

eXe Style (custom post type)

Id: exe_style

Fields (custom)

  • Version (exe_style_version): textfield, required
  • Author (exe_style_author): textfield, required
  • Author URL (exe_style_author_url): textfield with URL validation, optional
  • eXe Target version (exe_style_compatibilty): dropdown select, single choice, required
  • License: dropdown select, single choice, required
  • Colours: checkboxes, multiple choices, optional
  • Tags: checkboxes, multiple choices, optional
Fiels (WP Core)
  • Description: free text
  • Post image: image file, uploaded through media file manager
  • Category: allows eXe Styles to be listed in current Download section, optional
  • Slug: unique, could be used as code (machine name), required

Tags (taxonomy)

Id: exe_style

Fields (WP core)

  • Name: textfield
  • Slug: unique, could be used as code (machine name)
  • Description: free text, describes the meaning of the tag

Colours (taxonomy)

Id: exe_style_colour

Fields (WP core)

  • Name: textfield
  • Slug: unique, could be used as code (machine name)
  • Description: not used

eXe Target version (taxonomy)

Id: exe_style_compatibilty

Fields (WP core)

  • Name: textfield
  • Slug: unique, could be used as code (machine name)
  • Description: not used

License (taxonomy)

Id: exe_style_license

Fields (WP core)

  • Name: textfield
  • Slug: unique, could be used as code (machine name)
  • Description: free text, describes de license, including a link to the original license full text

XML-RPC API Data dictionary

Style (struct)

Field XML-RPC type Origin
name string Post slug
version string Post exe_style_version
compatibility string Post exe_style_compatibility
author string Post exe_style_author
author_url string Post exe_style_author_url
license string License name
license_url string Full URL to License term
title string Post title
description LocalizedHTML Post description + Post image
download_url string Ful URL to Post exe_style_zip
link_url string Ful URL to Post
tags Array of Tag
colours Array of Colour

Tag (struct)

Field XML-RPC type Origin
id LocalizedString Term slug
title LocalizedString Term name

Colour (struct)

Field XML-RPC type Origin
id string Term slug
title string Term name

LocalizedString (struct)

Keyed list (dictionary)

Field (key) Value XML-RPC type Notes
und string Default content, for untraslatable content, or language not recognized
{language} string In release 1.0 just one language will be provided: 'en'
In next releases, one field per language.

LocalizedHTML (struct)

Keyed list (dictonary) as XML-RPC struct

Field (key) Value XML-RPC type Notes
und string Default content, for untraslatable content, or language not recognized
{language} string In release 1.0 just one language will be provided: 'en'
In next releases, one field per language.
HTML special chars encoded to HMTL entities.
Client should replace HTML entities with its original character before rendering this string

Filter (struct)

Field XML-RPC type
field string
value Mixed
op string

eXe

eXe Features set by Release and Priority

<caption>Styles repository in eXe</caption>
Feature Release Implementation hint Description
Display full list of available styles 1.0 #Styles_repository
Accordion
#Styles_repository
Download and install style from repository with one click 1.0 #Install_style #Install_style
Repository server URL configurable in Tools > Preferences Next release See exe/jsui/scripts/app/view/forms/PreferencesPanel.js
and exe/webui/preferencespage.py
#Configure_repository
List tags available in the repository Next release
List licenses available in the repository Next release
Filter styles by Tag Next release
Filter styles by License Next release
Search style by Name, Author, etc. Next release

Styles repository

In the Style Manager main panel (styles list), there will be a 'Styles repository' button. Clicking that button will show a list of the styles available on the repository. Each style will be a panel with this elements:

  • Title
  • Description (HTML)
  • A 'Read more' button, linking to the style info in the repository
  • An 'Install' button.

Install style

Clicking on 'Install' will download and import the style into eXe. A progress bar will be shown while downloading, and a on finish a message with the result of the operation. If the style is already installed, importing will fail. After downloanding, user will get back to the list of styles in the repository.

Configure repository

The repository XML-RPC server URL will be set as an application configuration, saved in the `exe.conf` file. Optionally it could be configurable by the user in the Tools > Preference form.

Clone this wiki locally