This is an update of the original Presentation looking at the components of theme design, this time for Moodle 2. It is designed as both a workshop and as a primer, listing each variable and function along with a descriptor or use. For more information check out http://www.moodleman.net
Grok Drupal (7) Theming (presented at DrupalCon San Francisco)Laura Scott
This is now DEPRECATED. Please see Grok Drupal (7) Theming, February 11 Update
These are slides for my presentation at DrupalCon San Francisco, April 2010.
There is <a>audio/video of the presentation at the DCSF website</a>.
My apologies for the extraneous slides -- that's how Slideshare converted my Keynote file.
Grok Drupal (7) Theming - 2011 Feb updateLaura Scott
These are slides from my presentation at Drupal Design Camp Los Angeles, February 2011. Video with rather low resolution version of the slides (we inadvertently recorded my presentation notes screen rather than the projector screen) can be viewed on blip:
http://ladrupal.blip.tv/file/4731722/
Optimizing Drupal 7 HTML Markup - Using Panels, Page Manager, and Fences to P...Jim Birch
The goal of this presentation is to explain how to minimize the markup that Drupal outputs, and gain complete control over the what and the where of the markup.
Using the system described herein, we can coerce the HTML output of Drupal to match provided designs, or pre-existing HTML Layouts. We are not forced to try to make the Drupal default HTML output look like the design.
For more information, please visit my long form blog post about the subject here:
http://jimbir.ch/blog/using-fences-page-manager-optimize-html-markup-drupal-7
Build a WordPress theme from HTML5 template @ TelerikMario Peshev
How to build a WordPress theme out of HTML5 template, integrate dynamic components such as menus, sidebars and comment areas and use widget blocks for static sliced content.
at Telerik Academy, 19 Jun 2012
How to create a joomla component from scratchTim Plummer
In this presentation, Tim Plummer shows you how you can create your own Joomla component by forking Hello World, then adding some improvements to make it more like a typical third party Joomla extension. Files and code used in this presentation will be available for download.
Develop Basic joomla! MVC component for version 3Gunjan Patel
Develop Basic Joomla! Component in easy steps. Step by step information to develop joomla component.
Joomla! User Network Ahmedabad organizing a 2 days Joomla! workshop for students to teach joomla development. In this workshop we are going to teach joomla component, module and plugin development. This event will be organized at School of Computer Studies, Ahmedabad University in association with AESICS-CSI Student Branch. Event organized by School of Computer Studies, Ahmedabad University and Joomla User Network Ahmedabad Team. For more details visit our Facebook page at https://www.facebook.com/jugAhmedabad
http://bit.ly/joomlaWorkshop
Grok Drupal (7) Theming (presented at DrupalCon San Francisco)Laura Scott
This is now DEPRECATED. Please see Grok Drupal (7) Theming, February 11 Update
These are slides for my presentation at DrupalCon San Francisco, April 2010.
There is <a>audio/video of the presentation at the DCSF website</a>.
My apologies for the extraneous slides -- that's how Slideshare converted my Keynote file.
Grok Drupal (7) Theming - 2011 Feb updateLaura Scott
These are slides from my presentation at Drupal Design Camp Los Angeles, February 2011. Video with rather low resolution version of the slides (we inadvertently recorded my presentation notes screen rather than the projector screen) can be viewed on blip:
http://ladrupal.blip.tv/file/4731722/
Optimizing Drupal 7 HTML Markup - Using Panels, Page Manager, and Fences to P...Jim Birch
The goal of this presentation is to explain how to minimize the markup that Drupal outputs, and gain complete control over the what and the where of the markup.
Using the system described herein, we can coerce the HTML output of Drupal to match provided designs, or pre-existing HTML Layouts. We are not forced to try to make the Drupal default HTML output look like the design.
For more information, please visit my long form blog post about the subject here:
http://jimbir.ch/blog/using-fences-page-manager-optimize-html-markup-drupal-7
Build a WordPress theme from HTML5 template @ TelerikMario Peshev
How to build a WordPress theme out of HTML5 template, integrate dynamic components such as menus, sidebars and comment areas and use widget blocks for static sliced content.
at Telerik Academy, 19 Jun 2012
How to create a joomla component from scratchTim Plummer
In this presentation, Tim Plummer shows you how you can create your own Joomla component by forking Hello World, then adding some improvements to make it more like a typical third party Joomla extension. Files and code used in this presentation will be available for download.
Develop Basic joomla! MVC component for version 3Gunjan Patel
Develop Basic Joomla! Component in easy steps. Step by step information to develop joomla component.
Joomla! User Network Ahmedabad organizing a 2 days Joomla! workshop for students to teach joomla development. In this workshop we are going to teach joomla component, module and plugin development. This event will be organized at School of Computer Studies, Ahmedabad University in association with AESICS-CSI Student Branch. Event organized by School of Computer Studies, Ahmedabad University and Joomla User Network Ahmedabad Team. For more details visit our Facebook page at https://www.facebook.com/jugAhmedabad
http://bit.ly/joomlaWorkshop
Drupal Theme Development - DrupalCon Chicago 2011Ryan Price
This class is intended for people who know some HTML and CSS, and covers the fundamental principles of Drupal theming geared toward people who wish to take a static mockup of a site design and turn it into a Drupal theme. You will also learn about using base themes, grid-based layout and helper modules to streamline and customize your Drupal theme.
Trainer Ryan Price has built entertainment sites, social networks, and eCommerce sites for clients including Popular Science, Field and Stream and Outdoor Life magazines. With over 10 years of experience building sites with PHP and other technologies, Ryan began immersing himself in Drupal around 2006. Ryan often teaches and writes articles along with Mike Anello, and the duo is also known for producing the DrupalEasy Podcast with their host Andrew Riley.
Generate a Living Style Guide from CSS - CSSDevConf 2016Matt Vanderpol
Tips, tricks, and tools to generate a living style guide from comments in a CSS/Sass/Less/Stylus file. Sample working project at http://bluemallard.net
Esta apresentação aborda o desenvolvimento de um tema para o LMS Moodle a partir do tema Clean utilizando o tema Bootstrapbase como tema pai/base.
Apresentado no 9º Moodle Moot Brasil, na Universidade Federal de Santa Catarina em Florianópolis/SC no dia 10 de outubro de 2014.
The attention of the consumer has changed, so why hasn't the attention of the marketers? Learn to communicate with your consumers like the year that it actually is...
Responsive Theme Workshop - WordCamp Columbus 2015
Take Underscore Starter theme from Automattic and add in Foundation5 css library from Zurb to build a responsive starter theme.
A11y Conference Talk: Building an Accessible WordPress ThemeTomAuger
Presentation at The Accessibility Conference 2014 by Sandy Feldman and Tom Auger, covering high-level audits and best practices to bring a theme in line with WCAG / AODA guidelines.
WordCamp Raleigh 2018 - Beginner's Guide to WordpressConvinsys
Everyone has a story to tell; and you think the web is the perfect place to tell it. But how do you start? Welcome to WordPress for Beginners. WordPress powers over 25% of the websites on the global Internet. There’s a reason for that number. It’s SO simple. Spend an hour and you can publish to a global audience of more than 3.5 billion people. And it’s SO complex. You can spend years learning how it works.
So what can we cover in two hours? Enough to get you started & going in the right direction!
Child Themes are great for those who want to take WordPress that bit further as they allow you to take an already existing WordPress Theme and change absolutely anything from it.
Why reinvent the wheel by coding a theme from scratch every time, right?
The workshop starts by teaching the structure of a WordPress theme and then how to create your own Child Theme step by step.
You’ll also learn how to test your site for the various platforms and make sure it is responsive and accessible.
Presented at WordPress Glasgow meetup. August, 2017
WordCamp NEO 2016 presentation "Custom Responsive Theme Workshop" by David Brattoli
While we could use many different frameworks, premium and free themes to build our sites, I have found you need a truly custom framework to build a base to build new themes quickly to meet your project needs. This method to create a framework and then to create a child theme for the look of the site, will allow you build future sites quickly and efficiently. The session will cover why we choose this method and framework, the challenges we faced, how we tackled the challenge, and what we ended up building to solve the problem. I'll also reveal the pitfalls we discovered and how we overcame those as well.
Coding samples can be found here:
http://bit.ly/wceno-crtw-samples
WP Joburg Meetup 10: Genesis Framework by Trish CorneliusWPJoburg
The last WP Joburg meetup for 2015 happened on 16 December with the usual pizza (sponsored by Code Cabin) and coffee (sponsored by PayFast).
Trish Cornelius spoke about the Genesis Framework and why she uses it.
These slides accompanied a presentation by Steve Breker of Artefactual Systems, delivered as part of AtoM Camp Cambridge, a three-day boot camp held at St John's College, Cambridge University, May 9-11, 2017 For more information, see:
https://wiki.accesstomemory.org/Community/Camps/SJC2017
These slides are intended for developers who are interested in modifying the default look and feel of AtoM - known as the Dominion theme - and developing a custom theme plugin. They include some theme examples, how to register a plugin in Symfony, and some ideas of the elements you can modify via theming, with examples.
This presentation, Given at the "Open Badges Australia New Zealand" usergroup explains OpenBadges and their possible integration with Open Source Learning Management Systems (LMS
This presentation was given at the Australian Moodle Moot 2013 to outline just some of the great features introduced in Moodle 2.5. The session was also delivered with live hands on demonstrations which can't be replicated on Slideshare.
This session was built using the great work by Gavin Henrick in his presentation titled "Moodle 2.5 some of the improvements since moodle 2.4". I would recommend checking this out as it contains an even greater feature list. http://www.slideshare.net/ghenrick/moodle-25-some-of-the-improvements-since-moodle-24
This is the presenation used at the MoodleMoot Theme Workshop.
This presentation can be used as a "primer" for those developing their own themes for Moodle 2 . It currently does not cover Bootstrap development. I hope to have this included in a future update.
This presentation is uploaded as Creative Commons. Please feel free to re-use and redistribute but just keep attribution to myself intact.
Here are the slides from my presentation on Integrating Mahara with Moodle (Otherwise known as Mahoodle. Not much to see here however as a large chunk of the preso was hands on demonstrations of the tools
This is a presentation given at MoodleMoot AU in Brisbane. It was created in Keynote on a Mac so has lost some of its shine. Visit my channel on YouTube to see the version with the video's playing.
This is a presentation given at MoodleMootAU in Brisbane 2008. Origibnally built on Mac in Keynote, it has lost much of its shine with a PPT conversion. But content is still here.
Elements of this presentation used with permission from Ialja. be sure to visit her slideshare space.
Read| The latest issue of The Challenger is here! We are thrilled to announce that our school paper has qualified for the NATIONAL SCHOOLS PRESS CONFERENCE (NSPC) 2024. Thank you for your unwavering support and trust. Dive into the stories that made us stand out!
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...Levi Shapiro
Letter from the Congress of the United States regarding Anti-Semitism sent June 3rd to MIT President Sally Kornbluth, MIT Corp Chair, Mark Gorenberg
Dear Dr. Kornbluth and Mr. Gorenberg,
The US House of Representatives is deeply concerned by ongoing and pervasive acts of antisemitic
harassment and intimidation at the Massachusetts Institute of Technology (MIT). Failing to act decisively to ensure a safe learning environment for all students would be a grave dereliction of your responsibilities as President of MIT and Chair of the MIT Corporation.
This Congress will not stand idly by and allow an environment hostile to Jewish students to persist. The House believes that your institution is in violation of Title VI of the Civil Rights Act, and the inability or
unwillingness to rectify this violation through action requires accountability.
Postsecondary education is a unique opportunity for students to learn and have their ideas and beliefs challenged. However, universities receiving hundreds of millions of federal funds annually have denied
students that opportunity and have been hijacked to become venues for the promotion of terrorism, antisemitic harassment and intimidation, unlawful encampments, and in some cases, assaults and riots.
The House of Representatives will not countenance the use of federal funds to indoctrinate students into hateful, antisemitic, anti-American supporters of terrorism. Investigations into campus antisemitism by the Committee on Education and the Workforce and the Committee on Ways and Means have been expanded into a Congress-wide probe across all relevant jurisdictions to address this national crisis. The undersigned Committees will conduct oversight into the use of federal funds at MIT and its learning environment under authorities granted to each Committee.
• The Committee on Education and the Workforce has been investigating your institution since December 7, 2023. The Committee has broad jurisdiction over postsecondary education, including its compliance with Title VI of the Civil Rights Act, campus safety concerns over disruptions to the learning environment, and the awarding of federal student aid under the Higher Education Act.
• The Committee on Oversight and Accountability is investigating the sources of funding and other support flowing to groups espousing pro-Hamas propaganda and engaged in antisemitic harassment and intimidation of students. The Committee on Oversight and Accountability is the principal oversight committee of the US House of Representatives and has broad authority to investigate “any matter” at “any time” under House Rule X.
• The Committee on Ways and Means has been investigating several universities since November 15, 2023, when the Committee held a hearing entitled From Ivory Towers to Dark Corners: Investigating the Nexus Between Antisemitism, Tax-Exempt Universities, and Terror Financing. The Committee followed the hearing with letters to those institutions on January 10, 202
Embracing GenAI - A Strategic ImperativePeter Windle
Artificial Intelligence (AI) technologies such as Generative AI, Image Generators and Large Language Models have had a dramatic impact on teaching, learning and assessment over the past 18 months. The most immediate threat AI posed was to Academic Integrity with Higher Education Institutes (HEIs) focusing their efforts on combating the use of GenAI in assessment. Guidelines were developed for staff and students, policies put in place too. Innovative educators have forged paths in the use of Generative AI for teaching, learning and assessments leading to pockets of transformation springing up across HEIs, often with little or no top-down guidance, support or direction.
This Gasta posits a strategic approach to integrating AI into HEIs to prepare staff, students and the curriculum for an evolving world and workplace. We will highlight the advantages of working with these technologies beyond the realm of teaching, learning and assessment by considering prompt engineering skills, industry impact, curriculum changes, and the need for staff upskilling. In contrast, not engaging strategically with Generative AI poses risks, including falling behind peers, missed opportunities and failing to ensure our graduates remain employable. The rapid evolution of AI technologies necessitates a proactive and strategic approach if we are to remain relevant.
How to Make a Field invisible in Odoo 17Celine George
It is possible to hide or invisible some fields in odoo. Commonly using “invisible” attribute in the field definition to invisible the fields. This slide will show how to make a field invisible in odoo 17.
Normal Labour/ Stages of Labour/ Mechanism of LabourWasim Ak
Normal labor is also termed spontaneous labor, defined as the natural physiological process through which the fetus, placenta, and membranes are expelled from the uterus through the birth canal at term (37 to 42 weeks
2024.06.01 Introducing a competency framework for languag learning materials ...Sandy Millin
http://sandymillin.wordpress.com/iateflwebinar2024
Published classroom materials form the basis of syllabuses, drive teacher professional development, and have a potentially huge influence on learners, teachers and education systems. All teachers also create their own materials, whether a few sentences on a blackboard, a highly-structured fully-realised online course, or anything in between. Despite this, the knowledge and skills needed to create effective language learning materials are rarely part of teacher training, and are mostly learnt by trial and error.
Knowledge and skills frameworks, generally called competency frameworks, for ELT teachers, trainers and managers have existed for a few years now. However, until I created one for my MA dissertation, there wasn’t one drawing together what we need to know and do to be able to effectively produce language learning materials.
This webinar will introduce you to my framework, highlighting the key competencies I identified from my research. It will also show how anybody involved in language teaching (any language, not just English!), teacher training, managing schools or developing language learning materials can benefit from using the framework.
Safalta Digital marketing institute in Noida, provide complete applications that encompass a huge range of virtual advertising and marketing additives, which includes search engine optimization, virtual communication advertising, pay-per-click on marketing, content material advertising, internet analytics, and greater. These university courses are designed for students who possess a comprehensive understanding of virtual marketing strategies and attributes.Safalta Digital Marketing Institute in Noida is a first choice for young individuals or students who are looking to start their careers in the field of digital advertising. The institute gives specialized courses designed and certification.
for beginners, providing thorough training in areas such as SEO, digital communication marketing, and PPC training in Noida. After finishing the program, students receive the certifications recognised by top different universitie, setting a strong foundation for a successful career in digital marketing.
Acetabularia Information For Class 9 .docxvaibhavrinwa19
Acetabularia acetabulum is a single-celled green alga that in its vegetative state is morphologically differentiated into a basal rhizoid and an axially elongated stalk, which bears whorls of branching hairs. The single diploid nucleus resides in the rhizoid.
1. Educatewtheu world. c o m
Educate the world
http://www.pukunui.com
http://ww .p kunui
Theme Guru’s
Getting started with themes in moodle
2.0
Sky High
2. Educatew theuworld
http://ww .puk nui.com
Aim of this workshop
We Will
๏ Provide background on themes in moodle
๏ Demonstrate theme design ‘best practice’
๏ Show tools helpful to theme design
We Won'
๏ This is NOT a technical workshop
๏ No prior experience expected
๏ HTML and CSS not covered
3. Educatew theuworld
http://ww .puk nui.com
Getting started
Why use themes?
Build local, deploy global
Tools you need
Don’t re-invent the wheel!
4. Educatew theuworld
http://ww .puk nui.com
Getting started - Why use themes?
๏ Meet brand
requirements
๏ Match an existing site
๏ Present a more
engaging design for your
particular audience
๏ Establish a unique look
and feel for your site. be a
Stand out!
5. Educatew theuworld
http://ww .puk nui.com
Getting started - Build locally, deploy globally
๏ There is no Moodle
‘theme dev development’
tool
๏ Building in
Dreamweaver is extremely
difficult. I usually edit
using a text editing tool.
๏ Easiest to deploy a
moodle on your machine
and edit this directly. See
changes instantly as you
make them
6. Educatew theuworld
http://ww .puk nui.com
Getting started - Build locally, deploy globally
๏ There is no Moodle
‘theme dev development’
tool
๏ Building in
Dreamweaver is extremely
difficult. I usually edit
using a text editing tool.
๏ Easiest to deploy a
moodle on your machine
and edit this directly. See
changes instantly as you
make them
7. Educatew theuworld
http://ww .puk nui.com
Getting started - Tools you will be
needing
๏ Chrome Web Browser
๏ Firefox Browser with
Firebug plugin
๏ http://getfirebug.com/
8. Educatew theuworld
http://ww .puk nui.com
Getting started - Tools you will be
needing
๏ Chrome Web Browser
๏ Firefox Browser with
Firebug plugin
๏ http://getfirebug.com/
๏ A Text editor
๏ Textpad (Windows)
๏ Smutron (OSX) & CSSEdit
(OSX)
9. Educatew theuworld
http://ww .puk nui.com
Getting started - Tools you will be
needing
๏ Chrome Web Browser
๏ Firefox Browser with
Firebug plugin
๏ http://getfirebug.com/
๏ A Text editor
๏ Textpad (Windows)
๏ Smutron (OSX) & CSSEdit
(OSX)
๏ Local Moodle install
๏http://
download.moodle.org
10. Educatew theuworld
http://ww .puk nui.com
Getting started - Don’t re-invent the
wheel
Themes are very time consuming to build from
scratch Best Practice Tips
When creating/editing themes
be sure to enable the “Theme
๏ Small Scale changes Developer Mode” in Admin
settings. Otherwise the
๏ Create a new theme using standardsheets caching will drive you
insane!
๏ Large Scale changes
๏ Start with a theme that is similar to your need
๏ Just duplicate it’s folder and rename to use
11. Educatew theuworld
http://ww .puk nui.com
Getting started - Duplicating a theme
Duplicating themes are not as easy as it was in 1.9.
To clone a theme please follow these steps. Important Note
The GPL license allows you
1. Duplicate the folder of the theme you wish to copy to clone and change themes.
and rename (for this example ‘sky_high’ is becoming However you must leave all
‘my theme’) credits to the original
author intact in the files
2. Rename the language file (/lang/en/theme_sky_high) within it.
3. Open your renamed lang file in an editor and change
the ‘pluginname’ to your new one
4. If the theme contains a lib.php, renderer.php or
settings.php each of these files will need to be
opened and using “find and replace” find all
references to the old name and change to the new.
If you have done things correctly visit “notifications’ in
Moodle admin and the new theme should install
13. Educatew theuworld
http://ww .puk nui.com
Moodle theme setup - Admin settings
Theme Settings
Best Practice Tips
๏ Theme list You don’t have to drill down
through the Administration
๏ Theme designer mode to hunt down theme settings.
๏ Allow User / Course / Category Themes Just type in ‘theme’ into
the admin search field to
๏ Allow users to hide blocks see the available options.
๏ Allow users to use Dock
๏ Custom Menu Items
๏ Device Detection Setting theme
orders
Theme Selector There is a new setting you
can put in your sites
The theme selector allows you to apply a selected theme at a config.php
site level.
$CFG->themeorder = array('page',
'course', 'category', 'session', 'user', 'site');
Set how you want themes
displayed
14. Educatew theuworld
http://ww .puk nui.com
Moodle theme setup - Files in a typical theme
Themes are always stored in the ‘themes’ folder in Overriding Images
your moodle directory If you want your theme to
Director File Description override core moodle images
y such as plugins or edit
config.php Contains all of the configuration and definitions for each theme
buttons you can use the
lib.php Contains speciality classes and functions that are used by theme following optional
renderers.ph Contains any custom renderers for the theme
directories in your theme:
p
settings.php Contains custom theme settings. /pix_core
This is where your images to
/ All specialty JavaScript files the theme requires should be located
override core images will
javascript in here.
/lang Any special language files the theme requires should be located in need to be.
here
/layout Contains the layout files for the theme /pix_plugins
/pix Contains any images the theme makes use of either in CSS or in This is where images to
the layout files override plugins will need
/pix The favicon to display for this theme to be.
/pix A screenshot of the theme to be displayed in on the theme
selection screen You need to replicate the
/style Default location for CSS files directory structure that the
images are located in.
*.css CSS files the theme requires
15. Educatew theuworld
http://ww .puk nui.com
Creating a theme
The PHP files
config.php
lib.php
renderers.php
settings.php
16. Educatew theuworld
http://ww .puk nui.com
Creating a theme - Config.php
This file contains a few configuration variables that
control how Moodle uses this theme.
Want more control
This is just a list of the
Tags Used: core options used in most
themes. Dozens more are
๏ $THEME->name available and can be viewed
in the Moodle Docs:
๏ $THEME->parents http://docs.moodle.org/dev/
๏ $THEME->sheets Themes_2.0#Theme_options_as_
of_April_28th.2C_2010
๏ $THEME->layouts
๏ $THEME->enable_dock
๏ $THEME->renderfactory
17. Educatew theuworld
http://ww .puk nui.com
Creating a theme - Config.php
Config.php variables
$THEME->name
Best Practice Tips
While you can call your stylesheets
Definition: anything you like, or even just have
Very simply this tells Moodle the name of your theme, and if you ever have one, the listed example is considered
several config.php files open this will help you identify which one you are ‘best practice’ to make the theme
looking at easier to edit if passed around the
community.
Demo Use:
$THEME->name = 'excitement';
18. Educatew theuworld
http://ww .puk nui.com
Creating a theme - Config.php
Config.php variables
$THEME->parents
Definition:
A theme can extend any number of themes. Rather than creating an entirely new theme and copying all of
the CSS, you can simply create a new theme, extend the theme you like and just add the changes you want
to your theme.
Also worth noting is the purpose of the base theme: it provides us with a basic layout and just enough CSS
to make everything fall into place.
Demo Use:
$THEME->parents = array('canvas','base',);
19. Educatew theuworld
http://ww .puk nui.com
Creating a theme - Config.php
Config.php variables
Lots of change
$THEME->sheets For those who are familiar
with Moodle 1.9 theme's,
Definition: this organisation will be a
This variable allows the developer to define what stylesheets (css) they wish big change. In 1.9, CSS was
to
organised by its nature (for
use in this theme. While it is entirely up to you as to how you create and organise
example: colours, layout,
your CSS, please note that within the themes provided in the standard install by
other)
Moodle there is a very clear organisation of CSS. Moodle now has to main css
files built into all core themes.
The ‘pagelout.css’ file
This contains the CSS required to give the layouts their look and feel. It doesn't contain any rules that affect
the content generated by Moodle
The ‘core.css’ file
This contains all manner of general (usually simple) rules that don't relate to a specific section of Moodle but
to Moodle as a whole
Demo Use:
$THEME->sheets = array('core','pagelayout',);
20. Educatew theuworld
http://ww .puk nui.com
Creating a theme - Config.php
Config.php variables
$THEME->layouts
Definition:
As the name may suggest, ‘layouts‘ determine how a page is structured or ‘laid out’. There is one for every
general type of page. Most developers don’t create custom layouts as they, like CSS, extend from the base
and they instead use CSS for their changes. But for advanced designs this opens up unlimited possibilities.
For each layout you can set:
file - This is the name of the layout file we want to use, it should always be located in the above themes layout directory.
regions - This is an array of block regions that the theme has. Each entry in here can be used to put blocks in.
defaultregion - If a layout has regions it should have a default region, this is where blocks get put when first added.
options - These are special settings, anything that gets put into the options array is available later on when we are
writing our layout file.
Demo Use:
'mydashboard' => array('file' => 'standard.php','regions' => array('side-pre', 'side-post'),'defaultregion' =>
'side-post','options' => array('langmenu'=>true),);
21. Educatew theuworld
http://ww .puk nui.com
Creating a theme - Config.php
Config.php variables
$THEME->enable_dock
Definition:
This really is as simple as it looks. Thios allows the developer to state if this theme will utilise Moodle’s new
Dock function or not.
Demo Use:
$THEME->enable_dock = true;
22. Educatew theuworld
http://ww .puk nui.com
Creating a theme - Config.php
Config.php variables
$THEME->renderfactory
Definition:
A major change in Moodle 2.0 was the addition of the output library ($OUTPUT) that saw the introduction of
the renderer.
A renderer is a class that handles all of the output for a component of Moodle. This output will vary
depending on what the component is, for example the forum will have a method for displaying a forum post,
displaying a thread (which most likely calls the forum post method), and displaying a search form.
Renderers will allow developers to override how moodle renders its predefined functions allowing for truly
unimited design possibilities.
This variable tells Moodle that for this theme we want to use the theme_overridden_renderer_factory, a
special class tells Moodle to look for renderers first within the theme and then in all of the other default
locations
For more information on this function please visit - http://docs.moodle.org/dev/
Themes_2.0_overriding_a_renderer
Demo Use:
23. Educatew theuworld
http://ww .puk nui.com
Creating a theme - lib.php
Definition:
This file contains speciality classes and functions that are used by theme. As this leads into advanced theme
developement we will not be going indepth into lib.php in this presentation.
Demo Use:
function mytheme_set_customcss($css, $customcss) {
$tag = '[[setting:customcss]]';
$replacement = $customcss;
if (is_null($replacement)) {
$replacement = '';
}
$css = str_replace($tag, $replacement, $css);
return $css;
}
24. Educatew theuworld
http://ww .puk nui.com
Creating a theme - renderers.php
Definition:
This file contains overrirde renderers used by theme. As this leads into advanced theme development we will
not be going indepth into lib.php in this presentation.
Demo Use:
Look at advanced themes on moodle.org such as ‘Decaf’ and ‘Moodlebook’ to see examples of themes
starting to use the renderers.php file.
For more information on creating a custom settings page please visit:
http://docs.moodle.org/dev/Themes_2.0_overriding_a_renderer
25. Educatew theuworld
http://ww .puk nui.com
Creating a theme - settings.php
Definition:
This is an optional component of theme development. When used in conunction with lib.php it allows the
developer to create a custom Settings page in Moodle administration to allow users to override preset
variables such as colors, widths, etc.
Demo Use:
For more information on creating a custom settings page please visit:
http://docs.moodle.org/dev/Themes_2.0_adding_a_settings_page
26. Educatew theuworld
http://ww .puk nui.com
Creating a theme
The Layout files
27. Educatew theuworld
http://ww .puk nui.com
Creating a theme - The Layout Files
There are many custom Layouts available to developers who wish to take
advantage of them.
general popup
base frametop
standard maintenance
course print
coursecategory login
incourse mypublic
frontpage mydashboard
admin
28. Educatew theuworld
http://ww .puk nui.com
Creating a theme - The Layout Files
A layout file is a file that contains the core <?php echo $OUTPUT->doctype() ?>
HTML structure for a layout including the
<html <?php echo $OUTPUT->htmlattributes() ?>>
<head>
<title><?php echo $PAGE->title ?></title>
header, footer, content and block regions. <?php echo $OUTPUT->standard_head_html() ?>
</head>
<body id="<?php p($PAGE->bodyid) ?>" class="<?php p($PAGE->bodyclasses) ?>">
<?php echo $OUTPUT->standard_top_of_body_html() ?>
<table id="page">
It is not all HTML, there are bits of HTML
<tr>
<td colspan="3">
<h1 class="headermain"><?php echo $PAGE->heading ?></h1>
and content that Moodle needs to put into
<div class="headermenu"><?php echo $OUTPUT->login_info(); echo $PAGE->headingmenu; ?></
div>
</td>
the page, within each layout file this will be
</tr>
<tr>
<td>
done by a couple of simple PHP calls to get <?php echo $OUTPUT->blocks_for_region('side-pre') ?>
</td>
<td>
bits and pieces including content. <?php echo core_renderer::MAIN_CONTENT_TOKEN ?>
</td>
<td>
<?php echo $OUTPUT->blocks_for_region('side-post') ?>
</td>
</tr>
<tr>
<td colspan="3">
<p class="helplink"><?php echo page_doc_link(get_string('moodledocslink')) ?></p>
<?php
echo $OUTPUT->login_info();
echo $OUTPUT->home_link();
echo $OUTPUT->standard_footer_html();
?>
</td>
</tr>
</table>
<?php echo $OUTPUT->standard_end_of_body_html() ?>
</body>
</html>
30. Educatew theuworld
http://ww .puk nui.com
Creating a theme - The Layout Files
PHP Tags you need to know
๏ <?php echo $OUTPUT->doctype() ?>
Definition:
This occurs at the VERY top of the page, it must be the first bit of output and is responsible for adding
the (X)HTML document type definition to the page. This of course is determined by the settings of the
site and is one of the things that the theme designer has no control over.
Demo Use:
<?php echo $OUTPUT->doctype() ?>
31. Educatew theuworld
http://ww .puk nui.com
Creating a theme - The Layout Files
PHP Tags you need to know
๏ <?php echo $OUTPUT->htmlattributes() ?>
Definition:
This must be placed in the opening html tag and will generate the HTML attributes that should be
applied to it. This again is determined by several settings within the actual HTML install.
Demo Use:
<html <?php echo $OUTPUT->htmlattributes() ?>>
32. Educatew theuworld
http://ww .puk nui.com
Creating a theme - The Layout Files
PHP Tags you need to know
๏ <?php echo $PAGE->title ?>
Definition:
This generates the title of the page.
Demo Use:
<title> <?php echo $PAGE->title ?> </title>
33. Educatew theuworld
http://ww .puk nui.com
Creating a theme - The Layout Files
PHP Tags you need to know
๏ <?php p(strip_tags(format_text($SITE->summary, FORMAT_HTML))) ?>
Definition:
This generates the description of either the site on the forntpage or the course description on a course
page. This variant will also strip out HTML tags from the description to ensure it does not break code
surrounding it.
Demo Use:
<meta name="description" content="<?php p(strip_tags(format_text($SITE->summary,
FORMAT_HTML))) ?>" />
34. Educatew theuworld
http://ww .puk nui.com
Creating a theme - The Layout Files
PHP Tags you need to know
๏ <?php echo $OUTPUT->standard_head_html() ?>
Definition:
This very important call gets us the standard head HTML that needs to be within the HEAD tag of the
page. This is where CSS and JavaScript requirements for the top of the page will be output as well as any
special script or style tags.
Demo Use:
<html <?php echo $OUTPUT->htmlattributes() ?>>
35. Educatew theuworld
http://ww .puk nui.com
Creating a theme - The Layout Files
PHP Tags you need to know
๏ <?php p($PAGE->bodyid); ?>
๏ <?php p($PAGE->bodyclasses); ?>
Definition:
These two calls should be placed within your <body> tag and will ask Moodle to generate the desired
ID
and classes that should be applied to it.
Demo Use:
<body id="<?php p($PAGE->bodyid); ?>" class="<?php p($PAGE->bodyclasses); ?>">
36. Educatew theuworld
http://ww .puk nui.com
Creating a theme - The Layout Files
PHP Tags you need to know
๏ <?php echo $PAGE->heading; ?>
Definition:
This generates the heading (or title if you prefer) of the page.
Demo Use:
<h1 class="headermain"><?php echo $PAGE->heading; ?></h1>
37. Educatew theuworld
http://ww .puk nui.com
Creating a theme - The Layout Files
PHP Tags you need to know
๏ <?php echo $PAGE->headingmenu; ?>
Definition:
This generates the standard dropdown header menu
Demo Use:
<div class="headermenu">
<?php echo $PAGE->headingmenu ?>
</div>
38. Educatew theuworld
http://ww .puk nui.com
Creating a theme - The Layout Files
PHP Tags you need to know
๏ <?php echo $PAGE->custommenu; ?>
Definition:
If your theme wished to use the new custom dropdown menu function added in Moodle 2 then this call
tells moodle where to place it.
Demo Use:
<?php if ($hascustommenu) { ?>
<div id="custommenu"><?php echo $custommenu; ?></div>
<?php } ?>
39. Educatew theuworld
http://ww .puk nui.com
Creating a theme - The Layout Files
PHP Tags you need to know
๏ <?php echo $OUTPUT->navbar(); ?>
Definition:
This generates the breadcrumb navigation
Demo Use:
<div class="breadcrumb"><?php echo $OUTPUT->navbar(); ?></div>
40. Educatew theuworld
http://ww .puk nui.com
Creating a theme - The Layout Files
PHP Tags you need to know
๏ <?php echo $PAGE->button; ?>
Definition:
This generates the “Turn editing on” button
Demo Use:
<div class="navbutton"> <?php echo $PAGE->button; ?></div>
41. Educatew theuworld
http://ww .puk nui.com
Creating a theme - The Layout Files
PHP Tags you need to know
๏ <?php echo $OUTPUT->blocks_for_region('side-pre') ?>
๏ <?php echo $OUTPUT->blocks_for_region('side-post') ?>
Definition:
This tells moodle where to place the blocks. Pre and Post are two Moodle defined locations (referred to
as areas). Pre is typically the left column and post the right.
Demo Use:
<div class="region-content">
<?php echo $OUTPUT->blocks_for_region('side-pre') ?>
</div>
42. Educatew theuworld
http://ww .puk nui.com
Creating a theme - The Layout Files
PHP Tags you need to know
๏ <?php echo core_renderer::MAIN_CONTENT_TOKEN ?>
Definition:
This is one of the most important calls within the file, it tells Moodle where to generate the actual
content of the pag
Demo Use:
<div class="region-content">
<?php echo core_renderer::MAIN_CONTENT_TOKEN ?>
</div>
43. Educatew theuworld
http://ww .puk nui.com
Creating a theme - The Layout Files
PHP Tags you need to know
๏ echo $OUTPUT->login_info();
Definition:
This generates the link that ether allows the user to log in, or tells them that they are logged in and
provides a link to their profile screen
Demo Use:
<?php echo $OUTPUT->login_info(); ?>
44. Educatew theuworld
http://ww .puk nui.com
Creating a theme - The Layout Files
PHP Tags you need to know
๏ echo $OUTPUT->home_link();
Definition:
This generates a link pointing back to your own Moodle’s homepage (otherwise known as frontpage)
Demo Use:
<?php echo $OUTPUT->home_link(); ?>
45. Educatew theuworld
http://ww .puk nui.com
Creating a theme - The Layout Files
PHP Tags you need to know
๏ echo page_doc_link(get_string('moodledocslink'))
Definition:
This generates a link pointing to the relevant help page on docs.moodle.org
Demo Use:
<p class="helplink"><?php echo page_doc_link(get_string('moodledocslink')) ?></p>
46. Educatew theuworld
http://ww .puk nui.com
Creating a theme - The Layout Files
PHP Tags you need to know
Nice to know
echo $OUTPUT->standard_footer_html(); Within Moodle 2.0 most of
the JavaScript for the page
Definition: will be included in the
footer. This greatly helps
This generates the standard footer HTML which like the standard head HTML
reduce the loading time of
contains all of the script and style tags required by the page and requested to
the page
go in the footer
Demo Use:
<?php echo $OUTPUT->standard_footer_html(); ?>
47. Educatew theuworld
http://ww .puk nui.com
Creating a theme - The Layout Files
Useful conditional tags
๏ <?php if ($hasnavbar) { ?>
<div class="breadcrumb"><?php echo $OUTPUT->navbar(); ?></div>
<?php } ?>
Definition:
This conditional detects if there are breadcrumbs to show. If not, it can then display something else of your choosing
Demo Use:
<?php if ($hasnavbar) { ?>
<div class="breadcrumb"><?php echo $OUTPUT->navbar(); ?></div>
<?php } ?>
48. Educatew theuworld
http://ww .puk nui.com
Creating a theme
The lang files
49. Educatew theuworld
http://ww .puk nui.com
Creating a theme - The lang file
Definition:
Moodle uses lang files to display text in the appropriate language in its Important Note
web interface. For my example I am using my preferred language, English. The naming of your lang file
You can define as many strings in this file as your theme may wish to use. This important. It must
is
is highly utilised if you are going to create a custom settings screen. contain the name of your
theme prefixed by “theme_”.
The Bare Minimums:
You must define the following lines in your file For Example:
(example is from standard theme, adapt as required) theme_mytheme.php
$string['pluginname'] = 'Standard';
$string['region-side-post'] = 'Right';
$string['region-side-pre'] = 'Left';
$string['choosereadme'] = 'This theme is a very basic white theme, with a minimum amount of
CSS added to the base theme to make it actually usable.';
51. Educatew theuworld
http://ww .puk nui.com
Creating a theme - Additional Files
favicon.ico
Don’t feel that you need to always have the moodle icon listed in the browser bar or
bookmarks.
Store your own favicon in your theme and it will be used instead.
screenshot.jpg
Display a screenshot of how the theme will look in the moodle admin ‘Theme Selector’
If no screenshot is there, moodle will try and render the page as best it can as a preview.
52. Educatew theuworld
http://ww .puk nui.com
Tips’N’Tricks - Using labels & HTML blocks
Homepage and courseware
design options become nearly
unlimited when introducing
labels and html blocks
These are HTML Blocks
These are labels