SlideShare uma empresa Scribd logo
1 de 20
Baixar para ler offline
Workshop
How to develop a new
plugin for Moodle Mobile
Juan Leyva
Moodlemoot Spain 2013
26, 27 y 28 September
Speakers
Juan Leyva
Moodle Developer (since 2003) working @ CV&A Consulting
Moodle Mobile official app creator and maintainer
Developer of plugins:
● Configurable Reports
● jmail
● LTI Provider
● UMM (Unofficial Moodle Mobile)
● Anonymous posting in forums, Collaborative real-time editor,
ConfigTabs, Forum discuss subscription,
What we are going to do
● Understand how Moodle Mobile talks with a Moodle installation
● Understand the basics about Moodle Mobile Architecture
● Set up your Moodle Mobile development environment
● Set up your Moodle installation
● Package a existing Webservice to be used inside a local plugin
● Configure new “Mobile Services” in your Moodle installation
● Set up your MoodleMobile app
● Develop a MoodleMobile plugin
● Change the name and appearance of your app
● Build your MoodleMobile rebranded app
The new plugin
● Display user grades in activities
How Moodle Mobile talks with Moodle
Moodle Mobile is a REST+JSON based
Web Services client
HTTPS is recommended
User session is emulated using unique
tokens
File upload and downloads are done
using standard HTTP requests
Moodle Mobile Architecture basics
Set up the development environment
● Install Google Chrome
● Create a direct access or script for launching Google Chrome
with these flags: --disable-web-security --allow-file-access-
from-files
● With Google Chrome and the F12 or "Developer tools" you can
emulate mobile devices changing user-agent, orientation,
resolution, geo-location, touch events, etc..
● Just open the Developers tools, click on the wheel bottom-right
corner to see the Override options.
● It's interesting also disabling the Cache (in general options)
Set up your Moodle Installation
● Enable debugging
● Disable all caches
● Enable WebServices in Advanced options
● Enable WebServices protocols (REST)
● Enable Mobile Services (in Plugins -> WebServices
-> Services)
Package an existing WebService
● https://github.com/cvaconsulting/moodle-
local_custommm
Configure the new service
● A service is a set of functions for an specific purpose. Since Moodle
2.1 there is a pre-built service for Moodle M.
● This service cannot be edited for adding new functions so we don't
have a simple way for make available our new Web Service function
to the mobile app.
● The only way for fix this is creating a new Service in Moodle, and
configuring our app for pointing to this new service.
● There are two ways of creating a Service in Moodle:
○ Using a db/services.php in your plugin as mentioned here:
External services description
○ Creating the service in your Moodle installation using the forms in
Admin > Plugins > Web Services > External Services
Configure the new service
● In this case we've created the service using the Moodle forms
because it gives more flexibility in some aspects.
● There is a big impediment, due tohttps://tracker.moodle.
org/browse/MDL-29807 in order to add a shortname for the new
Service, we have to edit manually the Moodle database for adding the
shortname in the dbprefix_external_services table
Set up your MoodleMobile app
● Download the last version of the MoodleMobile source code from
https://github.com/moodlehq/moodlemobile
● Edit the config.json file and change the wsservice parameter in order
to point to the shortname of the Service you created before.
● You have to add also the name of the plugin you are developing at the
final of the plugins parameter:
● "plugins" : ["notifications", "upload", "contents", "participants",
"addcontact", "addnote", "sendmessage", "grades"],
● Notice that, for avoid errors, this last change should be done once the
file plugins/grades/main.js file exists
Develop the MoodleMobile plugin
● https://github.com/cvaconsulting/moodlemobile-grades
● plugin/grades/lang/en.json - Contains the language strings
● plugin/grades/icon.png - The plugin icon
● plugin/grades/activities.html - The template for the activities list
● plugin/grades/activitygrade.html - The template for showing the
grade
● plugin/grades/main.js - The plugin's main code
Develop the MoodleMobile plugin
(main.js)
Develop the MoodleMobile plugin
(main.js)
Develop the MoodleMobile plugin
(main.js)
Develop the MoodleMobile plugin
(main.js)
Change the name an appearance
● Edit the config.xml to change the app name
● Replace all the icons found in the app
● Edit also the config.json file for additional changes
● Load a custom CSS from your plugin:
$('head').append('<link rel="stylesheet" href="plugins/myplugin/mycss.css" type="text/css" />');
MM.registerPlugin(plugin);
Build your MoodleMobile rebranded app
● Use PhoneGap Build https:
//build.phonegap.com/
● Create a free account
pointing to your github
repository or upload a zip file
with your app
● Sign the app using your
Android and iOs certificates
● Publish your app in Google
Play and Apple app Store
Thanks for coming!
You have more information here:
http://docs.moodle.org/dev/Moodle_Mobile

Mais conteúdo relacionado

Mais procurados

Creating Moodle Mobile remote themes (Moodle Moot US 2016)
Creating Moodle Mobile remote themes (Moodle Moot US 2016)Creating Moodle Mobile remote themes (Moodle Moot US 2016)
Creating Moodle Mobile remote themes (Moodle Moot US 2016)Dani Palou Sala
 
Moodle Mobile SCORM 1.2 player
Moodle Mobile SCORM 1.2 playerMoodle Mobile SCORM 1.2 player
Moodle Mobile SCORM 1.2 playerJuan Leyva Delgado
 
Tips for creating Moodle Mobile friendly courses sites - MoodleMoot Spain 2014
Tips for creating Moodle Mobile friendly courses sites - MoodleMoot Spain 2014Tips for creating Moodle Mobile friendly courses sites - MoodleMoot Spain 2014
Tips for creating Moodle Mobile friendly courses sites - MoodleMoot Spain 2014Juan Leyva Delgado
 
Moodle & Moodle Mobile 3.1 Release Party Barcelona
Moodle  & Moodle Mobile 3.1 Release Party BarcelonaMoodle  & Moodle Mobile 3.1 Release Party Barcelona
Moodle & Moodle Mobile 3.1 Release Party BarcelonaPau Ferrer Ocaña
 
Customising the moodle mobile experience
Customising the moodle mobile experienceCustomising the moodle mobile experience
Customising the moodle mobile experienceJuan Leyva Delgado
 
Ten years and onwards
Ten years and onwardsTen years and onwards
Ten years and onwardsJenny Gray
 
How to improve your moodle site performance
How to improve your moodle site performanceHow to improve your moodle site performance
How to improve your moodle site performanceDavid Monllaó
 
The Best Moodle Modules and Plugins
The Best Moodle Modules and PluginsThe Best Moodle Modules and Plugins
The Best Moodle Modules and PluginsRafael Scapin, Ph.D.
 
Some Essential Moodle 2 plugins
Some Essential Moodle 2 pluginsSome Essential Moodle 2 plugins
Some Essential Moodle 2 pluginsGavin Henrick
 
Admin Critical Route for Moodle 2.4
 Admin Critical Route for Moodle 2.4 Admin Critical Route for Moodle 2.4
Admin Critical Route for Moodle 2.4Maria Moodle
 
Engaging ways to use moodle (1)
Engaging ways to use moodle (1)Engaging ways to use moodle (1)
Engaging ways to use moodle (1)Mark Rollins
 
Study of content management systems joomla and drupal
Study of content management systems joomla and drupalStudy of content management systems joomla and drupal
Study of content management systems joomla and drupaleSAT Journals
 
Study of content management systems joomla and
Study of content management systems joomla andStudy of content management systems joomla and
Study of content management systems joomla andeSAT Publishing House
 
Basics of Joomla!
Basics of Joomla! Basics of Joomla!
Basics of Joomla! Saurabh Shah
 
Best new features in moodle 3.1
Best new features in moodle 3.1Best new features in moodle 3.1
Best new features in moodle 3.1moorejon
 
Git for Moodle Administrators
Git for Moodle AdministratorsGit for Moodle Administrators
Git for Moodle Administratorsmoorejon
 

Mais procurados (20)

Creating Moodle Mobile remote themes (Moodle Moot US 2016)
Creating Moodle Mobile remote themes (Moodle Moot US 2016)Creating Moodle Mobile remote themes (Moodle Moot US 2016)
Creating Moodle Mobile remote themes (Moodle Moot US 2016)
 
Making your Moodle Mobile
Making your Moodle MobileMaking your Moodle Mobile
Making your Moodle Mobile
 
Moodle Mobile SCORM 1.2 player
Moodle Mobile SCORM 1.2 playerMoodle Mobile SCORM 1.2 player
Moodle Mobile SCORM 1.2 player
 
Tips for creating Moodle Mobile friendly courses sites - MoodleMoot Spain 2014
Tips for creating Moodle Mobile friendly courses sites - MoodleMoot Spain 2014Tips for creating Moodle Mobile friendly courses sites - MoodleMoot Spain 2014
Tips for creating Moodle Mobile friendly courses sites - MoodleMoot Spain 2014
 
Moodle & Moodle Mobile 3.1 Release Party Barcelona
Moodle  & Moodle Mobile 3.1 Release Party BarcelonaMoodle  & Moodle Mobile 3.1 Release Party Barcelona
Moodle & Moodle Mobile 3.1 Release Party Barcelona
 
Customising the moodle mobile experience
Customising the moodle mobile experienceCustomising the moodle mobile experience
Customising the moodle mobile experience
 
Mobile learning with moodle
Mobile learning with moodleMobile learning with moodle
Mobile learning with moodle
 
Ten years and onwards
Ten years and onwardsTen years and onwards
Ten years and onwards
 
How to improve your moodle site performance
How to improve your moodle site performanceHow to improve your moodle site performance
How to improve your moodle site performance
 
The Best Moodle Modules and Plugins
The Best Moodle Modules and PluginsThe Best Moodle Modules and Plugins
The Best Moodle Modules and Plugins
 
Some Essential Moodle 2 plugins
Some Essential Moodle 2 pluginsSome Essential Moodle 2 plugins
Some Essential Moodle 2 plugins
 
Admin Critical Route for Moodle 2.4
 Admin Critical Route for Moodle 2.4 Admin Critical Route for Moodle 2.4
Admin Critical Route for Moodle 2.4
 
Moodle
MoodleMoodle
Moodle
 
Engaging ways to use moodle (1)
Engaging ways to use moodle (1)Engaging ways to use moodle (1)
Engaging ways to use moodle (1)
 
Study of content management systems joomla and drupal
Study of content management systems joomla and drupalStudy of content management systems joomla and drupal
Study of content management systems joomla and drupal
 
Study of content management systems joomla and
Study of content management systems joomla andStudy of content management systems joomla and
Study of content management systems joomla and
 
Mobimooc 1 moodle
Mobimooc 1 moodleMobimooc 1 moodle
Mobimooc 1 moodle
 
Basics of Joomla!
Basics of Joomla! Basics of Joomla!
Basics of Joomla!
 
Best new features in moodle 3.1
Best new features in moodle 3.1Best new features in moodle 3.1
Best new features in moodle 3.1
 
Git for Moodle Administrators
Git for Moodle AdministratorsGit for Moodle Administrators
Git for Moodle Administrators
 

Semelhante a Moodlemoot spain 2013. taller, creación de un plugin para moodle mobile

Spring '22 SFMC Release Notes
Spring '22 SFMC Release NotesSpring '22 SFMC Release Notes
Spring '22 SFMC Release NotesKimmyCoburn1
 
MAS202 - Customizing IBM Connections - Downloadable
MAS202 - Customizing IBM Connections - DownloadableMAS202 - Customizing IBM Connections - Downloadable
MAS202 - Customizing IBM Connections - Downloadablepaulbastide
 
MAS202 - Customizing IBM Connections
MAS202 - Customizing IBM ConnectionsMAS202 - Customizing IBM Connections
MAS202 - Customizing IBM Connectionspaulbastide
 
Inthiyaz-4.6Years-SharePoint
Inthiyaz-4.6Years-SharePointInthiyaz-4.6Years-SharePoint
Inthiyaz-4.6Years-SharePointInthiyaz Pathan
 
Patna MuleSoft Meetup | Exposing WEB GUI for DWL Mapping File
Patna MuleSoft Meetup | Exposing WEB GUI for DWL Mapping FilePatna MuleSoft Meetup | Exposing WEB GUI for DWL Mapping File
Patna MuleSoft Meetup | Exposing WEB GUI for DWL Mapping FileOm Prakash
 
MuleSoft_Meetup_Exchange-Nexus-Publish_Asserts.pptx
MuleSoft_Meetup_Exchange-Nexus-Publish_Asserts.pptxMuleSoft_Meetup_Exchange-Nexus-Publish_Asserts.pptx
MuleSoft_Meetup_Exchange-Nexus-Publish_Asserts.pptxAnuragSharma900
 
Warsaw MuleSoft Meetup #13.pptx
Warsaw MuleSoft Meetup #13.pptxWarsaw MuleSoft Meetup #13.pptx
Warsaw MuleSoft Meetup #13.pptxPatryk Bandurski
 
UX DURING MODULE INSTALLATION AND CONFIGURATION
UX DURING MODULE INSTALLATION AND CONFIGURATIONUX DURING MODULE INSTALLATION AND CONFIGURATION
UX DURING MODULE INSTALLATION AND CONFIGURATIONDrupalCamp Kyiv
 
SPSBE14 SPSBE02 SharePoint Upgrade reel life experience, best practices
SPSBE14 SPSBE02 SharePoint Upgrade reel life experience, best practicesSPSBE14 SPSBE02 SharePoint Upgrade reel life experience, best practices
SPSBE14 SPSBE02 SharePoint Upgrade reel life experience, best practicesKnut Relbe-Moe [MVP, MCT]
 
SharePoint Saturday Belgium 2014 SharePoint Upgrade, real life experience and...
SharePoint Saturday Belgium 2014 SharePoint Upgrade, real life experience and...SharePoint Saturday Belgium 2014 SharePoint Upgrade, real life experience and...
SharePoint Saturday Belgium 2014 SharePoint Upgrade, real life experience and...BIWUG
 
SPS Dubai Best Practice upgrading SharePoint from 2007/2010 to 2013 and 2013 SP1
SPS Dubai Best Practice upgrading SharePoint from 2007/2010 to 2013 and 2013 SP1SPS Dubai Best Practice upgrading SharePoint from 2007/2010 to 2013 and 2013 SP1
SPS Dubai Best Practice upgrading SharePoint from 2007/2010 to 2013 and 2013 SP1Knut Relbe-Moe [MVP, MCT]
 
Moodle integration with microsoft office 365 by enovation
Moodle integration with microsoft office 365 by enovationMoodle integration with microsoft office 365 by enovation
Moodle integration with microsoft office 365 by enovationEnovation
 
Architecture and Analytical Study of Magento
Architecture and Analytical Study of MagentoArchitecture and Analytical Study of Magento
Architecture and Analytical Study of MagentoIRJET Journal
 
Integrate Shindig with Joomla
Integrate Shindig with JoomlaIntegrate Shindig with Joomla
Integrate Shindig with JoomlaAnand Sharma
 
MuleSoft meetup__houston #13
MuleSoft meetup__houston #13MuleSoft meetup__houston #13
MuleSoft meetup__houston #13Jim Andrews
 
Techjoomla Infrastructure Extensions - Adding an Enterprise Layer to Joomla!
Techjoomla Infrastructure Extensions - Adding an Enterprise Layer to Joomla!Techjoomla Infrastructure Extensions - Adding an Enterprise Layer to Joomla!
Techjoomla Infrastructure Extensions - Adding an Enterprise Layer to Joomla!Parth Lawate
 
Nuxeo Platform LTS 2016 - Roadmap
Nuxeo Platform LTS 2016 - RoadmapNuxeo Platform LTS 2016 - Roadmap
Nuxeo Platform LTS 2016 - RoadmapNuxeo
 
Angular - Chapter 3 - Components
Angular - Chapter 3 - ComponentsAngular - Chapter 3 - Components
Angular - Chapter 3 - ComponentsWebStackAcademy
 

Semelhante a Moodlemoot spain 2013. taller, creación de un plugin para moodle mobile (20)

Spring '22 SFMC Release Notes
Spring '22 SFMC Release NotesSpring '22 SFMC Release Notes
Spring '22 SFMC Release Notes
 
MAS202 - Customizing IBM Connections - Downloadable
MAS202 - Customizing IBM Connections - DownloadableMAS202 - Customizing IBM Connections - Downloadable
MAS202 - Customizing IBM Connections - Downloadable
 
MAS202 - Customizing IBM Connections
MAS202 - Customizing IBM ConnectionsMAS202 - Customizing IBM Connections
MAS202 - Customizing IBM Connections
 
Inthiyaz-4.6Years-SharePoint
Inthiyaz-4.6Years-SharePointInthiyaz-4.6Years-SharePoint
Inthiyaz-4.6Years-SharePoint
 
Patna MuleSoft Meetup | Exposing WEB GUI for DWL Mapping File
Patna MuleSoft Meetup | Exposing WEB GUI for DWL Mapping FilePatna MuleSoft Meetup | Exposing WEB GUI for DWL Mapping File
Patna MuleSoft Meetup | Exposing WEB GUI for DWL Mapping File
 
MuleSoft_Meetup_Exchange-Nexus-Publish_Asserts.pptx
MuleSoft_Meetup_Exchange-Nexus-Publish_Asserts.pptxMuleSoft_Meetup_Exchange-Nexus-Publish_Asserts.pptx
MuleSoft_Meetup_Exchange-Nexus-Publish_Asserts.pptx
 
Warsaw MuleSoft Meetup #13.pptx
Warsaw MuleSoft Meetup #13.pptxWarsaw MuleSoft Meetup #13.pptx
Warsaw MuleSoft Meetup #13.pptx
 
UX DURING MODULE INSTALLATION AND CONFIGURATION
UX DURING MODULE INSTALLATION AND CONFIGURATIONUX DURING MODULE INSTALLATION AND CONFIGURATION
UX DURING MODULE INSTALLATION AND CONFIGURATION
 
Cracow MuleSoft Meetup #1
Cracow MuleSoft Meetup #1Cracow MuleSoft Meetup #1
Cracow MuleSoft Meetup #1
 
SPSBE14 SPSBE02 SharePoint Upgrade reel life experience, best practices
SPSBE14 SPSBE02 SharePoint Upgrade reel life experience, best practicesSPSBE14 SPSBE02 SharePoint Upgrade reel life experience, best practices
SPSBE14 SPSBE02 SharePoint Upgrade reel life experience, best practices
 
SharePoint Saturday Belgium 2014 SharePoint Upgrade, real life experience and...
SharePoint Saturday Belgium 2014 SharePoint Upgrade, real life experience and...SharePoint Saturday Belgium 2014 SharePoint Upgrade, real life experience and...
SharePoint Saturday Belgium 2014 SharePoint Upgrade, real life experience and...
 
SPS Dubai Best Practice upgrading SharePoint from 2007/2010 to 2013 and 2013 SP1
SPS Dubai Best Practice upgrading SharePoint from 2007/2010 to 2013 and 2013 SP1SPS Dubai Best Practice upgrading SharePoint from 2007/2010 to 2013 and 2013 SP1
SPS Dubai Best Practice upgrading SharePoint from 2007/2010 to 2013 and 2013 SP1
 
Moodle integration with microsoft office 365 by enovation
Moodle integration with microsoft office 365 by enovationMoodle integration with microsoft office 365 by enovation
Moodle integration with microsoft office 365 by enovation
 
Architecture and Analytical Study of Magento
Architecture and Analytical Study of MagentoArchitecture and Analytical Study of Magento
Architecture and Analytical Study of Magento
 
Integrate Shindig with Joomla
Integrate Shindig with JoomlaIntegrate Shindig with Joomla
Integrate Shindig with Joomla
 
MuleSoft meetup__houston #13
MuleSoft meetup__houston #13MuleSoft meetup__houston #13
MuleSoft meetup__houston #13
 
Techjoomla Infrastructure Extensions - Adding an Enterprise Layer to Joomla!
Techjoomla Infrastructure Extensions - Adding an Enterprise Layer to Joomla!Techjoomla Infrastructure Extensions - Adding an Enterprise Layer to Joomla!
Techjoomla Infrastructure Extensions - Adding an Enterprise Layer to Joomla!
 
Nuxeo Platform LTS 2016 - Roadmap
Nuxeo Platform LTS 2016 - RoadmapNuxeo Platform LTS 2016 - Roadmap
Nuxeo Platform LTS 2016 - Roadmap
 
Angular - Chapter 3 - Components
Angular - Chapter 3 - ComponentsAngular - Chapter 3 - Components
Angular - Chapter 3 - Components
 
Mobilesoft presentation
Mobilesoft presentationMobilesoft presentation
Mobilesoft presentation
 

Mais de Juan Leyva Delgado

Seven tips for mobile course design
Seven tips for mobile course designSeven tips for mobile course design
Seven tips for mobile course designJuan Leyva Delgado
 
Mastering Moodle Web Services development
Mastering Moodle Web Services developmentMastering Moodle Web Services development
Mastering Moodle Web Services developmentJuan Leyva Delgado
 
Moodlemoot spain 2013. nuevos estándares de tecnologías aplicadas a la educ...
Moodlemoot spain 2013. nuevos estándares de tecnologías aplicadas a la educ...Moodlemoot spain 2013. nuevos estándares de tecnologías aplicadas a la educ...
Moodlemoot spain 2013. nuevos estándares de tecnologías aplicadas a la educ...Juan Leyva Delgado
 
Moodlemoot spain 2013. actualización a moodle 2 enfoque técnico
Moodlemoot spain 2013. actualización a moodle 2  enfoque técnicoMoodlemoot spain 2013. actualización a moodle 2  enfoque técnico
Moodlemoot spain 2013. actualización a moodle 2 enfoque técnicoJuan Leyva Delgado
 
Moodle en dispositivos móviles (MoodleMoot Spain 2011)
Moodle en dispositivos móviles (MoodleMoot Spain 2011)Moodle en dispositivos móviles (MoodleMoot Spain 2011)
Moodle en dispositivos móviles (MoodleMoot Spain 2011)Juan Leyva Delgado
 
Moodle 2.0 Novedades (MoodleMoot Spain 2010)
Moodle 2.0 Novedades (MoodleMoot Spain 2010)Moodle 2.0 Novedades (MoodleMoot Spain 2010)
Moodle 2.0 Novedades (MoodleMoot Spain 2010)Juan Leyva Delgado
 
Taller de mensajería bajo Jabber
Taller de mensajería bajo JabberTaller de mensajería bajo Jabber
Taller de mensajería bajo JabberJuan Leyva Delgado
 
Libro de Calificaciones en Moodle 1.9.4 (MoodleMoot Spain 2008)
Libro de Calificaciones en Moodle 1.9.4 (MoodleMoot Spain 2008)Libro de Calificaciones en Moodle 1.9.4 (MoodleMoot Spain 2008)
Libro de Calificaciones en Moodle 1.9.4 (MoodleMoot Spain 2008)Juan Leyva Delgado
 
Roles en Moodle 1.9 (MoodleMoot Spain 2009)
Roles en Moodle 1.9 (MoodleMoot Spain 2009)Roles en Moodle 1.9 (MoodleMoot Spain 2009)
Roles en Moodle 1.9 (MoodleMoot Spain 2009)Juan Leyva Delgado
 

Mais de Juan Leyva Delgado (10)

Seven tips for mobile course design
Seven tips for mobile course designSeven tips for mobile course design
Seven tips for mobile course design
 
Mastering Moodle Web Services development
Mastering Moodle Web Services developmentMastering Moodle Web Services development
Mastering Moodle Web Services development
 
Moodlemoot spain 2013. nuevos estándares de tecnologías aplicadas a la educ...
Moodlemoot spain 2013. nuevos estándares de tecnologías aplicadas a la educ...Moodlemoot spain 2013. nuevos estándares de tecnologías aplicadas a la educ...
Moodlemoot spain 2013. nuevos estándares de tecnologías aplicadas a la educ...
 
Moodlemoot spain 2013. actualización a moodle 2 enfoque técnico
Moodlemoot spain 2013. actualización a moodle 2  enfoque técnicoMoodlemoot spain 2013. actualización a moodle 2  enfoque técnico
Moodlemoot spain 2013. actualización a moodle 2 enfoque técnico
 
Moodle en dispositivos móviles (MoodleMoot Spain 2011)
Moodle en dispositivos móviles (MoodleMoot Spain 2011)Moodle en dispositivos móviles (MoodleMoot Spain 2011)
Moodle en dispositivos móviles (MoodleMoot Spain 2011)
 
Moodle 2.0 Novedades (MoodleMoot Spain 2010)
Moodle 2.0 Novedades (MoodleMoot Spain 2010)Moodle 2.0 Novedades (MoodleMoot Spain 2010)
Moodle 2.0 Novedades (MoodleMoot Spain 2010)
 
Presentando a Python
Presentando a PythonPresentando a Python
Presentando a Python
 
Taller de mensajería bajo Jabber
Taller de mensajería bajo JabberTaller de mensajería bajo Jabber
Taller de mensajería bajo Jabber
 
Libro de Calificaciones en Moodle 1.9.4 (MoodleMoot Spain 2008)
Libro de Calificaciones en Moodle 1.9.4 (MoodleMoot Spain 2008)Libro de Calificaciones en Moodle 1.9.4 (MoodleMoot Spain 2008)
Libro de Calificaciones en Moodle 1.9.4 (MoodleMoot Spain 2008)
 
Roles en Moodle 1.9 (MoodleMoot Spain 2009)
Roles en Moodle 1.9 (MoodleMoot Spain 2009)Roles en Moodle 1.9 (MoodleMoot Spain 2009)
Roles en Moodle 1.9 (MoodleMoot Spain 2009)
 

Último

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024SynarionITSolutions
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Principled Technologies
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 

Último (20)

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 

Moodlemoot spain 2013. taller, creación de un plugin para moodle mobile

  • 1. Workshop How to develop a new plugin for Moodle Mobile Juan Leyva Moodlemoot Spain 2013 26, 27 y 28 September
  • 2. Speakers Juan Leyva Moodle Developer (since 2003) working @ CV&A Consulting Moodle Mobile official app creator and maintainer Developer of plugins: ● Configurable Reports ● jmail ● LTI Provider ● UMM (Unofficial Moodle Mobile) ● Anonymous posting in forums, Collaborative real-time editor, ConfigTabs, Forum discuss subscription,
  • 3. What we are going to do ● Understand how Moodle Mobile talks with a Moodle installation ● Understand the basics about Moodle Mobile Architecture ● Set up your Moodle Mobile development environment ● Set up your Moodle installation ● Package a existing Webservice to be used inside a local plugin ● Configure new “Mobile Services” in your Moodle installation ● Set up your MoodleMobile app ● Develop a MoodleMobile plugin ● Change the name and appearance of your app ● Build your MoodleMobile rebranded app
  • 4. The new plugin ● Display user grades in activities
  • 5. How Moodle Mobile talks with Moodle Moodle Mobile is a REST+JSON based Web Services client HTTPS is recommended User session is emulated using unique tokens File upload and downloads are done using standard HTTP requests
  • 7. Set up the development environment ● Install Google Chrome ● Create a direct access or script for launching Google Chrome with these flags: --disable-web-security --allow-file-access- from-files ● With Google Chrome and the F12 or "Developer tools" you can emulate mobile devices changing user-agent, orientation, resolution, geo-location, touch events, etc.. ● Just open the Developers tools, click on the wheel bottom-right corner to see the Override options. ● It's interesting also disabling the Cache (in general options)
  • 8. Set up your Moodle Installation ● Enable debugging ● Disable all caches ● Enable WebServices in Advanced options ● Enable WebServices protocols (REST) ● Enable Mobile Services (in Plugins -> WebServices -> Services)
  • 9. Package an existing WebService ● https://github.com/cvaconsulting/moodle- local_custommm
  • 10. Configure the new service ● A service is a set of functions for an specific purpose. Since Moodle 2.1 there is a pre-built service for Moodle M. ● This service cannot be edited for adding new functions so we don't have a simple way for make available our new Web Service function to the mobile app. ● The only way for fix this is creating a new Service in Moodle, and configuring our app for pointing to this new service. ● There are two ways of creating a Service in Moodle: ○ Using a db/services.php in your plugin as mentioned here: External services description ○ Creating the service in your Moodle installation using the forms in Admin > Plugins > Web Services > External Services
  • 11. Configure the new service ● In this case we've created the service using the Moodle forms because it gives more flexibility in some aspects. ● There is a big impediment, due tohttps://tracker.moodle. org/browse/MDL-29807 in order to add a shortname for the new Service, we have to edit manually the Moodle database for adding the shortname in the dbprefix_external_services table
  • 12. Set up your MoodleMobile app ● Download the last version of the MoodleMobile source code from https://github.com/moodlehq/moodlemobile ● Edit the config.json file and change the wsservice parameter in order to point to the shortname of the Service you created before. ● You have to add also the name of the plugin you are developing at the final of the plugins parameter: ● "plugins" : ["notifications", "upload", "contents", "participants", "addcontact", "addnote", "sendmessage", "grades"], ● Notice that, for avoid errors, this last change should be done once the file plugins/grades/main.js file exists
  • 13. Develop the MoodleMobile plugin ● https://github.com/cvaconsulting/moodlemobile-grades ● plugin/grades/lang/en.json - Contains the language strings ● plugin/grades/icon.png - The plugin icon ● plugin/grades/activities.html - The template for the activities list ● plugin/grades/activitygrade.html - The template for showing the grade ● plugin/grades/main.js - The plugin's main code
  • 14. Develop the MoodleMobile plugin (main.js)
  • 15. Develop the MoodleMobile plugin (main.js)
  • 16. Develop the MoodleMobile plugin (main.js)
  • 17. Develop the MoodleMobile plugin (main.js)
  • 18. Change the name an appearance ● Edit the config.xml to change the app name ● Replace all the icons found in the app ● Edit also the config.json file for additional changes ● Load a custom CSS from your plugin: $('head').append('<link rel="stylesheet" href="plugins/myplugin/mycss.css" type="text/css" />'); MM.registerPlugin(plugin);
  • 19. Build your MoodleMobile rebranded app ● Use PhoneGap Build https: //build.phonegap.com/ ● Create a free account pointing to your github repository or upload a zip file with your app ● Sign the app using your Android and iOs certificates ● Publish your app in Google Play and Apple app Store
  • 20. Thanks for coming! You have more information here: http://docs.moodle.org/dev/Moodle_Mobile